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