summaryrefslogtreecommitdiffstats
path: root/source/ap/vim/patches/7.2.166
diff options
context:
space:
mode:
author Patrick J Volkerding <volkerdi@slackware.com>2009-08-26 10:00:38 -0500
committer Eric Hameleers <alien@slackware.com>2018-05-31 22:41:17 +0200
commit5a12e7c134274dba706667107d10d231517d3e05 (patch)
tree55718d5acb710fde798d9f38d0bbaf594ed4b296 /source/ap/vim/patches/7.2.166
downloadcurrent-5a12e7c134274dba706667107d10d231517d3e05.tar.gz
current-5a12e7c134274dba706667107d10d231517d3e05.tar.xz
Slackware 13.0slackware-13.0
Wed Aug 26 10:00:38 CDT 2009 Slackware 13.0 x86_64 is released as stable! Thanks to everyone who helped make this release possible -- see the RELEASE_NOTES for the credits. The ISOs are off to the replicator. This time it will be a 6 CD-ROM 32-bit set and a dual-sided 32-bit/64-bit x86/x86_64 DVD. We're taking pre-orders now at store.slackware.com. Please consider picking up a copy to help support the project. Once again, thanks to the entire Slackware community for all the help testing and fixing things and offering suggestions during this development cycle. As always, have fun and enjoy! -P.
Diffstat (limited to 'source/ap/vim/patches/7.2.166')
-rw-r--r--source/ap/vim/patches/7.2.166425
1 files changed, 425 insertions, 0 deletions
diff --git a/source/ap/vim/patches/7.2.166 b/source/ap/vim/patches/7.2.166
new file mode 100644
index 000000000..0461b31dd
--- /dev/null
+++ b/source/ap/vim/patches/7.2.166
@@ -0,0 +1,425 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.166
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.166
+Problem: No completion for ":sign" command.
+Solution: Add ":sign" completion. (Dominique Pelle)
+Files: src/ex_cmds.c, src/ex_docmd.c, src/ex_getln.c, src/vim.h,
+ src/proto/ex_cmds.pro
+
+
+*** ../vim-7.2.165/src/ex_cmds.c Tue Feb 24 04:28:40 2009
+--- src/ex_cmds.c Wed Apr 29 17:08:27 2009
+***************
+*** 6543,6562 ****
+ static void sign_list_defined __ARGS((sign_T *sp));
+ static void sign_undefine __ARGS((sign_T *sp, sign_T *sp_prev));
+
+! /*
+! * ":sign" command
+! */
+! void
+! ex_sign(eap)
+! exarg_T *eap;
+! {
+! char_u *arg = eap->arg;
+! char_u *p;
+! int idx;
+! sign_T *sp;
+! sign_T *sp_prev;
+! buf_T *buf;
+! static char *cmds[] = {
+ "define",
+ #define SIGNCMD_DEFINE 0
+ "undefine",
+--- 6543,6549 ----
+ static void sign_list_defined __ARGS((sign_T *sp));
+ static void sign_undefine __ARGS((sign_T *sp, sign_T *sp_prev));
+
+! static char *cmds[] = {
+ "define",
+ #define SIGNCMD_DEFINE 0
+ "undefine",
+***************
+*** 6569,6590 ****
+ #define SIGNCMD_UNPLACE 4
+ "jump",
+ #define SIGNCMD_JUMP 5
+ #define SIGNCMD_LAST 6
+! };
+
+ /* Parse the subcommand. */
+ p = skiptowhite(arg);
+! if (*p != NUL)
+! *p++ = NUL;
+! for (idx = 0; ; ++idx)
+ {
+! if (idx == SIGNCMD_LAST)
+! {
+! EMSG2(_("E160: Unknown sign command: %s"), arg);
+! return;
+! }
+! if (STRCMP(arg, cmds[idx]) == 0)
+! break;
+ }
+ arg = skipwhite(p);
+
+--- 6556,6606 ----
+ #define SIGNCMD_UNPLACE 4
+ "jump",
+ #define SIGNCMD_JUMP 5
++ NULL
+ #define SIGNCMD_LAST 6
+! };
+!
+! /*
+! * Find index of a ":sign" subcmd from its name.
+! * "*end_cmd" must be writable.
+! */
+! static int
+! sign_cmd_idx(begin_cmd, end_cmd)
+! char *begin_cmd; /* begin of sign subcmd */
+! char *end_cmd; /* just after sign subcmd */
+! {
+! int idx;
+! char save = *end_cmd;
+!
+! *end_cmd = NUL;
+! for (idx = 0; ; ++idx)
+! if (cmds[idx] == NULL || STRCMP(begin_cmd, cmds[idx]) == 0)
+! break;
+! *end_cmd = save;
+! return idx;
+! }
+!
+! /*
+! * ":sign" command
+! */
+! void
+! ex_sign(eap)
+! exarg_T *eap;
+! {
+! char_u *arg = eap->arg;
+! char_u *p;
+! int idx;
+! sign_T *sp;
+! sign_T *sp_prev;
+! buf_T *buf;
+
+ /* Parse the subcommand. */
+ p = skiptowhite(arg);
+! idx = sign_cmd_idx(arg, p);
+! if (idx == SIGNCMD_LAST)
+ {
+! EMSG2(_("E160: Unknown sign command: %s"), arg);
+! return;
+ }
+ arg = skipwhite(p);
+
+***************
+*** 7110,7115 ****
+--- 7126,7311 ----
+ }
+ #endif
+
++ #if defined(FEAT_CMDL_COMPL) || defined(PROTO)
++ static enum
++ {
++ EXP_SUBCMD, /* expand :sign sub-commands */
++ EXP_DEFINE, /* expand :sign define {name} args */
++ EXP_PLACE, /* expand :sign place {id} args */
++ EXP_UNPLACE, /* expand :sign unplace" */
++ EXP_SIGN_NAMES /* expand with name of placed signs */
++ } expand_what;
++
++ /*
++ * Function given to ExpandGeneric() to obtain the sign command
++ * expansion.
++ */
++ /*ARGSUSED*/
++ char_u *
++ get_sign_name(xp, idx)
++ expand_T *xp;
++ int idx;
++ {
++ sign_T *sp;
++ int current_idx;
++
++ switch (expand_what)
++ {
++ case EXP_SUBCMD:
++ return (char_u *)cmds[idx];
++ case EXP_DEFINE:
++ {
++ char *define_arg[] =
++ {
++ "icon=", "linehl=", "text=", "texthl=", NULL
++ };
++ return (char_u *)define_arg[idx];
++ }
++ case EXP_PLACE:
++ {
++ char *place_arg[] =
++ {
++ "line=", "name=", "file=", "buffer=", NULL
++ };
++ return (char_u *)place_arg[idx];
++ }
++ case EXP_UNPLACE:
++ {
++ char *unplace_arg[] = { "file=", "buffer=", NULL };
++ return (char_u *)unplace_arg[idx];
++ }
++ case EXP_SIGN_NAMES:
++ /* Complete with name of signs already defined */
++ current_idx = 0;
++ for (sp = first_sign; sp != NULL; sp = sp->sn_next)
++ if (current_idx++ == idx)
++ return sp->sn_name;
++ return NULL;
++ default:
++ return NULL;
++ }
++ }
++
++ /*
++ * Handle command line completion for :sign command.
++ */
++ void
++ set_context_in_sign_cmd(xp, arg)
++ expand_T *xp;
++ char_u *arg;
++ {
++ char_u *p;
++ char_u *end_subcmd;
++ char_u *last;
++ int cmd_idx;
++ char_u *begin_subcmd_args;
++
++ /* Default: expand subcommands. */
++ xp->xp_context = EXPAND_SIGN;
++ expand_what = EXP_SUBCMD;
++ xp->xp_pattern = arg;
++
++ end_subcmd = skiptowhite(arg);
++ if (*end_subcmd == NUL)
++ /* expand subcmd name
++ * :sign {subcmd}<CTRL-D>*/
++ return;
++
++ cmd_idx = sign_cmd_idx(arg, end_subcmd);
++
++ /* :sign {subcmd} {subcmd_args}
++ * |
++ * begin_subcmd_args */
++ begin_subcmd_args = skipwhite(end_subcmd);
++ p = skiptowhite(begin_subcmd_args);
++ if (*p == NUL)
++ {
++ /*
++ * Expand first argument of subcmd when possible.
++ * For ":jump {id}" and ":unplace {id}", we could
++ * possibly expand the ids of all signs already placed.
++ */
++ xp->xp_pattern = begin_subcmd_args;
++ switch (cmd_idx)
++ {
++ case SIGNCMD_LIST:
++ case SIGNCMD_UNDEFINE:
++ /* :sign list <CTRL-D>
++ * :sign undefine <CTRL-D> */
++ expand_what = EXP_SIGN_NAMES;
++ break;
++ default:
++ xp->xp_context = EXPAND_NOTHING;
++ }
++ return;
++ }
++
++ /* expand last argument of subcmd */
++
++ /* :sign define {name} {args}...
++ * |
++ * p */
++
++ /* Loop until reaching last argument. */
++ do
++ {
++ p = skipwhite(p);
++ last = p;
++ p = skiptowhite(p);
++ } while (*p != NUL);
++
++ p = vim_strchr(last, '=');
++
++ /* :sign define {name} {args}... {last}=
++ * | |
++ * last p */
++ if (p == NUL)
++ {
++ /* Expand last argument name (before equal sign). */
++ xp->xp_pattern = last;
++ switch (cmd_idx)
++ {
++ case SIGNCMD_DEFINE:
++ expand_what = EXP_DEFINE;
++ break;
++ case SIGNCMD_PLACE:
++ expand_what = EXP_PLACE;
++ break;
++ case SIGNCMD_JUMP:
++ case SIGNCMD_UNPLACE:
++ expand_what = EXP_UNPLACE;
++ break;
++ default:
++ xp->xp_context = EXPAND_NOTHING;
++ }
++ }
++ else
++ {
++ /* Expand last argument value (after equal sign). */
++ xp->xp_pattern = p + 1;
++ switch (cmd_idx)
++ {
++ case SIGNCMD_DEFINE:
++ if (STRNCMP(last, "texthl", p - last) == 0 ||
++ STRNCMP(last, "linehl", p - last) == 0)
++ xp->xp_context = EXPAND_HIGHLIGHT;
++ else if (STRNCMP(last, "icon", p - last) == 0)
++ xp->xp_context = EXPAND_FILES;
++ else
++ xp->xp_context = EXPAND_NOTHING;
++ break;
++ case SIGNCMD_PLACE:
++ if (STRNCMP(last, "name", p - last) == 0)
++ expand_what = EXP_SIGN_NAMES;
++ else
++ xp->xp_context = EXPAND_NOTHING;
++ break;
++ default:
++ xp->xp_context = EXPAND_NOTHING;
++ }
++ }
++ }
++ #endif
+ #endif
+
+ #if defined(FEAT_GUI) || defined(FEAT_CLIENTSERVER) || defined(PROTO)
+*** ../vim-7.2.165/src/ex_docmd.c Wed Apr 22 16:22:44 2009
+--- src/ex_docmd.c Wed Apr 29 17:05:23 2009
+***************
+*** 3695,3700 ****
+--- 3695,3705 ----
+ set_context_in_cscope_cmd(xp, arg, ea.cmdidx);
+ break;
+ #endif
++ #ifdef FEAT_SIGNS
++ case CMD_sign:
++ set_context_in_sign_cmd(xp, arg);
++ break;
++ #endif
+ #ifdef FEAT_LISTCMDS
+ case CMD_bdelete:
+ case CMD_bwipeout:
+***************
+*** 5218,5223 ****
+--- 5223,5231 ----
+ {EXPAND_MENUS, "menu"},
+ {EXPAND_SETTINGS, "option"},
+ {EXPAND_SHELLCMD, "shellcmd"},
++ #if defined(FEAT_SIGNS)
++ {EXPAND_SIGN, "sign"},
++ #endif
+ {EXPAND_TAGS, "tag"},
+ {EXPAND_TAGS_LISTFILES, "tag_listfiles"},
+ {EXPAND_USER_VARS, "var"},
+*** ../vim-7.2.165/src/ex_getln.c Wed Apr 29 12:03:35 2009
+--- src/ex_getln.c Wed Apr 29 12:51:42 2009
+***************
+*** 325,331 ****
+ #endif
+
+ #ifdef FEAT_DIGRAPHS
+! do_digraph(-1); /* init digraph typahead */
+ #endif
+
+ /*
+--- 325,331 ----
+ #endif
+
+ #ifdef FEAT_DIGRAPHS
+! do_digraph(-1); /* init digraph typeahead */
+ #endif
+
+ /*
+***************
+*** 4521,4526 ****
+--- 4521,4529 ----
+ #ifdef FEAT_CSCOPE
+ {EXPAND_CSCOPE, get_cscope_name, TRUE},
+ #endif
++ #ifdef FEAT_SIGNS
++ {EXPAND_SIGN, get_sign_name, TRUE},
++ #endif
+ #if (defined(HAVE_LOCALE_H) || defined(X_LOCALE)) \
+ && (defined(FEAT_GETTEXT) || defined(FEAT_MBYTE))
+ {EXPAND_LANGUAGE, get_lang_arg, TRUE},
+*** ../vim-7.2.165/src/vim.h Wed Mar 18 12:50:58 2009
+--- src/vim.h Wed Apr 29 12:51:42 2009
+***************
+*** 709,714 ****
+--- 709,715 ----
+ #define EXPAND_USER_LIST 31
+ #define EXPAND_SHELLCMD 32
+ #define EXPAND_CSCOPE 33
++ #define EXPAND_SIGN 34
+
+ /* Values for exmode_active (0 is no exmode) */
+ #define EXMODE_NORMAL 1
+*** ../vim-7.2.165/src/proto/ex_cmds.pro Tue Feb 24 04:28:40 2009
+--- src/proto/ex_cmds.pro Wed Apr 29 17:10:29 2009
+***************
+*** 40,46 ****
+ int read_viminfo_sub_string __ARGS((vir_T *virp, int force));
+ void write_viminfo_sub_string __ARGS((FILE *fp));
+ void free_old_sub __ARGS((void));
+- void free_signs __ARGS((void));
+ int prepare_tagpreview __ARGS((int undo_sync));
+ void ex_help __ARGS((exarg_T *eap));
+ char_u *check_help_lang __ARGS((char_u *arg));
+--- 40,45 ----
+***************
+*** 56,60 ****
+--- 55,62 ----
+ char_u *sign_get_text __ARGS((int typenr));
+ void *sign_get_image __ARGS((int typenr));
+ char_u *sign_typenr2name __ARGS((int typenr));
++ void free_signs __ARGS((void));
++ char_u *get_sign_name __ARGS((expand_T *xp, int idx));
++ void set_context_in_sign_cmd __ARGS((expand_T *xp, char_u *arg));
+ void ex_drop __ARGS((exarg_T *eap));
+ /* vim: set ft=c : */
+*** ../vim-7.2.165/src/version.c Wed Apr 29 18:01:23 2009
+--- src/version.c Wed Apr 29 18:43:14 2009
+***************
+*** 678,679 ****
+--- 678,681 ----
+ { /* Add new patch number below this line */
++ /**/
++ 166,
+ /**/
+
+--
+Did you ever stop to think... and forget to start again?
+ -- Steven Wright
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///