- if (argc <= 1) print_instructions_and_exit(argv[0]);
- else {
- int current_parameter = 0;
- if (argv[1][0] == '-') {
- if (argv[1][1] == 't') {
- current_parameter++;
- open_file_as_text = true;
- } else if (argv[1][1] == 'b') {
- current_parameter++;
- open_file_as_text = false;
- } else print_instructions_and_exit(argv[0]);
- }
- bool printed_header = false;
- while (++current_parameter < argc) {
- if (!printed_header) {
- printed_header = true;
+ if (argc <= 1) return print_instructions(false, argv[0]);
+
+ command_line cmds(argc, argv);
+ int index = 0;
+ if (cmds.find('b', index)) open_file_as_text = false;
+ index = 0;
+ if (cmds.find('t', index)) open_file_as_text = true;
+ index = 0;
+ if (cmds.find('q', index)) show_header = false;
+ index = 0;
+ if (cmds.find('?', index)) return print_instructions(true, argv[0]);
+ index = 0;
+ if (cmds.find("help", index)) return print_instructions(true, argv[0]);
+ bool printed_header = false;
+
+ for (int entry = 0; entry < cmds.entries(); entry++) {
+ command_parameter c = cmds.get(entry);
+ if (c.type() != command_parameter::VALUE) continue;
+ if (!printed_header) {
+ printed_header = true;
+ if (show_header) {