Mercurial > emacs
diff lisp/simple.el @ 83461:9b150bc96d33
Merged from miles@gnu.org--gnu-2005 (patch 187, 704)
Patches applied:
* emacs@sv.gnu.org/emacs--devo--0--base-0
tag of miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-704
* emacs@sv.gnu.org/emacs--devo--0--patch-1
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-2
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-3
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-4
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-5
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-6
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-7
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-8
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-9
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-10
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-11
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-12
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-13
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-14
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-15
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-16
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-17
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-18
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-19
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-20
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-21
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-22
Install ERC.
* emacs@sv.gnu.org/emacs--devo--0--patch-23
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-24
Fix ERC compiler warnings.
* emacs@sv.gnu.org/emacs--devo--0--patch-25
Use utf-8 encoding in ERC ChangeLogs.
* emacs@sv.gnu.org/emacs--devo--0--patch-26
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-27
Merge ERC-related Viper hacks into Viper.
* emacs@sv.gnu.org/emacs--devo--0--patch-28
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-29
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-30
Merge from erc--main--0
* emacs@sv.gnu.org/gnus--rel--5.10--base-0
tag of miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-187
* emacs@sv.gnu.org/gnus--rel--5.10--patch-1
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-2
Merge from emacs--devo--0
* emacs@sv.gnu.org/gnus--rel--5.10--patch-3
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-4
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-5
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-6
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-7
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-704
Update from CVS
* miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-187
Update from CVS
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-501
author | Karoly Lorentey <lorentey@elte.hu> |
---|---|
date | Mon, 30 Jan 2006 18:06:22 +0000 |
parents | 55e22205ba88 18c6a9d97dc1 |
children | 49f9dd4bb117 |
line wrap: on
line diff
--- a/lisp/simple.el Sun Jan 29 00:17:11 2006 +0000 +++ b/lisp/simple.el Mon Jan 30 18:06:22 2006 +0000 @@ -1,7 +1,7 @@ ;;; simple.el --- basic editing commands for Emacs ;; Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -;; 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. +;; 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: internal @@ -3177,8 +3177,9 @@ mark ring\). Use \\[pop-global-mark] to jump to a mark off the global mark ring \(see `pop-global-mark'\). -Repeating the \\[set-mark-command] command without the prefix jumps to -the next position off the local (or global) mark ring. +If `set-mark-command-repeat-pop' is non-nil, repeating +the \\[set-mark-command] command with no prefix pops the next position +off the local (or global) mark ring and jumps there. With a double \\[universal-argument] prefix argument, e.g. \\[universal-argument] \ \\[universal-argument] \\[set-mark-command], unconditionally @@ -3724,13 +3725,22 @@ To ignore intangibility, bind `inhibit-point-motion-hooks' to t." (interactive "p") (or arg (setq arg 1)) - (if (/= arg 1) - (line-move (1- arg) t)) - (beginning-of-line 1) + (let ((orig (point))) - (vertical-motion 0) - (if (/= orig (point)) - (goto-char (constrain-to-field (point) orig (/= arg 1) t nil))))) + + ;; Move by lines, if ARG is not 1 (the default). + (if (/= arg 1) + (line-move (1- arg) t)) + + ;; Move to beginning-of-line, ignoring fields and invisibles. + (skip-chars-backward "^\n") + (while (and (not (bobp)) (line-move-invisible-p (1- (point)))) + (goto-char (previous-char-property-change (1- (point)))) + (skip-chars-backward "^\n")) + + ;; Take care of fields. + (goto-char (constrain-to-field (point) orig + (/= arg 1) t nil)))) ;;; Many people have said they rarely use this feature, and often type @@ -5020,8 +5030,8 @@ (goto-char (point-min)) (search-forward "\n\n") (forward-line 1)))) - -;; Support keyboard commands to turn on various modifiers. + +;;; Support keyboard commands to turn on various modifiers. ;; These functions -- which are not commands -- each add one modifier ;; to the following event. @@ -5086,7 +5096,7 @@ (define-key function-key-map [?\C-x ?@ ?a] 'event-apply-alt-modifier) (define-key function-key-map [?\C-x ?@ ?S] 'event-apply-shift-modifier) (define-key function-key-map [?\C-x ?@ ?c] 'event-apply-control-modifier) - + ;;;; Keypad support. ;;; Make the keypad keys act like ordinary typing keys. If people add @@ -5181,7 +5191,8 @@ (error "Cannot clone a file-visiting buffer")) (if (get major-mode 'no-clone) (error "Cannot clone a buffer in %s mode" mode-name)) - (list (if current-prefix-arg (read-string "Name: ")) + (list (if current-prefix-arg + (read-buffer "Name of new cloned buffer: " (current-buffer))) t))) (if buffer-file-name (error "Cannot clone a file-visiting buffer")) @@ -5228,7 +5239,12 @@ ;; Run any hooks (typically set up by the major mode ;; for cloning to work properly). (run-hooks 'clone-buffer-hook)) - (if display-flag (pop-to-buffer new)) + (if display-flag + ;; Presumably the current buffer is shown in the selected frame, so + ;; we want to display the clone elsewhere. + (let ((same-window-regexps nil) + (same-window-buffer-names)) + (pop-to-buffer new))) new)) @@ -5251,7 +5267,7 @@ (if (get major-mode 'no-clone-indirect) (error "Cannot indirectly clone a buffer in %s mode" mode-name)) (list (if current-prefix-arg - (read-string "BName of indirect buffer: ")) + (read-buffer "Name of indirect buffer: " (current-buffer))) t))) (if (get major-mode 'no-clone-indirect) (error "Cannot indirectly clone a buffer in %s mode" mode-name)) @@ -5265,15 +5281,17 @@ buffer)) -(defun clone-indirect-buffer-other-window (buffer &optional norecord) - "Create an indirect buffer that is a twin copy of BUFFER. -Select the new buffer in another window. -Optional second arg NORECORD non-nil means do not put this buffer at -the front of the list of recently selected ones." - (interactive "bClone buffer in other window: ") +(defun clone-indirect-buffer-other-window (newname display-flag &optional norecord) + "Like `clone-indirect-buffer' but display in another window." + (interactive + (progn + (if (get major-mode 'no-clone-indirect) + (error "Cannot indirectly clone a buffer in %s mode" mode-name)) + (list (if current-prefix-arg + (read-buffer "Name of indirect buffer: " (current-buffer))) + t))) (let ((pop-up-windows t)) - (set-buffer buffer) - (clone-indirect-buffer nil t norecord))) + (clone-indirect-buffer newname display-flag norecord))) ;;; Handling of Backspace and Delete keys.