summaryrefslogtreecommitdiff
path: root/devel/pango
diff options
context:
space:
mode:
authorminskim <minskim@pkgsrc.org>2004-08-06 02:09:38 +0000
committerminskim <minskim@pkgsrc.org>2004-08-06 02:09:38 +0000
commita25087752fe379f45c0373f5d5192d8d9d1c0191 (patch)
tree8596bf1076223010d83b2997487fed53e752dcb5 /devel/pango
parent12fac7f45d54e7efc281b427622452b8856c793c (diff)
downloadpkgsrc-a25087752fe379f45c0373f5d5192d8d9d1c0191.tar.gz
Fix the GNOME bug 129741, which crashes many applications, most
notably web browsers. Patches obtained from Pango CVS. Bump PKGREVISION.
Diffstat (limited to 'devel/pango')
-rw-r--r--devel/pango/Makefile3
-rw-r--r--devel/pango/distinfo4
-rw-r--r--devel/pango/patches/patch-ab12
-rw-r--r--devel/pango/patches/patch-ac67
4 files changed, 84 insertions, 2 deletions
diff --git a/devel/pango/Makefile b/devel/pango/Makefile
index fcf3afbfcae..c76ce0c88ef 100644
--- a/devel/pango/Makefile
+++ b/devel/pango/Makefile
@@ -1,7 +1,8 @@
-# $NetBSD: Makefile,v 1.42 2004/04/24 17:48:41 minskim Exp $
+# $NetBSD: Makefile,v 1.43 2004/08/06 02:09:38 minskim Exp $
#
DISTNAME= pango-1.4.0
+PKGREVISION= 1
CATEGORIES= devel
MASTER_SITES= ftp://ftp.gtk.org/pub/gtk/v2.4/ \
ftp://ftp.cs.umn.edu/pub/gimp/gtk/v2.4/ \
diff --git a/devel/pango/distinfo b/devel/pango/distinfo
index 771199963d2..564865cc01d 100644
--- a/devel/pango/distinfo
+++ b/devel/pango/distinfo
@@ -1,5 +1,7 @@
-$NetBSD: distinfo,v 1.18 2004/05/09 13:16:02 grant Exp $
+$NetBSD: distinfo,v 1.19 2004/08/06 02:09:38 minskim Exp $
SHA1 (pango-1.4.0.tar.bz2) = 10ea96cb05e0ada51e1b81f68dd1cad56cdd6a99
Size (pango-1.4.0.tar.bz2) = 921472 bytes
SHA1 (patch-aa) = ea2fe223d9c7da2a19f1699124a59e6081ab8e9f
+SHA1 (patch-ab) = 4f2f45c19980c32aaebe93bcd56d4ef8d2e9215b
+SHA1 (patch-ac) = e4b07d5b2e1f4f063bb6077182e91d2f56d7f927
diff --git a/devel/pango/patches/patch-ab b/devel/pango/patches/patch-ab
new file mode 100644
index 00000000000..680a952f769
--- /dev/null
+++ b/devel/pango/patches/patch-ab
@@ -0,0 +1,12 @@
+$NetBSD: patch-ab,v 1.9 2004/08/06 02:09:38 minskim Exp $
+
+--- modules/hangul/hangul-defs.h.orig 2002-11-03 13:56:24.000000000 -0600
++++ modules/hangul/hangul-defs.h
+@@ -48,6 +48,7 @@
+ #define HTONE1 0x302E
+ #define HTONE2 0x302F
+
++#define IS_JAMO(wc) (wc >= LBASE && wc <= TEND)
+ #define IS_L(wc) (wc >= LBASE && wc <= LEND)
+ #define IS_V(wc) (wc >= VFILL && wc <= VEND)
+ #define IS_T(wc) (wc > TBASE && wc <= TEND)
diff --git a/devel/pango/patches/patch-ac b/devel/pango/patches/patch-ac
new file mode 100644
index 00000000000..8ce13ff45b1
--- /dev/null
+++ b/devel/pango/patches/patch-ac
@@ -0,0 +1,67 @@
+$NetBSD: patch-ac,v 1.8 2004/08/06 02:09:38 minskim Exp $
+
+--- modules/hangul/hangul-fc.c.orig 2003-09-23 18:11:51.000000000 -0500
++++ modules/hangul/hangul-fc.c
+@@ -1,7 +1,7 @@
+ /* Pango
+ * hangul-fc.c: Hangul shaper for FreeType based backends
+ *
+- * Copyright (C) 2002 Changwoo Ryu
++ * Copyright (C) 2002-2004 Changwoo Ryu
+ * Author: Changwoo Ryu <cwryu@debian.org>
+ *
+ * This library is free software; you can redistribute it and/or
+@@ -275,6 +275,21 @@ render_syllable (PangoFont *font, gunich
+ render_tone(font, tone, glyphs, n_glyphs, cluster_offset);
+ }
+
++static void
++render_basic (PangoFont *font, gunichar wc,
++ PangoGlyphString *glyphs, int *n_glyphs, int cluster_offset)
++{
++ int index;
++ index = find_char (font, wc);
++ pango_glyph_string_set_size (glyphs, *n_glyphs + 1);
++ if (index)
++ set_glyph (font, glyphs, *n_glyphs, cluster_offset, index);
++ else
++ set_glyph (font, glyphs, *n_glyphs, cluster_offset,
++ get_unknown_glyph (font, wc));
++ (*n_glyphs)++;
++}
++
+ static void
+ hangul_engine_shape (PangoEngineShape *engine,
+ PangoFont *font,
+@@ -307,13 +322,14 @@ hangul_engine_shape (PangoEngineShape *e
+ if (n_jamos)
+ {
+ gunichar prev = jamos[n_jamos - 1];
+- if ((!IS_L (prev) && IS_S (wc)) ||
++ if ((!IS_JAMO (wc) && !IS_S (wc) && !IS_M (wc)) ||
++ (!IS_L (prev) && IS_S (wc)) ||
+ (IS_T (prev) && IS_L (wc)) ||
+ (IS_V (prev) && IS_L (wc)) ||
+ (IS_T (prev) && IS_V (wc)) ||
+- IS_M(prev))
++ IS_M (prev))
+ {
+- /* Draw a syllable. */
++ /* Draw a syllable with these jamos. */
+ render_syllable (font, jamos, n_jamos, glyphs,
+ &n_glyphs, start - text);
+ n_jamos = 0;
+@@ -333,7 +349,12 @@ hangul_engine_shape (PangoEngineShape *e
+ jamos = g_renew (gunichar, jamos, max_jamos);
+ }
+
+- if (IS_S (wc))
++ if (!IS_JAMO (wc) && !IS_S (wc) && !IS_M (wc))
++ {
++ render_basic (font, wc, glyphs, &n_glyphs, start - text);
++ start = g_utf8_next_char (p);
++ }
++ else if (IS_S (wc))
+ {
+ jamos[n_jamos++] = L_FROM_S (wc);
+ jamos[n_jamos++] = V_FROM_S (wc);