gdi32: Build with msvcrt.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Alexandre Julliard 2020-11-05 10:44:16 +01:00
parent 60ef5b0182
commit aa90a5969f
19 changed files with 111 additions and 159 deletions

View File

@ -6,6 +6,8 @@ EXTRAINCL = $(FREETYPE_CFLAGS) $(FONTCONFIG_CFLAGS)
EXTRALIBS = $(CARBON_LIBS) $(APPKIT_LIBS) EXTRALIBS = $(CARBON_LIBS) $(APPKIT_LIBS)
DELAYIMPORTS = usp10 setupapi DELAYIMPORTS = usp10 setupapi
EXTRADLLFLAGS = -mno-cygwin
C_SRCS = \ C_SRCS = \
bidi.c \ bidi.c \
bitblt.c \ bitblt.c \

View File

@ -41,8 +41,6 @@
* has been modified. * has been modified.
*/ */
#include "config.h"
#include <stdarg.h> #include <stdarg.h>
#include "windef.h" #include "windef.h"
#include "winbase.h" #include "winbase.h"

View File

@ -18,14 +18,10 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/ */
#include "config.h"
#include <stdarg.h> #include <stdarg.h>
#include <limits.h> #include <limits.h>
#include <math.h> #include <math.h>
#ifdef HAVE_FLOAT_H
#include <float.h> #include <float.h>
#endif
#include "windef.h" #include "windef.h"
#include "winbase.h" #include "winbase.h"

View File

@ -18,8 +18,6 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/ */
#include "config.h"
#include <stdarg.h> #include <stdarg.h>
#include <string.h> #include <string.h>

View File

@ -18,8 +18,6 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/ */
#include "config.h"
#include <assert.h> #include <assert.h>
#include <stdarg.h> #include <stdarg.h>
#include <stdlib.h> #include <stdlib.h>
@ -28,10 +26,10 @@
#include "winbase.h" #include "winbase.h"
#include "wingdi.h" #include "wingdi.h"
#include "winreg.h" #include "winreg.h"
#include "winnls.h"
#include "winternl.h" #include "winternl.h"
#include "winerror.h" #include "winerror.h"
#include "gdi_private.h" #include "gdi_private.h"
#include "wine/unicode.h"
#include "wine/debug.h" #include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL(dc); WINE_DEFAULT_DEBUG_CHANNEL(dc);
@ -641,7 +639,7 @@ HDC WINAPI CreateDCW( LPCWSTR driver, LPCWSTR device, LPCWSTR output,
ERR( "no device found for %s\n", debugstr_w(device) ); ERR( "no device found for %s\n", debugstr_w(device) );
return 0; return 0;
} }
strcpyW(buf, driver); lstrcpyW(buf, driver);
} }
if (!(funcs = DRIVER_load_driver( buf ))) if (!(funcs = DRIVER_load_driver( buf )))
@ -701,7 +699,7 @@ HDC WINAPI CreateDCA( LPCSTR driver, LPCSTR device, LPCSTR output,
if (initData) if (initData)
{ {
/* don't convert initData for DISPLAY driver, it's not used */ /* don't convert initData for DISPLAY driver, it's not used */
if (!driverW.Buffer || strcmpiW( driverW.Buffer, displayW )) if (!driverW.Buffer || wcsicmp( driverW.Buffer, displayW ))
initDataW = GdiConvertToDevmodeW(initData); initDataW = GdiConvertToDevmodeW(initData);
} }

View File

@ -59,8 +59,6 @@
Search for "Bitmap Structures" in MSDN Search for "Bitmap Structures" in MSDN
*/ */
#include "config.h"
#include <stdarg.h> #include <stdarg.h>
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>

View File

@ -22,7 +22,6 @@
#include "gdi_private.h" #include "gdi_private.h"
#include "dibdrv.h" #include "dibdrv.h"
#include "wine/unicode.h"
#include "wine/debug.h" #include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL(dib); WINE_DEFAULT_DEBUG_CHANNEL(dib);
@ -535,9 +534,9 @@ static DWORD font_cache_hash( struct cached_font *font )
two_chars = *ptr; two_chars = *ptr;
pwc = (WCHAR *)&two_chars; pwc = (WCHAR *)&two_chars;
if (!*pwc) break; if (!*pwc) break;
*pwc = toupperW(*pwc); *pwc = towupper(*pwc);
pwc++; pwc++;
*pwc = toupperW(*pwc); *pwc = towupper(*pwc);
hash ^= two_chars; hash ^= two_chars;
if (!*pwc) break; if (!*pwc) break;
} }
@ -550,7 +549,7 @@ static int font_cache_cmp( const struct cached_font *p1, const struct cached_fon
if (!ret) ret = p1->aa_flags - p2->aa_flags; if (!ret) ret = p1->aa_flags - p2->aa_flags;
if (!ret) ret = memcmp( &p1->xform, &p2->xform, sizeof(p1->xform) ); if (!ret) ret = memcmp( &p1->xform, &p2->xform, sizeof(p1->xform) );
if (!ret) ret = memcmp( &p1->lf, &p2->lf, FIELD_OFFSET( LOGFONTW, lfFaceName )); if (!ret) ret = memcmp( &p1->lf, &p2->lf, FIELD_OFFSET( LOGFONTW, lfFaceName ));
if (!ret) ret = strcmpiW( p1->lf.lfFaceName, p2->lf.lfFaceName ); if (!ret) ret = wcsicmp( p1->lf.lfFaceName, p2->lf.lfFaceName );
return ret; return ret;
} }

View File

