annotate lisp/rect.el @ 110410:f2e111723c3a

Merge changes made in Gnus trunk. Reimplement nnimap, and do tweaks to the rest of the code to support that. * gnus-int.el (gnus-finish-retrieve-group-infos) (gnus-retrieve-group-data-early): New functions. * gnus-range.el (gnus-range-nconcat): New function. * gnus-start.el (gnus-get-unread-articles): Support early retrieval of data. (gnus-read-active-for-groups): Support finishing the early retrieval of data. * gnus-sum.el (gnus-summary-move-article): Pass the move-to group name if the move is internal, so that nnimap can do fast internal moves. * gnus.el (gnus-article-special-mark-lists): Add uid/active tuples, for nnimap usage. * nnimap.el: Rewritten. * nnmail.el (nnmail-inhibit-default-split-group): New internal variable to allow the mail splitting to not return a default group. This is useful for nnimap, which will leave unmatched mail in the inbox. * utf7.el (utf7-encode): Autoload. Implement shell connection. * nnimap.el (nnimap-open-shell-stream): New function. (nnimap-open-connection): Use it. Get the number of lines by using BODYSTRUCTURE. (nnimap-transform-headers): Get the number of lines in each message. (nnimap-retrieve-headers): Query for BODYSTRUCTURE so that we get the number of lines. Not all servers return UIDNEXT. Work past this problem. Remove junk from end of file. Fix typo in "bogus" section. Make capabilties be case-insensitive. Require cl when compiling. Don't bug out if the LIST command doesn't have any parameters. 2010-09-17 Knut Anders Hatlen <kahatlen@gmail.com> (tiny change) * nnimap.el (nnimap-get-groups): Don't bug out if the LIST command doesn't have any parameters. (mm-text-html-renderer): Document gnus-article-html. 2010-09-17 Julien Danjou <julien@danjou.info> (tiny fix) * mm-decode.el (mm-text-html-renderer): Document gnus-article-html. * dgnushack.el: Define netrc-credentials. If the user doesn't have a /etc/services, supply some sensible port defaults. Have `unseen-or-unread' select an unread unseen article first. (nntp-open-server): Return whether the open was successful or not. Throughout all files, replace (save-excursion (set-buffer ...)) with (with-current-buffer ... ). Save result so that it doesn't say "failed" all the time. Add ~/.authinfo to the default, since that's probably most useful for users. Don't use the "finish" method when we're reading from the agent. Add some more nnimap-relevant agent stuff to nnagent.el. * nnimap.el (nnimap-with-process-buffer): Removed. Revert one line that was changed by mistake in the last checkin. (nnimap-open-connection): Don't error out when we can't make a connection nnimap-related changes to avoid bugging out if we can't contact a server. * gnus-start.el (gnus-get-unread-articles): Don't try to scan groups from methods that are denied. * nnimap.el (nnimap-possibly-change-group): Return nil if we can't log in. (nnimap-finish-retrieve-group-infos): Make sure we're not waiting for nothing. * gnus-sum.el (gnus-select-newsgroup): Indent.
author Katsumi Yamaoka <yamaoka@jpl.org>
date Sat, 18 Sep 2010 10:02:19 +0000
parents 280c8ae2476d
children 0889087d741a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
38436
b174db545cfd Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents: 37444
diff changeset
1 ;;; rect.el --- rectangle functions for GNU Emacs
659
505130d1ddf8 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 258
diff changeset
2
64762
41bb365f41c4 Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents: 64091
diff changeset
3 ;; Copyright (C) 1985, 1999, 2000, 2001, 2002, 2003, 2004
106815
1d1d5d9bd884 Add 2010 to copyright years.
Glenn Morris <rgm@gnu.org>
parents: 100908
diff changeset
4 ;; 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
845
213978acbc1e entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 814
diff changeset
5
39537
133fc59b5c6a Update maintainer's email address.
Eli Zaretskii <eliz@gnu.org>
parents: 38436
diff changeset
6 ;; Maintainer: Didier Verna <didier@xemacs.org>
814
38b2499cb3e9 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 807
diff changeset
7 ;; Keywords: internal
110015
280c8ae2476d Add "Package:" file headers to denote built-in packages.
Chong Yidong <cyd@stupidchicken.com>
parents: 106815
diff changeset
8 ;; Package: emacs
789
71d052f72ac1 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 659
diff changeset
9
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
10 ;; This file is part of GNU Emacs.
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
11
94678
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 93975
diff changeset
12 ;; GNU Emacs is free software: you can redistribute it and/or modify
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
13 ;; it under the terms of the GNU General Public License as published by
94678
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 93975
diff changeset
14 ;; the Free Software Foundation, either version 3 of the License, or
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 93975
diff changeset
15 ;; (at your option) any later version.
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
16
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
17 ;; GNU Emacs is distributed in the hope that it will be useful,
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
18 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
19 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
20 ;; GNU General Public License for more details.
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
21
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
22 ;; You should have received a copy of the GNU General Public License
94678
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 93975
diff changeset
23 ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
24
2308
f287613dfc28 Added or corrected Commentary sections
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 1619
diff changeset
25 ;;; Commentary:
f287613dfc28 Added or corrected Commentary sections
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 1619
diff changeset
26
25379
167c69238538 Add/fix various doc strings. Add `*' to all the interactive specs.
Dave Love <fx@gnu.org>
parents: 25291
diff changeset
27 ;; This package provides the operations on rectangles that are documented
2308
f287613dfc28 Added or corrected Commentary sections
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 1619
diff changeset
28 ;; in the Emacs manual.
f287613dfc28 Added or corrected Commentary sections
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 1619
diff changeset
29
25168
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
30 ;; ### NOTE: this file has been almost completely rewritten by Didier Verna
39537
133fc59b5c6a Update maintainer's email address.
Eli Zaretskii <eliz@gnu.org>
parents: 38436
diff changeset
31 ;; <didier@xemacs.org> in July 1999. The purpose of this rewrite is to be less
25168
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
32 ;; intrusive and fill lines with whitespaces only when needed. A few functions
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
33 ;; are untouched though, as noted above their definition.
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
34
96440
4dbdccc0a028 Bind global keys to ctl-x-r-map in autoload cookies.
Juri Linkov <juri@jurta.org>
parents: 94678
diff changeset
35 ;;; Global key bindings
4dbdccc0a028 Bind global keys to ctl-x-r-map in autoload cookies.
Juri Linkov <juri@jurta.org>
parents: 94678
diff changeset
36
4dbdccc0a028 Bind global keys to ctl-x-r-map in autoload cookies.
Juri Linkov <juri@jurta.org>
parents: 94678
diff changeset
37 ;;;###autoload (define-key ctl-x-r-map "c" 'clear-rectangle)
4dbdccc0a028 Bind global keys to ctl-x-r-map in autoload cookies.
Juri Linkov <juri@jurta.org>
parents: 94678
diff changeset
38 ;;;###autoload (define-key ctl-x-r-map "k" 'kill-rectangle)
4dbdccc0a028 Bind global keys to ctl-x-r-map in autoload cookies.
Juri Linkov <juri@jurta.org>
parents: 94678
diff changeset
39 ;;;###autoload (define-key ctl-x-r-map "d" 'delete-rectangle)
4dbdccc0a028 Bind global keys to ctl-x-r-map in autoload cookies.
Juri Linkov <juri@jurta.org>
parents: 94678
diff changeset
40 ;;;###autoload (define-key ctl-x-r-map "y" 'yank-rectangle)
4dbdccc0a028 Bind global keys to ctl-x-r-map in autoload cookies.
Juri Linkov <juri@jurta.org>
parents: 94678
diff changeset
41 ;;;###autoload (define-key ctl-x-r-map "o" 'open-rectangle)
4dbdccc0a028 Bind global keys to ctl-x-r-map in autoload cookies.
Juri Linkov <juri@jurta.org>
parents: 94678
diff changeset
42 ;;;###autoload (define-key ctl-x-r-map "t" 'string-rectangle)
25168
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
43
789
71d052f72ac1 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 659
diff changeset
44 ;;; Code:
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
45
23757
717a33da04a1 (move-to-column-force): New function.
Kenichi Handa <handa@m17n.org>
parents: 23641
diff changeset
46 ;;;###autoload
25168
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
47 (defun move-to-column-force (column &optional flag)
46054
06ea4b707bb2 (move-to-column-force): Likewise.
Juanma Barranquero <lekktu@gmail.com>
parents: 45168
diff changeset
48 "If COLUMN is within a multi-column character, replace it by spaces and tab.
25168
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
49 As for `move-to-column', passing anything but nil or t in FLAG will move to
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
50 the desired column only if the line is long enough."
41173
e1285c5daeaf (move-to-column-force): Mark obsolete.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 39537
diff changeset
51 (move-to-column column (or flag t)))
46512
8e08ec435afd (move-to-column-force): Add autoload cookie to obsolescence declaration.
Juanma Barranquero <lekktu@gmail.com>
parents: 46054
diff changeset
52
8e08ec435afd (move-to-column-force): Add autoload cookie to obsolescence declaration.
Juanma Barranquero <lekktu@gmail.com>
parents: 46054
diff changeset
53 ;;;###autoload
46054
06ea4b707bb2 (move-to-column-force): Likewise.
Juanma Barranquero <lekktu@gmail.com>
parents: 45168
diff changeset
54 (make-obsolete 'move-to-column-force 'move-to-column "21.2")
23757
717a33da04a1 (move-to-column-force): New function.
Kenichi Handa <handa@m17n.org>
parents: 23641
diff changeset
55
25168
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
56 ;; not used any more --dv
22213
84c3c863f0bd (string-rectangle-string): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 22205
diff changeset
57 ;; extract-rectangle-line stores lines into this list
84c3c863f0bd (string-rectangle-string): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 22205
diff changeset
58 ;; to accumulate them for extract-rectangle and delete-extract-rectangle.
84c3c863f0bd (string-rectangle-string): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 22205
diff changeset
59 (defvar operate-on-rectangle-lines)
84c3c863f0bd (string-rectangle-string): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 22205
diff changeset
60
30283
70a7936c29c5 (open-rectangle-line): Remove unused let.
Dave Love <fx@gnu.org>
parents: 28078
diff changeset
61 ;; ### NOTE: this function is untouched, but not used anymore apart from
25168
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
62 ;; `delete-whitespace-rectangle'. `apply-on-rectangle' is used instead. --dv
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
63 (defun operate-on-rectangle (function start end coerce-tabs)
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
64 "Call FUNCTION for each line of rectangle with corners at START, END.
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
65 If COERCE-TABS is non-nil, convert multi-column characters
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
66 that span the starting or ending columns on any line
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
67 to multiple spaces before calling FUNCTION.
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
68 FUNCTION is called with three arguments:
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
69 position of start of segment of this line within the rectangle,
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
70 number of columns that belong to rectangle but are before that position,
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
71 number of columns that belong to rectangle but are after point.
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
72 Point is at the end of the segment of this line within the rectangle."
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
73 (let (startcol startlinepos endcol endlinepos)
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
74 (save-excursion
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
75 (goto-char start)
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
76 (setq startcol (current-column))
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
77 (beginning-of-line)
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
78 (setq startlinepos (point)))
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
79 (save-excursion
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
80 (goto-char end)
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
81 (setq endcol (current-column))
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
82 (forward-line 1)
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
83 (setq endlinepos (point-marker)))
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
84 (if (< endcol startcol)
1619
6147d2164331 * rect.el (operate-on-rectangle): Use move-to-column's FORCE
Jim Blandy <jimb@redhat.com>
parents: 1542
diff changeset
85 (setq startcol (prog1 endcol (setq endcol startcol))))
5787
bef3a67ac893 (string-rectangle): Make operate-on-rectangle convert tabs.
Richard M. Stallman <rms@gnu.org>
parents: 2637
diff changeset
86 (save-excursion
bef3a67ac893 (string-rectangle): Make operate-on-rectangle convert tabs.
Richard M. Stallman <rms@gnu.org>
parents: 2637
diff changeset
87 (goto-char startlinepos)
bef3a67ac893 (string-rectangle): Make operate-on-rectangle convert tabs.
Richard M. Stallman <rms@gnu.org>
parents: 2637
diff changeset
88 (while (< (point) endlinepos)
bef3a67ac893 (string-rectangle): Make operate-on-rectangle convert tabs.
Richard M. Stallman <rms@gnu.org>
parents: 2637
diff changeset
89 (let (startpos begextra endextra)
23757
717a33da04a1 (move-to-column-force): New function.
Kenichi Handa <handa@m17n.org>
parents: 23641
diff changeset
90 (if coerce-tabs
41173
e1285c5daeaf (move-to-column-force): Mark obsolete.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 39537
diff changeset
91 (move-to-column startcol t)
23757
717a33da04a1 (move-to-column-force): New function.
Kenichi Handa <handa@m17n.org>
parents: 23641
diff changeset
92 (move-to-column startcol))
5787
bef3a67ac893 (string-rectangle): Make operate-on-rectangle convert tabs.
Richard M. Stallman <rms@gnu.org>
parents: 2637
diff changeset
93 (setq begextra (- (current-column) startcol))
bef3a67ac893 (string-rectangle): Make operate-on-rectangle convert tabs.
Richard M. Stallman <rms@gnu.org>
parents: 2637
diff changeset
94 (setq startpos (point))
23757
717a33da04a1 (move-to-column-force): New function.
Kenichi Handa <handa@m17n.org>
parents: 23641
diff changeset
95 (if coerce-tabs
41173
e1285c5daeaf (move-to-column-force): Mark obsolete.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 39537
diff changeset
96 (move-to-column endcol t)
23757
717a33da04a1 (move-to-column-force): New function.
Kenichi Handa <handa@m17n.org>
parents: 23641
diff changeset
97 (move-to-column endcol))
19732
d8478556c7f0 (operate-on-rectangle): If we overshoot when looking for endcol, back up.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
98 ;; If we overshot, move back one character
d8478556c7f0 (operate-on-rectangle): If we overshoot when looking for endcol, back up.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
99 ;; so that endextra will be positive.
d8478556c7f0 (operate-on-rectangle): If we overshoot when looking for endcol, back up.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
100 (if (and (not coerce-tabs) (> (current-column) endcol))
d8478556c7f0 (operate-on-rectangle): If we overshoot when looking for endcol, back up.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
101 (backward-char 1))
5787
bef3a67ac893 (string-rectangle): Make operate-on-rectangle convert tabs.
Richard M. Stallman <rms@gnu.org>
parents: 2637
diff changeset
102 (setq endextra (- endcol (current-column)))
bef3a67ac893 (string-rectangle): Make operate-on-rectangle convert tabs.
Richard M. Stallman <rms@gnu.org>
parents: 2637
diff changeset
103 (if (< begextra 0)
bef3a67ac893 (string-rectangle): Make operate-on-rectangle convert tabs.
Richard M. Stallman <rms@gnu.org>
parents: 2637
diff changeset
104 (setq endextra (+ endextra begextra)
bef3a67ac893 (string-rectangle): Make operate-on-rectangle convert tabs.
Richard M. Stallman <rms@gnu.org>
parents: 2637
diff changeset
105 begextra 0))
bef3a67ac893 (string-rectangle): Make operate-on-rectangle convert tabs.
Richard M. Stallman <rms@gnu.org>
parents: 2637
diff changeset
106 (funcall function startpos begextra endextra))
bef3a67ac893 (string-rectangle): Make operate-on-rectangle convert tabs.
Richard M. Stallman <rms@gnu.org>
parents: 2637
diff changeset
107 (forward-line 1)))
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
108 (- endcol startcol)))
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
109
25168
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
110 ;; The replacement for `operate-on-rectangle' -- dv
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
111 (defun apply-on-rectangle (function start end &rest args)
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
112 "Call FUNCTION for each line of rectangle with corners at START, END.
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
113 FUNCTION is called with two arguments: the start and end columns of the
25379
167c69238538 Add/fix various doc strings. Add `*' to all the interactive specs.
Dave Love <fx@gnu.org>
parents: 25291
diff changeset
114 rectangle, plus ARGS extra arguments. Point is at the beginning of line when
25168
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
115 the function is called."
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
116 (let (startcol startpt endcol endpt)
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
117 (save-excursion
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
118 (goto-char start)
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
119 (setq startcol (current-column))
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
120 (beginning-of-line)
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
121 (setq startpt (point))
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
122 (goto-char end)
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
123 (setq endcol (current-column))
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
124 (forward-line 1)
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
125 (setq endpt (point-marker))
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
126 ;; ensure the start column is the left one.
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
127 (if (< endcol startcol)
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
128 (let ((col startcol))
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
129 (setq startcol endcol endcol col)))
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
130 ;; start looping over lines
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
131 (goto-char startpt)
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
132 (while (< (point) endpt)
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
133 (apply function startcol endcol args)
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
134 (forward-line 1)))
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
135 ))
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
136
25168
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
137 (defun delete-rectangle-line (startcol endcol fill)
59783
b2ab001718c6 (delete-rectangle-line, delete-extract-rectangle-line)
Richard M. Stallman <rms@gnu.org>
parents: 52401
diff changeset
138 (when (= (move-to-column startcol (if fill t 'coerce)) startcol)
41173
e1285c5daeaf (move-to-column-force): Mark obsolete.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 39537
diff changeset
139 (delete-region (point)
e1285c5daeaf (move-to-column-force): Mark obsolete.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 39537
diff changeset
140 (progn (move-to-column endcol 'coerce)
e1285c5daeaf (move-to-column-force): Mark obsolete.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 39537
diff changeset
141 (point)))))
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
142
25168
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
143 (defun delete-extract-rectangle-line (startcol endcol lines fill)
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
144 (let ((pt (point-at-eol)))
59783
b2ab001718c6 (delete-rectangle-line, delete-extract-rectangle-line)
Richard M. Stallman <rms@gnu.org>
parents: 52401
diff changeset
145 (if (< (move-to-column startcol (if fill t 'coerce)) startcol)
25168
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
146 (setcdr lines (cons (spaces-string (- endcol startcol))
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
147 (cdr lines)))
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
148 ;; else
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
149 (setq pt (point))
41173
e1285c5daeaf (move-to-column-force): Mark obsolete.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 39537
diff changeset
150 (move-to-column endcol t)
69862
dd0c0f578fc9 (kill-rectangle): Don't barf if `kill-read-only-ok' is set.
Eli Zaretskii <eliz@gnu.org>
parents: 68651
diff changeset
151 (setcdr lines (cons (filter-buffer-substring pt (point) t) (cdr lines))))
25168
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
152 ))
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
153
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
154 ;; ### NOTE: this is actually the only function that needs to do complicated
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
155 ;; stuff like what's happening in `operate-on-rectangle', because the buffer
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
156 ;; might be read-only. --dv
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
157 (defun extract-rectangle-line (startcol endcol lines)
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
158 (let (start end begextra endextra line)
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
159 (move-to-column startcol)
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
160 (setq start (point)
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
161 begextra (- (current-column) startcol))
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
162 (move-to-column endcol)
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
163 (setq end (point)
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
164 endextra (- endcol (current-column)))
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
165 (setq line (buffer-substring start (point)))
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
166 (if (< begextra 0)
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
167 (setq endextra (+ endextra begextra)
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
168 begextra 0))
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
169 (if (< endextra 0)
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
170 (setq endextra 0))
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
171 (goto-char start)
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
172 (while (search-forward "\t" end t)
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
173 (let ((width (- (current-column)
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
174 (save-excursion (forward-char -1)
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
175 (current-column)))))
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
176 (setq line (concat (substring line 0 (- (point) end 1))
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
177 (spaces-string width)
25168
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
178 (substring line (+ (length line)
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
179 (- (point) end)))))))
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
180 (if (or (> begextra 0) (> endextra 0))
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
181 (setq line (concat (spaces-string begextra)
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
182 line
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
183 (spaces-string endextra))))
25168
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
184 (setcdr lines (cons line (cdr lines)))))
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
185
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
186 (defconst spaces-strings
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
187 '["" " " " " " " " " " " " " " " " "])
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
188
25168
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
189 ;; this one is untouched --dv
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
190 (defun spaces-string (n)
99298
225286546090 Fix typos in docstrings.
Juanma Barranquero <lekktu@gmail.com>
parents: 96440
diff changeset
191 "Return a string with N spaces."
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
192 (if (<= n 8) (aref spaces-strings n)
99298
225286546090 Fix typos in docstrings.
Juanma Barranquero <lekktu@gmail.com>
parents: 96440
diff changeset
193 (make-string n ?\s)))
49597
e88404e8f2cf Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 46512
diff changeset
194
258
1e0bc00dca7a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 242
diff changeset
195 ;;;###autoload
25168
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
196 (defun delete-rectangle (start end &optional fill)
25379
167c69238538 Add/fix various doc strings. Add `*' to all the interactive specs.
Dave Love <fx@gnu.org>
parents: 25291
diff changeset
197 "Delete (don't save) text in the region-rectangle.
167c69238538 Add/fix various doc strings. Add `*' to all the interactive specs.
Dave Love <fx@gnu.org>
parents: 25291
diff changeset
198 The same range of columns is deleted in each line starting with the
167c69238538 Add/fix various doc strings. Add `*' to all the interactive specs.
Dave Love <fx@gnu.org>
parents: 25291
diff changeset
199 line where the region begins and ending with the line where the region
167c69238538 Add/fix various doc strings. Add `*' to all the interactive specs.
Dave Love <fx@gnu.org>
parents: 25291
diff changeset
200 ends.
25168
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
201
25379
167c69238538 Add/fix various doc strings. Add `*' to all the interactive specs.
Dave Love <fx@gnu.org>
parents: 25291
diff changeset
202 When called from a program the rectangle's corners are START and END.
167c69238538 Add/fix various doc strings. Add `*' to all the interactive specs.
Dave Love <fx@gnu.org>
parents: 25291
diff changeset
203 With a prefix (or a FILL) argument, also fill lines where nothing has
167c69238538 Add/fix various doc strings. Add `*' to all the interactive specs.
Dave Love <fx@gnu.org>
parents: 25291
diff changeset
204 to be deleted."
167c69238538 Add/fix various doc strings. Add `*' to all the interactive specs.
Dave Love <fx@gnu.org>
parents: 25291
diff changeset
205 (interactive "*r\nP")
25168
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
206 (apply-on-rectangle 'delete-rectangle-line start end fill))
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
207
258
1e0bc00dca7a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 242
diff changeset
208 ;;;###autoload
25168
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
209 (defun delete-extract-rectangle (start end &optional fill)
25380
b5ef1f54a2ca (delete-extract-rectangle): Doc fix from verna.
Dave Love <fx@gnu.org>
parents: 25379
diff changeset
210 "Delete the contents of the rectangle with corners at START and END.
25379
167c69238538 Add/fix various doc strings. Add `*' to all the interactive specs.
Dave Love <fx@gnu.org>
parents: 25291
diff changeset
211 Return it as a list of strings, one for each line of the rectangle.
25168
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
212
25379
167c69238538 Add/fix various doc strings. Add `*' to all the interactive specs.
Dave Love <fx@gnu.org>
parents: 25291
diff changeset
213 When called from a program the rectangle's corners are START and END.
25168
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
214 With an optional FILL argument, also fill lines where nothing has to be
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
215 deleted."
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
216 (let ((lines (list nil)))
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
217 (apply-on-rectangle 'delete-extract-rectangle-line start end lines fill)
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
218 (nreverse (cdr lines))))
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
219
258
1e0bc00dca7a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 242
diff changeset
220 ;;;###autoload
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
221 (defun extract-rectangle (start end)
25379
167c69238538 Add/fix various doc strings. Add `*' to all the interactive specs.
Dave Love <fx@gnu.org>
parents: 25291
diff changeset
222 "Return the contents of the rectangle with corners at START and END.
167c69238538 Add/fix various doc strings. Add `*' to all the interactive specs.
Dave Love <fx@gnu.org>
parents: 25291
diff changeset
223 Return it as a list of strings, one for each line of the rectangle."
25168
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
224 (let ((lines (list nil)))
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
225 (apply-on-rectangle 'extract-rectangle-line start end lines)
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
226 (nreverse (cdr lines))))
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
227
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
228 (defvar killed-rectangle nil
25379
167c69238538 Add/fix various doc strings. Add `*' to all the interactive specs.
Dave Love <fx@gnu.org>
parents: 25291
diff changeset
229 "Rectangle for `yank-rectangle' to insert.")
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
230
258
1e0bc00dca7a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 242
diff changeset
231 ;;;###autoload
25168
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
232 (defun kill-rectangle (start end &optional fill)
25379
167c69238538 Add/fix various doc strings. Add `*' to all the interactive specs.
Dave Love <fx@gnu.org>
parents: 25291
diff changeset
233 "Delete the region-rectangle and save it as the last killed one.
167c69238538 Add/fix various doc strings. Add `*' to all the interactive specs.
Dave Love <fx@gnu.org>
parents: 25291
diff changeset
234
167c69238538 Add/fix various doc strings. Add `*' to all the interactive specs.
Dave Love <fx@gnu.org>
parents: 25291
diff changeset
235 When called from a program the rectangle's corners are START and END.
167c69238538 Add/fix various doc strings. Add `*' to all the interactive specs.
Dave Love <fx@gnu.org>
parents: 25291
diff changeset
236 You might prefer to use `delete-extract-rectangle' from a program.
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
237
25168
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
238 With a prefix (or a FILL) argument, also fill lines where nothing has to be
69862
dd0c0f578fc9 (kill-rectangle): Don't barf if `kill-read-only-ok' is set.
Eli Zaretskii <eliz@gnu.org>
parents: 68651
diff changeset
239 deleted.
dd0c0f578fc9 (kill-rectangle): Don't barf if `kill-read-only-ok' is set.
Eli Zaretskii <eliz@gnu.org>
parents: 68651
diff changeset
240
dd0c0f578fc9 (kill-rectangle): Don't barf if `kill-read-only-ok' is set.
Eli Zaretskii <eliz@gnu.org>
parents: 68651
diff changeset
241 If the buffer is read-only, Emacs will beep and refrain from deleting
dd0c0f578fc9 (kill-rectangle): Don't barf if `kill-read-only-ok' is set.
Eli Zaretskii <eliz@gnu.org>
parents: 68651
diff changeset
242 the rectangle, but put it in the kill ring anyway. This means that
dd0c0f578fc9 (kill-rectangle): Don't barf if `kill-read-only-ok' is set.
Eli Zaretskii <eliz@gnu.org>
parents: 68651
diff changeset
243 you can use this command to copy text from a read-only buffer.
dd0c0f578fc9 (kill-rectangle): Don't barf if `kill-read-only-ok' is set.
Eli Zaretskii <eliz@gnu.org>
parents: 68651
diff changeset
244 \(If the variable `kill-read-only-ok' is non-nil, then this won't
dd0c0f578fc9 (kill-rectangle): Don't barf if `kill-read-only-ok' is set.
Eli Zaretskii <eliz@gnu.org>
parents: 68651
diff changeset
245 even beep.)"
dd0c0f578fc9 (kill-rectangle): Don't barf if `kill-read-only-ok' is set.
Eli Zaretskii <eliz@gnu.org>
parents: 68651
diff changeset
246 (interactive "r\nP")
dd0c0f578fc9 (kill-rectangle): Don't barf if `kill-read-only-ok' is set.
Eli Zaretskii <eliz@gnu.org>
parents: 68651
diff changeset
247 (condition-case nil
dd0c0f578fc9 (kill-rectangle): Don't barf if `kill-read-only-ok' is set.
Eli Zaretskii <eliz@gnu.org>
parents: 68651
diff changeset
248 (setq killed-rectangle (delete-extract-rectangle start end fill))
dd0c0f578fc9 (kill-rectangle): Don't barf if `kill-read-only-ok' is set.
Eli Zaretskii <eliz@gnu.org>
parents: 68651
diff changeset
249 ((buffer-read-only text-read-only)
dd0c0f578fc9 (kill-rectangle): Don't barf if `kill-read-only-ok' is set.
Eli Zaretskii <eliz@gnu.org>
parents: 68651
diff changeset
250 (setq killed-rectangle (extract-rectangle start end))
dd0c0f578fc9 (kill-rectangle): Don't barf if `kill-read-only-ok' is set.
Eli Zaretskii <eliz@gnu.org>
parents: 68651
diff changeset
251 (if kill-read-only-ok
dd0c0f578fc9 (kill-rectangle): Don't barf if `kill-read-only-ok' is set.
Eli Zaretskii <eliz@gnu.org>
parents: 68651
diff changeset
252 (progn (message "Read only text copied to kill ring") nil)
dd0c0f578fc9 (kill-rectangle): Don't barf if `kill-read-only-ok' is set.
Eli Zaretskii <eliz@gnu.org>
parents: 68651
diff changeset
253 (barf-if-buffer-read-only)
dd0c0f578fc9 (kill-rectangle): Don't barf if `kill-read-only-ok' is set.
Eli Zaretskii <eliz@gnu.org>
parents: 68651
diff changeset
254 (signal 'text-read-only (list (current-buffer)))))))
25168
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
255
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
256 ;; this one is untouched --dv
258
1e0bc00dca7a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 242
diff changeset
257 ;;;###autoload
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
258 (defun yank-rectangle ()
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
259 "Yank the last killed rectangle with upper left corner at point."
25379
167c69238538 Add/fix various doc strings. Add `*' to all the interactive specs.
Dave Love <fx@gnu.org>
parents: 25291
diff changeset
260 (interactive "*")
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
261 (insert-rectangle killed-rectangle))
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
262
25168
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
263 ;; this one is untoutched --dv
258
1e0bc00dca7a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 242
diff changeset
264 ;;;###autoload
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
265 (defun insert-rectangle (rectangle)
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
266 "Insert text of RECTANGLE with upper left corner at point.
242
5647f2040009 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 36
diff changeset
267 RECTANGLE's first line is inserted at point, its second
5647f2040009 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 36
diff changeset
268 line is inserted at a point vertically under point, etc.
1542
724b443e445d (insert-rectangle): Put mark at upper left corner.
Richard M. Stallman <rms@gnu.org>
parents: 845
diff changeset
269 RECTANGLE should be a list of strings.
724b443e445d (insert-rectangle): Put mark at upper left corner.
Richard M. Stallman <rms@gnu.org>
parents: 845
diff changeset
270 After this command, the mark is at the upper left corner
724b443e445d (insert-rectangle): Put mark at upper left corner.
Richard M. Stallman <rms@gnu.org>
parents: 845
diff changeset
271 and point is at the lower right corner."
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
272 (let ((lines rectangle)
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
273 (insertcolumn (current-column))
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
274 (first t))
1542
724b443e445d (insert-rectangle): Put mark at upper left corner.
Richard M. Stallman <rms@gnu.org>
parents: 845
diff changeset
275 (push-mark)
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
276 (while lines
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
277 (or first
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
278 (progn
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
279 (forward-line 1)
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
280 (or (bolp) (insert ?\n))
41173
e1285c5daeaf (move-to-column-force): Mark obsolete.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 39537
diff changeset
281 (move-to-column insertcolumn t)))
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
282 (setq first nil)
44676
37fdab0b94fa (insert-rectangle): Use insert-for-yank.
Richard M. Stallman <rms@gnu.org>
parents: 44207
diff changeset
283 (insert-for-yank (car lines))
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
284 (setq lines (cdr lines)))))
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
285
258
1e0bc00dca7a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 242
diff changeset
286 ;;;###autoload
25168
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
287 (defun open-rectangle (start end &optional fill)
25379
167c69238538 Add/fix various doc strings. Add `*' to all the interactive specs.
Dave Love <fx@gnu.org>
parents: 25291
diff changeset
288 "Blank out the region-rectangle, shifting text right.
25168
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
289
25379
167c69238538 Add/fix various doc strings. Add `*' to all the interactive specs.
Dave Love <fx@gnu.org>
parents: 25291
diff changeset
290 The text previously in the region is not overwritten by the blanks,
167c69238538 Add/fix various doc strings. Add `*' to all the interactive specs.
Dave Love <fx@gnu.org>
parents: 25291
diff changeset
291 but instead winds up to the right of the rectangle.
167c69238538 Add/fix various doc strings. Add `*' to all the interactive specs.
Dave Love <fx@gnu.org>
parents: 25291
diff changeset
292
167c69238538 Add/fix various doc strings. Add `*' to all the interactive specs.
Dave Love <fx@gnu.org>
parents: 25291
diff changeset
293 When called from a program the rectangle's corners are START and END.
99298
225286546090 Fix typos in docstrings.
Juanma Barranquero <lekktu@gmail.com>
parents: 96440
diff changeset
294 With a prefix (or a FILL) argument, fill with blanks even if there is
225286546090 Fix typos in docstrings.
Juanma Barranquero <lekktu@gmail.com>
parents: 96440
diff changeset
295 no text on the right side of the rectangle."
25379
167c69238538 Add/fix various doc strings. Add `*' to all the interactive specs.
Dave Love <fx@gnu.org>
parents: 25291
diff changeset
296 (interactive "*r\nP")
25168
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
297 (apply-on-rectangle 'open-rectangle-line start end fill)
1619
6147d2164331 * rect.el (operate-on-rectangle): Use move-to-column's FORCE
Jim Blandy <jimb@redhat.com>
parents: 1542
diff changeset
298 (goto-char start))
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
299
25168
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
300 (defun open-rectangle-line (startcol endcol fill)
59783
b2ab001718c6 (delete-rectangle-line, delete-extract-rectangle-line)
Richard M. Stallman <rms@gnu.org>
parents: 52401
diff changeset
301 (when (= (move-to-column startcol (if fill t 'coerce)) startcol)
30283
70a7936c29c5 (open-rectangle-line): Remove unused let.
Dave Love <fx@gnu.org>
parents: 28078
diff changeset
302 (unless (and (not fill)
70a7936c29c5 (open-rectangle-line): Remove unused let.
Dave Love <fx@gnu.org>
parents: 28078
diff changeset
303 (= (point) (point-at-eol)))
70a7936c29c5 (open-rectangle-line): Remove unused let.
Dave Love <fx@gnu.org>
parents: 28078
diff changeset
304 (indent-to endcol))))
25168
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
305
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
306 (defun delete-whitespace-rectangle-line (startcol endcol fill)
59783
b2ab001718c6 (delete-rectangle-line, delete-extract-rectangle-line)
Richard M. Stallman <rms@gnu.org>
parents: 52401
diff changeset
307 (when (= (move-to-column startcol (if fill t 'coerce)) startcol)
25168
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
308 (unless (= (point) (point-at-eol))
37444
d5ed9aa37aa2 (string-rectangle): Revert to 20.x behaviour.
Gerd Moellmann <gerd@gnu.org>
parents: 33807
diff changeset
309 (delete-region (point) (progn (skip-syntax-forward " ") (point))))))
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
310
45168
4f3c96288c84 (close-rectangle): Don't hide it behind the autoload-cookie.
Markus Rost <rost@math.uni-bielefeld.de>
parents: 44676
diff changeset
311 ;;;###autoload
4f3c96288c84 (close-rectangle): Don't hide it behind the autoload-cookie.
Markus Rost <rost@math.uni-bielefeld.de>
parents: 44676
diff changeset
312 (defalias 'close-rectangle 'delete-whitespace-rectangle) ;; Old name
4f3c96288c84 (close-rectangle): Don't hide it behind the autoload-cookie.
Markus Rost <rost@math.uni-bielefeld.de>
parents: 44676
diff changeset
313
258
1e0bc00dca7a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 242
diff changeset
314 ;;;###autoload
25168
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
315 (defun delete-whitespace-rectangle (start end &optional fill)
22205
8576d32229fc (close-rectangle): New command.
Richard M. Stallman <rms@gnu.org>
parents: 19732
diff changeset
316 "Delete all whitespace following a specified column in each line.
8576d32229fc (close-rectangle): New command.
Richard M. Stallman <rms@gnu.org>
parents: 19732
diff changeset
317 The left edge of the rectangle specifies the position in each line
8576d32229fc (close-rectangle): New command.
Richard M. Stallman <rms@gnu.org>
parents: 19732
diff changeset
318 at which whitespace deletion should begin. On each line in the
25168
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
319 rectangle, all continuous whitespace starting at that column is deleted.
22205
8576d32229fc (close-rectangle): New command.
Richard M. Stallman <rms@gnu.org>
parents: 19732
diff changeset
320
25379
167c69238538 Add/fix various doc strings. Add `*' to all the interactive specs.
Dave Love <fx@gnu.org>
parents: 25291
diff changeset
321 When called from a program the rectangle's corners are START and END.
25168
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
322 With a prefix (or a FILL) argument, also fill too short lines."
25379
167c69238538 Add/fix various doc strings. Add `*' to all the interactive specs.
Dave Love <fx@gnu.org>
parents: 25291
diff changeset
323 (interactive "*r\nP")
25168
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
324 (apply-on-rectangle 'delete-whitespace-rectangle-line start end fill))
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
325
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
326 ;; not used any more --dv
22213
84c3c863f0bd (string-rectangle-string): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 22205
diff changeset
327 ;; string-rectangle uses this variable to pass the string
84c3c863f0bd (string-rectangle-string): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 22205
diff changeset
328 ;; to string-rectangle-line.
84c3c863f0bd (string-rectangle-string): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 22205
diff changeset
329 (defvar string-rectangle-string)
41173
e1285c5daeaf (move-to-column-force): Mark obsolete.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 39537
diff changeset
330 (defvar string-rectangle-history nil)
33772
4787f33fe54f (string-rectangle): Revert last change.
Dave Love <fx@gnu.org>
parents: 33750
diff changeset
331 (defun string-rectangle-line (startcol endcol string delete)
41173
e1285c5daeaf (move-to-column-force): Mark obsolete.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 39537
diff changeset
332 (move-to-column startcol t)
33772
4787f33fe54f (string-rectangle): Revert last change.
Dave Love <fx@gnu.org>
parents: 33750
diff changeset
333 (if delete
4787f33fe54f (string-rectangle): Revert last change.
Dave Love <fx@gnu.org>
parents: 33750
diff changeset
334 (delete-rectangle-line startcol endcol nil))
25168
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
335 (insert string))
2380
e67f6d2679e3 (fill-rectangle) Added. Inspired by Lynn Slater's insert-box package in LCD,
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2308
diff changeset
336
e67f6d2679e3 (fill-rectangle) Added. Inspired by Lynn Slater's insert-box package in LCD,
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2308
diff changeset
337 ;;;###autoload
37444
d5ed9aa37aa2 (string-rectangle): Revert to 20.x behaviour.
Gerd Moellmann <gerd@gnu.org>
parents: 33807
diff changeset
338 (defun string-rectangle (start end string)
d5ed9aa37aa2 (string-rectangle): Revert to 20.x behaviour.
Gerd Moellmann <gerd@gnu.org>
parents: 33807
diff changeset
339 "Replace rectangle contents with STRING on each line.
d5ed9aa37aa2 (string-rectangle): Revert to 20.x behaviour.
Gerd Moellmann <gerd@gnu.org>
parents: 33807
diff changeset
340 The length of STRING need not be the same as the rectangle width.
d5ed9aa37aa2 (string-rectangle): Revert to 20.x behaviour.
Gerd Moellmann <gerd@gnu.org>
parents: 33807
diff changeset
341
d5ed9aa37aa2 (string-rectangle): Revert to 20.x behaviour.
Gerd Moellmann <gerd@gnu.org>
parents: 33807
diff changeset
342 Called from a program, takes three args; START, END and STRING."
41173
e1285c5daeaf (move-to-column-force): Mark obsolete.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 39537
diff changeset
343 (interactive
e1285c5daeaf (move-to-column-force): Mark obsolete.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 39537
diff changeset
344 (progn (barf-if-buffer-read-only)
e1285c5daeaf (move-to-column-force): Mark obsolete.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 39537
diff changeset
345 (list
e1285c5daeaf (move-to-column-force): Mark obsolete.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 39537
diff changeset
346 (region-beginning)
e1285c5daeaf (move-to-column-force): Mark obsolete.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 39537
diff changeset
347 (region-end)
65680
ed770a0a7846 2005-09-24 Emilio C. Lopes <eclig@gmx.net>
Romain Francoise <romain@orebokech.com>
parents: 64762
diff changeset
348 (read-string (format "String rectangle (default %s): "
41173
e1285c5daeaf (move-to-column-force): Mark obsolete.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 39537
diff changeset
349 (or (car string-rectangle-history) ""))
e1285c5daeaf (move-to-column-force): Mark obsolete.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 39537
diff changeset
350 nil 'string-rectangle-history
e1285c5daeaf (move-to-column-force): Mark obsolete.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 39537
diff changeset
351 (car string-rectangle-history)))))
33772
4787f33fe54f (string-rectangle): Revert last change.
Dave Love <fx@gnu.org>
parents: 33750
diff changeset
352 (apply-on-rectangle 'string-rectangle-line start end string t))
28078
99865d22cc31 2000-09-01 Didier Verna <didier@xemacs.org>
Dave Love <fx@gnu.org>
parents: 25380
diff changeset
353
44207
6c55bf040a71 (replace-rectangle): Add autoload.
Richard M. Stallman <rms@gnu.org>
parents: 43555
diff changeset
354 ;;;###autoload
37444
d5ed9aa37aa2 (string-rectangle): Revert to 20.x behaviour.
Gerd Moellmann <gerd@gnu.org>
parents: 33807
diff changeset
355 (defalias 'replace-rectangle 'string-rectangle)
d5ed9aa37aa2 (string-rectangle): Revert to 20.x behaviour.
Gerd Moellmann <gerd@gnu.org>
parents: 33807
diff changeset
356
d5ed9aa37aa2 (string-rectangle): Revert to 20.x behaviour.
Gerd Moellmann <gerd@gnu.org>
parents: 33807
diff changeset
357 ;;;###autoload
d5ed9aa37aa2 (string-rectangle): Revert to 20.x behaviour.
Gerd Moellmann <gerd@gnu.org>
parents: 33807
diff changeset
358 (defun string-insert-rectangle (start end string)
d5ed9aa37aa2 (string-rectangle): Revert to 20.x behaviour.
Gerd Moellmann <gerd@gnu.org>
parents: 33807
diff changeset
359 "Insert STRING on each line of region-rectangle, shifting text right.
d5ed9aa37aa2 (string-rectangle): Revert to 20.x behaviour.
Gerd Moellmann <gerd@gnu.org>
parents: 33807
diff changeset
360
d5ed9aa37aa2 (string-rectangle): Revert to 20.x behaviour.
Gerd Moellmann <gerd@gnu.org>
parents: 33807
diff changeset
361 When called from a program, the rectangle's corners are START and END.
d5ed9aa37aa2 (string-rectangle): Revert to 20.x behaviour.
Gerd Moellmann <gerd@gnu.org>
parents: 33807
diff changeset
362 The left edge of the rectangle specifies the column for insertion.
d5ed9aa37aa2 (string-rectangle): Revert to 20.x behaviour.
Gerd Moellmann <gerd@gnu.org>
parents: 33807
diff changeset
363 This command does not delete or overwrite any existing text."
41173
e1285c5daeaf (move-to-column-force): Mark obsolete.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 39537
diff changeset
364 (interactive
e1285c5daeaf (move-to-column-force): Mark obsolete.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 39537
diff changeset
365 (progn (barf-if-buffer-read-only)
e1285c5daeaf (move-to-column-force): Mark obsolete.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 39537
diff changeset
366 (list
e1285c5daeaf (move-to-column-force): Mark obsolete.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 39537
diff changeset
367 (region-beginning)
e1285c5daeaf (move-to-column-force): Mark obsolete.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 39537
diff changeset
368 (region-end)
65680
ed770a0a7846 2005-09-24 Emilio C. Lopes <eclig@gmx.net>
Romain Francoise <romain@orebokech.com>
parents: 64762
diff changeset
369 (read-string (format "String insert rectangle (default %s): "
41173
e1285c5daeaf (move-to-column-force): Mark obsolete.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 39537
diff changeset
370 (or (car string-rectangle-history) ""))
e1285c5daeaf (move-to-column-force): Mark obsolete.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 39537
diff changeset
371 nil 'string-rectangle-history
e1285c5daeaf (move-to-column-force): Mark obsolete.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 39537
diff changeset
372 (car string-rectangle-history)))))
37444
d5ed9aa37aa2 (string-rectangle): Revert to 20.x behaviour.
Gerd Moellmann <gerd@gnu.org>
parents: 33807
diff changeset
373 (apply-on-rectangle 'string-rectangle-line start end string nil))
d5ed9aa37aa2 (string-rectangle): Revert to 20.x behaviour.
Gerd Moellmann <gerd@gnu.org>
parents: 33807
diff changeset
374
28078
99865d22cc31 2000-09-01 Didier Verna <didier@xemacs.org>
Dave Love <fx@gnu.org>
parents: 25380
diff changeset
375 ;;;###autoload
25168
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
376 (defun clear-rectangle (start end &optional fill)
25379
167c69238538 Add/fix various doc strings. Add `*' to all the interactive specs.
Dave Love <fx@gnu.org>
parents: 25291
diff changeset
377 "Blank out the region-rectangle.
167c69238538 Add/fix various doc strings. Add `*' to all the interactive specs.
Dave Love <fx@gnu.org>
parents: 25291
diff changeset
378 The text previously in the region is overwritten with blanks.
25168
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
379
25379
167c69238538 Add/fix various doc strings. Add `*' to all the interactive specs.
Dave Love <fx@gnu.org>
parents: 25291
diff changeset
380 When called from a program the rectangle's corners are START and END.
25168
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
381 With a prefix (or a FILL) argument, also fill with blanks the parts of the
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
382 rectangle which were empty."
25379
167c69238538 Add/fix various doc strings. Add `*' to all the interactive specs.
Dave Love <fx@gnu.org>
parents: 25291
diff changeset
383 (interactive "*r\nP")
25168
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
384 (apply-on-rectangle 'clear-rectangle-line start end fill))
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
385
25168
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
386 (defun clear-rectangle-line (startcol endcol fill)
43555
c33c91ae60fc (clear-rectangle-line): Reindent to the same column
Richard M. Stallman <rms@gnu.org>
parents: 41173
diff changeset
387 (let ((pt (point-at-eol)))
59783
b2ab001718c6 (delete-rectangle-line, delete-extract-rectangle-line)
Richard M. Stallman <rms@gnu.org>
parents: 52401
diff changeset
388 (when (= (move-to-column startcol (if fill t 'coerce)) startcol)
25168
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
389 (if (and (not fill)
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
390 (<= (save-excursion (goto-char pt) (current-column)) endcol))
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
391 (delete-region (point) pt)
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
392 ;; else
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
393 (setq pt (point))
41173
e1285c5daeaf (move-to-column-force): Mark obsolete.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 39537
diff changeset
394 (move-to-column endcol t)
43555
c33c91ae60fc (clear-rectangle-line): Reindent to the same column
Richard M. Stallman <rms@gnu.org>
parents: 41173
diff changeset
395 (setq endcol (current-column))
25168
0fbd51325497 All functions rewritten, except when noted above
Richard M. Stallman <rms@gnu.org>
parents: 23812
diff changeset
396 (delete-region pt (point))
43555
c33c91ae60fc (clear-rectangle-line): Reindent to the same column
Richard M. Stallman <rms@gnu.org>
parents: 41173
diff changeset
397 (indent-to endcol)))))
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
398
1619
6147d2164331 * rect.el (operate-on-rectangle): Use move-to-column's FORCE
Jim Blandy <jimb@redhat.com>
parents: 1542
diff changeset
399 (provide 'rect)
659
505130d1ddf8 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 258
diff changeset
400
93975
1e3a407766b9 Fix up comment convention on the arch-tag lines.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 79721
diff changeset
401 ;; arch-tag: 178847b3-1f50-4b03-83de-a6e911cc1d16
659
505130d1ddf8 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 258
diff changeset
402 ;;; rect.el ends here