[Python-Dev] Reindenting unicodedata.c

Barry A. Warsaw barry@python.org
Mon, 11 Nov 2002 10:14:15 -0500


>>>>> "MvL" == Martin v Loewis <martin@v.loewis.de> writes:

> /*
>  * Local Variables:
>  * c-basic-offset: 4
>  * indent-tabs-mode: nil

    MvL> Does that have the effect of expanding all tabs?

Ah, no it doesn't.
    
    MvL> unicodeobject.c does use tabs for indenting multiple levels.

C-x h
M-x untabify RET

    MvL> In my revised patch for unicodedata.c, I put just

    | /* 
    | Local variables:
    | c-basic-offset: 4
    | End:
    | */

+1

    MvL> unicodedata.c is inconsistent in this respect: it sometimes
    MvL> uses tabs, and sometimes spaces.

Dang.

BTW, for the Emacsen in the audience, here's a little elisp I use to
normalize whitespace.  I mostly use this in Python code so YMMV.  It
frst untabifies the buffer, and then it deletes bogus trailing
whitespace.  I think it mostly works. ;)  The defalias is just because
I can never remember what I called the function and don't have it
bound to a keychord.

-Barry

-------------------- snip snip --------------------
;; untabify and clean up lines with just whitespace
(defun baw-whitespace-normalization ()
  "Like untabify, but also cleans up lines with trailing whitespace."
  (interactive)
  (save-excursion
    (save-restriction
      (untabify (point-min) (point-max))
      (goto-char (point-min))
      (while (re-search-forward "[ \t]+$" nil t)
	(let ((bol (save-excursion (beginning-of-line) (point)))
	      (eol (save-excursion (end-of-line) (point))))
	  (goto-char (match-beginning 0))
	  (if (and (bolp)
		   (eq (char-after) ?\))
	      (forward-char 1))
	  (skip-chars-backward " \t" bol)
	  (delete-region (point) eol)
	  ))
      )))
(defalias 'baw-normalize-whitespace 'baw-whitespace-normalization)