New entab version.

This commit is contained in:
Bruce Momjian 1997-09-06 03:14:38 +00:00
parent b71fba22e3
commit 5d68d3e957
1 changed files with 17 additions and 21 deletions

View File

@ -2,7 +2,7 @@
** entab.c - add tabs to a text file ** entab.c - add tabs to a text file
** by Bruce Momjian (root@candle.pha.pa.us) ** by Bruce Momjian (root@candle.pha.pa.us)
** **
** version 1.2 ** version 1.3
** **
** tabsize = 4 ** tabsize = 4
** **
@ -102,11 +102,11 @@ char **argv;
while (*src != NUL) while (*src != NUL)
{ {
col_in_tab++; col_in_tab++;
if (*src == ' ' || *src == '\t') if (quote_char == ' ' && (*src == ' ' || *src == '\t'))
{ {
if (*src == '\t') if (*src == '\t')
{ {
prv_spaces = prv_spaces + tab_size - col_in_tab + 1; prv_spaces += tab_size - col_in_tab + 1;
col_in_tab = tab_size; col_in_tab = tab_size;
} }
else else
@ -116,8 +116,8 @@ char **argv;
{ {
/* /*
Is the next character going to be a tab? Is the next character going to be a tab?
Needed to do tab replacement in current spot if Needed to do tab replacement in current spot
next char is going to be a tab, ignoring if next char is going to be a tab, ignoring
min_spaces min_spaces
*/ */
nxt_spaces = 0; nxt_spaces = 0;
@ -136,25 +136,17 @@ char **argv;
break; break;
} }
} }
if (quote_char == ' ') if ((prv_spaces >= min_spaces ||
nxt_spaces == tab_size) &&
del_tabs == FALSE)
{ {
if ((prv_spaces >= min_spaces || *(dst++) = '\t';
nxt_spaces == tab_size) && prv_spaces = 0;
del_tabs == FALSE)
{
*(dst++) = '\t';
prv_spaces = 0;
}
else
{
for (; prv_spaces > 0; prv_spaces--)
*(dst++) = ' ';
}
} }
else else
{ {
*(dst++) = *src; for (; prv_spaces > 0; prv_spaces--)
prv_spaces = 0; *(dst++) = ' ';
} }
} }
} }
@ -162,6 +154,8 @@ char **argv;
{ {
for (; prv_spaces > 0; prv_spaces--) for (; prv_spaces > 0; prv_spaces--)
*(dst++) = ' '; *(dst++) = ' ';
if (*src == '\t') /* only when in quote */
col_in_tab = 0;
if (*src == '\b') if (*src == '\b')
col_in_tab -= 2; col_in_tab -= 2;
if (escaped == FALSE && protect_quotes == TRUE) if (escaped == FALSE && protect_quotes == TRUE)
@ -179,7 +173,9 @@ char **argv;
escaped = FALSE; escaped = FALSE;
if (( *src == '\r' || *src == '\n') && if (( *src == '\r' || *src == '\n') &&
clip_lines == TRUE && escaped == FALSE) quote_char == ' ' &&
clip_lines == TRUE &&
escaped == FALSE)
{ {
while (dst > out_line && while (dst > out_line &&
(*(dst-1) == ' ' || *(dst-1) == '\t')) (*(dst-1) == ' ' || *(dst-1) == '\t'))