]> err.no Git - moreutils/commitdiff
* spongs: Output to stdout if no file is specified, useful in a pipeline
authorjoeyh <joeyh>
Thu, 14 Sep 2006 19:13:26 +0000 (19:13 +0000)
committerjoeyh <joeyh>
Thu, 14 Sep 2006 19:13:26 +0000 (19:13 +0000)
  such as: cvs diff | sponge | patch -R -p0
Closes: #387501
debian/changelog
sponge.c
sponge.docbook

index f10b43d31a3564a58c820eca3db249b73b02ab00..145692e005fd5361d852abd342b3d6440c476572 100644 (file)
@@ -1,8 +1,11 @@
 moreutils (0.18) UNRELEASED; urgency=low
 
   * mispipe.docbook: Typo. Closes: #386756
+  * spongs: Output to stdout if no file is specified, useful in a pipeline
+    such as: cvs diff | sponge | patch -R -p0
+    Closes: #387501
 
- -- Joey Hess <joeyh@debian.org>  Sat,  9 Sep 2006 18:46:41 -0400
+ -- Joey Hess <joeyh@debian.org>  Thu, 14 Sep 2006 15:11:55 -0400
 
 moreutils (0.17) unstable; urgency=low
 
index 0389ef7408569da53290d8a2fc6d870bd3fa989e..a7914eadccc88d4a3cb0b08cf2245337aac58036 100644 (file)
--- a/sponge.c
+++ b/sponge.c
@@ -41,7 +41,7 @@ int main(int argc, char **argv) {
        ssize_t i = 0;
        int outfd;
        
-       if (argc != 2) {
+       if (argc > 2 || (argc == 2 && strcmp(argv[1], "-h") == 0)) {
                usage();
        }
   
@@ -68,10 +68,15 @@ int main(int argc, char **argv) {
                exit(1);
        }
   
-       outfd = open(argv[1], O_CREAT | O_TRUNC | O_WRONLY, 0666);
-       if (outfd == -1) {
-               fprintf(stderr, "Can't open %s: %s\n", argv[1], strerror(errno));
-               exit(1);
+       if (argc == 2) {
+               outfd = open(argv[1], O_CREAT | O_TRUNC | O_WRONLY, 0666);
+               if (outfd == -1) {
+                       fprintf(stderr, "Can't open %s: %s\n", argv[1], strerror(errno));
+                       exit(1);
+               }
+       }
+       else {
+               outfd = 1;
        }
 
        i = write(outfd, bufstart, bufused);
index 674ef05fd97050d947997a4c19e671bdf241e925..f9395a72eb845f0c8007dd2777501a305243f579 100644 (file)
@@ -59,6 +59,8 @@ USA
                        opening the output file. This allows for
                        constructing pipelines that read from and write to
                        the same file. </para>
+               <para>If no output file is specified, sponge outputs to
+                       stdout.</para>
 
        </refsect1>
 </refentry>