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: