Implement --version. Fixes: #973
authorPhil Pennock <pdp@exim.org>
Sun, 6 Jun 2010 02:08:50 +0000 (02:08 +0000)
committerPhil Pennock <pdp@exim.org>
Sun, 6 Jun 2010 02:08:50 +0000 (02:08 +0000)
doc/doc-docbook/spec.xfpt
doc/doc-txt/ChangeLog
doc/doc-txt/OptionLists.txt
src/src/exim.c

index 7237cc3dfd6b53414bf6f8df0ac1c6b87d549c14..7a9698e57428fd7d0360d183116de32edffb8b09 100644 (file)
@@ -1,4 +1,4 @@
-. $Cambridge: exim/doc/doc-docbook/spec.xfpt,v 1.81 2010/06/06 01:35:41 pdp Exp $
+. $Cambridge: exim/doc/doc-docbook/spec.xfpt,v 1.82 2010/06/06 02:08:50 pdp Exp $
 .
 . /////////////////////////////////////////////////////////////////////////////
 . This is the primary source of the Exim Manual. It is an xfpt document that is
@@ -2604,6 +2604,11 @@ This option causes Exim to output a few sentences stating what it is.
 The same output is generated if the Exim binary is called with no options and
 no arguments.
 
+.vitem &%--version%&
+.oindex "&%--version%&"
+This option is an alias for &%-bV%& and causes version information to be
+displayed.
+
 .vitem &%-B%&<&'type'&>
 .oindex "&%-B%&"
 .cindex "8-bit characters"
index 248e5752383f14711346c6235f3ec26c71d9081a..85edf47d1041f4d0a6bde47508379d4f4dff9a0e 100644 (file)
@@ -1,4 +1,4 @@
-$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.624 2010/06/06 01:35:41 pdp Exp $
+$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.625 2010/06/06 02:08:50 pdp Exp $
 
 Change log file for Exim from version 4.21
 -------------------------------------------
@@ -38,6 +38,8 @@ PP/10 Bugzilla 937: provide a "debug" ACL control.
 
 PP/11 Bugzilla 922: Documentation dusting, patch provided by John Horne.
 
+PP/12 Bugzilla 973: Implement --version.
+
 
 Exim version 4.72
 -----------------
index a99eb12354c4055269212d957a6fe743420b063b..89d86063e5a40d197933a572ae93731ecae7d6cf 100644 (file)
@@ -1,4 +1,4 @@
-$Cambridge: exim/doc/doc-txt/OptionLists.txt,v 1.36 2010/06/05 21:42:53 pdp Exp $
+$Cambridge: exim/doc/doc-txt/OptionLists.txt,v 1.37 2010/06/06 02:08:50 pdp Exp $
 
 LISTS OF EXIM OPTIONS
 ---------------------
@@ -600,6 +600,7 @@ provide compatibility with Sendmail.
 
 --               Terminate options
 --help           Give a little help (not a lot)
+--version        Give version information (alias for -bV)
 -B             * Ignored
 -bd            + Start daemon
 -bdf           + Start daemon and run it in the foreground
index 7d1c3b6a6a02fbfeba68d306fcbe0ed36f4914db..36f7a1b3d648b3d67acc5f3ae96d623baa5c4bb0 100644 (file)
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/exim.c,v 1.67 2010/06/06 00:27:52 pdp Exp $ */
+/* $Cambridge: exim/src/src/exim.c,v 1.68 2010/06/06 02:08:50 pdp Exp $ */
 
 /*************************************************
 *     Exim - an Internet mail transport agent    *
@@ -685,8 +685,8 @@ else
 *          Show supported features               *
 *************************************************/
 
-/* This function is called for -bV and for -d to output the optional features
-of the current Exim binary.
+/* This function is called for -bV/--version and for -d to output the optional
+features of the current Exim binary.
 
 Arguments:  a FILE for printing
 Returns:    nothing
@@ -1489,16 +1489,6 @@ running in an unprivileged state. */
 
 unprivileged = (real_uid != root_uid && original_euid != root_uid);
 
-/* If the first argument is --help, set usage_wanted and pretend there
-are no arguments. This will cause a brief message to be given.   We do
-the message generation downstream so we can pick up how we were invoked */
-
-if (argc > 1 && Ustrcmp(argv[1], "--help") == 0)
-  {
-  argc = 1;
-  usage_wanted = TRUE;
-  }
-
 /* Scan the program's arguments. Some can be dealt with right away; others are
 simply recorded for checking and handling afterwards. Do a high-level switch
 on the second character (the one after '-'), to save some effort. */
@@ -1563,6 +1553,21 @@ for (i = 1; i < argc; i++)
     argrest++;
     }
 
+  /* deal with --option_aliases */
+  else if (switchchar == '-')
+    {
+    if (Ustrcmp(argrest, "help") == 0)
+      {
+      usage_wanted = TRUE;
+      break;
+      }
+    else if (Ustrcmp(argrest, "version") == 0)
+      {
+      switchchar = 'b';
+      argrest = "V";
+      }
+    }
+
   /* High-level switch on active initial letter */
 
   switch(switchchar)