]> git.sur5r.net Git - openocd/commitdiff
Uwe Hermann: Add a --version switch for openocd.
authoroharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Fri, 29 Feb 2008 14:34:17 +0000 (14:34 +0000)
committeroharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Fri, 29 Feb 2008 14:34:17 +0000 (14:34 +0000)
git-svn-id: svn://svn.berlios.de/openocd/trunk@399 b42882b7-edfa-0310-969c-e2dbd0fdcd60

doc/openocd.1
src/helper/options.c

index f4ba7d96bf5618ce00be0b1c8757678217aef508..cfb99af9c3ba67fa67ccd39607680a73f0bfe3b9 100644 (file)
@@ -3,7 +3,7 @@
 openocd \- A free and open on\-chip debugging, in\-system programming and
 boundary\-scan testing tool for ARM systems
 .SH "SYNOPSIS"
-.B openocd \fR[\fB\-fsdlch\fR] [\fB\-\-file\fR <filename>] [\fB\-\-search\fR <dirname>] [\fB\-\-debug\fR <debuglevel>] [\fB\-\-log_output\fR <filename>] [\fB\-\-command\fR <cmd>] [\fB\-\-help\fR]
+.B openocd \fR[\fB\-fsdlchv\fR] [\fB\-\-file\fR <filename>] [\fB\-\-search\fR <dirname>] [\fB\-\-debug\fR <debuglevel>] [\fB\-\-log_output\fR <filename>] [\fB\-\-command\fR <cmd>] [\fB\-\-help\fR] [\fB\-\-version\fR]
 .SH "DESCRIPTION"
 .B OpenOCD
 is an on\-chip debugging, in\-system programming and boundary\-scan
@@ -60,9 +60,9 @@ Run the command
 .TP 
 .B "\-h, \-\-help"
 Show a help text and exit.
-.\".TP 
-.\".B "\-v, \-\-version"
-.\"Show version information and exit.
+.TP 
+.B "\-v, \-\-version"
+Show version information and exit.
 .SH "BUGS"
 Please report any bugs at
 .B http://developer.berlios.de/bugs/?group_id=4148
index 35ab0f5dfdc0e0308e2877397f6511034ecb1591..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}
 };
 
@@ -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.