- patchlevel 341
This commit is contained in:
		
							parent
							
								
									20da593bd9
								
							
						
					
					
						commit
						53adffab25
					
				
							
								
								
									
										360
									
								
								7.3.341
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										360
									
								
								7.3.341
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,360 @@
 | 
			
		||||
To: vim_dev@googlegroups.com
 | 
			
		||||
Subject: Patch 7.3.341
 | 
			
		||||
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.341
 | 
			
		||||
Problem:    Local help files are only listed in help.txt, not in translated
 | 
			
		||||
	    help files.
 | 
			
		||||
Solution:   Also find translated help files. (Yasuhiro Matsumoto)
 | 
			
		||||
Files:	    src/ex_cmds.c
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
*** ../vim-7.3.340/src/ex_cmds.c	2011-09-30 17:30:27.000000000 +0200
 | 
			
		||||
--- src/ex_cmds.c	2011-10-20 17:39:45.000000000 +0200
 | 
			
		||||
***************
 | 
			
		||||
*** 5982,5987 ****
 | 
			
		||||
--- 5982,5988 ----
 | 
			
		||||
      char_u	*line;
 | 
			
		||||
      int		in_example = FALSE;
 | 
			
		||||
      int		len;
 | 
			
		||||
+     char_u	*fname;
 | 
			
		||||
      char_u	*p;
 | 
			
		||||
      char_u	*rt;
 | 
			
		||||
      int		mustfree;
 | 
			
		||||
***************
 | 
			
		||||
*** 6028,6151 ****
 | 
			
		||||
      }
 | 
			
		||||
  
 | 
			
		||||
      /*
 | 
			
		||||
!      * In the "help.txt" file, add the locally added help files.
 | 
			
		||||
!      * This uses the very first line in the help file.
 | 
			
		||||
       */
 | 
			
		||||
