(get_system_name): Use gethostname for USG systems
[bpt/emacs.git] / lisp / tabify.el
CommitLineData
c88ab9ce
ER
1;;; tabify.el --- tab conversion commands for Emacs
2
a2535589
JA
3;; Copyright (C) 1985 Free Software Foundation, Inc.
4
58142744
ER
5;; Maintainer: FSF
6
a2535589
JA
7;; This file is part of GNU Emacs.
8
9;; GNU Emacs is free software; you can redistribute it and/or modify
10;; it under the terms of the GNU General Public License as published by
e5167999 11;; the Free Software Foundation; either version 2, or (at your option)
a2535589
JA
12;; any later version.
13
14;; GNU Emacs is distributed in the hope that it will be useful,
15;; but WITHOUT ANY WARRANTY; without even the implied warranty of
16;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17;; GNU General Public License for more details.
18
19;; You should have received a copy of the GNU General Public License
20;; along with GNU Emacs; see the file COPYING. If not, write to
21;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
22
22a89ee8 23;;; Code:
a2535589 24
f9f9507e 25;;;###autoload
a2535589
JA
26(defun untabify (start end)
27 "Convert all tabs in region to multiple spaces, preserving columns.
28The variable tab-width controls the action."
29 (interactive "r")
30 (save-excursion
31 (save-restriction
32 (narrow-to-region start end)
33 (goto-char start)
34 (while (search-forward "\t" nil t) ; faster than re-search
35 (let ((start (point))
36 (column (current-column))
37 (indent-tabs-mode nil))
38 (skip-chars-backward "\t")
39 (delete-region start (point))
40 (indent-to column))))))
41
f9f9507e 42;;;###autoload
a2535589
JA
43(defun tabify (start end)
44 "Convert multiple spaces in region to tabs when possible.
45A group of spaces is partially replaced by tabs
46when this can be done without changing the column they end at.
47The variable tab-width controls the action."
48 (interactive "r")
49 (save-excursion
50 (save-restriction
51 (narrow-to-region start end)
52 (goto-char start)
53 (while (re-search-forward "[ \t][ \t][ \t]*" nil t)
54 (let ((column (current-column))
55 (indent-tabs-mode t))
56 (delete-region (match-beginning 0) (point))
57 (indent-to column))))))
c88ab9ce
ER
58
59;;; tabify.el ends here