Chapter 1. PostgreSQL Source Code

1.1. Formatting

Source code formatting uses a 4 column tab spacing, currently with tabs preserved (i.e. tabs are not expanded to spaces).

For Emacs, add the following (or something similar) to your ~/.emacs initialization file:

    ;; check for files with a path containing "postgres" or "pgsql"
    (setq auto-mode-alist
      (cons '("\\(postgres\\|pgsql\\).*\\.[ch]\\'" . pgsql-c-mode)
            auto-mode-alist))
    (setq auto-mode-alist
      (cons '("\\(postgres\\|pgsql\\).*\\.cc\\'" . pgsql-c-mode)
            auto-mode-alist))
    
    (defun pgsql-c-mode ()
      ;; sets up formatting for PostgreSQL C code
      (interactive)
      (c-mode)
      (setq-default tab-width 4)
      (c-set-style "bsd")             ; set c-basic-offset to 4, plus other stuff
      (c-set-offset 'case-label '+)   ; tweak case indent to match PG custom
      (setq indent-tabs-mode t))      ; make sure we keep tabs when indenting

For vi, your ~/.vimrc or equivalent file should contain the following:

    set tabstop=4

or equivalently from within vi, try

    :set ts=4

The text browsing tools more and less can be invoked as

    more -x4
    less -x4