diff options
-rw-r--r-- | ChangeLog | 13 | ||||
-rw-r--r-- | ChangeLog.pre-1-0 | 13 | ||||
-rw-r--r-- | ChangeLog.pre-1-10 | 13 | ||||
-rw-r--r-- | ChangeLog.pre-1-2 | 13 | ||||
-rw-r--r-- | ChangeLog.pre-1-4 | 13 | ||||
-rw-r--r-- | ChangeLog.pre-1-6 | 13 | ||||
-rw-r--r-- | ChangeLog.pre-1-8 | 13 | ||||
-rw-r--r-- | configure.in | 14 | ||||
-rw-r--r-- | pango/Makefile.am | 18 | ||||
-rw-r--r-- | pango/pango.rc.in | 30 | ||||
-rw-r--r-- | pango/pangoft2-fontcache.c | 4 | ||||
-rw-r--r-- | pango/pangoft2-fontmap.c | 145 | ||||
-rw-r--r-- | pango/pangoft2-private.h | 4 | ||||
-rw-r--r-- | pango/pangoft2.rc.in | 30 | ||||
-rw-r--r-- | pango/pangowin32.rc.in | 30 |
15 files changed, 296 insertions, 70 deletions
@@ -1,5 +1,18 @@ 2000-08-21 Tor Lillqvist <tml@iki.fi> + * pango/pangoft2-fontmap.c: Get font directory path with + pango_config_key_get("PangoFT2/FontPath"). If no such key exists + in the pangorc file, use the ft2fonts subdirectory of + LIBDIR/pango, and on Windows, also %WinDir%\fonts. + + * pango/{pango,pangoft2,pangowin32}.rc.in: New files (resource + files used when building Win32 DLLs, contain version information). + + * pango/Makefile.am: Add the new files. + + * configure.in: Define major and minor version numbers separately. + Output also the makefile.mingw and *.rc files. + * pango/pangoft2.c (pango_ft2_render): Handle also ft_pixel_mode_mono glyphs. diff --git a/ChangeLog.pre-1-0 b/ChangeLog.pre-1-0 index f2837949..15457fb3 100644 --- a/ChangeLog.pre-1-0 +++ b/ChangeLog.pre-1-0 @@ -1,5 +1,18 @@ 2000-08-21 Tor Lillqvist <tml@iki.fi> + * pango/pangoft2-fontmap.c: Get font directory path with + pango_config_key_get("PangoFT2/FontPath"). If no such key exists + in the pangorc file, use the ft2fonts subdirectory of + LIBDIR/pango, and on Windows, also %WinDir%\fonts. + + * pango/{pango,pangoft2,pangowin32}.rc.in: New files (resource + files used when building Win32 DLLs, contain version information). + + * pango/Makefile.am: Add the new files. + + * configure.in: Define major and minor version numbers separately. + Output also the makefile.mingw and *.rc files. + * pango/pangoft2.c (pango_ft2_render): Handle also ft_pixel_mode_mono glyphs. diff --git a/ChangeLog.pre-1-10 b/ChangeLog.pre-1-10 index f2837949..15457fb3 100644 --- a/ChangeLog.pre-1-10 +++ b/ChangeLog.pre-1-10 @@ -1,5 +1,18 @@ 2000-08-21 Tor Lillqvist <tml@iki.fi> + * pango/pangoft2-fontmap.c: Get font directory path with + pango_config_key_get("PangoFT2/FontPath"). If no such key exists + in the pangorc file, use the ft2fonts subdirectory of + LIBDIR/pango, and on Windows, also %WinDir%\fonts. + + * pango/{pango,pangoft2,pangowin32}.rc.in: New files (resource + files used when building Win32 DLLs, contain version information). + + * pango/Makefile.am: Add the new files. + + * configure.in: Define major and minor version numbers separately. + Output also the makefile.mingw and *.rc files. + * pango/pangoft2.c (pango_ft2_render): Handle also ft_pixel_mode_mono glyphs. diff --git a/ChangeLog.pre-1-2 b/ChangeLog.pre-1-2 index f2837949..15457fb3 100644 --- a/ChangeLog.pre-1-2 +++ b/ChangeLog.pre-1-2 @@ -1,5 +1,18 @@ 2000-08-21 Tor Lillqvist <tml@iki.fi> + * pango/pangoft2-fontmap.c: Get font directory path with + pango_config_key_get("PangoFT2/FontPath"). If no such key exists + in the pangorc file, use the ft2fonts subdirectory of + LIBDIR/pango, and on Windows, also %WinDir%\fonts. + + * pango/{pango,pangoft2,pangowin32}.rc.in: New files (resource + files used when building Win32 DLLs, contain version information). + + * pango/Makefile.am: Add the new files. + + * configure.in: Define major and minor version numbers separately. + Output also the makefile.mingw and *.rc files. + * pango/pangoft2.c (pango_ft2_render): Handle also ft_pixel_mode_mono glyphs. diff --git a/ChangeLog.pre-1-4 b/ChangeLog.pre-1-4 index f2837949..15457fb3 100644 --- a/ChangeLog.pre-1-4 +++ b/ChangeLog.pre-1-4 @@ -1,5 +1,18 @@ 2000-08-21 Tor Lillqvist <tml@iki.fi> + * pango/pangoft2-fontmap.c: Get font directory path with + pango_config_key_get("PangoFT2/FontPath"). If no such key exists + in the pangorc file, use the ft2fonts subdirectory of + LIBDIR/pango, and on Windows, also %WinDir%\fonts. + + * pango/{pango,pangoft2,pangowin32}.rc.in: New files (resource + files used when building Win32 DLLs, contain version information). + + * pango/Makefile.am: Add the new files. + + * configure.in: Define major and minor version numbers separately. + Output also the makefile.mingw and *.rc files. + * pango/pangoft2.c (pango_ft2_render): Handle also ft_pixel_mode_mono glyphs. diff --git a/ChangeLog.pre-1-6 b/ChangeLog.pre-1-6 index f2837949..15457fb3 100644 --- a/ChangeLog.pre-1-6 +++ b/ChangeLog.pre-1-6 @@ -1,5 +1,18 @@ 2000-08-21 Tor Lillqvist <tml@iki.fi> + * pango/pangoft2-fontmap.c: Get font directory path with + pango_config_key_get("PangoFT2/FontPath"). If no such key exists + in the pangorc file, use the ft2fonts subdirectory of + LIBDIR/pango, and on Windows, also %WinDir%\fonts. + + * pango/{pango,pangoft2,pangowin32}.rc.in: New files (resource + files used when building Win32 DLLs, contain version information). + + * pango/Makefile.am: Add the new files. + + * configure.in: Define major and minor version numbers separately. + Output also the makefile.mingw and *.rc files. + * pango/pangoft2.c (pango_ft2_render): Handle also ft_pixel_mode_mono glyphs. diff --git a/ChangeLog.pre-1-8 b/ChangeLog.pre-1-8 index f2837949..15457fb3 100644 --- a/ChangeLog.pre-1-8 +++ b/ChangeLog.pre-1-8 @@ -1,5 +1,18 @@ 2000-08-21 Tor Lillqvist <tml@iki.fi> + * pango/pangoft2-fontmap.c: Get font directory path with + pango_config_key_get("PangoFT2/FontPath"). If no such key exists + in the pangorc file, use the ft2fonts subdirectory of + LIBDIR/pango, and on Windows, also %WinDir%\fonts. + + * pango/{pango,pangoft2,pangowin32}.rc.in: New files (resource + files used when building Win32 DLLs, contain version information). + + * pango/Makefile.am: Add the new files. + + * configure.in: Define major and minor version numbers separately. + Output also the makefile.mingw and *.rc files. + * pango/pangoft2.c (pango_ft2_render): Handle also ft_pixel_mode_mono glyphs. diff --git a/configure.in b/configure.in index d21ae156..6d8cb392 100644 --- a/configure.in +++ b/configure.in @@ -1,7 +1,13 @@ dnl Process this file with autoconf to create configure. +PANGO_MAJOR_VERSION=0 +PANGO_MINOR_VERSION=12 + +AC_SUBST(PANGO_MAJOR_VERSION) +AC_SUBST(PANGO_MINOR_VERSION) + AC_INIT(ChangeLog) -AM_INIT_AUTOMAKE(pango, 0.12) +AM_INIT_AUTOMAKE(pango, $PANGO_MAJOR_VERSION.$PANGO_MINOR_VERSION) AM_CONFIG_HEADER(config.h) @@ -222,14 +228,19 @@ AC_CHECK_HEADER(unistd.h, AC_DEFINE(HAVE_UNISTD_H)) AC_OUTPUT([ Makefile pango/Makefile +pango/makefile.mingw +pango/pango.rc +pango/pangoft2.rc modules/Makefile modules/arabic/Makefile modules/basic/Makefile +modules/basic/makefile.mingw modules/devanagari/Makefile modules/hangul/Makefile modules/tamil/Makefile modules/thai/Makefile examples/Makefile +examples/makefile.mingw docs/Makefile tools/Makefile fonts/Makefile @@ -240,4 +251,3 @@ pangox.pc ],[case "$CONFIG_FILES" in *pango-config*)chmod +x pango-config;; esac]) - diff --git a/pango/Makefile.am b/pango/Makefile.am index fb19cd43..53f2802e 100644 --- a/pango/Makefile.am +++ b/pango/Makefile.am @@ -79,7 +79,23 @@ EXTRA_DIST = \ pangoft2-fontcache.c \ pangoft2-fontmap.c \ makefile.mingw \ - makefile.mingw.in + makefile.mingw.in \ + pango.rc \ + pango.rc.in \ + pangoft2.rc \ + pangoft2.rc.in \ + pangowin32.rc \ + pangowin32.rc.in + makefile.mingw: $(top_builddir)/config.status $(top_srcdir)/pango/makefile.mingw.in cd $(top_builddir) && CONFIG_FILES=pango/$@ CONFIG_HEADERS= $(SHELL) ./config.status + +pango2.rc: $(top_builddir)/config.status $(top_srcdir)/pango/pango.rc.in + cd $(top_builddir) && CONFIG_FILES=pango/$@ CONFIG_HEADERS= $(SHELL) ./config.status + +pangoft2.rc: $(top_builddir)/config.status $(top_srcdir)/pango/pangoft2.rc.in + cd $(top_builddir) && CONFIG_FILES=pango/$@ CONFIG_HEADERS= $(SHELL) ./config.status + +pangowin32.rc: $(top_builddir)/config.status $(top_srcdir)/pango/pangowin32.rc.in + cd $(top_builddir) && CONFIG_FILES=pango/$@ CONFIG_HEADERS= $(SHELL) ./config.status diff --git a/pango/pango.rc.in b/pango/pango.rc.in new file mode 100644 index 00000000..bb3fae92 --- /dev/null +++ b/pango/pango.rc.in @@ -0,0 +1,30 @@ +#include <winver.h> + +VS_VERSION_INFO VERSIONINFO + FILEVERSION @PANGO_MAJOR_VERSION@,@PANGO_MINOR_VERSION@,0,BUILDNUMBER + PRODUCTVERSION @PANGO_MAJOR_VERSION@,@PANGO_MINOR_VERSION@,0,0 + FILEFLAGSMASK 0 + FILEFLAGS 0 + FILEOS VOS__WINDOWS32 + FILETYPE VFT_DLL + FILESUBTYPE VFT2_UNKNOWN + BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904B0" + BEGIN + VALUE "CompanyName", "Red Hat Software" + VALUE "FileDescription", "Pango" + VALUE "FileVersion", "@PANGO_MAJOR_VERSION@.@PANGO_MINOR_VERSION@.0.BUILDNUMBER" + VALUE "InternalName", "pango-@PANGO_MAJOR_VERSION@.@PANGO_MINOR_VERSION@" + VALUE "LegalCopyright", "Copyright © 1999 Red Hat Software." + VALUE "OriginalFilename", "pango-@PANGO_MAJOR_VERSION@.@PANGO_MINOR_VERSION@.dll" + VALUE "ProductName", "Pango" + VALUE "ProductVersion", "@PANGO_MAJOR_VERSION@.@PANGO_MINOR_VERSION@" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END + END diff --git a/pango/pangoft2-fontcache.c b/pango/pangoft2-fontcache.c index 62e0f96c..ddfc114c 100644 --- a/pango/pangoft2-fontcache.c +++ b/pango/pangoft2-fontcache.c @@ -215,9 +215,7 @@ pango_ft2_font_cache_load (PangoFT2FontCache *cache, return NULL; } -#if DEBUGGING - g_print (" = %p\n", face); -#endif + PING ((" = %p\n", face)); entry = g_new (CacheEntry, 1); diff --git a/pango/pangoft2-fontmap.c b/pango/pangoft2-fontmap.c index a3e99c5d..0692bdb8 100644 --- a/pango/pangoft2-fontmap.c +++ b/pango/pangoft2-fontmap.c @@ -30,16 +30,14 @@ #ifdef HAVE_DIRENT_H #include <dirent.h> #endif -#include <sys/stat.h> #include "pango-fontmap.h" #include "pango-utils.h" #include "pangoft2-private.h" #ifdef G_OS_WIN32 -#ifndef S_ISREG -#define S_ISREG(mode) ((mode) & _S_IFREG) -#endif +#define STRICT +#include <windows.h> #endif #define PANGO_TYPE_FT2_FONT_MAP (pango_ft2_font_map_get_type ()) @@ -132,7 +130,7 @@ static void pango_ft2_insert_face (PangoFT2FontMap *fontma static PangoFontClass *parent_class; /* Parent class structure for PangoFT2FontMap */ static PangoFT2FontMap *pango_ft2_global_fontmap = NULL; -static GSList *pango_ft2_font_directories = NULL; +static char **pango_ft2_font_directories = NULL; static GType pango_ft2_font_map_get_type (void) @@ -198,6 +196,7 @@ pango_ft2_font_map_class_init (PangoFT2FontMapClass *class) { GObjectClass *object_class = G_OBJECT_CLASS (class); PangoFontMapClass *font_map_class = PANGO_FONT_MAP_CLASS (class); + char *font_path; parent_class = g_type_class_peek_parent (class); @@ -206,30 +205,49 @@ pango_ft2_font_map_class_init (PangoFT2FontMapClass *class) font_map_class->list_fonts = pango_ft2_font_map_list_fonts; font_map_class->list_families = pango_ft2_font_map_list_families; - /* FIXME */ - pango_ft2_font_directories = g_slist_append (pango_ft2_font_directories, "C:\\windows\\fonts"); + font_path = pango_config_key_get ("PangoFT2/FontPath"); + + if (!font_path) + { + font_path = g_strconcat + (pango_get_lib_subdirectory (), + G_DIR_SEPARATOR_S "ft2fonts", + NULL); + +#ifdef G_OS_WIN32 + { + char win_dir[100]; + char *tmp_str; + + GetWindowsDirectory (win_dir, sizeof (win_dir)); + tmp_str = g_strconcat (font_path, + G_SEARCHPATH_SEPARATOR_S, + win_dir, + G_DIR_SEPARATOR_S "fonts", + NULL); + g_free (font_path); + font_path = tmp_str; + } +#endif + } + + pango_ft2_font_directories = pango_split_file_list (font_path); + g_free (font_path); } static gboolean pango_ft2_is_font_file (const char *name) { - struct stat filestat; - int err, len; + int len; - err = stat (name, &filestat); + len = strlen (name); + if (len > 4 && + (g_strncasecmp (&name[len-4], ".pfa", 4) == 0 || + g_strncasecmp (&name[len-4], ".pfb", 4) == 0 || + g_strncasecmp (&name[len-4], ".ttf", 4) == 0 || + g_strncasecmp (&name[len-4], ".ttc", 4) == 0)) + return TRUE; - if (!err && S_ISREG (filestat.st_mode)) - { - len = strlen (name); - if (len > 4 && - (g_strncasecmp (&name[len-4], ".pfa", 4) == 0 || - g_strncasecmp (&name[len-4], ".pfb", 4) == 0 || - g_strncasecmp (&name[len-4], ".ttf", 4) == 0)) - { - return TRUE; - } - } - return FALSE; } @@ -246,56 +264,55 @@ pango_ft2_scan_directory (const char *path, dir = opendir (path); if (!dir) - g_warning ("Error opening directory '%s'", path); - else + /* Don't warn; it's OK to have nonexistent entries in the font path */ + return; + + while ((entry = readdir (dir)) != NULL) { - while ((entry = readdir (dir)) != NULL) + fullname = g_strconcat (path, + (path[strlen (path)-1] == G_DIR_SEPARATOR ? + "" : G_DIR_SEPARATOR_S), + entry->d_name, + NULL); + if (pango_ft2_is_font_file (fullname)) { - fullname = g_strconcat (path, - (path[strlen (path)-1] == G_DIR_SEPARATOR ? - "" : G_DIR_SEPARATOR_S), - entry->d_name, - NULL); - if (pango_ft2_is_font_file (fullname)) + error = FT_New_Face (ft2fontmap->library, fullname, 0, &face); + if (error != FT_Err_Ok) + g_warning ("Error loading font from '%s': %s", + fullname, pango_ft2_ft_strerror (error)); + else { - error = FT_New_Face (ft2fontmap->library, fullname, 0, &face); - if (error != FT_Err_Ok) - g_warning ("Error loading font from '%s': %s", - fullname, pango_ft2_ft_strerror (error)); - else + if (face->face_flags & FT_FACE_FLAG_SCALABLE) + pango_ft2_insert_face (ft2fontmap, face, fullname, 0); + + for (i = 1; i < face->num_faces; i++) { - if (face->face_flags & FT_FACE_FLAG_SCALABLE) - pango_ft2_insert_face (ft2fontmap, face, fullname, 0); - - for (i = 1; i < face->num_faces; i++) - { - error = FT_Done_Face (face); - if (error != FT_Err_Ok) - g_warning ("Error from FT_Done_Face: %s", - pango_ft2_ft_strerror (error)); - error = FT_New_Face (ft2fontmap->library, fullname, i, &face); - if (error != FT_Err_Ok) - g_warning ("Error loading font %d from '%s': %s", - i, fullname, pango_ft2_ft_strerror (error)); - else if (face->face_flags & FT_FACE_FLAG_SCALABLE) - pango_ft2_insert_face (ft2fontmap, face, fullname, i); - } error = FT_Done_Face (face); if (error != FT_Err_Ok) g_warning ("Error from FT_Done_Face: %s", pango_ft2_ft_strerror (error)); + error = FT_New_Face (ft2fontmap->library, fullname, i, &face); + if (error != FT_Err_Ok) + g_warning ("Error loading font %d from '%s': %s", + i, fullname, pango_ft2_ft_strerror (error)); + else if (face->face_flags & FT_FACE_FLAG_SCALABLE) + pango_ft2_insert_face (ft2fontmap, face, fullname, i); } + error = FT_Done_Face (face); + if (error != FT_Err_Ok) + g_warning ("Error from FT_Done_Face: %s", + pango_ft2_ft_strerror (error)); } - g_free (fullname); } - closedir (dir); + g_free (fullname); } + closedir (dir); } PangoFontMap * pango_ft2_font_map_for_display (void) { - GSList *tmp_list; + char **tmp_list; FT_Error error; /* Make sure that the type system is initialized */ @@ -319,10 +336,10 @@ pango_ft2_font_map_for_display (void) tmp_list = pango_ft2_font_directories; - while (tmp_list) + while (*tmp_list) { - pango_ft2_scan_directory ((const char *) tmp_list->data, pango_ft2_global_fontmap); - tmp_list = tmp_list->next; + pango_ft2_scan_directory ((const char *) *tmp_list, pango_ft2_global_fontmap); + tmp_list++; } pango_ft2_font_map_read_aliases (pango_ft2_global_fontmap); @@ -732,10 +749,14 @@ pango_ft2_font_map_read_aliases (PangoFT2FontMap *ft2fontmap) { home = g_get_home_dir (); if (home && *home) - files_str = g_strconcat (home, "\\.pangoft2_aliases;", NULL); - - tmp_str = g_strconcat (files_str, pango_get_sysconf_subdirectory (), - "\\pangoft2.aliases", + files_str = g_strconcat + (home, + G_DIR_SEPARATOR_S ".pangoft2_aliases" G_SEARCHPATH_SEPARATOR_S, + NULL); + + tmp_str = g_strconcat (files_str, + pango_get_sysconf_subdirectory (), + G_DIR_SEPARATOR_S "pangoft2.aliases", NULL); g_free (files_str); files_str = tmp_str; diff --git a/pango/pangoft2-private.h b/pango/pangoft2-private.h index 96be9343..bb8c84eb 100644 --- a/pango/pangoft2-private.h +++ b/pango/pangoft2-private.h @@ -26,9 +26,9 @@ #include "pangoft2.h" /* Debugging... */ -#define DEBUGGING 1 +#define DEBUGGING 0 -#ifdef DEBUGGING +#if defined(DEBUGGING) && DEBUGGING #ifdef __GNUC__ #define PING(printlist) \ (g_print ("%s:%d ", __PRETTY_FUNCTION__, __LINE__), \ diff --git a/pango/pangoft2.rc.in b/pango/pangoft2.rc.in new file mode 100644 index 00000000..91ab54b9 --- /dev/null +++ b/pango/pangoft2.rc.in @@ -0,0 +1,30 @@ +#include <winver.h> + +VS_VERSION_INFO VERSIONINFO + FILEVERSION @PANGO_MAJOR_VERSION@,@PANGO_MINOR_VERSION@,0,BUILDNUMBER + PRODUCTVERSION @PANGO_MAJOR_VERSION@,@PANGO_MINOR_VERSION@,0,0 + FILEFLAGSMASK 0 + FILEFLAGS 0 + FILEOS VOS__WINDOWS32 + FILETYPE VFT_DLL + FILESUBTYPE VFT2_UNKNOWN + BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904B0" + BEGIN + VALUE "CompanyName", "Red Hat Software" + VALUE "FileDescription", "PangoFT2" + VALUE "FileVersion", "@PANGO_MAJOR_VERSION@.@PANGO_MINOR_VERSION@.0.BUILDNUMBER" + VALUE "InternalName", "pangoft2-@PANGO_MAJOR_VERSION@.@PANGO_MINOR_VERSION@" + VALUE "LegalCopyright", "Copyright © 1999 Red Hat Software. Copyright © 2000 Tor Lillqvist" + VALUE "OriginalFilename", "pangoft2-@PANGO_MAJOR_VERSION@.@PANGO_MINOR_VERSION@.dll" + VALUE "ProductName", "PangoFT2" + VALUE "ProductVersion", "@PANGO_MAJOR_VERSION@.@PANGO_MINOR_VERSION@" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END + END diff --git a/pango/pangowin32.rc.in b/pango/pangowin32.rc.in new file mode 100644 index 00000000..e963cbc9 --- /dev/null +++ b/pango/pangowin32.rc.in @@ -0,0 +1,30 @@ +#include <winver.h> + +VS_VERSION_INFO VERSIONINFO + FILEVERSION @PANGO_MAJOR_VERSION@,@PANGO_MINOR_VERSION@,0,BUILDNUMBER + PRODUCTVERSION @PANGO_MAJOR_VERSION@,@PANGO_MINOR_VERSION@,0,0 + FILEFLAGSMASK 0 + FILEFLAGS 0 + FILEOS VOS__WINDOWS32 + FILETYPE VFT_DLL + FILESUBTYPE VFT2_UNKNOWN + BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904B0" + BEGIN + VALUE "CompanyName", "Red Hat Software" + VALUE "FileDescription", "PangoWin32" + VALUE "FileVersion", "@PANGO_MAJOR_VERSION@.@PANGO_MINOR_VERSION@.0.BUILDNUMBER" + VALUE "InternalName", "pangowin32-@PANGO_MAJOR_VERSION@.@PANGO_MINOR_VERSION@" + VALUE "LegalCopyright", "Copyright © 1999 Red Hat Software. Copyright © 2000 Tor Lillqvist" + VALUE "OriginalFilename", "pangowin32-@PANGO_MAJOR_VERSION@.@PANGO_MINOR_VERSION@.dll" + VALUE "ProductName", "PangoWin32" + VALUE "ProductVersion", "@PANGO_MAJOR_VERSION@.@PANGO_MINOR_VERSION@" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END + END |