diff options
Diffstat (limited to 'pango')
-rw-r--r-- | pango/.cvsignore | 3 | ||||
-rw-r--r-- | pango/Makefile.am | 10 | ||||
-rwxr-xr-x | pango/check.defs | 11 | ||||
-rw-r--r-- | pango/pango-utils.c | 91 | ||||
-rw-r--r-- | pango/pango-utils.h | 30 | ||||
-rw-r--r-- | pango/pango.def | 3 | ||||
-rw-r--r-- | pango/pango.h | 5 | ||||
-rw-r--r-- | pango/pango.rc.in | 8 | ||||
-rw-r--r-- | pango/pangoft2.rc.in | 8 | ||||
-rw-r--r-- | pango/pangowin32.rc.in | 8 |
10 files changed, 158 insertions, 19 deletions
diff --git a/pango/.cvsignore b/pango/.cvsignore index db2705df..f130e615 100644 --- a/pango/.cvsignore +++ b/pango/.cvsignore @@ -5,11 +5,14 @@ pango.rc pangoft2.rc pangowin32.rc pango-enum-types.[ch] +pango-features.h s-enum-types-[ch] pango-querymodules module-defs.h module-defs-*.c *.lo *.la +*.def.list +*.def.expected .deps .libs diff --git a/pango/Makefile.am b/pango/Makefile.am index 473b6124..9c461f83 100644 --- a/pango/Makefile.am +++ b/pango/Makefile.am @@ -28,7 +28,7 @@ INCLUDES = \ $(FREETYPE_CFLAGS) \ $(X_CFLAGS) -BUILT_SOURCES = pango-enum-types.h pango-enum-types.c +BUILT_SOURCES = pango-enum-types.h pango-enum-types.c pango-features.h pangoincludedir=$(includedir)/pango-1.0/pango @@ -101,6 +101,7 @@ pango_headers = \ pango-context.h \ pango-coverage.h \ pango-engine.h \ + pango-features.h \ pango-font.h \ pango-fontmap.h \ pango-fontset.h \ @@ -148,6 +149,8 @@ s-enum-types-c: @REBUILD@ $(pango_headers) Makefile && rm -f tmp-pango-enum-types.c \ && echo timestamp > $(@F) +pango-features.h: + cd $(top_builddir) && ./config.status pango/pango-features.h # ------------------- libpangox ------------------- @@ -466,7 +469,12 @@ CLEANFILES = \ pango-enum-types.c \ s-enum-types-c +MOSTLYCLEANFILES = \ + *.def.list \ + *.def.expected + DISTCLEANFILES = \ + pango-features.h \ $(MODULE_DEF_FILES) install-data-local: install-ms-lib install-def-files diff --git a/pango/check.defs b/pango/check.defs index a4d0a67f..6140e30c 100755 --- a/pango/check.defs +++ b/pango/check.defs @@ -10,14 +10,15 @@ for def in $srcdir/*.def; do lib=${lib##*/} so=.libs/lib${lib}-1.0.so - test -f $so || continue + test -f "$so" || continue echo Checking $def - nm $so | grep ' T ' | cut -d' ' -f3 | sort -u > NM - cut -f 2 $def | grep -v '^EXPORTS$' > DEF + expected=$lib.expected + list=$lib.list + nm "$so" | grep ' T ' | cut -d' ' -f3 | sort -u > "$expected" + cut -f 2 "$def" | grep -v EXPORTS > "$list" - diff DEF NM || status=1 - rm -f DEF NM + diff "$list" "$expected" && rm -f "$list" "$expected" || status=1 done exit $status diff --git a/pango/pango-utils.c b/pango/pango-utils.c index d0acc836..cb1a5e58 100644 --- a/pango/pango-utils.c +++ b/pango/pango-utils.c @@ -27,6 +27,7 @@ #include <locale.h> #include "pango-font.h" +#include "pango-features.h" #include "pango-impl-utils.h" #include <glib/gstdio.h> @@ -61,6 +62,93 @@ static GHashTable *pango_aliases_ht = NULL; PangoWarningHistory _pango_warning_history = { FALSE, FALSE, FALSE }; /** + * pango_version: + * + * This is similar to the macro %PANGO_VERSION except that + * it returns the encoded version of Pango available at run-time, + * as opposed to the version available at compile-time. + * + * A version number can be encoded into an integer using + * PANGO_VERSION_ENCODE(). + * + * Returns value: The encoded version of Pango library + * available at run time. + * + * Since: 1.16 + **/ +int +pango_version (void) +{ + return PANGO_VERSION; +} + +/** + * pango_version_string: + * + * This is similar to the macro %PANGO_VERSION_STRING except that + * it returns the version of Pango available at run-time, as opposed to + * the version available at compile-time. + * + * Returns value: A string containing the version of Pango library + * available at run time. + * The returned string is owned by Pango and should not be modified + * or freed. + * + * Since: 1.16 + **/ +const char * +pango_version_string (void) +{ + return PANGO_VERSION_STRING; +} + +/** + * pango_version_check: + * @required_major: the required major version. + * @required_minor: the required minor version. + * @required_micro: the required major version. + * + * Checks that the Pango library in use is compatible with the + * given version. Generally you would pass in the constants + * %PANGO_VERSION_MAJOR, %PANGO_VERSION_MINOR, %PANGO_VERSION_MICRO + * as the three arguments to this function; that produces + * a check that the library in use at run-time is compatible with + * the version of Pango the application or module was compiled against. + * + * Compatibility is defined by two things: first the version + * of the running library is newer than the version + * @required_major.required_minor.@required_micro. Second + * the running library must be binary compatible with the + * version @required_major.required_minor.@required_micro + * (same major version.) + * + * For compile-time version checking use PANGO_VERSION_CHECK(). + * + * Return value: %NULL if the Pango library is compatible with the + * given version, or a string describing the version mismatch. + * The returned string is owned by Pango and should not be modified + * or freed. + * + * Since: 1.16 + **/ +const gchar* +pango_version_check (int required_major, + int required_minor, + int required_micro) +{ + gint pango_effective_micro = 100 * PANGO_VERSION_MINOR + PANGO_VERSION_MICRO; + gint required_effective_micro = 100 * required_minor + required_micro; + + if (required_major < PANGO_VERSION_MAJOR) + return "Pango version too new (major mismatch)"; + if (required_effective_micro < pango_effective_micro - PANGO_BINARY_AGE) + return "Pango version too new (micro mismatch)"; + if (required_effective_micro > pango_effective_micro) + return "Pango version too old (micro mismatch)"; + return NULL; +} + +/** * pango_trim_string: * @str: a string * @@ -1727,7 +1815,7 @@ pango_quantize_line_geometry (int *thickness, * Converts a #PangoGravity value to its rotation value. * * Return value: the rotation value corresponding to @gravity, - * or zero if @gravity is #PANGO_GRAVITY_AUTO + * or zero if @gravity is %PANGO_GRAVITY_AUTO * * Since: 1.16 */ @@ -1747,3 +1835,4 @@ pango_gravity_to_rotation (PangoGravity gravity) return rotation; } + diff --git a/pango/pango-utils.h b/pango/pango-utils.h index f0392f72..7b008a90 100644 --- a/pango/pango-utils.h +++ b/pango/pango-utils.h @@ -97,6 +97,36 @@ guint8 * pango_log2vis_get_embedding_levels (const gchar *text, */ gboolean pango_is_zero_width (gunichar ch) G_GNUC_CONST; +/* Pango version checking */ + +/* Encode a Pango version as an integer */ +#define PANGO_VERSION_ENCODE(major, minor, micro) ( \ + ((major) * 10000) \ + + ((minor) * 100) \ + + ((micro) * 1)) + +/* Encoded version of Pango at compile-time */ +#define PANGO_VERSION PANGO_VERSION_ENCODE( \ + PANGO_VERSION_MAJOR, \ + PANGO_VERSION_MINOR, \ + PANGO_VERSION_MICRO) + +/* Check that compile-time Pango is as new as required */ +#define PANGO_VERSION_CHECK(major,minor,micro) \ + (PANGO_VERSION >= PANGO_VERSION_ENCODE(major,minor,micro)) + + +/* Return encoded version of Pango at run-time */ +int pango_version (void) G_GNUC_CONST; + +/* Return run-time Pango version as an string */ +G_CONST_RETURN char * pango_version_string (void); + +/* Check that run-time Pango is as new as required */ +G_CONST_RETURN char * pango_version_check (int required_major, + int required_minor, + int required_micro); + G_END_DECLS #endif /* __PANGO_UTILS_H__ */ diff --git a/pango/pango.def b/pango/pango.def index cb64cce1..94aeccd3 100644 --- a/pango/pango.def +++ b/pango/pango.def @@ -344,5 +344,8 @@ EXPORTS pango_underline_get_type pango_unichar_direction pango_variant_get_type + pango_version + pango_version_check + pango_version_string pango_weight_get_type pango_wrap_mode_get_type diff --git a/pango/pango.h b/pango/pango.h index 8821ed4a..b87d22f7 100644 --- a/pango/pango.h +++ b/pango/pango.h @@ -28,13 +28,18 @@ #include <pango/pango-coverage.h> #include <pango/pango-engine.h> #include <pango/pango-enum-types.h> +#include <pango/pango-features.h> #include <pango/pango-font.h> #include <pango/pango-fontmap.h> +#include <pango/pango-fontset.h> #include <pango/pango-glyph.h> +#include <pango/pango-glyph-item.h> #include <pango/pango-item.h> #include <pango/pango-layout.h> #include <pango/pango-renderer.h> #include <pango/pango-script.h> +#include <pango/pango-tabs.h> #include <pango/pango-types.h> +#include <pango/pango-utils.h> #endif /* __PANGO_H__ */ diff --git a/pango/pango.rc.in b/pango/pango.rc.in index efecb729..a6cd2525 100644 --- a/pango/pango.rc.in +++ b/pango/pango.rc.in @@ -1,8 +1,8 @@ #include <winver.h> VS_VERSION_INFO VERSIONINFO - FILEVERSION @PANGO_MAJOR_VERSION@,@PANGO_MINOR_VERSION@,@PANGO_MICRO_VERSION@,0 - PRODUCTVERSION @PANGO_MAJOR_VERSION@,@PANGO_MINOR_VERSION@,@PANGO_MICRO_VERSION@,0 + FILEVERSION @PANGO_VERSION_MAJOR@,@PANGO_VERSION_MINOR@,@PANGO_VERSION_MICRO@,0 + PRODUCTVERSION @PANGO_VERSION_MAJOR@,@PANGO_VERSION_MINOR@,@PANGO_VERSION_MICRO@,0 FILEFLAGSMASK 0 FILEFLAGS 0 FILEOS VOS__WINDOWS32 @@ -15,12 +15,12 @@ VS_VERSION_INFO VERSIONINFO BEGIN VALUE "CompanyName", "Red Hat Software" VALUE "FileDescription", "Pango" - VALUE "FileVersion", "@PANGO_MAJOR_VERSION@.@PANGO_MINOR_VERSION@.@PANGO_MICRO_VERSION@.0" + VALUE "FileVersion", "@PANGO_VERSION_MAJOR@.@PANGO_VERSION_MINOR@.@PANGO_VERSION_MICRO@.0" VALUE "InternalName", "pango-@PANGO_API_VERSION@-@PANGO_CURRENT_MINUS_AGE@" VALUE "LegalCopyright", "Copyright © 1999 Red Hat Software." VALUE "OriginalFilename", "pango-@PANGO_API_VERSION@-@PANGO_CURRENT_MINUS_AGE@.dll" VALUE "ProductName", "Pango" - VALUE "ProductVersion", "@PANGO_MAJOR_VERSION@.@PANGO_MINOR_VERSION@.@PANGO_MICRO_VERSION@" + VALUE "ProductVersion", "@PANGO_VERSION_MAJOR@.@PANGO_VERSION_MINOR@.@PANGO_VERSION_MICRO@" END END BLOCK "VarFileInfo" diff --git a/pango/pangoft2.rc.in b/pango/pangoft2.rc.in index d92f416c..c7ed1646 100644 --- a/pango/pangoft2.rc.in +++ b/pango/pangoft2.rc.in @@ -1,8 +1,8 @@ #include <winver.h> VS_VERSION_INFO VERSIONINFO - FILEVERSION @PANGO_MAJOR_VERSION@,@PANGO_MINOR_VERSION@,@PANGO_MICRO_VERSION@,0 - PRODUCTVERSION @PANGO_MAJOR_VERSION@,@PANGO_MINOR_VERSION@,@PANGO_MICRO_VERSION@,0 + FILEVERSION @PANGO_VERSION_MAJOR@,@PANGO_VERSION_MINOR@,@PANGO_VERSION_MICRO@,0 + PRODUCTVERSION @PANGO_VERSION_MAJOR@,@PANGO_VERSION_MINOR@,@PANGO_VERSION_MICRO@,0 FILEFLAGSMASK 0 FILEFLAGS 0 FILEOS VOS__WINDOWS32 @@ -15,12 +15,12 @@ VS_VERSION_INFO VERSIONINFO BEGIN VALUE "CompanyName", "Red Hat Software" VALUE "FileDescription", "PangoFT2" - VALUE "FileVersion", "@PANGO_MAJOR_VERSION@.@PANGO_MINOR_VERSION@.@PANGO_MICRO_VERSION@.0" + VALUE "FileVersion", "@PANGO_VERSION_MAJOR@.@PANGO_VERSION_MINOR@.@PANGO_VERSION_MICRO@.0" VALUE "InternalName", "pangoft2-@PANGO_API_VERSION@-@PANGO_CURRENT_MINUS_AGE@" VALUE "LegalCopyright", "Copyright © 1999 Red Hat Software. Copyright © 2000 Tor Lillqvist" VALUE "OriginalFilename", "pangoft2-@PANGO_API_VERSION@-@PANGO_CURRENT_MINUS_AGE@.dll" VALUE "ProductName", "PangoFT2" - VALUE "ProductVersion", "@PANGO_MAJOR_VERSION@.@PANGO_MINOR_VERSION@.@PANGO_MICRO_VERSION@" + VALUE "ProductVersion", "@PANGO_VERSION_MAJOR@.@PANGO_VERSION_MINOR@.@PANGO_VERSION_MICRO@" END END BLOCK "VarFileInfo" diff --git a/pango/pangowin32.rc.in b/pango/pangowin32.rc.in index 2eb9be56..f78465dc 100644 --- a/pango/pangowin32.rc.in +++ b/pango/pangowin32.rc.in @@ -1,8 +1,8 @@ #include <winver.h> VS_VERSION_INFO VERSIONINFO - FILEVERSION @PANGO_MAJOR_VERSION@,@PANGO_MINOR_VERSION@,@PANGO_MICRO_VERSION@,0 - PRODUCTVERSION @PANGO_MAJOR_VERSION@,@PANGO_MINOR_VERSION@,@PANGO_MICRO_VERSION@,0 + FILEVERSION @PANGO_VERSION_MAJOR@,@PANGO_VERSION_MINOR@,@PANGO_VERSION_MICRO@,0 + PRODUCTVERSION @PANGO_VERSION_MAJOR@,@PANGO_VERSION_MINOR@,@PANGO_VERSION_MICRO@,0 FILEFLAGSMASK 0 FILEFLAGS 0 FILEOS VOS__WINDOWS32 @@ -15,12 +15,12 @@ VS_VERSION_INFO VERSIONINFO BEGIN VALUE "CompanyName", "Red Hat Software" VALUE "FileDescription", "PangoWin32" - VALUE "FileVersion", "@PANGO_MAJOR_VERSION@.@PANGO_MINOR_VERSION@.@PANGO_MICRO_VERSION@.0" + VALUE "FileVersion", "@PANGO_VERSION_MAJOR@.@PANGO_VERSION_MINOR@.@PANGO_VERSION_MICRO@.0" VALUE "InternalName", "pangowin32-@PANGO_API_VERSION@-@PANGO_CURRENT_MINUS_AGE@" VALUE "LegalCopyright", "Copyright © 1999 Red Hat Software. Copyright © 2000 Tor Lillqvist" VALUE "OriginalFilename", "pangowin32-@PANGO_API_VERSION@-@PANGO_CURRENT_MINUS_AGE@.dll" VALUE "ProductName", "PangoWin32" - VALUE "ProductVersion", "@PANGO_MAJOR_VERSION@.@PANGO_MINOR_VERSION@.@PANGO_MICRO_VERSION@" + VALUE "ProductVersion", "@PANGO_VERSION_MAJOR@.@PANGO_VERSION_MINOR@.@PANGO_VERSION_MICRO@" END END BLOCK "VarFileInfo" |