- build as unicode
- use a _tmain hack w3seek put together
Modified: trunk/reactos/subsys/system/sc/sc.c
Modified: trunk/reactos/subsys/system/sc/sc.xml

Modified: trunk/reactos/subsys/system/sc/sc.c
--- trunk/reactos/subsys/system/sc/sc.c	2005-11-12 00:24:16 UTC (rev 19164)
+++ trunk/reactos/subsys/system/sc/sc.c	2005-11-12 00:26:21 UTC (rev 19165)
@@ -137,10 +137,13 @@
     return 0;
 }
 
+#if defined(_UNICODE) && defined(__GNUC__)
+static
+#endif
 
 int _tmain(int argc, LPCTSTR argv[])
 {
-    LPTSTR MachineName = NULL;   // remote machine
+	LPTSTR MachineName = NULL;   // remote machine
     LPCTSTR Command = NULL;      // sc command
     LPCTSTR ServiceName = NULL;  // Name of service
 
@@ -169,3 +172,42 @@
 
     return MainUsage();
 }
+
+
+#if defined(_UNICODE) && defined(__GNUC__)
+/* HACK - MINGW HAS NO OFFICIAL SUPPORT FOR wmain()!!! */
+int main( int argc, char **argv )
+{
+    WCHAR **argvW;
+    int i, j, Ret = 1;
+
+    if ((argvW = malloc(argc * sizeof(WCHAR*))))
+    {
+        /* convert the arguments */
+        for (i = 0, j = 0; i < argc; i++)
+        {
+            if (!(argvW[i] = malloc((strlen(argv[i]) + 1) * sizeof(WCHAR))))
+            {
+                j++;
+            }
+            swprintf(argvW[i], L"%hs", argv[i]);
+        }
+        
+        if (j == 0)
+        {
+            /* no error converting the parameters, call wmain() */
+            Ret = wmain(argc, (LPCTSTR *)argvW);
+        }
+        
+        /* free the arguments */
+        for (i = 0; i < argc; i++)
+        {
+            if (argvW[i])
+                free(argvW[i]);
+        }
+        free(argvW);
+    }
+    
+    return Ret;
+}
+#endif

Modified: trunk/reactos/subsys/system/sc/sc.xml
--- trunk/reactos/subsys/system/sc/sc.xml	2005-11-12 00:24:16 UTC (rev 19164)
+++ trunk/reactos/subsys/system/sc/sc.xml	2005-11-12 00:26:21 UTC (rev 19165)
@@ -1,6 +1,8 @@
 <module name="sc" type="win32cui" installbase="system32" installname="sc.exe">
 	<define name="__USE_W32API" />
 	<define name="DEFINE_GUID" />
+	<define name="UNICODE" />
+	<define name="_UNICODE" />
 	<library>kernel32</library>
 	<file>sc.c</file>
 	<file>start.c</file>