comparison src/buffer.c @ 51391:61ea5c492ffb

(Fset_buffer_multibyte): Correctly recover a narrowed region when a buffer is changed to unibyte.
author Kenichi Handa <handa@m17n.org>
date Sun, 01 Jun 2003 23:27:34 +0000
parents 0b5248964d32
children d1641e2dfc5b
comparison
equal deleted inserted replaced
51390:e5fd0e74ccb2 51391:61ea5c492ffb
2047 Lisp_Object flag; 2047 Lisp_Object flag;
2048 { 2048 {
2049 Lisp_Object tail, markers; 2049 Lisp_Object tail, markers;
2050 struct buffer *other; 2050 struct buffer *other;
2051 int undo_enabled_p = !EQ (current_buffer->undo_list, Qt); 2051 int undo_enabled_p = !EQ (current_buffer->undo_list, Qt);
2052 int begv = BEGV, zv = ZV; 2052 int begv, zv;
2053 int narrowed = (BEG != begv || Z != zv); 2053 int narrowed = (BEG != begv || Z != zv);
2054 int modified_p = !NILP (Fbuffer_modified_p (Qnil)); 2054 int modified_p = !NILP (Fbuffer_modified_p (Qnil));
2055 2055
2056 if (current_buffer->base_buffer) 2056 if (current_buffer->base_buffer)
2057 error ("Cannot do `set-buffer-multibyte' on an indirect buffer"); 2057 error ("Cannot do `set-buffer-multibyte' on an indirect buffer");
2065 if (undo_enabled_p) 2065 if (undo_enabled_p)
2066 current_buffer->undo_list = Qt; 2066 current_buffer->undo_list = Qt;
2067 2067
2068 /* If the cached position is for this buffer, clear it out. */ 2068 /* If the cached position is for this buffer, clear it out. */
2069 clear_charpos_cache (current_buffer); 2069 clear_charpos_cache (current_buffer);
2070
2071 if (NILP (flag))
2072 begv = BEGV_BYTE, zv = ZV_BYTE;
2073 else
2074 begv = BEGV, zv = ZV;
2070 2075
2071 if (narrowed) 2076 if (narrowed)
2072 Fwiden (); 2077 Fwiden ();
2073 2078
2074 if (NILP (flag)) 2079 if (NILP (flag))