mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-02 10:11:05 -08:00
Merged from emacs@sv.gnu.org
Patches applied: * emacs@sv.gnu.org/emacs--devo--0--patch-371 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-372 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-373 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-374 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-375 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-376 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-377 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-378 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-379 Merge from erc--emacs--21 * emacs@sv.gnu.org/emacs--devo--0--patch-380 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-381 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-382 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-383 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-384 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-385 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-386 Update from erc--emacs--22 * emacs@sv.gnu.org/emacs--devo--0--patch-387 Fix ERC bug introduced in last patch * emacs@sv.gnu.org/emacs--devo--0--patch-388 Update from erc--emacs--22 * emacs@sv.gnu.org/emacs--devo--0--patch-389 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-390 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-391 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-392 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-393 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-394 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-395 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-396 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-397 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-398 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-399 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-400 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-401 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-402 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-403 Rcirc update from Ryan Yeske * emacs@sv.gnu.org/emacs--devo--0--patch-404 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-405 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-406 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-407 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-408 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-409 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-410 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-411 Miscellaneous tq-related fixes. * emacs@sv.gnu.org/emacs--devo--0--patch-412 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-121 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-122 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-123 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-124 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-125 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-126 Merge from emacs--devo--0 * emacs@sv.gnu.org/gnus--rel--5.10--patch-127 Update from CVS git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-581
This commit is contained in:
commit
3f87f67ee2
175 changed files with 8121 additions and 11166 deletions
52
src/buffer.c
52
src/buffer.c
|
|
@ -146,6 +146,9 @@ Lisp_Object Vinhibit_read_only;
|
|||
Lisp_Object Vkill_buffer_query_functions;
|
||||
Lisp_Object Qkill_buffer_query_functions;
|
||||
|
||||
/* Hook run before changing a major mode. */
|
||||
Lisp_Object Vchange_major_mode_hook, Qchange_major_mode_hook;
|
||||
|
||||
/* List of functions to call before changing an unmodified buffer. */
|
||||
Lisp_Object Vfirst_change_hook;
|
||||
|
||||
|
|
@ -1711,9 +1714,18 @@ the window-buffer correspondences. */)
|
|||
char *err;
|
||||
|
||||
if (EQ (buffer, Fwindow_buffer (selected_window)))
|
||||
/* Basically a NOP. Avoid signalling an error if the selected window
|
||||
is dedicated, or a minibuffer, ... */
|
||||
return Fset_buffer (buffer);
|
||||
{
|
||||
/* Basically a NOP. Avoid signalling an error in the case where
|
||||
the selected window is dedicated, or a minibuffer. */
|
||||
|
||||
/* But do put this buffer at the front of the buffer list,
|
||||
unless that has been inhibited. Note that even if
|
||||
BUFFER is at the front of the main buffer-list already,
|
||||
we still want to move it to the front of the frame's buffer list. */
|
||||
if (NILP (norecord))
|
||||
record_buffer (buffer);
|
||||
return Fset_buffer (buffer);
|
||||
}
|
||||
|
||||
err = no_switch_window (selected_window);
|
||||
if (err) error (err);
|
||||
|
|
@ -2142,10 +2154,11 @@ current buffer is cleared. */)
|
|||
{
|
||||
struct Lisp_Marker *tail, *markers;
|
||||
struct buffer *other;
|
||||
int undo_enabled_p = !EQ (current_buffer->undo_list, Qt);
|
||||
int begv, zv;
|
||||
int narrowed = (BEG != BEGV || Z != ZV);
|
||||
int modified_p = !NILP (Fbuffer_modified_p (Qnil));
|
||||
Lisp_Object old_undo = current_buffer->undo_list;
|
||||
struct gcpro gcpro1;
|
||||
|
||||
if (current_buffer->base_buffer)
|
||||
error ("Cannot do `set-buffer-multibyte' on an indirect buffer");
|
||||
|
|
@ -2154,10 +2167,11 @@ current buffer is cleared. */)
|
|||
if (NILP (flag) == NILP (current_buffer->enable_multibyte_characters))
|
||||
return flag;
|
||||
|
||||
/* It would be better to update the list,
|
||||
but this is good enough for now. */
|
||||
if (undo_enabled_p)
|
||||
current_buffer->undo_list = Qt;
|
||||
GCPRO1 (old_undo);
|
||||
|
||||
/* Don't record these buffer changes. We will put a special undo entry
|
||||
instead. */
|
||||
current_buffer->undo_list = Qt;
|
||||
|
||||
/* If the cached position is for this buffer, clear it out. */
|
||||
clear_charpos_cache (current_buffer);
|
||||
|
|
@ -2357,8 +2371,17 @@ current buffer is cleared. */)
|
|||
set_intervals_multibyte (1);
|
||||
}
|
||||
|
||||
if (undo_enabled_p)
|
||||
current_buffer->undo_list = Qnil;
|
||||
if (!EQ (old_undo, Qt))
|
||||
{
|
||||
/* Represent all the above changes by a special undo entry. */
|
||||
extern Lisp_Object Qapply;
|
||||
current_buffer->undo_list = Fcons (list3 (Qapply,
|
||||
intern ("set-buffer-multibyte"),
|
||||
NILP (flag) ? Qt : Qnil),
|
||||
old_undo);
|
||||
}
|
||||
|
||||
UNGCPRO;
|
||||
|
||||
/* Changing the multibyteness of a buffer means that all windows
|
||||
showing that buffer must be updated thoroughly. */
|
||||
|
|
@ -2416,7 +2439,7 @@ the normal hook `change-major-mode-hook'. */)
|
|||
Lisp_Object oalist;
|
||||
|
||||
if (!NILP (Vrun_hooks))
|
||||
call1 (Vrun_hooks, intern ("change-major-mode-hook"));
|
||||
call1 (Vrun_hooks, Qchange_major_mode_hook);
|
||||
oalist = current_buffer->local_var_alist;
|
||||
|
||||
/* Make sure none of the bindings in oalist
|
||||
|
|
@ -6028,6 +6051,13 @@ t means to use hollow box cursor. See `cursor-type' for other values. */);
|
|||
doc: /* List of functions called with no args to query before killing a buffer. */);
|
||||
Vkill_buffer_query_functions = Qnil;
|
||||
|
||||
DEFVAR_LISP ("change-major-mode-hook", &Vchange_major_mode_hook,
|
||||
doc: /* Normal hook run before changing the major mode of a buffer.
|
||||
The function `kill-all-local-variables' runs this before doing anything else. */);
|
||||
Vchange_major_mode_hook = Qnil;
|
||||
Qchange_major_mode_hook = intern ("change-major-mode-hook");
|
||||
staticpro (&Qchange_major_mode_hook);
|
||||
|
||||
defsubr (&Sbuffer_live_p);
|
||||
defsubr (&Sbuffer_list);
|
||||
defsubr (&Sget_buffer);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue