>From FAQ_DEV:

"pgindent will format source files to match our standard format, which
 has four-space tabs, and an indenting format specified by flags to the
 your operating system's utility indent."

Then why are all files indented with eight spaces? I personally like the
four spaces, straight bsd style in Emacs and -orig in indent. But at least
it should be consistent.

Also, how can I prevent this from happening:

void
print_copyright(void)
{
        puts(
                 "
                 PostgreSQL Data Base Management System
 
                 Copyright(c) 1996 - 9 PostgreSQL Global Development Group
  
instead of

void                                                                              
print_copyright(void)                                                             
{                                                                                 
        puts(                                                                     
"                                                                
PostgreSQL Data Base Management System

Copyright(c) 1996 - 9 PostgreSQL Global Development Group

?
Looks really ugly in the output.

-- 
Peter Eisentraut                  Sernanders vaeg 10:115
peter_e@gmx.net                   75262 Uppsala
http://yi.org/peter-e/            Sweden


Mon, 8 Nov 1999 23:55:33 +0100 (CET)
Peter Eisentraut <peter_e@gmx.net>
Indent
> >From FAQ_DEV:
> 
> "pgindent will format source files to match our standard format, which
>  has four-space tabs, and an indenting format specified by flags to the
>  your operating system's utility indent."
> 
> Then why are all files indented with eight spaces? I personally like the
> four spaces, straight bsd style in Emacs and -orig in indent. But at least
> it should be consistent.

My guess is that you have tabs set to four spaces in your editor. 
Change it to 4-space tabs and you will be fine.

> 
> Also, how can I prevent this from happening:
> 
> void
> print_copyright(void)
> {
>         puts(
>                  "
>                  PostgreSQL Data Base Management System
>  
>                  Copyright(c) 1996 - 9 PostgreSQL Global Development Group
>   
> instead of
> 
> void                                                                              
> print_copyright(void)                                                             
> {                                                                                 
>         puts(                                                                     
> "                                                                
> PostgreSQL Data Base Management System
> 
> Copyright(c) 1996 - 9 PostgreSQL Global Development Group
> 
> ?
> Looks really ugly in the output.

Yes, it certainly does.  I changed it the quotes to "   " newline "  ",
and committed the cleanup.  Ran it through pgindent and it looks fine
now.

-- 
  Bruce Momjian                        |  http://www.op.net/~candle
  maillist@candle.pha.pa.us            |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026

Tue, 9 Nov 1999 20:19:48 -0500 (EST)
Bruce Momjian <maillist@candle.pha.pa.us>
Re: [HACKERS] Indent
> "pgindent will format source files to match our standard format, which
>  has four-space tabs, and an indenting format specified by flags to the
>  your operating system's utility indent."
> Then why are all files indented with eight spaces?

The FAQ isn't clear on this at all. pg_indent *assumes* that all tabs
will be four spaces. One must set vi or emacs to tab every four spaces
for things to look right.

Apparently we never send source code directly to a printer ;)

               - Thomas

-- 
Thomas Lockhart				lockhart@alumni.caltech.edu
South Pasadena, California

Wed, 10 Nov 1999 03:09:55 +0000
Thomas Lockhart <lockhart@alumni.caltech.edu>
Re: [HACKERS] Indent
> > "pgindent will format source files to match our standard format, which
> >  has four-space tabs, and an indenting format specified by flags to the
> >  your operating system's utility indent."
> > Then why are all files indented with eight spaces?
> 
> The FAQ isn't clear on this at all. pg_indent *assumes* that all tabs
> will be four spaces. One must set vi or emacs to tab every four spaces
> for things to look right.

DEV FAQ says:

<I>pgindent</I> will format source files to match our standard format,
which has four-space tabs, 

> 
> Apparently we never send source code directly to a printer ;)

I run it through vgrind or use crisp to print with color syntax
highlighting.  However, I do convert the tabs to 4-character spaces
before printing.  It is a pain, but indenting/unindenting without
tab=indent level is a pain, and 8-space tabs are too large.


-- 
  Bruce Momjian                        |  http://www.op.net/~candle
  maillist@candle.pha.pa.us            |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026

Tue, 9 Nov 1999 22:55:47 -0500 (EST)
Bruce Momjian <maillist@candle.pha.pa.us>
Re: [HACKERS] Indent
> > > "pgindent will format source files to match our standard format, which
> > >  has four-space tabs, and an indenting format specified by flags to the
> > >  your operating system's utility indent."
> > > Then why are all files indented with eight spaces?
> > The FAQ isn't clear on this at all. pgindent *assumes* that all tabs
> > will be four spaces. One must set vi or emacs to tab every four spaces
> > for things to look right.
> DEV FAQ says:
> <I>pgindent</I> will format source files to match our standard format,
> which has four-space tabs,

Right, I saw this the first time ;)

My point is that this statement is ambiguous, particularly for those
who didn't grow up in Pennsylvania or some other all-English locale.
"four-space tabs" could imply that all tabs are filled with four
spaces, but in fact pgindent replaces every four spaces with a tab.

I haven't stumbled across any mention of setting text editors or
printing, which if it was mentioned might reduce the possibility for
confusion.

                   - Thomas

-- 
Thomas Lockhart				lockhart@alumni.caltech.edu
South Pasadena, California

Wed, 10 Nov 1999 04:20:08 +0000
Thomas Lockhart <lockhart@alumni.caltech.edu>
Re: [HACKERS] Indent
> My point is that this statement is ambiguous, particularly for those
> who didn't grow up in Pennsylvania or some other all-English locale.
> "four-space tabs" could imply that all tabs are filled with four
> spaces, but in fact pgindent replaces every four spaces with a tab.
> 
> I haven't stumbled across any mention of setting text editors or
> printing, which if it was mentioned might reduce the possibility for
> confusion.

New DEV FAQ reads:

Our standard format is to indent each code level with one tab, where
each tab is four spaces.  You will need to set your editor to display
tabs as four spaces.  <I>pgindent</I> will the format code by specifying
flags to your operating system's utility <I>indent.</I><P>   
<I>pgindent</I> is run on all source files just before each beta test

-- 
  Bruce Momjian                        |  http://www.op.net/~candle
  maillist@candle.pha.pa.us            |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026

Tue, 9 Nov 1999 23:58:39 -0500 (EST)
Bruce Momjian <maillist@candle.pha.pa.us>
Re: [HACKERS] Indent
Thus spake Thomas Lockhart
> The FAQ isn't clear on this at all. pg_indent *assumes* that all tabs
> will be four spaces. One must set vi or emacs to tab every four spaces
> for things to look right.
> 
> Apparently we never send source code directly to a printer ;)

Or else we pipe it through "pr -e4" first.

-- 
D'Arcy J.M. Cain <darcy@{druid|vex}.net>   |  Democracy is three wolves
http://www.druid.net/darcy/                |  and a sheep voting on
+1 416 425 1212     (DoD#0082)    (eNTP)   |  what's for dinner.

Wed, 10 Nov 1999 05:59:26 -0500 (EST)
"D'Arcy" "J.M." Cain <darcy@druid.net>
Re: [HACKERS] Indent
Hi Peter,
	This puzzled me for some time too, I am guessing that you are using
emacs to edit the code, and you are being tripped up by emacs use of 8
spaces for a tab symbol.  You can change the emacs tab width by
configuring the  emacs variable tab-width.  You can do this on the
buffer that you are editing by using C-h v tab-width to pull up a buffer
that allows you to customize the variable, or you can use a hook to
c-mode to set it whenever you are editing a c-file. I have the following
lines in my .emacs file

;;; Set tab-width in c-mode to 4 spaces
(add-hook 'c-mode-hook
        (function (lambda () (set tab-width 4))))


I think that there are some other small differences between emacs c-mode
formatting and the indent formatting that PostgreSQL uses, but the
8-space
tab is the only one that I have fixed. 

Bernie

Wed, 10 Nov 1999 19:31:38 +0000
Bernard Frankpitt <frankpit@pop.dn.net>
Re: [HACKERS] Indent
UNSUBSCRIBE ME FROM THIS LIST!!!!!!!!!!!!!


Wed, 10 Nov 1999 19:15:09 -0500
"Frederick Cheeseborough" <fcheese@bellsouth.net>
Re: [HACKERS] Indent
Bernard Frankpitt <frankpit@pop.dn.net> writes:
> I have the following lines in my .emacs file
> ;;; Set tab-width in c-mode to 4 spaces
> (add-hook 'c-mode-hook
>         (function (lambda () (set tab-width 4))))
> I think that there are some other small differences between emacs c-mode
> formatting and the indent formatting that PostgreSQL uses, but the
> 8-space tab is the only one that I have fixed.

I think I've mentioned this before, but I have the following function
for adapting emacs to the Postgres code-formatting conventions:

; Cmd to set tab stops &etc for working with PostgreSQL code
(defun pgsql-mode ()
  "Set PostgreSQL C indenting conventions in current buffer."
  (interactive)
  (c-mode)				; ensure we're in electric-C mode
  (setq tab-width 4)
  (c-set-style "bsd")
  (c-set-offset 'case-label '+)
)

Currently I invoke this command by hand when looking at a Postgres file.
I've been meaning to set up a load-time hook to invoke it automatically
upon visiting a .c or .h file within my ~postgres directory tree, but
haven't got round to that yet.

As far as I've noticed, the only significant shortcoming of this mode
definition is that it doesn't know that "foreach" should be treated as a
block-beginning keyword.  This is also fixable with a little elisp
hacking, but that hasn't got to the top of the to-do list either.  For
now I just remember to manually unindent the "{" right below "foreach",
and then it carries on correctly for the rest of the block.

ObFlameBait: Personally I think we should switch over to standard
8-column tabs, but Bruce is apparently still using some medieval editor
in which physical tab widths dictate logical indent levels :-(

			regards, tom lane

Wed, 10 Nov 1999 21:03:21 -0500
Tom Lane <tgl@sss.pgh.pa.us>
Re: [HACKERS] Indent 
> ObFlameBait: Personally I think we should switch over to standard
> 8-column tabs, but Bruce is apparently still using some medieval editor
> in which physical tab widths dictate logical indent levels :-(

Vadim is also in agreement on this.  Not many editors can handle
cases where tab size is different from indent size.  Emacs obviously
can, and Tom has enjoyed pointing out.  :-)

I am willing to re-open the discussion if we people would prefer
something else.

-- 
  Bruce Momjian                        |  http://www.op.net/~candle
  maillist@candle.pha.pa.us            |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026

Wed, 10 Nov 1999 21:30:47 -0500 (EST)
Bruce Momjian <maillist@candle.pha.pa.us>
Re: [HACKERS] Indent
On Wed, 10 Nov 1999, Bruce Momjian wrote:

> > ObFlameBait: Personally I think we should switch over to standard
> > 8-column tabs, but Bruce is apparently still using some medieval editor
> > in which physical tab widths dictate logical indent levels :-(
> 
> Vadim is also in agreement on this.  Not many editors can handle
> cases where tab size is different from indent size.  Emacs obviously
> can, and Tom has enjoyed pointing out.  :-)
> 
> I am willing to re-open the discussion if we people would prefer
> something else.

Trying to redefine a tab to be 4 spaces is asking for trouble. How about
making pgindent replace 8 spaces with a tab and 4 spaces with, well, 4
spaces. This is how emacs handles bsd indent style if you don't change the
tab sizes. And all other editors should be fine with this.

Personally, I'm always in favour of using no tabs at all, because of this
very problem, and just because they annoy me. But I tend to be alone with
that position.

-- 
Peter Eisentraut                  Sernanders vaeg 10:115
peter_e@gmx.net                   75262 Uppsala
http://yi.org/peter-e/            Sweden


Thu, 11 Nov 1999 16:37:47 +0100 (MET)
Peter Eisentraut <e99re41@DoCS.UU.SE>
Re: [HACKERS] Indent
> ;;; Set tab-width in c-mode to 4 spaces
> (add-hook 'c-mode-hook
>         (function (lambda () (set tab-width 4))))

Typo:

set -> setq (from Tom Lane's code)

I'm now a happy emacs camper :)

                   - Thomas

-- 
Thomas Lockhart				lockhart@alumni.caltech.edu
South Pasadena, California

Thu, 11 Nov 1999 15:56:18 +0000
Thomas Lockhart <lockhart@alumni.caltech.edu>
Re: [HACKERS] Indent
Peter Eisentraut wrote:
> Personally, I'm always in favour of using no tabs at all, because of this
> very problem, and just because they annoy me. But I tend to be alone with
> that position.

No you are not :). Twenty odd years of software development have taught me
to remove the tab key from my keyboard. Two spaces do the trick for me and
try to avoid at all costs lines over 80 cols. (I use emacs in vi[per] mode),
even on win98... Oh how I wish we were back in the days of TECO.
--------
Regards
Theo

Thu, 11 Nov 1999 21:53:31 +0200
Theo Kramer <theo@flame.co.za>
Re: [HACKERS] Indent
At 09:53 PM 11/11/99 +0200, Theo Kramer wrote:
>Peter Eisentraut wrote:
>> Personally, I'm always in favour of using no tabs at all, because of this
>> very problem, and just because they annoy me. But I tend to be alone with
>> that position.
>
>No you are not :). Twenty odd years of software development have taught me
>to remove the tab key from my keyboard. Two spaces do the trick for me and
>try to avoid at all costs lines over 80 cols. (I use emacs in vi[per] mode),
>even on win98... Oh how I wish we were back in the days of TECO.

TECO!  If you were to dig up a copy of the original manual for
Dec's OS/8 TECO, you'd see a reference to me on the first page.  Not
by name, but by organization, for having done the first version.

Sheesh, those where old days.

Anyway, I too avoid tabs.  Life's too short to figure out how to
make all the tools I use tab the way I want them to.



- Don Baccus, Portland OR <dhogaza@pacifier.com>
  Nature photos, on-line guides, Pacific Northwest
  Rare Bird Alert Service and other goodies at
  http://donb.photo.net.

Thu, 11 Nov 1999 15:16:15 -0800
Don Baccus <dhogaza@pacifier.com>
Re: [HACKERS] Indent