summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--text-utils/col.c4
-rw-r--r--text-utils/colcrt.c4
-rw-r--r--text-utils/colrm.c5
-rw-r--r--text-utils/column.c5
-rw-r--r--text-utils/hexdump.c2
-rw-r--r--text-utils/more.c18
-rw-r--r--text-utils/pg.c2
-rw-r--r--text-utils/rev.c2
-rw-r--r--text-utils/tailf.c2
-rw-r--r--text-utils/ul.c5
10 files changed, 29 insertions, 20 deletions
diff --git a/text-utils/col.c b/text-utils/col.c
index baec1945a..dc9e9c8b2 100644
--- a/text-utils/col.c
+++ b/text-utils/col.c
@@ -56,6 +56,7 @@
#include "xalloc.h"
#include "widechar.h"
#include "strutils.h"
+#include "closestream.h"
#define BS '\b' /* backspace */
#define TAB '\t' /* tab */
@@ -174,6 +175,7 @@ int main(int argc, char **argv)
setlocale(LC_ALL, "");
bindtextdomain(PACKAGE, LOCALEDIR);
textdomain(PACKAGE);
+ atexit(close_stdout);
max_bufd_lines = 128 * 2;
compress_spaces = 1; /* compress spaces into tabs */
@@ -388,8 +390,6 @@ int main(int argc, char **argv)
/* missing a \n on the last line? */
nblank_lines = 2;
flush_blanks();
- if (ferror(stdout) || fclose(stdout))
- return EXIT_FAILURE;
return ret;
}
diff --git a/text-utils/colcrt.c b/text-utils/colcrt.c
index d9806515e..3393d0cf3 100644
--- a/text-utils/colcrt.c
+++ b/text-utils/colcrt.c
@@ -47,6 +47,7 @@
#include "widechar.h"
#include "c.h"
+#include "closestream.h"
int plus(wchar_t c, wchar_t d);
void move(int l, int m);
@@ -93,6 +94,7 @@ int main(int argc, char **argv) {
setlocale(LC_ALL, "");
bindtextdomain(PACKAGE, LOCALEDIR);
textdomain(PACKAGE);
+ atexit(close_stdout);
/* Take care of lonely hyphen option. */
for (i = 0; i < argc; i++)
@@ -141,8 +143,6 @@ int main(int argc, char **argv) {
fclose(f);
} while (argc > 0);
fflush(stdout);
- if (ferror(stdout) || fclose(stdout))
- return EXIT_FAILURE;
return EXIT_SUCCESS;
}
diff --git a/text-utils/colrm.c b/text-utils/colrm.c
index d454643a0..910d933a2 100644
--- a/text-utils/colrm.c
+++ b/text-utils/colrm.c
@@ -41,11 +41,13 @@
#include <stdio.h>
#include <stdlib.h>
#include <getopt.h>
+#include <unistd.h>
#include "nls.h"
#include "widechar.h"
#include "strutils.h"
#include "c.h"
+#include "closestream.h"
/*
COLRM removes unwanted columns from a file
@@ -162,6 +164,7 @@ int main(int argc, char **argv)
setlocale(LC_ALL, "");
bindtextdomain(PACKAGE, LOCALEDIR);
textdomain(PACKAGE);
+ atexit(close_stdout);
while ((opt =
getopt_long(argc, argv, "bfhl:pxVH", longopts,
@@ -187,7 +190,5 @@ int main(int argc, char **argv)
;
fflush(stdout);
- if (ferror(stdout) || fclose(stdout))
- return EXIT_FAILURE;
return EXIT_SUCCESS;
}
diff --git a/text-utils/column.c b/text-utils/column.c
index 9d5befc13..b210a9381 100644
--- a/text-utils/column.c
+++ b/text-utils/column.c
@@ -55,6 +55,7 @@
#include "c.h"
#include "xalloc.h"
#include "strutils.h"
+#include "closestream.h"
#ifdef HAVE_WIDECHAR
#define wcs_width(s) wcswidth(s,wcslen(s))
@@ -131,6 +132,7 @@ int main(int argc, char **argv)
setlocale(LC_ALL, "");
bindtextdomain(PACKAGE, LOCALEDIR);
textdomain(PACKAGE);
+ atexit(close_stdout);
if (ioctl(STDIN_FILENO, TIOCGWINSZ, &win) == -1 || !win.ws_col) {
char *p;
@@ -203,9 +205,6 @@ int main(int argc, char **argv)
free(list[i]);
free(list);
- if (ferror(stdout) || fclose(stdout))
- eval += EXIT_FAILURE;
-
if (eval == 0)
return EXIT_SUCCESS;
else
diff --git a/text-utils/hexdump.c b/text-utils/hexdump.c
index 7edb053db..6f5335900 100644
--- a/text-utils/hexdump.c
+++ b/text-utils/hexdump.c
@@ -43,6 +43,7 @@
#include "nls.h"
#include "c.h"
+#include "closestream.h"
FS *fshead; /* head of format strings */
int blocksize; /* data block size */
@@ -57,6 +58,7 @@ int main(int argc, char **argv)
setlocale(LC_ALL, "");
bindtextdomain(PACKAGE, LOCALEDIR);
textdomain(PACKAGE);
+ atexit(close_stdout);
if (!(p = strrchr(argv[0], 'o')) || strcmp(p, "od")) {
newsyntax(argc, &argv);
diff --git a/text-utils/more.c b/text-utils/more.c
index 32eb765e9..aa1e4cc5c 100644
--- a/text-utils/more.c
+++ b/text-utils/more.c
@@ -56,11 +56,12 @@
#include <sys/stat.h>
#include <sys/file.h>
#include <sys/wait.h>
-#include "strutils.h"
+#include "strutils.h"
#include "nls.h"
#include "xalloc.h"
#include "widechar.h"
+#include "closestream.h"
#define _REGEX_RE_COMP
#include <regex.h>
@@ -90,7 +91,7 @@ void doclear(void);
void cleareol(void);
void clreos(void);
void home(void);
-void error (char *mess);
+void more_error (char *mess);
void do_shell (char *filename);
int colon (char *filename, int cmd, int nlines);
int expand (char **outbuf, char *inbuf);
@@ -330,6 +331,7 @@ int main(int argc, char **argv) {
setlocale(LC_ALL, "");
bindtextdomain(PACKAGE, LOCALEDIR);
textdomain(PACKAGE);
+ atexit(close_stdout);
nfiles = argc;
fnames = argv;
@@ -1589,7 +1591,7 @@ void search(char buf[], FILE *file, register int n)
context.chrctr = startline;
lncount = 0;
if ((s = re_comp (buf)) != 0)
- error (s);
+ more_error (s);
while (!feof (file)) {
line3 = line2;
line2 = line1;
@@ -1632,7 +1634,7 @@ void search(char buf[], FILE *file, register int n)
break;
}
} else if (rv == -1)
- error (_("Regular expression botch"));
+ more_error (_("Regular expression botch"));
}
if (feof (file)) {
if (!no_intty) {
@@ -1643,7 +1645,7 @@ void search(char buf[], FILE *file, register int n)
putsout(_("\nPattern not found\n"));
end_it (0);
}
- error (_("Pattern not found"));
+ more_error (_("Pattern not found"));
}
}
@@ -2025,7 +2027,7 @@ void ttyin (char buf[], register int nmax, char pchar) {
*--sp = '\0';
if (!eraseln) promptlen = maxlen;
if (sp - buf >= nmax - 1)
- error (_("Line too long"));
+ more_error (_("Line too long"));
}
/* return: 0 - unchanged, 1 - changed, -1 - overflow (unchanged) */
@@ -2060,7 +2062,7 @@ int expand (char **outbuf, char *inbuf) {
break;
case '!':
if (!shellp)
- error (_("No previous command to substitute for"));
+ more_error (_("No previous command to substitute for"));
strcpy (outstr, shell_line);
outstr += strlen (shell_line);
changed++;
@@ -2089,7 +2091,7 @@ void show (char c) {
promptlen++;
}
-void error (char *mess)
+void more_error (char *mess)
{
if (clreol)
cleareol ();
diff --git a/text-utils/pg.c b/text-utils/pg.c
index b61b1504f..2b5144252 100644
--- a/text-utils/pg.c
+++ b/text-utils/pg.c
@@ -63,6 +63,7 @@
#include "xalloc.h"
#include "widechar.h"
#include "writeall.h"
+#include "closestream.h"
#define READBUF LINE_MAX /* size of input buffer */
#define CMDBUF 255 /* size of command buffer */
@@ -1594,6 +1595,7 @@ main(int argc, char **argv)
setlocale(LC_MESSAGES, "");
bindtextdomain(PACKAGE, LOCALEDIR);
textdomain(PACKAGE);
+ atexit(close_stdout);
if (tcgetattr(1, &otio) == 0) {
ontty = 1;
diff --git a/text-utils/rev.c b/text-utils/rev.c
index 8a1666800..3c64c12d1 100644
--- a/text-utils/rev.c
+++ b/text-utils/rev.c
@@ -62,6 +62,7 @@
#include "xalloc.h"
#include "widechar.h"
#include "c.h"
+#include "closestream.h"
wchar_t *buf;
@@ -96,6 +97,7 @@ int main(int argc, char *argv[])
setlocale(LC_ALL, "");
bindtextdomain(PACKAGE, LOCALEDIR);
textdomain(PACKAGE);
+ atexit(close_stdout);
signal(SIGINT, sig_handler);
signal(SIGTERM, sig_handler);
diff --git a/text-utils/tailf.c b/text-utils/tailf.c
index c8f3e91db..10589d8bc 100644
--- a/text-utils/tailf.c
+++ b/text-utils/tailf.c
@@ -45,6 +45,7 @@
#include "usleep.h"
#include "strutils.h"
#include "c.h"
+#include "closestream.h"
#define DEFAULT_LINES 10
@@ -240,6 +241,7 @@ int main(int argc, char **argv)
setlocale(LC_ALL, "");
bindtextdomain(PACKAGE, LOCALEDIR);
textdomain(PACKAGE);
+ atexit(close_stdout);
static const struct option longopts[] = {
{ "lines", required_argument, 0, 'n' },
diff --git a/text-utils/ul.c b/text-utils/ul.c
index 6132166d0..c15e48091 100644
--- a/text-utils/ul.c
+++ b/text-utils/ul.c
@@ -54,6 +54,7 @@
#include "xalloc.h"
#include "widechar.h"
#include "c.h"
+#include "closestream.h"
#ifdef HAVE_WIDECHAR
/* Output an ASCII character as a wide character */
@@ -162,6 +163,7 @@ int main(int argc, char **argv)
setlocale(LC_ALL, "");
bindtextdomain(PACKAGE, LOCALEDIR);
textdomain(PACKAGE);
+ atexit(close_stdout);
signal(SIGINT, sig_handler);
signal(SIGTERM, sig_handler);
@@ -231,9 +233,6 @@ int main(int argc, char **argv)
filter(f);
fclose(f);
}
- if (ferror(stdout) || fclose(stdout))
- return EXIT_FAILURE;
-
free(obuf);
return EXIT_SUCCESS;
}