summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <bram@vim.org>2013-06-13 21:24:06 +0200
committerBram Moolenaar <bram@vim.org>2013-06-13 21:24:06 +0200
commit9bdcbf369aeaa2f66616133d09c751cee3432ca5 (patch)
tree0469c1861d39bb34df883988d668ba12d07b9217
parentedb9af7e6237adfd314a366dc31f51c0947c906e (diff)
downloadvim-9bdcbf369aeaa2f66616133d09c751cee3432ca5.tar.gz
updated for version 7.3.1187v7.3.1187v7-3-1187
Problem: "s:" is recognized but "<SID>" is not. (ZyX) Solution: Translate "<SID>" like "s:".
-rw-r--r--src/eval.c15
-rw-r--r--src/version.c2
2 files changed, 10 insertions, 7 deletions
diff --git a/src/eval.c b/src/eval.c
index 7e51a8a7..980d15e7 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -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
diff --git a/src/version.c b/src/version.c
index ddc51d0f..337bf308 100644
--- a/src/version.c
+++ b/src/version.c
@@ -729,6 +729,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1187,
+/**/
1186,
/**/
1185,