@ -19,9 +19,6 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/ */
#include "config.h"
#include "wine/port.h"
#include <assert.h> #include <assert.h>
#include <stdarg.h> #include <stdarg.h>
#include <string.h> #include <string.h>
@ -42,7 +39,6 @@
#include "ddk/d3dkmthk.h" #include "ddk/d3dkmthk.h"
#include "gdi_private.h" #include "gdi_private.h"
#include "wine/unicode.h"
#include "wine/list.h" #include "wine/list.h"
#include "wine/debug.h" #include "wine/debug.h"
#include "wine/heap.h" #include "wine/heap.h"
@ -146,17 +142,17 @@ static BOOL is_display_device( LPCWSTR name )
static const WCHAR display_deviceW[] = {'\\','\\','.','\\','D','I','S','P','L','A','Y'}; static const WCHAR display_deviceW[] = {'\\','\\','.','\\','D','I','S','P','L','A','Y'};
const WCHAR *p = name; const WCHAR *p = name;
if (strncmpiW( name, display_deviceW, sizeof(display_deviceW) / sizeof(WCHAR) )) if (wcsnicmp( name, display_deviceW, sizeof(display_deviceW) / sizeof(WCHAR) ))
return FALSE; return FALSE;
p += sizeof(display_deviceW) / sizeof(WCHAR); p += sizeof(display_deviceW) / sizeof(WCHAR);
if (!isdigitW( *p++ )) if (!iswdigit( *p++ ))
return FALSE; return FALSE;
for (; *p; p++) for (; *p; p++)
{ {
if (!isdigitW( *p )) if (!iswdigit( *p ))
return FALSE; return FALSE;
} }
@ -188,7 +184,7 @@ const struct gdi_dc_funcs *DRIVER_load_driver( LPCWSTR name )
static const WCHAR displayW[] = { 'd','i','s','p','l','a','y',0 }; static const WCHAR displayW[] = { 'd','i','s','p','l','a','y',0 };
/* display driver is a special case */ /* display driver is a special case */
if (!strcmpiW( name, displayW ) || is_display_device( name )) return get_display_driver(); if (!wcsicmp( name, displayW ) || is_display_device( name )) return get_display_driver();
if ((module = GetModuleHandleW( name ))) if ((module = GetModuleHandleW( name )))
{ {
@ -542,7 +538,7 @@ static INT CDECL nulldrv_GetTextFace( PHYSDEV dev, INT size, LPWSTR name )
if (GetObjectW( dc->hFont, sizeof(font), &font )) if (GetObjectW( dc->hFont, sizeof(font), &font ))
{ {
ret = strlenW( font.lfFaceName ) + 1; ret = lstrlenW( font.lfFaceName ) + 1;
if (name) if (name)
{ {
lstrcpynW( name, font.lfFaceName, size ); lstrcpynW( name, font.lfFaceName, size );
@ -946,7 +942,7 @@ BOOL DRIVER_GetDriverName( LPCWSTR device, LPWSTR driver, DWORD size )
WCHAR *p; WCHAR *p;
/* display is a special case */ /* display is a special case */
if (!strcmpiW( device, displayW ) || if (!wcsicmp( device, displayW ) ||
is_display_device( device )) is_display_device( device ))
{ {
lstrcpynW( driver, displayW, size ); lstrcpynW( driver, displayW, size );
@ -958,7 +954,7 @@ BOOL DRIVER_GetDriverName( LPCWSTR device, LPWSTR driver, DWORD size )
WARN("Unable to find %s in [devices] section of win.ini\n", debugstr_w(device)); WARN("Unable to find %s in [devices] section of win.ini\n", debugstr_w(device));
return FALSE; return FALSE;
} }
p = strchrW(driver, ','); p = wcschr(driver, ',');
if(!p) if(!p)
{ {
WARN("%s entry in [devices] section of win.ini is malformed.\n", debugstr_w(device)); WARN("%s entry in [devices] section of win.ini is malformed.\n", debugstr_w(device));
@ -1399,10 +1395,10 @@ NTSTATUS WINAPI D3DKMTOpenAdapterFromGdiDisplayName( D3DKMT_OPENADAPTERFROMGDIDI
return STATUS_UNSUCCESSFUL; return STATUS_UNSUCCESSFUL;
TRACE("DeviceName: %s\n", wine_dbgstr_w( desc->DeviceName )); TRACE("DeviceName: %s\n", wine_dbgstr_w( desc->DeviceName ));
if (strncmpiW( desc->DeviceName, displayW, ARRAY_SIZE(displayW) )) if (wcsnicmp( desc->DeviceName, displayW, ARRAY_SIZE(displayW) ))
return STATUS_UNSUCCESSFUL; return STATUS_UNSUCCESSFUL;
index = strtolW( desc->DeviceName + ARRAY_SIZE(displayW), &end, 10 ) - 1; index = wcstol( desc->DeviceName + ARRAY_SIZE(displayW), &end, 10 ) - 1;
if (*end) if (*end)
return STATUS_UNSUCCESSFUL; return STATUS_UNSUCCESSFUL;
@ -1414,7 +1410,7 @@ NTSTATUS WINAPI D3DKMTOpenAdapterFromGdiDisplayName( D3DKMT_OPENADAPTERFROMGDIDI
mutex = get_display_device_init_mutex(); mutex = get_display_device_init_mutex();
size = sizeof( bufferW ); size = sizeof( bufferW );
sprintfW( key_nameW, video_value_fmtW, index ); swprintf( key_nameW, MAX_PATH, video_value_fmtW, index );
if (RegGetValueW( HKEY_LOCAL_MACHINE, video_keyW, key_nameW, RRF_RT_REG_SZ, NULL, bufferW, &size )) if (RegGetValueW( HKEY_LOCAL_MACHINE, video_keyW, key_nameW, RRF_RT_REG_SZ, NULL, bufferW, &size ))
goto done; goto done;

View File

@ -31,9 +31,6 @@
* *
*/ */
#include "config.h"
#include "wine/port.h"
#include <stdarg.h> #include <stdarg.h>
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>

View File

@ -18,9 +18,6 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/ */
#include "config.h"
#include "wine/port.h"
#include <stdarg.h> #include <stdarg.h>
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>

View File

@ -20,9 +20,6 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/ */
#include "config.h"
#include "wine/port.h"
#include <limits.h> #include <limits.h>
#include <stdarg.h> #include <stdarg.h>
#include <stdlib.h> #include <stdlib.h>
@ -39,7 +36,6 @@
#include "wine/exception.h" #include "wine/exception.h"
#include "wine/heap.h" #include "wine/heap.h"
#include "wine/rbtree.h" #include "wine/rbtree.h"
#include "wine/unicode.h"
#include "wine/debug.h" #include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL(font); WINE_DEFAULT_DEBUG_CHANNEL(font);
@ -157,7 +153,7 @@ static inline BOOL is_win9x(void)
static inline WCHAR *strdupW( const WCHAR *p ) static inline WCHAR *strdupW( const WCHAR *p )
{ {
WCHAR *ret; WCHAR *ret;
DWORD len = (strlenW(p) + 1) * sizeof(WCHAR); DWORD len = (lstrlenW(p) + 1) * sizeof(WCHAR);
ret = HeapAlloc(GetProcessHeap(), 0, len); ret = HeapAlloc(GetProcessHeap(), 0, len);
memcpy(ret, p, len); memcpy(ret, p, len);
return ret; return ret;
@ -451,14 +447,14 @@ static void get_fonts_data_dir_path( const WCHAR *file, WCHAR *path )
if (GetEnvironmentVariableW( winedatadirW, path, MAX_PATH )) if (GetEnvironmentVariableW( winedatadirW, path, MAX_PATH ))
{ {
const char fontdir[] = "\\" WINE_FONT_DIR "\\"; const char fontdir[] = "\\" WINE_FONT_DIR "\\";
MultiByteToWideChar( CP_ACP, 0, fontdir, -1, path + strlenW(path), MAX_PATH - strlenW(path) ); MultiByteToWideChar( CP_ACP, 0, fontdir, -1, path + lstrlenW(path), MAX_PATH - lstrlenW(path) );
} }
else if (GetEnvironmentVariableW( winebuilddirW, path, MAX_PATH )) else if (GetEnvironmentVariableW( winebuilddirW, path, MAX_PATH ))
{ {
strcatW( path, fontsW ); lstrcatW( path, fontsW );
} }
strcatW( path, file ); lstrcatW( path, file );
if (path[5] == ':') memmove( path, path + 4, (strlenW(path) - 3) * sizeof(WCHAR) ); if (path[5] == ':') memmove( path, path + 4, (lstrlenW(path) - 3) * sizeof(WCHAR) );
else path[1] = '\\'; /* change \??\ to \\?\ */ else path[1] = '\\'; /* change \??\ to \\?\ */
} }
@ -467,8 +463,8 @@ static void get_fonts_win_dir_path( const WCHAR *file, WCHAR *path )
static const WCHAR fontsW[] = {'\\','f','o','n','t','s','\\',0}; static const WCHAR fontsW[] = {'\\','f','o','n','t','s','\\',0};
GetWindowsDirectoryW( path, MAX_PATH ); GetWindowsDirectoryW( path, MAX_PATH );
strcatW( path, fontsW ); lstrcatW( path, fontsW );
strcatW( path, file ); lstrcatW( path, file );
} }
/* font substitutions */ /* font substitutions */
@ -485,7 +481,7 @@ static struct list font_subst_list = LIST_INIT(font_subst_list);
static inline WCHAR *get_subst_to_name( struct gdi_font_subst *subst ) static inline WCHAR *get_subst_to_name( struct gdi_font_subst *subst )
{ {
return subst->names + strlenW( subst->names ) + 1; return subst->names + lstrlenW( subst->names ) + 1;
} }
static void dump_gdi_font_subst(void) static void dump_gdi_font_subst(void)
@ -508,7 +504,7 @@ static const WCHAR *get_gdi_font_subst( const WCHAR *from_name, int from_charset
LIST_FOR_EACH_ENTRY( subst, &font_subst_list, struct gdi_font_subst, entry ) LIST_FOR_EACH_ENTRY( subst, &font_subst_list, struct gdi_font_subst, entry )
{ {
if (!strcmpiW(subst->names, from_name) && if (!wcsicmp(subst->names, from_name) &&
(subst->from_charset == from_charset || subst->from_charset == -1)) (subst->from_charset == from_charset || subst->from_charset == -1))
{ {
if (to_charset) *to_charset = subst->to_charset; if (to_charset) *to_charset = subst->to_charset;
@ -521,15 +517,15 @@ static const WCHAR *get_gdi_font_subst( const WCHAR *from_name, int from_charset
static BOOL add_gdi_font_subst( const WCHAR *from_name, int from_charset, const WCHAR *to_name, int to_charset ) static BOOL add_gdi_font_subst( const WCHAR *from_name, int from_charset, const WCHAR *to_name, int to_charset )
{ {
struct gdi_font_subst *subst; struct gdi_font_subst *subst;
int len = strlenW( from_name ) + strlenW( to_name ) + 2; int len = lstrlenW( from_name ) + lstrlenW( to_name ) + 2;
if (get_gdi_font_subst( from_name, from_charset, NULL )) return FALSE; /* already exists */ if (get_gdi_font_subst( from_name, from_charset, NULL )) return FALSE; /* already exists */
if (!(subst = HeapAlloc( GetProcessHeap(), 0, if (!(subst = HeapAlloc( GetProcessHeap(), 0,
offsetof( struct gdi_font_subst, names[len] )))) offsetof( struct gdi_font_subst, names[len] ))))
return FALSE; return FALSE;
strcpyW( subst->names, from_name ); lstrcpyW( subst->names, from_name );
strcpyW( get_subst_to_name(subst), to_name ); lstrcpyW( get_subst_to_name(subst), to_name );
subst->from_charset = from_charset; subst->from_charset = from_charset;
subst->to_charset = to_charset; subst->to_charset = to_charset;
list_add_tail( &font_subst_list, &subst->entry ); list_add_tail( &font_subst_list, &subst->entry );
@ -552,15 +548,15 @@ static void load_gdi_font_subst(void)
int from_charset = -1, to_charset = -1; int from_charset = -1, to_charset = -1;
TRACE("Got %s=%s\n", debugstr_w(value), debugstr_w(data)); TRACE("Got %s=%s\n", debugstr_w(value), debugstr_w(data));
if ((p = strrchrW( value, ',' )) && p[1]) if ((p = wcsrchr( value, ',' )) && p[1])
{ {
*p++ = 0; *p++ = 0;
from_charset = strtolW( p, NULL, 10 ); from_charset = wcstol( p, NULL, 10 );
} }
if ((p = strrchrW( data, ',' )) && p[1]) if ((p = wcsrchr( data, ',' )) && p[1])
{ {
*p++ = 0; *p++ = 0;
to_charset = strtolW( p, NULL, 10 ); to_charset = wcstol( p, NULL, 10 );
} }
/* Win 2000 doesn't allow mapping between different charsets /* Win 2000 doesn't allow mapping between different charsets
@ -611,7 +607,7 @@ static struct gdi_font_family *find_family_from_name( const WCHAR *name )
struct gdi_font_family *family; struct gdi_font_family *family;
LIST_FOR_EACH_ENTRY( family, &font_list, struct gdi_font_family, entry ) LIST_FOR_EACH_ENTRY( family, &font_list, struct gdi_font_family, entry )
if (!strncmpiW( family->family_name, name, LF_FACESIZE - 1 )) return family; if (!wcsnicmp( family->family_name, name, LF_FACESIZE - 1 )) return family;
return NULL; return NULL;
} }
@ -621,8 +617,8 @@ static struct gdi_font_family *find_family_from_any_name( const WCHAR *name )
LIST_FOR_EACH_ENTRY( family, &font_list, struct gdi_font_family, entry ) LIST_FOR_EACH_ENTRY( family, &font_list, struct gdi_font_family, entry )
{ {
if (!strncmpiW( family->family_name, name, LF_FACESIZE - 1 )) return family; if (!wcsnicmp( family->family_name, name, LF_FACESIZE - 1 )) return family;
if (!strncmpiW( family->second_name, name, LF_FACESIZE - 1 )) return family; if (!wcsnicmp( family->second_name, name, LF_FACESIZE - 1 )) return family;
} }
return NULL; return NULL;
} }
@ -642,14 +638,14 @@ static struct gdi_font_face *find_face_from_filename( const WCHAR *file_name, co
LIST_FOR_EACH_ENTRY( family, &font_list, struct gdi_font_family, entry ) LIST_FOR_EACH_ENTRY( family, &font_list, struct gdi_font_family, entry )
{ {
if (family_name && strncmpiW( family_name, family->family_name, LF_FACESIZE - 1 )) continue; if (family_name && wcsnicmp( family_name, family->family_name, LF_FACESIZE - 1 )) continue;
LIST_FOR_EACH_ENTRY( face, get_family_face_list(family), struct gdi_font_face, entry ) LIST_FOR_EACH_ENTRY( face, get_family_face_list(family), struct gdi_font_face, entry )
{ {
if (!face->file) continue; if (!face->file) continue;
file = strrchrW(face->file, '\\'); file = wcsrchr(face->file, '\\');
if (!file) file = face->file; if (!file) file = face->file;
else file++; else file++;
if (strcmpiW( file, file_name )) continue; if (wcsicmp( file, file_name )) continue;
face->refcount++; face->refcount++;
return face; return face;
} }
@ -723,7 +719,7 @@ static void load_gdi_font_replacements(void)
while (*replace) while (*replace)
{ {
if (add_family_replacement( value, replace )) break; if (add_family_replacement( value, replace )) break;
replace += strlenW(replace) + 1; replace += lstrlenW(replace) + 1;
} }
} }
else if (type == REG_SZ) add_family_replacement( value, data ); else if (type == REG_SZ) add_family_replacement( value, data );
@ -825,7 +821,7 @@ static int remove_font( const WCHAR *file, DWORD flags )
{ {
if (!face->file) continue; if (!face->file) continue;
if (LOWORD(face->flags) != LOWORD(flags)) continue; if (LOWORD(face->flags) != LOWORD(flags)) continue;
if (!strcmpiW( face->file, file )) if (!wcsicmp( face->file, file ))
{ {
TRACE( "removing matching face %s refcount %d\n", debugstr_w(face->file), face->refcount ); TRACE( "removing matching face %s refcount %d\n", debugstr_w(face->file), face->refcount );
release_face( face ); release_face( face );
@ -840,7 +836,7 @@ static int remove_font( const WCHAR *file, DWORD flags )
static inline BOOL faces_equal( const struct gdi_font_face *f1, const struct gdi_font_face *f2 ) static inline BOOL faces_equal( const struct gdi_font_face *f1, const struct gdi_font_face *f2 )
{ {
if (strcmpiW( f1->full_name, f2->full_name )) return FALSE; if (wcsicmp( f1->full_name, f2->full_name )) return FALSE;
if (f1->scalable) return TRUE; if (f1->scalable) return TRUE;
if (f1->size.y_ppem != f2->size.y_ppem) return FALSE; if (f1->size.y_ppem != f2->size.y_ppem) return FALSE;
return !memcmp( &f1->fs, &f2->fs, sizeof(f1->fs) ); return !memcmp( &f1->fs, &f2->fs, sizeof(f1->fs) );
@ -877,7 +873,7 @@ static BOOL insert_face_in_family_list( struct gdi_font_face *face, struct gdi_f
debugstr_w(face->full_name), debugstr_w(family->family_name), debugstr_w(face->full_name), debugstr_w(family->family_name),
cursor->version, face->version ); cursor->version, face->version );
if (face->file && !strcmpiW( face->file, cursor->file )) if (face->file && !wcsicmp( face->file, cursor->file ))
{ {
cursor->refcount++; cursor->refcount++;
TRACE("Font %s already in list, refcount now %d\n", TRACE("Font %s already in list, refcount now %d\n",
@ -1029,7 +1025,7 @@ static void load_face_from_cache( HKEY hkey_family, struct gdi_font_family *fami
{ {
((DWORD *)buffer)[needed / sizeof(DWORD)] = 0; ((DWORD *)buffer)[needed / sizeof(DWORD)] = 0;
if ((face = create_face( family, name, cached->full_name, if ((face = create_face( family, name, cached->full_name,
cached->full_name + strlenW(cached->full_name) + 1, cached->full_name + lstrlenW(cached->full_name) + 1,
NULL, 0, cached->index, cached->fs, cached->ntmflags, cached->version, NULL, 0, cached->index, cached->fs, cached->ntmflags, cached->version,
cached->flags, scalable ? NULL : &cached->size ))) cached->flags, scalable ? NULL : &cached->size )))
{ {
@ -1086,7 +1082,7 @@ static void reorder_vertical_fonts(void)
{ {
family = LIST_ENTRY( ptr, struct gdi_font_family, entry ); family = LIST_ENTRY( ptr, struct gdi_font_family, entry );
vert_family = LIST_ENTRY( vptr, struct gdi_font_family, entry ); vert_family = LIST_ENTRY( vptr, struct gdi_font_family, entry );
if (strcmpiW( family->family_name, vert_family->family_name + 1 ) > 0) if (wcsicmp( family->family_name, vert_family->family_name + 1 ) > 0)
{ {
list_remove( vptr ); list_remove( vptr );
list_add_before( ptr, vptr ); list_add_before( ptr, vptr );
@ -1137,14 +1133,14 @@ static void add_face_to_cache( struct gdi_font_face *face )
if (face->family->second_name[0]) if (face->family->second_name[0])
RegSetValueExW( hkey_family, NULL, 0, REG_SZ, (BYTE *)face->family->second_name, RegSetValueExW( hkey_family, NULL, 0, REG_SZ, (BYTE *)face->family->second_name,
(strlenW( face->family->second_name ) + 1) * sizeof(WCHAR) ); (lstrlenW( face->family->second_name ) + 1) * sizeof(WCHAR) );
if (!face->scalable) if (!face->scalable)
{ {
static const WCHAR fmtW[] = {'%','d',0}; static const WCHAR fmtW[] = {'%','d',0};
WCHAR name[10]; WCHAR name[10];
sprintfW( name, fmtW, face->size.y_ppem ); swprintf( name, ARRAY_SIZE(name), fmtW, face->size.y_ppem );
RegCreateKeyExW( hkey_family, name, 0, NULL, REG_OPTION_VOLATILE, KEY_ALL_ACCESS, RegCreateKeyExW( hkey_family, name, 0, NULL, REG_OPTION_VOLATILE, KEY_ALL_ACCESS,
NULL, &hkey_face, NULL); NULL, &hkey_face, NULL);
} }
@ -1157,10 +1153,10 @@ static void add_face_to_cache( struct gdi_font_face *face )
cached->version = face->version; cached->version = face->version;
cached->fs = face->fs; cached->fs = face->fs;
if (!face->scalable) cached->size = face->size; if (!face->scalable) cached->size = face->size;
strcpyW( cached->full_name, face->full_name ); lstrcpyW( cached->full_name, face->full_name );
len = strlenW( face->full_name ) + 1; len = lstrlenW( face->full_name ) + 1;
strcpyW( cached->full_name + len, face->file ); lstrcpyW( cached->full_name + len, face->file );
len += strlenW( face->file ) + 1; len += lstrlenW( face->file ) + 1;
RegSetValueExW( hkey_face, face->style_name, 0, REG_BINARY, (BYTE *)cached, RegSetValueExW( hkey_face, face->style_name, 0, REG_BINARY, (BYTE *)cached,
offsetof( struct cached_face, full_name[len] )); offsetof( struct cached_face, full_name[len] ));
@ -1180,7 +1176,7 @@ static void remove_face_from_cache( struct gdi_font_face *face )
{ {
static const WCHAR fmtW[] = {'%','d',0}; static const WCHAR fmtW[] = {'%','d',0};
WCHAR name[10]; WCHAR name[10];
sprintfW( name, fmtW, face->size.y_ppem ); swprintf( name, ARRAY_SIZE(name), fmtW, face->size.y_ppem );
RegDeleteKeyW( hkey_family, name ); RegDeleteKeyW( hkey_family, name );
} }
else RegDeleteValueW( hkey_family, face->style_name ); else RegDeleteValueW( hkey_family, face->style_name );
@ -1212,7 +1208,7 @@ static struct gdi_font_link *find_gdi_font_link( const WCHAR *name )
struct gdi_font_link *link; struct gdi_font_link *link;
LIST_FOR_EACH_ENTRY( link, &font_links, struct gdi_font_link, entry ) LIST_FOR_EACH_ENTRY( link, &font_links, struct gdi_font_link, entry )
if (!strncmpiW( link->name, name, LF_FACESIZE - 1 )) return link; if (!wcsnicmp( link->name, name, LF_FACESIZE - 1 )) return link;
return NULL; return NULL;
} }
@ -1225,8 +1221,8 @@ static struct gdi_font_family *find_family_from_font_links( const WCHAR *name, c
LIST_FOR_EACH_ENTRY( link, &font_links, struct gdi_font_link, entry ) LIST_FOR_EACH_ENTRY( link, &font_links, struct gdi_font_link, entry )
{ {
if (!strncmpiW( link->name, name, LF_FACESIZE - 1) || if (!wcsnicmp( link->name, name, LF_FACESIZE - 1) ||
(subst && !strncmpiW( link->name, subst, LF_FACESIZE - 1 ))) (subst && !wcsnicmp( link->name, subst, LF_FACESIZE - 1 )))
{ {
TRACE("found entry in system list\n"); TRACE("found entry in system list\n");
LIST_FOR_EACH_ENTRY( entry, &link->links, struct gdi_font_link_entry, entry ) LIST_FOR_EACH_ENTRY( entry, &link->links, struct gdi_font_link_entry, entry )
@ -1327,14 +1323,14 @@ static void populate_system_links( const WCHAR *name, const WCHAR * const *value
font_link = add_gdi_font_link( name ); font_link = add_gdi_font_link( name );
for ( ; *values; values++) for ( ; *values; values++)
{ {
if (!strcmpiW( name, *values )) continue; if (!wcsicmp( name, *values )) continue;
if (!(value = get_gdi_font_subst( *values, -1, NULL ))) value = *values; if (!(value = get_gdi_font_subst( *values, -1, NULL ))) value = *values;
if (!(family = find_family_from_name( value ))) continue; if (!(family = find_family_from_name( value ))) continue;
/* use first extant filename for this Family */ /* use first extant filename for this Family */
LIST_FOR_EACH_ENTRY( face, get_family_face_list(family), struct gdi_font_face, entry ) LIST_FOR_EACH_ENTRY( face, get_family_face_list(family), struct gdi_font_face, entry )
{ {
if (!face->file) continue; if (!face->file) continue;
file = strrchrW(face->file, '\\'); file = wcsrchr(face->file, '\\');
if (!file) file = face->file; if (!file) file = face->file;
else file++; else file++;
if ((face = find_face_from_filename( file, value ))) if ((face = find_face_from_filename( file, value )))
@ -1388,11 +1384,11 @@ static void load_system_links(void)
TRACE("%s: %s\n", debugstr_w(value), debugstr_w(entry)); TRACE("%s: %s\n", debugstr_w(value), debugstr_w(entry));
next = entry + strlenW(entry) + 1; next = entry + lstrlenW(entry) + 1;
if ((p = strchrW( entry, ',' ))) if ((p = wcschr( entry, ',' )))
{ {
*p++ = 0; *p++ = 0;
while (isspaceW(*p)) p++; while (iswspace(*p)) p++;
if (!(family_name = get_gdi_font_subst( p, -1, NULL ))) family_name = p; if (!(family_name = get_gdi_font_subst( p, -1, NULL ))) family_name = p;
} }
if ((face = find_face_from_filename( entry, family_name ))) if ((face = find_face_from_filename( entry, family_name )))
@ -1418,12 +1414,12 @@ static void load_system_links(void)
{ {
const WCHAR *subst = get_gdi_font_subst( font_links_defaults_list[i].shelldlg, -1, NULL ); const WCHAR *subst = get_gdi_font_subst( font_links_defaults_list[i].shelldlg, -1, NULL );
if ((!strcmpiW( font_links_defaults_list[i].shelldlg, shelldlg_name ) || if ((!wcsicmp( font_links_defaults_list[i].shelldlg, shelldlg_name ) ||
(subst && !strcmpiW( subst, shelldlg_name )))) (subst && !wcsicmp( subst, shelldlg_name ))))
{ {
for (j = 0; j < ARRAY_SIZE(font_links_list); j++) for (j = 0; j < ARRAY_SIZE(font_links_list); j++)
populate_system_links( font_links_list[j], font_links_defaults_list[i].substitutes ); populate_system_links( font_links_list[j], font_links_defaults_list[i].substitutes );
if (!strcmpiW(shelldlg_name, font_links_defaults_list[i].substitutes[0])) if (!wcsicmp(shelldlg_name, font_links_defaults_list[i].substitutes[0]))
populate_system_links( shelldlg_name, font_links_defaults_list[i].substitutes ); populate_system_links( shelldlg_name, font_links_defaults_list[i].substitutes );
} }
} }
@ -1524,7 +1520,7 @@ static struct gdi_font_face *find_matching_face_by_name( const WCHAR *name, cons
/* search by full face name */ /* search by full face name */
LIST_FOR_EACH_ENTRY( family, &font_list, struct gdi_font_family, entry ) LIST_FOR_EACH_ENTRY( family, &font_list, struct gdi_font_family, entry )
LIST_FOR_EACH_ENTRY( face, get_family_face_list(family), struct gdi_font_face, entry ) LIST_FOR_EACH_ENTRY( face, get_family_face_list(family), struct gdi_font_face, entry )
if (!strncmpiW( face->full_name, name, LF_FACESIZE - 1 ) && if (!wcsnicmp( face->full_name, name, LF_FACESIZE - 1 ) &&
can_select_face( face, fs, can_use_bitmap )) can_select_face( face, fs, can_use_bitmap ))
return face; return face;
@ -1549,8 +1545,8 @@ static struct gdi_font_face *find_any_face( const LOGFONTW *lf, FONTSIGNATURE fs
LIST_FOR_EACH_ENTRY( family, &font_list, struct gdi_font_family, entry ) LIST_FOR_EACH_ENTRY( family, &font_list, struct gdi_font_family, entry )
{ {
if ((family->family_name[0] == '@') == !want_vertical) continue; if ((family->family_name[0] == '@') == !want_vertical) continue;
if (strcmpiW( family->family_name + want_vertical, name ) && if (wcsicmp( family->family_name + want_vertical, name ) &&
strcmpiW( family->second_name + want_vertical, name )) continue; wcsicmp( family->second_name + want_vertical, name )) continue;
if ((face = find_best_matching_face( family, lf, fs, FALSE ))) return face; if ((face = find_best_matching_face( family, lf, fs, FALSE ))) return face;
} }
} }
@ -1692,7 +1688,7 @@ static void free_font_handle( DWORD handle )
static struct gdi_font *alloc_gdi_font( const WCHAR *file, void *data_ptr, SIZE_T data_size ) static struct gdi_font *alloc_gdi_font( const WCHAR *file, void *data_ptr, SIZE_T data_size )
{ {
UINT len = file ? strlenW(file) : 0; UINT len = file ? lstrlenW(file) : 0;
struct gdi_font *font = HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, struct gdi_font *font = HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY,
offsetof( struct gdi_font, file[len + 1] )); offsetof( struct gdi_font, file[len + 1] ));
@ -2197,7 +2193,7 @@ static void create_child_font_list( struct gdi_font *font )
* Sans Serif. This is how asian windows get default fallbacks for fonts * Sans Serif. This is how asian windows get default fallbacks for fonts
*/ */
if (is_dbcs_ansi_cp(GetACP()) && font->charset != SYMBOL_CHARSET && font->charset != OEM_CHARSET && if (is_dbcs_ansi_cp(GetACP()) && font->charset != SYMBOL_CHARSET && font->charset != OEM_CHARSET &&
strcmpiW( font_name, szDefaultFallbackLink ) != 0) wcsicmp( font_name, szDefaultFallbackLink ) != 0)
{ {
if ((font_link = find_gdi_font_link( szDefaultFallbackLink ))) if ((font_link = find_gdi_font_link( szDefaultFallbackLink )))
{ {
@ -2222,7 +2218,7 @@ static BOOL fontcmp( const struct gdi_font *font, DWORD hash, const LOGFONTW *lf
if (memcmp( &font->matrix, matrix, sizeof(*matrix))) return TRUE; if (memcmp( &font->matrix, matrix, sizeof(*matrix))) return TRUE;
if (memcmp( &font->lf, lf, offsetof(LOGFONTW, lfFaceName))) return TRUE; if (memcmp( &font->lf, lf, offsetof(LOGFONTW, lfFaceName))) return TRUE;
if (!font->can_use_bitmap != !can_use_bitmap) return TRUE; if (!font->can_use_bitmap != !can_use_bitmap) return TRUE;
return strcmpiW( font->lf.lfFaceName, lf->lfFaceName); return wcsicmp( font->lf.lfFaceName, lf->lfFaceName);
} }
static DWORD hash_font( const LOGFONTW *lf, const FMAT2 *matrix, BOOL can_use_bitmap ) static DWORD hash_font( const LOGFONTW *lf, const FMAT2 *matrix, BOOL can_use_bitmap )
@ -2240,9 +2236,9 @@ static DWORD hash_font( const LOGFONTW *lf, const FMAT2 *matrix, BOOL can_use_bi
two_chars = *ptr; two_chars = *ptr;
pwc = (WCHAR *)&two_chars; pwc = (WCHAR *)&two_chars;
if(!*pwc) break; if(!*pwc) break;
*pwc = toupperW(*pwc); *pwc = towupper(*pwc);
pwc++; pwc++;
*pwc = toupperW(*pwc); *pwc = towupper(*pwc);
hash ^= two_chars; hash ^= two_chars;
if(!*pwc) break; if(!*pwc) break;
} }
@ -2748,16 +2744,16 @@ static BOOL family_matches( struct gdi_font_family *family, const WCHAR *face_na
{ {
struct gdi_font_face *face; struct gdi_font_face *face;
if (!strncmpiW( face_name, family->family_name, LF_FACESIZE - 1 )) return TRUE; if (!wcsnicmp( face_name, family->family_name, LF_FACESIZE - 1 )) return TRUE;
LIST_FOR_EACH_ENTRY( face, get_family_face_list(family), struct gdi_font_face, entry ) LIST_FOR_EACH_ENTRY( face, get_family_face_list(family), struct gdi_font_face, entry )
if (!strncmpiW( face_name, face->full_name, LF_FACESIZE - 1 )) return TRUE; if (!wcsnicmp( face_name, face->full_name, LF_FACESIZE - 1 )) return TRUE;
return FALSE; return FALSE;
} }
static BOOL face_matches( const WCHAR *family_name, struct gdi_font_face *face, const WCHAR *face_name ) static BOOL face_matches( const WCHAR *family_name, struct gdi_font_face *face, const WCHAR *face_name )
{ {
if (!strncmpiW( face_name, family_name, LF_FACESIZE - 1)) return TRUE; if (!wcsnicmp( face_name, family_name, LF_FACESIZE - 1)) return TRUE;
return !strncmpiW( face_name, face->full_name, LF_FACESIZE - 1 ); return !wcsnicmp( face_name, face->full_name, LF_FACESIZE - 1 );
} }
static BOOL enum_face_charsets( const struct gdi_font_family *family, struct gdi_font_face *face, static BOOL enum_face_charsets( const struct gdi_font_family *family, struct gdi_font_face *face,
@ -3389,16 +3385,16 @@ static UINT CDECL font_GetOutlineTextMetrics( PHYSDEV dev, UINT size, OUTLINETEX
WCHAR *ptr = (WCHAR *)(metrics + 1); WCHAR *ptr = (WCHAR *)(metrics + 1);
*metrics = physdev->font->otm; *metrics = physdev->font->otm;
metrics->otmpFamilyName = (char *)ptr - (ULONG_PTR)metrics; metrics->otmpFamilyName = (char *)ptr - (ULONG_PTR)metrics;
strcpyW( ptr, (WCHAR *)physdev->font->otm.otmpFamilyName ); lstrcpyW( ptr, (WCHAR *)physdev->font->otm.otmpFamilyName );
ptr += strlenW(ptr) + 1; ptr += lstrlenW(ptr) + 1;
metrics->otmpStyleName = (char *)ptr - (ULONG_PTR)metrics; metrics->otmpStyleName = (char *)ptr - (ULONG_PTR)metrics;
strcpyW( ptr, (WCHAR *)physdev->font->otm.otmpStyleName ); lstrcpyW( ptr, (WCHAR *)physdev->font->otm.otmpStyleName );
ptr += strlenW(ptr) + 1; ptr += lstrlenW(ptr) + 1;
metrics->otmpFaceName = (char *)ptr - (ULONG_PTR)metrics; metrics->otmpFaceName = (char *)ptr - (ULONG_PTR)metrics;
strcpyW( ptr, (WCHAR *)physdev->font->otm.otmpFaceName ); lstrcpyW( ptr, (WCHAR *)physdev->font->otm.otmpFaceName );
ptr += strlenW(ptr) + 1; ptr += lstrlenW(ptr) + 1;
metrics->otmpFullName = (char *)ptr - (ULONG_PTR)metrics; metrics->otmpFullName = (char *)ptr - (ULONG_PTR)metrics;
strcpyW( ptr, (WCHAR *)physdev->font->otm.otmpFullName ); lstrcpyW( ptr, (WCHAR *)physdev->font->otm.otmpFullName );
scale_outline_font_metrics( physdev->font, metrics ); scale_outline_font_metrics( physdev->font, metrics );
} }
} }
@ -3496,7 +3492,7 @@ static INT CDECL font_GetTextFace( PHYSDEV dev, INT count, WCHAR *str )
dev = GET_NEXT_PHYSDEV( dev, pGetTextFace ); dev = GET_NEXT_PHYSDEV( dev, pGetTextFace );
return dev->funcs->pGetTextFace( dev, count, str ); return dev->funcs->pGetTextFace( dev, count, str );
} }
len = strlenW( get_gdi_font_name(physdev->font) ) + 1; len = lstrlenW( get_gdi_font_name(physdev->font) ) + 1;
if (str) if (str)
{ {
lstrcpynW( str, get_gdi_font_name(physdev->font), count ); lstrcpynW( str, get_gdi_font_name(physdev->font), count );
@ -3624,7 +3620,7 @@ static struct gdi_font *select_font( LOGFONTW *lf, FMAT2 dcmat, BOOL can_use_bit
SYMBOL_CHARSET so that Symbol gets picked irrespective of the SYMBOL_CHARSET so that Symbol gets picked irrespective of the
original value lfCharSet. Note this is a special case for original value lfCharSet. Note this is a special case for
Symbol and doesn't happen at least for "Wingdings*" */ Symbol and doesn't happen at least for "Wingdings*" */
if (!strcmpiW( lf->lfFaceName, SymbolW )) lf->lfCharSet = SYMBOL_CHARSET; if (!wcsicmp( lf->lfFaceName, SymbolW )) lf->lfCharSet = SYMBOL_CHARSET;
/* check the cache first */ /* check the cache first */
if ((font = find_cached_gdi_font( lf, &dcmat, can_use_bitmap ))) if ((font = find_cached_gdi_font( lf, &dcmat, can_use_bitmap )))
@ -3935,7 +3931,7 @@ static DWORD get_key_value( HKEY key, const WCHAR *name, DWORD *value )
if (!err) if (!err)
{ {
if (type == REG_DWORD) memcpy( value, buf, sizeof(*value) ); if (type == REG_DWORD) memcpy( value, buf, sizeof(*value) );
else *value = atoiW( buf ); else *value = wcstol( buf, NULL, 10 );
} }
return err; return err;
} }
@ -3959,7 +3955,7 @@ static void init_font_options(void)
if (!RegQueryValueExW( wine_fonts_key, antialias_fake_bold_or_italic, NULL, if (!RegQueryValueExW( wine_fonts_key, antialias_fake_bold_or_italic, NULL,
&type, (BYTE *)buffer, &size) && type == REG_SZ && size >= 1) &type, (BYTE *)buffer, &size) && type == REG_SZ && size >= 1)
{ {
antialias_fakes = (strchrW(true_options, buffer[0]) != NULL); antialias_fakes = (wcschr(true_options, buffer[0]) != NULL);
} }
if (!RegOpenKeyW( HKEY_CURRENT_USER, desktopW, &key )) if (!RegOpenKeyW( HKEY_CURRENT_USER, desktopW, &key ))
@ -4432,17 +4428,17 @@ static DWORD get_associated_charset_info(void)
data_len = sizeof(dataW); data_len = sizeof(dataW);
if (!RegQueryValueExW(hkey, ansiW, NULL, &type, (LPBYTE)dataW, &data_len) && if (!RegQueryValueExW(hkey, ansiW, NULL, &type, (LPBYTE)dataW, &data_len) &&
type == REG_SZ && !strcmpiW(dataW, yesW)) type == REG_SZ && !wcsicmp(dataW, yesW))
associated_charset |= ASSOC_CHARSET_ANSI; associated_charset |= ASSOC_CHARSET_ANSI;
data_len = sizeof(dataW); data_len = sizeof(dataW);
if (!RegQueryValueExW(hkey, oemW, NULL, &type, (LPBYTE)dataW, &data_len) && if (!RegQueryValueExW(hkey, oemW, NULL, &type, (LPBYTE)dataW, &data_len) &&
type == REG_SZ && !strcmpiW(dataW, yesW)) type == REG_SZ && !wcsicmp(dataW, yesW))
associated_charset |= ASSOC_CHARSET_OEM; associated_charset |= ASSOC_CHARSET_OEM;
data_len = sizeof(dataW); data_len = sizeof(dataW);
if (!RegQueryValueExW(hkey, symbolW, NULL, &type, (LPBYTE)dataW, &data_len) && if (!RegQueryValueExW(hkey, symbolW, NULL, &type, (LPBYTE)dataW, &data_len) &&
type == REG_SZ && !strcmpiW(dataW, yesW)) type == REG_SZ && !wcsicmp(dataW, yesW))
associated_charset |= ASSOC_CHARSET_SYMBOL; associated_charset |= ASSOC_CHARSET_SYMBOL;
RegCloseKey(hkey); RegCloseKey(hkey);
@ -6897,11 +6893,11 @@ BOOL WINAPI CreateScalableFontResourceW( DWORD hidden, LPCWSTR resource_file,
if (!font_file) goto done; if (!font_file) goto done;
if (font_path && font_path[0]) if (font_path && font_path[0])
{ {
int len = strlenW( font_path ) + strlenW( font_file ) + 2; int len = lstrlenW( font_path ) + lstrlenW( font_file ) + 2;
if (len > MAX_PATH) goto done; if (len > MAX_PATH) goto done;
lstrcpynW( path, font_path, MAX_PATH ); lstrcpynW( path, font_path, MAX_PATH );
strcatW( path, backslashW ); lstrcatW( path, backslashW );
strcatW( path, font_file ); lstrcatW( path, font_file );
} }
else if (!GetFullPathNameW( font_file, MAX_PATH, path, NULL )) goto done; else if (!GetFullPathNameW( font_file, MAX_PATH, path, NULL )) goto done;
@ -7778,7 +7774,7 @@ static int add_font_resource( LPCWSTR file, DWORD flags )
LeaveCriticalSection( &font_cs ); LeaveCriticalSection( &font_cs );
} }
if (!ret && !strchrW( file, '\\' )) if (!ret && !wcschr( file, '\\' ))
ret = add_system_font_resource( file, ADDFONT_ALLOW_BITMAP | ADDFONT_ADD_RESOURCE ); ret = add_system_font_resource( file, ADDFONT_ALLOW_BITMAP | ADDFONT_ADD_RESOURCE );
return ret; return ret;
@ -7797,7 +7793,7 @@ static BOOL remove_font_resource( LPCWSTR file, DWORD flags )
ret = remove_font( path, addfont_flags ); ret = remove_font( path, addfont_flags );
} }
if (!ret && !strchrW( file, '\\' )) if (!ret && !wcschr( file, '\\' ))
ret = remove_system_font_resource( file, ADDFONT_ALLOW_BITMAP | ADDFONT_ADD_RESOURCE ); ret = remove_system_font_resource( file, ADDFONT_ALLOW_BITMAP | ADDFONT_ADD_RESOURCE );
return ret; return ret;
@ -7831,14 +7827,14 @@ static void load_directory_fonts( WCHAR *path, UINT flags )
WIN32_FIND_DATAW data; WIN32_FIND_DATAW data;
WCHAR *p; WCHAR *p;
p = path + strlenW(path) - 1; p = path + lstrlenW(path) - 1;
TRACE( "loading fonts from %s\n", debugstr_w(path) ); TRACE( "loading fonts from %s\n", debugstr_w(path) );
handle = FindFirstFileW( path, &data ); handle = FindFirstFileW( path, &data );
if (handle == INVALID_HANDLE_VALUE) return; if (handle == INVALID_HANDLE_VALUE) return;
do do
{ {
if (data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) continue; if (data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) continue;
strcpyW( p, data.cFileName ); lstrcpyW( p, data.cFileName );
font_funcs->add_font( path, flags ); font_funcs->add_font( path, flags );
} while (FindNextFileW( handle, &data )); } while (FindNextFileW( handle, &data ));
FindClose( handle ); FindClose( handle );
@ -7866,10 +7862,10 @@ static void load_file_system_fonts(void)
{ {
for (ptr = value; ptr; ptr = next) for (ptr = value; ptr; ptr = next)
{ {
if ((next = strchrW( ptr, ';' ))) *next++ = 0; if ((next = wcschr( ptr, ';' ))) *next++ = 0;
if (next && next - ptr < 2) continue; if (next && next - ptr < 2) continue;
lstrcpynW( path, ptr, MAX_PATH - 2 ); lstrcpynW( path, ptr, MAX_PATH - 2 );
strcatW( path, slashstarW ); lstrcatW( path, slashstarW );
load_directory_fonts( path, ADDFONT_ADD_TO_CACHE | ADDFONT_EXTERNAL_FONT ); load_directory_fonts( path, ADDFONT_ADD_TO_CACHE | ADDFONT_EXTERNAL_FONT );
} }
} }
@ -7885,7 +7881,7 @@ struct external_key
static int compare_external_key( const void *key, const struct wine_rb_entry *entry ) static int compare_external_key( const void *key, const struct wine_rb_entry *entry )
{ {
return strcmpiW( key, WINE_RB_ENTRY_VALUE( entry, struct external_key, entry )->value ); return wcsicmp( key, WINE_RB_ENTRY_VALUE( entry, struct external_key, entry )->value );
} }
static struct wine_rb_tree external_keys = { compare_external_key }; static struct wine_rb_tree external_keys = { compare_external_key };
@ -7908,8 +7904,8 @@ static HKEY load_external_font_keys(void)
dlen /= sizeof(WCHAR); dlen /= sizeof(WCHAR);
if (!(key = HeapAlloc( GetProcessHeap(), 0, offsetof(struct external_key, path[dlen]) ))) break; if (!(key = HeapAlloc( GetProcessHeap(), 0, offsetof(struct external_key, path[dlen]) ))) break;
key->found = FALSE; key->found = FALSE;
strcpyW( key->value, value ); lstrcpyW( key->value, value );
strcpyW( key->path, path ); lstrcpyW( key->path, path );
wine_rb_put( &external_keys, value, &key->entry ); wine_rb_put( &external_keys, value, &key->entry );
next: next:
vlen = ARRAY_SIZE(value); vlen = ARRAY_SIZE(value);
@ -7952,12 +7948,12 @@ static void update_external_font_keys( HKEY hkey )
{ {
if (!(face->flags & ADDFONT_EXTERNAL_FONT)) continue; if (!(face->flags & ADDFONT_EXTERNAL_FONT)) continue;
strcpyW( value, face->full_name ); lstrcpyW( value, face->full_name );
if (face->scalable) strcatW( value, TrueType ); if (face->scalable) lstrcatW( value, TrueType );
if (GetFullPathNameW( face->file, MAX_PATH, path, NULL )) if (GetFullPathNameW( face->file, MAX_PATH, path, NULL ))
file = path; file = path;
else if ((file = strrchrW( face->file, '\\' ))) else if ((file = wcsrchr( face->file, '\\' )))
file++; file++;
else else
file = face->file; file = face->file;
@ -7966,12 +7962,12 @@ static void update_external_font_keys( HKEY hkey )
if ((entry = wine_rb_get( &external_keys, value ))) if ((entry = wine_rb_get( &external_keys, value )))
{ {
struct external_key *key = WINE_RB_ENTRY_VALUE( entry, struct external_key, entry ); struct external_key *key = WINE_RB_ENTRY_VALUE( entry, struct external_key, entry );
skip = key->found && !strcmpiW( key->path, file ); skip = key->found && !wcsicmp( key->path, file );
wine_rb_remove_key( &external_keys, value ); wine_rb_remove_key( &external_keys, value );
HeapFree( GetProcessHeap(), 0, key ); HeapFree( GetProcessHeap(), 0, key );
} }
if (skip) continue; if (skip) continue;
len = (strlenW(file) + 1) * sizeof(WCHAR); len = (lstrlenW(file) + 1) * sizeof(WCHAR);
RegSetValueExW( winnt_key, value, 0, REG_SZ, (BYTE *)file, len ); RegSetValueExW( winnt_key, value, 0, REG_SZ, (BYTE *)file, len );
RegSetValueExW( win9x_key, value, 0, REG_SZ, (BYTE *)file, len ); RegSetValueExW( win9x_key, value, 0, REG_SZ, (BYTE *)file, len );
RegSetValueExW( hkey, value, 0, REG_SZ, (BYTE *)file, len ); RegSetValueExW( hkey, value, 0, REG_SZ, (BYTE *)file, len );
@ -8023,7 +8019,7 @@ static void load_registry_fonts(void)
if ((entry = wine_rb_get( &external_keys, value ))) if ((entry = wine_rb_get( &external_keys, value )))
{ {
struct external_key *key = WINE_RB_ENTRY_VALUE( entry, struct external_key, entry ); struct external_key *key = WINE_RB_ENTRY_VALUE( entry, struct external_key, entry );
if (!strcmpiW( key->path, data )) if (!wcsicmp( key->path, data ))
{ {
key->found = TRUE; key->found = TRUE;
goto next; goto next;
@ -8031,7 +8027,7 @@ static void load_registry_fonts(void)
} }
if (data[0] && data[1] == ':') if (data[0] && data[1] == ':')
add_font_resource( data, ADDFONT_ALLOW_BITMAP | ADDFONT_ADD_TO_CACHE ); add_font_resource( data, ADDFONT_ALLOW_BITMAP | ADDFONT_ADD_TO_CACHE );
else if (dlen >= 6 && !strcmpiW( data + dlen - 5, dot_fonW )) else if (dlen >= 6 && !wcsicmp( data + dlen - 5, dot_fonW ))
add_system_font_resource( data, ADDFONT_ALLOW_BITMAP | ADDFONT_ADD_TO_CACHE ); add_system_font_resource( data, ADDFONT_ALLOW_BITMAP | ADDFONT_ADD_TO_CACHE );
next: next:
vlen = ARRAY_SIZE(value); vlen = ARRAY_SIZE(value);
@ -8472,12 +8468,12 @@ BOOL WINAPI GetFontFileInfo( DWORD instance_id, DWORD unknown, struct font_filei
if ((font = get_font_from_handle( instance_id ))) if ((font = get_font_from_handle( instance_id )))
{ {
required_size = sizeof(*info) + strlenW( font->file ) * sizeof(WCHAR); required_size = sizeof(*info) + lstrlenW( font->file ) * sizeof(WCHAR);
if (required_size <= size) if (required_size <= size)
{ {
info->writetime = font->writetime; info->writetime = font->writetime;
info->size.QuadPart = font->data_size; info->size.QuadPart = font->data_size;
strcpyW( info->path, font->file ); lstrcpyW( info->path, font->file );
ret = TRUE; ret = TRUE;
} }
else SetLastError( ERROR_INSUFFICIENT_BUFFER ); else SetLastError( ERROR_INSUFFICIENT_BUFFER );

View File

@ -18,8 +18,6 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/ */
#include "config.h"
#include <assert.h> #include <assert.h>
#include <stdlib.h> #include <stdlib.h>
#include <stdarg.h> #include <stdarg.h>

View File

@ -19,8 +19,6 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/ */
#include "config.h"
#include <stdarg.h> #include <stdarg.h>
#include <string.h> #include <string.h>
@ -33,7 +31,6 @@
#include "gdi_private.h" #include "gdi_private.h"
#include "wine/debug.h" #include "wine/debug.h"
#include "wine/unicode.h"
WINE_DEFAULT_DEBUG_CHANNEL(icm); WINE_DEFAULT_DEBUG_CHANNEL(icm);

View File

@ -45,8 +45,6 @@
* HDMD - 14/4/1999 * HDMD - 14/4/1999
*/ */
#include "config.h"
#include <stdarg.h> #include <stdarg.h>
#include <string.h> #include <string.h>
#include <fcntl.h> #include <fcntl.h>

View File

@ -20,9 +20,6 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/ */
#include "config.h"
#include "wine/port.h"
#include <stdarg.h> #include <stdarg.h>
#include <string.h> #include <string.h>
#include <stdlib.h> #include <stdlib.h>

View File

@ -20,9 +20,6 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/ */
#include "config.h"
#include "wine/port.h"
#include <stdarg.h> #include <stdarg.h>
#include <string.h> #include <string.h>
#include <stdlib.h> #include <stdlib.h>

View File

@ -21,17 +21,12 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/ */
#include "config.h"
#include "wine/port.h"
#include <assert.h> #include <assert.h>
#include <math.h> #include <math.h>
#include <stdarg.h> #include <stdarg.h>
#include <string.h> #include <string.h>
#include <stdlib.h> #include <stdlib.h>
#if defined(HAVE_FLOAT_H)
#include <float.h> #include <float.h>
#endif
#include "windef.h" #include "windef.h"
#include "winbase.h" #include "winbase.h"

View File

@ -18,8 +18,6 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/ */
#include "config.h"
#include <stdarg.h> #include <stdarg.h>
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>

View File

@ -18,9 +18,6 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/ */
#include "config.h"
#include "wine/port.h"
#include "gdi_private.h" #include "gdi_private.h"
/*********************************************************************** /***********************************************************************