# HG changeset patch # User Frank Benoit # Date 1208135198 -7200 # Node ID 108ba7ff5a0be6d0d7e71bea5b7db5f2adb9b50c # Parent 8313535d74faef0a2858d6d3dec1ca6cea4a3952 Fix null termination in FonData(char[]) diff -r 8313535d74fa -r 108ba7ff5a0b dwt/graphics/FontData.d --- 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; } /**