localspl: Build with msvcrt.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
2e6b4e1f5b
commit
8c98417cfd
|
@ -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 \
|
||||||
|
|
|
@ -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 */
|
||||||
}
|
}
|
||||||
|
|
|
@ -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 );
|
||||||
|
|
Loading…
Reference in New Issue