# HG changeset patch # User vimboss # Date 1104354182 0 # Node ID f55897d6921d622ac2649e4c94ddb38d121c2832 # Parent c75153d791d00dce27fe08893140fc22cf1c1423 updated for version 7.0026 diff --git a/runtime/doc/quickfix.txt b/runtime/doc/quickfix.txt --- a/runtime/doc/quickfix.txt +++ b/runtime/doc/quickfix.txt @@ -1,4 +1,4 @@ -*quickfix.txt* For Vim version 7.0aa. Last change: 2004 Dec 27 +*quickfix.txt* For Vim version 7.0aa. Last change: 2004 Dec 28 VIM REFERENCE MANUAL by Bram Moolenaar @@ -281,10 +281,13 @@ advantage of the internal grep is that i powerful Vim search patterns. An external grep program can be used when the Vim grep does not do what you want. -The internal method may be a bit slower, because files are read into memory. -The advantage is that line separators and encoding are automatically -recognized, as if a file is being edited. And multi-line patterns can be -used. +The internal method will be slower, because files are read into memory. The +advantages are: +- Line separators and encoding are automatically recognized, as if a file is + being edited. +- Uses Vim search patterns. Multi-line patterns can be used. +- When plugins are enabled: compressed and remote files can be searched. + |gzip| |netrw| 5.1 using Vim's internal grep @@ -294,11 +297,22 @@ 5.1 using Vim's internal grep Search for {pattern} in the files {file} ... and set the error list to the matches. {pattern} if a Vim search pattern. Instead of - enclosing it in / any character can be used, so long - as it does not appear in {pattern}. + enclosing it in / any non-ID character |'isident'| + can be used, so long as it does not appear in + {pattern}. + Examples: > + :vimgrep /an error/ *.c + :vimgrep /\/ *.h include/* +:vim[grep][!] {pattern} {file} ... + Like above, but instead of enclosing the pattern in a + non-ID character use a white-separated pattern. The + pattern must start with an ID character. + Example: > + :vimgrep Error *.c +< *:vimgrepa* *:vimgrepadd* -:vimgrepa[dd][!] /{pattern}/ {file} ... +:vimgrepa[dd][!] [/]{pattern}[/] {file} ... Just like ":vimgrep", but instead of making a new list of errors the matches are appended to the current list. diff --git a/runtime/doc/starting.txt b/runtime/doc/starting.txt --- a/runtime/doc/starting.txt +++ b/runtime/doc/starting.txt @@ -1,4 +1,4 @@ -*starting.txt* For Vim version 7.0aa. Last change: 2004 Jul 13 +*starting.txt* For Vim version 7.0aa. Last change: 2004 Dec 29 VIM REFERENCE MANUAL by Bram Moolenaar @@ -423,8 +423,8 @@ a slash. Thus "-R" means recovery and " *-U* *E230* -U {gvimrc} The file "gvimrc" is read for initializations when the GUI starts. Other GUI initializations are skipped. When {gvimrc} - is equal to "NONE", no file is read for initializations at - all. + is equal to "NONE", no file is read for GUI initializations at + all. |gui-init| Exception: Reading the system-wide menu file is always done. {not in Vi} diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt --- a/runtime/doc/todo.txt +++ b/runtime/doc/todo.txt @@ -1,4 +1,4 @@ -*todo.txt* For Vim version 7.0aa. Last change: 2004 Dec 27 +*todo.txt* For Vim version 7.0aa. Last change: 2004 Dec 29 VIM REFERENCE MANUAL by Bram Moolenaar @@ -30,48 +30,37 @@ be worked on, but only if you sponsor Vi *known-bugs* -------------------- Known bugs and current work ----------------------- -Python 2.4 breaks uploading with rsync, 2.3 is OK. - -- Use a builtin grep command for ":grep"? Makes it possible to add the - column number. - Patch from Yegappan Lakshmanan, Nov 4. -Don't expand wildcards in pattern (first arg) -completion for all files after first arg. -Use a buffer to load the file, so that gzip files can be searched and long -lines work. - -Patch for mch_FullName() also in Vim 6.3? os_mswin.c +Go through patches from Martin Dalecki. /tmp/dalecki/README -Win32: "gvim -V100" should use dialog with scrollbar. Using -gui_mch_dialog() would be good, but need to move display_errors() to after -creating the window, so that s_hwnd is valid. -How to add a scrollbar to the dialog? - -Win32: tearoff menu window should have a scrollbar when it's taller than the -screen. +Awaiting response: +- Patch for mch_FullName() also in Vim 6.3? os_mswin.c +- Win32: "gvim -V100" should use dialog with scrollbar. Using + gui_mch_dialog() would be good, but need to move display_errors() to after + creating the window, so that s_hwnd is valid. + How to add a scrollbar to the dialog? +- Win32: tearoff menu window should have a scrollbar when it's taller than + the screen. +- Included NetBeans patches (Gordon Prieur, Oct 20) + See two messages for list of changed files. Additionally: + doc/eval.txt + Docs for message E680. + Docs for ":nbkey". + Asked Gordon to send the differences again, some parts apparently are + missing. +- Browsefilter support for KDE. (Dan Sharp, 2004 July) +- Better configure check for KDE include files from Dan Sharp. -Included NetBeans patches (Gordon Prieur, Oct 20) - See two messages for list of changed files. Additionally: - doc/eval.txt - Docs for message E680. - Docs for ":nbkey". - Asked Gordon to send the differences again, some parts apparently are - missing. PLANNED FOR VERSION 7.0: -- Drop the kvim support? There is no maintenance and "yzis" is supposed to - replace it. -- In the kvim/KDE source files fix the formatting. -- KDE version is called "kvim". Make it "gvim", like the others? -- Better configure check for KDE include files from Dan Sharp. -- KDE GUI Input method patch. (Yasuhiro Matsumoto) (upd. Oct 25 2004) - -After including patches: - For string variables, use length instead of NUL termination? + can include NUL characters - setline() will have problems with NL vs NUL. -- new DATA TYPES: lists, dictionaries and function references. +- new DATA TYPES: + - None? (or use empty string?) + - list + - dictionary + - function reference Check old patch from Robert Webb for array support. Add type checking? See ~/vim/ideas.txt. - Add SPELLCHECKER, with easy to add support for many languages. @@ -427,8 +416,9 @@ 9 Can't paste a Visual selection from 7 DND doesn't work with KDE (also with GTK 1). KDE GUI known bugs: -- The default font is ugly. bold text isn't displayed correctly. - (bold characters are half the width of normal characters) +- There is no active maintenance and "yzis" is supposed to replace it. +- With the default 'guifont' value bold text differs in size from normal + text, causing the display to be messed up. - Error messages when starting up. The "tip of the day" box is empty. - Encoding of menu items needs to be converted. (Yasuhiro Matsumoto) diff --git a/runtime/doc/usr_05.txt b/runtime/doc/usr_05.txt --- a/runtime/doc/usr_05.txt +++ b/runtime/doc/usr_05.txt @@ -1,4 +1,4 @@ -*usr_05.txt* For Vim version 7.0aa. Last change: 2004 Aug 27 +*usr_05.txt* For Vim version 7.0aa. Last change: 2004 Dec 29 VIM USER MANUAL - by Bram Moolenaar @@ -150,12 +150,11 @@ it worked before Vim 5.0. Otherwise the will not need it. > - vnoremap p :let current_reg = @"gvs=current_reg + vnoremap _g y:exe "grep /" . escape(@", '\\/') . "/ *.c *.h" -This is a complicated mapping. It will not be explained how it works here. -What it does is to make "p" in Visual mode overwrite the selected text with -the previously yanked text. You can see that mappings can be used to do quite -complicated things. Still, it is just a sequence of commands that are +This mapping yanks the visually selected text and searches for it in C files. +This is a complicated mapping. You can see that mappings can be used to do +quite complicated things. Still, it is just a sequence of commands that are executed like you typed them. > diff --git a/runtime/doc/usr_12.txt b/runtime/doc/usr_12.txt --- a/runtime/doc/usr_12.txt +++ b/runtime/doc/usr_12.txt @@ -1,4 +1,4 @@ -*usr_12.txt* For Vim version 7.0aa. Last change: 2004 May 01 +*usr_12.txt* For Vim version 7.0aa. Last change: 2004 Dec 29 VIM USER MANUAL - by Bram Moolenaar @@ -345,7 +345,7 @@ program files, for example, enter the fo This causes Vim to search for the string "error_string" in all the specified files (*.c). The editor will now open the first file where a match is found and position the cursor on the first matching line. To go to the next -matching line (no matter in what it is file), use the ":cnext" command. To go +matching line (no matter in what file it is), use the ":cnext" command. To go to the previous match, use the ":cprev" command. Use ":clist" to see all the matches and where they are. The ":grep" command uses the external commands grep (on Unix) or findstr diff --git a/runtime/doc/version7.txt b/runtime/doc/version7.txt --- a/runtime/doc/version7.txt +++ b/runtime/doc/version7.txt @@ -1,4 +1,4 @@ -*version7.txt* For Vim version 7.0aa. Last change: 2004 Dec 24 +*version7.txt* For Vim version 7.0aa. Last change: 2004 Dec 28 VIM REFERENCE MANUAL by Bram Moolenaar @@ -20,6 +20,7 @@ NEW FEATURES |new-7| New data types |new-data-types| KDE support |new-KDE| Translated manual pages |new-manpage-trans| +Internal grep |new-vimgrep| Various new items |new-items-7| IMPROVEMENTS |improvements-7| @@ -133,6 +134,16 @@ Italian (translated by Antonio Colombo). The Unix Makefile installs the Italian manual pages in .../man/it/man1/. +Internal grep *new-vimgrep* +------------- + +The ":vimgrep" command can be used to search for a pattern in a list of files. +This is like the ":grep" command, but no external program is used. Besides +better portability, handling of different file encodings and using multi-line +patterns, this also allows grepping in compressed and remote files. +|:vimgrep|. + + Various new items *new-items-7* ----------------- diff --git a/src/eval.c b/src/eval.c --- a/src/eval.c +++ b/src/eval.c @@ -3427,25 +3427,12 @@ find_buffer(avar) VAR avar; { buf_T *buf = NULL; - char_u *name; if (avar->var_type == VAR_NUMBER) buf = buflist_findnr((int)avar->var_val.var_number); else if (avar->var_val.var_string != NULL) { - /* First make the name into a full path name */ - name = FullName_save(avar->var_val.var_string, -#ifdef UNIX - TRUE /* force expansion, get rid of symbolic links */ -#else - FALSE -#endif - ); - if (name != NULL) - { - buf = buflist_findname(name); - vim_free(name); - } + buf = buflist_findname_exp(avar->var_val.var_string); if (buf == NULL) { /* No full path name match, try a match with a URL or a "nofile" diff --git a/src/main.c b/src/main.c --- a/src/main.c +++ b/src/main.c @@ -141,7 +141,8 @@ main int full_path = FALSE; #endif #ifdef FEAT_CLIENTSERVER - char_u *serverStr = NULL; + char_u *serverStr = NULL; /* remote server command */ + char_u *serverStrEnc = NULL; /* encoding of serverStr */ char_u *serverName_arg = NULL; /* cmdline arg for server name */ int serverArg = FALSE; /* TRUE when argument for a server */ char_u *servername = NULL; /* allocated name for our server */ @@ -378,10 +379,16 @@ main /* * When a command server argument was found, execute it. This may - * exit Vim when it was successful. + * exit Vim when it was successful. Otherwise it's executed further + * on. Remember the encoding used here in "serverStrEnc". */ if (serverArg) + { cmdsrv_main(&argc, argv, serverName_arg, &serverStr); +# ifdef FEAT_MBYTE + serverStrEnc = vim_strsave(p_enc); +# endif + } /* If we're still running, get the name to register ourselves. * On Win32 can register right now, for X11 need to setup the @@ -1662,7 +1669,10 @@ scripterror: * else we would have exited above). */ if (serverStr != NULL) - server_to_input_buf(serverStr); + { + server_to_input_buf(serverConvert(serverStrEnc, serverStr, &p)); + vim_free(p); + } #endif /* diff --git a/src/memline.c b/src/memline.c --- a/src/memline.c +++ b/src/memline.c @@ -425,7 +425,8 @@ ml_setname(buf) { if (*dirp == NUL) /* tried all directories, fail */ break; - fname = findswapname(buf, &dirp, mfp->mf_fname); /* alloc's fname */ + fname = findswapname(buf, &dirp, mfp->mf_fname); + /* alloc's fname */ if (fname == NULL) /* no file name found for this dir */ continue; @@ -529,7 +530,7 @@ ml_open_file(buf) /* There is a small chance that between chosing the swap file name and * creating it, another Vim creates the file. In that case the * creation will fail and we will use another directory. */ - fname = findswapname(buf, &dirp, NULL); /* allocates fname */ + fname = findswapname(buf, &dirp, NULL); /* allocates fname */ if (fname == NULL) continue; if (mf_open_file(mfp, fname) == OK) /* consumes fname! */ @@ -3731,7 +3732,8 @@ findswapname(buf, dirp, old_fname) * viewing a help file or when the path of the file is different * (happens when all .swp files are in one directory). */ - if (!recoverymode && buf->b_fname != NULL && !buf->b_help) + if (!recoverymode && buf->b_fname != NULL + && !buf->b_help && !(buf->b_flags & BF_DUMMY)) { int fd; struct block0 b0; diff --git a/src/proto/quickfix.pro b/src/proto/quickfix.pro --- a/src/proto/quickfix.pro +++ b/src/proto/quickfix.pro @@ -13,7 +13,7 @@ int bt_nofile __ARGS((buf_T *buf)); int bt_dontwrite __ARGS((buf_T *buf)); int bt_dontwrite_msg __ARGS((buf_T *buf)); int buf_hide __ARGS((buf_T *buf)); -int grep_internal __ARGS((exarg_T *eap)); +int grep_internal __ARGS((cmdidx_T cmdidx)); void ex_make __ARGS((exarg_T *eap)); void ex_cc __ARGS((exarg_T *eap)); void ex_cnext __ARGS((exarg_T *eap));