Mercurial > projects > dwt-win
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; } /**