handle our own flag errors
This commit is contained in:
@ -32,6 +32,7 @@ void errorn(int i, ...) {
|
||||
case E_FILE_DELETE: verror("failed to delete file '%s'", argv); break;
|
||||
case E_FILE_MOVE: verror("failed to move '%s' to '%s'", argv); break;
|
||||
case E_FORMAT: verror("directive-file format violation", argv); break;
|
||||
case E_FLAG: verror("unknown flag '%c'", argv); break;
|
||||
default: verror("unknown error encountered; this is an illegal inner state", 0); break;
|
||||
}
|
||||
|
||||
|
@ -7,6 +7,7 @@ enum {
|
||||
E_FILE_DELETE,
|
||||
E_FILE_MOVE,
|
||||
E_FORMAT,
|
||||
E_FLAG,
|
||||
};
|
||||
|
||||
extern void errorn(int i, ...);
|
||||
|
@ -5,9 +5,11 @@
|
||||
#include <string.h>
|
||||
#include <getopt.h>
|
||||
#include "global.h"
|
||||
#include "error.h"
|
||||
#include "dictate.h"
|
||||
|
||||
void usage() {
|
||||
static
|
||||
void usage(void) {
|
||||
dictate(
|
||||
"$B$gvimdir$0 $y[$boptions$y] <$bpath$y>$0\n"
|
||||
" $B$g-h$0 : print help\n"
|
||||
@ -44,6 +46,9 @@ void get_env(void) {
|
||||
|
||||
void parse_args(int argc, char * * argv) {
|
||||
int opt;
|
||||
|
||||
opterr = 0; // suppress default getopt error messages
|
||||
|
||||
while ((opt = getopt(argc, argv, "hnpor")) != -1) {
|
||||
switch (opt) {
|
||||
case 'h': {
|
||||
@ -62,11 +67,11 @@ void parse_args(int argc, char * * argv) {
|
||||
case 'r': {
|
||||
is_recursive = true;
|
||||
} break;
|
||||
default: {
|
||||
fprintf(stderr, "Unknown option: -%c\n", optopt);
|
||||
case '?': {
|
||||
errorn(E_FLAG, optopt);
|
||||
usage();
|
||||
exit(1);
|
||||
} break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user