ソースを参照

Make expand_filename into a tor_strdup() alias on windows.

On Windows, we don't have a notion of ~ meaning "our homedir", so we
were deliberately using an #ifdef to avoid calling expand_filename()
in multiple places.  This is silly: The right place to turn a function
into a no-op on a single platform is in the function itself, not in
every single call-site.
Nick Mathewson 14 年 前
コミット
d35b8dc582
3 ファイル変更4 行追加10 行削除
  1. 4 0
      src/common/util.c
  2. 0 6
      src/or/config.c
  3. 0 4
      src/tools/tor-checkkey.c

+ 4 - 0
src/common/util.c

@@ -2312,6 +2312,9 @@ char *
 expand_filename(const char *filename)
 {
   tor_assert(filename);
+#ifdef MS_WINDOWS
+  return tor_strdup(filename);
+#else
   if (*filename == '~') {
     size_t len;
     char *home, *result;
@@ -2361,6 +2364,7 @@ expand_filename(const char *filename)
   } else {
     return tor_strdup(filename);
   }
+#endif
 }
 
 #define MAX_SCANF_WIDTH 9999

+ 0 - 6
src/or/config.c

@@ -3839,13 +3839,7 @@ find_torrc_filename(int argc, char **argv,
         log(LOG_WARN, LD_CONFIG, "Duplicate -f options on command line.");
         tor_free(fname);
       }
-#ifdef MS_WINDOWS
-      /* XXX one day we might want to extend expand_filename to work
-       * under Windows as well. */
-      fname = tor_strdup(argv[i+1]);
-#else
       fname = expand_filename(argv[i+1]);
-#endif
       *using_default_torrc = 0;
       ++i;
     } else if (!strcmp(argv[i],"--ignore-missing-torrc")) {

+ 0 - 4
src/tools/tor-checkkey.c

@@ -47,11 +47,7 @@ int main(int c, char **v)
     fname_idx = 1;
   }
 
-#ifdef MS_WINDOWS
-  fname = tor_strdup(v[fname_idx]);
-#else
   fname = expand_filename(v[fname_idx]);
-#endif
   str = read_file_to_str(fname, 0, NULL);
   tor_free(fname);
   if (!str) {