Thread: pgindent and tabs in comments

pgindent and tabs in comments

From
Peter Eisentraut
Date:
Apparently, pgindent replaces multiple spaces in comments by a tab
(possibly subject to additional logic).  An example among thousands:


http://git.postgresql.org/gitweb?p=postgresql.git;a=blobdiff_plain;f=src/backend/access/gin/ginentrypage.c;h=c23415c0075b5ec52f08e8ef698f7b7ec2f97b19;hp=5cbbc7455519eba6c37be465784a02b350065716;hb=aa1e9bb51c102b239340992f2fcce138edb39d8a;hpb=03ee49a016e69e7594978352df6da4e0bbd7d04a

(or just rgrep -F '.<TAB>' the tree to see more).

This doesn't make any sense to me.  Could this please be fixed, and if
possible reverted sometime?




Re: pgindent and tabs in comments

From
Bruce Momjian
Date:
Peter Eisentraut wrote:
> Apparently, pgindent replaces multiple spaces in comments by a tab
> (possibly subject to additional logic).  An example among thousands:
> 
>
http://git.postgresql.org/gitweb?p=postgresql.git;a=blobdiff_plain;f=src/backend/access/gin/ginentrypage.c;h=c23415c0075b5ec52f08e8ef698f7b7ec2f97b19;hp=5cbbc7455519eba6c37be465784a02b350065716;hb=aa1e9bb51c102b239340992f2fcce138edb39d8a;hpb=03ee49a016e69e7594978352df6da4e0bbd7d04a
> 
> (or just rgrep -F '.<TAB>' the tree to see more).
> 
> This doesn't make any sense to me.  Could this please be fixed, and if
> possible reverted sometime?

Oh, that is an interesting example. What the code does is if there are
several spaces and the next word is on a tab stop, the spaces are
convered to tabs, except if we are in a string.  This conversion is done
by 'entab' which we distribute in src/tools.  I am unclear how to fix
this _except_ to remove all tabs if the line starts with '*', but that
isn't foolproof, e.g.:
*var = 12;

--  Bruce Momjian  <bruce@momjian.us>        http://momjian.us EnterpriseDB
http://enterprisedb.com


Re: pgindent and tabs in comments

From
Peter Eisentraut
Date:
On tor, 2010-04-15 at 20:56 -0400, Bruce Momjian wrote:
> Peter Eisentraut wrote:
> > Apparently, pgindent replaces multiple spaces in comments by a tab
> > (possibly subject to additional logic).  An example among thousands:
> > 
> >
http://git.postgresql.org/gitweb?p=postgresql.git;a=blobdiff_plain;f=src/backend/access/gin/ginentrypage.c;h=c23415c0075b5ec52f08e8ef698f7b7ec2f97b19;hp=5cbbc7455519eba6c37be465784a02b350065716;hb=aa1e9bb51c102b239340992f2fcce138edb39d8a;hpb=03ee49a016e69e7594978352df6da4e0bbd7d04a
> > 
> > (or just rgrep -F '.<TAB>' the tree to see more).
> > 
> > This doesn't make any sense to me.  Could this please be fixed, and if
> > possible reverted sometime?
> 
> Oh, that is an interesting example. What the code does is if there are
> several spaces and the next word is on a tab stop, the spaces are
> convered to tabs, except if we are in a string.  This conversion is done
> by 'entab' which we distribute in src/tools.  I am unclear how to fix
> this _except_ to remove all tabs if the line starts with '*', but that
> isn't foolproof, e.g.:
> 
>     *var = 12;

Yeah, that explains it.  I don't have a good solution, unless entab
wants to keep track when it's inside a comment.



Re: pgindent and tabs in comments

From
Bruce Momjian
Date:
Peter Eisentraut wrote:
> On tor, 2010-04-15 at 20:56 -0400, Bruce Momjian wrote:
> > Peter Eisentraut wrote:
> > > Apparently, pgindent replaces multiple spaces in comments by a tab
> > > (possibly subject to additional logic).  An example among thousands:
> > > 
> > >
http://git.postgresql.org/gitweb?p=postgresql.git;a=blobdiff_plain;f=src/backend/access/gin/ginentrypage.c;h=c23415c0075b5ec52f08e8ef698f7b7ec2f97b19;hp=5cbbc7455519eba6c37be465784a02b350065716;hb=aa1e9bb51c102b239340992f2fcce138edb39d8a;hpb=03ee49a016e69e7594978352df6da4e0bbd7d04a
> > > 
> > > (or just rgrep -F '.<TAB>' the tree to see more).
> > > 
> > > This doesn't make any sense to me.  Could this please be fixed, and if
> > > possible reverted sometime?
> > 
> > Oh, that is an interesting example. What the code does is if there are
> > several spaces and the next word is on a tab stop, the spaces are
> > convered to tabs, except if we are in a string.  This conversion is done
> > by 'entab' which we distribute in src/tools.  I am unclear how to fix
> > this _except_ to remove all tabs if the line starts with '*', but that
> > isn't foolproof, e.g.:
> > 
> >     *var = 12;
> 
> Yeah, that explains it.  I don't have a good solution, unless entab
> wants to keep track when it's inside a comment.

I could add that code, but right now it isn't there.

--  Bruce Momjian  <bruce@momjian.us>        http://momjian.us EnterpriseDB
http://enterprisedb.com


Re: pgindent and tabs in comments

From
Peter Eisentraut
Date:
On mån, 2010-04-19 at 21:25 -0400, Bruce Momjian wrote:
> > > Oh, that is an interesting example. What the code does is if there are
> > > several spaces and the next word is on a tab stop, the spaces are
> > > convered to tabs, except if we are in a string.  This conversion is done
> > > by 'entab' which we distribute in src/tools.  I am unclear how to fix
> > > this _except_ to remove all tabs if the line starts with '*', but that
> > > isn't foolproof, e.g.:
> > > 
> > >     *var = 12;
> > 
> > Yeah, that explains it.  I don't have a good solution, unless entab
> > wants to keep track when it's inside a comment.
> 
> I could add that code, but right now it isn't there.

If you want to, I would appreciate it.  But it's not high priority.