#include "gvc.h"
#include <ctype.h>
-#ifdef QUARTZ_RENDER
-#include <QuickTime/QuickTime.h>
-#endif
-
-#define MAX_CODEGENS 100
-
int Obj;
static attrsym_t *G_peripheries;
return parse;
}
-#ifndef DISABLE_CODEGENS
-static codegen_info_t cg[MAX_CODEGENS] = {
- {&PS_CodeGen, "ps", POSTSCRIPT},
- {&PS_CodeGen, "ps2", PDF},
- {&HPGL_CodeGen, "hpgl", HPGL},
- {&HPGL_CodeGen, "pcl", PCL},
- {&MIF_CodeGen, "mif", MIF},
- {&PIC_CodeGen, "pic", PIC_format},
-
- {&GD_CodeGen, "gd", GD},
-#ifdef HAVE_LIBZ
- {&GD_CodeGen, "gd2", GD2},
-#endif
-#ifdef HAVE_GD_GIF
- {&GD_CodeGen, "gif", GIF},
-#endif
-#ifdef HAVE_GD_JPEG
- {&GD_CodeGen, "jpg", JPEG},
- {&GD_CodeGen, "jpeg", JPEG},
-#endif
-#ifdef HAVE_GD_PNG
- {&GD_CodeGen, "png", PNG},
- {&VRML_CodeGen, "vrml", VRML},
-#endif
- {&GD_CodeGen, "wbmp", WBMP},
-#ifdef HAVE_GD_XPM
- {&GD_CodeGen, "xbm", XBM},
- {&GD_CodeGen, "xpm", XBM},
-#endif
-
-#ifdef QUARTZ_RENDER
- {&QPDF_CodeGen, "pdf", QPDF},
- {&QEPDF_CodeGen, "epdf", QEPDF},
-#endif /* QUARTZ_RENDER */
-
- {&MAP_CodeGen, "ismap", ISMAP},
- {&MAP_CodeGen, "imap", IMAP},
- {&MAP_CodeGen, "cmap", CMAP},
- {&MAP_CodeGen, "cmapx", CMAPX},
- {&VTX_CodeGen, "vtx", VTX},
- {&MP_CodeGen, "mp", METAPOST},
- {&FIG_CodeGen, "fig", FIG},
- {&SVG_CodeGen, "svg", SVG},
-#ifdef HAVE_LIBZ
- {&SVG_CodeGen, "svgz", SVGZ},
- {&DIA_CodeGen, "dia", DIA},
-#endif
-#define DUMMY_Codegen XDot_CodeGen
- {&DUMMY_Codegen, "dot", ATTRIBUTED_DOT},
- {&DUMMY_Codegen, "canon", CANONICAL_DOT},
- {&DUMMY_Codegen, "plain", PLAIN},
- {&DUMMY_Codegen, "plain-ext", PLAIN_EXT},
- {&XDot_CodeGen, "xdot", EXTENDED_DOT},
- {NULL, NULL, 0}
-};
-
-codegen_info_t *first_codegen(void)
-{
- return cg;
-}
-
-codegen_info_t *next_codegen(codegen_info_t * p)
-{
- ++p;
-
-#ifdef QUARTZ_RENDER
- static boolean unscanned = TRUE;
- if (!p->name && unscanned) {
- /* reached end of codegens but haven't yet scanned for Quicktime codegens... */
-
- unscanned = FALSE; /* don't scan again */
-
- ComponentDescription criteria;
- criteria.componentType = GraphicsExporterComponentType;
- criteria.componentSubType = 0;
- criteria.componentManufacturer = 0;
- criteria.componentFlags = 0;
- criteria.componentFlagsMask = graphicsExporterIsBaseExporter;
-
- codegen_info_t *next_cg;
- int next_id;
- Component next_component;
-
- /* make each discovered Quicktime format into a codegen */
- for (next_cg = p, next_id = QBM_FIRST, next_component =
- FindNextComponent(0, &criteria);
- next_cg < cg + MAX_CODEGENS - 1 && next_id <= QBM_LAST
- && next_component;
- ++next_cg, ++next_id, next_component =
- FindNextComponent(next_component, &criteria)) {
- next_cg->cg = &QBM_CodeGen;
- next_cg->id = next_id;
- next_cg->info = next_component;
-
- /* get four chars of extension, trim and convert to lower case */
- char extension[5];
- GraphicsExportGetDefaultFileNameExtension((GraphicsExportComponent) next_component, (OSType *) & extension);
- extension[4] = '\0';
-
- char *extension_ptr;
- for (extension_ptr = extension; *extension_ptr;
- ++extension_ptr)
- *extension_ptr =
- *extension_ptr == ' ' ? '\0' : tolower(*extension_ptr);
- next_cg->name = strdup(extension);
- }
-
- /* add new sentinel at end of dynamic codegens */
- next_cg->cg = (codegen_t *) 0;
- next_cg->id = 0;
- next_cg->info = (void *) 0;
- next_cg->name = (char *) 0;
- }
-#endif
- return p;
-}
-#endif
-
-void config_codegen_builtins(GVC_t * gvc)
-{
-#ifndef DISABLE_CODEGENS
- codegen_info_t *p;
-
- for (p = cg; p->name; ++p)
- gvplugin_install(gvc, API_render, p->name, 0, "cg",
- (gvplugin_type_t *) p);
-#endif
-}
-
void use_library(char *name)
{
static int cnt = 0;
#include "render.h"
#include "htmltable.h"
+#ifdef QUARTZ_RENDER
+#include <QuickTime/QuickTime.h>
+#endif
+
+#define MAX_CODEGENS 100
+
#if !defined(DISABLE_CODEGENS) && !defined(HAVE_GD_FREETYPE)
codegen_t *Output_codegen;
#endif
dotneato_eof(gvc);
exit(graphviz_errors + agerrors());
}
+
+#ifndef DISABLE_CODEGENS
+static codegen_info_t cg[MAX_CODEGENS] = {
+ {&PS_CodeGen, "ps", POSTSCRIPT},
+ {&PS_CodeGen, "ps2", PDF},
+ {&HPGL_CodeGen, "hpgl", HPGL},
+ {&HPGL_CodeGen, "pcl", PCL},
+ {&MIF_CodeGen, "mif", MIF},
+ {&PIC_CodeGen, "pic", PIC_format},
+
+ {&GD_CodeGen, "gd", GD},
+#ifdef HAVE_LIBZ
+ {&GD_CodeGen, "gd2", GD2},
+#endif
+#ifdef HAVE_GD_GIF
+ {&GD_CodeGen, "gif", GIF},
+#endif
+#ifdef HAVE_GD_JPEG
+ {&GD_CodeGen, "jpg", JPEG},
+ {&GD_CodeGen, "jpeg", JPEG},
+#endif
+#ifdef HAVE_GD_PNG
+ {&GD_CodeGen, "png", PNG},
+ {&VRML_CodeGen, "vrml", VRML},
+#endif
+ {&GD_CodeGen, "wbmp", WBMP},
+#ifdef HAVE_GD_XPM
+ {&GD_CodeGen, "xbm", XBM},
+ {&GD_CodeGen, "xpm", XBM},
+#endif
+
+#ifdef QUARTZ_RENDER
+ {&QPDF_CodeGen, "pdf", QPDF},
+ {&QEPDF_CodeGen, "epdf", QEPDF},
+#endif /* QUARTZ_RENDER */
+
+ {&MAP_CodeGen, "ismap", ISMAP},
+ {&MAP_CodeGen, "imap", IMAP},
+ {&MAP_CodeGen, "cmap", CMAP},
+ {&MAP_CodeGen, "cmapx", CMAPX},
+ {&VTX_CodeGen, "vtx", VTX},
+ {&MP_CodeGen, "mp", METAPOST},
+ {&FIG_CodeGen, "fig", FIG},
+ {&SVG_CodeGen, "svg", SVG},
+#ifdef HAVE_LIBZ
+ {&SVG_CodeGen, "svgz", SVGZ},
+ {&DIA_CodeGen, "dia", DIA},
+#endif
+#define DUMMY_Codegen XDot_CodeGen
+ {&DUMMY_Codegen, "dot", ATTRIBUTED_DOT},
+ {&DUMMY_Codegen, "canon", CANONICAL_DOT},
+ {&DUMMY_Codegen, "plain", PLAIN},
+ {&DUMMY_Codegen, "plain-ext", PLAIN_EXT},
+ {&XDot_CodeGen, "xdot", EXTENDED_DOT},
+ {NULL, NULL, 0}
+};
+
+codegen_info_t *first_codegen(void)
+{
+ return cg;
+}
+
+codegen_info_t *next_codegen(codegen_info_t * p)
+{
+ ++p;
+
+#ifdef QUARTZ_RENDER
+ static boolean unscanned = TRUE;
+ if (!p->name && unscanned) {
+ /* reached end of codegens but haven't yet scanned for Quicktime codegens... */
+
+ unscanned = FALSE; /* don't scan again */
+
+ ComponentDescription criteria;
+ criteria.componentType = GraphicsExporterComponentType;
+ criteria.componentSubType = 0;
+ criteria.componentManufacturer = 0;
+ criteria.componentFlags = 0;
+ criteria.componentFlagsMask = graphicsExporterIsBaseExporter;
+
+ codegen_info_t *next_cg;
+ int next_id;
+ Component next_component;
+
+ /* make each discovered Quicktime format into a codegen */
+ for (next_cg = p, next_id = QBM_FIRST, next_component =
+ FindNextComponent(0, &criteria);
+ next_cg < cg + MAX_CODEGENS - 1 && next_id <= QBM_LAST
+ && next_component;
+ ++next_cg, ++next_id, next_component =
+ FindNextComponent(next_component, &criteria)) {
+ next_cg->cg = &QBM_CodeGen;
+ next_cg->id = next_id;
+ next_cg->info = next_component;
+
+ /* get four chars of extension, trim and convert to lower case */
+ char extension[5];
+ GraphicsExportGetDefaultFileNameExtension((GraphicsExportComponent) next_component, (OSType *) & extension);
+ extension[4] = '\0';
+
+ char *extension_ptr;
+ for (extension_ptr = extension; *extension_ptr;
+ ++extension_ptr)
+ *extension_ptr =
+ *extension_ptr == ' ' ? '\0' : tolower(*extension_ptr);
+ next_cg->name = strdup(extension);
+ }
+
+ /* add new sentinel at end of dynamic codegens */
+ next_cg->cg = (codegen_t *) 0;
+ next_cg->id = 0;
+ next_cg->info = (void *) 0;
+ next_cg->name = (char *) 0;
+ }
+#endif
+ return p;
+}
+#endif
+
+void config_codegen_builtins(GVC_t * gvc)
+{
+#ifndef DISABLE_CODEGENS
+ codegen_info_t *p;
+
+ for (p = cg; p->name; ++p)
+ gvplugin_install(gvc, API_render, p->name, 0, "cg",
+ (gvplugin_type_t *) p);
+#endif
+}