# HG changeset patch # User jwe # Date 822949956 0 # Node ID 13c1e0718d68e9e6aaa1e8f5ad3e62c2c693c2e3 # Parent 747a99cbe1b00544746b70e3e282442329ecec45 [project @ 1996-01-29 21:12:36 by jwe] diff --git a/src/octave.cc b/src/octave.cc --- a/src/octave.cc +++ b/src/octave.cc @@ -45,8 +45,6 @@ #include -#include "getopt.h" - #include "lo-error.h" #include "builtins.h" @@ -65,6 +63,7 @@ #include "parse.h" #include "pathsearch.h" #include "procstream.h" +#include "prog-args.h" #include "sighandlers.h" #include "sysdep.h" #include "pt-const.h" @@ -126,7 +125,7 @@ #define INFO_FILE_OPTION 2 #define INFO_PROG_OPTION 3 #define TRADITIONAL_OPTION 4 -static struct option long_opts[] = +long_options long_opts[] = { { "debug", no_argument, 0, 'd' }, { "echo-commands", no_argument, 0, 'x' }, @@ -401,8 +400,10 @@ initialize_pathsearch (); + prog_args args (argc, argv, short_opts, long_opts); + int optc; - while ((optc = getopt_long (argc, argv, short_opts, long_opts, 0)) != EOF) + while ((optc = args.getopt ()) != EOF) { switch (optc) { @@ -428,8 +429,8 @@ break; case 'p': - if (optarg) - load_path = string (optarg); + if (args.optarg ()) + load_path = string (args.optarg ()); break; case 'q': @@ -445,18 +446,18 @@ break; case EXEC_PATH_OPTION: - if (optarg) - exec_path = string (optarg); + if (args.optarg ()) + exec_path = string (args.optarg ()); break; case INFO_FILE_OPTION: - if (optarg) - info_file = string (optarg); + if (args.optarg ()) + info_file = string (args.optarg ()); break; case INFO_PROG_OPTION: - if (optarg) - info_prog = string (optarg); + if (args.optarg ()) + info_prog = string (args.optarg ()); break; case TRADITIONAL_OPTION: @@ -516,11 +517,12 @@ // Additional arguments are taken as command line options for the // script. - int remaining_args = argc - optind; + int last_arg_idx = args.optind (); + int remaining_args = argc - last_arg_idx; if (remaining_args > 0) { reading_script_file = 1; - curr_fcn_file_name = argv[optind]; + curr_fcn_file_name = argv[last_arg_idx]; curr_fcn_file_full_name = curr_fcn_file_name; FILE *infile = get_input_from_file (curr_fcn_file_name); @@ -539,7 +541,7 @@ bind_builtin_variable ("program_name", tmp); - intern_argv (remaining_args, argv+optind); + intern_argv (remaining_args, argv+last_arg_idx); rl_blink_matching_paren = 0; switch_to_buffer (create_buffer (infile));