diff options
Diffstat (limited to 'src/libs/7zip/unix/CPP/myWindows/mySplitCommandLine.cpp')
-rw-r--r-- | src/libs/7zip/unix/CPP/myWindows/mySplitCommandLine.cpp | 82 |
1 files changed, 0 insertions, 82 deletions
diff --git a/src/libs/7zip/unix/CPP/myWindows/mySplitCommandLine.cpp b/src/libs/7zip/unix/CPP/myWindows/mySplitCommandLine.cpp deleted file mode 100644 index 9e0791992..000000000 --- a/src/libs/7zip/unix/CPP/myWindows/mySplitCommandLine.cpp +++ /dev/null @@ -1,82 +0,0 @@ -#include "StdAfx.h" - -#include "../Common/StringConvert.h" - -#include "myPrivate.h" - -#ifdef ENV_HAVE_LOCALE -#include <locale.h> -#endif - -extern void my_windows_split_path(const AString &p_path, AString &dir , AString &base); - -void mySplitCommandLine(int numArguments,const char *arguments[],UStringVector &parts) { - - { // define P7ZIP_HOME_DIR - static char p7zip_home_dir[MAX_PATH]; - AString dir,name; - my_windows_split_path(arguments[0],dir,name); - snprintf(p7zip_home_dir,sizeof(p7zip_home_dir),"P7ZIP_HOME_DIR=%s/",(const char *)dir); - p7zip_home_dir[sizeof(p7zip_home_dir)-1] = 0; - putenv(p7zip_home_dir); - } - -#ifdef ENV_HAVE_LOCALE - // set the program's current locale from the user's environment variables - setlocale(LC_ALL,""); - - - // auto-detect which conversion p7zip should use - char *locale = setlocale(LC_CTYPE,0); - if (locale) { - size_t len = strlen(locale); - char *locale_upper = (char *)malloc(len+1); - if (locale_upper) { - strcpy(locale_upper,locale); - - for(size_t i=0;i<len;i++) - locale_upper[i] = toupper(locale_upper[i] & 255); - - if ( (strcmp(locale_upper,"") != 0) - && (strcmp(locale_upper,"C") != 0) - && (strcmp(locale_upper,"POSIX") != 0) ) { - global_use_utf16_conversion = 1; - } - free(locale_upper); - } - } -#elif defined(LOCALE_IS_UTF8) - global_use_utf16_conversion = 1; // assume LC_CTYPE="utf8" -#else - global_use_utf16_conversion = 0; // assume LC_CTYPE="C" -#endif - - parts.Clear(); - for(int ind=0;ind < numArguments; ind++) { - if ((ind <= 2) && (strcmp(arguments[ind],"-no-utf16") == 0)) { - global_use_utf16_conversion = 0; - } else if ((ind <= 2) && (strcmp(arguments[ind],"-utf16") == 0)) { - global_use_utf16_conversion = 1; - } else { - UString tmp = MultiByteToUnicodeString(arguments[ind]); - // tmp.Trim(); " " is a valid filename ... - if (!tmp.IsEmpty()) { - parts.Add(tmp); - } - } - } -} - -const char *my_getlocale(void) { -#ifdef ENV_HAVE_LOCALE - const char* ret = setlocale(LC_CTYPE,0); - if (ret == 0) - ret ="C"; - return ret; -#elif defined(LOCALE_IS_UTF8) - return "utf8"; -#else - return "C"; -#endif -} - |