localspl: Build with msvcrt.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Alexandre Julliard 2019-06-10 10:55:52 +02:00
parent 2e6b4e1f5b
commit 8c98417cfd
3 changed files with 24 additions and 23 deletions

View File

@ -1,6 +1,8 @@
MODULE = localspl.dll MODULE = localspl.dll
IMPORTS = spoolss user32 advapi32 IMPORTS = spoolss user32 advapi32
EXTRADLLFLAGS = -mno-cygwin
C_SRCS = \ C_SRCS = \
localmon.c \ localmon.c \
localspl_main.c \ localspl_main.c \

View File

@ -19,6 +19,7 @@
*/ */
#include <stdarg.h> #include <stdarg.h>
#include <stdlib.h>
#define COBJMACROS #define COBJMACROS
@ -35,7 +36,6 @@
#include "wine/debug.h" #include "wine/debug.h"
#include "wine/heap.h" #include "wine/heap.h"
#include "wine/list.h" #include "wine/list.h"
#include "wine/unicode.h"
WINE_DEFAULT_DEBUG_CHANNEL(localspl); WINE_DEFAULT_DEBUG_CHANNEL(localspl);
@ -279,13 +279,13 @@ static DWORD get_type_from_name(LPCWSTR name)
{ {
HANDLE hfile; HANDLE hfile;
if (!strncmpW(name, portname_LPT, ARRAY_SIZE(portname_LPT) - 1)) if (!wcsncmp(name, portname_LPT, ARRAY_SIZE(portname_LPT) - 1))
return PORT_IS_LPT; return PORT_IS_LPT;
if (!strncmpW(name, portname_COM, ARRAY_SIZE(portname_COM) - 1)) if (!wcsncmp(name, portname_COM, ARRAY_SIZE(portname_COM) - 1))
return PORT_IS_COM; return PORT_IS_COM;
if (!strcmpW(name, portname_FILE)) if (!lstrcmpW(name, portname_FILE))
return PORT_IS_FILE; return PORT_IS_FILE;
if (name[0] == '/') if (name[0] == '/')
@ -294,10 +294,10 @@ static DWORD get_type_from_name(LPCWSTR name)
if (name[0] == '|') if (name[0] == '|')
return PORT_IS_PIPE; return PORT_IS_PIPE;
if (!strncmpW(name, portname_CUPS, ARRAY_SIZE(portname_CUPS) - 1)) if (!wcsncmp(name, portname_CUPS, ARRAY_SIZE(portname_CUPS) - 1))
return PORT_IS_CUPS; return PORT_IS_CUPS;
if (!strncmpW(name, portname_LPR, ARRAY_SIZE(portname_LPR) - 1)) if (!wcsncmp(name, portname_LPR, ARRAY_SIZE(portname_LPR) - 1))
return PORT_IS_LPR; return PORT_IS_LPR;
/* Must be a file or a directory. Does the file exist ? */ /* Must be a file or a directory. Does the file exist ? */
@ -663,7 +663,7 @@ static DWORD WINAPI localmon_XcvDataPort(HANDLE hXcv, LPCWSTR pszDataName, PBYTE
needed = sizeof(buffer) - sizeof(WCHAR); needed = sizeof(buffer) - sizeof(WCHAR);
res = RegQueryValueExW(hroot, TransmissionRetryTimeoutW, NULL, NULL, (LPBYTE) buffer, &needed); res = RegQueryValueExW(hroot, TransmissionRetryTimeoutW, NULL, NULL, (LPBYTE) buffer, &needed);
if ((res == ERROR_SUCCESS) && (buffer[0])) { if ((res == ERROR_SUCCESS) && (buffer[0])) {
*((LPDWORD) pOutputData) = strtoulW(buffer, NULL, 0); *((LPDWORD) pOutputData) = wcstoul(buffer, NULL, 0);
} }
RegCloseKey(hroot); RegCloseKey(hroot);
} }
@ -696,7 +696,7 @@ static DWORD WINAPI localmon_XcvDataPort(HANDLE hXcv, LPCWSTR pszDataName, PBYTE
if (!lstrcmpW(pszDataName, cmd_SetDefaultCommConfigW)) { if (!lstrcmpW(pszDataName, cmd_SetDefaultCommConfigW)) {
/* get the portname from the Handle */ /* get the portname from the Handle */
ptr = strchrW(((xcv_t *)hXcv)->nameW, ' '); ptr = wcschr(((xcv_t *)hXcv)->nameW, ' ');
if (ptr) { if (ptr) {
ptr++; /* skip the space */ ptr++; /* skip the space */
} }

View File

@ -34,7 +34,6 @@
#include "wine/debug.h" #include "wine/debug.h"
#include "wine/heap.h" #include "wine/heap.h"
#include "wine/list.h" #include "wine/list.h"
#include "wine/unicode.h"
#include "localspl_private.h" #include "localspl_private.h"
WINE_DEFAULT_DEBUG_CHANNEL(localspl); WINE_DEFAULT_DEBUG_CHANNEL(localspl);
@ -222,9 +221,9 @@ static BOOL apd_copyfile( WCHAR *pathname, WCHAR *file_part, apd_data_t *apd )
else else
{ {
srcname = apd->src; srcname = apd->src;
strcatW( srcname, file_part ); lstrcatW( srcname, file_part );
} }
strcatW( apd->dst, file_part ); lstrcatW( apd->dst, file_part );
TRACE("%s => %s\n", debugstr_w(srcname), debugstr_w(apd->dst)); TRACE("%s => %s\n", debugstr_w(srcname), debugstr_w(apd->dst));
@ -260,7 +259,7 @@ static LONG copy_servername_from_name(LPCWSTR name, LPWSTR target)
server = &name[2]; server = &name[2];
/* skip over both backslash, find separator '\' */ /* skip over both backslash, find separator '\' */
ptr = strchrW(server, '\\'); ptr = wcschr(server, '\\');
serverlen = (ptr) ? ptr - server : lstrlenW(server); serverlen = (ptr) ? ptr - server : lstrlenW(server);
/* servername is empty */ /* servername is empty */
@ -277,7 +276,7 @@ static LONG copy_servername_from_name(LPCWSTR name, LPWSTR target)
len = ARRAY_SIZE(buffer); len = ARRAY_SIZE(buffer);
if (GetComputerNameW(buffer, &len)) { if (GetComputerNameW(buffer, &len)) {
if ((serverlen == len) && (strncmpiW(server, buffer, len) == 0)) { if ((serverlen == len) && (wcsnicmp(server, buffer, len) == 0)) {
/* The requested Servername is our computername */ /* The requested Servername is our computername */
return 0; return 0;
} }
@ -296,7 +295,7 @@ static LPCWSTR get_basename_from_name(LPCWSTR name)
if (name == NULL) return NULL; if (name == NULL) return NULL;
if ((name[0] == '\\') && (name[1] == '\\')) { if ((name[0] == '\\') && (name[1] == '\\')) {
/* skip over the servername and search for the following '\' */ /* skip over the servername and search for the following '\' */
name = strchrW(&name[2], '\\'); name = wcschr(&name[2], '\\');
if ((name) && (name[1])) { if ((name) && (name[1])) {
/* found a separator ('\') followed by a name: /* found a separator ('\') followed by a name:
skip over the separator and return the rest */ skip over the separator and return the rest */
@ -1197,7 +1196,7 @@ static HANDLE printer_alloc_handle(LPCWSTR name, LPPRINTER_DEFAULTSW pDefault)
} }
if (printername) { if (printername) {
len = ARRAY_SIZE(XcvMonitorW) - 1; len = ARRAY_SIZE(XcvMonitorW) - 1;
if (strncmpW(printername, XcvMonitorW, len) == 0) { if (wcsncmp(printername, XcvMonitorW, len) == 0) {
/* OpenPrinter(",XcvMonitor ", ...) detected */ /* OpenPrinter(",XcvMonitor ", ...) detected */
TRACE(",XcvMonitor: %s\n", debugstr_w(&printername[len])); TRACE(",XcvMonitor: %s\n", debugstr_w(&printername[len]));
printer->pm = monitor_load(&printername[len], NULL); printer->pm = monitor_load(&printername[len], NULL);
@ -1211,7 +1210,7 @@ static HANDLE printer_alloc_handle(LPCWSTR name, LPPRINTER_DEFAULTSW pDefault)
else else
{ {
len = ARRAY_SIZE(XcvPortW) - 1; len = ARRAY_SIZE(XcvPortW) - 1;
if (strncmpW( printername, XcvPortW, len) == 0) { if (wcsncmp( printername, XcvPortW, len) == 0) {
/* OpenPrinter(",XcvPort ", ...) detected */ /* OpenPrinter(",XcvPort ", ...) detected */
TRACE(",XcvPort: %s\n", debugstr_w(&printername[len])); TRACE(",XcvPort: %s\n", debugstr_w(&printername[len]));
printer->pm = monitor_load_by_port(&printername[len]); printer->pm = monitor_load_by_port(&printername[len]);
@ -1272,7 +1271,7 @@ end:
static inline WCHAR *get_file_part( WCHAR *name ) static inline WCHAR *get_file_part( WCHAR *name )
{ {
WCHAR *ptr = strrchrW( name, '\\' ); WCHAR *ptr = wcsrchr( name, '\\' );
if (ptr) return ptr + 1; if (ptr) return ptr + 1;
return name; return name;
} }
@ -1364,22 +1363,22 @@ static BOOL myAddPrinterDriverEx(DWORD level, LPBYTE pDriverInfo, DWORD dwFileCo
sizeof(DWORD)); sizeof(DWORD));
file = get_file_part( di.pDriverPath ); file = get_file_part( di.pDriverPath );
RegSetValueExW( hdrv, driverW, 0, REG_SZ, (LPBYTE)file, (strlenW( file ) + 1) * sizeof(WCHAR) ); RegSetValueExW( hdrv, driverW, 0, REG_SZ, (LPBYTE)file, (lstrlenW( file ) + 1) * sizeof(WCHAR) );
apd_copyfile( di.pDriverPath, file, &apd ); apd_copyfile( di.pDriverPath, file, &apd );
file = get_file_part( di.pDataFile ); file = get_file_part( di.pDataFile );
RegSetValueExW( hdrv, data_fileW, 0, REG_SZ, (LPBYTE)file, (strlenW( file ) + 1) * sizeof(WCHAR) ); RegSetValueExW( hdrv, data_fileW, 0, REG_SZ, (LPBYTE)file, (lstrlenW( file ) + 1) * sizeof(WCHAR) );
apd_copyfile( di.pDataFile, file, &apd ); apd_copyfile( di.pDataFile, file, &apd );
file = get_file_part( di.pConfigFile ); file = get_file_part( di.pConfigFile );
RegSetValueExW( hdrv, configuration_fileW, 0, REG_SZ, (LPBYTE)file, (strlenW( file ) + 1) * sizeof(WCHAR) ); RegSetValueExW( hdrv, configuration_fileW, 0, REG_SZ, (LPBYTE)file, (lstrlenW( file ) + 1) * sizeof(WCHAR) );
apd_copyfile( di.pConfigFile, file, &apd ); apd_copyfile( di.pConfigFile, file, &apd );
/* settings for level 3 */ /* settings for level 3 */
if (di.pHelpFile) if (di.pHelpFile)
{ {
file = get_file_part( di.pHelpFile ); file = get_file_part( di.pHelpFile );
RegSetValueExW( hdrv, help_fileW, 0, REG_SZ, (LPBYTE)file, (strlenW( file ) + 1) * sizeof(WCHAR) ); RegSetValueExW( hdrv, help_fileW, 0, REG_SZ, (LPBYTE)file, (lstrlenW( file ) + 1) * sizeof(WCHAR) );
apd_copyfile( di.pHelpFile, file, &apd ); apd_copyfile( di.pHelpFile, file, &apd );
} }
else else
@ -1390,10 +1389,10 @@ static BOOL myAddPrinterDriverEx(DWORD level, LPBYTE pDriverInfo, DWORD dwFileCo
WCHAR *reg, *reg_ptr, *in_ptr; WCHAR *reg, *reg_ptr, *in_ptr;
reg = reg_ptr = HeapAlloc( GetProcessHeap(), 0, multi_sz_lenW( di.pDependentFiles ) ); reg = reg_ptr = HeapAlloc( GetProcessHeap(), 0, multi_sz_lenW( di.pDependentFiles ) );
for (in_ptr = di.pDependentFiles; *in_ptr; in_ptr += strlenW( in_ptr ) + 1) for (in_ptr = di.pDependentFiles; *in_ptr; in_ptr += lstrlenW( in_ptr ) + 1)
{ {
file = get_file_part( in_ptr ); file = get_file_part( in_ptr );
len = strlenW( file ) + 1; len = lstrlenW( file ) + 1;
memcpy( reg_ptr, file, len * sizeof(WCHAR) ); memcpy( reg_ptr, file, len * sizeof(WCHAR) );
reg_ptr += len; reg_ptr += len;
apd_copyfile( in_ptr, file, &apd ); apd_copyfile( in_ptr, file, &apd );