From a203182302733c0ea98d66ee1f576f251697dc81 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar <Bram@vim.org> Date: Tue, 7 Mar 2006 22:29:51 +0000 Subject: [PATCH] updated for version 7.0217 --- runtime/doc/cmdline.txt | 8 +++++--- runtime/doc/insert.txt | 9 +++++++-- src/ex_docmd.c | 2 +- src/fileio.c | 1 + src/message.c | 12 ++++++------ src/os_riscos.c | 2 -- src/os_unix.c | 11 ++++++++--- src/os_vms.c | 6 ++++++ src/os_win32.c | 2 -- src/spell.c | 1 + src/vim.h | 1 + 11 files changed, 36 insertions(+), 19 deletions(-) diff --git a/runtime/doc/cmdline.txt b/runtime/doc/cmdline.txt index 8a0f0a4a3e..e593907b3d 100644 --- a/runtime/doc/cmdline.txt +++ b/runtime/doc/cmdline.txt @@ -1,4 +1,4 @@ -*cmdline.txt* For Vim version 7.0aa. Last change: 2006 Mar 04 +*cmdline.txt* For Vim version 7.0aa. Last change: 2006 Mar 07 VIM REFERENCE MANUAL by Bram Moolenaar @@ -354,6 +354,7 @@ word before the cursor. This is available for: - File names: Only after a command that accepts a file name or a setting for an option that can be set to a file name. This is called file name completion. +- Shell command names: After ":!cmd", ":r !cmd" and ":w !cmd". $PATH is used. - Options: Only after the ":set" command. - Mappings: Only after a ":map" or similar command. - Variable and function names: Only after a ":if", ":call" or similar command. @@ -742,8 +743,9 @@ Note: these are typed literally, they are not special keys! <afile> when executing autocommands, is replaced with the file name for a file read or write <abuf> when executing autocommands, is replaced with the currently - effective buffer number (for ":r file" it is the current - buffer, the file being read is not in a buffer). + effective buffer number (for ":r file" and ":so file" it is + the current buffer, the file being read/sourced is not in a + buffer). <amatch> when executing autocommands, is replaced with the match for which this autocommand was executed. It differs from <afile> only when the file name isn't used to match with diff --git a/runtime/doc/insert.txt b/runtime/doc/insert.txt index 551d133a83..4bdc24c68e 100644 --- a/runtime/doc/insert.txt +++ b/runtime/doc/insert.txt @@ -1,4 +1,4 @@ -*insert.txt* For Vim version 7.0aa. Last change: 2006 Mar 06 +*insert.txt* For Vim version 7.0aa. Last change: 2006 Mar 07 VIM REFERENCE MANUAL by Bram Moolenaar @@ -1078,7 +1078,7 @@ INSERT COMPLETION POPUP MENU *ins-completion-menu* Vim can display the matches in a simplistic popup menu. The menu is used when: -- The 'completeopt' option contains "menu". +- The 'completeopt' option contains "menu" or "menuone". - The terminal supports at least 8 colors. - There are at least two matches. @@ -1093,6 +1093,11 @@ in the second state. If you select another match, e.g., with CTRL-N or CTRL-P, you go from the second to the first state. This doesn't change the list of matches. +When you are back at the original text then you are in the second state. To +get there right away you can use a mapping that uses CTRL-P right after +starting the completion: > + :imap <F7> <C-N><C-P> + In the first state these keys have a special meaning: <BS> and CTRL-H Delete one character, find the matches for the word before diff --git a/src/ex_docmd.c b/src/ex_docmd.c index e1e5a83c4b..31aa4ace90 100644 --- a/src/ex_docmd.c +++ b/src/ex_docmd.c @@ -2426,7 +2426,7 @@ do_one_cmd(cmdlinep, sourcing, get_flags(&ea); /* no arguments allowed */ if (!ni && !(ea.argt & EXTRA) && *ea.arg != NUL - && vim_strchr((char_u *)"|\"", *ea.arg) == NULL) + && *ea.arg != '"' && (*ea.arg != '|' || (ea.argt & TRLBAR) == 0)) { errormsg = (char_u *)_(e_trailing); goto doend; diff --git a/src/fileio.c b/src/fileio.c index 8333f73b24..205e5f0c6a 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -6983,6 +6983,7 @@ static struct event_name {"QuickFixCmdPre", EVENT_QUICKFIXCMDPRE}, {"RemoteReply", EVENT_REMOTEREPLY}, {"SessionLoadPost", EVENT_SESSIONLOADPOST}, + {"SourcePre", EVENT_SOURCEPRE}, {"SpellFileMissing",EVENT_SPELLFILEMISSING}, {"StdinReadPost", EVENT_STDINREADPOST}, {"StdinReadPre", EVENT_STDINREADPRE}, diff --git a/src/message.c b/src/message.c index c3acc409a6..e0971b67bc 100644 --- a/src/message.c +++ b/src/message.c @@ -3846,7 +3846,7 @@ tv_str(tvs, idxp) /* * This code was included to provide a portable vsnprintf() and snprintf(). - * Some systems may provide their own, but we always use these for + * Some systems may provide their own, but we always use this one for * consistency. * * This code is based on snprintf.c - a portable implementation of snprintf @@ -3866,14 +3866,14 @@ tv_str(tvs, idxp) * The locale is not used, the string is used as a byte string. This is only * relevant for double-byte encodings where the second byte may be '%'. * - * It is permitted for str_m to be zero, and it is permitted to specify NULL - * pointer for resulting string argument if str_m is zero (as per ISO C99). + * It is permitted for "str_m" to be zero, and it is permitted to specify NULL + * pointer for resulting string argument if "str_m" is zero (as per ISO C99). * * The return value is the number of characters which would be generated * for the given input, excluding the trailing null. If this value - * is greater or equal to str_m, not all characters from the result - * have been stored in str, output bytes beyond the (str_m-1) -th character - * are discarded. If str_m is greater than zero it is guaranteed + * is greater or equal to "str_m", not all characters from the result + * have been stored in str, output bytes beyond the ("str_m"-1) -th character + * are discarded. If "str_m" is greater than zero it is guaranteed * the resulting string will be null-terminated. */ diff --git a/src/os_riscos.c b/src/os_riscos.c index cc52d85a69..8d6df27802 100644 --- a/src/os_riscos.c +++ b/src/os_riscos.c @@ -637,7 +637,6 @@ mch_isdir(name) return FALSE; } -#if defined(FEAT_EVAL) || defined(PROTO) /* * Return 1 if "name" can be executed, 0 if not. * Return -1 if unknown. Requires which to work. @@ -663,7 +662,6 @@ mch_can_exe(name) vim_free(p); return retval; } -#endif /* * Check what "name" is: diff --git a/src/os_unix.c b/src/os_unix.c index c60ddafe52..a80bd21807 100644 --- a/src/os_unix.c +++ b/src/os_unix.c @@ -2610,8 +2610,6 @@ mch_isdir(name) #endif } -#if defined(FEAT_EVAL) || defined(PROTO) - static int executable_file __ARGS((char_u *name)); /* @@ -2681,7 +2679,6 @@ mch_can_exe(name) vim_free(buf); return retval; } -#endif /* * Check what "name" is: @@ -4924,6 +4921,10 @@ mch_expand_wildcards(num_pat, pat, num_file, file, flags) if ((dir && !(flags & EW_DIR)) || (!dir && !(flags & EW_FILE))) continue; + /* Skip files that are not executable if we check for that. */ + if (!dir && (flags & EW_EXEC) && !mch_can_exe(p)) + continue; + if (--files_free == 0) { /* need more room in table of pointers */ @@ -5390,6 +5391,10 @@ mch_expand_wildcards(num_pat, pat, num_file, file, flags) if ((dir && !(flags & EW_DIR)) || (!dir && !(flags & EW_FILE))) continue; + /* Skip files that are not executable if we check for that. */ + if (!dir && (flags & EW_EXEC) && !mch_can_exe((*file)[i])) + continue; + p = alloc((unsigned)(STRLEN((*file)[i]) + 1 + dir)); if (p) { diff --git a/src/os_vms.c b/src/os_vms.c index b1706fea38..28976b131a 100644 --- a/src/os_vms.c +++ b/src/os_vms.c @@ -445,10 +445,16 @@ mch_expand_wildcards(int num_pat, char_u **pat, int *num_file, char_u ***file, i /* files should exist if expanding interactively */ if (!(flags & EW_NOTFOUND) && mch_getperm(vms_fmatch[i]) < 0) continue; + /* do not include directories */ dir = (mch_isdir(vms_fmatch[i])); if (( dir && !(flags & EW_DIR)) || (!dir && !(flags & EW_FILE))) continue; + + /* Skip files that are not executable if we check for that. */ + if (!dir && (flags & EW_EXEC) && !mch_can_exe(vms_fmatch[i])) + continue; + /* allocate memory for pointers */ if (--files_free < 1) { diff --git a/src/os_win32.c b/src/os_win32.c index a45255caee..330ce5a572 100644 --- a/src/os_win32.c +++ b/src/os_win32.c @@ -2617,7 +2617,6 @@ mch_writable(char_u *name) || (perm & FILE_ATTRIBUTE_DIRECTORY))); } -#if defined(FEAT_EVAL) || defined(PROTO) /* * Return 1 if "name" can be executed, 0 if not. * Return -1 if unknown. @@ -2663,7 +2662,6 @@ mch_can_exe(char_u *name) } return FALSE; } -#endif /* * Check what "name" is: diff --git a/src/spell.c b/src/spell.c index fe46006c61..090b77f2dd 100644 --- a/src/spell.c +++ b/src/spell.c @@ -15110,6 +15110,7 @@ spell_dump_compl(buf, pat, ic, dir, dumpflags_arg) /* Done all bytes at this node, go up one level. */ --depth; line_breakcheck(); + ins_compl_check_keys(50); } else { diff --git a/src/vim.h b/src/vim.h index ff57561d97..a58ce7c8c3 100644 --- a/src/vim.h +++ b/src/vim.h @@ -1124,6 +1124,7 @@ enum auto_event EVENT_FUNCUNDEFINED, /* if calling a function which doesn't exist */ EVENT_REMOTEREPLY, /* upon string reception from a remote vim */ EVENT_SWAPEXISTS, /* found existing swap file */ + EVENT_SOURCEPRE, /* before sourcing a Vim script */ EVENT_SPELLFILEMISSING, /* spell file missing */ EVENT_CURSORMOVED, /* cursor was moved */ EVENT_CURSORMOVEDI, /* cursor was moved in Insert mode */ -- GitLab