Fixed stdin/stdout paths so things like
    tar cvf - /etc/* | gzip -c9 >test.tgz
will now work.  Fix thanks to Dave Cinege <dcinege@psychosis.com>
with some adjustments by me to be mroe GNU-like.
 -Erik
diff --git a/gzip.c b/gzip.c
index 98ce259..19ad1a7 100644
--- a/gzip.c
+++ b/gzip.c
@@ -1801,6 +1801,7 @@
 	char *delFileName;
 	int tostdout = 0;
 	int fromstdin = 0;
+	int force = 0;
 
 	if (argc == 1)
 		usage(gzip_usage);
@@ -1808,7 +1809,6 @@
 	/* Parse any options */
 	while (--argc > 0 && **(++argv) == '-') {
 		if (*((*argv) + 1) == '\0') {
-			fromstdin = 1;
 			tostdout = 1;
 		}
 		while (*(++(*argv))) {
@@ -1816,11 +1816,25 @@
 			case 'c':
 				tostdout = 1;
 				break;
+			case 'f':
+				force = 1;
+				break;
+			/* Ignore 1-9 (compression level) options */
+			case '1': case '2': case '3': case '4': case '5':
+			case '6': case '7': case '8': case '9':
+				break;
 			default:
 				usage(gzip_usage);
 			}
 		}
 	}
+	if (argc <= 0)
+		fromstdin = 1;
+
+	if (isatty(fileno(stdin)) && fromstdin==1 && force==0)
+		fatalError( "data not read from terminal. Use -f to force it.\n");
+	if (isatty(fileno(stdout)) && tostdout==1 && force==0)
+		fatalError( "data not written to terminal. Use -f to force it.\n");
 
 	foreground = signal(SIGINT, SIG_IGN) != SIG_IGN;
 	if (foreground) {
@@ -1860,7 +1874,7 @@
 		ifile_size = -1L;		/* convention for unknown size */
 	} else {
 		/* Open up the input file */
-		if (*argv == '\0')
+		if (argc <= 0)
 			usage(gzip_usage);
 		strncpy(ifname, *argv, MAX_PATH_LEN);