diff options
Diffstat (limited to 'data/vim/patches/8.1.0361')
-rw-r--r-- | data/vim/patches/8.1.0361 | 172 |
1 files changed, 172 insertions, 0 deletions
diff --git a/data/vim/patches/8.1.0361 b/data/vim/patches/8.1.0361 new file mode 100644 index 000000000..749364d12 --- /dev/null +++ b/data/vim/patches/8.1.0361 @@ -0,0 +1,172 @@ +To: vim_dev@googlegroups.com +Subject: Patch 8.1.0361 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 8.1.0361 +Problem: Remote user not used for completion. (Stucki) +Solution: Use $USER too. (Dominique Pelle, closes #3407) +Files: src/misc1.c + + +*** ../vim-8.1.0360/src/misc1.c 2018-08-26 21:23:03.400383307 +0200 +--- src/misc1.c 2018-09-10 18:53:46.863908096 +0200 +*************** +*** 4717,4722 **** +--- 4717,4741 ---- + } + + /* ++ * Add a user name to the list of users in ga_users. ++ * Do nothing if user name is NULL or empty. ++ */ ++ static void ++ add_user(char_u *user, int need_copy) ++ { ++ char_u *user_copy = (user != NULL && need_copy) ++ ? vim_strsave(user) : user; ++ ++ if (user_copy == NULL || *user_copy == NUL || ga_grow(&ga_users, 1) == FAIL) ++ { ++ if (need_copy) ++ vim_free(user); ++ return; ++ } ++ ((char_u **)(ga_users.ga_data))[ga_users.ga_len++] = user_copy; ++ } ++ ++ /* + * Find all user names for user completion. + * Done only once and then cached. + */ +*************** +*** 4733,4758 **** + + # if defined(HAVE_GETPWENT) && defined(HAVE_PWD_H) + { +- char_u* user; + struct passwd* pw; + + setpwent(); + while ((pw = getpwent()) != NULL) +! /* pw->pw_name shouldn't be NULL but just in case... */ +! if (pw->pw_name != NULL) +! { +! if (ga_grow(&ga_users, 1) == FAIL) +! break; +! user = vim_strsave((char_u*)pw->pw_name); +! if (user == NULL) +! break; +! ((char_u **)(ga_users.ga_data))[ga_users.ga_len++] = user; +! } + endpwent(); + } + # elif defined(WIN3264) + { +- char_u* user; + DWORD nusers = 0, ntotal = 0, i; + PUSER_INFO_0 uinfo; + +--- 4752,4766 ---- + + # if defined(HAVE_GETPWENT) && defined(HAVE_PWD_H) + { + struct passwd* pw; + + setpwent(); + while ((pw = getpwent()) != NULL) +! add_user((char_u *)pw->pw_name, TRUE); + endpwent(); + } + # elif defined(WIN3264) + { + DWORD nusers = 0, ntotal = 0, i; + PUSER_INFO_0 uinfo; + +*************** +*** 4760,4775 **** + &nusers, &ntotal, NULL) == NERR_Success) + { + for (i = 0; i < nusers; i++) + { +! if (ga_grow(&ga_users, 1) == FAIL) +! break; +! user = utf16_to_enc(uinfo[i].usri0_name, NULL); +! if (user == NULL) + break; +- ((char_u **)(ga_users.ga_data))[ga_users.ga_len++] = user; + } + +! NetApiBufferFree(uinfo); + } + } + # endif +--- 4768,4808 ---- + &nusers, &ntotal, NULL) == NERR_Success) + { + for (i = 0; i < nusers; i++) ++ add_user(utf16_to_enc(uinfo[i].usri0_name, NULL), FALSE); ++ ++ NetApiBufferFree(uinfo); ++ } ++ } ++ # endif ++ # if defined(HAVE_GETPWNAM) ++ { ++ char_u *user_env = mch_getenv((char_u *)"USER"); ++ ++ // The $USER environment variable may be a valid remote user name (NIS, ++ // LDAP) not already listed by getpwent(), as getpwent() only lists ++ // local user names. If $USER is not already listed, check whether it ++ // is a valid remote user name using getpwnam() and if it is, add it to ++ // the list of user names. ++ ++ if (user_env != NULL && *user_env != NUL) ++ { ++ int i; ++ ++ for (i = 0; i < ga_users.ga_len; i++) + { +! char_u *local_user = ((char_u **)ga_users.ga_data)[i]; +! +! if (STRCMP(local_user, user_env) == 0) + break; + } + +! if (i == ga_users.ga_len) +! { +! struct passwd *pw = getpwnam((char *)user_env); +! +! if (pw != NULL) +! add_user((char_u *)pw->pw_name, TRUE); +! } + } + } + # endif +*** ../vim-8.1.0360/src/version.c 2018-09-10 17:50:32.717306902 +0200 +--- src/version.c 2018-09-10 18:48:00.579950668 +0200 +*************** +*** 796,797 **** +--- 796,799 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 361, + /**/ + +-- +"You know, it's at times like this when I'm trapped in a Vogon airlock with +a man from Betelgeuse and about to die of asphyxiation in deep space that I +really wish I'd listened to what my mother told me when I was young!" +"Why, what did she tell you?" +"I don't know, I didn't listen!" + -- Arthur Dent and Ford Prefect in Douglas Adams' + "The Hitchhiker's Guide to the Galaxy" + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// |