!     if (fnamecmp(gettail(curbuf->b_fname), "help.txt") == 0)
 | 
			
		||||
      {
 | 
			
		||||
  	for (lnum = 1; lnum < curbuf->b_ml.ml_line_count; ++lnum)
 | 
			
		||||
  	{
 | 
			
		||||
  	    line = ml_get_buf(curbuf, lnum, FALSE);
 | 
			
		||||
! 	    if (strstr((char *)line, "*local-additions*") != NULL)
 | 
			
		||||
  	    {
 | 
			
		||||
! 		/* Go through all directories in 'runtimepath', skipping
 | 
			
		||||
! 		 * $VIMRUNTIME. */
 | 
			
		||||
! 		p = p_rtp;
 | 
			
		||||
! 		while (*p != NUL)
 | 
			
		||||
  		{
 | 
			
		||||
! 		    copy_option_part(&p, NameBuff, MAXPATHL, ",");
 | 
			
		||||
! 		    mustfree = FALSE;
 | 
			
		||||
! 		    rt = vim_getenv((char_u *)"VIMRUNTIME", &mustfree);
 | 
			
		||||
! 		    if (fullpathcmp(rt, NameBuff, FALSE) != FPC_SAME)
 | 
			
		||||
! 		    {
 | 
			
		||||
! 			int	fcount;
 | 
			
		||||
! 			char_u	**fnames;
 | 
			
		||||
! 			FILE	*fd;
 | 
			
		||||
! 			char_u	*s;
 | 
			
		||||
! 			int	fi;
 | 
			
		||||
  #ifdef FEAT_MBYTE
 | 
			
		||||
! 			vimconv_T	vc;
 | 
			
		||||
! 			char_u		*cp;
 | 
			
		||||
  #endif
 | 
			
		||||
  
 | 
			
		||||
! 			/* Find all "doc/ *.txt" files in this directory. */
 | 
			
		||||
! 			add_pathsep(NameBuff);
 | 
			
		||||
! 			STRCAT(NameBuff, "doc/*.txt");
 | 
			
		||||
! 			if (gen_expand_wildcards(1, &NameBuff, &fcount,
 | 
			
		||||
! 					     &fnames, EW_FILE|EW_SILENT) == OK
 | 
			
		||||
! 				&& fcount > 0)
 | 
			
		||||
  			{
 | 
			
		||||
! 			    for (fi = 0; fi < fcount; ++fi)
 | 
			
		||||
  			    {
 | 
			
		||||
! 				fd = mch_fopen((char *)fnames[fi], "r");
 | 
			
		||||
! 				if (fd != NULL)
 | 
			
		||||
  				{
 | 
			
		||||
! 				    vim_fgets(IObuff, IOSIZE, fd);
 | 
			
		||||
! 				    if (IObuff[0] == '*'
 | 
			
		||||
! 					    && (s = vim_strchr(IObuff + 1, '*'))
 | 
			
		||||
! 								      != NULL)
 | 
			
		||||
! 				    {
 | 
			
		||||
! #ifdef FEAT_MBYTE
 | 
			
		||||
! 					int	this_utf = MAYBE;
 | 
			
		||||
  #endif
 | 
			
		||||
! 					/* Change tag definition to a
 | 
			
		||||
! 					 * reference and remove <CR>/<NL>. */
 | 
			
		||||
! 					IObuff[0] = '|';
 | 
			
		||||
! 					*s = '|';
 | 
			
		||||
! 					while (*s != NUL)
 | 
			
		||||
! 					{
 | 
			
		||||
! 					    if (*s == '\r' || *s == '\n')
 | 
			
		||||
! 						*s = NUL;
 | 
			
		||||
  #ifdef FEAT_MBYTE
 | 
			
		||||
! 					    /* The text is utf-8 when a byte
 | 
			
		||||
! 					     * above 127 is found and no
 | 
			
		||||
! 					     * illegal byte sequence is found.
 | 
			
		||||
! 					     */
 | 
			
		||||
! 					    if (*s >= 0x80 && this_utf != FALSE)
 | 
			
		||||
! 					    {
 | 
			
		||||
! 						int	l;
 | 
			
		||||
! 
 | 
			
		||||
! 						this_utf = TRUE;
 | 
			
		||||
! 						l = utf_ptr2len(s);
 | 
			
		||||
! 						if (l == 1)
 | 
			
		||||
! 						    this_utf = FALSE;
 | 
			
		||||
! 						s += l - 1;
 | 
			
		||||
! 					    }
 | 
			
		||||
  #endif
 | 
			
		||||
! 					    ++s;
 | 
			
		||||
! 					}
 | 
			
		||||
  #ifdef FEAT_MBYTE
 | 
			
		||||
! 					/* The help file is latin1 or utf-8;
 | 
			
		||||
! 					 * conversion to the current
 | 
			
		||||
! 					 * 'encoding' may be required. */
 | 
			
		||||
! 					vc.vc_type = CONV_NONE;
 | 
			
		||||
! 					convert_setup(&vc, (char_u *)(
 | 
			
		||||
! 						    this_utf == TRUE ? "utf-8"
 | 
			
		||||
! 							  : "latin1"), p_enc);
 | 
			
		||||
! 					if (vc.vc_type == CONV_NONE)
 | 
			
		||||
! 					    /* No conversion needed. */
 | 
			
		||||
! 					    cp = IObuff;
 | 
			
		||||
! 					else
 | 
			
		||||
  					{
 | 
			
		||||
! 					    /* Do the conversion.  If it fails
 | 
			
		||||
! 					     * use the unconverted text. */
 | 
			
		||||
! 					    cp = string_convert(&vc, IObuff,
 | 
			
		||||
! 									NULL);
 | 
			
		||||
! 					    if (cp == NULL)
 | 
			
		||||
! 						cp = IObuff;
 | 
			
		||||
  					}
 | 
			
		||||
! 					convert_setup(&vc, NULL, NULL);
 | 
			
		||||
  
 | 
			
		||||
! 					ml_append(lnum, cp, (colnr_T)0, FALSE);
 | 
			
		||||
! 					if (cp != IObuff)
 | 
			
		||||
! 					    vim_free(cp);
 | 
			
		||||
  #else
 | 
			
		||||
! 					ml_append(lnum, IObuff, (colnr_T)0,
 | 
			
		||||
! 								       FALSE);
 | 
			
		||||
  #endif
 | 
			
		||||
! 					++lnum;
 | 
			
		||||
! 				    }
 | 
			
		||||
! 				    fclose(fd);
 | 
			
		||||
  				}
 | 
			
		||||
  			    }
 | 
			
		||||
- 			    FreeWild(fcount, fnames);
 | 
			
		||||
  			}
 | 
			
		||||
  		    }
 | 
			
		||||
- 		    if (mustfree)
 | 
			
		||||
- 			vim_free(rt);
 | 
			
		||||
  		}
 | 
			
		||||
! 		break;
 | 
			
		||||
  	    }
 | 
			
		||||
  	}
 | 
			
		||||
      }
 | 
			
		||||
  }
 | 
			
		||||
