Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | Tested now on win32 and cygwin (with some fixes, please evaluate!). I cannot test it on OSX, but I think this should function as intended. |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | ticket-e399bc |
| Files: | files | file ages | folders |
| SHA1: |
a0148eac539221cd05e0ff4958d2e96d |
| User & Date: | jan.nijtmans 2012-11-29 09:53:02.219 |
Context
|
2012-11-29
| ||
| 09:59 | One more thing I spotted (but cannot test!): UTF8-mac encoded values could enter fossil through environment variables as well... check-in: 42951c59ae user: jan.nijtmans tags: ticket-e399bc | |
| 09:53 | Tested now on win32 and cygwin (with some fixes, please evaluate!). I cannot test it on OSX, but I think this should function as intended. check-in: a0148eac53 user: jan.nijtmans tags: ticket-e399bc | |
| 08:57 | unbreak win32 check-in: 0ff5b5ed0f user: jan.nijtmans tags: ticket-e399bc | |
Changes
Changes to src/file.c.
| ︙ | ︙ | |||
653 654 655 656 657 658 659 |
char *zPwdUtf8;
int nPwd;
int i;
wchar_t zPwd[2000];
if( _wgetcwd(zPwd, sizeof(zPwd)/sizeof(zPwd[0])-1)==0 ){
fossil_fatal("cannot find the current working directory.");
}
| | | | 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 |
char *zPwdUtf8;
int nPwd;
int i;
wchar_t zPwd[2000];
if( _wgetcwd(zPwd, sizeof(zPwd)/sizeof(zPwd[0])-1)==0 ){
fossil_fatal("cannot find the current working directory.");
}
zPwdUtf8 = fossil_filename_to_utf8(zPwd);
nPwd = strlen(zPwdUtf8);
if( nPwd > nBuf-1 ){
fossil_fatal("pwd too big: max %d\n", nBuf-1);
}
for(i=0; zPwdUtf8[i]; i++) if( zPwdUtf8[i]=='\\' ) zPwdUtf8[i] = '/';
memcpy(zBuf, zPwdUtf8, nPwd+1);
fossil_filename_free(zPwdUtf8);
#else
if( getcwd(zBuf, nBuf-1)==0 ){
if( errno==ERANGE ){
fossil_fatal("pwd too big: max %d\n", nBuf-1);
}else{
fossil_fatal("cannot find current working directory; %s",
strerror(errno));
|
| ︙ | ︙ | |||
1010 1011 1012 1013 1014 1015 1016 |
const char *zDir = ".";
int cnt = 0;
#if defined(_WIN32)
wchar_t zTmpPath[MAX_PATH];
if( GetTempPathW(MAX_PATH, zTmpPath) ){
| | | 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 |
const char *zDir = ".";
int cnt = 0;
#if defined(_WIN32)
wchar_t zTmpPath[MAX_PATH];
if( GetTempPathW(MAX_PATH, zTmpPath) ){
azDirs[0] = fossil_filename_to_utf8(zTmpPath);
}
azDirs[1] = fossil_getenv("TEMP");
azDirs[2] = fossil_getenv("TMP");
#endif
|
| ︙ | ︙ | |||
1091 1092 1093 1094 1095 1096 1097 | # define closedir _wclosedir #endif /* _WIN32 */ #endif /* INTERFACE */ /* ** Return the value of an environment variable as UTF8. | | | | 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 |
# define closedir _wclosedir
#endif /* _WIN32 */
#endif /* INTERFACE */
/*
** Return the value of an environment variable as UTF8.
** Use fossil_filename_free() to release resources.
*/
char *fossil_getenv(const char *zName){
#ifdef _WIN32
wchar_t *uName = fossil_utf8_to_unicode(zName);
void *zValue = _wgetenv(uName);
fossil_unicode_free(uName);
if( zValue ) zValue = fossil_filename_to_utf8(zValue);
#else
char *zValue = getenv(zName);
#endif
return zValue;
}
/*
|
| ︙ | ︙ |
Changes to src/main.c.
| ︙ | ︙ | |||
489 490 491 492 493 494 495 | #endif g.argc = argc; g.argv = argv; #if defined(_WIN32) && !defined(__MINGW32__) parse_windows_command_line(&g.argc, &g.argv); GetModuleFileNameW(NULL, buf, MAX_PATH); | | < > | 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 |
#endif
g.argc = argc;
g.argv = argv;
#if defined(_WIN32) && !defined(__MINGW32__)
parse_windows_command_line(&g.argc, &g.argv);
GetModuleFileNameW(NULL, buf, MAX_PATH);
g.nameOfExe = fossil_filename_to_utf8(buf);
#else
g.nameOfExe = g.argv[0];
#endif
for(i=0; i<g.argc; i++) g.argv[i] = fossil_filename_to_utf8(g.argv[i]);
for(i=1; i<g.argc-1; i++){
z = g.argv[i];
if( z[0]!='-' ) continue;
z++;
if( z[0]=='-' ) z++;
if( z[0]==0 ) return; /* Stop searching at "--" */
if( fossil_strcmp(z, "args")==0 ) break;
|
| ︙ | ︙ |