]> granicus.if.org Git - graphviz/commitdiff
change agsetodisc() to agsetiodisc() and add hook for fread()
authorellson <devnull@localhost>
Thu, 26 Feb 2009 16:03:13 +0000 (16:03 +0000)
committerellson <devnull@localhost>
Thu, 26 Feb 2009 16:03:13 +0000 (16:03 +0000)
cmd/dot/dot.c
cmd/tools/gvpack.c
lib/graph/graph.h
lib/graph/graphio.c
lib/graph/libgraph.h
lib/gvc/gvc.c
lib/gvc/gvplugin.c

index 7bf38f94ed237af77435b43e8082a914c39b6a37..f207f6f246b856721b59b3eeac4b1c8abf9a30aa 100644 (file)
@@ -129,7 +129,7 @@ static graph_t *create_test_graph(void)
     /* Create a new graph */
 #ifndef WITH_CGRAPH
     aginit();
-    agsetodisc(gvfwrite, gvferror);
+    agsetiodisc(NULL, gvfwrite, gvferror);
     g = agopen("new_graph", AGDIGRAPH);
 #else /* WITH_CGRAPH */
     g = agopen("new_graph", Agdirected,NIL(Agdisc_t *));
index 590ec7e8ffbd611c50d84e06f67a120a8298e19d..5c12a240cac3402d7f16f865adbb56e68005b1bf 100644 (file)
@@ -163,7 +163,7 @@ static void init(int argc, char *argv[])
     int c;
 
     aginit();
-    agsetodisc(gvfwrite, gvferror);
+    agsetiodisc(NULL, gvfwrite, gvferror);
     while ((c = getopt(argc, argv, ":ngvum:o:G:?")) != -1) {
        switch (c) {
        case 'n':
index 52ed60dbe1f5db1b2003feb145526756f9054cee..1a15a87bef4223891a4574de1634797cac2563bb 100644 (file)
@@ -163,7 +163,8 @@ extern "C" {
     extern void agreadline(int);
     extern void agsetfile(char *);
     extern Agraph_t *agmemread(char *);
-    extern void agsetodisc(
+    extern void agsetiodisc(
+        size_t (*myfread) (void *ptr, size_t size, size_t nmemb, FILE *stream),
        size_t (*myfwrite) (const void *ptr, size_t size, size_t nmemb, FILE *stream),
        int (*myferror) (FILE *stream) );
     extern void agfprintf(FILE *fp, const char *format, ...);
index 2186588bcf06b637e369050a62955f5d75ac15db..08b29dc6bce12753efa84d459f9e17e3a5c0ee82 100644 (file)
@@ -177,16 +177,18 @@ char *agstrcanon(char *arg, char *buf)
        return (_agstrcanon(arg, buf));
 }
 
-void agsetodisc(
+void agsetiodisc(
+    size_t (*myfread) (void *ptr, size_t size, size_t nmemb, FILE *stream),
     size_t (*myfwrite) (const void *ptr, size_t size, size_t nmemb, FILE *stream),
     int (*myferror) (FILE *stream)
 )
 {
-    AG.fwrite = myfwrite;
+    if (myfread) AG.fread = myfread;
+    if (myfwrite) AG.fwrite = myfwrite;
 #if defined(__SUNPRO_C)
 #undef ferror
-    AG.ferror = myferror;
 #endif
+    if (myferror) AG.ferror = myferror;
 }
 
 /* agfprintf:
index 83563a07060b34a9c6350a478bf6e5b5978dac7c..c54225e3380af74b46e1c9159faee932723cdc66 100644 (file)
@@ -129,6 +129,7 @@ extern "C" {
        char *linebuf;
        short syntax_errors;
        unsigned char accepting_state, init_called;
+       size_t (*fread) (void *ptr, size_t size, size_t nmemb, FILE *stream);
        size_t (*fwrite) (const void *ptr, size_t size, size_t nmemb, FILE *stream);
        int (*ferror) (FILE *stream);
     } AG;
index 45b02bd0930b915f7fd155431a7d5023f06aa7f0..0f0831df3026326301d3df7d5058dd109b18c2d9 100644 (file)
@@ -32,7 +32,7 @@ GVC_t *gvContext(void)
 
 #ifndef WITH_CGRAPH
     aginit();
-    agsetodisc(gvfwrite, gvferror);
+    agsetiodisc(NULL, gvfwrite, gvferror);
     agnodeattr(NULL, "label", NODENAME_ESC);
 #else
     agattr(NULL, AGNODE, "label", NODENAME_ESC);
@@ -49,7 +49,7 @@ GVC_t *gvContextPlugins(const lt_symlist_t *builtins, int demand_loading)
 
 #ifndef WITH_CGRAPH
     aginit();
-    agsetodisc(gvfwrite, gvferror);
+    agsetiodisc(NULL, gvfwrite, gvferror);
     agnodeattr(NULL, "label", NODENAME_ESC);
 #else
     agattr(NULL, AGNODE, "label", NODENAME_ESC);
index 70b429c950ba063ed00fdced61f21a3f29feed13..7271618c62eee985e8691317b27e16afc90e8b82 100644 (file)
@@ -467,7 +467,7 @@ Agraph_t * gvplugin_graph(GVC_t * gvc)
 
 #ifndef WITH_CGRAPH
     aginit();
-    agsetodisc(gvfwrite, gvferror);
+    agsetiodisc(NULL, gvfwrite, gvferror);
     /* set persistent attributes here */
     agraphattr(NULL, "label", "");
     agraphattr(NULL, "rankdir", "");