pwn 0.4.672 → 0.4.673

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9c947c88a2f7794cdb7116df8766315e92e2beed8d2911998848ef522d065174
4
- data.tar.gz: e04d20bc854c1f8e39fba70bd70c9da49623b1242a05a667886914bff1658186
3
+ metadata.gz: 66259ccdc59be89f796f56e88a20f9eb5bef320c46a4b7fc268b62f664e50c6e
4
+ data.tar.gz: 162ad18b794121a96802d6f5de739b4fc22eb8c0dda0a780fc6144fedc107af3
5
5
  SHA512:
6
- metadata.gz: 3c79d2adde425d48c119519c791376ac73ab5b30d2de7018b5fc0efc58ae28d1ca7c9c7d1d0adde3532ce9708c67c02054428d0beedf99058717a261412a4f3c
7
- data.tar.gz: 98197ecaf90a52bf701faf8c96005eff4dc142682e2c0a8ae00ea7eea93dadfd3cdc1c1bad5119613eecb343532438935e73d7a272927322af8f77ea20455b7f
6
+ metadata.gz: 2e6515b72bf8b01805b50cc9e5bb701edf2fb725182c1a1c425188e8d2542badd19cd93cbdf4c358fc2c2cfcb9c49341b4322cc76d596a200548eebe73c4ffd4
7
+ data.tar.gz: 846a1b1ca1f1ef9bc2affdb57ea1accf45f210e86085da968b54d01e45e9f6d6103f8108a7ef7a2888f4ebadd57988f68afafea86925f8c7c4867915388c36a7
data/README.md CHANGED
@@ -37,7 +37,7 @@ $ rvm use ruby-3.2.2@pwn
37
37
  $ rvm list gemsets
38
38
  $ gem install --verbose pwn
39
39
  $ pwn
40
- pwn[v0.4.672]:001 >>> PWN.help
40
+ pwn[v0.4.673]:001 >>> PWN.help
41
41
  ```
42
42
 
43
43
  [![Installing the pwn Security Automation Framework](https://raw.githubusercontent.com/0dayInc/pwn/master/documentation/pwn_install.png)](https://youtu.be/G7iLUY4FzsI)
@@ -52,7 +52,7 @@ $ rvm use ruby-3.2.2@pwn
52
52
  $ gem uninstall --all --executables pwn
53
53
  $ gem install --verbose pwn
54
54
  $ pwn
55
- pwn[v0.4.672]:001 >>> PWN.help
55
+ pwn[v0.4.673]:001 >>> PWN.help
56
56
  ```
57
57
 
58
58
 
data/lib/pwn/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module PWN
4
- VERSION = '0.4.672'
4
+ VERSION = '0.4.673'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pwn
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.672
4
+ version: 0.4.673
5
5
  platform: ruby
6
6
  authors:
7
7
  - 0day Inc.
@@ -1143,7 +1143,6 @@ executables:
1143
1143
  extensions: []
1144
1144
  extra_rdoc_files: []
1145
1145
  files:
1146
- - ".each do |bytes_matched|"
1147
1146
  - ".github/FUNDING.yml"
1148
1147
  - ".github/ISSUE_TEMPLATE/bug_report.md"
1149
1148
  - ".gitignore"
