|
Graphviz 16.1.1~dev.20260926.2046
|
implements agwrite, agstrcanon, and agcanonStr More...
#include "config.h"#include <assert.h>#include <cgraph/agstrcanon.h>#include <cgraph/cghdr.h>#include <ctype.h>#include <inttypes.h>#include <limits.h>#include <stdbool.h>#include <stdio.h>#include <stdlib.h>#include <util/gv_ctype.h>#include <util/strcasecmp.h>Go to the source code of this file.
Data Structures | |
| struct | info_t |
Macros | |
| #define | EMPTY(s) (((s) == 0) || (s)[0] == '\0') |
| #define | MAX_OUTPUTLINE 128 |
| #define | MIN_OUTPUTLINE 60 |
Typedefs | |
| typedef void | iochan_t |
Functions | |
| static int | ioput (Agraph_t *g, iochan_t *ofile, char *str) |
| static int | write_body (Agraph_t *g, iochan_t *ofile, info_t *info) |
| static info_t | before_write (Agraph_t *) |
| static void | after_write (info_t) |
| static int | indent (Agraph_t *g, iochan_t *ofile, const info_t info) |
| static bool | is_id_char (char c) |
| static bool | is_escape (const char *str) |
| static char * | agstrcanon_ (char *arg, char *buf) |
| static char * | agcanonhtmlstr (const char *arg, char *buf) |
| char * | agstrcanon (char *arg, char *buf) |
| static int | write_canonstr_ (Agraph_t *g, iochan_t *ofile, char *str, bool chk) |
| static int | write_canonstr (Agraph_t *g, iochan_t *ofile, char *str, bool known) |
| static int | write_dict (Agraph_t *g, iochan_t *ofile, char *name, Dict_t *dict, bool top, info_t *info) |
| static int | write_dicts (Agraph_t *g, iochan_t *ofile, bool top, info_t *info) |
| static int | write_hdr (Agraph_t *g, iochan_t *ofile, bool top, info_t *info) |
| static int | write_trl (Agraph_t *g, iochan_t *ofile, info_t *info) |
| static bool | is_anonymous (Agraph_t *g) |
| static bool | irrelevant_subgraph (Agraph_t *g) |
| static bool | has_no_edges (Agraph_t *g, Agnode_t *n) |
| static bool | not_default_attrs (Agraph_t *g, Agnode_t *n) |
| static int | write_subgs (Agraph_t *g, iochan_t *ofile, info_t *info) |
| static int | write_edge_name (Agedge_t *e, iochan_t *ofile, bool terminate, info_t *info) |
| static int | write_nondefault_attrs (void *obj, iochan_t *ofile, Dict_t *defdict, info_t *info) |
| static int | write_nodename (Agnode_t *n, iochan_t *ofile) |
| static int | attrs_written (void *obj) |
| static int | write_node (Agraph_t *subg, Agnode_t *n, iochan_t *ofile, Dict_t *d, info_t *info) |
| static bool | write_node_test (Agraph_t *g, Agnode_t *n, info_t *info) |
| static int | write_port (Agedge_t *e, iochan_t *ofile, Agsym_t *port) |
| static int | write_edge (Agedge_t *e, iochan_t *ofile, Dict_t *d, info_t *info) |
| static int | write_edges (iochan_t *ofile, Dict_t *d, info_t *info) |
| static void | set_attrwf (Agraph_t *g, bool toplevel, bool value) |
| int | agwrite (Agraph_t *g, void *ofile) |
| Return 0 on success, EOF on failure. | |
| static uint64_t | subgdfs (Agraph_t *g, uint64_t ix, info_t *info) |
Variables | |
| static int | Max_outputline = MAX_OUTPUTLINE |
| static Agsym_t * | Tailport |
| static Agsym_t * | Headport |
| static Agedge_t *const | EDGE_DONE = (Agedge_t *)-1 |
| sentinel marking an edge that has already been written out | |
|
static |
|
static |
Canonicalize html strings.
Definition at line 208 of file write.c.
Referenced by agstrcanon().
|
static |
Definition at line 117 of file write.c.
References cnt(), EMPTY, gv_isalnum(), gv_isdigit(), is_escape(), is_id_char(), Max_outputline, NULL, and tok().
Referenced by agstrcanon(), and write_canonstr_().
|
static |
Definition at line 557 of file write.c.
References AGATTRWF.
Referenced by write_edge(), and write_node().
Definition at line 764 of file write.c.
References AGEDGE, AGNODE, AGRAPH, Agraph_s::clos, gv_calloc(), Agclos_s::seq, set_attrwf(), and subgdfs().
Referenced by agwrite().
Definition at line 423 of file write.c.
References agfstin(), agfstout(), and NULL.
Referenced by write_node_test().
Definition at line 63 of file write.c.
References ioput().
Referenced by write_dict(), write_edge(), write_hdr(), write_node(), write_nondefault_attrs(), and write_trl().
Definition at line 37 of file write.c.
Referenced by indent(), write_canonstr_(), write_dict(), write_edge(), write_edge_name(), write_hdr(), write_node(), write_nodename(), write_nondefault_attrs(), write_port(), and write_trl().
|
static |
Definition at line 400 of file write.c.
References agattrrec(), agdatadict(), agparent(), agroot(), Agdatadict_s::dict, dtsize(), Agdatadict_s::e, is_anonymous(), Agdatadict_s::n, and Agattr_s::str.
Referenced by write_subgs().
|
static |
is this graph unnamed?
| g | Graph to inspect |
Definition at line 383 of file write.c.
References AGDISC, AGID, AgIdDisc, agnameof(), LOCALNAMEPREFIX, and NULL.
Referenced by irrelevant_subgraph().
|
static |
Definition at line 79 of file write.c.
Referenced by agstrcanon_().
|
static |
Definition at line 73 of file write.c.
References gv_isalnum().
Referenced by agstrcanon_().
Definition at line 427 of file write.c.
References agattrrec(), Agsym_s::defval, Agattr_s::dict, dtfirst, dtnext, Agsym_s::id, and Agattr_s::str.
Referenced by write_node_test().
|
static |
Definition at line 708 of file write.c.
References AGATTRWF, agfstnode(), agfstout(), agfstsubg(), agnxtnode(), agnxtout(), agnxtsubg(), and set_attrwf().
Referenced by before_write(), and set_attrwf().
Definition at line 753 of file write.c.
References agfstsubg(), agnxtsubg(), AGSEQ, and subgdfs().
Referenced by before_write(), and subgdfs().
Definition at line 672 of file write.c.
References agdatadict(), agfstnode(), agfstout(), aghead, agnxtnode(), agnxtout(), AGSEQ, Agdatadict_s::dict, Agdatadict_s::e, EDGE_DONE, Agdatadict_s::n, NULL, prev, write_edges(), write_node(), write_node_test(), and write_subgs().
Referenced by agwrite(), and write_subgs().
| known | Is str already known to be a reference-counted string? |
Definition at line 243 of file write.c.
References agstrdup(), agstrfree(), str, and write_canonstr_().
Referenced by write_dict(), write_edge_name(), write_hdr(), write_nodename(), write_nondefault_attrs(), and write_port().
Definition at line 224 of file write.c.
References agstrcanon(), agstrcanon_(), agstrcanon_bytes(), free(), ioput(), malloc(), NULL, and str.
Referenced by write_canonstr(), and write_port().
|
static |
Definition at line 259 of file write.c.
References cnt(), Agsym_s::defval, dtfirst, dtnext, dtsearch, dtview(), EMPTY, indent(), ioput(), Agsym_s::name, NULL, Agsym_s::print, top(), view, and write_canonstr().
Referenced by write_dicts().
Definition at line 308 of file write.c.
References agdatadict(), Agdatadict_s::dict, Agdatadict_s::e, Agdatadict_s::g, Agdatadict_s::n, top(), and write_dict().
Referenced by write_hdr().
Definition at line 627 of file write.c.
References AGHEAD, agisdirected(), agraphof(), AGTAIL, attrs_written(), Headport, indent(), ioput(), Tailport, write_edge_name(), write_nodename(), write_nondefault_attrs(), and write_port().
Referenced by write_edges().
Definition at line 458 of file write.c.
References agnameof(), agraphof(), EMPTY, ioput(), and write_canonstr().
Referenced by write_edge(), and write_nondefault_attrs().
write out all the edges pending in info->edge
| ofile | Channel to write output to |
| d | Attribute defaults |
| info | State for traversal |
Definition at line 659 of file write.c.
References EDGE_DONE, NULL, and write_edge().
Referenced by write_body().
Definition at line 320 of file write.c.
References agattr_text(), AGATTRWF, AGEDGE, agisstrict(), agnameof(), agparent(), Agraph_s::desc, Agdesc_s::directed, Headport, HEADPORT_ID, indent(), ioput(), LOCALNAMEPREFIX, NULL, Tailport, TAILPORT_ID, top(), write_canonstr(), and write_dicts().
Referenced by agwrite(), and write_subgs().
|
static |
Definition at line 559 of file write.c.
References agraphof(), AGSEQ, attrs_written(), indent(), ioput(), write_nodename(), and write_nondefault_attrs().
Referenced by write_body().
Definition at line 580 of file write.c.
References AGSEQ, has_no_edges(), and not_default_attrs().
Referenced by write_body().
Definition at line 536 of file write.c.
References AGID, agnameof(), agraphof(), ioput(), and write_canonstr().
Referenced by write_edge(), and write_node().
|
static |
Definition at line 483 of file write.c.
References agattrrec(), AGATTRWF, AGINEDGE, AGOUTEDGE, agraphof(), AGTYPE, cnt(), Agsym_s::defval, dtfirst, dtnext, Headport, Agsym_s::id, indent(), ioput(), Agsym_s::name, Agattr_s::str, Tailport, write_canonstr(), and write_edge_name().
Referenced by write_edge(), and write_node().
Definition at line 590 of file write.c.
References aghtmlstr(), agraphof(), agxget(), ioput(), write_canonstr(), and write_canonstr_().
Referenced by write_edge().
Definition at line 441 of file write.c.
References agfstsubg(), agnxtsubg(), irrelevant_subgraph(), write_body(), write_hdr(), write_subgs(), and write_trl().
Referenced by write_body(), and write_subgs().
Definition at line 47 of file write.c.
Referenced by write_body(), and write_edges().
|
static |
Definition at line 44 of file write.c.
Referenced by write_edge(), write_hdr(), and write_nondefault_attrs().
|
static |
Definition at line 43 of file write.c.
Referenced by agstrcanon_(), and agwrite().
|
static |
Definition at line 44 of file write.c.
Referenced by write_edge(), write_hdr(), and write_nondefault_attrs().