Kaynağa Gözat

Fix mingw build with -DUNICODE -D_UNICODE

This is a very blunt fix, and mostly just turns some func() calls
into FuncA() to make things build again.  Fixes bug 6097.
Nick Mathewson 12 yıl önce
ebeveyn
işleme
bf9252587b
4 değiştirilmiş dosya ile 11 ekleme ve 4 silme
  1. 3 0
      changes/fix_unicode
  2. 2 2
      src/common/util.c
  3. 1 1
      src/test/test.c
  4. 5 1
      src/test/test_util.c

+ 3 - 0
changes/fix_unicode

@@ -0,0 +1,3 @@
+  o Minor bugfixes:
+    - Make Tor build correctly again with -DUNICODE -D_UNICODE defined.
+      Bugfix on 0.2.2.16-alpha; fixes bug 6097.

+ 2 - 2
src/common/util.c

@@ -3381,7 +3381,7 @@ tor_spawn_background(const char *const filename, const char **argv,
   process_handle_t *process_handle;
   int status;
 
-  STARTUPINFO siStartInfo;
+  STARTUPINFOA siStartInfo;
   BOOL retval = FALSE;
 
   SECURITY_ATTRIBUTES saAttr;
@@ -3442,7 +3442,7 @@ tor_spawn_background(const char *const filename, const char **argv,
 
   /* Create the child process */
 
-  retval = CreateProcess(filename,      // module name
+  retval = CreateProcessA(filename,      // module name
                  joined_argv,   // command line
   /* TODO: should we set explicit security attributes? (#2046, comment 5) */
                  NULL,          // process security attributes

+ 1 - 1
src/test/test.c

@@ -91,7 +91,7 @@ setup_directory(void)
     char buf[MAX_PATH];
     const char *tmp = buf;
     /* If this fails, we're probably screwed anyway */
-    if (!GetTempPath(sizeof(buf),buf))
+    if (!GetTempPathA(sizeof(buf),buf))
       tmp = "c:\\windows\\temp";
     tor_snprintf(temp_dir, sizeof(temp_dir),
                  "%s\\tor_test_%d", tmp, (int)getpid());

+ 5 - 1
src/test/test_util.c

@@ -14,6 +14,10 @@
 #include "mempool.h"
 #include "memarea.h"
 
+#ifdef _WIN32
+#include <tchar.h>
+#endif
+
 static void
 test_util_time(void)
 {
@@ -2113,7 +2117,7 @@ test_util_parent_dir(void *ptr)
 static void
 test_util_load_win_lib(void *ptr)
 {
-  HANDLE h = load_windows_system_library("advapi32.dll");
+  HANDLE h = load_windows_system_library(_T("advapi32.dll"));
   (void) ptr;
 
   tt_assert(h);