changeset 231:8eec9649b7a2 v7.0064

updated for version 7.0064
author vimboss
date Fri, 25 Mar 2005 21:58:17 +0000
parents 9281a51ca7a2
children 41e7594cac8b
files runtime/doc/os_unix.txt runtime/doc/quickfix.txt runtime/doc/todo.txt runtime/doc/version7.txt runtime/doc/vimdiff.1 runtime/plugin/gzip.vim src/eval.c src/installml.sh src/po/ko.po src/proto/quickfix.pro
diffstat 10 files changed, 140 insertions(+), 59 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/doc/os_unix.txt
+++ b/runtime/doc/os_unix.txt
@@ -1,4 +1,4 @@
-*os_unix.txt*   For Vim version 7.0aa.  Last change: 2003 Mar 15
+*os_unix.txt*   For Vim version 7.0aa.  Last change: 2005 Mar 25
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -54,7 +54,7 @@ supports colors, but "T_Co" is empty or 
 
 For real color terminals the ":highlight" command can be used.
 
-The file "tools/Vim132" is a shell script that can be used to put Vim in 132
+The file "tools/vim132" is a shell script that can be used to put Vim in 132
 column mode on a vt100 and lookalikes.
 
  vim:tw=78:ts=8:ft=help:norl:
--- a/runtime/doc/quickfix.txt
+++ b/runtime/doc/quickfix.txt
@@ -1,4 +1,4 @@
-*quickfix.txt*  For Vim version 7.0aa.  Last change: 2005 Feb 24
+*quickfix.txt*  For Vim version 7.0aa.  Last change: 2005 Mar 25
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -32,7 +32,7 @@ without having to remember all the error
 
 In Vim the quickfix commands are used more generally to find a list of
 positions in files.  For example, |:vimgrep| finds pattern matches.  You can
-use the positions in a script with the |errorlist()| function.  Thus you can
+use the positions in a script with the |getqflist()| function.  Thus you can
 do a lot more than the edit/compile/fix cycle!
 
 If you are using Manx's Aztec C compiler on the Amiga look here for how to use
@@ -609,6 +609,7 @@ Basic items
 			uses the length for the column number)
 	%*{conv}	any scanf non-assignable conversion
 	%%		the single '%' character
+	%s		search text (finds a string)
 
 The "%f" conversion depends on the current 'isfname' setting.
 
@@ -631,6 +632,13 @@ or >
 to indicate the column of the error.  This is to be used in a multi-line error
 message.  See |errorformat-javac| for a  useful example.
 
+The "%s" conversion specifies the text to search for to locate the error line.
+The text is used as a literal string.  The anchors "^" and "$" are added to
+the text to locate the error line exactly matching the search text and the
+text is prefixed with the "\V" atom to make it "very nomagic".  The "%s"
+conversion can be used to locate lines without a line number in the error
+output.  Like the output of the "grep" shell command.
+When the pattern is present the line number will not be used.
 
 Changing directory
 
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 7.0aa.  Last change: 2005 Mar 22
+*todo.txt*      For Vim version 7.0aa.  Last change: 2005 Mar 25
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -30,11 +30,9 @@ be worked on, but only if you sponsor Vi
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
-Problem with hang in setmouse() -> update_mouseshape() (Froloff)
-    - check for termcap_active in option.c
-    - add gui.starting in misc2.c
+Check that xterm function keys XHOME and ZHOME do work.
 
-":e" causes a scroll (in spell.c).
+Wildcard expansion failure: ":w /tmp/$$.`echo test`" (Adri Verhoef)
 
 Mac unicode patch (Da Woon Jung):
 - selecting proportional font breaks display
@@ -51,22 +49,24 @@ autoload:
     helpfile doc/myscript.txt
   For the "helpfile" item ":helptags" is run.
 
+Win32: Balloon text can't contain line break.
+
 Awaiting response:
 -   Patch for mch_FullName() also in Vim 6.3?  os_mswin.c
 -   Win32: tearoff menu window should have a scrollbar when it's taller than
     the screen.
 
-When on a line with a single character, "A CTRL-O <Home>" puts cursor back
-after end-of-line. (Peter Winters)  Make "o_eol" global and reset it when
-moving cursor?
-
 
 PLANNED FOR VERSION 7.0:
 
 -   Add SPELLCHECKER, with support for many languages.
     - Use "engspchk" from Charles Campbell for ideas.
+    - Alternative: use MySpell library (in OpenOffice.org).
+	http://spellchecker.mozdev.org/source.html
     - Alternative: use aspell library.
-    - Implement 's addition.
+    - Dump pre-parsed spell structs in a file?
+    - More complicated: Regions with different languages?  E.g. comments in
+      English, strings in German (po file).
     - Commands required:
 	add word to private dict: wrong and OK (in popup menu for evim)
 	    :spell good <word>	    zg
