use getargs
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@5812 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
		@@ -38,6 +38,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#undef ROKEN_RENAME
 | 
					#undef ROKEN_RENAME
 | 
				
			||||||
#include "compile_et.h"
 | 
					#include "compile_et.h"
 | 
				
			||||||
 | 
					#include <getarg.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RCSID("$Id$");
 | 
					RCSID("$Id$");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -179,27 +180,50 @@ generate(void)
 | 
				
			|||||||
    return generate_c() || generate_h();
 | 
					    return generate_c() || generate_h();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int version_flag;
 | 
				
			||||||
 | 
					int help_flag;
 | 
				
			||||||
 | 
					struct getargs args[] = {
 | 
				
			||||||
 | 
					    { "version", 0, arg_flag, &version_flag },
 | 
				
			||||||
 | 
					    { "help", 0, arg_flag, &help_flag }
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					int num_args = sizeof(args) / sizeof(args[0]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static void
 | 
				
			||||||
 | 
					usage(int code)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    arg_printusage(args, num_args, NULL, "error-table");
 | 
				
			||||||
 | 
					    exit(code);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int
 | 
					int
 | 
				
			||||||
main(int argc, char **argv)
 | 
					main(int argc, char **argv)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    char *p;
 | 
					    char *p;
 | 
				
			||||||
    set_progname(argv[0]);
 | 
					    int optind = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if(argc != 2) {
 | 
					    set_progname(argv[0]);
 | 
				
			||||||
	fprintf(stderr, "Usage: %s error_table\n", __progname);
 | 
					    if(getarg(args, num_args, argc, argv, &optind))
 | 
				
			||||||
	exit(1);
 | 
						usage(1);
 | 
				
			||||||
 | 
					    if(help_flag)
 | 
				
			||||||
 | 
						usage(0);
 | 
				
			||||||
 | 
					    if(version_flag) {
 | 
				
			||||||
 | 
						print_version(NULL);
 | 
				
			||||||
 | 
						exit(0);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    filename = argv[1];
 | 
					
 | 
				
			||||||
 | 
					    if(optind == argc) 
 | 
				
			||||||
 | 
						usage(1);
 | 
				
			||||||
 | 
					    filename = argv[optind];
 | 
				
			||||||
    yyin = fopen(filename, "r");
 | 
					    yyin = fopen(filename, "r");
 | 
				
			||||||
    if(yyin == NULL)
 | 
					    if(yyin == NULL)
 | 
				
			||||||
	err(1, "%s", filename);
 | 
						err(1, "%s", filename);
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    p = strrchr(argv[1], '/');
 | 
					    p = strrchr(filename, '/');
 | 
				
			||||||
    if(p)
 | 
					    if(p)
 | 
				
			||||||
	p++;
 | 
						p++;
 | 
				
			||||||
    else
 | 
					    else
 | 
				
			||||||
	p = argv[1];
 | 
						p = filename;
 | 
				
			||||||
    strncpy(Basename, p, sizeof(Basename));
 | 
					    strncpy(Basename, p, sizeof(Basename));
 | 
				
			||||||
    Basename[sizeof(Basename) - 1] = '\0';
 | 
					    Basename[sizeof(Basename) - 1] = '\0';
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user