From: Tom Lane <tgl@sss.pgh.pa.us>
To: Bruce Momjian <bruce@momjian.us>
Cc: Andres Freund <andres@anarazel.de>
Cc: Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
Cc: Alvaro Herrera <alvherre@2ndquadrant.com>
Cc: Robert Haas <robertmhaas@gmail.com>
Cc: Stephen Frost <sfrost@snowman.net>
Cc: pgsql-hackers@postgresql.org <pgsql-hackers@postgresql.org>
Cc: Piotr Stefaniak <postgres@piotr-stefaniak.me>
Subject: Re: Preliminary results for proposed new pgindent implementation
Date: Fri, 16 Jun 2017 15:56:47 -0400
Message-ID: <29590.1497643007@sss.pgh.pa.us> (raw)
In-Reply-To: <20170616190441.GB5081@momjian.us>
References: <20170519173111.zp6igkcg53egdy4s@alvherre.pgsql>
<cb9eebd2-0214-1f34-51af-ebb69ec8a711@2ndquadrant.com>
<29275.1497624664@sss.pgh.pa.us>
<8827.1497633050@sss.pgh.pa.us>
<20170616171946.qqy5tapovsamkxyg@alap3.anarazel.de>
<9900.1497634441@sss.pgh.pa.us>
<20170616180534.cdpduuq5a4twxuru@alap3.anarazel.de>
<12302.1497637380@sss.pgh.pa.us>
<20170616184238.GA5081@momjian.us>
<20170616185406.jpwq6o6ghpvprxmi@alap3.anarazel.de>
<20170616190441.GB5081@momjian.us>
List-Unsubscribe: <mailto:majordomo@postgresql.org?body=unsub%20pgsql-hackers>
One other thing I'd like to do while we're changing this stuff is
to get rid of the need for entab/detab. Right now, after doing
all the other work, my copy of pgindent is running the code through
detab and then entab so as to match the old decisions about how to
represent whitespace (ie, as spaces or tabs). This is grotty as
can be. I managed to tweak bsdindent so that its output matches
what entab would do, by dint of the attached patch, which implements
the rule "use a space instead of a tab if the tab would only move
one column and we don't need another tab after it". (I think entab
is being weird with the second half of that rule, but if I remove it,
I get circa a thousand lines of invisible whitespace changes; probably
better not to deal with those. With no patch at all, just letting
bsdindent do what it does now, there's circa ten thousand changed lines.)
Unless Piotr objects, I propose to add another switch to bsdindent
that selects this behavior, and then we can drop entab, removing
another impediment to getting pgindent working.
regards, tom lane
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackersAttachments:wip-tweak-tabbing-behavior.patch (text/x-diff, 870B) download
diff -ur /home/postgres/freebsd_indent/indent.c ./indent.c
--- /home/postgres/freebsd_indent/indent.c 2017-06-13 11:53:59.474524563 -0400+++ ./indent.c 2017-06-16 15:41:53.515416614 -0400@@ -1275,7 +1275,7 @@
CHECK_SIZE_CODE(cur_dec_ind / tabsize);
while ((tpos = tabsize * (1 + pos / tabsize)) <= cur_dec_ind) {
- *e_code++ = '\t';+ *e_code++ = (tpos > pos + 1 || cur_dec_ind >= tpos + tabsize) ? '\t' : ' ';
pos = tpos;
}
}
diff -ur /home/postgres/freebsd_indent/io.c ./io.c
--- /home/postgres/freebsd_indent/io.c 2017-06-13 11:53:59.475524587 -0400+++ ./io.c 2017-06-16 15:42:47.686762023 -0400@@ -399,7 +399,7 @@
int tcur;
while ((tcur = tabsize * (1 + (curr - 1) / tabsize) + 1) <= target) {
- putc('\t', output);+ putc((tcur > curr + 1 || target >= tcur + tabsize) ? '\t' : ' ', output);
curr = tcur;
}
}
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-hackers@postgresql.org
Cc: tgl@sss.pgh.pa.us, bruce@momjian.us, andres@anarazel.de, peter.eisentraut@2ndquadrant.com, alvherre@2ndquadrant.com, robertmhaas@gmail.com, sfrost@snowman.net, postgres@piotr-stefaniak.me
Subject: Re: Preliminary results for proposed new pgindent implementation
In-Reply-To: <29590.1497643007@sss.pgh.pa.us>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox