cvs: gd /gd-pango gd_pango.c gd_pango.h

[email protected] ("Takeshi Abe") Sun, 14 Sep 2008 15:21:13 -0000
Newsgroups php.gd.cvs
Message-ID <cvstabe1221405673@cvsserver>
tabe		Sun Sep 14 15:21:13 2008 UTC

  Modified files:              
    /gd/gd-pango	gd_pango.h gd_pango.c 
  Log:
  replaced glib string utilities
  
http://cvs.php.net/viewvc.cgi/gd/gd-pango/gd_pango.h?r1=1.9&r2=1.10&diff_format=u
Index: gd/gd-pango/gd_pango.h
diff -u gd/gd-pango/gd_pango.h:1.9 gd/gd-pango/gd_pango.h:1.10
--- gd/gd-pango/gd_pango.h:1.9	Tue Jul  1 11:40:27 2008
+++ gd/gd-pango/gd_pango.h	Sun Sep 14 15:21:13 2008
@@ -15,14 +15,14 @@
   | Authors: Pierre-A. Joye <[email protected]>                             |
   +----------------------------------------------------------------------+
 */
-/* $Id: gd_pango.h,v 1.9 2008/07/01 11:40:27 tabe Exp $ */
+/* $Id: gd_pango.h,v 1.10 2008/09/14 15:21:13 tabe Exp $ */
 /**
  * @file
  * @brief Header file of gd-pango
  *
  * @author Pierre-Alain Joye
  * @date   2006/12/19
- * $Id: gd_pango.h,v 1.9 2008/07/01 11:40:27 tabe Exp $
+ * $Id: gd_pango.h,v 1.10 2008/09/14 15:21:13 tabe Exp $
  */
 
 #ifndef GD_PANGO_H
@@ -52,6 +52,7 @@
 enum {
 	GD_PANGO_ERROR_FC_FT,
 	GD_PANGO_ERROR_FC_PAT,
+	GD_PANGO_ERROR_FORMAT,
 };
 
 /**
http://cvs.php.net/viewvc.cgi/gd/gd-pango/gd_pango.c?r1=1.14&r2=1.15&diff_format=u
Index: gd/gd-pango/gd_pango.c
diff -u gd/gd-pango/gd_pango.c:1.14 gd/gd-pango/gd_pango.c:1.15
--- gd/gd-pango/gd_pango.c:1.14	Thu Sep 11 14:48:54 2008
+++ gd/gd-pango/gd_pango.c	Sun Sep 14 15:21:13 2008
@@ -15,7 +15,7 @@
   | Authors: Pierre-A. Joye <[email protected]>                             |
   +----------------------------------------------------------------------+
 */
-/* $Id: gd_pango.c,v 1.14 2008/09/11 14:48:54 tabe Exp $ */
+/* $Id: gd_pango.c,v 1.15 2008/09/14 15:21:13 tabe Exp $ */
 /**
  * @file
  * @brief Pango support for GD
@@ -24,7 +24,7 @@
  *
  * @author Pierre-Alain Joye
  * @date   2006/12/19
- * $Id: gd_pango.c,v 1.14 2008/09/11 14:48:54 tabe Exp $
+ * $Id: gd_pango.c,v 1.15 2008/09/14 15:21:13 tabe Exp $
  */
 /**
  * \mainpage
@@ -818,28 +818,36 @@
 	FcValue fcFamilyName;
 	FcResult fcResult;
 	int numFonts;
-	char *font_desc, buf[G_ASCII_DTOSTR_BUF_SIZE];
-	int r;
+	char *font_desc;
+	int n, r = GD_FAILURE;
 
 	fcBlanks = FcBlanksCreate();
 	fcPattern = FcFreeTypeQuery(fontlist, 0, fcBlanks, &numFonts);
 	if (!fcPattern) {
 		if (error) *error = GD_PANGO_ERROR_FC_FT;
-		r = GD_FAILURE;
 		goto fail0;
 	}
 	fcResult = FcPatternGet(fcPattern, FC_FAMILY, 0, &fcFamilyName);
 	if (fcResult != FcResultMatch) {
 		if (error) *error = GD_PANGO_ERROR_FC_PAT;
-		r = GD_FAILURE;
 		goto fail1;
 	}
 
-	g_ascii_dtostr(buf, sizeof(buf), ptsize);
-	font_desc = g_strconcat(fcFamilyName.u.s, " ", buf, NULL);
+	n = snprintf(NULL, 0, "%s %f", fcFamilyName.u.s, ptsize);
+	if (n <= 0) {
+		if (error) *error = GD_PANGO_ERROR_FORMAT;
+		goto fail1;
+	}
+	font_desc = g_malloc(n + 1);
+	n = snprintf(font_desc, n + 1, "%s %f", fcFamilyName.u.s, ptsize);
+	if (n <= 0) {
+		if (error) *error = GD_PANGO_ERROR_FORMAT;
+		goto fail2;
+	}
 	context->font_desc = pango_font_description_from_string(font_desc);
-	g_free(font_desc);
 	r = GD_SUCCESS;
+ fail2:
+	g_free(font_desc);
  fail1:
 	FcPatternDestroy(fcPattern);
  fail0: