summaryrefslogtreecommitdiff
path: root/src/tools/entab/entab.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools/entab/entab.c')
-rw-r--r--src/tools/entab/entab.c153
1 files changed, 82 insertions, 71 deletions
diff --git a/src/tools/entab/entab.c b/src/tools/entab/entab.c
index 25526582280..b11b84989e9 100644
--- a/src/tools/entab/entab.c
+++ b/src/tools/entab/entab.c
@@ -1,10 +1,10 @@
/*
-** entab.c - add tabs to a text file
-** by Bruce Momjian ([email protected])
+** entab.c - add tabs to a text file
+** by Bruce Momjian ([email protected])
**
-** version 1.3
+** version 1.3
**
-** tabsize = 4
+** tabsize = 4
**
*/
@@ -12,78 +12,90 @@
#include <stdlib.h>
#include <string.h>
-#define NUL '\0'
+#define NUL '\0'
#ifndef TRUE
-#define TRUE 1
+#define TRUE 1
#endif
#ifndef FALSE
#define FALSE 0
#endif
-void halt();
-
-extern char *optarg;
-extern int optind;
+void halt();
-int main(argc, argv)
-int argc;
-char **argv;
+extern char *optarg;
+extern int optind;
+
+int
+main(argc, argv)
+int argc;
+char **argv;
{
- int tab_size = 8,
- min_spaces = 2,
- protect_quotes = FALSE,
- del_tabs = FALSE,
- clip_lines = FALSE,
- prv_spaces,
- col_in_tab,
- escaped,
- nxt_spaces;
- char in_line[BUFSIZ],
- out_line[BUFSIZ],
- *src,
- *dst,
- quote_char,
- ch,
- *cp;
- FILE *in_file;
-
- if ((cp = strrchr(argv[0],'/')) != NULL)
+ int tab_size = 8,
+ min_spaces = 2,
+ protect_quotes = FALSE,
+ del_tabs = FALSE,
+ clip_lines = FALSE,
+ prv_spaces,
+ col_in_tab,
+ escaped,
+ nxt_spaces;
+ char in_line[BUFSIZ],
+ out_line[BUFSIZ],
+ *src,
+ *dst,
+ quote_char,
+ ch,
+ *cp;
+ FILE *in_file;
+
+ if ((cp = strrchr(argv[0], '/')) != NULL)
++cp;
else
cp = argv[0];
- if (strcmp(cp,"detab") == 0)
+ if (strcmp(cp, "detab") == 0)
del_tabs = 1;
-
+
while ((ch = getopt(argc, argv, "cdhqs:t:")) != -1)
switch (ch)
{
- case 'c' : clip_lines = TRUE; break;
- case 'd' : del_tabs = TRUE; break;
- case 'q' : protect_quotes = TRUE; break;
- case 's' : min_spaces = atoi(optarg); break;
- case 't' : tab_size = atoi(optarg); break;
- case 'h' :
- case '?' :
- halt("USAGE: %s [ -cdqst ] [file ...]\n\
+ case 'c':
+ clip_lines = TRUE;
+ break;
+ case 'd':
+ del_tabs = TRUE;
+ break;
+ case 'q':
+ protect_quotes = TRUE;
+ break;
+ case 's':
+ min_spaces = atoi(optarg);
+ break;
+ case 't':
+ tab_size = atoi(optarg);
+ break;
+ case 'h':
+ case '?':
+ halt("USAGE: %s [ -cdqst ] [file ...]\n\
-c (clip trailing whitespace)\n\
-d (delete tabs)\n\
-q (protect quotes)\n\
-s minimum_spaces\n\
-t tab_width\n",
- cp);
+ cp);
}
argv += optind;
argc -= optind;
-
- do {
+
+ do
+ {
if (argc < 1)
in_file = stdin;
else
{
- if ( (in_file=fopen(*argv,"r")) == NULL)
- halt("PERROR: Can not open file %s\n",argv[0]);
+ if ((in_file = fopen(*argv, "r")) == NULL)
+ halt("PERROR: Can not open file %s\n", argv[0]);
argv++;
}
@@ -114,30 +126,30 @@ char **argv;
if (col_in_tab == tab_size)
{
+
/*
- Is the next character going to be a tab?
- Needed to do tab replacement in current spot
- if next char is going to be a tab, ignoring
- min_spaces
+ * Is the next character going to be a tab? Needed
+ * to do tab replacement in current spot if next
+ * char is going to be a tab, ignoring min_spaces
*/
nxt_spaces = 0;
while (1)
{
- if ( *(src+nxt_spaces+1) == NUL ||
- (*(src+nxt_spaces+1) != ' ' &&
- *(src+nxt_spaces+1) != '\t'))
+ if (*(src + nxt_spaces + 1) == NUL ||
+ (*(src + nxt_spaces + 1) != ' ' &&
+ *(src + nxt_spaces + 1) != '\t'))
break;
- if (*(src+nxt_spaces+1) == ' ')
+ if (*(src + nxt_spaces + 1) == ' ')
++nxt_spaces;
- if (*(src+nxt_spaces+1) == '\t' ||
- nxt_spaces == tab_size)
+ if (*(src + nxt_spaces + 1) == '\t' ||
+ nxt_spaces == tab_size)
{
nxt_spaces = tab_size;
break;
}
}
if ((prv_spaces >= min_spaces ||
- nxt_spaces == tab_size) &&
+ nxt_spaces == tab_size) &&
del_tabs == FALSE)
{
*(dst++) = '\t';
@@ -154,7 +166,7 @@ char **argv;
{
for (; prv_spaces > 0; prv_spaces--)
*(dst++) = ' ';
- if (*src == '\t') /* only when in quote */
+ if (*src == '\t') /* only when in quote */
col_in_tab = 0;
if (*src == '\b')
col_in_tab -= 2;
@@ -164,22 +176,21 @@ char **argv;
escaped = TRUE;
if (*src == '"' || *src == '\'')
if (quote_char == ' ')
- quote_char = *src;
+ quote_char = *src;
else if (*src == quote_char)
- quote_char = ' ';
+ quote_char = ' ';
}
- else
- if (*src != '\r' && *src != '\n')
- escaped = FALSE;
-
- if (( *src == '\r' || *src == '\n') &&
+ else if (*src != '\r' && *src != '\n')
+ escaped = FALSE;
+
+ if ((*src == '\r' || *src == '\n') &&
quote_char == ' ' &&
clip_lines == TRUE &&
escaped == FALSE)
{
while (dst > out_line &&
- (*(dst-1) == ' ' || *(dst-1) == '\t'))
- dst--;
+ (*(dst - 1) == ' ' || *(dst - 1) == '\t'))
+ dst--;
prv_spaces = 0;
}
*(dst++) = *src;
@@ -191,14 +202,14 @@ char **argv;
if (clip_lines == TRUE && escaped == FALSE)
{
while (dst > out_line &&
- (*(dst-1) == ' ' || *(dst-1) == '\t'))
- dst--;
+ (*(dst - 1) == ' ' || *(dst - 1) == '\t'))
+ dst--;
prv_spaces = 0;
}
for (; prv_spaces > 0; prv_spaces--)
*(dst++) = ' ';
*dst = NUL;
- if (fputs(out_line,stdout) == EOF)
+ if (fputs(out_line, stdout) == EOF)
halt("PERROR: Error writing output.\n");
}
} while (--argc > 0);