From 08191b13f2911b5f371824fbc224fe66c336bc76 Mon Sep 17 00:00:00 2001 From: Andrew Gregory Date: Thu, 24 Oct 2013 19:52:59 -0400 Subject: check for -1 return value from getopt_long getopt_long returns -1 when it has finished parsing all args. A return value of 0 indicates that a flag was set directly by getopt_long and parsing should continue. Signed-off-by: Andrew Gregory Signed-off-by: Allan McRae --- src/pacman/pacman.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/src/pacman/pacman.c b/src/pacman/pacman.c index 3c9457a9..e5d16fc5 100644 --- a/src/pacman/pacman.c +++ b/src/pacman/pacman.c @@ -879,10 +879,8 @@ static int parseargs(int argc, char *argv[]) }; /* parse operation */ - while((opt = getopt_long(argc, argv, optstring, opts, &option_index))) { - if(opt < 0) { - break; - } else if(opt == 0) { + while((opt = getopt_long(argc, argv, optstring, opts, &option_index)) != -1) { + if(opt == 0) { continue; } else if(opt == '?') { /* unknown option, getopt printed an error */ @@ -906,10 +904,8 @@ static int parseargs(int argc, char *argv[]) /* parse all other options */ optind = 1; - while((opt = getopt_long(argc, argv, optstring, opts, &option_index))) { - if(opt < 0) { - break; - } else if(opt == 0) { + while((opt = getopt_long(argc, argv, optstring, opts, &option_index)) != -1) { + if(opt == 0) { continue; } else if(opt == '?') { /* this should have failed during first pass already */ -- cgit v1.2.3-70-g09d2