summaryrefslogtreecommitdiff
path: root/Build/source/texk/dvisvgm/dvisvgm-1.0.3/src/Ghostscript.h
diff options
context:
space:
mode:
authorPeter Breitenlohner <peb@mppmu.mpg.de>2010-10-01 14:11:26 +0000
committerPeter Breitenlohner <peb@mppmu.mpg.de>2010-10-01 14:11:26 +0000
commit7031fb25c01d2f107ffc741c7b82efd87718f2c4 (patch)
tree080a3dd9385346cb36991bcce9047b9946a01351 /Build/source/texk/dvisvgm/dvisvgm-1.0.3/src/Ghostscript.h
parent30e4cb274ed8ce8af054f2e228270a270ee958e5 (diff)
dvisvgm 1.0.3 (6 aug 10)
git-svn-id: svn://tug.org/texlive/trunk@19969 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/dvisvgm/dvisvgm-1.0.3/src/Ghostscript.h')
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.0.3/src/Ghostscript.h102
1 files changed, 102 insertions, 0 deletions
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.3/src/Ghostscript.h b/Build/source/texk/dvisvgm/dvisvgm-1.0.3/src/Ghostscript.h
new file mode 100644
index 00000000000..80f55d086e9
--- /dev/null
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.0.3/src/Ghostscript.h
@@ -0,0 +1,102 @@
+/*************************************************************************
+** Ghostscript.h **
+** **
+** This file is part of dvisvgm -- the DVI to SVG converter **
+** Copyright (C) 2005-2010 Martin Gieseking <martin.gieseking@uos.de> **
+** **
+** This program is free software; you can redistribute it and/or **
+** modify it under the terms of the GNU General Public License as **
+** published by the Free Software Foundation; either version 3 of **
+** the License, or (at your option) any later version. **
+** **
+** This program is distributed in the hope that it will be useful, but **
+** WITHOUT ANY WARRANTY; without even the implied warranty of **
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the **
+** GNU General Public License for more details. **
+** **
+** You should have received a copy of the GNU General Public License **
+** along with this program; if not, see <http://www.gnu.org/licenses/>. **
+*************************************************************************/
+
+#ifndef GHOSTSCRIPT_H
+#define GHOSTSCRIPT_H
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <string>
+
+#if defined(DISABLE_GS)
+ #include "iapi.h"
+#elif defined(HAVE_LIBGS)
+ #include <ghostscript/iapi.h>
+#else
+ #include "DLLoader.h"
+ #include "iapi.h"
+#endif
+
+#if defined(__WIN32__) && !defined(_Windows)
+ #define _Windows
+#endif
+
+#if defined(DISABLE_GS)
+struct Ghostscript
+{
+ typedef int (GSDLLCALLPTR Stdin) (void *caller, char *buf, int len);
+ typedef int (GSDLLCALLPTR Stdout) (void *caller, const char *str, int len);
+ typedef int (GSDLLCALLPTR Stderr) (void *caller, const char *str, int len);
+
+ Ghostscript () {}
+ Ghostscript (int argc, const char **argv, void *caller=0) {}
+ bool available () {return false;}
+ bool revision (gsapi_revision_t *r) {return false;}
+ std::string revision () {return "";}
+ int set_stdio (Stdin in, Stdout out, Stderr err) {return 0;}
+ int run_string_begin (int user_errors, int *pexit_code) {return 0;}
+ int run_string_continue (const char *str, unsigned int length, int user_errors, int *pexit_code) {return 0;}
+ int run_string_end (int user_errors, int *pexit_code) {return 0;}
+ int exit () {return 0;}
+};
+
+#else
+
+/** Wrapper class of (a subset of) the Ghostscript API. */
+class Ghostscript
+#if !defined(HAVE_LIBGS)
+: public DLLoader
+#endif
+{
+ public:
+ typedef int (GSDLLCALLPTR Stdin) (void *caller, char *buf, int len);
+ typedef int (GSDLLCALLPTR Stdout) (void *caller, const char *str, int len);
+ typedef int (GSDLLCALLPTR Stderr) (void *caller, const char *str, int len);
+
+ public:
+ Ghostscript ();
+ Ghostscript (int argc, const char **argv, void *caller=0);
+ ~Ghostscript ();
+ bool available ();
+ bool revision (gsapi_revision_t *r);
+ std::string revision ();
+ int set_stdio (Stdin in, Stdout out, Stderr err);
+ int run_string_begin (int user_errors, int *pexit_code);
+ int run_string_continue (const char *str, unsigned int length, int user_errors, int *pexit_code);
+ int run_string_end (int user_errors, int *pexit_code);
+ int exit ();
+
+ static std::string LIBGS_NAME;
+
+ protected:
+ Ghostscript (const Ghostscript &gs) {}
+ int init_with_args (int argc, char **argv);
+ int new_instance (void **psinst, void *caller);
+ void delete_instance ();
+
+ private:
+ void *_inst; ///< Ghostscript handle needed to call the gsapi_foo functions
+};
+
+#endif // DISABLE_GS
+
+#endif