vis
a vi-like editor based on Plan 9's structural regular expressions
git clone https://9o.is/git/vis.git
commit f9d18b3ec225423d8a988421daa36b2bad08919b parent 4765526b5cea4fe2ae8c05ad33827ae6659f1db7 Author: Tim Allen <screwtape@froup.com> Date: Sat, 21 May 2016 17:31:37 +1000 vis-menu: do not segfault if an option lacks an argument Diffstat:
| M | vis-menu.c | | | 20 | ++++++++++++++++---- |
1 file changed, 16 insertions(+), 4 deletions(-)
diff --git a/vis-menu.c b/vis-menu.c @@ -594,10 +594,22 @@ main(int argc, char **argv) { else if(!strcmp(argv[i], "-b")) barpos=-1; /* double flags */ - else if(!strcmp(argv[i], "-p")) - prompt=argv[++i]; - else if(!strcmp(argv[i], "-l")) - lines = atoi(argv[++i]); + else if(!strcmp(argv[i], "-p")) { + if(argc > i+1) + prompt=argv[++i]; + else { + fprintf(stderr, "Must provide a prompt\n"); + exit(EXIT_FAILURE); + } + } + else if(!strcmp(argv[i], "-l")) { + if(argc > i+1) + lines = atoi(argv[++i]); + else { + fprintf(stderr, "Must provide a line count\n"); + exit(EXIT_FAILURE); + } + } else { strncpy(text, argv[i], sizeof(text)-1); cursor = strlen(text);