--- 6029,6215 ----
 | 
			
		||||
      }
 | 
			
		||||
  
 | 
			
		||||
      /*
 | 
			
		||||
!      * In the "help.txt" and "help.abx" file, add the locally added help
 | 
			
		||||
!      * files.  This uses the very first line in the help file.
 | 
			
		||||
       */
 | 
			
		||||
!     fname = gettail(curbuf->b_fname);
 | 
			
		||||
!     if (fnamecmp(fname, "help.txt") == 0
 | 
			
		||||
! #ifdef FEAT_MULTI_LANG
 | 
			
		||||
! 	|| (fnamencmp(fname, "help.", 5) == 0
 | 
			
		||||
! 	    && ASCII_ISALPHA(fname[5])
 | 
			
		||||
! 	    && ASCII_ISALPHA(fname[6])
 | 
			
		||||
! 	    && TOLOWER_ASC(fname[7]) == 'x'
 | 
			
		||||
! 	    && fname[8] == NUL)
 | 
			
		||||
! #endif
 | 
			
		||||
! 	)
 | 
			
		||||
      {
 | 
			
		||||
  	for (lnum = 1; lnum < curbuf->b_ml.ml_line_count; ++lnum)
 | 
			
		||||
  	{
 | 
			
		||||
  	    line = ml_get_buf(curbuf, lnum, FALSE);
 | 
			
		||||
! 	    if (strstr((char *)line, "*local-additions*") == NULL)
 | 
			
		||||
! 		continue;
 | 
			
		||||
! 
 | 
			
		||||
! 	    /* Go through all directories in 'runtimepath', skipping
 | 
			
		||||
! 	     * $VIMRUNTIME. */
 | 
			
		||||
! 	    p = p_rtp;
 | 
			
		||||
! 	    while (*p != NUL)
 | 
			
		||||
  	    {
 | 
			
		||||
! 		copy_option_part(&p, NameBuff, MAXPATHL, ",");
 | 
			
		||||
! 		mustfree = FALSE;
 | 
			
		||||
! 		rt = vim_getenv((char_u *)"VIMRUNTIME", &mustfree);
 | 
			
		||||
! 		if (fullpathcmp(rt, NameBuff, FALSE) != FPC_SAME)
 | 
			
		||||
  		{
 | 
			
		||||
! 		    int		fcount;
 | 
			
		||||
! 		    char_u	**fnames;
 | 
			
		||||
! 		    FILE	*fd;
 | 
			
		||||
! 		    char_u	*s;
 | 
			
		||||
! 		    int		fi;
 | 
			
		||||
  #ifdef FEAT_MBYTE
 | 
			
		||||
! 		    vimconv_T	vc;
 | 
			
		||||
! 		    char_u	*cp;
 | 
			
		||||
  #endif
 | 
			
		||||
  
 | 
			
		||||
! 		    /* Find all "doc/ *.txt" files in this directory. */
 | 
			
		||||
! 		    add_pathsep(NameBuff);
 | 
			
		||||
! #ifdef FEAT_MULTI_LANG
 | 
			
		||||
! 		    STRCAT(NameBuff, "doc/*.??[tx]");
 | 
			
		||||
! #else
 | 
			
		||||
! 		    STRCAT(NameBuff, "doc/*.txt");
 | 
			
		||||
! #endif
 | 
			
		||||
! 		    if (gen_expand_wildcards(1, &NameBuff, &fcount,
 | 
			
		||||
! 					 &fnames, EW_FILE|EW_SILENT) == OK
 | 
			
		||||
! 			    && fcount > 0)
 | 
			
		||||
! 		    {
 | 
			
		||||
! #ifdef FEAT_MULTI_LANG
 | 
			
		||||
! 			int	i1;
 | 
			
		||||
! 			int	i2;
 | 
			
		||||
! 			char_u	*f1;
 | 
			
		||||
! 			char_u	*f2;
 | 
			
		||||
! 			char_u	*t1;
 | 
			
		||||
! 			char_u	*e1;
 | 
			
		||||
! 			char_u	*e2;
 | 
			
		||||
! 
 | 
			
		||||
! 			/* If foo.abx is found use it instead of foo.txt in
 | 
			
		||||
! 			 * the same directory. */
 | 
			
		||||
! 			for (i1 = 0; i1 < fcount; ++i1)
 | 
			
		||||
  			{
 | 
			
		||||
! 			    for (i2 = 0; i2 < fcount; ++i2)
 | 
			
		||||
  			    {
 | 
			
		||||
! 				if (i1 == i2)
 | 
			
		||||
! 				    continue;
 | 
			
		||||
! 				if (fnames[i1] == NULL || fnames[i2] == NULL)
 | 
			
		||||
! 				    continue;
 | 
			
		||||
! 				f1 = fnames[i1];
 | 
			
		||||
! 				f2 = fnames[i2];
 | 
			
		||||
! 				t1 = gettail(f1);
 | 
			
		||||
! 				if (fnamencmp(f1, f2, t1 - f1) != 0)
 | 
			
		||||
! 				    continue;
 | 
			
		||||
! 				e1 = vim_strrchr(t1, '.');
 | 
			
		||||
! 				e2 = vim_strrchr(gettail(f2), '.');
 | 
			
		||||
! 				if (e1 == NUL || e2 == NUL)
 | 
			
		||||
! 				    continue;
 | 
			
		||||
! 				if (fnamecmp(e1, ".txt") != 0
 | 
			
		||||
! 				    && fnamecmp(e1, fname + 4) != 0)
 | 
			
		||||
  				{
 | 
			
		||||
! 				    /* Not .txt and not .abx, remove it. */
 | 
			
		||||
! 				    vim_free(fnames[i1]);
 | 
			
		||||
! 				    fnames[i1] = NULL;
 | 
			
		||||
! 				    continue;
 | 
			
		||||
! 				}
 | 
			
		||||
! 				if (fnamencmp(f1, f2, e1 - f1) != 0)
 | 
			
		||||
! 				    continue;
 | 
			
		||||
! 				if (fnamecmp(e1, ".txt") == 0
 | 
			
		||||
! 				    && fnamecmp(e2, fname + 4) == 0)
 | 
			
		||||
! 				{
 | 
			
		||||
! 				    /* use .abx instead of .txt */
 | 
			
		||||
! 				    vim_free(fnames[i1]);
 | 
			
		||||
! 				    fnames[i1] = NULL;
 | 
			
		||||
! 				}
 | 
			
		||||
! 			    }
 | 
			
		||||
! 			}
 | 
			
		||||
  #endif
 | 
			
		||||
! 			for (fi = 0; fi < fcount; ++fi)
 | 
			
		||||
! 			{
 | 
			
		||||
! 			    if (fnames[fi] == NULL)
 | 
			
		||||
! 				continue;
 | 
			
		||||
! 			    fd = mch_fopen((char *)fnames[fi], "r");
 | 
			
		||||
! 			    if (fd != NULL)
 | 
			
		||||
! 			    {
 | 
			
		||||
! 				vim_fgets(IObuff, IOSIZE, fd);
 | 
			
		||||
! 				if (IObuff[0] == '*'
 | 
			
		||||
! 					&& (s = vim_strchr(IObuff + 1, '*'))
 | 
			
		||||
! 								  != NULL)
 | 
			
		||||
! 				{
 | 
			
		||||
  #ifdef FEAT_MBYTE
 | 
			
		||||
! 				    int	this_utf = MAYBE;
 | 
			
		||||
  #endif
 | 
			
		||||
! 				    /* Change tag definition to a
 | 
			
		||||
! 				     * reference and remove <CR>/<NL>. */
 | 
			
		||||
! 				    IObuff[0] = '|';
 | 
			
		||||
! 				    *s = '|';
 | 
			
		||||
! 				    while (*s != NUL)
 | 
			
		||||
! 				    {
 | 
			
		||||
! 					if (*s == '\r' || *s == '\n')
 | 
			
		||||
! 					    *s = NUL;
 | 
			
		||||
  #ifdef FEAT_MBYTE
 | 
			
		||||
! 					/* The text is utf-8 when a byte
 | 
			
		||||
! 					 * above 127 is found and no
 | 
			
		||||
! 					 * illegal byte sequence is found.
 | 
			
		||||
! 					 */
 | 
			
		||||
! 					if (*s >= 0x80 && this_utf != FALSE)
 | 
			
		||||
  					{
 | 
			
		||||
! 					    int	l;
 | 
			
		||||
! 
 | 
			
		||||
! 					    this_utf = TRUE;
 | 
			
		||||
! 					    l = utf_ptr2len(s);
 | 
			
		||||
! 					    if (l == 1)
 | 
			
		||||
! 						this_utf = FALSE;
 | 
			
		||||
! 					    s += l - 1;
 | 
			
		||||
  					}
 | 
			
		||||
! #endif
 | 
			
		||||
! 					++s;
 | 
			
		||||
! 				    }
 | 
			
		||||
! #ifdef FEAT_MBYTE
 | 
			
		||||
! 				    /* The help file is latin1 or utf-8;
 | 
			
		||||
! 				     * conversion to the current
 | 
			
		||||
! 				     * 'encoding' may be required. */
 | 
			
		||||
! 				    vc.vc_type = CONV_NONE;
 | 
			
		||||
! 				    convert_setup(&vc, (char_u *)(
 | 
			
		||||
! 						this_utf == TRUE ? "utf-8"
 | 
			
		||||
! 						      : "latin1"), p_enc);
 | 
			
		||||
! 				    if (vc.vc_type == CONV_NONE)
 | 
			
		||||
! 					/* No conversion needed. */
 | 
			
		||||
! 					cp = IObuff;
 | 
			
		||||
! 				    else
 | 
			
		||||
! 				    {
 | 
			
		||||
! 					/* Do the conversion.  If it fails
 | 
			
		||||
! 					 * use the unconverted text. */
 | 
			
		||||
! 					cp = string_convert(&vc, IObuff,
 | 
			
		||||
! 								    NULL);
 | 
			
		||||
! 					if (cp == NULL)
 | 
			
		||||
! 					    cp = IObuff;
 | 
			
		||||
! 				    }
 | 
			
		||||
! 				    convert_setup(&vc, NULL, NULL);
 | 
			
		||||
  
 | 
			
		||||
! 				    ml_append(lnum, cp, (colnr_T)0, FALSE);
 | 
			
		||||
! 				    if (cp != IObuff)
 | 
			
		||||
! 					vim_free(cp);
 | 
			
		||||
  #else
 | 
			
		||||
! 				    ml_append(lnum, IObuff, (colnr_T)0,
 | 
			
		||||
! 								   FALSE);
 | 
			
		||||
  #endif
 | 
			
		||||
! 				    ++lnum;
 | 
			
		||||
  				}
 | 
			
		||||
+ 				fclose(fd);
 | 
			
		||||
  			    }
 | 
			
		||||
  			}
 | 
			
		||||
+ 			FreeWild(fcount, fnames);
 | 
			
		||||
  		    }
 | 
			
		||||
  		}
 | 
			
		||||
! 		if (mustfree)
 | 
			
		||||
! 		    vim_free(rt);
 | 
			
		||||
  	    }
 | 
			
		||||
+ 	    break;
 | 
			
		||||
  	}
 | 
			
		||||
      }
 | 
			
		||||
  }
 | 
			
		||||
*** ../vim-7.3.340/src/version.c	2011-10-20 18:12:27.000000000 +0200
 | 
			
		||||
--- src/version.c	2011-10-20 18:13:46.000000000 +0200
 | 
			
		||||
***************
 | 
			
		||||
*** 711,712 ****
 | 
			
		||||
--- 711,714 ----
 | 
			
		||||
  {   /* Add new patch number below this line */
 | 
			
		||||
+ /**/
 | 
			
		||||
+     341,
 | 
			
		||||
  /**/
 | 
			
		||||
 | 
			
		||||
-- 
 | 
			
		||||
From "know your smileys":
 | 
			
		||||
 :-)-O	Smiling doctor with stethoscope
 | 
			
		||||
 | 
			
		||||
 /// 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    ///
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user