diff options
| author | Richard M. Stallman | 1998-05-22 20:05:56 +0000 |
|---|---|---|
| committer | Richard M. Stallman | 1998-05-22 20:05:56 +0000 |
| commit | 773fbdb9c834c05939f1e236e3a78416296278a1 (patch) | |
| tree | 89cb7fe921a42619aed2736758f1ab1906d56a1d /src/buffer.c | |
| parent | 98ce16221ecdc66fe440a0ccc61d05fab1c71748 (diff) | |
| download | emacs-773fbdb9c834c05939f1e236e3a78416296278a1.tar.gz emacs-773fbdb9c834c05939f1e236e3a78416296278a1.zip | |
(Fother_buffer): New arg FRAME. Calls changed.
Pass it to frame_buffer_list, frame_buffer_predicate.
(record_buffer): Pass selected frame to them
and to set_frame_buffer_list.
Diffstat (limited to 'src/buffer.c')
| -rw-r--r-- | src/buffer.c | 35 |
1 files changed, 21 insertions, 14 deletions
diff --git a/src/buffer.c b/src/buffer.c index b5e9318c10b..ddca5e7bc16 100644 --- a/src/buffer.c +++ b/src/buffer.c | |||
| @@ -890,26 +890,29 @@ This does not change the name of the visited file (if any).") | |||
| 890 | return current_buffer->name; | 890 | return current_buffer->name; |
| 891 | } | 891 | } |
| 892 | 892 | ||
| 893 | DEFUN ("other-buffer", Fother_buffer, Sother_buffer, 0, 2, 0, | 893 | DEFUN ("other-buffer", Fother_buffer, Sother_buffer, 0, 3, 0, |
| 894 | "Return most recently selected buffer other than BUFFER.\n\ | 894 | "Return most recently selected buffer other than BUFFER.\n\ |
| 895 | Buffers not visible in windows are preferred to visible buffers,\n\ | 895 | Buffers not visible in windows are preferred to visible buffers,\n\ |
| 896 | unless optional second argument VISIBLE-OK is non-nil.\n\ | 896 | unless optional second argument VISIBLE-OK is non-nil.\n\ |
| 897 | If no other buffer exists, the buffer `*scratch*' is returned.\n\ | 897 | If no other buffer exists, the buffer `*scratch*' is returned.\n\ |
| 898 | If BUFFER is omitted or nil, some interesting buffer is returned.") | 898 | If BUFFER is omitted or nil, some interesting buffer is returned.") |
| 899 | (buffer, visible_ok) | 899 | (buffer, visible_ok, frame) |
| 900 | register Lisp_Object buffer, visible_ok; | 900 | register Lisp_Object buffer, visible_ok, frame; |
| 901 | { | 901 | { |
| 902 | Lisp_Object Fset_buffer_major_mode (); | 902 | Lisp_Object Fset_buffer_major_mode (); |
| 903 | register Lisp_Object tail, buf, notsogood, tem, pred, add_ons; | 903 | register Lisp_Object tail, buf, notsogood, tem, pred, add_ons; |
| 904 | notsogood = Qnil; | 904 | notsogood = Qnil; |
| 905 | 905 | ||
| 906 | if (NILP (frame)) | ||
| 907 | frame = Fselected_frame (); | ||
| 908 | |||
| 906 | tail = Vbuffer_alist; | 909 | tail = Vbuffer_alist; |
| 907 | pred = frame_buffer_predicate (); | 910 | pred = frame_buffer_predicate (frame); |
| 908 | 911 | ||
| 909 | /* Consider buffers that have been seen in the selected frame | 912 | /* Consider buffers that have been seen in the selected frame |
| 910 | before other buffers. */ | 913 | before other buffers. */ |
| 911 | 914 | ||
| 912 | tem = frame_buffer_list (); | 915 | tem = frame_buffer_list (frame); |
| 913 | add_ons = Qnil; | 916 | add_ons = Qnil; |
| 914 | while (CONSP (tem)) | 917 | while (CONSP (tem)) |
| 915 | { | 918 | { |
| @@ -1111,7 +1114,7 @@ with SIGHUP.") | |||
| 1111 | and give up if so. */ | 1114 | and give up if so. */ |
| 1112 | if (b == current_buffer) | 1115 | if (b == current_buffer) |
| 1113 | { | 1116 | { |
| 1114 | tem = Fother_buffer (buf, Qnil); | 1117 | tem = Fother_buffer (buf, Qnil, Qnil); |
| 1115 | Fset_buffer (tem); | 1118 | Fset_buffer (tem); |
| 1116 | if (b == current_buffer) | 1119 | if (b == current_buffer) |
| 1117 | return Qnil; | 1120 | return Qnil; |
| @@ -1219,6 +1222,8 @@ record_buffer (buf) | |||
| 1219 | Lisp_Object buf; | 1222 | Lisp_Object buf; |
| 1220 | { | 1223 | { |
| 1221 | register Lisp_Object link, prev; | 1224 | register Lisp_Object link, prev; |
| 1225 | Lisp_Object frame; | ||
| 1226 | frame = Fselected_frame (); | ||
| 1222 | 1227 | ||
| 1223 | prev = Qnil; | 1228 | prev = Qnil; |
| 1224 | for (link = Vbuffer_alist; CONSP (link); link = XCONS (link)->cdr) | 1229 | for (link = Vbuffer_alist; CONSP (link); link = XCONS (link)->cdr) |
| @@ -1242,7 +1247,8 @@ record_buffer (buf) | |||
| 1242 | /* Now move this buffer to the front of frame_buffer_list also. */ | 1247 | /* Now move this buffer to the front of frame_buffer_list also. */ |
| 1243 | 1248 | ||
| 1244 | prev = Qnil; | 1249 | prev = Qnil; |
| 1245 | for (link = frame_buffer_list (); CONSP (link); link = XCONS (link)->cdr) | 1250 | for (link = frame_buffer_list (frame); CONSP (link); |
| 1251 | link = XCONS (link)->cdr) | ||
| 1246 | { | 1252 | { |
| 1247 | if (EQ (XCONS (link)->car, buf)) | 1253 | if (EQ (XCONS (link)->car, buf)) |
| 1248 | break; | 1254 | break; |
| @@ -1254,15 +1260,16 @@ record_buffer (buf) | |||
| 1254 | if (CONSP (link)) | 1260 | if (CONSP (link)) |
| 1255 | { | 1261 | { |
| 1256 | if (NILP (prev)) | 1262 | if (NILP (prev)) |
| 1257 | set_frame_buffer_list (XCONS (frame_buffer_list ())->cdr); | 1263 | set_frame_buffer_list (frame, |
| 1264 | XCONS (frame_buffer_list (frame))->cdr); | ||
| 1258 | else | 1265 | else |
| 1259 | XCONS (prev)->cdr = XCONS (XCONS (prev)->cdr)->cdr; | 1266 | XCONS (prev)->cdr = XCONS (XCONS (prev)->cdr)->cdr; |
| 1260 | 1267 | ||
| 1261 | XCONS (link)->cdr = frame_buffer_list (); | 1268 | XCONS (link)->cdr = frame_buffer_list (frame); |
| 1262 | set_frame_buffer_list (link); | 1269 | set_frame_buffer_list (frame, link); |
| 1263 | } | 1270 | } |
| 1264 | else | 1271 | else |
| 1265 | set_frame_buffer_list (Fcons (buf, frame_buffer_list ())); | 1272 | set_frame_buffer_list (frame, Fcons (buf, frame_buffer_list (frame))); |
| 1266 | } | 1273 | } |
| 1267 | 1274 | ||
| 1268 | DEFUN ("set-buffer-major-mode", Fset_buffer_major_mode, Sset_buffer_major_mode, 1, 1, 0, | 1275 | DEFUN ("set-buffer-major-mode", Fset_buffer_major_mode, Sset_buffer_major_mode, 1, 1, 0, |
| @@ -1317,7 +1324,7 @@ the window-buffer correspondences.") | |||
| 1317 | error ("Cannot switch buffers in a dedicated window"); | 1324 | error ("Cannot switch buffers in a dedicated window"); |
| 1318 | 1325 | ||
| 1319 | if (NILP (buffer)) | 1326 | if (NILP (buffer)) |
| 1320 | buf = Fother_buffer (Fcurrent_buffer (), Qnil); | 1327 | buf = Fother_buffer (Fcurrent_buffer (), Qnil, Qnil); |
| 1321 | else | 1328 | else |
| 1322 | { | 1329 | { |
| 1323 | buf = Fget_buffer (buffer); | 1330 | buf = Fget_buffer (buffer); |
| @@ -1355,7 +1362,7 @@ do not put this buffer at the front of the list of recently selected ones.") | |||
| 1355 | { | 1362 | { |
| 1356 | register Lisp_Object buf; | 1363 | register Lisp_Object buf; |
| 1357 | if (NILP (buffer)) | 1364 | if (NILP (buffer)) |
| 1358 | buf = Fother_buffer (Fcurrent_buffer (), Qnil); | 1365 | buf = Fother_buffer (Fcurrent_buffer (), Qnil, Qnil); |
| 1359 | else | 1366 | else |
| 1360 | { | 1367 | { |
| 1361 | buf = Fget_buffer (buffer); | 1368 | buf = Fget_buffer (buffer); |
| @@ -1621,7 +1628,7 @@ selected window if it is displayed there.") | |||
| 1621 | XSETBUFFER (buffer, current_buffer); | 1628 | XSETBUFFER (buffer, current_buffer); |
| 1622 | 1629 | ||
| 1623 | /* If we're burying the current buffer, unshow it. */ | 1630 | /* If we're burying the current buffer, unshow it. */ |
| 1624 | Fswitch_to_buffer (Fother_buffer (buffer, Qnil), Qnil); | 1631 | Fswitch_to_buffer (Fother_buffer (buffer, Qnil, Qnil), Qnil); |
| 1625 | } | 1632 | } |
| 1626 | else | 1633 | else |
| 1627 | { | 1634 | { |