diff options
author | minskim <minskim@pkgsrc.org> | 2004-08-06 02:09:38 +0000 |
---|---|---|
committer | minskim <minskim@pkgsrc.org> | 2004-08-06 02:09:38 +0000 |
commit | a25087752fe379f45c0373f5d5192d8d9d1c0191 (patch) | |
tree | 8596bf1076223010d83b2997487fed53e752dcb5 /devel/pango | |
parent | 12fac7f45d54e7efc281b427622452b8856c793c (diff) | |
download | pkgsrc-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/Makefile | 3 | ||||
-rw-r--r-- | devel/pango/distinfo | 4 | ||||
-rw-r--r-- | devel/pango/patches/patch-ab | 12 | ||||
-rw-r--r-- | devel/pango/patches/patch-ac | 67 |
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); |