New entab version.
authorBruce Momjian
Sat, 6 Sep 1997 03:14:38 +0000 (03:14 +0000)
committerBruce Momjian
Sat, 6 Sep 1997 03:14:38 +0000 (03:14 +0000)
src/tools/entab/entab.c

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