@@ -86,6 +86,7 @@ PLANNED FOR VERSION 7.0:
       Add ":syntax contains {pattern} add=@Spell" command?  A bit like ":syn
       cluster" but change the contains list directly for matching syntax
       items.
+    - Install spell files with src/main.aap.
     Alternatives using ispell or aspell:
     8   Add spell checking.  Use "ispell -a" somehow.
 	~/vim/patches/wm_vim-5_4d.zip  can be used as an example (includes
@@ -2624,8 +2625,13 @@ Incsearch:
 Searching:
 7   Add "g/" and "gb" to search for a pattern in the Visually selected text?
     "g?" is already used for rot13.
-8   Add a mechanism for recursiveness: "\(([^()]*\@@[^()]*)\)\@r".  \@@ stands
-    for "go recursive here" and \@r marks the recursive atom.
+8   Add a mechanism for recursiveness: "\@(([^()]*\@g[^()]*)\)".  \@g stands
+    for "go recursive here" and \@( \) marks the recursive part.
+    Perl does it this way:
+	    $paren = qr/ \(( [^()] | (??{ $paren }) )* \) /x;
+    Here $paren is evaluated when it's encountered.  This is like a regexp
+    inside a regexp.  In the above terms it would be:
+	    \@((\([^()]\|\@g\)*)\)
 8   Add an item for a big character range, so that one can search for a
     chinese character: \z[234-1234]  or \z[XX-YY] or \z[0x23-0x234].
 7   Add an item stack to allow matching ().  One side is "push X on
@@ -3394,6 +3400,8 @@ 7   Tighter integration with xxd to edit
     '}' as the start of a section (e.g. one shiftwidth to the right).
 7   Allow using Vim in a pipe: "ls | vim -u xxx.vim - | yyy".  Only needs
     implementing ":w" to stdout in the buffer that was read from stdin.
+    Perhaps writing to stdout will work, since stderr is used for the terminal
+    I/O.
 8   Allow opening an unnamed buffer with ":e !cmd" and ":sp !cmd".  Vile can
     do it.
 -   Add commands like ]] and [[ that do not include the line jumped to.
--- a/runtime/doc/version7.txt
+++ b/runtime/doc/version7.txt
@@ -1,4 +1,4 @@
-*version7.txt*  For Vim version 7.0aa.  Last change: 2005 Mar 20
+*version7.txt*  For Vim version 7.0aa.  Last change: 2005 Mar 24
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -197,7 +197,7 @@ patterns, this also allows grepping in c
 |:vimgrep|.
 
 If you want to use the search results in a script you can use the
-|errorlist()| function.
+|getqflist()| function.
 
 
 POSIX compatibility					*new-posix*
@@ -323,7 +323,7 @@ New functions: ~
 |count()|		count nr of times a value is in a List or Dictionary
 |deepcopy()|		make a full copy of a List or Dictionary
 |empty()|		check if List or Dictionary is empty
-|errorlist()|		list of quickfix errors
+|getqflist()|		list of quickfix errors
 |extend()|		append one List to another or add items from one
 			Dictionary to another
 |filter()|		remove selected items from a List or Dictionary
@@ -351,6 +351,7 @@ New functions: ~
 |remove()|		remove one or more items from a List or Dictionary
 |repeat()| 		Repeat "expr" "count" times.  (Christophe Poucet)
 |reverse()|		reverse the order of a List
+|setqflist()|		create a quickfix list
 |sort()|		sort a List
 |split()|		split a String into a List
 |string()|		String representation of a List or Dictionary
@@ -1013,4 +1014,7 @@ Don't move the cursor if it's somewhere 
 When 'encoding' is "sjis" inserting CTRL-V u d800 a few times causes a crash.
 Don't insert a DBCS character with a NUL second byte.
 
+In Insert mode CTRL-O <Home> didn't move the cursor.  Made "ins_at_eol" global
+and reset it in nv_home().
+
  vim:tw=78:ts=8:ft=help:norl:
--- a/runtime/doc/vimdiff.1
+++ b/runtime/doc/vimdiff.1
@@ -32,8 +32,8 @@ The 'foldmethod' option is set to "diff"
 changes in a fold.  'foldcolumn' is set to two to make it easy to spot the
 folds and open or close them.
 .SH OPTIONS
-Vertical splits are used to align the lines, as if the "-O" argument was used.
-To use horizontal splits intead, use the "-o" argument.
+Vertical splits are used to align the lines, as if the "\-O" argument was used.
+To use horizontal splits intead, use the "\-o" argument.
 .PP
 For all other arguments see vim(1).
 .SH SEE ALSO
--- a/runtime/plugin/gzip.vim
+++ b/runtime/plugin/gzip.vim
@@ -1,6 +1,6 @@
 " Vim plugin for editing compressed files.
 " Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last Change: 2004 Jul 30
+" Last Change: 2005 Mar 24
 
 " Exit quickly when:
 " - this plugin was already loaded
@@ -118,7 +118,7 @@ fun s:write(cmd)
   " don't do anything if the cmd is not supported
   if s:check(a:cmd)
     " Rename the file before compressing it.
-    let nm = expand("<afile>")
+    let nm = resolve(expand("<afile>"))
     let nmt = s:tempname(nm)
     if rename(nm, nmt) == 0
       call system(a:cmd . " " . nmt)
--- a/src/eval.c
+++ b/src/eval.c
@@ -428,7 +428,6 @@ static void f_did_filetype __ARGS((typva
 static void f_diff_filler __ARGS((typval_T *argvars, typval_T *rettv));
 static void f_diff_hlID __ARGS((typval_T *argvars, typval_T *rettv));
 static void f_empty __ARGS((typval_T *argvars, typval_T *rettv));
-static void f_errorlist __ARGS((typval_T *argvars, typval_T *rettv));
 static void f_escape __ARGS((typval_T *argvars, typval_T *rettv));
 static void f_eval __ARGS((typval_T *argvars, typval_T *rettv));
 static void f_eventhandler __ARGS((typval_T *argvars, typval_T *rettv));
@@ -462,6 +461,7 @@ static void f_getfsize __ARGS((typval_T 
 static void f_getftime __ARGS((typval_T *argvars, typval_T *rettv));
 static void f_getftype __ARGS((typval_T *argvars, typval_T *rettv));
 static void f_getline __ARGS((typval_T *argvars, typval_T *rettv));
+static void f_getqflist __ARGS((typval_T *argvars, typval_T *rettv));
 static void f_getreg __ARGS((typval_T *argvars, typval_T *rettv));
 static void f_getregtype __ARGS((typval_T *argvars, typval_T *rettv));
 static void f_getwinposx __ARGS((typval_T *argvars, typval_T *rettv));
@@ -536,6 +536,7 @@ static void f_serverlist __ARGS((typval_
 static void f_setbufvar __ARGS((typval_T *argvars, typval_T *rettv));
 static void f_setcmdpos __ARGS((typval_T *argvars, typval_T *rettv));
 static void f_setline __ARGS((typval_T *argvars, typval_T *rettv));
+static void f_setqflist __ARGS((typval_T *argvars, typval_T *rettv));
 static void f_setreg __ARGS((typval_T *argvars, typval_T *rettv));
 static void f_setwinvar __ARGS((typval_T *argvars, typval_T *rettv));
 static void f_simplify __ARGS((typval_T *argvars, typval_T *rettv));
@@ -5121,7 +5122,7 @@ list_append_tv(l, tv)
 }
 
 /*
- * Add a dictionary to a list.  Used by errorlist().
+ * Add a dictionary to a list.  Used by getqflist().
  * Return FAIL when out of memory.
  */
     int
@@ -5670,6 +5671,40 @@ dict_find(d, key, len)
 }
 
 /*
+ * Get a string item from a dictionary in allocated memory.
+ * Returns NULL if the entry doesn't exist or out of memory.
+ */
+    char_u *
+get_dict_string(d, key)
+    dict_T	*d;
+    char_u	*key;
+{
+    dictitem_T	*di;
+
+    di = dict_find(d, key, -1);
+    if (di == NULL)
+	return NULL;
+    return vim_strsave(get_tv_string(&di->di_tv));
+}
+
+/*
+ * Get a number item from a dictionary.
+ * Returns 0 if the entry doesn't exist or out of memory.
+ */
+    long
+get_dict_number(d, key)
+    dict_T	*d;
+    char_u	*key;
+{
+    dictitem_T	*di;
+
+    di = dict_find(d, key, -1);
+    if (di == NULL)
+	return 0;
+    return get_tv_number(&di->di_tv);
+}
+
+/*
  * Return an allocated string with the string representation of a Dictionary.
  * May return NULL.
  */
@@ -6078,7 +6113,6 @@ static struct fst
     {"diff_filler",	1, 1, f_diff_filler},
     {"diff_hlID",	2, 2, f_diff_hlID},
     {"empty",		1, 1, f_empty},
-    {"errorlist",	0, 0, f_errorlist},
     {"escape",		2, 2, f_escape},
     {"eval",		1, 1, f_eval},
     {"eventhandler",	0, 0, f_eventhandler},
@@ -6113,6 +6147,7 @@ static struct fst
     {"getftime",	1, 1, f_getftime},
     {"getftype",	1, 1, f_getftype},
     {"getline",		1, 2, f_getline},
+    {"getqflist",	0, 0, f_getqflist},
     {"getreg",		0, 1, f_getreg},
     {"getregtype",	0, 1, f_getregtype},
     {"getwinposx",	0, 0, f_getwinposx},
@@ -6189,6 +6224,7 @@ static struct fst
     {"setbufvar",	3, 3, f_setbufvar},
     {"setcmdpos",	1, 1, f_setcmdpos},
     {"setline",		2, 2, f_setline},
+    {"setqflist",	1, 1, f_setqflist},
     {"setreg",		2, 3, f_setreg},
     {"setwinvar",	3, 3, f_setwinvar},
     {"simplify",	1, 1, f_simplify},
@@ -7578,36 +7614,6 @@ f_empty(argvars, rettv)
 }
 
 /*
- * "errorlist()" function
- */
-/*ARGSUSED*/
-    static void
-f_errorlist(argvars, rettv)
-    typval_T	*argvars;
-    typval_T	*rettv;
-{
-#ifdef FEAT_QUICKFIX
-    list_T	*l;
-#endif
-
-    rettv->vval.v_number = FALSE;
-#ifdef FEAT_QUICKFIX
-    l = list_alloc();
-    if (l != NULL)
-    {
-	if (get_errorlist(l) != FAIL)
-	{
-	    rettv->vval.v_list = l;
-	    rettv->v_type = VAR_LIST;
-	    ++l->lv_refcount;
-	}
-	else
-	    list_free(l);
-    }
-#endif
-}
-
-/*
  * "escape({string}, {chars})" function
  */
     static void
@@ -8915,6 +8921,36 @@ f_getline(argvars, rettv)
 }
 
 /*
+ * "getqflist()" function
+ */
+/*ARGSUSED*/
+    static void
+f_getqflist(argvars, rettv)
+    typval_T	*argvars;
+    typval_T	*rettv;
+{
+#ifdef FEAT_QUICKFIX
+    list_T	*l;
+#endif
+
+    rettv->vval.v_number = FALSE;
+#ifdef FEAT_QUICKFIX
+    l = list_alloc();
+    if (l != NULL)
+    {
+	if (get_errorlist(l) != FAIL)
+	{
+	    rettv->vval.v_list = l;
+	    rettv->v_type = VAR_LIST;
+	    ++l->lv_refcount;
+	}
+	else
+	    list_free(l);
+    }
+#endif
+}
+
+/*
  * "getreg()" function
  */
     static void
@@ -12291,6 +12327,30 @@ f_setline(argvars, rettv)
 }
 
 /*
+ * "setqflist()" function
+ */
+/*ARGSUSED*/
+    static void
+f_setqflist(argvars, rettv)
+    typval_T	*argvars;
+    typval_T	*rettv;
+{
+    rettv->vval.v_number = -1;
+
+#ifdef FEAT_QUICKFIX
+    if (argvars[0].v_type != VAR_LIST)
+	EMSG(_(e_listreq));
+    else
+    {
+	list_T  *l = argvars[0].vval.v_list;
+
+	if (l != NULL && set_errorlist(l) == OK)
+	    rettv->vval.v_number = 0;
+    }
+#endif
+}
+
+/*
  * "setreg()" function
  */
     static void
--- a/src/installml.sh
+++ b/src/installml.sh
@@ -38,7 +38,7 @@ rgviewname=${14}
 gvimdiffname=${15}
 eviewname=${16}
 
-if test $what = "install" -a (-e $destdir/$vimname.1 -o -e $destdir/$vimdiffname.1 -o -e $destdir/$eviewname.1); then
+if test $what = "install" -a \( -e $destdir/$vimname.1 -o -e $destdir/$vimdiffname.1 -o -e $destdir/$eviewname.1 \); then
    if test ! -d $destdir; then
       echo creating $destdir
       ./mkinstalldirs $destdir
--- a/src/po/ko.po
+++ b/src/po/ko.po
@@ -161,8 +161,8 @@ msgid "line %ld of %ld --%d%%-- col "
 msgstr "%ld / %ld ÁÙ --%d%%-- Ä­ "
 
 #: buffer.c:2868
-msgid "[No file]"
-msgstr "[ÆÄÀÏ ¾øÀ½]"
+msgid "[No Name]"
+msgstr "[À̸§ ¾øÀ½]"
 
 #. must be a help buffer
 #: buffer.c:2908
--- a/src/proto/quickfix.pro
+++ b/src/proto/quickfix.pro
@@ -21,6 +21,7 @@ void ex_cfile __ARGS((exarg_T *eap));
 void ex_vimgrep __ARGS((exarg_T *eap));
 char_u *skip_vimgrep_pat __ARGS((char_u *p, char_u **s, int *flags));
 int get_errorlist __ARGS((list_T *list));
+int set_errorlist __ARGS((list_T *list));
 void ex_cbuffer __ARGS((exarg_T *eap));
 void ex_helpgrep __ARGS((exarg_T *eap));
 /* vim: set ft=c : */