summaryrefslogtreecommitdiffstats
path: root/source/ap/vim/patches/7.3.631
diff options
context:
space:
mode:
author Patrick J Volkerding <volkerdi@slackware.com>2012-09-26 01:10:42 +0000
committer Eric Hameleers <alien@slackware.com>2018-05-31 22:51:55 +0200
commit9664bee729d487bcc0a0bc35859f8e13d5421c75 (patch)
treeb428a16618e36ed864a8d76ea3435e19a452bf90 /source/ap/vim/patches/7.3.631
parent75a4a592e5ccda30715f93563d741b83e0dcf39e (diff)
downloadcurrent-9664bee729d487bcc0a0bc35859f8e13d5421c75.tar.gz
current-9664bee729d487bcc0a0bc35859f8e13d5421c75.tar.xz
Slackware 14.0slackware-14.0
Wed Sep 26 01:10:42 UTC 2012 Slackware 14.0 x86_64 stable is released! We're perfectionists here at Slackware, so this release has been a long time a-brewing. But we think you'll agree that it was worth the wait. Slackware 14.0 combines modern components, ease of use, and flexible configuration... our "KISS" philosophy demands it. The ISOs are off to be replicated, a 6 CD-ROM 32-bit set and a dual-sided 32-bit/64-bit x86/x86_64 DVD. Please consider supporting the Slackware project by picking up a copy from store.slackware.com. We're taking pre-orders now, and offer a discount if you sign up for a subscription. Thanks to everyone who helped make this happen. The Slackware team, the upstream developers, and (of course) the awesome Slackware user community. Have fun! :-)
Diffstat (limited to 'source/ap/vim/patches/7.3.631')
-rw-r--r--source/ap/vim/patches/7.3.631322
1 files changed, 322 insertions, 0 deletions
diff --git a/source/ap/vim/patches/7.3.631 b/source/ap/vim/patches/7.3.631
new file mode 100644
index 000000000..b7bff4fc4
--- /dev/null
+++ b/source/ap/vim/patches/7.3.631
@@ -0,0 +1,322 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.631
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.631
+Problem: Cannot complete user names.
+Solution: Add user name completion. (Dominique Pelle)
+Files: runtime/doc/map.txt, src/auto/configure, src/config.h.in,
+ src/configure.in, src/ex_docmd.c, src/ex_getln.c,
+ src/misc1.c, src/misc2.c, src/proto/misc1.pro, src/vim.h
+
+
+*** ../vim-7.3.630/runtime/doc/map.txt 2012-04-30 18:48:38.000000000 +0200
+--- runtime/doc/map.txt 2012-08-15 13:46:34.000000000 +0200
+***************
+*** 1227,1232 ****
+--- 1244,1250 ----
+ -complete=syntax syntax file names |'syntax'|
+ -complete=tag tags
+ -complete=tag_listfiles tags, file names are shown when CTRL-D is hit
++ -complete=user user names
+ -complete=var user variables
+ -complete=custom,{func} custom completion, defined via {func}
+ -complete=customlist,{func} custom completion, defined via {func}
+*** ../vim-7.3.630/src/auto/configure 2012-07-25 16:32:03.000000000 +0200
+--- src/auto/configure 2012-08-15 13:48:06.000000000 +0200
+***************
+*** 10631,10637 ****
+ fi
+
+ for ac_func in bcmp fchdir fchown fsync getcwd getpseudotty \
+! getpwnam getpwuid getrlimit gettimeofday getwd lstat memcmp \
+ memset mkdtemp nanosleep opendir putenv qsort readlink select setenv \
+ setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
+ sigvec strcasecmp strerror strftime stricmp strncasecmp \
+--- 10631,10637 ----
+ fi
+
+ for ac_func in bcmp fchdir fchown fsync getcwd getpseudotty \
+! getpwent getpwnam getpwuid getrlimit gettimeofday getwd lstat memcmp \
+ memset mkdtemp nanosleep opendir putenv qsort readlink select setenv \
+ setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
+ sigvec strcasecmp strerror strftime stricmp strncasecmp \
+*** ../vim-7.3.630/src/config.h.in 2012-02-05 22:51:27.000000000 +0100
+--- src/config.h.in 2012-08-15 13:46:35.000000000 +0200
+***************
+*** 161,166 ****
+--- 161,167 ----
+ #undef HAVE_FSYNC
+ #undef HAVE_GETCWD
+ #undef HAVE_GETPSEUDOTTY
++ #undef HAVE_GETPWENT
+ #undef HAVE_GETPWNAM
+ #undef HAVE_GETPWUID
+ #undef HAVE_GETRLIMIT
+*** ../vim-7.3.630/src/configure.in 2012-07-25 16:32:03.000000000 +0200
+--- src/configure.in 2012-08-15 13:46:35.000000000 +0200
+***************
+*** 2994,3000 ****
+ dnl Check for functions in one big call, to reduce the size of configure.
+ dnl Can only be used for functions that do not require any include.
+ AC_CHECK_FUNCS(bcmp fchdir fchown fsync getcwd getpseudotty \
+! getpwnam getpwuid getrlimit gettimeofday getwd lstat memcmp \
+ memset mkdtemp nanosleep opendir putenv qsort readlink select setenv \
+ setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
+ sigvec strcasecmp strerror strftime stricmp strncasecmp \
+--- 2994,3000 ----
+ dnl Check for functions in one big call, to reduce the size of configure.
+ dnl Can only be used for functions that do not require any include.
+ AC_CHECK_FUNCS(bcmp fchdir fchown fsync getcwd getpseudotty \
+! getpwent getpwnam getpwuid getrlimit gettimeofday getwd lstat memcmp \
+ memset mkdtemp nanosleep opendir putenv qsort readlink select setenv \
+ setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
+ sigvec strcasecmp strerror strftime stricmp strncasecmp \
+*** ../vim-7.3.630/src/ex_docmd.c 2012-08-02 21:24:38.000000000 +0200
+--- src/ex_docmd.c 2012-08-15 13:54:29.000000000 +0200
+***************
+*** 3515,3520 ****
+--- 3515,3537 ----
+ #endif
+ }
+ }
++ #if defined(FEAT_CMDL_COMPL)
++ /* Check for user names */
++ if (*xp->xp_pattern == '~')
++ {
++ for (p = xp->xp_pattern + 1; *p != NUL && *p != '/'; ++p)
++ ;
++ /* Complete ~user only if it partially matches a user name.
++ * A full match ~user<Tab> will be replaced by user's home
++ * directory i.e. something like ~user<Tab> -> /home/user/ */
++ if (*p == NUL && p > xp->xp_pattern + 1
++ && match_user(xp->xp_pattern + 1) == 1)
++ {
++ xp->xp_context = EXPAND_USER;
++ ++xp->xp_pattern;
++ }
++ }
++ #endif
+ }
+
+ /*
+***************
+*** 5396,5401 ****
+--- 5413,5419 ----
+ #endif
+ {EXPAND_TAGS, "tag"},
+ {EXPAND_TAGS_LISTFILES, "tag_listfiles"},
++ {EXPAND_USER, "user"},
+ {EXPAND_USER_VARS, "var"},
+ {0, NULL}
+ };
+*** ../vim-7.3.630/src/ex_getln.c 2012-08-08 18:01:00.000000000 +0200
+--- src/ex_getln.c 2012-08-15 13:46:35.000000000 +0200
+***************
+*** 4336,4341 ****
+--- 4336,4342 ----
+ * EXPAND_EXPRESSION Complete internal or user defined function/variable
+ * names in expressions, eg :while s^I
+ * EXPAND_ENV_VARS Complete environment variable names
++ * EXPAND_USER Complete user names
+ */
+ static void
+ set_expand_context(xp)
+***************
+*** 4681,4686 ****
+--- 4682,4688 ----
+ {EXPAND_LOCALES, get_locales, TRUE, FALSE},
+ #endif
+ {EXPAND_ENV_VARS, get_env_name, TRUE, TRUE},
++ {EXPAND_USER, get_users, TRUE, FALSE},
+ };
+ int i;
+
+*** ../vim-7.3.630/src/misc1.c 2012-08-08 18:01:00.000000000 +0200
+--- src/misc1.c 2012-08-15 13:57:53.000000000 +0200
+***************
+*** 18,23 ****
+--- 18,28 ----
+ static char_u *remove_tail __ARGS((char_u *p, char_u *pend, char_u *name));
+ static int copy_indent __ARGS((int size, char_u *src));
+
++ /* All user names (for ~user completion as done by shell). */
++ #if defined(FEAT_CMDL_COMPL) || defined(PROTO)
++ static garray_T ga_users;
++ #endif
++
+ /*
+ * Count the size (in window cells) of the indent in the current line.
+ */
+***************
+*** 3782,3787 ****
+--- 3787,3800 ----
+ {
+ vim_free(homedir);
+ }
++
++ # ifdef FEAT_CMDL_COMPL
++ void
++ free_users()
++ {
++ ga_clear_strings(&ga_users);
++ }
++ # endif
+ #endif
+
+ /*
+***************
+*** 4451,4456 ****
+--- 4464,4543 ----
+ return name;
+ # endif
+ }
++
++ /*
++ * Find all user names for user completion.
++ * Done only once and then cached.
++ */
++ static void
++ init_users() {
++ static int lazy_init_done = FALSE;
++
++ if (lazy_init_done)
++ return;
++
++ lazy_init_done = TRUE;
++ ga_init2(&ga_users, sizeof(char_u *), 20);
++
++ # 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();
++ }
++ # endif
++ }
++
++ /*
++ * Function given to ExpandGeneric() to obtain an user names.
++ */
++ char_u*
++ get_users(xp, idx)
++ expand_T *xp UNUSED;
++ int idx;
++ {
++ init_users();
++ if (idx < ga_users.ga_len)
++ return ((char_u **)ga_users.ga_data)[idx];
++ return NULL;
++ }
++
++ /*
++ * Check whether name matches a user name. Return:
++ * 0 if name does not match any user name.
++ * 1 if name partially matches the beginning of a user name.
++ * 2 is name fully matches a user name.
++ */
++ int match_user(name)
++ char_u* name;
++ {
++ int i;
++ int n = (int)STRLEN(name);
++ int result = 0;
++
++ init_users();
++ for (i = 0; i < ga_users.ga_len; i++)
++ {
++ if (STRCMP(((char_u **)ga_users.ga_data)[i], name) == 0)
++ return 2; /* full match */
++ if (STRNCMP(((char_u **)ga_users.ga_data)[i], name, n) == 0)
++ result = 1; /* partial match */
++ }
++ return result;
++ }
+ #endif
+
+ /*
+*** ../vim-7.3.630/src/misc2.c 2012-06-29 15:51:26.000000000 +0200
+--- src/misc2.c 2012-08-15 13:46:35.000000000 +0200
+***************
+*** 1110,1115 ****
+--- 1110,1118 ----
+ free_all_marks();
+ alist_clear(&global_alist);
+ free_homedir();
++ # if defined(FEAT_CMDL_COMPL)
++ free_users();
++ # endif
+ free_search_patterns();
+ free_old_sub();
+ free_last_insert();
+*** ../vim-7.3.630/src/proto/misc1.pro 2012-06-06 16:12:54.000000000 +0200
+--- src/proto/misc1.pro 2012-08-15 13:46:35.000000000 +0200
+***************
+*** 50,55 ****
+--- 50,56 ----
+ void vim_beep __ARGS((void));
+ void init_homedir __ARGS((void));
+ void free_homedir __ARGS((void));
++ void free_users __ARGS((void));
+ char_u *expand_env_save __ARGS((char_u *src));
+ char_u *expand_env_save_opt __ARGS((char_u *src, int one));
+ void expand_env __ARGS((char_u *src, char_u *dst, int dstlen));
+***************
+*** 57,62 ****
+--- 58,65 ----
+ char_u *vim_getenv __ARGS((char_u *name, int *mustfree));
+ void vim_setenv __ARGS((char_u *name, char_u *val));
+ char_u *get_env_name __ARGS((expand_T *xp, int idx));
++ char_u *get_users __ARGS((expand_T *xp, int idx));
++ int match_user __ARGS((char_u* name));
+ void home_replace __ARGS((buf_T *buf, char_u *src, char_u *dst, int dstlen, int one));
+ char_u *home_replace_save __ARGS((buf_T *buf, char_u *src));
+ int fullpathcmp __ARGS((char_u *s1, char_u *s2, int checkname));
+*** ../vim-7.3.630/src/vim.h 2012-07-10 17:14:50.000000000 +0200
+--- src/vim.h 2012-08-15 13:46:35.000000000 +0200
+***************
+*** 782,787 ****
+--- 782,788 ----
+ #define EXPAND_OWNSYNTAX 39
+ #define EXPAND_LOCALES 40
+ #define EXPAND_HISTORY 41
++ #define EXPAND_USER 42
+
+ /* Values for exmode_active (0 is no exmode) */
+ #define EXMODE_NORMAL 1
+*** ../vim-7.3.630/src/version.c 2012-08-15 13:30:55.000000000 +0200
+--- src/version.c 2012-08-15 14:01:12.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 631,
+ /**/
+
+--
+"Marriage is the process of finding out what kind of man your wife
+would have preferred"
+
+ /// 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 ///