Author: ed Date: Mon Feb 6 18:52:40 2012 New Revision: 231098 URL: http://svn.freebsd.org/changeset/base/231098
Log: Add a `fix' for another whitespace bug. If the sentence starts with a multiple of eight spaces, the sentence should in almost all practical cases have started with tabs instead. Replace these spaces by tabs. Modified: head/tools/tools/fixwhite/fixwhite.1 head/tools/tools/fixwhite/fixwhite.c Modified: head/tools/tools/fixwhite/fixwhite.1 ============================================================================== --- head/tools/tools/fixwhite/fixwhite.1 Mon Feb 6 18:47:07 2012 (r231097) +++ head/tools/tools/fixwhite/fixwhite.1 Mon Feb 6 18:52:40 2012 (r231098) @@ -41,6 +41,8 @@ and prints the result to standard output It removes leading and trailing empty lines from the input, as well as trailing whitespace characters from ever line of text. Multiple successive empty lines are merged together. +If the whitespace at the beginning of a sentence is exactly a multiple +of eight spaces, the whitespace is replaced by tabs. Also, spaces preceeding tabs will be merged into the tab character. .Sh AUTHORS .An Ed Schouten Aq e...@freebsd.org Modified: head/tools/tools/fixwhite/fixwhite.c ============================================================================== --- head/tools/tools/fixwhite/fixwhite.c Mon Feb 6 18:47:07 2012 (r231097) +++ head/tools/tools/fixwhite/fixwhite.c Mon Feb 6 18:52:40 2012 (r231098) @@ -110,6 +110,19 @@ savewhite(char c, bool leading) static void printwhite(void) { + off_t i; + + /* Merge spaces at the start of a sentence to tabs if possible. */ + if ((column % 8) == 0) { + for (i = 0; i < column; i++) + if (!peekbyte(i + 1, ' ')) + break; + if (i == column) { + queuelen -= column; + for (i = 0; i < column; i += 8) + queue[queuelen++] = '\t'; + } + } if (fwrite(queue, 1, queuelen, stdout) != queuelen) { perror("write"); _______________________________________________ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"