Bug fix for wget, and proper attribution of Chip Rosenthal and
authorEric Andersen <andersen@codepoet.org>
Thu, 14 Sep 2000 21:46:30 +0000 (21:46 -0000)
committerEric Andersen <andersen@codepoet.org>
Thu, 14 Sep 2000 21:46:30 +0000 (21:46 -0000)
Covad Communications for the contribution of wget.
 -Erik

AUTHORS
Changelog
networking/wget.c
wget.c

diff --git a/AUTHORS b/AUTHORS
index 918a0015b40326d85d31ce9103a04fe3f60211ad..441e7f79261e046523b39bbe0074c591ace2c1e0 100644 (file)
--- a/AUTHORS
+++ b/AUTHORS
@@ -46,6 +46,9 @@ Glenn McGrath <bug1@netconnect.com.au>
 Bruce Perens <bruce@pixar.com>
     Original author of BusyBox. His code is still in many apps.
 
+Chip Rosenthal <chip@unicom.com>, <crosenth@covad.com>
+    wget - Contributed by permission of Covad Communications
+
 Pavel Roskin <proski@gnu.org>
     Lots of bugs fixes and patches.
 
index 086ff2f8182eccfe3e9c6a5f5afbb09b57b10edd..958d7753fe2dbe77624eafd64654ef6958fd2f8b 100644 (file)
--- a/Changelog
+++ b/Changelog
@@ -13,6 +13,8 @@
            Sterling Huxley <sterling@europa.com>
        * lsmod now uses the query_module syscall, rather then /proc
        * Added 'rdate' command from Sterling Huxley <sterling@europa.com>
+       * Added 'wget' command, contributed by Chip Rosenthal <chip@unicom.com>, 
+               <crosenth@covad.com> and Covad Communications
        * Added 'getopt' from "Alfred M. Szmidt" <ams@trillian.itslinux.org>
        * Fixed chmod option parsing so things like 'chmod -r /tmp/file'
            wouldn't work (since it thought -r was an option).  Doh!
index 4f894fcaa6a43dd73b31e040a772a6ac6d0c4f55..c06e76d9081cdace349564c12ad9c62cdcce7f1f 100644 (file)
@@ -50,7 +50,7 @@ int wget_main(int argc, char **argv)
                        ++do_continue;
                        break;
                case 'O':
-                       fname_out = optarg;
+                       fname_out = (strcmp(optarg, "-") == 0 ? NULL : optarg);
                        break;
                default:
                        usage(wget_usage);
@@ -74,12 +74,8 @@ int wget_main(int argc, char **argv)
         * Open the output stream.
         */
        if (fname_out != NULL) {
-               /* Check if the file is supposed to go to stdout */
-               if (!strcmp(fname_out, "-") == 0) {
-                       /* Nope -- so open the output file */
-                       if (freopen(fname_out, (do_continue ? "a" : "w"), stdout) == NULL)
-                               fatalError("wget: freopen(%s): %s\n", fname_out, strerror(errno));
-               }
+               if (freopen(fname_out, (do_continue ? "a" : "w"), stdout) == NULL)
+                       fatalError("wget: freopen(%s): %s\n", fname_out, strerror(errno));
        }
 
        /*
@@ -248,7 +244,7 @@ char *gethdr(char *buf, size_t bufsiz, FILE *fp, int *istrunc)
                return hdrval;
        }
 
-       /* Rat!  The buffer isn't big enough to hold the entire header value. */
+       /* Rats!  The buffer isn't big enough to hold the entire header value. */
        while (c = getc(fp), c != EOF && c != '\n')
                ;
        *istrunc = 1;
diff --git a/wget.c b/wget.c
index 4f894fcaa6a43dd73b31e040a772a6ac6d0c4f55..c06e76d9081cdace349564c12ad9c62cdcce7f1f 100644 (file)
--- a/wget.c
+++ b/wget.c
@@ -50,7 +50,7 @@ int wget_main(int argc, char **argv)
                        ++do_continue;
                        break;
                case 'O':
-                       fname_out = optarg;
+                       fname_out = (strcmp(optarg, "-") == 0 ? NULL : optarg);
                        break;
                default:
                        usage(wget_usage);
@@ -74,12 +74,8 @@ int wget_main(int argc, char **argv)
         * Open the output stream.
         */
        if (fname_out != NULL) {
-               /* Check if the file is supposed to go to stdout */
-               if (!strcmp(fname_out, "-") == 0) {
-                       /* Nope -- so open the output file */
-                       if (freopen(fname_out, (do_continue ? "a" : "w"), stdout) == NULL)
-                               fatalError("wget: freopen(%s): %s\n", fname_out, strerror(errno));
-               }
+               if (freopen(fname_out, (do_continue ? "a" : "w"), stdout) == NULL)
+                       fatalError("wget: freopen(%s): %s\n", fname_out, strerror(errno));
        }
 
        /*
@@ -248,7 +244,7 @@ char *gethdr(char *buf, size_t bufsiz, FILE *fp, int *istrunc)
                return hdrval;
        }
 
-       /* Rat!  The buffer isn't big enough to hold the entire header value. */
+       /* Rats!  The buffer isn't big enough to hold the entire header value. */
        while (c = getc(fp), c != EOF && c != '\n')
                ;
        *istrunc = 1;