@@ -1,271 +0,0 @@
1
- => [["static void gv_init(void) {\n /* list of builtins, enable demand loading */\n gvc = gvContextPlugins(lt_preloaded_symbols, DEMAND_LOADING);\n}",
2
- "\n /* list of builtins, enable demand loading */\n gvc = gvContextPlugins(lt_preloaded_symbols, DEMAND_LOADING);\n",
3
- "}"],
4
- ["Agraph_t *graph(char *name)\n{\n if (!gvc)\n gv_init();\n return agopen(name, Agundirected, 0);\n}",
5
- "\n if (!gvc)\n gv_init();\n return agopen(name, Agundirected, 0);\n",
6
- "}"],
7
- ["Agraph_t *digraph(char *name)\n{\n if (!gvc)\n gv_init();\n return agopen(name, Agdirected, 0);\n}",
8
- "\n if (!gvc)\n gv_init();\n return agopen(name, Agdirected, 0);\n",
9
- "}"],
10
- ["Agraph_t *strictgraph(char *name)\n{\n if (!gvc)\n gv_init();\n return agopen(name, Agstrictundirected, 0);\n}",
11
- "\n if (!gvc)\n gv_init();\n return agopen(name, Agstrictundirected, 0);\n",
12
- "}"],
13
- ["Agraph_t *strictdigraph(char *name)\n{\n if (!gvc)\n gv_init();\n return agopen(name, Agstrictdirected, 0);\n}",
14
- "\n if (!gvc)\n gv_init();\n return agopen(name, Agstrictdirected, 0);\n",
15
- "}"],
16
- ["Agraph_t *readstring(char *string)\n{\n if (!gvc)\n gv_init();\n return agmemread(string);\n}",
17
- "\n if (!gvc)\n gv_init();\n return agmemread(string);\n",
18
- "}"],
19
- ["Agraph_t *read(FILE *f)\n{\n if (!gvc)\n gv_init();\n return agread(f, NULL);\n}",
20
- "\n if (!gvc)\n gv_init();\n return agread(f, NULL);\n",
21
- "}"],
22
- ["Agraph_t *read(const char *filename)\n{\n FILE *f;\n Agraph_t *g;\n\n f = fopen(filename, \"r\");\n if (!f)\n return NULL;\n if (!gvc)\n gv_init();\n g = agread(f, NULL);\n fclose(f);\n return g;\n}",
23
- "\n FILE *f;\n Agraph_t *g;\n\n f = fopen(filename, \"r\");\n if (!f)\n return NULL;\n if (!gvc)\n gv_init();\n g = agread(f, NULL);\n fclose(f);\n return g;\n",
24
- "}"],
25
- ["Agraph_t *graph(Agraph_t *g, char *name)\n{\n if (!gvc)\n gv_init();\n return agsubg(g, name, 1);\n}",
26
- "\n if (!gvc)\n gv_init();\n return agsubg(g, name, 1);\n",
27
- "}"],
28
- ["Agnode_t *node(Agraph_t *g, char *name)\n{\n if (!gvc)\n return NULL;\n return agnode(g, name, 1);\n}",
29
- "\n if (!gvc)\n return NULL;\n return agnode(g, name, 1);\n",
30
- "}"],
31
- ["Agedge_t *edge(Agraph_t* g, Agnode_t *t, Agnode_t *h)\n{\n if (!gvc || !t || !h || !g)\n return NULL;\n // edges from/to the protonode are not permitted\n if (AGTYPE(t) == AGRAPH || AGTYPE(h) == AGRAPH)\n\treturn NULL;\n return agedge(g, t, h, NULL, 1);\n}",
32
- "\n if (!gvc || !t || !h || !g)\n return NULL;\n // edges from/to the protonode are not permitted\n if (AGTYPE(t) == AGRAPH || AGTYPE(h) == AGRAPH)\n\treturn NULL;\n return agedge(g, t, h, NULL, 1);\n",
33
- "}"],
34
- ["Agedge_t *edge(Agnode_t *t, Agnode_t *h)\n{\n return edge(agraphof(t), t, h);\n}",
35
- "\n return edge(agraphof(t), t, h);\n",
36
- "}"],
37
- ["Agedge_t *edge(char *tname, Agnode_t *h)\n{\n return edge(node(agraphof(h), tname), h);\n}",
38
- "\n return edge(node(agraphof(h), tname), h);\n",
39
- "}"],
40
- ["Agedge_t *edge(Agnode_t *t, char *hname)\n{\n return edge(t, node(agraphof(t), hname));\n}",
41
- "\n return edge(t, node(agraphof(t), hname));\n",
42
- "}"],
43
- ["Agedge_t *edge(Agraph_t *g, char *tname, char *hname)\n{\n return edge(g, node(g, tname), node(g, hname));\n}",
44
- "\n return edge(g, node(g, tname), node(g, hname));\n",
45
- "}"],
46
- ["static char* myagxget(void *obj, Agsym_t *a)\n{\n int len;\n char *val, *hs;\n\n if (!obj || !a)\n return emptystring;\n val = agxget(obj, a);\n if (!val)\n return emptystring;\n if (a->name[0] == 'l' && strcmp(a->name, \"label\") == 0 && aghtmlstr(val)) {\n len = strlen(val);\n hs = (char*)malloc(len + 3);\n hs[0] = '<';\n strcpy(hs+1, val);\n hs[len+1] = '>';\n hs[len+2] = '\\0';\n return hs;\n }\n return val;\n}",
47
- "\n int len;\n char *val, *hs;\n\n if (!obj || !a)\n return emptystring;\n val = agxget(obj, a);\n if (!val)\n return emptystring;\n if (a->name[0] == 'l' && strcmp(a->name, \"label\") == 0 && aghtmlstr(val)) {\n len = strlen(val);\n hs = (char*)malloc(len + 3);\n hs[0] = '<';\n strcpy(hs+1, val);\n hs[len+1] = '>';\n hs[len+2] = '\\0';\n return hs;\n }\n return val;\n",
48
- "}"],
49
- ["char *getv(Agraph_t *g, Agsym_t *a)\n{\n return myagxget(g, a);\n}",
50
- "\n return myagxget(g, a);\n",
51
- "}"],
52
- ["char *getv(Agraph_t *g, char *attr)\n{\n Agsym_t *a;\n\n if (!g || !attr)\n return NULL;\n a = agfindattr(agroot(g), attr);\n return myagxget(g, a);\n}",
53
- "\n Agsym_t *a;\n\n if (!g || !attr)\n return NULL;\n a = agfindattr(agroot(g), attr);\n return myagxget(g, a);\n",
54
- "}"],
55
- ["static void myagxset(void *obj, Agsym_t *a, char *val)\n{\n int len;\n char *hs;\n\n if (a->name[0] == 'l' && val[0] == '<' && strcmp(a->name, \"label\") == 0) {\n len = strlen(val);\n if (val[len-1] == '>') {\n hs = strdup(val+1);\n *(hs+len-2) = '\\0';\n val = agstrdup_html(agraphof(obj),hs);\n free(hs);\n }\n }\n agxset(obj, a, val);\n}",
56
- "\n int len;\n char *hs;\n\n if (a->name[0] == 'l' && val[0] == '<' && strcmp(a->name, \"label\") == 0) {\n len = strlen(val);\n if (val[len-1] == '>') {\n hs = strdup(val+1);\n *(hs+len-2) = '\\0';\n val = agstrdup_html(agraphof(obj),hs);\n free(hs);\n }\n }\n agxset(obj, a, val);\n",
57
- "}"],
58
- ["char *setv(Agraph_t *g, Agsym_t *a, char *val)\n{\n if (!g || !a || !val)\n return NULL;\n myagxset(g, a, val);\n return val;\n}",
59
- "\n if (!g || !a || !val)\n return NULL;\n myagxset(g, a, val);\n return val;\n",
60
- "}"],
61
- ["char *setv(Agraph_t *g, char *attr, char *val)\n{\n Agsym_t *a;\n\n if (!g || !attr || !val)\n return NULL;\n a = agfindattr(agroot(g), attr);\n if (!a)\n a = agraphattr(g->root, attr, emptystring);\n myagxset(g, a, val);\n return val;\n}",
62
- "\n Agsym_t *a;\n\n if (!g || !attr || !val)\n return NULL;\n a = agfindattr(agroot(g), attr);\n if (!a)\n a = agraphattr(g->root, attr, emptystring);\n myagxset(g, a, val);\n return val;\n",
63
- "}"],
64
- ["char *getv(Agnode_t *n, Agsym_t *a)\n{\n if (!n || !a)\n return NULL;\n if (AGTYPE(n) == AGRAPH) // protonode \n\treturn NULL; // FIXME ??\n return myagxget(n, a);\n}",
65
- "\n if (!n || !a)\n return NULL;\n if (AGTYPE(n) == AGRAPH) // protonode \n\treturn NULL; // FIXME ??\n return myagxget(n, a);\n",
66
- "}"],
67
- ["char *getv(Agnode_t *n, char *attr)\n{\n Agraph_t *g;\n Agsym_t *a;\n\n if (!n || !attr)\n return NULL;\n if (AGTYPE(n) == AGRAPH) // protonode \n\treturn NULL; // FIXME ??\n g = agroot(agraphof(n));\n a = agattr(g, AGNODE, attr, NULL);\n return myagxget(n, a);\n}",
68
- "\n Agraph_t *g;\n Agsym_t *a;\n\n if (!n || !attr)\n return NULL;\n if (AGTYPE(n) == AGRAPH) // protonode \n\treturn NULL; // FIXME ??\n g = agroot(agraphof(n));\n a = agattr(g, AGNODE, attr, NULL);\n return myagxget(n, a);\n",
69
- "}"],
70
- ["char *setv(Agnode_t *n, Agsym_t *a, char *val)\n{\n if (!n || !a || !val)\n return NULL;\n if (AGTYPE(n) == AGRAPH) // protonode \n\treturn NULL; // FIXME ??\n myagxset(n, a, val);\n return val;\n}",
71
- "\n if (!n || !a || !val)\n return NULL;\n if (AGTYPE(n) == AGRAPH) // protonode \n\treturn NULL; // FIXME ??\n myagxset(n, a, val);\n return val;\n",
72
- "}"],
73
- ["char *setv(Agnode_t *n, char *attr, char *val)\n{\n Agraph_t *g;\n Agsym_t *a;\n\n if (!n || !attr || !val)\n return NULL;\n if (AGTYPE(n) == AGRAPH) { // protonode \n\tg = (Agraph_t*)n;\n \ta = agattr(g, AGNODE, attr, val); // create default attribute in psuodo protonode\n\t // FIXME? - deal with html in \"label\" attributes\n\treturn val;\n }\n g = agroot(agraphof(n));\n a = agattr(g, AGNODE, attr, NULL);\n if (!a)\n a = agnodeattr(g, attr, emptystring);\n myagxset(n, a, val);\n return val;\n}",
74
- "\n Agraph_t *g;\n Agsym_t *a;\n\n if (!n || !attr || !val)\n return NULL;\n if (AGTYPE(n) == AGRAPH) { // protonode \n\tg = (Agraph_t*)n;\n \ta = agattr(g, AGNODE, attr, val); // create default attribute in psuodo protonode\n\t // FIXME? - deal with html in \"label\" attributes\n\treturn val;\n }\n g = agroot(agraphof(n));\n a = agattr(g, AGNODE, attr, NULL);\n if (!a)\n a = agnodeattr(g, attr, emptystring);\n myagxset(n, a, val);\n return val;\n",
75
- "}"],
76
- ["char *getv(Agedge_t *e, Agsym_t *a)\n{\n if (!e || !a)\n return NULL;\n if (AGTYPE(e) == AGRAPH) // protoedge \n\treturn NULL; // FIXME ??\n return myagxget(e, a);\n}",
77
- "\n if (!e || !a)\n return NULL;\n if (AGTYPE(e) == AGRAPH) // protoedge \n\treturn NULL; // FIXME ??\n return myagxget(e, a);\n",
78
- "}"],
79
- ["char *getv(Agedge_t *e, char *attr)\n{\n Agraph_t *g;\n Agsym_t *a;\n\n if (!e || !attr)\n return NULL;\n if (AGTYPE(e) == AGRAPH) // protoedge \n\treturn NULL; // FIXME ??\n g = agraphof(agtail(e));\n a = agattr(g, AGEDGE, attr, NULL);\n return myagxget(e, a);\n}",
80
- "\n Agraph_t *g;\n Agsym_t *a;\n\n if (!e || !attr)\n return NULL;\n if (AGTYPE(e) == AGRAPH) // protoedge \n\treturn NULL; // FIXME ??\n g = agraphof(agtail(e));\n a = agattr(g, AGEDGE, attr, NULL);\n return myagxget(e, a);\n",
81
- "}"],
82
- ["char *setv(Agedge_t *e, Agsym_t *a, char *val)\n{\n if (!e || !a || !val)\n return NULL;\n if (AGTYPE(e) == AGRAPH) // protoedge \n\treturn NULL; // FIXME ??\n myagxset(e, a, val);\n return val;\n}",
83
- "\n if (!e || !a || !val)\n return NULL;\n if (AGTYPE(e) == AGRAPH) // protoedge \n\treturn NULL; // FIXME ??\n myagxset(e, a, val);\n return val;\n",
84
- "}"],
85
- ["char *setv(Agedge_t *e, char *attr, char *val)\n{\n Agraph_t *g;\n Agsym_t *a;\n\n if (!e || !attr || !val)\n return NULL;\n if (AGTYPE(e) == AGRAPH) { // protoedge \n\tg = (Agraph_t*)e;\n \ta = agattr(g, AGEDGE, attr, val); // create default attribute in pseudo protoedge\n\t // FIXME? - deal with html in \"label\" attributes\n\treturn val;\n }\n g = agroot(agraphof(agtail(e)));\n a = agattr(g, AGEDGE, attr, NULL);\n if (!a)\n a = agattr(g, AGEDGE, attr, emptystring);\n myagxset(e, a, val);\n return val;\n}",
86
- "\n Agraph_t *g;\n Agsym_t *a;\n\n if (!e || !attr || !val)\n return NULL;\n if (AGTYPE(e) == AGRAPH) { // protoedge \n\tg = (Agraph_t*)e;\n \ta = agattr(g, AGEDGE, attr, val); // create default attribute in pseudo protoedge\n\t // FIXME? - deal with html in \"label\" attributes\n\treturn val;\n }\n g = agroot(agraphof(agtail(e)));\n a = agattr(g, AGEDGE, attr, NULL);\n if (!a)\n a = agattr(g, AGEDGE, attr, emptystring);\n myagxset(e, a, val);\n return val;\n",
87
- "}"],
88
- ["Agraph_t *findsubg(Agraph_t *g, char *name)\n{\n if (!g || !name)\n return NULL;\n return agsubg(g, name, 0);\n}",
89
- "\n if (!g || !name)\n return NULL;\n return agsubg(g, name, 0);\n",
90
- "}"],
91
- ["Agnode_t *findnode(Agraph_t *g, char *name)\n{\n if (!g || !name)\n return NULL;\n return agnode(g, name, 0);\n}",
92
- "\n if (!g || !name)\n return NULL;\n return agnode(g, name, 0);\n",
93
- "}"],
94
- ["Agedge_t *findedge(Agnode_t *t, Agnode_t *h)\n{\n if (!t || !h)\n return NULL;\n if (AGTYPE(t) == AGRAPH || AGTYPE(h) == AGRAPH)\n\treturn NULL;\n return agfindedge(agraphof(t), t, h);\n}",
95
- "\n if (!t || !h)\n return NULL;\n if (AGTYPE(t) == AGRAPH || AGTYPE(h) == AGRAPH)\n\treturn NULL;\n return agfindedge(agraphof(t), t, h);\n",
96
- "}"],
97
- ["Agsym_t *findattr(Agraph_t *g, char *name)\n{\n if (!g || !name)\n return NULL;\n return agfindattr(g, name);\n}",
98
- "\n if (!g || !name)\n return NULL;\n return agfindattr(g, name);\n",
99
- "}"],
100
- ["Agsym_t *findattr(Agnode_t *n, char *name)\n{\n if (!n || !name)\n return NULL;\n return agfindattr(n, name);\n}",
101
- "\n if (!n || !name)\n return NULL;\n return agfindattr(n, name);\n",
102
- "}"],
103
- ["Agsym_t *findattr(Agedge_t *e, char *name)\n{\n if (!e || !name)\n return NULL;\n return agfindattr(e, name);\n}",
104
- "\n if (!e || !name)\n return NULL;\n return agfindattr(e, name);\n",
105
- "}"],
106
- ["Agnode_t *headof(Agedge_t *e)\n{\n if (!e)\n return NULL;\n if (AGTYPE(e) == AGRAPH)\n\treturn NULL;\n return aghead(e);\n}",
107
- "\n if (!e)\n return NULL;\n if (AGTYPE(e) == AGRAPH)\n\treturn NULL;\n return aghead(e);\n",
108
- "}"],
109
- ["Agnode_t *tailof(Agedge_t *e)\n{\n if (!e)\n return NULL;\n if (AGTYPE(e) == AGRAPH)\n\treturn NULL;\n return agtail(e);\n}",
110
- "\n if (!e)\n return NULL;\n if (AGTYPE(e) == AGRAPH)\n\treturn NULL;\n return agtail(e);\n",
111
- "}"],
112
- ["Agraph_t *graphof(Agraph_t *g)\n{\n if (!g || g == g->root)\n return NULL;\n return agroot(g);\n}",
113
- "\n if (!g || g == g->root)\n return NULL;\n return agroot(g);\n",
114
- "}"],
115
- ["Agraph_t *graphof(Agedge_t *e)\n{\n if (!e)\n return NULL;\n if (AGTYPE(e) == AGRAPH)\n\treturn (Agraph_t*)e; /* graph of protoedge is itself recast */\n return agraphof(agtail(e));\n}",
116
- "\n if (!e)\n return NULL;\n if (AGTYPE(e) == AGRAPH)\n\treturn (Agraph_t*)e; /* graph of protoedge is itself recast */\n return agraphof(agtail(e));\n",
117
- "}"],
118
- ["Agraph_t *graphof(Agnode_t *n)\n{\n if (!n)\n return NULL;\n if (AGTYPE(n) == AGRAPH)\n\treturn (Agraph_t*)n; /* graph of protonode is itself recast */\n return agraphof(n);\n}",
119
- "\n if (!n)\n return NULL;\n if (AGTYPE(n) == AGRAPH)\n\treturn (Agraph_t*)n; /* graph of protonode is itself recast */\n return agraphof(n);\n",
120
- "}"],
121
- ["Agraph_t *rootof(Agraph_t *g)\n{\n if (!g)\n return NULL;\n return agroot(g);\n}",
122
- "\n if (!g)\n return NULL;\n return agroot(g);\n",
123
- "}"],
124
- ["Agnode_t *protonode(Agraph_t *g)\n{\n if (!g)\n return NULL;\n return (Agnode_t *)g; // gross abuse of the type system!\n}",
125
- "\n if (!g)\n return NULL;\n return (Agnode_t *)g; // gross abuse of the type system!\n",
126
- "}"],
127
- ["Agedge_t *protoedge(Agraph_t *g)\n{\n if (!g)\n return NULL;\n return (Agedge_t *)g; // gross abuse of the type system!\n}",
128
- "\n if (!g)\n return NULL;\n return (Agedge_t *)g; // gross abuse of the type system!\n",
129
- "}"],
130
- ["char *nameof(Agraph_t *g)\n{\n if (!g)\n return NULL;\n return agnameof(g);\n}",
131
- "\n if (!g)\n return NULL;\n return agnameof(g);\n",
132
- "}"],
133
- ["char *nameof(Agnode_t *n)\n{\n if (!n)\n return NULL;\n if (AGTYPE(n) == AGRAPH)\n\treturn NULL;\n return agnameof(n);\n}",
134
- "\n if (!n)\n return NULL;\n if (AGTYPE(n) == AGRAPH)\n\treturn NULL;\n return agnameof(n);\n",
135
- "}"],
136
- ["char *nameof(Agsym_t *a)\n{\n if (!a)\n return NULL;\n return a->name;\n}",
137
- "\n if (!a)\n return NULL;\n return a->name;\n",
138
- "}"],
139
- ["bool ok(Agraph_t *g)\n{\n if (!g) \n return false;\n return true;\n}",
140
- "\n if (!g) \n return false;\n return true;\n",
141
- "}"],
142
- ["bool ok(Agnode_t *n)\n{\n if (!n) \n return false;\n return true;\n}",
143
- "\n if (!n) \n return false;\n return true;\n",
144
- "}"],
145
- ["bool ok(Agedge_t *e)\n{\n if (!e) \n return false;\n return true;\n}",
146
- "\n if (!e) \n return false;\n return true;\n",
147
- "}"],
148
- ["bool ok(Agsym_t *a)\n{\n if (!a) \n return false;\n return true;\n}",
149
- "\n if (!a) \n return false;\n return true;\n",
150
- "}"],
151
- ["Agraph_t *firstsubg(Agraph_t *g)\n{\n if (!g)\n return NULL;\n return agfstsubg(g);\n}",
152
- "\n if (!g)\n return NULL;\n return agfstsubg(g);\n",
153
- "}"],
154
- ["Agraph_t *nextsubg(Agraph_t *g, Agraph_t *sg)\n{\n\n if (!g || !sg)\n return NULL;\n return agnxtsubg(sg);\n}",
155
- "\n\n if (!g || !sg)\n return NULL;\n return agnxtsubg(sg);\n",
156
- "}"],
157
- ["Agraph_t *firstsupg(Agraph_t *g)\n{\n return g->parent;\n}", "\n return g->parent;\n", "}"],
158
- ["Agraph_t *nextsupg(Agraph_t *g, Agraph_t *sg)\n{\n return NULL;\n}",
159
- "\n return NULL;\n",
160
- "}"],
161
- ["Agedge_t *firstout(Agraph_t *g)\n{\n Agnode_t *n;\n Agedge_t *e;\n\n if (!g)\n return NULL;\n for (n = agfstnode(g); n; n = agnxtnode(g, n)) {\n\te = agfstout(g, n);\n\tif (e) return e;\n }\n return NULL;\n}",
162
- "\n Agnode_t *n;\n Agedge_t *e;\n\n if (!g)\n return NULL;\n for (n = agfstnode(g); n; n = agnxtnode(g, n)) {\n\te = agfstout(g, n);\n\tif (e) return e;\n }\n return NULL;\n",
163
- "}"],
164
- ["Agedge_t *nextout(Agraph_t *g, Agedge_t *e)\n{\n Agnode_t *n;\n Agedge_t *ne;\n\n if (!g || !e)\n return NULL;\n ne = agnxtout(g, e);\n if (ne)\n return (ne);\n for (n = agnxtnode(g, agtail(e)); n; n = agnxtnode(g, n)) {\n\tne = agfstout(g, n);\n\tif (ne) return ne;\n }\n return NULL;\n}",
165
- "\n Agnode_t *n;\n Agedge_t *ne;\n\n if (!g || !e)\n return NULL;\n ne = agnxtout(g, e);\n if (ne)\n return (ne);\n for (n = agnxtnode(g, agtail(e)); n; n = agnxtnode(g, n)) {\n\tne = agfstout(g, n);\n\tif (ne) return ne;\n }\n return NULL;\n",
166
- "}"],
167
- ["Agedge_t *firstedge(Agraph_t *g)\n{\n return firstout(g);\n} \n\nAgedge_t *nextedge(Agraph_t *g, Agedge_t *e)\n{\n return nextout(g, e);\n} \n\nAgedge_t *firstout(Agnode_t *n)\n{\n if (!n)\n return NULL;\n return agfstout(agraphof(n), n);\n}",
168
- "\n return firstout(g);\n} \n\nAgedge_t *nextedge(Agraph_t *g, Agedge_t *e)\n{\n return nextout(g, e);\n} \n\nAgedge_t *firstout(Agnode_t *n)\n{\n if (!n)\n return NULL;\n return agfstout(agraphof(n), n);\n",
169
- "}"],
170
- ["Agedge_t *nextout(Agnode_t *n, Agedge_t *e)\n{\n if (!n || !e)\n return NULL;\n return agnxtout(agraphof(n), e);\n}",
171
- "\n if (!n || !e)\n return NULL;\n return agnxtout(agraphof(n), e);\n",
172
- "}"],
173
- ["Agnode_t *firsthead(Agnode_t *n)\n{\n Agedge_t *e;\n\n if (!n)\n return NULL;\n e = agfstout(agraphof(n), n);\n if (!e)\n return NULL;\n return aghead(e);\n}",
174
- "\n Agedge_t *e;\n\n if (!n)\n return NULL;\n e = agfstout(agraphof(n), n);\n if (!e)\n return NULL;\n return aghead(e);\n",
175
- "}"],
176
- ["Agnode_t *nexthead(Agnode_t *n, Agnode_t *h)\n{\n Agedge_t *e;\n Agraph_t *g;\n\n if (!n || !h)\n return NULL;\n g = agraphof(n);\n e = agfindedge(g, n, h);\n if (!e)\n return NULL;\n do {\n e = agnxtout(g, AGMKOUT(e));\n if (!e)\n return NULL;\n } while (aghead(e) == h);\n return aghead(e);\n}",
177
- "\n Agedge_t *e;\n Agraph_t *g;\n\n if (!n || !h)\n return NULL;\n g = agraphof(n);\n e = agfindedge(g, n, h);\n if (!e)\n return NULL;\n do {\n e = agnxtout(g, AGMKOUT(e));\n if (!e)\n return NULL;\n } while (aghead(e) == h);\n return aghead(e);\n",
178
- "}"],
179
- ["Agedge_t *firstedge(Agnode_t *n)\n{\n if (!n)\n return NULL;\n return agfstedge(agraphof(n), n);\n} \n\nAgedge_t *nextedge(Agnode_t *n, Agedge_t *e)\n{\n if (!n || !e)\n return NULL;\n return agnxtedge(agraphof(n), e, n); \n} \n\nAgedge_t *firstin(Agraph_t *g)\n{\n Agnode_t *n;\n\n if (!g)\n return NULL;\n n = agfstnode(g);\n if (!n)\n return NULL;\n return agfstin(g, n);\n}",
180
- "\n if (!n)\n return NULL;\n return agfstedge(agraphof(n), n);\n} \n\nAgedge_t *nextedge(Agnode_t *n, Agedge_t *e)\n{\n if (!n || !e)\n return NULL;\n return agnxtedge(agraphof(n), e, n); \n} \n\nAgedge_t *firstin(Agraph_t *g)\n{\n Agnode_t *n;\n\n if (!g)\n return NULL;\n n = agfstnode(g);\n if (!n)\n return NULL;\n return agfstin(g, n);\n",
181
- "}"],
182
- ["Agedge_t *nextin(Agraph_t *g, Agedge_t *e)\n{\n Agnode_t *n;\n Agedge_t *ne;\n\n if (!g || !e)\n return NULL;\n ne = agnxtin(g, e);\n if (ne)\n return (ne);\n n = agnxtnode(g, aghead(e));\n if (!n)\n return NULL;\n return agfstin(g, n);\n}",
183
- "\n Agnode_t *n;\n Agedge_t *ne;\n\n if (!g || !e)\n return NULL;\n ne = agnxtin(g, e);\n if (ne)\n return (ne);\n n = agnxtnode(g, aghead(e));\n if (!n)\n return NULL;\n return agfstin(g, n);\n",
184
- "}"],
185
- ["Agedge_t *firstin(Agnode_t *n)\n{\n if (!n)\n return NULL;\n return agfstin(agraphof(n), n);\n}",
186
- "\n if (!n)\n return NULL;\n return agfstin(agraphof(n), n);\n",
187
- "}"],
188
- ["Agedge_t *nextin(Agnode_t *n, Agedge_t *e)\n{\n if (!n || !e)\n return NULL;\n return agnxtin(agraphof(n), e);\n}",
189
- "\n if (!n || !e)\n return NULL;\n return agnxtin(agraphof(n), e);\n",
190
- "}"],
191
- ["Agnode_t *firsttail(Agnode_t *n)\n{\n Agedge_t *e;\n\n if (!n)\n return NULL;\n e = agfstin(agraphof(n), n);\n if (!e)\n return NULL;\n return agtail(e);\n}",
192
- "\n Agedge_t *e;\n\n if (!n)\n return NULL;\n e = agfstin(agraphof(n), n);\n if (!e)\n return NULL;\n return agtail(e);\n",
193
- "}"],
194
- ["Agnode_t *nexttail(Agnode_t *n, Agnode_t *t)\n{\n Agedge_t *e;\n Agraph_t *g;\n\n if (!n || !t)\n return NULL;\n g = agraphof(n);\n e = agfindedge(g, t, n);\n if (!e)\n return NULL;\n do {\n e = agnxtin(g, AGMKIN(e));\n if (!e)\n return NULL;\n } while (agtail(e) == t);\n return agtail(e);\n}",
195
- "\n Agedge_t *e;\n Agraph_t *g;\n\n if (!n || !t)\n return NULL;\n g = agraphof(n);\n e = agfindedge(g, t, n);\n if (!e)\n return NULL;\n do {\n e = agnxtin(g, AGMKIN(e));\n if (!e)\n return NULL;\n } while (agtail(e) == t);\n return agtail(e);\n",
196
- "}"],
197
- ["Agnode_t *firstnode(Agraph_t *g)\n{\n if (!g)\n return NULL;\n return agfstnode(g);\n}",
198
- "\n if (!g)\n return NULL;\n return agfstnode(g);\n",
199
- "}"],
200
- ["Agnode_t *nextnode(Agraph_t *g, Agnode_t *n)\n{\n if (!g || !n)\n return NULL;\n return agnxtnode(g, n);\n}",
201
- "\n if (!g || !n)\n return NULL;\n return agnxtnode(g, n);\n",
202
- "}"],
203
- ["Agnode_t *firstnode(Agedge_t *e)\n{\n if (!e)\n return NULL;\n return agtail(e);\n}",
204
- "\n if (!e)\n return NULL;\n return agtail(e);\n",
205
- "}"],
206
- ["Agnode_t *nextnode(Agedge_t *e, Agnode_t *n)\n{\n if (!e || n != agtail(e))\n return NULL;\n return aghead(e);\n}",
207
- "\n if (!e || n != agtail(e))\n return NULL;\n return aghead(e);\n",
208
- "}"],
209
- ["Agsym_t *firstattr(Agraph_t *g)\n{\n if (!g)\n return NULL;\n g = agroot(g);\n return agnxtattr(g,AGRAPH,NULL);\n}",
210
- "\n if (!g)\n return NULL;\n g = agroot(g);\n return agnxtattr(g,AGRAPH,NULL);\n",
211
- "}"],
212
- ["Agsym_t *nextattr(Agraph_t *g, Agsym_t *a)\n{\n if (!g || !a)\n return NULL;\n g = agroot(g);\n return agnxtattr(g,AGRAPH,a);\n}",
213
- "\n if (!g || !a)\n return NULL;\n g = agroot(g);\n return agnxtattr(g,AGRAPH,a);\n",
214
- "}"],
215
- ["Agsym_t *firstattr(Agnode_t *n)\n{\n Agraph_t *g;\n\n if (!n)\n return NULL;\n g = agraphof(n);\n return agnxtattr(g,AGNODE,NULL);\n}",
216
- "\n Agraph_t *g;\n\n if (!n)\n return NULL;\n g = agraphof(n);\n return agnxtattr(g,AGNODE,NULL);\n",
217
- "}"],
218
- ["Agsym_t *nextattr(Agnode_t *n, Agsym_t *a)\n{\n Agraph_t *g;\n\n if (!n || !a)\n return NULL;\n g = agraphof(n);\n return agnxtattr(g,AGNODE,a);\n}",
219
- "\n Agraph_t *g;\n\n if (!n || !a)\n return NULL;\n g = agraphof(n);\n return agnxtattr(g,AGNODE,a);\n",
220
- "}"],
221
- ["Agsym_t *firstattr(Agedge_t *e)\n{\n Agraph_t *g;\n\n if (!e)\n return NULL;\n g = agraphof(agtail(e));\n return agnxtattr(g,AGEDGE,NULL);\n}",
222
- "\n Agraph_t *g;\n\n if (!e)\n return NULL;\n g = agraphof(agtail(e));\n return agnxtattr(g,AGEDGE,NULL);\n",
223
- "}"],
224
- ["Agsym_t *nextattr(Agedge_t *e, Agsym_t *a)\n{\n Agraph_t *g;\n\n if (!e || !a)\n return NULL;\n g = agraphof(agtail(e));\n return agnxtattr(g,AGEDGE,a);\n}",
225
- "\n Agraph_t *g;\n\n if (!e || !a)\n return NULL;\n g = agraphof(agtail(e));\n return agnxtattr(g,AGEDGE,a);\n",
226
- "}"],
227
- ["bool rm(Agraph_t *g)\n{\n if (!g)\n return false;\n#if 0\n Agraph_t* sg;\n for (sg = agfstsubg (g); sg; sg = agnxtsubg (sg))\n\trm(sg);\n if (g == agroot(g))\n\tagclose(g);\n else\n agdelete(agparent(g), g);\n#endif\n /* The rm function appears to have the semantics of agclose, so\n * we should just do that, and let cgraph take care of all the\n * details.\n */\n agclose(g);\n return true;\n}",
228
- "\n if (!g)\n return false;\n#if 0\n Agraph_t* sg;\n for (sg = agfstsubg (g); sg; sg = agnxtsubg (sg))\n\trm(sg);\n if (g == agroot(g))\n\tagclose(g);\n else\n agdelete(agparent(g), g);\n#endif\n /* The rm function appears to have the semantics of agclose, so\n * we should just do that, and let cgraph take care of all the\n * details.\n */\n agclose(g);\n return true;\n",
229
- "}"],
230
- ["bool rm(Agnode_t *n)\n{\n if (!n)\n return false;\n // removal of the protonode is not permitted\n if (agnameof(n)[0] == '\\001' && strcmp (agnameof(n), \"\\001proto\") ==0)\n return false;\n agdelete(agraphof(n), n);\n return true;\n}",
231
- "\n if (!n)\n return false;\n // removal of the protonode is not permitted\n if (agnameof(n)[0] == '\\001' && strcmp (agnameof(n), \"\\001proto\") ==0)\n return false;\n agdelete(agraphof(n), n);\n return true;\n",
232
- "}"],
233
- ["bool rm(Agedge_t *e)\n{\n if (!e)\n return false;\n // removal of the protoedge is not permitted\n if ((agnameof(aghead(e))[0] == '\\001' && strcmp (agnameof(aghead(e)), \"\\001proto\") == 0)\n || (agnameof(agtail(e))[0] == '\\001' && strcmp (agnameof(agtail(e)), \"\\001proto\") == 0))\n return false;\n agdelete(agroot(agraphof(aghead(e))), e);\n return true;\n}",
234
- "\n if (!e)\n return false;\n // removal of the protoedge is not permitted\n if ((agnameof(aghead(e))[0] == '\\001' && strcmp (agnameof(aghead(e)), \"\\001proto\") == 0)\n || (agnameof(agtail(e))[0] == '\\001' && strcmp (agnameof(agtail(e)), \"\\001proto\") == 0))\n return false;\n agdelete(agroot(agraphof(aghead(e))), e);\n return true;\n",
235
- "}"],
236
- ["bool layout(Agraph_t *g, const char *engine)\n{\n int err;\n\n if (!g)\n return false;\n err = gvFreeLayout(gvc, g); /* ignore errors */\n err = gvLayout(gvc, g, engine);\n return (! err);\n}",
237
- "\n int err;\n\n if (!g)\n return false;\n err = gvFreeLayout(gvc, g); /* ignore errors */\n err = gvLayout(gvc, g, engine);\n return (! err);\n",
238
- "}"],
239
- ["bool render(Agraph_t *g)\n{\n if (!g)\n return false;\n attach_attrs(g);\n return true;\n}",
240
- "\n if (!g)\n return false;\n attach_attrs(g);\n return true;\n",
241
- "}"],
242
- ["bool render(Agraph_t *g, const char *format)\n{\n int err;\n\n if (!g)\n return false;\n err = gvRender(gvc, g, format, stdout);\n return (! err);\n}",
243
- "\n int err;\n\n if (!g)\n return false;\n err = gvRender(gvc, g, format, stdout);\n return (! err);\n",
244
- "}"],
245
- ["bool render(Agraph_t *g, const char *format, FILE *f)\n{\n int err;\n\n if (!g)\n return false;\n err = gvRender(gvc, g, format, f);\n return (! err);\n}",
246
- "\n int err;\n\n if (!g)\n return false;\n err = gvRender(gvc, g, format, f);\n return (! err);\n",
247
- "}"],
248
- ["bool renderchannel(Agraph_t *g, const char *format, const char *channelname)\n{\n int err;\n\n if (!g)\n return false;\n gv_channel_writer_init(gvc);\n err = gvRender(gvc, g, format, (FILE*)channelname);\n gv_writer_reset (gvc); /* Reset to default */\n return (! err);\n}",
249
- "\n int err;\n\n if (!g)\n return false;\n gv_channel_writer_init(gvc);\n err = gvRender(gvc, g, format, (FILE*)channelname);\n gv_writer_reset (gvc); /* Reset to default */\n return (! err);\n",
250
- "}"],
251
- ["bool render(Agraph_t *g, const char *format, const char *filename)\n{\n int err;\n\n if (!g)\n return false;\n err = gvRenderFilename(gvc, g, format, filename);\n return (! err);\n}",
252
- "\n int err;\n\n if (!g)\n return false;\n err = gvRenderFilename(gvc, g, format, filename);\n return (! err);\n",
253
- "}"],
254
- ["char* renderresult(Agraph_t *g, const char *format)\n{\n BA ba;\n\n if (!g)\n return NULL;\n if (!GD_alg(g))\n return NULL;\n ba.sz = BUFSIZ;\n ba.data = (char*)malloc(ba.sz*sizeof(char)); /* must be freed by wrapper code */\n ba.len = 0;\n gv_string_writer_init(gvc);\n (void)gvRender(gvc, g, format, (FILE*)&ba);\n gv_writer_reset (gvc); /* Reset to default */\n *((int*)GD_alg(g)) = ba.len;\n return ba.data;\n}",
255
- "\n BA ba;\n\n if (!g)\n return NULL;\n if (!GD_alg(g))\n return NULL;\n ba.sz = BUFSIZ;\n ba.data = (char*)malloc(ba.sz*sizeof(char)); /* must be freed by wrapper code */\n ba.len = 0;\n gv_string_writer_init(gvc);\n (void)gvRender(gvc, g, format, (FILE*)&ba);\n gv_writer_reset (gvc); /* Reset to default */\n *((int*)GD_alg(g)) = ba.len;\n return ba.data;\n",
256
- "}"],
257
- ["void renderresult(Agraph_t *g, const char *format, char *outdata)\n{\n if (!g)\n return;\n gv_string_writer_init(gvc);\n (void)gvRender(gvc, g, format, (FILE*)outdata);\n gv_writer_reset (gvc); /* Reset to default */\n}",
258
- "\n if (!g)\n return;\n gv_string_writer_init(gvc);\n (void)gvRender(gvc, g, format, (FILE*)outdata);\n gv_writer_reset (gvc); /* Reset to default */\n",
259
- "}"],
260
- ["char* renderdata(Agraph_t *g, const char *format)\n{\n int err;\n char *data;\n unsigned int length;\n\n if (!g)\n\treturn NULL;\n err = gvRenderData(gvc, g, format, &data, &length);\n if (err)\n\treturn NULL;\n data = (char*)realloc(data, length + 1);\n return data;\n}",
261
- "\n int err;\n char *data;\n unsigned int length;\n\n if (!g)\n\treturn NULL;\n err = gvRenderData(gvc, g, format, &data, &length);\n if (err)\n\treturn NULL;\n data = (char*)realloc(data, length + 1);\n return data;\n",
262
- "}"],
263
- ["bool write(Agraph_t *g, FILE *f)\n{\n int err;\n\n if (!g)\n return false;\n err = agwrite(g, f);\n return (! err);\n}",
264
- "\n int err;\n\n if (!g)\n return false;\n err = agwrite(g, f);\n return (! err);\n",
265
- "}"],
266
- ["bool write(Agraph_t *g, const char *filename)\n{\n FILE *f;\n int err;\n\n if (!g)\n return false;\n f = fopen(filename, \"w\");\n if (!f)\n return false;\n err = agwrite(g, f);\n fclose(f);\n return (! err);\n}",
267
- "\n FILE *f;\n int err;\n\n if (!g)\n return false;\n f = fopen(filename, \"w\");\n if (!f)\n return false;\n err = agwrite(g, f);\n fclose(f);\n return (! err);\n",
268
- "}"],
269
- ["bool tred(Agraph_t *g)\n{\n int err;\n\n if (!g)\n return false;\n err = gvToolTred(g);\n return (! err);\n}",
270
- "\n int err;\n\n if (!g)\n return false;\n err = gvToolTred(g);\n return (! err);\n",
271
- "}"]]