Date: Mon, 6 Feb 2012 18:52:40 +0000 (UTC) From: Ed Schouten <ed@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r231098 - head/tools/tools/fixwhite Message-ID: <201202061852.q16IqeIx049110@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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 ed@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");
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201202061852.q16IqeIx049110>