diff options
| -rw-r--r-- | abs/core/pango/PKGBUILD | 26 | ||||
| -rw-r--r-- | abs/core/pango/bgo563356.patch | 305 | 
2 files changed, 14 insertions, 317 deletions
| diff --git a/abs/core/pango/PKGBUILD b/abs/core/pango/PKGBUILD index 524b9c1..b07ef9c 100644 --- a/abs/core/pango/PKGBUILD +++ b/abs/core/pango/PKGBUILD @@ -1,27 +1,29 @@ -# $Id: PKGBUILD 82790 2010-06-17 13:43:36Z jgc $  +# $Id: PKGBUILD 161372 2012-06-10 10:55:15Z jgc $   # Maintainer: Jan de Groot <jgc@archlinux.org>  pkgname=pango -pkgver=1.28.3 -pkgrel=2 +pkgver=1.30.1 +pkgrel=1  pkgdesc="A library for layout and rendering of text"  arch=('i686' 'x86_64')  license=('LGPL') -depends=('glib2>=2.24.1' 'cairo>=1.8.10' 'libxft>=2.1.14' 'libthai>=0.1.14' 'freetype2>=2.3.12') -makedepends=('pkgconfig' 'libxt' 'gobject-introspection') +depends=('glib2' 'cairo' 'libxft' 'libthai' 'freetype2') +makedepends=('gobject-introspection' 'libxt' 'gtk-doc')  options=('!libtool' '!emptydirs')  install=pango.install -source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/1.28/${pkgname}-${pkgver}.tar.bz2) +source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver:0:4}/${pkgname}-${pkgver}.tar.xz)  url="http://www.pango.org/" +sha256sums=('3a8c061e143c272ddcd5467b3567e970cfbb64d1d1600a8f8e62435556220cbe')  build() { -  cd "${srcdir}/${pkgname}-${pkgver}" +  cd ${pkgname}-${pkgver} +    ./configure --prefix=/usr --sysconfdir=/etc \ -      --localstatedir=/var --with-included-modules=basic-fc || return 1 -  make || return 1 +      --localstatedir=/var --with-included-modules=basic-fc +  make  } +  package() { -  cd "${srcdir}/${pkgname}-${pkgver}" -  make DESTDIR="${pkgdir}" install || return 1 +  cd ${pkgname}-${pkgver} +  make DESTDIR="${pkgdir}" install  } -md5sums=('caa74baea47e7e16bc73c89f9089d522') diff --git a/abs/core/pango/bgo563356.patch b/abs/core/pango/bgo563356.patch deleted file mode 100644 index 226fd0c..0000000 --- a/abs/core/pango/bgo563356.patch +++ /dev/null @@ -1,305 +0,0 @@ -diff -aur old/ChangeLog new/ChangeLog ---- old/ChangeLog	2008-12-06 14:35:33.037390818 +0800 -+++ new/ChangeLog	2008-12-06 14:35:11.475339336 +0800 -@@ -1,3 +1,39 @@ -+2008-12-05  Behdad Esfahbod  <behdad@gnome.org> -+ -+	Bug 563356 – The input area of firefox and the blank width after text -+	in gnome-menu was stretched too wide, under pango-1.22.3 -+ -+	* docs/tmpl/fonts.sgml: -+	* pango/pango-impl-utils.h: -+	* pango/pangocairo-atsuifont.c -+	(pango_cairo_atsui_font_create_metrics_for_context): -+	* pango/pangocairo-win32font.c -+	(pango_cairo_win32_font_create_metrics_for_context): -+	* pango/pangofc-font.c (pango_fc_font_create_metrics_for_context): -+	For approximate_char_width calculation take each char's width into -+	account.  That is, do a weighted average instead of uniform average. -+	g_unichar_iszerowidth() chars count as 0, g_unichar_iswide() chars -+	count 2, and the rest count as 1.  Pretty much wcwidth() behavior. -+	See bug report for rationale. -+ -+2008-11-28  Behdad Esfahbod  <behdad@gnome.org> -+ -+	Bug 562574 – Pangocariowin32 is leaking every cairo font it ever -+	creates -+ -+	* pango/pangocairo-atsuifont.c (pango_cairo_atsui_font_finalize): -+	* pango/pangocairo-win32font.c (pango_cairo_win32_font_finalize): -+	Finalize shared pangocairo font resources.  Oops! -+ -+	* pango/pangocairo-font.c (_pango_cairo_font_private_finalize): -+	Protect against multiple calls to finalize.  This is practiced by the -+	pangocairo-fcfont when a font is shutdown and then finalized. -+ -+2008-11-26  Behdad Esfahbod  <behdad@gnome.org> -+ -+	* examples/cairotwisted.c (parametrize_path), (point_on_path): -+	Handle close_path correctly. -+ - 2008-11-23  Behdad Esfahbod  <behdad@gnome.org> -  - 	* === Released 1.22.3 === -diff -aur old/docs/tmpl/fonts.sgml new/docs/tmpl/fonts.sgml ---- old/docs/tmpl/fonts.sgml	2008-12-06 14:35:11.450807479 +0800 -+++ new/docs/tmpl/fonts.sgml	2008-12-06 14:34:53.771786070 +0800 -@@ -441,7 +441,10 @@ - @descent: the distance from the baseline to the lowest point of the glyphs of - 	 the font. This is positive in practically all fonts. - @approximate_char_width: approximate average width of the regular glyphs of --         the font. -+         the font.  Note that for this calculation, East Asian characters -+	 (those passing g_unichar_iswide()) are counted as double-width. -+	 This produces a more uniform value for this measure across languages -+	 and results in more uniform and more expected UI sizes. - @approximate_digit_width: approximate average width of the glyphs for digits -          of the font. - @underline_position: position of the underline. This is normally negative. -diff -aur old/examples/cairotwisted.c new/examples/cairotwisted.c ---- old/examples/cairotwisted.c	2008-12-06 14:35:32.900725834 +0800 -+++ new/examples/cairotwisted.c	2008-12-06 14:35:11.264059243 +0800 -@@ -216,7 +216,7 @@ - parametrize_path (cairo_path_t *path) - { -   int i; --  cairo_path_data_t *data, current_point; -+  cairo_path_data_t *data, last_move_to, current_point; -   parametrization_t *parametrization; -  -   parametrization = malloc (path->num_data * sizeof (parametrization[0])); -@@ -226,8 +226,13 @@ -     parametrization[i] = 0.0; -     switch (data->header.type) { -     case CAIRO_PATH_MOVE_TO: -+	last_move_to = data[1]; - 	current_point = data[1]; - 	break; -+    case CAIRO_PATH_CLOSE_PATH: -+	/* Make it look like it's a line_to to last_move_to */ -+	data = (&last_move_to) - 1; -+	/* fall through */ -     case CAIRO_PATH_LINE_TO: - 	parametrization[i] = two_points_distance (¤t_point, &data[1]); - 	current_point = data[1]; -@@ -245,8 +250,6 @@ -  - 	current_point = data[3]; - 	break; --    case CAIRO_PATH_CLOSE_PATH: --	break; -     default: - 	g_assert_not_reached (); -     } -@@ -320,7 +323,7 @@ - { -   int i; -   double ratio, the_y = *y, the_x = *x, dx, dy; --  cairo_path_data_t *data, current_point; -+  cairo_path_data_t *data, last_move_to, current_point; -   cairo_path_t *path = param->path; -   parametrization_t *parametrization = param->parametrization; -  -@@ -333,6 +336,7 @@ -     switch (data->header.type) { -     case CAIRO_PATH_MOVE_TO: - 	current_point = data[1]; -+        last_move_to = data[1]; - 	break; -     case CAIRO_PATH_LINE_TO: - 	current_point = data[1]; -@@ -352,6 +356,10 @@ -  -   case CAIRO_PATH_MOVE_TO: -       break; -+  case CAIRO_PATH_CLOSE_PATH: -+      /* Make it look like it's a line_to to last_move_to */ -+      data = (&last_move_to) - 1; -+      /* fall through */ -   case CAIRO_PATH_LINE_TO: -       { - 	ratio = the_x / parametrization[i]; -@@ -424,8 +432,6 @@ - 	*y +=  dx * ratio; -       } -       break; --  case CAIRO_PATH_CLOSE_PATH: --      break; -   default: -       g_assert_not_reached (); -   } -diff -aur old/pango/pango-impl-utils.h new/pango/pango-impl-utils.h ---- old/pango/pango-impl-utils.h	2008-12-06 14:35:22.291559359 +0800 -+++ new/pango/pango-impl-utils.h	2008-12-06 14:35:03.550729660 +0800 -@@ -23,6 +23,7 @@ - #ifndef __PANGO_IMPL_UTILS_H__ - #define __PANGO_IMPL_UTILS_H__ -  -+#include <glib.h> - #include <glib-object.h> - #include <pango/pango.h> -  -@@ -92,6 +93,36 @@ - 			       PangoRectangle   *ink_rect, - 			       PangoRectangle   *logical_rect); -  -+ -+/* We define these functions static here because we don't want to add public API -+ * for them (if anything, it belongs to glib, but glib found it trivial enough -+ * not to add API for).  At some point metrics calculations will be -+ * centralized and this mess can be minimized.  Or so I hope. -+ */ -+ -+static inline G_GNUC_UNUSED int -+pango_unichar_width (gunichar c) -+{ -+  return G_UNLIKELY (g_unichar_iszerowidth (c)) ? 0 : -+	   G_UNLIKELY (g_unichar_iswide (c)) ? 2 : 1; -+} -+ -+static G_GNUC_UNUSED glong -+pango_utf8_strwidth (const gchar *p) -+{ -+  glong len = 0; -+  g_return_val_if_fail (p != NULL, 0); -+ -+  while (*p) -+    { -+      len += pango_unichar_width (g_utf8_get_char (p)); -+      p = g_utf8_next_char (p); -+    } -+ -+  return len; -+} -+ -+ - G_END_DECLS -  - #endif /* __PANGO_IMPL_UTILS_H__ */ -diff -aur old/pango/pangocairo-atsuifont.c new/pango/pangocairo-atsuifont.c ---- old/pango/pangocairo-atsuifont.c	2008-12-06 14:35:23.464057615 +0800 -+++ new/pango/pangocairo-atsuifont.c	2008-12-06 14:35:04.914061436 +0800 -@@ -24,6 +24,7 @@ -  - #import <Cocoa/Cocoa.h> -  -+#include "pango-impl-utils.h" - #include "pangoatsui-private.h" - #include "pangocairo.h" - #include "pangocairo-private.h" -@@ -148,7 +149,7 @@ -   pango_layout_set_text (layout, sample_str, -1); -   pango_layout_get_extents (layout, NULL, &extents); -  --  metrics->approximate_char_width = extents.width / g_utf8_strlen (sample_str, -1); -+  metrics->approximate_char_width = extents.width / pango_utf8_strwidth (sample_str); -  -   pango_layout_set_text (layout, "0123456789", -1); -   metrics->approximate_digit_width = max_glyph_width (layout); -@@ -174,6 +175,10 @@ - static void - pango_cairo_atsui_font_finalize (GObject *object) - { -+  PangoCairoATSUIFont *cafont = (PangoCairoATSUIFont *) object; -+ -+  _pango_cairo_font_private_finalize (&cafont->cf_priv); -+ -   G_OBJECT_CLASS (pango_cairo_atsui_font_parent_class)->finalize (object); - } -  -@@ -191,7 +196,7 @@ - } -  - static void --pango_cairo_atsui_font_init (PangoCairoATSUIFont *cafont) -+pango_cairo_atsui_font_init (PangoCairoATSUIFont *cafont G_GNUC_UNUSED) - { - } -  -diff -aur old/pango/pangocairo-fcfont.c new/pango/pangocairo-fcfont.c ---- old/pango/pangocairo-fcfont.c	2008-12-06 14:35:22.840724772 +0800 -+++ new/pango/pangocairo-fcfont.c	2008-12-06 14:35:04.294060844 +0800 -@@ -88,7 +88,7 @@ - static void - pango_cairo_fc_font_finalize (GObject *object) - { --  PangoCairoFcFont *cffont = (PangoCairoFcFont *) (object); -+  PangoCairoFcFont *cffont = (PangoCairoFcFont *) object; -  -   _pango_cairo_font_private_finalize (&cffont->cf_priv); -  -@@ -162,7 +162,7 @@ - } -  - static void --pango_cairo_fc_font_init (PangoCairoFcFont *cffont) -+pango_cairo_fc_font_init (PangoCairoFcFont *cffont G_GNUC_UNUSED) - { - } -  -diff -aur old/pango/pangocairo-font.c new/pango/pangocairo-font.c ---- old/pango/pangocairo-font.c	2008-12-06 14:35:23.387391067 +0800 -+++ new/pango/pangocairo-font.c	2008-12-06 14:35:04.840728398 +0800 -@@ -560,14 +560,18 @@ -  -   if (cf_priv->scaled_font) -     cairo_scaled_font_destroy (cf_priv->scaled_font); -+  cf_priv->scaled_font = NULL; -  -   _pango_cairo_font_hex_box_info_destroy (cf_priv->hbi); -+  cf_priv->hbi = NULL; -  -   if (cf_priv->glyph_extents_cache) -     g_free (cf_priv->glyph_extents_cache); -+  cf_priv->glyph_extents_cache = NULL; -  -   g_slist_foreach (cf_priv->metrics_by_lang, (GFunc)free_metrics_info, NULL); -   g_slist_free (cf_priv->metrics_by_lang); -+  cf_priv->metrics_by_lang = NULL; - } -  - gboolean -diff -aur old/pango/pangocairo-win32font.c new/pango/pangocairo-win32font.c ---- old/pango/pangocairo-win32font.c	2008-12-06 14:35:22.500726273 +0800 -+++ new/pango/pangocairo-win32font.c	2008-12-06 14:35:03.990726207 +0800 -@@ -150,7 +150,7 @@ -   pango_layout_set_text (layout, sample_str, -1); -   pango_layout_get_extents (layout, NULL, &extents); -  --  metrics->approximate_char_width = extents.width / g_utf8_strlen (sample_str, -1); -+  metrics->approximate_char_width = extents.width / pango_utf8_strwidth (sample_str); -  -   pango_layout_set_text (layout, "0123456789", -1); -   metrics->approximate_digit_width = max_glyph_width (layout); -@@ -164,6 +164,10 @@ - static void - pango_cairo_win32_font_finalize (GObject *object) - { -+  PangoCairoWin32Font *cwfont = (PangoCairoWin32Font *) object; -+ -+  _pango_cairo_font_private_finalize (&cwfont->cf_priv); -+ -   G_OBJECT_CLASS (pango_cairo_win32_font_parent_class)->finalize (object); - } -  -@@ -225,7 +229,7 @@ - } -  - static void --pango_cairo_win32_font_init (PangoCairoWin32Font *cwfont) -+pango_cairo_win32_font_init (PangoCairoWin32Font *cwfont G_GNUC_UNUSED) - { - } -  -diff -aur old/pango/pangofc-font.c new/pango/pangofc-font.c ---- old/pango/pangofc-font.c	2008-12-06 14:35:23.117390557 +0800 -+++ new/pango/pangofc-font.c	2008-12-06 14:35:04.564059609 +0800 -@@ -496,7 +496,7 @@ -   pango_layout_get_extents (layout, NULL, &extents); -  -   metrics->approximate_char_width = --    extents.width / g_utf8_strlen (sample_str, -1); -+    extents.width / pango_utf8_strwidth (sample_str); -  -   pango_layout_set_text (layout, "0123456789", -1); -   metrics->approximate_digit_width = max_glyph_width (layout); | 
