comparison src/misc1.c @ 3658:e82937b753a8 v7.3.589

updated for version 7.3.589 Problem: Crash when $HOME is not set. Solution: Check for a NULL pointer. (Chris Webb)
author Bram Moolenaar <bram@vim.org>
date Fri, 06 Jul 2012 16:49:40 +0200
parents 7e3fedfc3d08
children 2b4b6185054f
comparison
equal deleted inserted replaced
3657:e024aadde309 3658:e82937b753a8
4494 #ifdef VMS 4494 #ifdef VMS
4495 homedir_env_orig = homedir_env = mch_getenv((char_u *)"SYS$LOGIN"); 4495 homedir_env_orig = homedir_env = mch_getenv((char_u *)"SYS$LOGIN");
4496 #else 4496 #else
4497 homedir_env_orig = homedir_env = mch_getenv((char_u *)"HOME"); 4497 homedir_env_orig = homedir_env = mch_getenv((char_u *)"HOME");
4498 #endif 4498 #endif
4499 /* Empty is the same as not set. */
4500 if (homedir_env != NULL && *homedir_env == NUL)
4501 homedir_env = NULL;
4502
4499 #if defined(FEAT_MODIFY_FNAME) || defined(WIN3264) 4503 #if defined(FEAT_MODIFY_FNAME) || defined(WIN3264)
4500 if (vim_strchr(homedir_env, '~') != NULL) 4504 if (homedir_env != NULL && vim_strchr(homedir_env, '~') != NULL)
4501 { 4505 {
4502 int usedlen = 0; 4506 int usedlen = 0;
4503 int flen; 4507 int flen;
4504 char_u *fbuf = NULL; 4508 char_u *fbuf = NULL;
4505 4509
4511 /* Remove the trailing / that is added to a directory. */ 4515 /* Remove the trailing / that is added to a directory. */
4512 homedir_env[flen - 1] = NUL; 4516 homedir_env[flen - 1] = NUL;
4513 } 4517 }
4514 #endif 4518 #endif
4515 4519
4516 if (homedir_env != NULL && *homedir_env == NUL)
4517 homedir_env = NULL;
4518 if (homedir_env != NULL) 4520 if (homedir_env != NULL)
4519 envlen = STRLEN(homedir_env); 4521 envlen = STRLEN(homedir_env);
4520 4522
4521 if (!one) 4523 if (!one)
4522 src = skipwhite(src); 4524 src = skipwhite(src);