gtk2 0.90.4-x86-mingw32 → 0.90.5-x86-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (143) hide show
  1. data/ChangeLog +4 -0
  2. data/Rakefile +3 -4
  3. data/ext/gtk2/extconf.rb +8 -0
  4. data/lib/1.8/gtk2.so +0 -0
  5. data/lib/1.9/gtk2.so +0 -0
  6. data/vendor/local/bin/gtk-demo.exe +0 -0
  7. data/vendor/local/bin/gtk-query-immodules-2.0.exe +0 -0
  8. data/vendor/local/bin/gtk-update-icon-cache.exe +0 -0
  9. data/vendor/local/bin/libgailutil-18.dll +0 -0
  10. data/vendor/local/bin/libgdk-win32-2.0-0.dll +0 -0
  11. data/vendor/local/bin/libgtk-win32-2.0-0.dll +0 -0
  12. data/vendor/local/bin/libpango-1.0-0.dll +0 -0
  13. data/vendor/local/bin/libpangocairo-1.0-0.dll +0 -0
  14. data/vendor/local/bin/libpangoft2-1.0-0.dll +0 -0
  15. data/vendor/local/bin/libpangowin32-1.0-0.dll +0 -0
  16. data/vendor/local/bin/pango-querymodules.exe +0 -0
  17. data/vendor/local/bin/pango-view.exe +0 -0
  18. data/vendor/local/bin/pkg-config.exe +0 -0
  19. data/vendor/local/etc/gtk-2.0/gtk.immodules +1 -1
  20. data/vendor/local/etc/pango/pango.modules +1 -1
  21. data/vendor/local/gtk+-bundle_2.22.0-20101016_win32.README.txt +29 -0
  22. data/vendor/local/include/pango-1.0/pango/pango-enum-types.h +2 -2
  23. data/vendor/local/include/pango-1.0/pango/pango-features.h +2 -2
  24. data/vendor/local/include/pixman-1/pixman-version.h +50 -0
  25. data/vendor/local/include/pixman-1/pixman.h +936 -0
  26. data/vendor/local/lib/gailutil.lib +0 -0
  27. data/vendor/local/lib/gdk-win32-2.0.lib +0 -0
  28. data/vendor/local/lib/gtk-2.0/2.10.0/engines/libpixmap.dll +0 -0
  29. data/vendor/local/lib/gtk-2.0/2.10.0/engines/libwimp.dll +0 -0
  30. data/vendor/local/lib/gtk-2.0/modules/libgail.dll +0 -0
  31. data/vendor/local/lib/gtk-win32-2.0.lib +0 -0
  32. data/vendor/local/lib/libgailutil.dll.a +0 -0
  33. data/vendor/local/lib/libgdk-win32-2.0.dll.a +0 -0
  34. data/vendor/local/lib/libgtk-win32-2.0.dll.a +0 -0
  35. data/vendor/local/lib/libpango-1.0.dll.a +0 -0
  36. data/vendor/local/lib/libpangocairo-1.0.dll.a +0 -0
  37. data/vendor/local/lib/libpangoft2-1.0.dll.a +0 -0
  38. data/vendor/local/lib/libpangowin32-1.0.dll.a +0 -0
  39. data/vendor/local/lib/libpixman-1.a +0 -0
  40. data/vendor/local/lib/pango-1.0.lib +0 -0
  41. data/vendor/local/lib/pangocairo-1.0.lib +0 -0
  42. data/vendor/local/lib/pangoft2-1.0.lib +0 -0
  43. data/vendor/local/lib/pangowin32-1.0.lib +0 -0
  44. data/vendor/local/lib/pkgconfig/gail.pc +1 -1
  45. data/vendor/local/lib/pkgconfig/gdk-2.0.pc +1 -1
  46. data/vendor/local/lib/pkgconfig/gdk-win32-2.0.pc +1 -1
  47. data/vendor/local/lib/pkgconfig/gtk+-2.0.pc +1 -1
  48. data/vendor/local/lib/pkgconfig/gtk+-win32-2.0.pc +1 -1
  49. data/vendor/local/lib/pkgconfig/pango.pc +2 -2
  50. data/vendor/local/lib/pkgconfig/pangocairo.pc +2 -2
  51. data/vendor/local/lib/pkgconfig/pangoft2.pc +2 -2
  52. data/vendor/local/lib/pkgconfig/pangowin32.pc +2 -2
  53. data/vendor/local/lib/pkgconfig/pixman-1.pc +11 -0
  54. data/vendor/local/manifest/gtk+-bundle_2.22.0-20101016_win32.mft +2910 -0
  55. data/vendor/local/manifest/{pango-dev_1.28.1-2_win32.mft → pango-dev_1.28.3-1_win32.mft} +5 -5
  56. data/vendor/local/manifest/{pango_1.28.1-2_win32.mft → pango_1.28.3-1_win32.mft} +2 -2
  57. data/vendor/local/share/aclocal/pkg.m4 +155 -0
  58. data/vendor/local/share/doc/gtk+-bundle_2.22.0-20101016_win32/components.lst +28 -0
  59. data/vendor/local/share/doc/{pango-1.28.1 → pango-1.28.3}/COPYING +0 -0
  60. data/vendor/local/share/doc/{pango-dev-1.28.1 → pango-dev-1.28.3}/COPYING +0 -0
  61. data/vendor/local/share/gtk-doc/html/pango/PangoEngineLang.html +44 -50
  62. data/vendor/local/share/gtk-doc/html/pango/PangoEngineShape.html +45 -51
  63. data/vendor/local/share/gtk-doc/html/pango/PangoFcDecoder.html +44 -61
  64. data/vendor/local/share/gtk-doc/html/pango/PangoFcFont.html +89 -101
  65. data/vendor/local/share/gtk-doc/html/pango/PangoFcFontMap.html +173 -171
  66. data/vendor/local/share/gtk-doc/html/pango/PangoMarkupFormat.html +6 -27
  67. data/vendor/local/share/gtk-doc/html/pango/index-1.10.html +3 -24
  68. data/vendor/local/share/gtk-doc/html/pango/index-1.12.html +3 -24
  69. data/vendor/local/share/gtk-doc/html/pango/index-1.14.html +3 -24
  70. data/vendor/local/share/gtk-doc/html/pango/index-1.16.html +3 -24
  71. data/vendor/local/share/gtk-doc/html/pango/index-1.18.html +5 -26
  72. data/vendor/local/share/gtk-doc/html/pango/index-1.2.html +3 -24
  73. data/vendor/local/share/gtk-doc/html/pango/index-1.20.html +5 -26
  74. data/vendor/local/share/gtk-doc/html/pango/index-1.22.html +5 -26
  75. data/vendor/local/share/gtk-doc/html/pango/index-1.24.html +3 -24
  76. data/vendor/local/share/gtk-doc/html/pango/index-1.26.html +3 -24
  77. data/vendor/local/share/gtk-doc/html/pango/index-1.28.html +3 -24
  78. data/vendor/local/share/gtk-doc/html/pango/index-1.4.html +3 -24
  79. data/vendor/local/share/gtk-doc/html/pango/index-1.6.html +6 -27
  80. data/vendor/local/share/gtk-doc/html/pango/index-1.8.html +22 -43
  81. data/vendor/local/share/gtk-doc/html/pango/index-all.html +70 -91
  82. data/vendor/local/share/gtk-doc/html/pango/index-deprecated.html +3 -24
  83. data/vendor/local/share/gtk-doc/html/pango/index.html +5 -26
  84. data/vendor/local/share/gtk-doc/html/pango/index.sgml +31 -30
  85. data/vendor/local/share/gtk-doc/html/pango/lowlevel.html +6 -27
  86. data/vendor/local/share/gtk-doc/html/pango/pango-ATSUI-Fonts.html +20 -39
  87. data/vendor/local/share/gtk-doc/html/pango/pango-Bidirectional-Text.html +73 -88
  88. data/vendor/local/share/gtk-doc/html/pango/pango-Cairo-Rendering.html +405 -320
  89. data/vendor/local/share/gtk-doc/html/pango/pango-Coverage-Maps.html +85 -97
  90. data/vendor/local/share/gtk-doc/html/pango/pango-Engines.html +69 -84
  91. data/vendor/local/share/gtk-doc/html/pango/pango-Fonts.html +695 -645
  92. data/vendor/local/share/gtk-doc/html/pango/pango-FreeType-Fonts-and-Rendering.html +225 -228
  93. data/vendor/local/share/gtk-doc/html/pango/pango-Glyph-Storage.html +523 -494
  94. data/vendor/local/share/gtk-doc/html/pango/pango-Layout-Objects.html +819 -742
  95. data/vendor/local/share/gtk-doc/html/pango/pango-Miscellaneous-Utilities.html +203 -204
  96. data/vendor/local/share/gtk-doc/html/pango/pango-Modules.html +58 -75
  97. data/vendor/local/share/gtk-doc/html/pango/pango-OpenType-Font-Handling.html +422 -405
  98. data/vendor/local/share/gtk-doc/html/pango/pango-Scripts-and-Languages.html +144 -142
  99. data/vendor/local/share/gtk-doc/html/pango/pango-Tab-Stops.html +120 -130
  100. data/vendor/local/share/gtk-doc/html/pango/pango-Text-Attributes.html +618 -576
  101. data/vendor/local/share/gtk-doc/html/pango/pango-Text-Processing.html +397 -384
  102. data/vendor/local/share/gtk-doc/html/pango/pango-Version-Checking.html +44 -58
  103. data/vendor/local/share/gtk-doc/html/pango/pango-Vertical-Text.html +73 -84
  104. data/vendor/local/share/gtk-doc/html/pango/pango-Win32-Fonts-and-Rendering.html +220 -217
  105. data/vendor/local/share/gtk-doc/html/pango/pango-X-Fonts-and-Rendering.html +303 -302
  106. data/vendor/local/share/gtk-doc/html/pango/pango-Xft-Fonts-and-Rendering.html +293 -292
  107. data/vendor/local/share/gtk-doc/html/pango/pango-hierarchy.html +5 -26
  108. data/vendor/local/share/gtk-doc/html/pango/pango-pango-renderer.html +1009 -0
  109. data/vendor/local/share/gtk-doc/html/pango/pango-querymodules.html +7 -28
  110. data/vendor/local/share/gtk-doc/html/pango/pango.devhelp +68 -68
  111. data/vendor/local/share/gtk-doc/html/pango/pango.devhelp2 +72 -72
  112. data/vendor/local/share/gtk-doc/html/pango/pango.html +3 -24
  113. data/vendor/local/share/gtk-doc/html/pango/rendering.html +3 -24
  114. data/vendor/local/share/gtk-doc/html/pango/style.css +21 -13
  115. data/vendor/local/share/gtk-doc/html/pango/tools.html +3 -24
  116. data/vendor/local/share/man/man1/pango-querymodules.1 +2 -2
  117. data/vendor/local/share/man/man1/pango-view.1 +1 -1
  118. data/vendor/local/src/tml/packaging/{gtk+_2.22.0-1_win32.log → gtk+_2.22.0-2_win32.log} +1835 -1832
  119. data/vendor/local/src/tml/packaging/{gtk+_2.22.0-1_win32.sh → gtk+_2.22.0-2_win32.sh} +26 -1
  120. data/vendor/local/src/tml/packaging/{pango_1.28.1-2_win32.log → pango_1.28.3-1_win32.log} +293 -413
  121. data/vendor/local/src/tml/packaging/pango_1.28.3-1_win32.sh +56 -0
  122. data/vendor/local/src/tml/packaging/pixman_0.18.4-2_win32.log +291 -0
  123. data/vendor/local/src/tml/packaging/pixman_0.18.4-2_win32.sh +141 -0
  124. data/vendor/local/src/tml/packaging/pkg-config_0.23-3_win32.log +215 -0
  125. data/vendor/local/src/tml/packaging/pkg-config_0.23-3_win32.sh +278 -0
  126. metadata +3323 -3325
  127. data/ext/gtk2/Makefile +0 -163
  128. data/ext/gtk2/rbgdkkeysyms.h +0 -1708
  129. data/ext/gtk2/rbgtkinits.c +0 -469
  130. data/vendor/local/manifest/cairo-dev_1.10.0-1_win32.mft +0 -83
  131. data/vendor/local/manifest/cairo_1.10.0-1_win32.mft +0 -5
  132. data/vendor/local/manifest/expat-dev_2.0.1-1_win32.mft +0 -10
  133. data/vendor/local/manifest/expat_2.0.1-1_win32.mft +0 -2
  134. data/vendor/local/manifest/fontconfig-dev_2.8.0-2_win32.mft +0 -387
  135. data/vendor/local/manifest/fontconfig_2.8.0-2_win32.mft +0 -3
  136. data/vendor/local/manifest/freetype-dev_2.4.2-1_win32.mft +0 -56
  137. data/vendor/local/manifest/freetype_2.4.2-1_win32.mft +0 -2
  138. data/vendor/local/manifest/gtk+-dev_2.22.0-1_win32.mft +0 -947
  139. data/vendor/local/manifest/gtk+_2.22.0-1_win32.mft +0 -225
  140. data/vendor/local/manifest/libpng-dev_1.4.3-1_win32.mft +0 -15
  141. data/vendor/local/manifest/libpng_1.4.3-1_win32.mft +0 -2
  142. data/vendor/local/share/gtk-doc/html/pango/PangoRenderer.html +0 -1002
  143. data/vendor/local/src/tml/packaging/pango_1.28.1-2_win32.sh +0 -579
