aboutsummaryrefslogtreecommitdiffstats
path: root/src/buffer.c
diff options
context:
space:
mode:
authorVitalie Spinu2016-03-21 05:41:55 +0100
committerVitalie Spinu2016-03-29 23:29:54 +0200
commit7068e4c811f7530e14d2684fea68499418642b33 (patch)
tree3c44890147e77c32a5a9f4aeb60ca88d9eb6a050 /src/buffer.c
parentf99b51295b86770e4b16d4717c0e73049191c4c5 (diff)
downloademacs-scratch/hard-narrow.tar.gz
emacs-scratch/hard-narrow.zip
Hard narrowingscratch/hard-narrow
Idem
Diffstat (limited to 'src/buffer.c')
-rw-r--r--src/buffer.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/buffer.c b/src/buffer.c
index f06d7e08e49..2d75dba6e95 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -571,6 +571,9 @@ even if it is dead. The return value is never nil. */)
571 bset_begv_marker (b, Qnil); 571 bset_begv_marker (b, Qnil);
572 bset_zv_marker (b, Qnil); 572 bset_zv_marker (b, Qnil);
573 573
574 bset_begh_marker (b, Qnil);
575 bset_zh_marker (b, Qnil);
576
574 name = Fcopy_sequence (buffer_or_name); 577 name = Fcopy_sequence (buffer_or_name);
575 set_string_intervals (name, NULL); 578 set_string_intervals (name, NULL);
576 bset_name (b, name); 579 bset_name (b, name);
@@ -835,6 +838,7 @@ CLONE nil means the indirect buffer's state is reset to default values. */)
835 bset_pt_marker (b, build_marker (b, b->pt, b->pt_byte)); 838 bset_pt_marker (b, build_marker (b, b->pt, b->pt_byte));
836 bset_begv_marker (b, build_marker (b, b->begv, b->begv_byte)); 839 bset_begv_marker (b, build_marker (b, b->begv, b->begv_byte));
837 bset_zv_marker (b, build_marker (b, b->zv, b->zv_byte)); 840 bset_zv_marker (b, build_marker (b, b->zv, b->zv_byte));
841
838 XMARKER (BVAR (b, zv_marker))->insertion_type = 1; 842 XMARKER (BVAR (b, zv_marker))->insertion_type = 1;
839 } 843 }
840 else 844 else
@@ -2165,9 +2169,9 @@ Any narrowing restriction in effect (see `narrow-to-region') is removed,
2165so the buffer is truly empty after this. */) 2169so the buffer is truly empty after this. */)
2166 (void) 2170 (void)
2167{ 2171{
2168 Fwiden (); 2172 Fwiden (Qnil);
2169 2173
2170 del_range (BEG, Z); 2174 del_range (BEGV, ZV);
2171 2175
2172 current_buffer->last_window_start = 1; 2176 current_buffer->last_window_start = 1;
2173 /* Prevent warnings, or suspension of auto saving, that would happen 2177 /* Prevent warnings, or suspension of auto saving, that would happen
@@ -2310,6 +2314,8 @@ DEFUN ("buffer-swap-text", Fbuffer_swap_text, Sbuffer_swap_text,
2310 swapfield_ (pt_marker, Lisp_Object); 2314 swapfield_ (pt_marker, Lisp_Object);
2311 swapfield_ (begv_marker, Lisp_Object); 2315 swapfield_ (begv_marker, Lisp_Object);
2312 swapfield_ (zv_marker, Lisp_Object); 2316 swapfield_ (zv_marker, Lisp_Object);
2317 swapfield_ (begh_marker, Lisp_Object);
2318 swapfield_ (zh_marker, Lisp_Object);
2313 bset_point_before_scroll (current_buffer, Qnil); 2319 bset_point_before_scroll (current_buffer, Qnil);
2314 bset_point_before_scroll (other_buffer, Qnil); 2320 bset_point_before_scroll (other_buffer, Qnil);
2315 2321
@@ -2490,7 +2496,7 @@ current buffer is cleared. */)
2490 } 2496 }
2491 } 2497 }
2492 if (narrowed) 2498 if (narrowed)
2493 Fnarrow_to_region (make_number (begv), make_number (zv)); 2499 Fnarrow_to_region (make_number (begv), make_number (zv), Qnil);
2494 } 2500 }
2495 else 2501 else
2496 { 2502 {
@@ -2571,7 +2577,7 @@ current buffer is cleared. */)
2571 TEMP_SET_PT (pt); 2577 TEMP_SET_PT (pt);
2572 2578
2573 if (narrowed) 2579 if (narrowed)
2574 Fnarrow_to_region (make_number (begv), make_number (zv)); 2580 Fnarrow_to_region (make_number (begv), make_number (zv), Qnil);
2575 2581
2576 /* Do this first, so that chars_in_text asks the right question. 2582 /* Do this first, so that chars_in_text asks the right question.
2577 set_intervals_multibyte needs it too. */ 2583 set_intervals_multibyte needs it too. */
@@ -5053,6 +5059,8 @@ init_buffer_once (void)
5053 bset_pt_marker (&buffer_local_flags, make_number (0)); 5059 bset_pt_marker (&buffer_local_flags, make_number (0));
5054 bset_begv_marker (&buffer_local_flags, make_number (0)); 5060 bset_begv_marker (&buffer_local_flags, make_number (0));
5055 bset_zv_marker (&buffer_local_flags, make_number (0)); 5061 bset_zv_marker (&buffer_local_flags, make_number (0));
5062 bset_begh_marker (&buffer_local_flags, make_number (0));
5063 bset_zh_marker (&buffer_local_flags, make_number (0));
5056 bset_last_selected_window (&buffer_local_flags, make_number (0)); 5064 bset_last_selected_window (&buffer_local_flags, make_number (0));
5057 5065
5058 idx = 1; 5066 idx = 1;