aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelipe Morales <hel.sheep@gmail.com>2015-01-20 02:01:16 -0300
committerFelipe Morales <hel.sheep@gmail.com>2015-04-28 23:08:31 -0300
commit87953bf5ff44006567c7b8a210406d79ae9e4fad (patch)
tree8e7b6e7b16a5ba658f1ccc985b32d79b4d8d8e79
parent7fc952ab67afdfef5ba2a90cb277b30ce573333c (diff)
downloadrneovim-87953bf5ff44006567c7b8a210406d79ae9e4fad.tar.gz
rneovim-87953bf5ff44006567c7b8a210406d79ae9e4fad.tar.bz2
rneovim-87953bf5ff44006567c7b8a210406d79ae9e4fad.zip
vim-patch:7.4.546
Problem: Repeated use of vim_snprintf() with a number. Solution: Move these vim_snprintf() calls into a function. https://code.google.com/p/vim/source/detail?name=v7-4-546
-rw-r--r--src/nvim/version.c2
-rw-r--r--src/nvim/window.c27
2 files changed, 15 insertions, 14 deletions
diff --git a/src/nvim/version.c b/src/nvim/version.c
index 6ff3652e4e..3cf38f691f 100644
--- a/src/nvim/version.c
+++ b/src/nvim/version.c
@@ -233,7 +233,7 @@ static int included_patches[] = {
549,
//548 NA
547,
- //546,
+ 546,
545,
//544 NA
543,
diff --git a/src/nvim/window.c b/src/nvim/window.c
index 90f46c3410..f93e88deb2 100644
--- a/src/nvim/window.c
+++ b/src/nvim/window.c
@@ -124,10 +124,7 @@ do_window (
case Ctrl_HAT:
case '^':
CHECK_CMDWIN reset_VIsual_and_resel(); /* stop Visual mode */
- STRCPY(cbuf, "split #");
- if (Prenum)
- vim_snprintf((char *)cbuf + 7, sizeof(cbuf) - 7,
- "%" PRId64, (int64_t)Prenum);
+ cmd_with_count("split #", cbuf, sizeof(cbuf), Prenum);
do_cmdline_cmd(cbuf);
break;
@@ -151,9 +148,7 @@ newwindow:
case Ctrl_Q:
case 'q':
reset_VIsual_and_resel(); /* stop Visual mode */
- STRCPY(cbuf, "quit");
- if (Prenum)
- vim_snprintf((char *)cbuf + 4, sizeof(cbuf) - 5, "%ld", Prenum);
+ cmd_with_count("quit", cbuf, sizeof(cbuf), Prenum);
do_cmdline_cmd(cbuf);
break;
@@ -161,9 +156,7 @@ newwindow:
case Ctrl_C:
case 'c':
reset_VIsual_and_resel(); /* stop Visual mode */
- STRCPY(cbuf, "close");
- if (Prenum)
- vim_snprintf((char *)cbuf + 4, sizeof(cbuf) - 5, "%ld", Prenum);
+ cmd_with_count("close", cbuf, sizeof(cbuf), Prenum);
do_cmdline_cmd(cbuf);
break;
@@ -189,9 +182,7 @@ newwindow:
case Ctrl_O:
case 'o':
CHECK_CMDWIN reset_VIsual_and_resel(); /* stop Visual mode */
- STRCPY(cbuf, "only");
- if (Prenum > 0)
- vim_snprintf((char *)cbuf + 4, sizeof(cbuf) - 4, "%ld", Prenum);
+ cmd_with_count("only", cbuf, sizeof(cbuf), Prenum);
do_cmdline_cmd(cbuf);
break;
@@ -496,6 +487,16 @@ wingotofile:
}
}
+static void cmd_with_count(char *cmd, char_u *bufp, size_t bufsize,
+ long Prenum)
+{
+ size_t len = xstrlcpy((char *)bufp, cmd, bufsize);
+
+ if (Prenum > 0 && len < bufsize) {
+ vim_snprintf((char *)bufp + len, bufsize - len, "%" PRId64, Prenum);
+ }
+}
+
/*
* split the current window, implements CTRL-W s and :split
*