]> granicus.if.org Git - vim/commitdiff
updated for version 7.3.1187 v7.3.1187
authorBram Moolenaar <Bram@vim.org>
Thu, 13 Jun 2013 19:24:06 +0000 (21:24 +0200)
committerBram Moolenaar <Bram@vim.org>
Thu, 13 Jun 2013 19:24:06 +0000 (21:24 +0200)
Problem:    "s:" is recognized but "<SID>" is not. (ZyX)
Solution:   Translate "<SID>" like "s:".

src/eval.c
src/version.c

index 7e51a8a71f7ffd8beec46822271159f80238418b..980d15e74eaba1c87cf304cd6cc9a80780ce419c 100644 (file)
@@ -10976,21 +10976,22 @@ f_function(argvars, rettv)
        EMSG2(_("E700: Unknown function: %s"), s);
     else
     {
-       if (STRNCMP(s, "s:", 2) == 0)
+       if (STRNCMP(s, "s:", 2) == 0 || STRNCMP(s, "<SID>", 5) == 0)
        {
            char        sid_buf[25];
+           int         off = *s == 's' ? 2 : 5;
 
-           /* Expand s: into <SNR>nr_, so that the function can also be
-            * called from another script. Using trans_function_name() would
-            * also work, but some plugins depend on the name being printable
-            * text. */
+           /* Expand s: and <SID> into <SNR>nr_, so that the function can
+            * also be called from another script. Using trans_function_name()
+            * would also work, but some plugins depend on the name being
+            * printable text. */
            sprintf(sid_buf, "<SNR>%ld_", (long)current_SID);
            rettv->vval.v_string =
-                           alloc((int)(STRLEN(sid_buf) + STRLEN(s + 2) + 1));
+                           alloc((int)(STRLEN(sid_buf) + STRLEN(s + off) + 1));
            if (rettv->vval.v_string != NULL)
            {
                STRCPY(rettv->vval.v_string, sid_buf);
-               STRCAT(rettv->vval.v_string, s + 2);
+               STRCAT(rettv->vval.v_string, s + off);
            }
        }
        else
index ddc51d0fae4902924520898bd3fcd032e4ac299e..337bf308e5d49aaa678d8ecaaedf5fcb27102001 100644 (file)
@@ -728,6 +728,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1187,
 /**/
     1186,
 /**/