1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135
|
/* $Id: utils.h,v 1.38 2009/10/16 15:47:47 erg Exp $ $Revision: 1.38 $ */
/* vim:set shiftwidth=4 ts=8: */
/**********************************************************
* This software is part of the graphviz package *
* http://www.graphviz.org/ *
* *
* Copyright (c) 1994-2004 AT&T Corp. *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Corp. *
* *
* Information and Software Systems Research *
* AT&T Research, Florham Park NJ *
**********************************************************/
#ifndef _UTILS_H
#define _UTILS_H 1
#ifdef __cplusplus
extern "C" {
#endif
#ifdef GVDLL
#define extern __declspec(dllexport)
#else
#define extern
#endif
/*visual studio*/
#ifdef WIN32_DLL
#ifndef GVC_EXPORTS
#define extern __declspec(dllimport)
#endif
#endif
/*end visual studio*/
#ifndef HAVE_STRCASECMP
extern int strcasecmp(const char *s1, const char *s2);
#endif
#ifndef HAVE_STRNCASECMP
extern int strncasecmp(const char *s1, const char *s2, size_t n);
#endif
extern nodequeue *new_queue(int);
extern void free_queue(nodequeue *);
extern void enqueue(nodequeue *, Agnode_t *);
extern Agnode_t *dequeue(nodequeue *);
extern pointf Bezier(pointf *, int, double, pointf *, pointf *);
extern void attach_attrs(graph_t * g);
extern void attach_attrs_and_arrows(graph_t*, int*, int*);
extern char *xml_string(char *str);
extern void write_plain(GVJ_t * job, graph_t * g, FILE * f, boolean extend);
extern void output_point(agxbuf *xbuf, pointf p);
extern char *ps_string(char *s, int);
extern char *strdup_and_subst_obj(char *str, void *obj);
extern char *xml_url_string(char *s);
extern void epsf_emit_body(GVJ_t *job, usershape_t *us);
extern void epsf_define(GVJ_t * job);
extern void undoClusterEdges(graph_t * g);
extern void common_init_node_opt(node_t * n, int shape_init_flag);
#ifndef WITH_CGRAPH
extern attrsym_t* safe_dcl(graph_t*, void*, char*, char*,
attrsym_t * (*fun) (Agraph_t *, char *, char *));
#else
extern attrsym_t* safe_dcl(graph_t * g, int obj_kind, char *name, char *def);
#endif
extern int late_int(void *, Agsym_t *, int, int);
extern double late_double(void *, Agsym_t *, double, double);
extern char *late_nnstring(void *, Agsym_t *, char *);
extern char *late_string(void *, Agsym_t *, char *);
extern boolean late_bool(void *, Agsym_t *, int);
extern Agnode_t *UF_find(Agnode_t *);
extern Agnode_t *UF_union(Agnode_t *, Agnode_t *);
extern void UF_remove(Agnode_t *, Agnode_t *);
extern void UF_singleton(Agnode_t *);
extern void UF_setname(Agnode_t *, Agnode_t *);
extern char *Fgets(FILE * fp);
extern const char *safefile(const char *filename);
extern boolean mapbool(char *);
extern int maptoken(char *, char **, int *);
extern int test_toggle(void);
extern void common_init_node(node_t * n);
extern int common_init_edge(edge_t * e);
extern void updateBB(graph_t * g, textlabel_t * lp);
extern void compute_bb(Agraph_t *);
extern boolean overlap_node(node_t *n, boxf b);
extern boolean overlap_label(textlabel_t *lp, boxf b);
extern boolean overlap_edge(edge_t *e, boxf b);
extern int processClusterEdges(graph_t * g);
extern char *latin1ToUTF8(char *);
extern char *htmlEntityUTF8(char *);
extern char* utf8ToLatin1 (char* ins);
extern char* scanEntity (char* t, agxbuf* xb);
extern pointf dotneato_closest(splines * spl, pointf p);
extern pointf neato_closest(splines * spl, pointf p);
extern pointf spline_at_y(splines * spl, double y);
extern Agsym_t *setAttr(graph_t*, void*, char*name, char *value, Agsym_t*);
extern void setEdgeType (graph_t* g, int dflt);
extern int edgeType (char* s, int dflt);
/* from postproc.c */
extern void gv_nodesize(Agnode_t * n, boolean flip);
/* from timing.c */
extern void start_timer(void);
extern double elapsed_sec(void);
/* from psusershape.c */
extern void cat_libfile(GVJ_t * job, const char **arglib, const char **stdlib);
/**/
#ifdef WIN32
extern void fix_fc(void);
#endif
#undef extern
#ifdef __cplusplus
}
#endif
#endif /* _UTILS_H */
|