1
0
Fork 0
mirror of git://slackware.nl/current.git synced 2025-02-15 08:50:09 +01:00
slackware-current/source/ap/vim/patches/7.3.336
Patrick J Volkerding 9664bee729 Slackware 14.0
Wed Sep 26 01:10:42 UTC 2012
Slackware 14.0 x86_64 stable is released!

We're perfectionists here at Slackware, so this release has been a long
time a-brewing.  But we think you'll agree that it was worth the wait.
Slackware 14.0 combines modern components, ease of use, and flexible
configuration... our "KISS" philosophy demands it.

The ISOs are off to be replicated, a 6 CD-ROM 32-bit set and a
dual-sided
32-bit/64-bit x86/x86_64 DVD.  Please consider supporting the Slackware
project by picking up a copy from store.slackware.com.  We're taking
pre-orders now, and offer a discount if you sign up for a subscription.

Thanks to everyone who helped make this happen.  The Slackware team, the
upstream developers, and (of course) the awesome Slackware user
community.

Have fun!  :-)
2018-05-31 22:51:55 +02:00

1100 lines
29 KiB
Text
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

To: vim_dev@googlegroups.com
Subject: Patch 7.3.336
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.336
Problem: When a tags file specifies an encoding different from 'enc' it
may hang and using a pattern doesn't work.
Solution: Convert the whole line. Continue reading the header after the
SORT tag. Add test83. (Yukihiro Nakadaira)
Files: src/tag.c, src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
src/testdir/Make_vms.mms, src/testdir/Makefile,
src/testdir/test83-tags2, src/testdir/test83-tags3,
src/testdir/test83.in, src/testdir/test83.ok
*** ../vim-7.3.335/src/tag.c 2011-04-11 21:35:03.000000000 +0200
--- src/tag.c 2011-10-12 19:51:04.000000000 +0200
***************
*** 1277,1282 ****
--- 1277,1283 ----
{
FILE *fp;
char_u *lbuf; /* line buffer */
+ int lbuf_size = LSIZE; /* length of lbuf */
char_u *tag_fname; /* name of tag file */
tagname_T tn; /* info for get_tagfname() */
int first_file; /* trying first tag file */
***************
*** 1291,1296 ****
--- 1292,1298 ----
char_u *s;
int i;
#ifdef FEAT_TAG_BINS
+ int tag_file_sorted = NUL; /* !_TAG_FILE_SORTED value */
struct tag_search_info /* Binary search file offsets */
{
off_t low_offset; /* offset for first char of first line that
***************
*** 1360,1372 ****
char_u *saved_pat = NULL; /* copy of pat[] */
#endif
- /* Use two sets of variables for the pattern: "orgpat" holds the values
- * for the original pattern and "convpat" converted from 'encoding' to
- * encoding of the tags file. "pats" point to either one of these. */
- pat_T *pats;
pat_T orgpat; /* holds unconverted pattern info */
#ifdef FEAT_MBYTE
- pat_T convpat; /* holds converted pattern info */
vimconv_T vimconv;
#endif
--- 1362,1369 ----
***************
*** 1390,1396 ****
help_save = curbuf->b_help;
orgpat.pat = pat;
- pats = &orgpat;
#ifdef FEAT_MBYTE
vimconv.vc_type = CONV_NONE;
#endif
--- 1387,1392 ----
***************
*** 1398,1404 ****
/*
* Allocate memory for the buffers that are used
*/
! lbuf = alloc(LSIZE);
tag_fname = alloc(MAXPATHL + 1);
#ifdef FEAT_EMACS_TAGS
ebuf = alloc(LSIZE);
--- 1394,1400 ----
/*
* Allocate memory for the buffers that are used
*/
! lbuf = alloc(lbuf_size);
tag_fname = alloc(MAXPATHL + 1);
#ifdef FEAT_EMACS_TAGS
ebuf = alloc(LSIZE);
***************
*** 1424,1453 ****
if (help_only) /* want tags from help file */
curbuf->b_help = TRUE; /* will be restored later */
! pats->len = (int)STRLEN(pat);
#ifdef FEAT_MULTI_LANG
if (curbuf->b_help)
{
/* When "@ab" is specified use only the "ab" language, otherwise
* search all languages. */
! if (pats->len > 3 && pat[pats->len - 3] == '@'
! && ASCII_ISALPHA(pat[pats->len - 2])
! && ASCII_ISALPHA(pat[pats->len - 1]))
{
! saved_pat = vim_strnsave(pat, pats->len - 3);
if (saved_pat != NULL)
{
! help_lang_find = &pat[pats->len - 2];
! pats->pat = saved_pat;
! pats->len -= 3;
}
}
}
#endif
! if (p_tl != 0 && pats->len > p_tl) /* adjust for 'taglength' */
! pats->len = p_tl;
! prepare_pats(pats, has_re);
#ifdef FEAT_TAG_BINS
/* This is only to avoid a compiler warning for using search_info
--- 1420,1449 ----
if (help_only) /* want tags from help file */
curbuf->b_help = TRUE; /* will be restored later */
! orgpat.len = (int)STRLEN(pat);
#ifdef FEAT_MULTI_LANG
if (curbuf->b_help)
{
/* When "@ab" is specified use only the "ab" language, otherwise
* search all languages. */
! if (orgpat.len > 3 && pat[orgpat.len - 3] == '@'
! && ASCII_ISALPHA(pat[orgpat.len - 2])
! && ASCII_ISALPHA(pat[orgpat.len - 1]))
{
! saved_pat = vim_strnsave(pat, orgpat.len - 3);
if (saved_pat != NULL)
{
! help_lang_find = &pat[orgpat.len - 2];
! orgpat.pat = saved_pat;
! orgpat.len -= 3;
}
}
}
#endif
! if (p_tl != 0 && orgpat.len > p_tl) /* adjust for 'taglength' */
! orgpat.len = p_tl;
! prepare_pats(&orgpat, has_re);
#ifdef FEAT_TAG_BINS
/* This is only to avoid a compiler warning for using search_info
***************
*** 1466,1478 ****
* Only ignore case when TAG_NOIC not used or 'ignorecase' set.
*/
#ifdef FEAT_TAG_BINS
! pats->regmatch.rm_ic = ((p_ic || !noic)
! && (findall || pats->headlen == 0 || !p_tbs));
for (round = 1; round <= 2; ++round)
{
! linear = (pats->headlen == 0 || !p_tbs || round == 2);
#else
! pats->regmatch.rm_ic = (p_ic || !noic);
#endif
/*
--- 1462,1474 ----
* Only ignore case when TAG_NOIC not used or 'ignorecase' set.
*/
#ifdef FEAT_TAG_BINS
! orgpat.regmatch.rm_ic = ((p_ic || !noic)
! && (findall || orgpat.headlen == 0 || !p_tbs));
for (round = 1; round <= 2; ++round)
{
! linear = (orgpat.headlen == 0 || !p_tbs || round == 2);
#else
! orgpat.regmatch.rm_ic = (p_ic || !noic);
#endif
/*
***************
*** 1701,1706 ****
--- 1697,1732 ----
}
line_read_in:
+ #ifdef FEAT_MBYTE
+ if (vimconv.vc_type != CONV_NONE)
+ {
+ char_u *conv_line;
+ int len;
+
+ /* Convert every line. Converting the pattern from 'enc' to
+ * the tags file encoding doesn't work, because characters are
+ * not recognized. */
+ conv_line = string_convert(&vimconv, lbuf, NULL);
+ if (conv_line != NULL)
+ {
+ /* Copy or swap lbuf and conv_line. */
+ len = (int)STRLEN(conv_line) + 1;
+ if (len > lbuf_size)
+ {
+ vim_free(lbuf);
+ lbuf = conv_line;
+ lbuf_size = len;
+ }
+ else
+ {
+ STRCPY(lbuf, conv_line);
+ vim_free(conv_line);
+ }
+ }
+ }
+ #endif
+
+
#ifdef FEAT_EMACS_TAGS
/*
* Emacs tags line with CTRL-L: New file name on next line.
***************
*** 1770,1775 ****
--- 1796,1828 ----
*/
if (state == TS_START)
{
+ if (STRNCMP(lbuf, "!_TAG_", 6) <= 0)
+ {
+ /*
+ * Read header line.
+ */
+ #ifdef FEAT_TAG_BINS
+ if (STRNCMP(lbuf, "!_TAG_FILE_SORTED\t", 18) == 0)
+ tag_file_sorted = lbuf[18];
+ #endif
+ #ifdef FEAT_MBYTE
+ if (STRNCMP(lbuf, "!_TAG_FILE_ENCODING\t", 20) == 0)
+ {
+ /* Prepare to convert every line from the specified
+ * encoding to 'encoding'. */
+ for (p = lbuf + 20; *p > ' ' && *p < 127; ++p)
+ ;
+ *p = NUL;
+ convert_setup(&vimconv, lbuf + 20, p_enc);
+ }
+ #endif
+
+ /* Read the next line. Unrecognized flags are ignored. */
+ continue;
+ }
+
+ /* Headers ends. */
+
#ifdef FEAT_TAG_BINS
/*
* When there is no tag head, or ignoring case, need to do a
***************
*** 1786,1809 ****
if (linear)
# endif
state = TS_LINEAR;
! else if (STRNCMP(lbuf, "!_TAG_", 6) > 0)
state = TS_BINARY;
! else if (STRNCMP(lbuf, "!_TAG_FILE_SORTED\t", 18) == 0)
! {
! /* Check sorted flag */
! if (lbuf[18] == '1')
state = TS_BINARY;
! else if (lbuf[18] == '2')
! {
! state = TS_BINARY;
! sortic = TRUE;
! pats->regmatch.rm_ic = (p_ic || !noic);
! }
! else
! state = TS_LINEAR;
}
! if (state == TS_BINARY && pats->regmatch.rm_ic && !sortic)
{
/* binary search won't work for ignoring case, use linear
* search. */
--- 1839,1858 ----
if (linear)
# endif
state = TS_LINEAR;
! else if (tag_file_sorted == NUL)
state = TS_BINARY;
! else if (tag_file_sorted == '1')
state = TS_BINARY;
! else if (tag_file_sorted == '2')
! {
! state = TS_BINARY;
! sortic = TRUE;
! orgpat.regmatch.rm_ic = (p_ic || !noic);
}
+ else
+ state = TS_LINEAR;
! if (state == TS_BINARY && orgpat.regmatch.rm_ic && !sortic)
{
/* binary search won't work for ignoring case, use linear
* search. */
***************
*** 1843,1882 ****
#endif
}
- #ifdef FEAT_MBYTE
- if (lbuf[0] == '!' && pats == &orgpat
- && STRNCMP(lbuf, "!_TAG_FILE_ENCODING\t", 20) == 0)
- {
- /* Convert the search pattern from 'encoding' to the
- * specified encoding. */
- for (p = lbuf + 20; *p > ' ' && *p < 127; ++p)
- ;
- *p = NUL;
- convert_setup(&vimconv, p_enc, lbuf + 20);
- if (vimconv.vc_type != CONV_NONE)
- {
- convpat.pat = string_convert(&vimconv, pats->pat, NULL);
- if (convpat.pat != NULL)
- {
- pats = &convpat;
- pats->len = (int)STRLEN(pats->pat);
- prepare_pats(pats, has_re);
- pats->regmatch.rm_ic = orgpat.regmatch.rm_ic;
- }
- }
-
- /* Prepare for converting a match the other way around. */
- convert_setup(&vimconv, lbuf + 20, p_enc);
- continue;
- }
- #endif
-
/*
* Figure out where the different strings are in this line.
* For "normal" tags: Do a quick check if the tag matches.
* This speeds up tag searching a lot!
*/
! if (pats->headlen
#ifdef FEAT_EMACS_TAGS
&& !is_etag
#endif
--- 1892,1903 ----
#endif
}
/*
* Figure out where the different strings are in this line.
* For "normal" tags: Do a quick check if the tag matches.
* This speeds up tag searching a lot!
*/
! if (orgpat.headlen
#ifdef FEAT_EMACS_TAGS
&& !is_etag
#endif
***************
*** 1933,1941 ****
cmplen = (int)(tagp.tagname_end - tagp.tagname);
if (p_tl != 0 && cmplen > p_tl) /* adjust for 'taglength' */
cmplen = p_tl;
! if (has_re && pats->headlen < cmplen)
! cmplen = pats->headlen;
! else if (state == TS_LINEAR && pats->headlen != cmplen)
continue;
#ifdef FEAT_TAG_BINS
--- 1954,1962 ----
cmplen = (int)(tagp.tagname_end - tagp.tagname);
if (p_tl != 0 && cmplen > p_tl) /* adjust for 'taglength' */
cmplen = p_tl;
! if (has_re && orgpat.headlen < cmplen)
! cmplen = orgpat.headlen;
! else if (state == TS_LINEAR && orgpat.headlen != cmplen)
continue;
#ifdef FEAT_TAG_BINS
***************
*** 1954,1963 ****
* Compare the current tag with the searched tag.
*/
if (sortic)
! tagcmp = tag_strnicmp(tagp.tagname, pats->head,
(size_t)cmplen);
else
! tagcmp = STRNCMP(tagp.tagname, pats->head, cmplen);
/*
* A match with a shorter tag means to search forward.
--- 1975,1984 ----
* Compare the current tag with the searched tag.
*/
if (sortic)
! tagcmp = tag_strnicmp(tagp.tagname, orgpat.head,
(size_t)cmplen);
else
! tagcmp = STRNCMP(tagp.tagname, orgpat.head, cmplen);
/*
* A match with a shorter tag means to search forward.
***************
*** 1965,1973 ****
*/
if (tagcmp == 0)
{
! if (cmplen < pats->headlen)
tagcmp = -1;
! else if (cmplen > pats->headlen)
tagcmp = 1;
}
--- 1986,1994 ----
*/
if (tagcmp == 0)
{
! if (cmplen < orgpat.headlen)
tagcmp = -1;
! else if (cmplen > orgpat.headlen)
tagcmp = 1;
}
***************
*** 2011,2017 ****
}
else if (state == TS_SKIP_BACK)
{
! if (MB_STRNICMP(tagp.tagname, pats->head, cmplen) != 0)
state = TS_STEP_FORWARD;
else
/* Have to skip back more. Restore the curr_offset
--- 2032,2038 ----
}
else if (state == TS_SKIP_BACK)
{
! if (MB_STRNICMP(tagp.tagname, orgpat.head, cmplen) != 0)
state = TS_STEP_FORWARD;
else
/* Have to skip back more. Restore the curr_offset
***************
*** 2021,2027 ****
}
else if (state == TS_STEP_FORWARD)
{
! if (MB_STRNICMP(tagp.tagname, pats->head, cmplen) != 0)
{
if ((off_t)ftell(fp) > search_info.match_offset)
break; /* past last match */
--- 2042,2048 ----
}
else if (state == TS_STEP_FORWARD)
{
! if (MB_STRNICMP(tagp.tagname, orgpat.head, cmplen) != 0)
{
if ((off_t)ftell(fp) > search_info.match_offset)
break; /* past last match */
***************
*** 2032,2038 ****
else
#endif
/* skip this match if it can't match */
! if (MB_STRNICMP(tagp.tagname, pats->head, cmplen) != 0)
continue;
/*
--- 2053,2059 ----
else
#endif
/* skip this match if it can't match */
! if (MB_STRNICMP(tagp.tagname, orgpat.head, cmplen) != 0)
continue;
/*
***************
*** 2083,2123 ****
if (p_tl != 0 && cmplen > p_tl) /* adjust for 'taglength' */
cmplen = p_tl;
/* if tag length does not match, don't try comparing */
! if (pats->len != cmplen)
match = FALSE;
else
{
! if (pats->regmatch.rm_ic)
{
! match = (MB_STRNICMP(tagp.tagname, pats->pat, cmplen) == 0);
if (match)
! match_no_ic = (STRNCMP(tagp.tagname, pats->pat,
cmplen) == 0);
}
else
! match = (STRNCMP(tagp.tagname, pats->pat, cmplen) == 0);
}
/*
* Has a regexp: Also find tags matching regexp.
*/
match_re = FALSE;
! if (!match && pats->regmatch.regprog != NULL)
{
int cc;
cc = *tagp.tagname_end;
*tagp.tagname_end = NUL;
! match = vim_regexec(&pats->regmatch, tagp.tagname, (colnr_T)0);
if (match)
{
! matchoff = (int)(pats->regmatch.startp[0] - tagp.tagname);
! if (pats->regmatch.rm_ic)
{
! pats->regmatch.rm_ic = FALSE;
! match_no_ic = vim_regexec(&pats->regmatch, tagp.tagname,
(colnr_T)0);
! pats->regmatch.rm_ic = TRUE;
}
}
*tagp.tagname_end = cc;
--- 2104,2144 ----
if (p_tl != 0 && cmplen > p_tl) /* adjust for 'taglength' */
cmplen = p_tl;
/* if tag length does not match, don't try comparing */
! if (orgpat.len != cmplen)
match = FALSE;
else
{
! if (orgpat.regmatch.rm_ic)
{
! match = (MB_STRNICMP(tagp.tagname, orgpat.pat, cmplen) == 0);
if (match)
! match_no_ic = (STRNCMP(tagp.tagname, orgpat.pat,
cmplen) == 0);
}
else
! match = (STRNCMP(tagp.tagname, orgpat.pat, cmplen) == 0);
}
/*
* Has a regexp: Also find tags matching regexp.
*/
match_re = FALSE;
! if (!match && orgpat.regmatch.regprog != NULL)
{
int cc;
cc = *tagp.tagname_end;
*tagp.tagname_end = NUL;
! match = vim_regexec(&orgpat.regmatch, tagp.tagname, (colnr_T)0);
if (match)
{
! matchoff = (int)(orgpat.regmatch.startp[0] - tagp.tagname);
! if (orgpat.regmatch.rm_ic)
{
! orgpat.regmatch.rm_ic = FALSE;
! match_no_ic = vim_regexec(&orgpat.regmatch, tagp.tagname,
(colnr_T)0);
! orgpat.regmatch.rm_ic = TRUE;
}
}
*tagp.tagname_end = cc;
***************
*** 2174,2180 ****
else
mtt = MT_GL_OTH;
}
! if (pats->regmatch.rm_ic && !match_no_ic)
mtt += MT_IC_OFF;
if (match_re)
mtt += MT_RE_OFF;
--- 2195,2201 ----
else
mtt = MT_GL_OTH;
}
! if (orgpat.regmatch.rm_ic && !match_no_ic)
mtt += MT_IC_OFF;
if (match_re)
mtt += MT_RE_OFF;
***************
*** 2187,2221 ****
*/
if (ga_grow(&ga_match[mtt], 1) == OK)
{
- #ifdef FEAT_MBYTE
- char_u *conv_line = NULL;
- char_u *lbuf_line = lbuf;
-
- if (vimconv.vc_type != CONV_NONE)
- {
- /* Convert the tag line from the encoding of the tags
- * file to 'encoding'. Then parse the line again. */
- conv_line = string_convert(&vimconv, lbuf, NULL);
- if (conv_line != NULL)
- {
- if (parse_tag_line(conv_line,
- #ifdef FEAT_EMACS_TAGS
- is_etag,
- #endif
- &tagp) == OK)
- lbuf_line = conv_line;
- else
- /* doesn't work, go back to unconverted line. */
- (void)parse_tag_line(lbuf,
- #ifdef FEAT_EMACS_TAGS
- is_etag,
- #endif
- &tagp);
- }
- }
- #else
- # define lbuf_line lbuf
- #endif
if (help_only)
{
#ifdef FEAT_MULTI_LANG
--- 2208,2213 ----
***************
*** 2307,2313 ****
* without Emacs tags: <mtt><tag_fname><NUL><lbuf>
*/
len = (int)STRLEN(tag_fname)
! + (int)STRLEN(lbuf_line) + 3;
#ifdef FEAT_EMACS_TAGS
if (is_etag)
len += (int)STRLEN(ebuf) + 1;
--- 2299,2305 ----
* without Emacs tags: <mtt><tag_fname><NUL><lbuf>
*/
len = (int)STRLEN(tag_fname)
! + (int)STRLEN(lbuf) + 3;
#ifdef FEAT_EMACS_TAGS
if (is_etag)
len += (int)STRLEN(ebuf) + 1;
***************
*** 2337,2343 ****
else
*s++ = NUL;
#endif
! STRCPY(s, lbuf_line);
}
}
--- 2329,2335 ----
else
*s++ = NUL;
#endif
! STRCPY(s, lbuf);
}
}
***************
*** 2373,2382 ****
else
vim_free(mfp);
}
- #ifdef FEAT_MBYTE
- /* Note: this makes the values in "tagp" invalid! */
- vim_free(conv_line);
- #endif
}
else /* Out of memory! Just forget about the rest. */
{
--- 2365,2370 ----
***************
*** 2415,2433 ****
}
#endif
#ifdef FEAT_MBYTE
- if (pats == &convpat)
- {
- /* Go back from converted pattern to original pattern. */
- vim_free(pats->pat);
- vim_free(pats->regmatch.regprog);
- orgpat.regmatch.rm_ic = pats->regmatch.rm_ic;
- pats = &orgpat;
- }
if (vimconv.vc_type != CONV_NONE)
convert_setup(&vimconv, NULL, NULL);
#endif
#ifdef FEAT_TAG_BINS
if (sort_error)
{
EMSG2(_("E432: Tags file not sorted: %s"), tag_fname);
--- 2403,2414 ----
}
#endif
#ifdef FEAT_MBYTE
if (vimconv.vc_type != CONV_NONE)
convert_setup(&vimconv, NULL, NULL);
#endif
#ifdef FEAT_TAG_BINS
+ tag_file_sorted = NUL;
if (sort_error)
{
EMSG2(_("E432: Tags file not sorted: %s"), tag_fname);
***************
*** 2461,2473 ****
#ifdef FEAT_TAG_BINS
/* stop searching when already did a linear search, or when TAG_NOIC
* used, and 'ignorecase' not set or already did case-ignore search */
! if (stop_searching || linear || (!p_ic && noic) || pats->regmatch.rm_ic)
break;
# ifdef FEAT_CSCOPE
if (use_cscope)
break;
# endif
! pats->regmatch.rm_ic = TRUE; /* try another time while ignoring case */
}
#endif
--- 2442,2454 ----
#ifdef FEAT_TAG_BINS
/* stop searching when already did a linear search, or when TAG_NOIC
* used, and 'ignorecase' not set or already did case-ignore search */
! if (stop_searching || linear || (!p_ic && noic) || orgpat.regmatch.rm_ic)
break;
# ifdef FEAT_CSCOPE
if (use_cscope)
break;
# endif
! orgpat.regmatch.rm_ic = TRUE; /* try another time while ignoring case */
}
#endif
***************
*** 2480,2486 ****
findtag_end:
vim_free(lbuf);
! vim_free(pats->regmatch.regprog);
vim_free(tag_fname);
#ifdef FEAT_EMACS_TAGS
vim_free(ebuf);
--- 2461,2467 ----
findtag_end:
vim_free(lbuf);
! vim_free(orgpat.regmatch.regprog);
vim_free(tag_fname);
#ifdef FEAT_EMACS_TAGS
vim_free(ebuf);
*** ../vim-7.3.335/src/testdir/Make_amiga.mak 2011-07-15 21:16:54.000000000 +0200
--- src/testdir/Make_amiga.mak 2011-10-12 19:21:00.000000000 +0200
***************
*** 29,35 ****
test66.out test67.out test68.out test69.out test70.out \
test71.out test72.out test73.out test74.out test75.out \
test76.out test77.out test78.out test79.out test80.out \
! test81.out test82.out
.SUFFIXES: .in .out
--- 29,35 ----
test66.out test67.out test68.out test69.out test70.out \
test71.out test72.out test73.out test74.out test75.out \
test76.out test77.out test78.out test79.out test80.out \
! test81.out test82.out test83.out
.SUFFIXES: .in .out
***************
*** 131,133 ****
--- 131,134 ----
test80.out: test80.in
test81.out: test81.in
test82.out: test82.in
+ test83.out: test83.in
*** ../vim-7.3.335/src/testdir/Make_dos.mak 2011-07-15 21:16:54.000000000 +0200
--- src/testdir/Make_dos.mak 2011-10-12 17:39:03.000000000 +0200
***************
*** 29,35 ****
test42.out test52.out test65.out test66.out test67.out \
test68.out test69.out test71.out test72.out test73.out \
test74.out test75.out test76.out test77.out test78.out \
! test79.out test80.out test81.out test82.out
SCRIPTS32 = test50.out test70.out
--- 29,35 ----
test42.out test52.out test65.out test66.out test67.out \
test68.out test69.out test71.out test72.out test73.out \
test74.out test75.out test76.out test77.out test78.out \
! test79.out test80.out test81.out test82.out test83.out
SCRIPTS32 = test50.out test70.out
*** ../vim-7.3.335/src/testdir/Make_ming.mak 2011-07-15 21:16:54.000000000 +0200
--- src/testdir/Make_ming.mak 2011-10-12 17:39:03.000000000 +0200
***************
*** 49,55 ****
test42.out test52.out test65.out test66.out test67.out \
test68.out test69.out test71.out test72.out test73.out \
test74.out test75.out test76.out test77.out test78.out \
! test79.out test80.out test81.out test82.out
SCRIPTS32 = test50.out test70.out
--- 49,55 ----
test42.out test52.out test65.out test66.out test67.out \
test68.out test69.out test71.out test72.out test73.out \
test74.out test75.out test76.out test77.out test78.out \
! test79.out test80.out test81.out test82.out test83.out
SCRIPTS32 = test50.out test70.out
*** ../vim-7.3.335/src/testdir/Make_os2.mak 2011-07-15 21:16:54.000000000 +0200
--- src/testdir/Make_os2.mak 2011-10-12 17:39:03.000000000 +0200
***************
*** 29,35 ****
test66.out test67.out test68.out test69.out test70.out \
test71.out test72.out test73.out test74.out test75.out \
test76.out test77.out test78.out test79.out test80.out \
! test81.out test82.out
.SUFFIXES: .in .out
--- 29,35 ----
test66.out test67.out test68.out test69.out test70.out \
test71.out test72.out test73.out test74.out test75.out \
test76.out test77.out test78.out test79.out test80.out \
! test81.out test82.out test83.out
.SUFFIXES: .in .out
*** ../vim-7.3.335/src/testdir/Make_vms.mms 2011-07-15 21:16:54.000000000 +0200
--- src/testdir/Make_vms.mms 2011-10-12 17:39:03.000000000 +0200
***************
*** 76,82 ****
test66.out test67.out test68.out test69.out \
test71.out test72.out test74.out test75.out test76.out \
test77.out test78.out test79.out test80.out test81.out \
! test82.out
# Known problems:
# Test 30: a problem around mac format - unknown reason
--- 76,82 ----
test66.out test67.out test68.out test69.out \
test71.out test72.out test74.out test75.out test76.out \
test77.out test78.out test79.out test80.out test81.out \
! test82.out test83.out
# Known problems:
# Test 30: a problem around mac format - unknown reason
*** ../vim-7.3.335/src/testdir/Makefile 2011-07-15 21:16:54.000000000 +0200
--- src/testdir/Makefile 2011-10-12 17:39:03.000000000 +0200
***************
*** 26,32 ****
test64.out test65.out test66.out test67.out test68.out \
test69.out test70.out test71.out test72.out test73.out \
test74.out test75.out test76.out test77.out test78.out \
! test79.out test80.out test81.out test82.out
SCRIPTS_GUI = test16.out
--- 26,32 ----
test64.out test65.out test66.out test67.out test68.out \
test69.out test70.out test71.out test72.out test73.out \
test74.out test75.out test76.out test77.out test78.out \
! test79.out test80.out test81.out test82.out test83.out
SCRIPTS_GUI = test16.out
***************
*** 72,78 ****
fi \
else echo $* NO OUTPUT >>test.log; \
fi"
! -rm -rf X* test.ok viminfo
test49.out: test49.vim
--- 72,78 ----
fi \
else echo $* NO OUTPUT >>test.log; \
fi"
! # -rm -rf X* test.ok viminfo
test49.out: test49.vim
*** ../vim-7.3.335/src/testdir/test83-tags2 2011-10-12 19:49:38.000000000 +0200
--- src/testdir/test83-tags2 2011-10-12 19:34:15.000000000 +0200
***************
*** 0 ****
--- 1,2 ----
+ !_TAG_FILE_ENCODING cp932 //
+ <20>`<60>a<EFBFBD>b Xtags2.txt /<2F>`<60>a<EFBFBD>b
*** ../vim-7.3.335/src/testdir/test83-tags3 2011-10-12 19:49:38.000000000 +0200
--- src/testdir/test83-tags3 2011-10-12 19:35:42.000000000 +0200
***************
*** 0 ****
--- 1,102 ----
+ !_TAG_FILE_SORTED 1 //
+ !_TAG_FILE_ENCODING cp932 //
+ abc1 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc2 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc3 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc4 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc5 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc6 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc7 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc8 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc9 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc10 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc11 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc12 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc13 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc14 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc15 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc16 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc17 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc18 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc19 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc20 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc21 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc22 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc23 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc24 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc25 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc26 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc27 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc28 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc29 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc30 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc31 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc32 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc33 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc34 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc35 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc36 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc37 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc38 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc39 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc40 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc41 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc42 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc43 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc44 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc45 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc46 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc47 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc48 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc49 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc50 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc51 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc52 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc53 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc54 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc55 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc56 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc57 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc58 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc59 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc60 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc61 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc62 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc63 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc64 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc65 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc66 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc67 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc68 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc69 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc70 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc71 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc72 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc73 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc74 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc75 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc76 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc77 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc78 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc79 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc80 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc81 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc82 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc83 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc84 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc85 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc86 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc87 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc88 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc89 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc90 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc91 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc92 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc93 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc94 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc95 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc96 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc97 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc98 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc99 Xtags3.txt /<2F>`<60>a<EFBFBD>b
+ abc100 Xtags3.txt /<2F>`<60>a<EFBFBD>b
*** ../vim-7.3.335/src/testdir/test83.in 2011-10-12 19:49:38.000000000 +0200
--- src/testdir/test83.in 2011-10-12 19:40:47.000000000 +0200
***************
*** 0 ****
--- 1,76 ----
+ Tests for tag search with !_TAG_FILE_ENCODING.
+
+ STARTTEST
+ :so mbyte.vim
+ :if !has('iconv')
+ : e! test.ok
+ : w! test.out
+ : qa!
+ :endif
+ :set enc=utf8
+
+ :/^text for tags1$/,/^text for tags1$/+1w! Xtags1.txt
+ :/^text for tags2$/,/^text for tags2$/+1w! Xtags2.txt
+ :/^text for tags3$/,/^text for tags3$/+1w! Xtags3.txt
+ :/^tags1$/+1,/^tags1-end$/-1w! Xtags1
+
+ ggdG
+
+ :call setline('.', 'Results of test83')
+
+ :" case1:
+ :new
+ :set tags=Xtags1
+ :let v:errmsg = ''
+ :tag abcdefghijklmnopqrs
+ :if v:errmsg =~ 'E426:' || getline('.') != 'abcdefghijklmnopqrs'
+ : close
+ : put ='case1: failed'
+ :else
+ : close
+ : put ='case1: ok'
+ :endif
+
+ :" case2:
+ :new
+ :set tags=test83-tags2
+ :let v:errmsg = ''
+ :tag /.
+ :if v:errmsg =~ 'E426:' || getline('.') != ''
+ : close
+ : put ='case2: failed'
+ :else
+ : close
+ : put ='case2: ok'
+ :endif
+
+ :" case3:
+ :new
+ :set tags=test83-tags3
+ :let v:errmsg = ''
+ :tag abc50
+ :if v:errmsg =~ 'E426:' || getline('.') != ''
+ : close
+ : put ='case3: failed'
+ :else
+ : close
+ : put ='case3: ok'
+ :endif
+ :close
+
+ :wq! test.out
+ ENDTEST
+
+ text for tags1
+ abcdefghijklmnopqrs
+
+ text for tags2
+
+
+ text for tags3
+
+
+ tags1
+ !_TAG_FILE_ENCODING utf-8 //
+ abcdefghijklmnopqrs Xtags1.txt /abcdefghijklmnopqrs
+ tags1-end
*** ../vim-7.3.335/src/testdir/test83.ok 2011-10-12 19:49:38.000000000 +0200
--- src/testdir/test83.ok 2011-10-12 17:39:03.000000000 +0200
***************
*** 0 ****
--- 1,4 ----
+ Results of test83
+ case1: ok
+ case2: ok
+ case3: ok
*** ../vim-7.3.335/src/version.c 2011-10-12 16:57:07.000000000 +0200
--- src/version.c 2011-10-12 19:45:46.000000000 +0200
***************
*** 711,712 ****
--- 711,714 ----
{ /* Add new patch number below this line */
+ /**/
+ 336,
/**/
--
hundred-and-one symptoms of being an internet addict:
62. If your doorbell rings, you think that new mail has arrived. And then
you're disappointed that it's only someone at the door.
/// Bram Moolenaar -- Bram@Moolenaar.net -- 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 ///