Mercurial > vim
comparison src/misc1.c @ 170:8c60f65311fa v7.0052
updated for version 7.0052
author | vimboss |
---|---|
date | Sat, 26 Feb 2005 23:04:13 +0000 |
parents | 0e902b8f511f |
children | 6e9968f34740 |
comparison
equal
deleted
inserted
replaced
169:0e902b8f511f | 170:8c60f65311fa |
---|---|
3207 void | 3207 void |
3208 init_homedir() | 3208 init_homedir() |
3209 { | 3209 { |
3210 char_u *var; | 3210 char_u *var; |
3211 | 3211 |
3212 /* In case we are called a second time (when 'encoding' changes). */ | |
3213 vim_free(homedir); | |
3214 homedir = NULL; | |
3215 | |
3212 #ifdef VMS | 3216 #ifdef VMS |
3213 var = mch_getenv((char_u *)"SYS$LOGIN"); | 3217 var = mch_getenv((char_u *)"SYS$LOGIN"); |
3214 #else | 3218 #else |
3215 var = mch_getenv((char_u *)"HOME"); | 3219 var = mch_getenv((char_u *)"HOME"); |
3216 #endif | 3220 #endif |
3268 /* Also set $HOME, it's needed for _viminfo. */ | 3272 /* Also set $HOME, it's needed for _viminfo. */ |
3269 vim_setenv((char_u *)"HOME", NameBuff); | 3273 vim_setenv((char_u *)"HOME", NameBuff); |
3270 } | 3274 } |
3271 } | 3275 } |
3272 } | 3276 } |
3277 | |
3278 # if defined(FEAT_MBYTE) | |
3279 if (enc_utf8 && var != NULL) | |
3280 { | |
3281 int len; | |
3282 char_u *pp; | |
3283 | |
3284 /* Convert from active codepage to UTF-8. Other conversions are | |
3285 * not done, because they would fail for non-ASCII characters. */ | |
3286 acp_to_enc(var, STRLEN(var), &pp, &len); | |
3287 if (pp != NULL) | |
3288 { | |
3289 homedir = pp; | |
3290 return; | |
3291 } | |
3292 } | |
3293 # endif | |
3273 #endif | 3294 #endif |
3274 | 3295 |
3275 #if defined(OS2) || defined(MSDOS) || defined(MSWIN) | 3296 #if defined(OS2) || defined(MSDOS) || defined(MSWIN) |
3276 /* | 3297 /* |
3277 * Default home dir is C:/ | 3298 * Default home dir is C:/ |
3592 p = mch_getenv(name); | 3613 p = mch_getenv(name); |
3593 if (p != NULL && *p == NUL) /* empty is the same as not set */ | 3614 if (p != NULL && *p == NUL) /* empty is the same as not set */ |
3594 p = NULL; | 3615 p = NULL; |
3595 | 3616 |
3596 if (p != NULL) | 3617 if (p != NULL) |
3618 { | |
3619 #if defined(FEAT_MBYTE) && defined(WIN3264) | |
3620 if (enc_utf8) | |
3621 { | |
3622 int len; | |
3623 char_u *pp; | |
3624 | |
3625 /* Convert from active codepage to UTF-8. Other conversions are | |
3626 * not done, because they would fail for non-ASCII characters. */ | |
3627 acp_to_enc(p, STRLEN(p), &pp, &len); | |
3628 if (pp != NULL) | |
3629 { | |
3630 p = pp; | |
3631 *mustfree = TRUE; | |
3632 } | |
3633 } | |
3634 #endif | |
3597 return p; | 3635 return p; |
3636 } | |
3598 | 3637 |
3599 vimruntime = (STRCMP(name, "VIMRUNTIME") == 0); | 3638 vimruntime = (STRCMP(name, "VIMRUNTIME") == 0); |
3600 if (!vimruntime && STRCMP(name, "VIM") != 0) | 3639 if (!vimruntime && STRCMP(name, "VIM") != 0) |
3601 return NULL; | 3640 return NULL; |
3602 | 3641 |
3618 p = vim_version_dir(p); | 3657 p = vim_version_dir(p); |
3619 if (p != NULL) | 3658 if (p != NULL) |
3620 *mustfree = TRUE; | 3659 *mustfree = TRUE; |
3621 else | 3660 else |
3622 p = mch_getenv((char_u *)"VIM"); | 3661 p = mch_getenv((char_u *)"VIM"); |
3662 | |
3663 #if defined(FEAT_MBYTE) && defined(WIN3264) | |
3664 if (enc_utf8) | |
3665 { | |
3666 int len; | |
3667 char_u *pp; | |
3668 | |
3669 /* Convert from active codepage to UTF-8. Other conversions | |
3670 * are not done, because they would fail for non-ASCII | |
3671 * characters. */ | |
3672 acp_to_enc(p, STRLEN(p), &pp, &len); | |
3673 if (pp != NULL) | |
3674 { | |
3675 if (mustfree) | |
3676 vim_free(p); | |
3677 p = pp; | |
3678 *mustfree = TRUE; | |
3679 } | |
3680 } | |
3681 #endif | |
3623 } | 3682 } |
3624 } | 3683 } |
3625 | 3684 |
3626 /* | 3685 /* |
3627 * When expanding $VIM or $VIMRUNTIME fails, try using: | 3686 * When expanding $VIM or $VIMRUNTIME fails, try using: |