they are mapped to and from strings.
.P0
-struct Agiddisc_s { /* object ID allocator */
- void *(*open)(Agraph_t *g); /* associated with a graph */
- int (*map)(void *state, int objtype, char *str, ulong *id, int createflag);
- int (*alloc)(void *state, int objtype, ulong id);
- void (*free)(void *state, int objtype, ulong id);
- char *(*print)(void *state, int objtype, ulong id);
- void (*close)(void *state);
-} ;
+struct Agiddisc_s { /* object ID allocator */
+ void *(*open) (Agraph_t * g); /* associated with a graph */
+ long (*map) (void *state, int objtype, char *str, unsigned long *id, int createflag);
+ long (*alloc) (void *state, int objtype, unsigned long id);
+ void (*free) (void *state, int objtype, unsigned long id);
+ char *(*print) (void *state, int objtype, unsigned long id);
+ void (*close) (void *state);
+};
.P1
.PP
\fIopen\fP permits the ID discipline to initialize any data
-structures that maintains per individual graph.
-Its return value is then passed as the first argument to
+structures that it maintains per individual graph.
+Its return value is then passed as the first argument (void *state) to
all subsequent ID manager calls.
.PP
\fIalloc\fP informs the ID manager that Libcgraph is attempting