Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
8c98417c
Commit
8c98417c
authored
Jun 10, 2019
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
localspl: Build with msvcrt.
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
2e6b4e1f
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
24 additions
and
23 deletions
+24
-23
Makefile.in
dlls/localspl/Makefile.in
+2
-0
localmon.c
dlls/localspl/localmon.c
+8
-8
provider.c
dlls/localspl/provider.c
+14
-15
No files found.
dlls/localspl/Makefile.in
View file @
8c98417c
MODULE
=
localspl.dll
IMPORTS
=
spoolss user32 advapi32
EXTRADLLFLAGS
=
-mno-cygwin
C_SRCS
=
\
localmon.c
\
localspl_main.c
\
...
...
dlls/localspl/localmon.c
View file @
8c98417c
...
...
@@ -19,6 +19,7 @@
*/
#include <stdarg.h>
#include <stdlib.h>
#define COBJMACROS
...
...
@@ -35,7 +36,6 @@
#include "wine/debug.h"
#include "wine/heap.h"
#include "wine/list.h"
#include "wine/unicode.h"
WINE_DEFAULT_DEBUG_CHANNEL
(
localspl
);
...
...
@@ -279,13 +279,13 @@ static DWORD get_type_from_name(LPCWSTR name)
{
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
;
if
(
!
strncmpW
(
name
,
portname_COM
,
ARRAY_SIZE
(
portname_COM
)
-
1
))
if
(
!
wcsncmp
(
name
,
portname_COM
,
ARRAY_SIZE
(
portname_COM
)
-
1
))
return
PORT_IS_COM
;
if
(
!
strcmpW
(
name
,
portname_FILE
))
if
(
!
l
strcmpW
(
name
,
portname_FILE
))
return
PORT_IS_FILE
;
if
(
name
[
0
]
==
'/'
)
...
...
@@ -294,10 +294,10 @@ static DWORD get_type_from_name(LPCWSTR name)
if
(
name
[
0
]
==
'|'
)
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
;
if
(
!
strncmpW
(
name
,
portname_LPR
,
ARRAY_SIZE
(
portname_LPR
)
-
1
))
if
(
!
wcsncmp
(
name
,
portname_LPR
,
ARRAY_SIZE
(
portname_LPR
)
-
1
))
return
PORT_IS_LPR
;
/* 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
);
res
=
RegQueryValueExW
(
hroot
,
TransmissionRetryTimeoutW
,
NULL
,
NULL
,
(
LPBYTE
)
buffer
,
&
needed
);
if
((
res
==
ERROR_SUCCESS
)
&&
(
buffer
[
0
]))
{
*
((
LPDWORD
)
pOutputData
)
=
strtoulW
(
buffer
,
NULL
,
0
);
*
((
LPDWORD
)
pOutputData
)
=
wcstoul
(
buffer
,
NULL
,
0
);
}
RegCloseKey
(
hroot
);
}
...
...
@@ -696,7 +696,7 @@ static DWORD WINAPI localmon_XcvDataPort(HANDLE hXcv, LPCWSTR pszDataName, PBYTE
if
(
!
lstrcmpW
(
pszDataName
,
cmd_SetDefaultCommConfigW
))
{
/* get the portname from the Handle */
ptr
=
strchrW
(((
xcv_t
*
)
hXcv
)
->
nameW
,
' '
);
ptr
=
wcschr
(((
xcv_t
*
)
hXcv
)
->
nameW
,
' '
);
if
(
ptr
)
{
ptr
++
;
/* skip the space */
}
...
...
dlls/localspl/provider.c
View file @
8c98417c
...
...
@@ -34,7 +34,6 @@
#include "wine/debug.h"
#include "wine/heap.h"
#include "wine/list.h"
#include "wine/unicode.h"
#include "localspl_private.h"
WINE_DEFAULT_DEBUG_CHANNEL
(
localspl
);
...
...
@@ -222,9 +221,9 @@ static BOOL apd_copyfile( WCHAR *pathname, WCHAR *file_part, apd_data_t *apd )
else
{
srcname
=
apd
->
src
;
strcatW
(
srcname
,
file_part
);
l
strcatW
(
srcname
,
file_part
);
}
strcatW
(
apd
->
dst
,
file_part
);
l
strcatW
(
apd
->
dst
,
file_part
);
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
];
/* skip over both backslash, find separator '\' */
ptr
=
strchrW
(
server
,
'\\'
);
ptr
=
wcschr
(
server
,
'\\'
);
serverlen
=
(
ptr
)
?
ptr
-
server
:
lstrlenW
(
server
);
/* servername is empty */
...
...
@@ -277,7 +276,7 @@ static LONG copy_servername_from_name(LPCWSTR name, LPWSTR target)
len
=
ARRAY_SIZE
(
buffer
);
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 */
return
0
;
}
...
...
@@ -296,7 +295,7 @@ static LPCWSTR get_basename_from_name(LPCWSTR name)
if
(
name
==
NULL
)
return
NULL
;
if
((
name
[
0
]
==
'\\'
)
&&
(
name
[
1
]
==
'\\'
))
{
/* skip over the servername and search for the following '\' */
name
=
strchrW
(
&
name
[
2
],
'\\'
);
name
=
wcschr
(
&
name
[
2
],
'\\'
);
if
((
name
)
&&
(
name
[
1
]))
{
/* found a separator ('\') followed by a name:
skip over the separator and return the rest */
...
...
@@ -1197,7 +1196,7 @@ static HANDLE printer_alloc_handle(LPCWSTR name, LPPRINTER_DEFAULTSW pDefault)
}
if
(
printername
)
{
len
=
ARRAY_SIZE
(
XcvMonitorW
)
-
1
;
if
(
strncmpW
(
printername
,
XcvMonitorW
,
len
)
==
0
)
{
if
(
wcsncmp
(
printername
,
XcvMonitorW
,
len
)
==
0
)
{
/* OpenPrinter(",XcvMonitor ", ...) detected */
TRACE
(
",XcvMonitor: %s
\n
"
,
debugstr_w
(
&
printername
[
len
]));
printer
->
pm
=
monitor_load
(
&
printername
[
len
],
NULL
);
...
...
@@ -1211,7 +1210,7 @@ static HANDLE printer_alloc_handle(LPCWSTR name, LPPRINTER_DEFAULTSW pDefault)
else
{
len
=
ARRAY_SIZE
(
XcvPortW
)
-
1
;
if
(
strncmpW
(
printername
,
XcvPortW
,
len
)
==
0
)
{
if
(
wcsncmp
(
printername
,
XcvPortW
,
len
)
==
0
)
{
/* OpenPrinter(",XcvPort ", ...) detected */
TRACE
(
",XcvPort: %s
\n
"
,
debugstr_w
(
&
printername
[
len
]));
printer
->
pm
=
monitor_load_by_port
(
&
printername
[
len
]);
...
...
@@ -1272,7 +1271,7 @@ end:
static
inline
WCHAR
*
get_file_part
(
WCHAR
*
name
)
{
WCHAR
*
ptr
=
strrchrW
(
name
,
'\\'
);
WCHAR
*
ptr
=
wcsrchr
(
name
,
'\\'
);
if
(
ptr
)
return
ptr
+
1
;
return
name
;
}
...
...
@@ -1364,22 +1363,22 @@ static BOOL myAddPrinterDriverEx(DWORD level, LPBYTE pDriverInfo, DWORD dwFileCo
sizeof
(
DWORD
));
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
,
(
l
strlenW
(
file
)
+
1
)
*
sizeof
(
WCHAR
)
);
apd_copyfile
(
di
.
pDriverPath
,
file
,
&
apd
);
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
,
(
l
strlenW
(
file
)
+
1
)
*
sizeof
(
WCHAR
)
);
apd_copyfile
(
di
.
pDataFile
,
file
,
&
apd
);
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
,
(
l
strlenW
(
file
)
+
1
)
*
sizeof
(
WCHAR
)
);
apd_copyfile
(
di
.
pConfigFile
,
file
,
&
apd
);
/* settings for level 3 */
if
(
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
,
(
l
strlenW
(
file
)
+
1
)
*
sizeof
(
WCHAR
)
);
apd_copyfile
(
di
.
pHelpFile
,
file
,
&
apd
);
}
else
...
...
@@ -1390,10 +1389,10 @@ static BOOL myAddPrinterDriverEx(DWORD level, LPBYTE pDriverInfo, DWORD dwFileCo
WCHAR
*
reg
,
*
reg_ptr
,
*
in_ptr
;
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
+=
l
strlenW
(
in_ptr
)
+
1
)
{
file
=
get_file_part
(
in_ptr
);
len
=
strlenW
(
file
)
+
1
;
len
=
l
strlenW
(
file
)
+
1
;
memcpy
(
reg_ptr
,
file
,
len
*
sizeof
(
WCHAR
)
);
reg_ptr
+=
len
;
apd_copyfile
(
in_ptr
,
file
,
&
apd
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment