Fossil SCM
fix [ce73fc2173] as well
Commit
ed5695fe7fe2afcd4d87f1e5137b47bae7c5b646
Parent
3c33959096d6cdc…
1 file changed
+14
-1
+14
-1
| --- src/main.c | ||
| +++ src/main.c | ||
| @@ -827,14 +827,27 @@ | ||
| 827 | 827 | ** This function implements a cross-platform "system()" interface. |
| 828 | 828 | */ |
| 829 | 829 | int fossil_system(const char *zOrigCmd){ |
| 830 | 830 | int rc; |
| 831 | 831 | #if defined(_WIN32) |
| 832 | - /* On windows, we have to put double-quotes around the entire command. | |
| 832 | + /* On windows NT, we have to put double-quotes around the entire command. | |
| 833 | 833 | ** Who knows why - this is just the way windows works. |
| 834 | 834 | */ |
| 835 | +#ifdef UNICODE | |
| 835 | 836 | char *zNewCmd = mprintf("\"%s\"", zOrigCmd); |
| 837 | +#else | |
| 838 | + OSVERSIONINFOA sInfo; | |
| 839 | + char *zNewCmd; | |
| 840 | + | |
| 841 | + sInfo.dwOSVersionInfoSize = sizeof(sInfo); | |
| 842 | + GetVersionExA(&sInfo); | |
| 843 | + if (sInfo.dwPlatformId==VER_PLATFORM_WIN32_NT) { | |
| 844 | + zNewCmd = mprintf("\"%s\"", zOrigCmd); | |
| 845 | + } else { | |
| 846 | + zNewCmd = mprintf("%s", zOrigCmd); | |
| 847 | + } | |
| 848 | +#endif | |
| 836 | 849 | TCHAR *zMbcs = fossil_utf8_to_mbcs(zNewCmd); |
| 837 | 850 | if( g.fSystemTrace ) { |
| 838 | 851 | char *zOut = mprintf("SYSTEM: %s\n", zNewCmd); |
| 839 | 852 | fossil_puts(zOut, 1); |
| 840 | 853 | fossil_free(zOut); |
| 841 | 854 |
| --- src/main.c | |
| +++ src/main.c | |
| @@ -827,14 +827,27 @@ | |
| 827 | ** This function implements a cross-platform "system()" interface. |
| 828 | */ |
| 829 | int fossil_system(const char *zOrigCmd){ |
| 830 | int rc; |
| 831 | #if defined(_WIN32) |
| 832 | /* On windows, we have to put double-quotes around the entire command. |
| 833 | ** Who knows why - this is just the way windows works. |
| 834 | */ |
| 835 | char *zNewCmd = mprintf("\"%s\"", zOrigCmd); |
| 836 | TCHAR *zMbcs = fossil_utf8_to_mbcs(zNewCmd); |
| 837 | if( g.fSystemTrace ) { |
| 838 | char *zOut = mprintf("SYSTEM: %s\n", zNewCmd); |
| 839 | fossil_puts(zOut, 1); |
| 840 | fossil_free(zOut); |
| 841 |
| --- src/main.c | |
| +++ src/main.c | |
| @@ -827,14 +827,27 @@ | |
| 827 | ** This function implements a cross-platform "system()" interface. |
| 828 | */ |
| 829 | int fossil_system(const char *zOrigCmd){ |
| 830 | int rc; |
| 831 | #if defined(_WIN32) |
| 832 | /* On windows NT, we have to put double-quotes around the entire command. |
| 833 | ** Who knows why - this is just the way windows works. |
| 834 | */ |
| 835 | #ifdef UNICODE |
| 836 | char *zNewCmd = mprintf("\"%s\"", zOrigCmd); |
| 837 | #else |
| 838 | OSVERSIONINFOA sInfo; |
| 839 | char *zNewCmd; |
| 840 | |
| 841 | sInfo.dwOSVersionInfoSize = sizeof(sInfo); |
| 842 | GetVersionExA(&sInfo); |
| 843 | if (sInfo.dwPlatformId==VER_PLATFORM_WIN32_NT) { |
| 844 | zNewCmd = mprintf("\"%s\"", zOrigCmd); |
| 845 | } else { |
| 846 | zNewCmd = mprintf("%s", zOrigCmd); |
| 847 | } |
| 848 | #endif |
| 849 | TCHAR *zMbcs = fossil_utf8_to_mbcs(zNewCmd); |
| 850 | if( g.fSystemTrace ) { |
| 851 | char *zOut = mprintf("SYSTEM: %s\n", zNewCmd); |
| 852 | fossil_puts(zOut, 1); |
| 853 | fossil_free(zOut); |
| 854 |