If a non-option command-line argument is specified to Ethereal, treat it
authorguy <guy@f5534014-38df-0310-8fa8-9805f1628bb7>
Sat, 24 Nov 2001 08:46:13 +0000 (08:46 +0000)
committerguy <guy@f5534014-38df-0310-8fa8-9805f1628bb7>
Sat, 24 Nov 2001 08:46:13 +0000 (08:46 +0000)
as the pathname of a capture file to be read.  If more than one such
option is specified, print a usage message.

Fix the documentation of the "-r" option to Ethereal and Tethereal.

git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@4253 f5534014-38df-0310-8fa8-9805f1628bb7

doc/ethereal.pod.template
doc/tethereal.pod.template
gtk/main.c

index 4a3a65f1e9a05cc151a088655a01e1b8be7f24bb..e59d57eacb26f6c6950dcb02a96c3f1d23faa7a9 100644 (file)
@@ -28,6 +28,7 @@ S<[ B<-T> tree view height ]>
 S<[ B<-t> time stamp format ]>
 S<[ B<-v> ]>
 S<[ B<-w> savefile]>
+S<[ infile ]>
 
 =head1 DESCRIPTION
 
@@ -72,6 +73,9 @@ Compressed file support uses (and therefore requires) the zlib library.
 If the zlib library is not present, B<Ethereal> will compile, but will
 be unable to read compressed files.
 
+The pathname of a capture file to be read can be specified with the
+B<-r> option or can be specified as a command-line argument.
+
 =head1 OPTIONS
 
 =over 4
@@ -166,7 +170,7 @@ B<-i> and B<-w> parameters.
 
 =item -r
 
-Reads packet data from I<file>.
+Reads packet data from I<infile>.
 
 =item -R
 
index e79d883364ca50207675a66308c2a2e6bc3caacd..cd593bcdf1807e8db84e9ca9cf6c2bcf146e748c 100644 (file)
@@ -194,7 +194,7 @@ machine.
 
 =item -r
 
-Reads packet data from I<file>.
+Reads packet data from I<infile>.
 
 =item -R
 
index 5aae224b85a4abde0411e4ad78db44623a6f501c..901f228fe6a4644b26f7f34b0c22ff8474d26b3d 100644 (file)
@@ -1,6 +1,6 @@
 /* main.c
  *
- * $Id: main.c,v 1.212 2001/11/21 23:16:26 gram Exp $
+ * $Id: main.c,v 1.213 2001/11/24 08:46:13 guy Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -798,14 +798,15 @@ print_usage(void) {
   fprintf(stderr, "\t[ -n ] [ -N <resolving> ]\n");
   fprintf(stderr, "\t[ -o <preference setting> ] ... [ -P <packet list height> ]\n");
   fprintf(stderr, "\t[ -r <infile> ] [ -R <read filter> ] [ -s <snaplen> ] \n");
-  fprintf(stderr, "\t[ -t <time stamp format> ] [ -T <tree view height> ] [ -w <savefile> ]\n");
+  fprintf(stderr, "\t[ -t <time stamp format> ] [ -T <tree view height> ]\n");
+  fprintf(stderr, "\t[ -w <savefile> ] [ <infile> ]\n");
 #else
   fprintf(stderr, "%s [ -vh ] [ -B <byte view height> ] [ -m <medium font> ]\n",
          PACKAGE);
   fprintf(stderr, "\t[ -n ] [ -N <resolving> ]\n");
   fprintf(stderr, "\t[ -o <preference setting> ... [ -P <packet list height> ]\n");
   fprintf(stderr, "\t[ -r <infile> ] [ -R <read filter> ] [ -t <time stamp format> ]\n");
-  fprintf(stderr, "\t[ -T <tree view height> ]\n");
+  fprintf(stderr, "\t[ -T <tree view height> ] [ <infile> ]\n");
 #endif
 }
 
@@ -1252,6 +1253,38 @@ main(int argc, char *argv[])
         break;
     }
   }
+  argc -= optind;
+  argv += optind;
+  if (argc >= 1) {
+    if (cf_name != NULL) {
+      /*
+       * Input file name specified with "-r" *and* specified as a regular
+       * command-line argument.
+       */
+      arg_error = TRUE;
+    } else {
+      /*
+       * Input file name not specified with "-r", and a command-line argument
+       * was specified; treat it as the input file name.
+       *
+       * Yes, this is different from tethereal, where non-flag command-line
+       * arguments are a filter, but this works better on GUI desktops
+       * where a command can be specified to be run to open a particular
+       * file - yes, you could have "-r" as the last part of the command,
+       * but that's a bit ugly.
+       */
+      cf_name = g_strdup(argv[0]);
+    }
+    argc--;
+    argv++;
+  }
+
+  if (argc != 0) {
+    /*
+     * Extra command line arguments were specified; complain.
+     */
+    arg_error = TRUE;
+  }
 
 #ifdef WIN32
   /* Load wpcap if possible */