programs/net: convert to unicode
Kirill K. Smirnov
lich at math.spbu.ru
Wed Jul 11 11:32:58 CDT 2007
ChangeLog:
Convert net.exe to unicode
Explicitly link against msvcrt
-------------- next part --------------
diff --git a/programs/net/Makefile.in b/programs/net/Makefile.in
index 5364f4e..fdcab77 100644
--- a/programs/net/Makefile.in
+++ b/programs/net/Makefile.in
@@ -3,8 +3,10 @@ TOPOBJDIR = ../..
SRCDIR = @srcdir@
VPATH = @srcdir@
MODULE = net.exe
-APPMODE = -mconsole
-IMPORTS = user32 advapi32 kernel32
+APPMODE = -mconsole -municode
+EXTRADEFS = -DUNICODE
+IMPORTS = user32 advapi32 kernel32 msvcrt
+EXTRAINCL = -I$(TOPSRCDIR)/include/msvcrt
C_SRCS = net.c
diff --git a/programs/net/net.c b/programs/net/net.c
index 73e1763..95469b8 100644
--- a/programs/net/net.c
+++ b/programs/net/net.c
@@ -26,12 +26,13 @@ #define NET_STOP 0002
int output_string(int msg, ...)
{
- char msg_buffer[8192];
+ WCHAR msg_bufferW[8192];
va_list arguments;
- LoadString(GetModuleHandle(NULL), msg, msg_buffer, sizeof(msg_buffer));
+ LoadString(GetModuleHandle(NULL), msg, msg_bufferW,
+ sizeof(msg_bufferW)/sizeof(msg_bufferW[0]));
va_start(arguments, msg);
- vprintf(msg_buffer, arguments);
+ vwprintf(msg_bufferW, arguments);
va_end(arguments);
return 0;
}
@@ -68,12 +69,12 @@ static BOOL StopService(SC_HANDLE SCMana
return result;
}
-static BOOL net_service(int operation, char *service_name)
+static BOOL net_service(int operation, WCHAR *service_name)
{
SC_HANDLE SCManager, serviceHandle;
BOOL result = 0;
- char service_display_name[4096];
- DWORD buffer_size = sizeof(service_display_name);
+ WCHAR service_display_name[4096];
+ DWORD buffer_size = sizeof(service_display_name) / sizeof(WCHAR);
SCManager = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);
if(!SCManager)
@@ -91,7 +92,7 @@ static BOOL net_service(int operation, c
GetServiceDisplayName(SCManager, service_name, service_display_name, &buffer_size);
- if (!service_display_name[0]) strcpy(service_display_name, service_name);
+ if (!service_display_name[0]) lstrcpyW(service_display_name, service_name);
switch(operation)
{
@@ -116,20 +117,24 @@ static BOOL net_service(int operation, c
return result;
}
-int main(int argc, char *argv[])
+int wmain(int argc, WCHAR *argvW[])
{
+ const WCHAR HELP[] = {'H', 'E', 'L', 'P', 0};
+ const WCHAR START[] = {'S', 'T', 'A', 'R', 'T', 0};
+ const WCHAR STOP[] = {'S', 'T', 'O', 'P', 0};
+
if (argc < 2)
{
output_string(STRING_USAGE);
return 1;
}
- if(!strcasecmp(argv[1], "help"))
+ if(!lstrcmpiW(argvW[1], HELP))
{
output_string(STRING_HELP_USAGE);
}
- if(!strcasecmp(argv[1], "start"))
+ if(!lstrcmpiW(argvW[1], START))
{
if(argc < 3)
{
@@ -137,14 +142,14 @@ int main(int argc, char *argv[])
return 1;
}
- if(!net_service(NET_START, argv[2]))
+ if(!net_service(NET_START, argvW[2]))
{
return 1;
}
return 0;
}
- if(!strcasecmp(argv[1], "stop"))
+ if(!lstrcmpiW(argvW[1], STOP))
{
if(argc < 3)
{
@@ -152,7 +157,7 @@ int main(int argc, char *argv[])
return 1;
}
- if(!net_service(NET_STOP, argv[2]))
+ if(!net_service(NET_STOP, argvW[2]))
{
return 1;
}
More information about the wine-patches
mailing list