Patch 8.0.0560
Problem:    :windo allows for ! but it's not supported.
Solution:   Disallow passing !. (Hirohito Higashi)
Files:      src/ex_cmds.h


diff --git a/src/tag.c b/src/tag.c
index e2795b8..d6d1df2 100644
--- a/src/tag.c
+++ b/src/tag.c
@@ -2355,18 +2355,19 @@ find_tags(
                }
                else
                {
-#define TAG_SEP 0x01
+#define TAG_SEP 0x02
                    size_t tag_fname_len = STRLEN(tag_fname);
 #ifdef FEAT_EMACS_TAGS
                    size_t ebuf_len = 0;
 #endif
 
                    /* Save the tag in a buffer.
-                    * Use 0x01 to separate fields (Can't use NUL, because the
-                    * hash key is terminated by NUL).
-                    * Emacs tag: <mtt><tag_fname><0x01><ebuf><0x01><lbuf><NUL>
-                    * other tag: <mtt><tag_fname><0x01><0x01><lbuf><NUL>
-                    * without Emacs tags: <mtt><tag_fname><0x01><lbuf><NUL>
+                    * Use 0x02 to separate fields (Can't use NUL because the
+                    * hash key is terminated by NUL, or Ctrl_A because that is
+                    * part of some Emacs tag files -- see parse_tag_line).
+                    * Emacs tag: <mtt><tag_fname><0x02><ebuf><0x02><lbuf><NUL>
+                    * other tag: <mtt><tag_fname><0x02><0x02><lbuf><NUL>
+                    * without Emacs tags: <mtt><tag_fname><0x02><lbuf><NUL>
                     * Here <mtt> is the "mtt" value plus 1 to avoid NUL.
                     */
                    len = (int)tag_fname_len + (int)STRLEN(lbuf) + 3;
diff --git a/src/testdir/test_taglist.vim b/src/testdir/test_taglist.vim
index b89b25e..2d1557e 100644
--- a/src/testdir/test_taglist.vim
+++ b/src/testdir/test_taglist.vim
@@ -19,3 +19,40 @@ func Test_taglist()
   bwipe
 endfunc
 
+func Test_taglist_native_etags()
+  if !has('emacs_tags')
+    return
+  endif
+  call writefile([
+       \ "\x0c",
+       \ "src/os_unix.c,13491",
+       \ "set_signals(\x7f1335,32699",
+       \ "reset_signals(\x7f1407,34136",
+       \ ], 'Xtags')
+
+  set tags=Xtags
+
+  call assert_equal([['set_signals', '1335,32699'], ['reset_signals', 
'1407,34136']],
+       \ map(taglist('set_signals'), {i, v -> [v.name, v.cmd]}))
+
+  call delete('Xtags')
+endfunc
+
+func Test_taglist_ctags_etags()
+  if !has('emacs_tags')
+    return
+  endif

-- 
I'd like to meet the man who invented sex and see what he's working on now.

 /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net   \\\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\  an exciting new programming language -- http://www.Zimbu.org        ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Raspunde prin e-mail lui