]> granicus.if.org Git - vim/commitdiff
patch 7.4.1671 v7.4.1671
authorBram Moolenaar <Bram@vim.org>
Mon, 28 Mar 2016 17:59:02 +0000 (19:59 +0200)
committerBram Moolenaar <Bram@vim.org>
Mon, 28 Mar 2016 17:59:02 +0000 (19:59 +0200)
Problem:    When help exists in multiple languages, adding @ab while "ab" is
            the default help language is unnecessary.
Solution:   Leave out "@ab" when not needed. (Ken Takata)

src/ex_getln.c
src/version.c

index 740c4b6cf933ca70694f5652b7e722dbe587022e..11824907eea450606b2f59042d777b10bd88ece3 100644 (file)
@@ -4491,7 +4491,9 @@ expand_cmdline(
 
 #ifdef FEAT_MULTI_LANG
 /*
- * Cleanup matches for help tags: remove "@en" if "en" is the only language.
+ * Cleanup matches for help tags:
+ * Remove "@ab" if the top of 'helplang' is "ab" and the language of the first
+ * tag matches it.  Otherwise remove "@en" if "en" is the only language.
  */
 static void    cleanup_help_tags(int num_file, char_u **file);
 
@@ -4500,11 +4502,28 @@ cleanup_help_tags(int num_file, char_u **file)
 {
     int                i, j;
     int                len;
+    char_u     buf[4];
+    char_u     *p = buf;
+
+    if (p_hlg[0] != NUL)
+    {
+       *p++ = '@';
+       *p++ = p_hlg[0];
+       *p++ = p_hlg[1];
+    }
+    *p = NUL;
 
     for (i = 0; i < num_file; ++i)
     {
        len = (int)STRLEN(file[i]) - 3;
-       if (len > 0 && STRCMP(file[i] + len, "@en") == 0)
+       if (len <= 0)
+           continue;
+       if (i == 0 && STRCMP(file[i] + len, buf) == 0)
+       {
+           file[i][len] = NUL;
+           break;
+       }
+       else if (STRCMP(file[i] + len, "@en") == 0)
        {
            /* Sorting on priority means the same item in another language may
             * be anywhere.  Search all items for a match up to the "@en". */
@@ -4514,7 +4533,10 @@ cleanup_help_tags(int num_file, char_u **file)
                        && STRNCMP(file[i], file[j], len + 1) == 0)
                    break;
            if (j == num_file)
+           {
                file[i][len] = NUL;
+               break;
+           }
        }
     }
 }
index 7039002fc5c4550d3de40916870d8b5cc010105a..a26efec391764b9d9fc74d0a63f3242d94bbae86 100644 (file)
@@ -748,6 +748,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1671,
 /**/
     1670,
 /**/