From 0a24a2c314a507108be754a0a2d2ed1a16ec523f Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Fri, 13 Sep 2019 17:23:02 -0700 Subject: rename: getdigits_safe => try_getdigits --- src/nvim/buffer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/nvim/buffer.c') diff --git a/src/nvim/buffer.c b/src/nvim/buffer.c index 8fd4360aed..056fe9e1e5 100644 --- a/src/nvim/buffer.c +++ b/src/nvim/buffer.c @@ -5078,7 +5078,7 @@ chk_modeline( } else { e = s + 3; } - if (getdigits_safe(&e, &vers) != OK) { + if (!try_getdigits(&e, &vers)) { continue; } -- cgit From 3344cffe7bf77c984550c01f9405f4d757150d8a Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Fri, 13 Sep 2019 18:15:09 -0700 Subject: getdigits: introduce `strict`, `def` parameters Problem: During a refactor long ago, we changed the `getdigits_*` familiy of functions to abort on overflow. But this is often wrong, because many of these codepaths are handling user input. Solution: Decide at each call-site whether to use "strict" mode. fix #5555 --- src/nvim/buffer.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) (limited to 'src/nvim/buffer.c') diff --git a/src/nvim/buffer.c b/src/nvim/buffer.c index 056fe9e1e5..7108742337 100644 --- a/src/nvim/buffer.c +++ b/src/nvim/buffer.c @@ -1017,7 +1017,7 @@ do_bufdel( } arg = p; } else - bnr = getdigits_int(&arg); + bnr = getdigits_int(&arg, false, 0); } } if (!got_int && do_current @@ -3626,10 +3626,7 @@ int build_stl_str_hl( // The first digit group is the item's min width if (ascii_isdigit(*fmt_p)) { - minwid = getdigits_int(&fmt_p); - if (minwid < 0) { // overflow - minwid = 0; - } + minwid = getdigits_int(&fmt_p, false, 0); } // User highlight groups override the min width field @@ -3712,10 +3709,7 @@ int build_stl_str_hl( if (*fmt_p == '.') { fmt_p++; if (ascii_isdigit(*fmt_p)) { - maxwid = getdigits_int(&fmt_p); - if (maxwid <= 0) { // overflow - maxwid = 50; - } + maxwid = getdigits_int(&fmt_p, false, 50); } } -- cgit From 6aae0e7c943267d2109ae20ec5086791c3b94a5e Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Fri, 13 Sep 2019 18:51:13 -0700 Subject: lint --- src/nvim/buffer.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/nvim/buffer.c') diff --git a/src/nvim/buffer.c b/src/nvim/buffer.c index 7108742337..b50c764ac3 100644 --- a/src/nvim/buffer.c +++ b/src/nvim/buffer.c @@ -1016,8 +1016,9 @@ do_bufdel( break; } arg = p; - } else + } else { bnr = getdigits_int(&arg, false, 0); + } } } if (!got_int && do_current -- cgit