diff --git a/src/nano.c b/src/nano.c index d1dba354a57a8289bdf074a3138153f1f5ce54e0..04782ea85ffeab3e8034304658408846f9c86a6a 100644 --- a/src/nano.c +++ b/src/nano.c @@ -2557,7 +2557,8 @@ int main(int argc, char **argv) * non-option argument, and it is followed by at least one other * argument, the filename it applies to. */ if (0 < optind && optind < argc - 1 && argv[optind][0] == '+') { - parse_line_column(&argv[optind][1], &startline, &startcol); + if (!parse_line_column(&argv[optind][1], &startline, &startcol)) + statusline(ALERT, _("Invalid line or column number")); optind++; } @@ -2581,9 +2582,10 @@ int main(int argc, char **argv) for (; i < argc; i++) { /* If there's a +LINE or +LINE,COLUMN flag here, it is followed * by at least one other argument: the filename it applies to. */ - if (i < argc - 1 && argv[i][0] == '+') - parse_line_column(&argv[i][1], &iline, &icol); - else { + if (i < argc - 1 && argv[i][0] == '+') { + if (!parse_line_column(&argv[i][1], &iline, &icol)) + statusline(ALERT, _("Invalid line or column number")); + } else { /* If opening fails, don't try to position the cursor. */ if (!open_buffer(argv[i], FALSE)) continue; diff --git a/src/search.c b/src/search.c index bf6fcd84c7c81312fa1b161a6c2077cf000c87c9..7ca76e8d17e018d470fab34a550abae29c2508d8 100644 --- a/src/search.c +++ b/src/search.c @@ -894,7 +894,7 @@ void do_gotolinecolumn(ssize_t line, ssize_t column, bool use_answer, /* Try to extract one or two numbers from the user's response. */ if (!parse_line_column(answer, &line, &column)) { - statusbar(_("Invalid line or column number")); + statusline(ALERT, _("Invalid line or column number")); return; } } else { diff --git a/src/utils.c b/src/utils.c index bfd9d13c9d625a4fe28661774ec1bc9ef74bb787..74a18fa6ac1e02754c809bfde7d23c1df16b3af6 100644 --- a/src/utils.c +++ b/src/utils.c @@ -129,7 +129,7 @@ bool parse_line_column(const char *str, ssize_t *line, ssize_t *column) firstpart = mallocstrcpy(NULL, str); firstpart[comma - str] = '\0'; - retval = parse_num(firstpart, line); + retval = parse_num(firstpart, line) && retval; free(firstpart);