]> granicus.if.org Git - vim/commitdiff
Added the undofile() function. Updated runtime files.
authorBram Moolenaar <Bram@vim.org>
Sun, 30 May 2010 16:30:36 +0000 (18:30 +0200)
committerBram Moolenaar <Bram@vim.org>
Sun, 30 May 2010 16:30:36 +0000 (18:30 +0200)
15 files changed:
runtime/compiler/gcc.vim
runtime/doc/eval.txt
runtime/doc/mbyte.txt
runtime/doc/message.txt
runtime/doc/os_os2.txt
runtime/doc/print.txt
runtime/doc/syntax.txt
runtime/doc/tags
runtime/doc/todo.txt
runtime/doc/undo.txt
runtime/doc/workshop.txt
runtime/syntax/yaml.vim
src/eval.c
src/proto/undo.pro
src/undo.c

index 75c596c7ef4a2f3d3077e0ddc0ef347e8042c5c0..776bdee2928d4fd752d2d14eb6b4298814052873 100644 (file)
@@ -1,7 +1,7 @@
 " Vim compiler file
 " Compiler:         GNU C Compiler
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2009-05-01
+" Latest Revision:  2010-05-30
 
 if exists("current_compiler")
   finish
@@ -18,7 +18,11 @@ CompilerSet errorformat=
       \\"%f\"%*\\D%l:\ %m,
       \%-G%f:%l:\ %trror:\ (Each\ undeclared\ identifier\ is\ reported\ only\ once,
       \%-G%f:%l:\ %trror:\ for\ each\ function\ it\ appears\ in.),
+      \%f:%l:%c:\ %terror:\ %m,
+      \%f:%l:%c:\ %tarning:\ %m,
       \%f:%l:%c:\ %m,
