Add more C comments to entab.c.
authorBruce Momjian <bruce@momjian.us>
Wed, 29 Jan 2014 17:22:12 +0000 (12:22 -0500)
committerBruce Momjian <bruce@momjian.us>
Wed, 29 Jan 2014 17:22:22 +0000 (12:22 -0500)
src/tools/entab/entab.c

index c3b9776ea15348835ffd530f450e86fd44d3becd..41082202b58bb3f7e9470450f9e9d2feb7fda8cc 100644 (file)
@@ -27,6 +27,7 @@
 extern char *optarg;
 extern int optind;
 
+
 int
 main(int argc, char **argv)
 {
@@ -88,6 +89,7 @@ main(int argc, char **argv)
    argv += optind;
    argc -= optind;
 
+   /* process arguments */
    do
    {
        if (argc < 1)
@@ -104,6 +106,7 @@ main(int argc, char **argv)
 
        escaped = FALSE;
 
+       /* process lines */
        while (fgets(in_line, sizeof(in_line), in_file) != NULL)
        {
            col_in_tab = 0;
@@ -114,9 +117,11 @@ main(int argc, char **argv)
                quote_char = ' ';
            escaped = FALSE;
 
+           /* process line */
            while (*src != NUL)
            {
                col_in_tab++;
+               /* Is this a potential space/tab replacement? */
                if (quote_char == ' ' && (*src == ' ' || *src == '\t'))
                {
                    if (*src == '\t')
@@ -127,22 +132,26 @@ main(int argc, char **argv)
                    else
                        prv_spaces++;
 
+                   /* Are we at a tab stop? */
                    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?  We do
+                        * tab replacement in the current spot if the next
+                        * char is going to be a tab and ignore min_spaces.
                         */
                        nxt_spaces = 0;
                        while (1)
                        {
+                           /* Have we reached non-whitespace? */
                            if (*(src + nxt_spaces + 1) == NUL ||
                                (*(src + nxt_spaces + 1) != ' ' &&
                                 *(src + nxt_spaces + 1) != '\t'))
                                break;
+                           /* count spaces */
                            if (*(src + nxt_spaces + 1) == ' ')
                                ++nxt_spaces;
+                           /* Have we found a forward tab? */
                            if (*(src + nxt_spaces + 1) == '\t' ||
                                nxt_spaces == tab_size)
                            {
@@ -150,6 +159,7 @@ main(int argc, char **argv)
                                break;
                            }
                        }
+                       /* Do tab replacment for spaces? */
                        if ((prv_spaces >= min_spaces ||
                             nxt_spaces == tab_size) &&
                            del_tabs == FALSE)
@@ -158,40 +168,51 @@ main(int argc, char **argv)
                            prv_spaces = 0;
                        }
                        else
+                       /* output accumulated spaces */
                        {
                            for (; prv_spaces > 0; prv_spaces--)
                                *(dst++) = ' ';
                        }
                    }
                }
+               /* Not a potential space/tab replacement */
                else
                {
+                   /* output accumulated spaces */
                    for (; prv_spaces > 0; prv_spaces--)
                        *(dst++) = ' ';
-                   if (*src == '\t')   /* only when in quote */
+                   /* This can only happen in a quote. */
+                   if (*src == '\t')
                        col_in_tab = 0;
+                   /* visual backspace? */
                    if (*src == '\b')
                        col_in_tab -= 2;
+                   /* Do we process quotes? */
                    if (escaped == FALSE && protect_quotes == TRUE)
                    {
                        if (*src == '\\')
                            escaped = TRUE;
+                       /* Is this a quote character? */
                        if (*src == '"' || *src == '\'')
                        {
+                           /* toggle quote mode */
                            if (quote_char == ' ')
                                quote_char = *src;
                            else if (*src == quote_char)
                                quote_char = ' ';
                        }
                    }
+                   /* newlines/CRs do not terminate escapes */
                    else if (*src != '\r' && *src != '\n')
                        escaped = FALSE;
 
+                   /* reached newline/CR;  clip line? */
                    if ((*src == '\r' || *src == '\n') &&
-                       quote_char == ' ' &&
                        clip_lines == TRUE &&
+                       quote_char == ' ' &&
                        escaped == FALSE)
                    {
+                       /* trim spaces starting from the end */
                        while (dst > out_line &&
                               (*(dst - 1) == ' ' || *(dst - 1) == '\t'))
                            dst--;
@@ -210,9 +231,11 @@ main(int argc, char **argv)
                    dst--;
                prv_spaces = 0;
            }
+           /* output accumulated spaces */
            for (; prv_spaces > 0; prv_spaces--)
                *(dst++) = ' ';
            *dst = NUL;
+
            if (fputs(out_line, stdout) == EOF)
            {
                fprintf(stderr, "Cannot write to output file %s: %s\n", argv[0], strerror(errno));