@@ -1,579 +0,0 @@
1
- # This is a shell script that calls functions and scripts from
2
- # tml@iki.fi's personal work environment. It is not expected to be
3
- # usable unmodified by others, and is included only for reference.
4
-
5
- MOD=pango
6
- VER=1.28.1
7
- REV=2
8
- ARCH=win32
9
-
10
- THIS=${MOD}_${VER}-${REV}_${ARCH}
11
-
12
- RUNZIP=${MOD}_${VER}-${REV}_${ARCH}.zip
13
- DEVZIP=${MOD}-dev_${VER}-${REV}_${ARCH}.zip
14
-
15
- HEX=`echo $THIS | md5sum | cut -d' ' -f1`
16
- TARGET=c:/devel/target/$HEX
17
-
18
- usedev
19
- usemsvs6
20
-
21
- (
22
-
23
- set -x
24
-
25
- patch --verbose --fuzz=0 -p1 <<'EOF'
26
- commit ed4732969da2219e36c5c74193886637439bb2e9
27
- Author: Tor Lillqvist <tml@iki.fi>
28
- Date: Sat Sep 11 15:17:19 2010 +0300
29
-
30
- Improve performance on Windows especially for non-Latin scripts
31
-
32
- The use of Uniscribe script caches was decidedly suboptimal. Use one
33
- persistent SCRIPT_CACHE per Win32 font and script.
34
-
35
- Patch by by David E. Hollingsworth and Fredrik Corneliusson,
36
- from bug #621869.
37
-
38
- diff --git a/modules/basic/basic-win32.c b/modules/basic/basic-win32.c
39
- index ecb139e..e1ef376 100644
40
- --- a/modules/basic/basic-win32.c
41
- +++ b/modules/basic/basic-win32.c
42
- @@ -33,6 +33,8 @@
43
- #include "pango-engine.h"
44
- #include "pango-utils.h"
45
-
46
- +extern HFONT _pango_win32_font_get_hfont (PangoFont *font);
47
- +
48
- /* No extra fields needed */
49
- typedef PangoEngineShape BasicEngineWin32;
50
- typedef PangoEngineShapeClass BasicEngineWin32Class ;
51
- @@ -495,8 +497,7 @@ itemize_shape_and_place (PangoFont *font,
52
- wchar_t *wtext,
53
- int wlen,
54
- const PangoAnalysis *analysis,
55
- - PangoGlyphString *glyphs,
56
- - SCRIPT_CACHE *script_cache)
57
- + PangoGlyphString *glyphs)
58
- {
59
- int i;
60
- int item, nitems, item_step;
61
- @@ -505,6 +506,11 @@ itemize_shape_and_place (PangoFont *font,
62
- SCRIPT_STATE state;
63
- SCRIPT_ITEM items[100];
64
- double scale = pango_win32_font_get_metrics_factor (font);
65
- + HFONT hfont = _pango_win32_font_get_hfont (font);
66
- + static GHashTable *script_cache_hash = NULL;
67
- +
68
- + if (!script_cache_hash)
69
- + script_cache_hash = g_hash_table_new (g_int64_hash, g_int64_equal);
70
-
71
- memset (&control, 0, sizeof (control));
72
- memset (&state, 0, sizeof (state));
73
- @@ -551,9 +557,11 @@ itemize_shape_and_place (PangoFont *font,
74
- int advances[1000];
75
- GOFFSET offsets[1000];
76
- ABC abc;
77
- - int script = items[item].a.eScript;
78
- + gint32 script = items[item].a.eScript;
79
- int ng;
80
- int char_offset;
81
- + SCRIPT_CACHE *script_cache;
82
- + gint64 font_and_script_key;
83
-
84
- memset (advances, 0, sizeof (advances));
85
- memset (offsets, 0, sizeof (offsets));
86
- @@ -579,9 +587,33 @@ itemize_shape_and_place (PangoFont *font,
87
- items[item].a.fNoGlyphIndex ? " fNoGlyphIndex" : "",
88
- items[item].iCharPos, items[item+1].iCharPos-1, itemlen);
89
- #endif
90
- + /* Create a hash key based on hfont and script engine */
91
- + font_and_script_key = (((gint64) ((gint32) hfont)) << 32) | script;
92
- +
93
- + /* Get the script cache for this hfont and script */
94
- + script_cache = g_hash_table_lookup (script_cache_hash, &font_and_script_key);
95
- + if (!script_cache)
96
- + {
97
- + gint64 *key_n;
98
- + SCRIPT_CACHE *new_script_cache;
99
- +
100
- + key_n = g_new (gint64, 1);
101
- + *key_n = font_and_script_key;
102
- +
103
- + new_script_cache = g_new0 (SCRIPT_CACHE, 1);
104
- + script_cache = new_script_cache;
105
- +
106
- + /* Insert the new value */
107
- + g_hash_table_insert (script_cache_hash, key_n, new_script_cache);
108
- +
109
- +#ifdef BASIC_WIN32_DEBUGGING
110
- + if (pango_win32_debug)
111
- + g_print (" New SCRIPT_CACHE for font %p and script %d\n", hfont, script);
112
- +#endif
113
- + }
114
-
115
- items[item].a.fRTL = analysis->level % 2;
116
- - if ((*script_shape) (hdc, &script_cache[script],
117
- + if ((*script_shape) (hdc, script_cache,
118
- wtext + items[item].iCharPos, itemlen,
119
- G_N_ELEMENTS (iglyphs),
120
- &items[item].a,
121
- @@ -611,7 +643,7 @@ itemize_shape_and_place (PangoFont *font,
122
- nglyphs, glyphs->log_clusters + ng,
123
- char_offset);
124
-
125
- - if ((*script_place) (hdc, &script_cache[script], iglyphs, nglyphs,
126
- + if ((*script_place) (hdc, script_cache, iglyphs, nglyphs,
127
- visattrs, &items[item].a,
128
- advances, offsets, &abc))
129
- {
130
- @@ -671,9 +703,7 @@ uniscribe_shape (PangoFont *font,
131
- {
132
- wchar_t *wtext;
133
- long wlen;
134
- - int i;
135
- gboolean retval = TRUE;
136
- - SCRIPT_CACHE script_cache[100];
137
-
138
- if (!pango_win32_font_select_font (font, hdc))
139
- return FALSE;
140
- @@ -684,11 +714,7 @@ uniscribe_shape (PangoFont *font,
141
-
142
- if (retval)
143
- {
144
- - memset (script_cache, 0, sizeof (script_cache));
145
- - retval = itemize_shape_and_place (font, hdc, wtext, wlen, analysis, glyphs, script_cache);
146
- - for (i = 0; i < G_N_ELEMENTS (script_cache); i++)
147
- - if (script_cache[i])
148
- - (*script_free_cache)(&script_cache[i]);
149
- + retval = itemize_shape_and_place (font, hdc, wtext, wlen, analysis, glyphs);
150
- }
151
-
152
- if (retval)
153
- diff --git a/pango/pangowin32-private.h b/pango/pangowin32-private.h
154
- index 9f35823..73df2e9 100644
155
- --- a/pango/pangowin32-private.h
156
- +++ b/pango/pangowin32-private.h
157
- @@ -129,11 +129,8 @@ struct _PangoWin32Font
158
-
159
- PangoFontMap *fontmap;
160
-
161
- - /* Written by pango_win32_get_hfont: */
162
- + /* Written by _pango_win32_font_get_hfont: */
163
- HFONT hfont;
164
- - gint tm_ascent;
165
- - gint tm_descent;
166
- - gint tm_overhang;
167
-
168
- PangoWin32Face *win32face;
169
-
170
- @@ -275,6 +272,8 @@ gboolean _pango_win32_get_name_record (HDC hdc,
171
- gint i,
172
- struct name_record *record);
173
-
174
- +HFONT _pango_win32_font_get_hfont (PangoFont *font);
175
- +
176
- extern HDC _pango_win32_hdc;
177
- extern OSVERSIONINFO _pango_win32_os_version_info;
178
- extern gboolean _pango_win32_debug;
179
- diff --git a/pango/pangowin32.c b/pango/pangowin32.c
180
- index 1f8c1d2..30ec8b6 100644
181
- --- a/pango/pangowin32.c
182
- +++ b/pango/pangowin32.c
183
- @@ -74,7 +74,6 @@ static gboolean pango_win32_font_real_select_font (PangoFont *font,
184
- static void pango_win32_font_real_done_font (PangoFont *font);
185
- static double pango_win32_font_real_get_metrics_factor (PangoFont *font);
186
-
187
- -static HFONT pango_win32_get_hfont (PangoFont *font);
188
- static void pango_win32_get_item_properties (PangoItem *item,
189
- PangoUnderline *uline,
190
- PangoAttrColor *fg_color,
191
- @@ -82,12 +81,11 @@ static void pango_win32_get_item_properties (PangoItem
192
- PangoAttrColor *bg_color,
193
- gboolean *bg_set);
194
-
195
- -static HFONT
196
- -pango_win32_get_hfont (PangoFont *font)
197
- +HFONT
198
- +_pango_win32_font_get_hfont (PangoFont *font)
199
- {
200
- PangoWin32Font *win32font = (PangoWin32Font *)font;
201
- PangoWin32FontCache *cache;
202
- - TEXTMETRIC tm;
203
-
204
- if (!win32font)
205
- return NULL;
206
- @@ -105,13 +103,6 @@ pango_win32_get_hfont (PangoFont *font)
207
- g_free (face_utf8);
208
- return NULL;
209
- }
210
- -
211
- - SelectObject (_pango_win32_hdc, win32font->hfont);
212
- - GetTextMetrics (_pango_win32_hdc, &tm);
213
- -
214
- - win32font->tm_overhang = tm.tmOverhang;
215
- - win32font->tm_descent = tm.tmDescent;
216
- - win32font->tm_ascent = tm.tmAscent;
217
- }
218
-
219
- return win32font->hfont;
220
- @@ -261,7 +252,7 @@ pango_win32_render (HDC hdc,
221
- if (glyphs->num_glyphs == 0)
222
- return;
223
-
224
- - hfont = pango_win32_get_hfont (font);
225
- + hfont = _pango_win32_font_get_hfont (font);
226
- if (!hfont)
227
- return;
228
-
229
- @@ -440,6 +431,7 @@ pango_win32_font_get_glyph_extents (PangoFont *font,
230
- PangoWin32Font *win32font = (PangoWin32Font *)font;
231
- guint16 glyph_index = glyph;
232
- GLYPHMETRICS gm;
233
- + TEXTMETRIC tm;
234
- guint32 res;
235
- HFONT hfont;
236
- MAT2 m = {{0,1}, {0,0}, {0,0}, {0,1}};
237
- @@ -465,7 +457,7 @@ pango_win32_font_get_glyph_extents (PangoFont *font,
238
-
239
- memset (&gm, 0, sizeof (gm));
240
-
241
- - hfont = pango_win32_get_hfont (font);
242
- + hfont = _pango_win32_font_get_hfont (font);
243
- SelectObject (_pango_win32_hdc, hfont);
244
- /* FIXME: (Alex) This constant reuse of _pango_win32_hdc is
245
- not thread-safe */
246
- @@ -491,10 +483,11 @@ pango_win32_font_get_glyph_extents (PangoFont *font,
247
- info->ink_rect.y = - PANGO_SCALE * gm.gmptGlyphOrigin.y;
248
- info->ink_rect.height = PANGO_SCALE * gm.gmBlackBoxY;
249
-
250
- + GetTextMetrics (_pango_win32_hdc, &tm);
251
- info->logical_rect.x = 0;
252
- info->logical_rect.width = PANGO_SCALE * gm.gmCellIncX;
253
- - info->logical_rect.y = - PANGO_SCALE * win32font->tm_ascent;
254
- - info->logical_rect.height = PANGO_SCALE * (win32font->tm_ascent + win32font->tm_descent);
255
- + info->logical_rect.y = - PANGO_SCALE * tm.tmAscent;
256
- + info->logical_rect.height = PANGO_SCALE * (tm.tmAscent + tm.tmDescent);
257
-
258
- g_hash_table_insert (win32font->glyph_info, GUINT_TO_POINTER(glyph), info);
259
- }
260
- @@ -562,7 +555,7 @@ pango_win32_font_get_metrics (PangoFont *font,
261
- info->sample_str = sample_str;
262
- info->metrics = metrics = pango_font_metrics_new ();
263
-
264
- - hfont = pango_win32_get_hfont (font);
265
- + hfont = _pango_win32_font_get_hfont (font);
266
- if (hfont != NULL)
267
- {
268
- PangoCoverage *coverage;
269
- @@ -626,7 +619,7 @@ static gboolean
270
- pango_win32_font_real_select_font (PangoFont *font,
271
- HDC hdc)
272
- {
273
- - HFONT hfont = pango_win32_get_hfont (font);
274
- + HFONT hfont = _pango_win32_font_get_hfont (font);
275
-
276
- if (!hfont)
277
- return FALSE;
278
- @@ -1611,7 +1604,7 @@ font_has_name_in (PangoFont *font,
279
- if (cjkv == PANGO_WIN32_COVERAGE_UNSPEC)
280
- return TRUE;
281
-
282
- - hfont = pango_win32_get_hfont (font);
283
- + hfont = _pango_win32_font_get_hfont (font);
284
- oldhfont = SelectObject (_pango_win32_hdc, hfont);
285
-
286
- if (!_pango_win32_get_name_header (_pango_win32_hdc, &header))
287
- diff --git a/pango/pangowin32.def b/pango/pangowin32.def
288
- index 13b6e8b..ec8e8b2 100644
289
- --- a/pango/pangowin32.def
290
- +++ b/pango/pangowin32.def
291
- @@ -3,6 +3,7 @@ EXPORTS
292
- _pango_win32_make_matching_logfontw
293
- _pango_win32_font_get_type
294
- _pango_win32_font_map_get_type
295
- + _pango_win32_font_get_hfont
296
- pango_win32_font_cache_free
297
- pango_win32_font_cache_load
298
- pango_win32_font_cache_loadw
299
-
300
- commit 75f0db89f7a4d0bd2948d27134913b9f2af02533
301
- Author: Tor Lillqvist <tml@iki.fi>
302
- Date: Sat Sep 11 14:52:28 2010 +0300
303
-
304
- Reduce DLL hijack risk and simplify code in basic-win32 module
305
-
306
- Dont load usp10.dll dynamically with LoadLibrary(). Just link to the
307
- Uniscribe API directly. MinGW comes with an import library so no
308
- problem with that either. The Uniscribe DLL is present on all versions
309
- of Windows we care for.
310
-
311
- diff --git a/modules/basic/Makefile.am b/modules/basic/Makefile.am
312
- index acd0c4d..93604c9 100644
313
- --- a/modules/basic/Makefile.am
314
- +++ b/modules/basic/Makefile.am
315
- @@ -47,7 +47,8 @@ endif
316
- endif
317
-
318
- pango_basic_win32_la_LDFLAGS = -module $(MODULE_LIBTOOL_OPTIONS)
319
- -pango_basic_win32_la_LIBADD = $(pangowin32libs) -lgdi32
320
- +pango_basic_win32_la_LIBADD = $(pangowin32libs) -lgdi32 -lusp10
321
- +libpango_basic_win32_la_LIBADD = -lgdi32 -lusp10
322
- pango_basic_win32_la_SOURCES = basic-win32.c
323
- libpango_basic_win32_la_SOURCES = basic-win32.c
324
- libpango_basic_win32_la_CFLAGS = -DPANGO_MODULE_PREFIX=_pango_basic_win32
325
- diff --git a/modules/basic/basic-win32.c b/modules/basic/basic-win32.c
326
- index e1ef376..a7f1c90 100644
327
- --- a/modules/basic/basic-win32.c
328
- +++ b/modules/basic/basic-win32.c
329
- @@ -45,55 +45,8 @@ static gboolean pango_win32_debug = FALSE;
330
-
331
- #include <usp10.h>
332
-
333
- -static gboolean have_uniscribe = FALSE;
334
- -
335
- static HDC hdc;
336
-
337
- -typedef HRESULT (WINAPI *pScriptGetProperties) (const SCRIPT_PROPERTIES ***,
338
- - int *);
339
- -
340
- -typedef HRESULT (WINAPI *pScriptItemize) (const WCHAR *,
341
- - int,
342
- - int,
343
- - const SCRIPT_CONTROL *,
344
- - const SCRIPT_STATE *,
345
- - SCRIPT_ITEM *,
346
- - int *);
347
- -
348
- -typedef HRESULT (WINAPI *pScriptShape) (HDC,
349
- - SCRIPT_CACHE *,
350
- - const WCHAR *,
351
- - int,
352
- - int,
353
- - SCRIPT_ANALYSIS *,
354
- - WORD *,
355
- - WORD *,
356
- - SCRIPT_VISATTR *,
357
- - int *);
358
- -
359
- -typedef HRESULT (WINAPI *pScriptPlace) (HDC,
360
- - SCRIPT_CACHE *,
361
- - const WORD *,
362
- - int,
363
- - const SCRIPT_VISATTR *,
364
- - SCRIPT_ANALYSIS *,
365
- - int *,
366
- - GOFFSET *,
367
- - ABC *);
368
- -
369
- -typedef HRESULT (WINAPI *pScriptFreeCache) (SCRIPT_CACHE *);
370
- -
371
- -typedef HRESULT (WINAPI *pScriptIsComplex) (WCHAR *,
372
- - int,
373
- - DWORD);
374
- -
375
- -static pScriptGetProperties script_get_properties;
376
- -static pScriptItemize script_itemize;
377
- -static pScriptShape script_shape;
378
- -static pScriptPlace script_place;
379
- -static pScriptFreeCache script_free_cache;
380
- -static pScriptIsComplex script_is_complex;
381
- -
382
- #ifdef BASIC_WIN32_DEBUGGING
383
- static const SCRIPT_PROPERTIES **scripts;
384
- static int nscripts;
385
- @@ -523,8 +476,8 @@ itemize_shape_and_place (PangoFont *font,
386
- g_print (G_STRLOC ": ScriptItemize: uDefaultLanguage:%04x uBidiLevel:%d\n",
387
- control.uDefaultLanguage, state.uBidiLevel);
388
- #endif
389
- - if ((*script_itemize) (wtext, wlen, G_N_ELEMENTS (items), &control, NULL,
390
- - items, &nitems))
391
- + if (ScriptItemize (wtext, wlen, G_N_ELEMENTS (items), &control, NULL,
392
- + items, &nitems))
393
- {
394
- #ifdef BASIC_WIN32_DEBUGGING
395
- if (pango_win32_debug)
396
- @@ -613,14 +566,14 @@ itemize_shape_and_place (PangoFont *font,
397
- }
398
-
399
- items[item].a.fRTL = analysis->level % 2;
400
- - if ((*script_shape) (hdc, script_cache,
401
- - wtext + items[item].iCharPos, itemlen,
402
- - G_N_ELEMENTS (iglyphs),
403
- - &items[item].a,
404
- - iglyphs,
405
- - log_clusters,
406
- - visattrs,
407
- - &nglyphs))
408
- + if (ScriptShape (hdc, script_cache,
409
- + wtext + items[item].iCharPos, itemlen,
410
- + G_N_ELEMENTS (iglyphs),
411
- + &items[item].a,
412
- + iglyphs,
413
- + log_clusters,
414
- + visattrs,
415
- + &nglyphs))
416
- {
417
- #ifdef BASIC_WIN32_DEBUGGING
418
- if (pango_win32_debug)
419
- @@ -643,9 +596,9 @@ itemize_shape_and_place (PangoFont *font,
420
- nglyphs, glyphs->log_clusters + ng,
421
- char_offset);
422
-
423
- - if ((*script_place) (hdc, script_cache, iglyphs, nglyphs,
424
- - visattrs, &items[item].a,
425
- - advances, offsets, &abc))
426
- + if (ScriptPlace (hdc, script_cache, iglyphs, nglyphs,
427
- + visattrs, &items[item].a,
428
- + advances, offsets, &abc))
429
- {
430
- #ifdef BASIC_WIN32_DEBUGGING
431
- if (pango_win32_debug)
432
- @@ -752,7 +705,7 @@ text_is_simple (const char *text,
433
- if (wtext == NULL)
434
- return TRUE;
435
-
436
- - retval = ((*script_is_complex) (wtext, wlen, SIC_COMPLEX) == S_FALSE);
437
- + retval = (ScriptIsComplex (wtext, wlen, SIC_COMPLEX) == S_FALSE);
438
-
439
- g_free (wtext);
440
-
441
- @@ -782,8 +735,7 @@ basic_engine_shape (PangoEngineShape *engine,
442
- g_return_if_fail (length >= 0);
443
- g_return_if_fail (analysis != NULL);
444
-
445
- - if (have_uniscribe &&
446
- - !text_is_simple (text, length) &&
447
- + if (!text_is_simple (text, length) &&
448
- uniscribe_shape (font, text, length, analysis, glyphs))
449
- return;
450
-
451
- @@ -872,33 +824,10 @@ basic_engine_shape (PangoEngineShape *engine,
452
- static void
453
- init_uniscribe (void)
454
- {
455
- - HMODULE usp10_dll;
456
- -
457
- - have_uniscribe = FALSE;
458
- -
459
- - if ((usp10_dll = LoadLibrary ("usp10.dll")) != NULL)
460
- - {
461
- - (script_get_properties = (pScriptGetProperties)
462
- - GetProcAddress (usp10_dll, "ScriptGetProperties")) &&
463
- - (script_itemize = (pScriptItemize)
464
- - GetProcAddress (usp10_dll, "ScriptItemize")) &&
465
- - (script_shape = (pScriptShape)
466
- - GetProcAddress (usp10_dll, "ScriptShape")) &&
467
- - (script_place = (pScriptPlace)
468
- - GetProcAddress (usp10_dll, "ScriptPlace")) &&
469
- - (script_free_cache = (pScriptFreeCache)
470
- - GetProcAddress (usp10_dll, "ScriptFreeCache")) &&
471
- - (script_is_complex = (pScriptIsComplex)
472
- - GetProcAddress (usp10_dll, "ScriptIsComplex")) &&
473
- - (have_uniscribe = TRUE);
474
- - }
475
- - if (have_uniscribe)
476
- - {
477
- #ifdef BASIC_WIN32_DEBUGGING
478
- - (*script_get_properties) (&scripts, &nscripts);
479
- + ScriptGetProperties (&scripts, &nscripts);
480
- #endif
481
- - hdc = pango_win32_get_dc ();
482
- - }
483
- + hdc = pango_win32_get_dc ();
484
- }
485
-
486
- static void
487
- @@ -935,28 +864,25 @@ PANGO_MODULE_ENTRY(list) (PangoEngineInfo **engines,
488
- script_engines[0].scripts = basic_scripts;
489
- script_engines[0].n_scripts = G_N_ELEMENTS (basic_scripts);
490
-
491
- - if (have_uniscribe)
492
- - {
493
- #if 0
494
- - int i;
495
- - GArray *ranges = g_array_new (FALSE, FALSE, sizeof (PangoEngineRange));
496
- + int i;
497
- + GArray *ranges = g_array_new (FALSE, FALSE, sizeof (PangoEngineRange));
498
-
499
- - /* Walk through scripts supported by the Uniscribe implementation on this
500
- - * machine, and mark corresponding Unicode ranges.
501
- - */
502
- - for (i = 0; i < nscripts; i++)
503
- - {
504
- - }
505
- + /* Walk through scripts supported by the Uniscribe implementation on this
506
- + * machine, and mark corresponding Unicode ranges.
507
- + */
508
- + for (i = 0; i < nscripts; i++)
509
- + {
510
- + }
511
-
512
- - /* Sort range array */
513
- - g_array_sort (ranges, compare_range);
514
- - script_engines[0].ranges = ranges;
515
- - script_engines[0].n_ranges = ranges->len;
516
- + /* Sort range array */
517
- + g_array_sort (ranges, compare_range);
518
- + script_engines[0].ranges = ranges;
519
- + script_engines[0].n_ranges = ranges->len;
520
- #else
521
- - script_engines[0].scripts = uniscribe_scripts;
522
- - script_engines[0].n_scripts = G_N_ELEMENTS (uniscribe_scripts);
523
- + script_engines[0].scripts = uniscribe_scripts;
524
- + script_engines[0].n_scripts = G_N_ELEMENTS (uniscribe_scripts);
525
- #endif
526
- - }
527
-
528
- *engines = script_engines;
529
- *n_engines = G_N_ELEMENTS (script_engines);
530
- EOF
531
-
532
- patch -p0 --verbose <<'EOF'
533
- --- modules/basic/Makefile.in
534
- +++ modules/basic/Makefile.in
535
- @@ -101,7 +101,7 @@
536
- $(libpango_basic_fc_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
537
- $(LDFLAGS) -o $@
538
- @HAVE_FREETYPE_TRUE@@INCLUDE_BASIC_FC_TRUE@am_libpango_basic_fc_la_rpath =
539
- -libpango_basic_win32_la_LIBADD =
540
- +libpango_basic_win32_la_LIBADD = -lgdi32 -lusp10
541
- am_libpango_basic_win32_la_OBJECTS = \
542
- libpango_basic_win32_la-basic-win32.lo
543
- libpango_basic_win32_la_OBJECTS = \
544
- EOF
545
-
546
- DEPS=`latest --arch=${ARCH} glib pkg-config zlib libpng pixman cairo expat fontconfig freetype`
547
- PROXY_LIBINTL=`latest --arch=${ARCH} proxy-libintl`
548
-
549
- PKG_CONFIG_PATH=/dummy
550
- for D in $DEPS; do
551
- PKG_CONFIG_PATH=/devel/dist/${ARCH}/$D/lib/pkgconfig:$PKG_CONFIG_PATH
552
- PATH=/devel/dist/${ARCH}/$D/bin:$PATH
553
- done
554
-
555
- patch -p0 <<\EOF
556
- EOF
557
-
558
- lt_cv_deplibs_check_method='pass_all' \
559
- CC='gcc -mtune=pentium3 -mthreads' \
560
- LDFLAGS="-L/devel/dist/${ARCH}/${PROXY_LIBINTL}/lib -Wl,--exclude-libs=libintl.a -Wl,--enable-auto-image-base" \
561
- CFLAGS=-O2 \
562
- ./configure --enable-debug=yes --disable-gtk-doc --without-x --prefix=c:/devel/target/$HEX --enable-explicit-deps=no --with-included-modules=yes &&
563
-
564
- PATH=/devel/target/$HEX/bin:.libs:$PATH make install &&
565
-
566
- ./pango-zip.sh &&
567
-
568
- cd $TARGET
569
-
570
- zip /tmp/${MOD}-dev-${VER}.zip bin/pango-view.exe
571
- zip /tmp/${MOD}-dev-${VER}.zip share/man/man1/*.1
572
-
573
- mv /tmp/${MOD}-${VER}.zip /tmp/$RUNZIP &&
574
- mv /tmp/${MOD}-dev-${VER}.zip /tmp/$DEVZIP
575
-
576
- ) 2>&1 | tee /devel/src/tml/packaging/$THIS.log
577
-
578
- (cd /devel && zip /tmp/$DEVZIP src/tml/packaging/$THIS.{sh,log}) &&
579
- manifestify /tmp/$RUNZIP /tmp/$DEVZIP