Commit bf06b62a09f538f86a3890efaef96d709693aaae

Huw Davies 2012-03-14T14:44:46

[sfnt] Add `name' table compatibility to MS Windows. * src/sfnt/sfobjs.c (tt_name_entry_ascii_from_utf16, tt_name_entry_ascii_from_other): Don't replace `\0' with question marks when converting strings.

diff --git a/ChangeLog b/ChangeLog
index 7bd4307..c42508c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2012-03-14  Huw Davies  <huw@codeweavers.com>
+
+	[sfnt] Add `name' table compatibility to MS Windows.
+
+	* src/sfnt/sfobjs.c (tt_name_entry_ascii_from_utf16,
+	tt_name_entry_ascii_from_other): Don't replace `\0' with question
+	marks when converting strings.
+
 2012-03-14  Werner Lemberg  <wl@gnu.org>
 
 	Fix Savannah bug #35833.
diff --git a/src/sfnt/sfobjs.c b/src/sfnt/sfobjs.c
index d7be631..3b9fd47 100644
--- a/src/sfnt/sfobjs.c
+++ b/src/sfnt/sfobjs.c
@@ -4,7 +4,7 @@
 /*                                                                         */
 /*    SFNT object management (base).                                       */
 /*                                                                         */
-/*  Copyright 1996-2008, 2010-2011 by                                      */
+/*  Copyright 1996-2008, 2010-2012 by                                      */
 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
 /*                                                                         */
 /*  This file is part of the FreeType project, and may only be used,       */
@@ -64,7 +64,7 @@
     for ( n = 0; n < len; n++ )
     {
       code = FT_NEXT_USHORT( read );
-      if ( code < 32 || code > 127 )
+      if ( code != 0 && ( code < 32 || code > 127 ) )
         code = '?';
 
       string[n] = (char)code;
@@ -95,7 +95,7 @@
     for ( n = 0; n < len; n++ )
     {
       code = *read++;
-      if ( code < 32 || code > 127 )
+      if ( code != 0 && ( code < 32 || code > 127 ) )
         code = '?';
 
       string[n] = (char)code;