Uwe Hermann: Add a --version switch for openocd.
[openocd.git] / src / helper / options.c
index 6e1f10b7796cd7c49d29a971d969717689fefc26..b037a5eda55b9475ae817accc662ce7e473e755a 100644 (file)
 #include <getopt.h>
 #include <string.h>
 
-static int help_flag;
+static int help_flag, version_flag;
 
 static struct option long_options[] =
 {
-       {"help",                        no_argument,    &help_flag, 1},
-
-       {"debug",                       optional_argument,      0, 'd'},
-       {"file",                        required_argument,      0, 'f'},
-       {"search",                      required_argument,      0, 's'},
-       {"log_output",          required_argument,      0, 'l'},
-       {"command",                     required_argument,      0, 'c'},
-       
+       {"help",        no_argument,            &help_flag,     1},
+       {"version",     no_argument,            &version_flag,  1},
+       {"debug",       optional_argument,      0,              'd'},
+       {"file",        required_argument,      0,              'f'},
+       {"search",      required_argument,      0,              's'},
+       {"log_output",  required_argument,      0,              'l'},
+       {"command",     required_argument,      0,              'c'},
        {0, 0, 0, 0}
 };
 
 int configuration_output_handler(struct command_context_s *context, char* line)
 {
-       INFO_SAMELINE(line);
+       INFO_N(line);
 
        return ERROR_OK;
 }
@@ -63,7 +62,7 @@ int parse_cmdline_args(struct command_context_s *cmd_ctx, int argc, char *argv[]
                /* getopt_long stores the option index here. */
                int option_index = 0;
                
-               c = getopt_long(argc, argv, "hd::l:f:s:c:", long_options, &option_index);
+               c = getopt_long(argc, argv, "hvd::l:f:s:c:", long_options, &option_index);
                
                /* Detect the end of the options. */
                if (c == -1)
@@ -76,6 +75,9 @@ int parse_cmdline_args(struct command_context_s *cmd_ctx, int argc, char *argv[]
                        case 'h':       /* --help | -h */
                                help_flag = 1;
                                break;
+                       case 'v':       /* --version | -v */
+                               version_flag = 1;
+                               break;
                        case 'f':       /* --file | -f */
                                snprintf(command_buffer, 128, "script %s", optarg);
                                add_config_file_name(command_buffer);
@@ -109,8 +111,9 @@ int parse_cmdline_args(struct command_context_s *cmd_ctx, int argc, char *argv[]
 
        if (help_flag)
        {
-               OUTPUT("Open On-Chip Debugger\n(c) 2005 by Dominic Rath\n\n");
+               OUTPUT("Open On-Chip Debugger\n(c) 2005-2008 by Dominic Rath\n\n");
                OUTPUT("--help       | -h\tdisplay this help\n");
+               OUTPUT("--version    | -v\tdisplay OpenOCD version\n");
                OUTPUT("--file       | -f\tuse configuration file <name>\n");
                OUTPUT("--search     | -s\tdir to search for config files and scripts.\n");
                OUTPUT("--debug      | -d\tset debug level <0-3>\n");
@@ -119,6 +122,12 @@ int parse_cmdline_args(struct command_context_s *cmd_ctx, int argc, char *argv[]
                exit(-1);
        }       
 
+       if (version_flag)
+       {
+               /* Nothing to do, version gets printed automatically. */
+               exit(-1);
+       }       
+
 #ifdef _WIN32
        /* Add the parent of the directory where openocd.exe resides to the
         * config script search path.

Linking to existing account procedure

If you already have an account and want to add another login method you MUST first sign in with your existing account and then change URL to read https://review.openocd.org/login/?link to get to this page again but this time it'll work for linking. Thank you.

SSH host keys fingerprints

1024 SHA256:YKx8b7u5ZWdcbp7/4AeXNaqElP49m6QrwfXaqQGJAOk gerrit-code-review@openocd.zylin.com (DSA)
384 SHA256:jHIbSQa4REvwCFG4cq5LBlBLxmxSqelQPem/EXIrxjk gerrit-code-review@openocd.org (ECDSA)
521 SHA256:UAOPYkU9Fjtcao0Ul/Rrlnj/OsQvt+pgdYSZ4jOYdgs gerrit-code-review@openocd.org (ECDSA)
256 SHA256:A13M5QlnozFOvTllybRZH6vm7iSt0XLxbA48yfc2yfY gerrit-code-review@openocd.org (ECDSA)
256 SHA256:spYMBqEYoAOtK7yZBrcwE8ZpYt6b68Cfh9yEVetvbXg gerrit-code-review@openocd.org (ED25519)
+--[ED25519 256]--+
|=..              |
|+o..   .         |
|*.o   . .        |
|+B . . .         |
|Bo. = o S        |
|Oo.+ + =         |
|oB=.* = . o      |
| =+=.+   + E     |
|. .=o   . o      |
+----[SHA256]-----+
2048 SHA256:0Onrb7/PHjpo6iVZ7xQX2riKN83FJ3KGU0TvI0TaFG4 gerrit-code-review@openocd.zylin.com (RSA)