summaryrefslogtreecommitdiff
path: root/pango/pango-engine.h
diff options
context:
space:
mode:
authorOwen Taylor <otaylor@redhat.com>2003-04-14 23:48:34 +0000
committerOwen Taylor <otaylor@src.gnome.org>2003-04-14 23:48:34 +0000
commit402f2625c2c779df20470ed0f758999db494e4dc (patch)
tree6667e384ed0c39a22a6e3f731c062311fa7b3e9a /pango/pango-engine.h
parentf6fdd34661bd9fe23452b5eb98ece8488a12ce8f (diff)
downloadpango-402f2625c2c779df20470ed0f758999db494e4dc.tar.gz
Switch over the way that module entry points work, taking advantage of the
Mon Apr 14 06:02:34 2003 Owen Taylor <otaylor@redhat.com> * modules/thai/{thai-fc.c,thai-shaper.c,thai-x.c}: * modules/*/*-{xft,x,win32.c} pango/pango-engine.h modules/*/Makefile.am: Switch over the way that module entry points work, taking advantage of the new automake capability for per-target CFLAGS for shared sources. * pango/pangofc-font.[ch] pango/pangoxft-font.c pango/pangoft2.c: Add a base class for PangoXft and PangoFT2 font classes so code can be shared between FT2 and Xft backends. * configure.in modules/*/Makefile.am modules/{arabic,basic,hangul,hebrew,indic,thai}: Move *-xft.c to *-fc.c and share between Xft and FT2 backends; adds FT2 backend capabilities for hangul/indic/thai. * pango/pangoxft.h pango/pangoft2.h: Deprecate APIs that moved into PangoFcFont * modules/basic/basic-fc.c (set_glyph): Add kerning handling from FT2 backend.
Diffstat (limited to 'pango/pango-engine.h')
-rw-r--r--pango/pango-engine.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/pango/pango-engine.h b/pango/pango-engine.h
index 1c33b9df..0a7ada25 100644
--- a/pango/pango-engine.h
+++ b/pango/pango-engine.h
@@ -94,6 +94,24 @@ void script_engine_list (PangoEngineInfo **engines,
PangoEngine *script_engine_load (const char *id);
void script_engine_unload (PangoEngine *engine);
+/* Macro used for possibly builtin Pango modules. Not useful
+ * for externally build modules. If we are compiling a module standaline,
+ * then we name the entry points script_engine_list, etc. But if we
+ * are compiling it for inclusion directly in Pango, then we need them to
+ * to have distinct names for this module, so we prepend a prefix.
+ *
+ * The two intermediate macros are to deal with details of the C
+ * preprocessor; token pasting tokens must be function arguments,
+ * and macro substitution isn't used on function arguments that
+ * are used for token pasting.
+ */
+#ifdef PANGO_MODULE_PREFIX
+#define PANGO_MODULE_ENTRY(func) _PANGO_MODULE_ENTRY2(PANGO_MODULE_PREFIX,func)
+#define _PANGO_MODULE_ENTRY2(prefix,func) _PANGO_MODULE_ENTRY3(prefix,func)
+#define _PANGO_MODULE_ENTRY3(prefix,func) prefix##_script_engine_##func
+#else
+#define PANGO_MODULE_ENTRY(func) script_engine_##func
+#endif
#endif /* PANGO_ENABLE_ENGINE */