Mercurial > emacs
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)) |
