changeset 204:108ba7ff5a0b

Fix null termination in FonData(char[])
author Frank Benoit <benoit@tionex.de>
date Mon, 14 Apr 2008 03:06:38 +0200
parents 8313535d74fa
children 6d1762e7ebb7
files dwt/graphics/FontData.d
diffstat 1 files changed, 8 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/dwt/graphics/FontData.d	Mon Apr 14 02:07:22 2008 +0200
+++ b/dwt/graphics/FontData.d	Mon Apr 14 03:06:38 2008 +0200
@@ -235,8 +235,10 @@
             return;
         }
         char[] buffer = string.substring(start);
-        int len = Math.min(OS.LF_FACESIZE - 1, buffer.length);
-        newData.lfFaceName[ 0 .. len ] = .StrToTCHARs(buffer)[ 0 .. len ];
+        auto wname = StrToTCHARs(buffer);
+        int len = Math.min(OS.LF_FACESIZE - 1, wname.length);
+        newData.lfFaceName[ 0 .. len ] = wname[ 0 .. len ];
+        newData.lfFaceName[ len .. $ ] = 0;
         data = newData;
     }
 }
@@ -549,10 +551,10 @@
     if (name is null) DWT.error(DWT.ERROR_NULL_ARGUMENT);
 
     /* The field lfFaceName must be NULL terminated */
-    int len = Math.min(OS.LF_FACESIZE - 1, name.length);
-
-    data.lfFaceName[0 .. len] = .StrToTCHARs(name)[0 .. len];
-    data.lfFaceName[len] = 0;
+    auto wname = StrToTCHARs(name);
+    int len = Math.min(OS.LF_FACESIZE - 1, wname.length);
+    data.lfFaceName[0 .. len] = wname[ 0 .. len ];
+    data.lfFaceName[len .. $] = 0;
 }
 
 /**