From b1f88ed6c58934657b319874ea1d6a6675a37cd0 Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Sun, 19 Mar 2000 20:59:02 -0800 Subject: [PATCH] Convert CR-delimited text to LF-delimited --- txt.c | 78 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 txt.c diff --git a/txt.c b/txt.c new file mode 100644 index 0000000..02cde8c --- /dev/null +++ b/txt.c @@ -0,0 +1,78 @@ +#include +#include +#include +#include + +int +istxt (FILE *f) +{ + int nch = 0; + int ncr = 0; + int c; + + while ((c = getc (f)) != EOF) { + nch++; + + if (c == '\r') + ncr++; + if (c == '\n') + return 0; + } + + if (ncr > (nch / 80)) + return 1; + else + return 0; +} + +int +main (int argc, char **argv) +{ + int i; + + for (i = 1; i < argc; i++) { + FILE *f = fopen (argv[i], "r"); + int iftxt; + + if (!f) { + fprintf (stderr, "%s: %s: %s\n", argv[0], argv[i], + strerror (errno)); + continue; + } + + if (istxt (f)) { + char *ofn; + FILE *of; + int c; + + ofn = malloc (strlen (argv[i]) + 4 + 1); + if (!ofn) + abort(); + + sprintf (ofn, "%s.txt", argv[i]); + printf ("%s\n", ofn); + + of = fopen (ofn, "w"); + if (!of) { + fprintf (stderr, "%s: %s: %s\n", argv[0], + ofn, strerror (errno)); + fclose (f); + free (ofn); + continue; + } + + rewind (f); + while ((c = getc (f)) != EOF) { + if (c == '\r') + putc ('\n', of); + else + putc (c, of); + } + + fclose (of); + free (ofn); + } + + fclose (f); + } +}