diff options
author | Felipe Morales <hel.sheep@gmail.com> | 2015-01-20 02:01:16 -0300 |
---|---|---|
committer | Felipe Morales <hel.sheep@gmail.com> | 2015-04-28 23:08:31 -0300 |
commit | 87953bf5ff44006567c7b8a210406d79ae9e4fad (patch) | |
tree | 8e7b6e7b16a5ba658f1ccc985b32d79b4d8d8e79 | |
parent | 7fc952ab67afdfef5ba2a90cb277b30ce573333c (diff) | |
download | rneovim-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.c | 2 | ||||
-rw-r--r-- | src/nvim/window.c | 27 |
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 * |