Mercurial > hg > xemacs-beta
annotate lisp/buffer.el @ 5104:868a5349acee
add documentation to frame.c, rearrange some functions to consolidate in related areas
-------------------- ChangeLog entries follow: --------------------
src/ChangeLog addition:
2010-03-05 Ben Wing <ben@xemacs.org>
* frame.c:
* frame.c (frame_live_p):
* frame.c (Fframep):
* frame.c (Fdisable_frame):
* frame.c (Fenable_frame):
* frame.c (Fraise_frame):
* frame.c (Fframe_name):
* frame.c (Fset_frame_height):
* frame.c (internal_set_frame_size):
* frame.c (adjust_frame_size):
Add documentation on the different types of units used to measure
frame size.
Add section headers to the various sections.
Rearrange the location of some functions in the file to keep
related functions together. This especially goes for frame-sizing
functions (internal_set_frame_size() and adjust_frame_size()),
which have been moved so that they form a group with
change_frame_size() and change_frame_size_1().
No functionality should change.
author | Ben Wing <ben@xemacs.org> |
---|---|
date | Fri, 05 Mar 2010 22:50:27 -0600 |
parents | 74a5eaa67982 |
children | 308d34e9f07d |
rev | line source |
---|---|
428 | 1 ;;; buffer.el --- buffer routines taken from C |
2 | |
3 ;; Copyright (C) 1985-1989, 1992-1995, 1997 Free Software Foundation, Inc. | |
4 ;; Copyright (C) 1995 Sun Microsystems. | |
5 ;; Copyright (C) 1995, 1996 Ben Wing. | |
6 | |
7 ;; Maintainer: XEmacs Development Team | |
8 ;; Keywords: internal, dumped | |
9 | |
10 ;; This file is part of XEmacs. | |
11 | |
12 ;; XEmacs is free software; you can redistribute it and/or modify it | |
13 ;; under the terms of the GNU General Public License as published by | |
14 ;; the Free Software Foundation; either version 2, or (at your option) | |
15 ;; any later version. | |
16 | |
17 ;; XEmacs is distributed in the hope that it will be useful, but | |
18 ;; WITHOUT ANY WARRANTY; without even the implied warranty of | |
19 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
20 ;; General Public License for more details. | |
21 | |
22 ;; You should have received a copy of the GNU General Public License | |
23 ;; along with XEmacs; see the file COPYING. If not, write to the | |
24 ;; Free Software Foundation, 59 Temple Place - Suite 330, | |
25 ;; Boston, MA 02111-1307, USA. | |
26 | |
27 ;;; Synched up with: FSF 19.30 buffer.c. | |
28 | |
29 ;;; Commentary: | |
30 | |
31 ;; This file is dumped with XEmacs. | |
32 | |
33 ;;; Code: | |
34 | |
35 (defun switch-to-buffer (bufname &optional norecord) | |
36 "Select buffer BUFNAME in the current window. | |
37 BUFNAME may be a buffer or a buffer name and is created if it did not exist. | |
38 Optional second arg NORECORD non-nil means do not put this buffer at the | |
39 front of the list of recently selected ones. | |
40 | |
41 WARNING: This is NOT the way to work on another buffer temporarily | |
42 within a Lisp program! Use `set-buffer' instead. That avoids messing with | |
43 the window-buffer correspondences." | |
4734
74a5eaa67982
Make switch-to-buffer completion avoid current buffer.
Didier Verna <didier@xemacs.org>
parents:
2590
diff
changeset
|
44 (interactive |
74a5eaa67982
Make switch-to-buffer completion avoid current buffer.
Didier Verna <didier@xemacs.org>
parents:
2590
diff
changeset
|
45 (list (read-buffer "Switch to buffer: " |
74a5eaa67982
Make switch-to-buffer completion avoid current buffer.
Didier Verna <didier@xemacs.org>
parents:
2590
diff
changeset
|
46 (other-buffer (current-buffer)) |
74a5eaa67982
Make switch-to-buffer completion avoid current buffer.
Didier Verna <didier@xemacs.org>
parents:
2590
diff
changeset
|
47 nil |
74a5eaa67982
Make switch-to-buffer completion avoid current buffer.
Didier Verna <didier@xemacs.org>
parents:
2590
diff
changeset
|
48 (current-buffer)))) |
428 | 49 ;; #ifdef I18N3 |
50 ;; #### Doc string should indicate that the buffer name will get | |
51 ;; translated. | |
52 ;; #endif | |
53 (if (eq (minibuffer-window) (selected-window)) | |
54 (error "Cannot switch buffers in minibuffer window")) | |
55 (if (window-dedicated-p (selected-window)) | |
56 (error "Cannot switch buffers in a dedicated window")) | |
57 (let (buf) | |
58 (if (null bufname) | |
59 (setq buf (other-buffer (current-buffer))) | |
60 (setq buf (get-buffer bufname)) | |
61 (if (null buf) | |
62 (progn | |
63 (setq buf (get-buffer-create bufname)) | |
64 (set-buffer-major-mode buf)))) | |
65 (push-window-configuration) | |
66 (set-buffer buf) | |
442 | 67 (set-window-buffer (last-nonminibuf-window) buf norecord) |
428 | 68 buf)) |
69 | |
70 (defun pop-to-buffer (bufname &optional not-this-window-p on-frame) | |
71 "Select buffer BUFNAME in some window, preferably a different one. | |
72 If BUFNAME is nil, then some other buffer is chosen. | |
73 If `pop-up-windows' is non-nil, windows can be split to do this. | |
74 If optional second arg NOT-THIS-WINDOW-P is non-nil, insist on finding | |
75 another window even if BUFNAME is already visible in the selected window. | |
76 If optional third arg is non-nil, it is the frame to pop to this | |
77 buffer on. | |
2590 | 78 If `focus-follows-mouse' is non-nil, keyboard focus is left unchanged. |
79 | |
80 Buffers with names that are members of the `same-window-buffer-names' | |
81 list, or that match an element of the `same-window-regexps' list are | |
82 treated specially by this function--they are always selected in the | |
83 same window rather than in a different one." | |
428 | 84 ;; #ifdef I18N3 |
85 ;; #### Doc string should indicate that the buffer name will get | |
86 ;; translated. | |
87 ;; #endif | |
88 ;; This is twisted. It is evil to throw the keyboard focus around | |
89 ;; willy-nilly if the user wants focus-follows-mouse. | |
90 (let ((oldbuf (current-buffer)) | |
91 buf window frame) | |
92 (if (null bufname) | |
93 (setq buf (other-buffer (current-buffer))) | |
94 (setq buf (get-buffer bufname)) | |
95 (if (null buf) | |
96 (progn | |
97 (setq buf (get-buffer-create bufname)) | |
98 (set-buffer-major-mode buf)))) | |
99 (push-window-configuration) | |
100 (set-buffer buf) | |
101 (setq window (display-buffer buf not-this-window-p on-frame)) | |
102 (setq frame (window-frame window)) | |
103 ;; if the display-buffer hook decided to show this buffer in another | |
104 ;; frame, then select that frame, (unless obeying focus-follows-mouse -sb). | |
105 (if (and (not focus-follows-mouse) | |
106 (not (eq frame (selected-frame)))) | |
107 (select-frame frame)) | |
108 (record-buffer buf) | |
109 (if (and focus-follows-mouse | |
110 on-frame | |
111 (not (eq on-frame (selected-frame)))) | |
112 (set-buffer oldbuf) | |
113 ;; select-window will modify the internal keyboard focus of XEmacs | |
114 (select-window window)) | |
115 buf)) | |
116 | |
117 ;;; buffer.el ends here |