aboutsummaryrefslogtreecommitdiffstats
path: root/tools/crlf.c
diff options
context:
space:
mode:
Diffstat (limited to 'tools/crlf.c')
-rw-r--r--tools/crlf.c52
1 files changed, 52 insertions, 0 deletions
diff --git a/tools/crlf.c b/tools/crlf.c
new file mode 100644
index 000000000..ecb6eecdb
--- /dev/null
+++ b/tools/crlf.c
@@ -0,0 +1,52 @@
+/* crlf.c
+ * Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
+ *
+ * This file is free software; as a special exception the author gives
+ * unlimited permission to copy and/or distribute it, with or without
+ * modifications, as long as this notice is preserved.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+#include <stdio.h>
+
+int
+main(int argc, char **argv)
+{
+ int c, lc;
+ int off=0;
+
+ if( argc > 1 ) {
+ fprintf(stderr, "no arguments, please\n");
+ return 1;
+ }
+
+ lc = -1;
+ while( (c=getchar()) != EOF ) {
+#if 0
+ if( c == '\r' && lc == ' ' )
+ fprintf(stderr,"SP,CR at %d\n", off );
+ if( c == '\n' && lc == ' ' )
+ fprintf(stderr,"SP,LF at %d\n", off );
+#endif
+ if( c == '\n' && lc == '\r' )
+ putchar(c);
+ else if( c == '\n' ) {
+ putchar('\r');
+ putchar(c);
+ }
+ else if( c != '\n' && lc == '\r' ) {
+ putchar('\n');
+ putchar(c);
+ }
+ else
+ putchar(c);
+
+ lc = c;
+ off++;
+ }
+
+ return 0;
+}