+      \%f:%l:\ %terror:\ %m,
+      \%f:%l:\ %tarning:\ %m,
       \%f:%l:\ %m,
       \\"%f\"\\,\ line\ %l%*\\D%c%*[^\ ]\ %m,
       \%D%*\\a[%*\\d]:\ Entering\ directory\ `%f',
index 08b79bb784c4ff314af94033b27743bc2872593f..4d983bfba3df75e81d907923347ad79c0eea373e 100644 (file)
@@ -1943,6 +1943,7 @@ tr( {src}, {fromstr}, {tostr})    String  translate chars of {src} in {fromstr}
                                        to chars in {tostr}
 trunc( {expr}                  Float   truncate Float {expr}
 type( {name})                  Number  type of variable {name}
+undofile( {name})              String  undo file name for {name}
 values( {dict})                        List    values in {dict}
 virtcol( {expr})               Number  screen column of cursor or mark
 visualmode( [expr])            String  last visual mode used
@@ -5767,6 +5768,15 @@ type({expr})     The result is a Number, depending on the type of {expr}:
                        :if type(myvar) == type({})
                        :if type(myvar) == type(0.0)
 
+undofile({name})                                       *undofile()*
+               Return the name of the undo file that would be used for a file
+               with name {name} when writing.  This uses the 'undodir'
+               option, finding directories that exist.  It does not check if
+               the undo file exist.
+               Useful in combination with |:wundo| and |:rundo|.
+               When compiled without the +persistent_undo option this always
+               returns an empty string.
+
 values({dict})                                         *values()*
                Return a |List| with all the values of {dict}.  The |List| is
                in arbitrary order.
index 13dfc5973b0aded504c9f2d186ae181909b3bbb9..96b5b4dd0ede140a1666c16d094013fe8434dd4d 100644 (file)
@@ -775,7 +775,7 @@ is suitable for complex input, such as CJK.
   For Chinese, there's a great XIM server named "xcin", you can input both
   Traditional and Simplified Chinese characters.  And it can accept other
   locale if you make a correct input table.  Xcin can be found at:
-  http://xcin.linux.org.tw/
+  http://cle.linux.org.tw/xcin/
   Others are scim: http://scim.freedesktop.org/ and fcitx:
   http://www.fcitx.org/
 
@@ -963,10 +963,10 @@ WHAT IS GLOBAL IME                                        *global-ime*
     language version of Global IME at same place.
 
     - Global IME detailed information.
-       http://www.microsoft.com/windows/ie/features/ime.asp
+       http://search.microsoft.com/results.aspx?q=global+ime
 
     - Active Input Method Manager (Global IME)
-       http://msdn.microsoft.com/workshop/misc/AIMM/aimm.asp
+       http://msdn.microsoft.com/en-us/library/aa741221(v=VS.85).aspx
 
     Support for Global IME is an experimental feature.
 
index 10268154058cc9e715f94ef16868755868ca709a..6bf8580fed43234309880fa91ee751afea03d62b 100644 (file)
@@ -585,6 +585,7 @@ when using ":w"), therefore Vim requires using a !  after the command, e.g.:
 Messages like this appear when starting up.  This is not a Vim problem, your
 X11 configuration is wrong.  You can find a hint on how to solve this here:
 http://groups.yahoo.com/group/solarisonintel/message/12179.
+[this URL is no longer valid]
 
                                                        *W10*  >
   Warning: Changing a readonly file
index b262d6d1028b29446f014affc15cc0f2feba67d2..a6c0cf3a984cb662ed987dbc6c8f7889f8c68ae1 100644 (file)
@@ -183,7 +183,8 @@ anyway you need an additional tool which gives you access to the clipboard
 from within a vio application.  The freeware package clipbrd.zip by Stefan
 Gruendel can be used for this purpose.  You might download the package
 including precompiled binaries and all sources from:
-       http://www.stellarcom.org/vim/index.html
+       http://www.os2site.com/sw/util/clipboard/index.html
+       http://download.uni-hd.de/ftp/pub/os2/pmtools/
 
 Installation of this package is straight forward: just put the two executables
 that come with this package into a directory within your PATH for Vim should
index 49b7dfc02d1a8c3ab4d33495b601e1e2bfe3cb64..73a3182a11f7ef187dc355004d282b6919f068d1 100644 (file)
@@ -490,7 +490,7 @@ Traditional Chinese fonts available at:
 
 You can find descriptions of the various fonts in the read me file at
 
-  http://examples.oreilly.com/cjkvinfo/adobe/00README
+  http://examples.oreilly.de/english_examples/cjkvinfo/adobe/00README
 
 Please read your printer documentation on how to install new fonts.
 
index 229fdd602bc3b4b2877edba9be4e2ea56b6a6921..109276f40d5dccd47abe81d8ac060048062e65f5 100644 (file)
@@ -828,7 +828,8 @@ startup vimrc: >
 DESKTOP                                           *desktop.vim* *ft-desktop-syntax*
 
 Primary goal of this syntax file is to highlight .desktop and .directory files
-according to freedesktop.org standard: http://pdx.freedesktop.org/Standards/
+according to freedesktop.org standard:
+http://standards.freedesktop.org/desktop-entry-spec/latest/
 But actually almost none implements this standard fully.  Thus it will
 highlight all Unix ini files.  But you can force strict highlighting according
 to standard by placing this in your vimrc file: >
index 66cc0332dd0cd1a133f2583fa1d0bbe3bdd942ab..7ecb985c89ce5dd841df7e9fc2c925a92deb4a6e 100644 (file)
@@ -7867,6 +7867,7 @@ undo-tree undo.txt        /*undo-tree*
 undo-two-ways  undo.txt        /*undo-two-ways*
 undo.txt       undo.txt        /*undo.txt*
 undo_ftplugin  usr_41.txt      /*undo_ftplugin*
+undofile()     eval.txt        /*undofile()*
 unicode        mbyte.txt       /*unicode*
 unix   os_unix.txt     /*unix*
 unlisted-buffer        windows.txt     /*unlisted-buffer*
index f79148f7aa026f75bc8b4052f73585663a7887cb..169d0fb6b1ccacebd5528efcf2cde7fc4701d4fb 100644 (file)
@@ -30,10 +30,6 @@ be worked on, but only if you sponsor Vim development.  See |sponsor|.
                                                        *known-bugs*
 -------------------- Known bugs and current work -----------------------
 
-Fixes for broken URLs:
-    Benjamin Haskell, 2010 May 25
-    Christian Brabandt, 2010 May 26, two messages
-
 Cursor positioning wrong with 0x200e character. (John Becket, 2010 May 6)
 
 E315 when trying to change a file in FileChangedRO autocommand event.
@@ -1094,7 +1090,6 @@ Vim 7.3:
    Ron's version: http://dev.ronware.org/p/vim/finfo?name=gvim.nsi
 - Persistent undo bugs / fixes:
     - Need to check all values for evil manipulation.
-    - Add undofile(name): get undo file name for buffer "name".
 - patch for unused functions. (Dominique Pelle, 2010 May 29)
 - Also crypt the undo file.
 - Also crypt the swap file, each block separately.  Change mf_write() and
index a7ae1736c328b0002bf5c163e0d614d12cf9a15a..4dbe69394f02088d1efdbad1e2aa1e0b4b01423a 100644 (file)
@@ -243,12 +243,26 @@ respectively:
 You can use these in autocommands to explicitly specify the name of the
 history file.  E.g.: >
 
-       au BufReadPost * rundo %:h/UNDO/%:t
-       au BufWritePost * wundo %:h/UNDO/%:t
+       au BufReadPost * call ReadUndo()
+       au BufWritePost * call WriteUndo()
+       func ReadUndo()
+         if filereadable(expand('%:h'). '/UNDO/' . expand('%:t'))
+           rundo %:h/UNDO/%:t
+         endif
+       endfunc
+       func WriteUndo()
+         let dirname = expand('%:h') . '/UNDO'
+         if !isdirectory(dirname)
+           call mkdir(dirname)
+         endif
+         wundo %:h/UNDO/%:t
+       endfunc
 
 You should keep 'undofile' off, otherwise you end up with two undo files for
 every write.
-Note: I did not verify this always works!
+
+You can use the |undofile()| function to find out the file name that Vim would
+use.
 
 Note that while reading/writing files and 'undofile' is set most errors will
 be silent, unless 'verbose' is set.  With :wundo and :rundo you will get more
index e4cc91a47a9d3350d533032aa85a30b406841b63..ae676de2be18794b9200b8be24656e711d872a77 100644 (file)
@@ -89,10 +89,10 @@ Without it the toolbar and signs will be disabled.
 
 The XPM library is provide by Arnaud Le Hors of the French National Institute
 for Research in Computer Science and Control.  It can be downloaded from
-http://koala.ilog.fr/ftp/pub/xpm.  The current release, as of this writing, is
-xpm-3.4k-solaris.tgz, which is a gzip'ed tar file.  If you create the directory
-/usr/local/xpm and untar the file there you can use the uncommented lines in
-the Makefile without changing them.  If you use another xpm directory you will
-need to change the XPM_DIR in src/Makefile.
+http://cgit.freedesktop.org/xorg/lib/libXpm.  The current release, as of this
+writing, is xpm-3.4k-solaris.tgz, which is a gzip'ed tar file.  If you create
+the directory /usr/local/xpm and untar the file there you can use the
+uncommented lines in the Makefile without changing them.  If you use another
+xpm directory you will need to change the XPM_DIR in src/Makefile.
 
  vim:tw=78:ts=8:ft=help:norl:
index 9ebab70689ba2452341785c39f5b18de237b7457..4e93d67c7ae6c9af721668d997f7930fa1293ca0 100644 (file)
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         YAML (YAML Ain't Markup Language)
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2010-05-30
 
 if exists("b:current_syntax")
   finish
@@ -17,7 +17,7 @@ syn region  yamlComment         display oneline start='\%(^\|\s\)#' end='$'
 
 syn match   yamlNodeProperty    '!\%(![^\\^%     ]\+\|[^!][^:/   ]*\)'
 
-syn match   yamlAnchor          '&.\+'
+syn match   yamlAnchor          '&[^ \t]\+'
 
 syn match   yamlAlias           '\*.\+'
 
index 06615ae9063a7cfe53b26165cb1c36a6b0f91908..865dc3a7dabe1f9a77e984fbda949c048915e25c 100644 (file)
@@ -731,6 +731,7 @@ static void f_tr __ARGS((typval_T *argvars, typval_T *rettv));
 static void f_trunc __ARGS((typval_T *argvars, typval_T *rettv));
 #endif
 static void f_type __ARGS((typval_T *argvars, typval_T *rettv));
+static void f_undofile __ARGS((typval_T *argvars, typval_T *rettv));
 static void f_values __ARGS((typval_T *argvars, typval_T *rettv));
 static void f_virtcol __ARGS((typval_T *argvars, typval_T *rettv));
 static void f_visualmode __ARGS((typval_T *argvars, typval_T *rettv));
@@ -7825,6 +7826,7 @@ static struct fst
     {"trunc",          1, 1, f_trunc},
 #endif
     {"type",           1, 1, f_type},
+    {"undofile",       1, 1, f_undofile},
     {"values",         1, 1, f_values},
     {"virtcol",                1, 1, f_virtcol},
     {"visualmode",     0, 1, f_visualmode},
@@ -17583,6 +17585,23 @@ f_type(argvars, rettv)
     rettv->vval.v_number = n;
 }
 
+/*
+ * "undofile(name)" function
+ */
+    static void
+f_undofile(argvars, rettv)
+    typval_T   *argvars;
+    typval_T   *rettv;
+{
+    rettv->v_type = VAR_STRING;
+#ifdef FEAT_PERSISTENT_UNDO
+    rettv->vval.v_string = u_get_undo_file_name(get_tv_string(&argvars[0]),
+                                                                      FALSE);
+#else
+    rettv->vval.v_string = NULL;
+#endif
+}
+
 /*
  * "values(dict)" function
  */
index 90e11d2bb14f5f8cb23c799099672feedd87d0df..cea7d49c5180e6368b02b0a807ad7d518e4c69ad 100644 (file)
@@ -7,8 +7,9 @@ int u_inssub __ARGS((linenr_T lnum));
 int u_savedel __ARGS((linenr_T lnum, long nlines));
 int undo_allowed __ARGS((void));
 void u_compute_hash __ARGS((char_u *hash));
-void u_read_undo __ARGS((char_u *name, char_u *hash));
+char_u *u_get_undo_file_name __ARGS((char_u *buf_ffname, int reading));
 void u_write_undo __ARGS((char_u *name, int forceit, buf_T *buf, char_u *hash));
+void u_read_undo __ARGS((char_u *name, char_u *hash));
 void u_undo __ARGS((int count));
 void u_redo __ARGS((int count));
 void undo_time __ARGS((long step, int sec, int absolute));
index 88c030565f30bc4892a85e209f95f5c06ce5ed61..34140f2a88f7942b74c851821365e7859e58361a 100644 (file)
@@ -100,7 +100,6 @@ static void u_freebranch __ARGS((buf_T *buf, u_header_T *uhp, u_header_T **uhpp)
 static void u_freeentries __ARGS((buf_T *buf, u_header_T *uhp, u_header_T **uhpp));
 static void u_freeentry __ARGS((u_entry_T *, long));
 #ifdef FEAT_PERSISTENT_UNDO
-static char_u *u_get_undo_file_name __ARGS((char_u *, int reading));
 static void corruption_error __ARGS((char *msg, char_u *file_name));
 static void u_free_uhp __ARGS((u_header_T *uhp));
 static int serialize_uep __ARGS((u_entry_T *uep, FILE *fp));
@@ -698,7 +697,7 @@ u_compute_hash(hash)
  * When "reading" is FALSE use the first name where the directory exists.
  * Returns NULL when there is no place to write or no file to read.
  */
-    static char_u *
+    char_u *
 u_get_undo_file_name(buf_ffname, reading)
     char_u     *buf_ffname;
     int                reading;