Changeset 14337


Ignore:
Timestamp:
Sep 21, 2014, 6:06:28 PM (7 years ago)
Author:
jordan
Message:

(trunk) #4160: mike.dld patch: 4160-08-args.patch

Location:
trunk
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/cli/cli.c

    r14331 r14337  
    234234  const char  * str;
    235235
     236#ifdef _WIN32
     237  tr_win32_make_args_utf8 (&argc, &argv);
     238#endif
     239
    236240  tr_formatter_mem_init (MEM_K, MEM_K_STR, MEM_M_STR, MEM_G_STR, MEM_T_STR);
    237241  tr_formatter_size_init (DISK_K,DISK_K_STR, DISK_M_STR, DISK_G_STR, DISK_T_STR);
  • trunk/daemon/daemon.c

    r14335 r14337  
    426426    struct event *status_ev;
    427427
     428#ifdef _WIN32
     429    tr_win32_make_args_utf8 (&argc, &argv);
     430#endif
     431
    428432    key_pidfile = tr_quark_new ("pidfile",  7);
    429433
  • trunk/daemon/remote.c

    r14336 r14337  
    24072407    int exit_status = EXIT_SUCCESS;
    24082408
     2409#ifdef _WIN32
     2410    tr_win32_make_args_utf8 (&argc, &argv);
     2411#endif
     2412
    24092413    if (argc < 2) {
    24102414        showUsage ();
  • trunk/libtransmission/utils.c

    r14336 r14337  
    4242 #define WINVER WindowsXP /* freeaddrinfo (), getaddrinfo (), getnameinfo () */
    4343 #include <windows.h> /* Sleep (), GetSystemTimeAsFileTime (), GetEnvironmentVariable () */
     44 #include <shellapi.h> /* CommandLineToArgv () */
    4445#endif
    4546
     
    12161217
    12171218  return text;
     1219}
     1220
     1221void
     1222tr_win32_make_args_utf8 (int    * argc,
     1223                         char *** argv)
     1224{
     1225  int my_argc, i;
     1226  char ** my_argv;
     1227  wchar_t ** my_wide_argv;
     1228
     1229  my_wide_argv = CommandLineToArgvW (GetCommandLineW (), &my_argc);
     1230  if (my_wide_argv == NULL)
     1231    return;
     1232
     1233  assert (*argc == my_argc);
     1234
     1235  my_argv = tr_new (char *, my_argc + 1);
     1236
     1237  for (i = 0; i < my_argc; ++i)
     1238    {
     1239      my_argv[i] = tr_win32_native_to_utf8 (my_wide_argv[i], -1);
     1240      if (my_argv[i] == NULL)
     1241        break;
     1242    }
     1243
     1244  if (i < my_argc)
     1245    {
     1246      int j;
     1247
     1248      for (j = 0; j < i; ++j)
     1249        {
     1250          tr_free (my_argv[j]);
     1251        }
     1252
     1253      tr_free (my_argv);
     1254    }
     1255  else
     1256    {
     1257      my_argv[my_argc] = NULL;
     1258
     1259      *argc = my_argc;
     1260      *argv = my_argv;
     1261
     1262      /* TODO: Add atexit handler to cleanup? */
     1263    }
     1264
     1265  LocalFree (my_wide_argv);
    12181266}
    12191267
  • trunk/libtransmission/utils.h

    r14336 r14337  
    191191char    * tr_win32_format_message    (uint32_t        code);
    192192
     193void      tr_win32_make_args_utf8    (int    * argc,
     194                                      char *** argv);
     195
    193196#endif
    194197
  • trunk/qt/app.cc

    r14272 r14337  
    494494  QStringList addme;
    495495  const char * optarg;
    496   char ** argvv = argv;
     496  char ** argvv;
     497
     498#ifdef _WIN32
     499  tr_win32_make_args_utf8 (&argc, &argv);
     500#endif
     501
     502  argvv = argv;
    497503  while ( (c = tr_getopt (getUsage (), argc, (const char **)argvv, opts, &optarg)))
    498504    if (c == TR_OPT_UNK)
  • trunk/utils/create.c

    r14331 r14337  
    132132  tr_metainfo_builder * b = NULL;
    133133
     134#ifdef _WIN32
     135  tr_win32_make_args_utf8 (&argc, &argv);
     136#endif
     137
    134138  tr_logSetLevel (TR_LOG_ERROR);
    135139  tr_formatter_mem_init (MEM_K, MEM_K_STR, MEM_M_STR, MEM_G_STR, MEM_T_STR);
  • trunk/utils/edit.c

    r14241 r14337  
    291291  int changedCount = 0;
    292292
     293#ifdef _WIN32
     294  tr_win32_make_args_utf8 (&argc, &argv);
     295#endif
     296
    293297  files = tr_new0 (const char*, argc);
    294298
  • trunk/utils/show.c

    r14336 r14337  
    290290  tr_ctor * ctor;
    291291
     292#ifdef _WIN32
     293  tr_win32_make_args_utf8 (&argc, &argv);
     294#endif
     295
    292296  tr_logSetLevel (TR_LOG_ERROR);
    293297  tr_formatter_mem_init (MEM_K, MEM_K_STR, MEM_M_STR, MEM_G_STR, MEM_T_STR);
Note: See TracChangeset for help on using the changeset viewer.