aboutsummaryrefslogtreecommitdiffstats
path: root/src/undo.c
diff options
context:
space:
mode:
authorTom Tromey2011-02-14 08:39:19 -0700
committerTom Tromey2011-02-14 08:39:19 -0700
commit5d8ea1203d1e659bc77d953784a85a6e7da0ce95 (patch)
tree1da71b86f9592b2f3390f0cd4d30ce41e74fbb55 /src/undo.c
parent42f6055717e74ea9541c5cf6fd0fc6501bd907fd (diff)
downloademacs-5d8ea1203d1e659bc77d953784a85a6e7da0ce95.tar.gz
emacs-5d8ea1203d1e659bc77d953784a85a6e7da0ce95.zip
Hide implementation of `struct buffer'
* composite.c (fill_gstring_header) (composition_compute_stop_pos, composition_adjust_point) (Ffind_composition_internal): Use B_. * intervals.c (set_point_both, get_local_map): Use B_. * callproc.c (Fcall_process, Fcall_process_region): Use B_. * process.c (get_process, list_processes_1, Fstart_process) (Fmake_serial_process, Fmake_network_process) (read_process_output, send_process, exec_sentinel) (status_notify, setup_process_coding_systems): Use B_. * bytecode.c (Fbyte_code): Use B_. * syntax.c (update_syntax_table, dec_bytepos, Fsyntax_table) (Fset_syntax_table, Fmodify_syntax_entry, skip_chars) (skip_syntaxes, scan_lists): Use B_. * lread.c (readchar, unreadchar, openp, readevalloop) (Feval_buffer, Feval_region): Use B_. * print.c (printchar, strout, print_string, PRINTDECLARE) (PRINTPREPARE, PRINTFINISH, temp_output_buffer_setup) (print_object): Use B_. * font.c (font_at): Use B_. * fns.c (Fbase64_encode_region, Fbase64_decode_region, Fmd5): Use B_. * callint.c (check_mark, Fcall_interactively): Use B_. * editfns.c (region_limit, Fmark_marker, save_excursion_save) (save_excursion_restore, Fprevious_char, Fchar_before) (general_insert_function, Finsert_char, Finsert_byte) (make_buffer_string_both, Finsert_buffer_substring) (Fcompare_buffer_substrings, subst_char_in_region_unwind) (subst_char_in_region_unwind_1, Fsubst_char_in_region) (Ftranslate_region_internal, save_restriction_restore) (Fchar_equal): Use B_. * data.c (swap_in_symval_forwarding, set_internal) (Fmake_local_variable, Fkill_local_variable, Flocal_variable_p): Use B_. * undo.c (record_point, record_insert, record_delete) (record_marker_adjustment, record_first_change) (record_property_change, Fundo_boundary, truncate_undo_list) (Fprimitive_undo): Use B_. * search.c (compile_pattern_1, compile_pattern, looking_at_1) (string_match_1, fast_looking_at, newline_cache_on_off) (search_command, search_buffer, simple_search, boyer_moore) (Freplace_match): Use B_. * indent.c (buffer_display_table, recompute_width_table) (width_run_cache_on_off, current_column, scan_for_column) (Findent_to, position_indentation, compute_motion, vmotion): Use B_. * casefiddle.c (casify_object, casify_region): Use B_. * casetab.c (Fcurrent_case_table, set_case_table): Use B_. * cmds.c (Fself_insert_command, internal_self_insert): Use B_. * fileio.c (Fexpand_file_name, Ffile_directory_p) (Ffile_regular_p, Ffile_selinux_context) (Fset_file_selinux_context, Ffile_modes, Fset_file_modes) (Fset_file_times, Ffile_newer_than_file_p, decide_coding_unwind) (Finsert_file_contents, choose_write_coding_system) (Fwrite_region, build_annotations, Fverify_visited_file_modtime) (Fset_visited_file_modtime, auto_save_error, auto_save_1) (Fdo_auto_save, Fset_buffer_auto_saved): Use B_. * minibuf.c (read_minibuf, get_minibuffer, Fread_buffer): Use B_. * marker.c (Fmarker_buffer, Fset_marker, set_marker_restricted) (set_marker_both, set_marker_restricted_both, unchain_marker): Use B_. * insdel.c (check_markers, insert_char, insert_1_both) (insert_from_string_1, insert_from_gap, insert_from_buffer_1) (adjust_after_replace, replace_range, del_range_2) (modify_region, prepare_to_modify_buffer) (Fcombine_after_change_execute): Use B_. * filelock.c (unlock_all_files, Flock_buffer, Funlock_buffer) (unlock_buffer): Use B_. * keymap.c (Flocal_key_binding, Fuse_local_map) (Fcurrent_local_map, push_key_description) (Fdescribe_buffer_bindings): Use B_. * keyboard.c (command_loop_1, read_char_minibuf_menu_prompt) (read_key_sequence): Use B_. * fringe.c (get_logical_cursor_bitmap) (get_logical_fringe_bitmap, update_window_fringes): Use B_. * xfns.c (x_create_tip_frame, Fx_show_tip): Use B_. * xfaces.c (compute_char_face): Use B_. * character.c (chars_in_text, Fget_byte): Use B_. * category.c (check_category_table, Fcategory_table) (Fset_category_table, char_category_set): Use B_. * coding.c (decode_coding, encode_coding) (make_conversion_work_buffer, decode_coding_gap) (decode_coding_object, encode_coding_object) (Fdetect_coding_region, Ffind_coding_systems_region_internal) (Funencodable_char_position, Fcheck_coding_systems_region): Use B_. * charset.c (Ffind_charset_region): Use B_. * window.c (window_display_table, unshow_buffer, window_loop) (window_min_size_2, set_window_buffer, Fset_window_buffer) (select_window, Fforce_window_update, temp_output_buffer_show) (Fset_window_configuration, save_window_save): Use B_. * xdisp.c (pos_visible_p, init_iterator, reseat_1) (message_dolog, update_echo_area, ensure_echo_area_buffers) (with_echo_area_buffer, setup_echo_area_for_printing) (set_message_1, update_menu_bar, update_tool_bar) (text_outside_line_unchanged_p, redisplay_internal) (try_scrolling, try_cursor_movement, redisplay_window) (try_window_reusing_current_matrix, row_containing_pos) (try_window_id, get_overlay_arrow_glyph_row, display_line) (Fcurrent_bidi_paragraph_direction, display_mode_lines) (decode_mode_spec_coding, decode_mode_spec, display_count_lines) (get_window_cursor_type, note_mouse_highlight): Use B_. * frame.c (make_frame_visible_1): Use B_. * dispnew.c (Fframe_or_buffer_changed_p): Use B_. * dispextern.h (WINDOW_WANTS_HEADER_LINE_P) (WINDOW_WANTS_MODELINE_P): Use B_. * syntax.h (Vstandard_syntax_table): Update. (CURRENT_SYNTAX_TABLE, SETUP_BUFFER_SYNTAX_TABLE): Use B_. * intervals.h (TEXT_PROP_MEANS_INVISIBLE): Update. (TEXT_PROP_MEANS_INVISIBLE): Use B_. * character.h (FETCH_CHAR_ADVANCE): Update. (INC_BOTH, ASCII_CHAR_WIDTH, DEC_BOTH): Use B_. * category.h (Vstandard_category_table): Update. * lisp.h (DEFVAR_BUFFER_DEFAULTS): Update for change to field names. (DOWNCASE_TABLE, UPCASE_TABLE): Use B_. * buffer.c (swapfield_): New macro. (Fbuffer_swap_text): Use swapfield_ where appropriate. (Fbuffer_live_p, Fget_file_buffer, get_truename_buffer) (Fget_buffer_create, clone_per_buffer_values) (Fmake_indirect_buffer, reset_buffer) (reset_buffer_local_variables, Fbuffer_name, Fbuffer_file_name) (Fbuffer_local_value, buffer_lisp_local_variables) (Fset_buffer_modified_p, Frestore_buffer_modified_p) (Frename_buffer, Fother_buffer, Fbuffer_enable_undo) (Fkill_buffer, Fset_buffer_major_mode, set_buffer_internal_1) (set_buffer_temp, Fset_buffer, set_buffer_if_live) (Fbarf_if_buffer_read_only, Fbury_buffer, Ferase_buffer) (Fbuffer_swap_text, Fset_buffer_multibyte) (swap_out_buffer_local_variables, record_overlay_string) (overlay_strings, init_buffer_once, init_buffer, syms_of_buffer): Use B_. * buffer.h (struct buffer): Rename all Lisp_Object fields. (BUFFER_INTERNAL_FIELD, B_): New macro. (FETCH_CHAR, FETCH_CHAR_AS_MULTIBYTE): Use B_.
Diffstat (limited to 'src/undo.c')
-rw-r--r--src/undo.c62
1 files changed, 31 insertions, 31 deletions
diff --git a/src/undo.c b/src/undo.c
index 933982ec30c..f6953fabfec 100644
--- a/src/undo.c
+++ b/src/undo.c
@@ -73,12 +73,12 @@ record_point (EMACS_INT pt)
73 Fundo_boundary (); 73 Fundo_boundary ();
74 last_undo_buffer = current_buffer; 74 last_undo_buffer = current_buffer;
75 75
76 if (CONSP (current_buffer->undo_list)) 76 if (CONSP (B_ (current_buffer, undo_list)))
77 { 77 {
78 /* Set AT_BOUNDARY to 1 only when we have nothing other than 78 /* Set AT_BOUNDARY to 1 only when we have nothing other than
79 marker adjustment before undo boundary. */ 79 marker adjustment before undo boundary. */
80 80
81 Lisp_Object tail = current_buffer->undo_list, elt; 81 Lisp_Object tail = B_ (current_buffer, undo_list), elt;
82 82
83 while (1) 83 while (1)
84 { 84 {
@@ -103,8 +103,8 @@ record_point (EMACS_INT pt)
103 if (at_boundary 103 if (at_boundary
104 && current_buffer == last_boundary_buffer 104 && current_buffer == last_boundary_buffer
105 && last_boundary_position != pt) 105 && last_boundary_position != pt)
106 current_buffer->undo_list 106 B_ (current_buffer, undo_list)
107 = Fcons (make_number (last_boundary_position), current_buffer->undo_list); 107 = Fcons (make_number (last_boundary_position), B_ (current_buffer, undo_list));
108} 108}
109 109
110/* Record an insertion that just happened or is about to happen, 110/* Record an insertion that just happened or is about to happen,
@@ -117,17 +117,17 @@ record_insert (EMACS_INT beg, EMACS_INT length)
117{ 117{
118 Lisp_Object lbeg, lend; 118 Lisp_Object lbeg, lend;
119 119
120 if (EQ (current_buffer->undo_list, Qt)) 120 if (EQ (B_ (current_buffer, undo_list), Qt))
121 return; 121 return;
122 122
123 record_point (beg); 123 record_point (beg);
124 124
125 /* If this is following another insertion and consecutive with it 125 /* If this is following another insertion and consecutive with it
126 in the buffer, combine the two. */ 126 in the buffer, combine the two. */
127 if (CONSP (current_buffer->undo_list)) 127 if (CONSP (B_ (current_buffer, undo_list)))
128 { 128 {
129 Lisp_Object elt; 129 Lisp_Object elt;
130 elt = XCAR (current_buffer->undo_list); 130 elt = XCAR (B_ (current_buffer, undo_list));
131 if (CONSP (elt) 131 if (CONSP (elt)
132 && INTEGERP (XCAR (elt)) 132 && INTEGERP (XCAR (elt))
133 && INTEGERP (XCDR (elt)) 133 && INTEGERP (XCDR (elt))
@@ -140,8 +140,8 @@ record_insert (EMACS_INT beg, EMACS_INT length)
140 140
141 XSETFASTINT (lbeg, beg); 141 XSETFASTINT (lbeg, beg);
142 XSETINT (lend, beg + length); 142 XSETINT (lend, beg + length);
143 current_buffer->undo_list = Fcons (Fcons (lbeg, lend), 143 B_ (current_buffer, undo_list) = Fcons (Fcons (lbeg, lend),
144 current_buffer->undo_list); 144 B_ (current_buffer, undo_list));
145} 145}
146 146
147/* Record that a deletion is about to take place, 147/* Record that a deletion is about to take place,
@@ -152,7 +152,7 @@ record_delete (EMACS_INT beg, Lisp_Object string)
152{ 152{
153 Lisp_Object sbeg; 153 Lisp_Object sbeg;
154 154
155 if (EQ (current_buffer->undo_list, Qt)) 155 if (EQ (B_ (current_buffer, undo_list), Qt))
156 return; 156 return;
157 157
158 if (PT == beg + SCHARS (string)) 158 if (PT == beg + SCHARS (string))
@@ -166,8 +166,8 @@ record_delete (EMACS_INT beg, Lisp_Object string)
166 record_point (beg); 166 record_point (beg);
167 } 167 }
168 168
169 current_buffer->undo_list 169 B_ (current_buffer, undo_list)
170 = Fcons (Fcons (string, sbeg), current_buffer->undo_list); 170 = Fcons (Fcons (string, sbeg), B_ (current_buffer, undo_list));
171} 171}
172 172
173/* Record the fact that MARKER is about to be adjusted by ADJUSTMENT. 173/* Record the fact that MARKER is about to be adjusted by ADJUSTMENT.
@@ -178,7 +178,7 @@ record_delete (EMACS_INT beg, Lisp_Object string)
178void 178void
179record_marker_adjustment (Lisp_Object marker, EMACS_INT adjustment) 179record_marker_adjustment (Lisp_Object marker, EMACS_INT adjustment)
180{ 180{
181 if (EQ (current_buffer->undo_list, Qt)) 181 if (EQ (B_ (current_buffer, undo_list), Qt))
182 return; 182 return;
183 183
184 /* Allocate a cons cell to be the undo boundary after this command. */ 184 /* Allocate a cons cell to be the undo boundary after this command. */
@@ -189,9 +189,9 @@ record_marker_adjustment (Lisp_Object marker, EMACS_INT adjustment)
189 Fundo_boundary (); 189 Fundo_boundary ();
190 last_undo_buffer = current_buffer; 190 last_undo_buffer = current_buffer;
191 191
192 current_buffer->undo_list 192 B_ (current_buffer, undo_list)
193 = Fcons (Fcons (marker, make_number (adjustment)), 193 = Fcons (Fcons (marker, make_number (adjustment)),
194 current_buffer->undo_list); 194 B_ (current_buffer, undo_list));
195} 195}
196 196
197/* Record that a replacement is about to take place, 197/* Record that a replacement is about to take place,
@@ -215,7 +215,7 @@ record_first_change (void)
215 Lisp_Object high, low; 215 Lisp_Object high, low;
216 struct buffer *base_buffer = current_buffer; 216 struct buffer *base_buffer = current_buffer;
217 217
218 if (EQ (current_buffer->undo_list, Qt)) 218 if (EQ (B_ (current_buffer, undo_list), Qt))
219 return; 219 return;
220 220
221 if (current_buffer != last_undo_buffer) 221 if (current_buffer != last_undo_buffer)
@@ -227,7 +227,7 @@ record_first_change (void)
227 227
228 XSETFASTINT (high, (base_buffer->modtime >> 16) & 0xffff); 228 XSETFASTINT (high, (base_buffer->modtime >> 16) & 0xffff);
229 XSETFASTINT (low, base_buffer->modtime & 0xffff); 229 XSETFASTINT (low, base_buffer->modtime & 0xffff);
230 current_buffer->undo_list = Fcons (Fcons (Qt, Fcons (high, low)), current_buffer->undo_list); 230 B_ (current_buffer, undo_list) = Fcons (Fcons (Qt, Fcons (high, low)), B_ (current_buffer, undo_list));
231} 231}
232 232
233/* Record a change in property PROP (whose old value was VAL) 233/* Record a change in property PROP (whose old value was VAL)
@@ -242,7 +242,7 @@ record_property_change (EMACS_INT beg, EMACS_INT length,
242 struct buffer *obuf = current_buffer, *buf = XBUFFER (buffer); 242 struct buffer *obuf = current_buffer, *buf = XBUFFER (buffer);
243 int boundary = 0; 243 int boundary = 0;
244 244
245 if (EQ (buf->undo_list, Qt)) 245 if (EQ (B_ (buf, undo_list), Qt))
246 return; 246 return;
247 247
248 /* Allocate a cons cell to be the undo boundary after this command. */ 248 /* Allocate a cons cell to be the undo boundary after this command. */
@@ -265,7 +265,7 @@ record_property_change (EMACS_INT beg, EMACS_INT length,
265 XSETINT (lbeg, beg); 265 XSETINT (lbeg, beg);
266 XSETINT (lend, beg + length); 266 XSETINT (lend, beg + length);
267 entry = Fcons (Qnil, Fcons (prop, Fcons (value, Fcons (lbeg, lend)))); 267 entry = Fcons (Qnil, Fcons (prop, Fcons (value, Fcons (lbeg, lend))));
268 current_buffer->undo_list = Fcons (entry, current_buffer->undo_list); 268 B_ (current_buffer, undo_list) = Fcons (entry, B_ (current_buffer, undo_list));
269 269
270 current_buffer = obuf; 270 current_buffer = obuf;
271} 271}
@@ -277,9 +277,9 @@ but another undo command will undo to the previous boundary. */)
277 (void) 277 (void)
278{ 278{
279 Lisp_Object tem; 279 Lisp_Object tem;
280 if (EQ (current_buffer->undo_list, Qt)) 280 if (EQ (B_ (current_buffer, undo_list), Qt))
281 return Qnil; 281 return Qnil;
282 tem = Fcar (current_buffer->undo_list); 282 tem = Fcar (B_ (current_buffer, undo_list));
283 if (!NILP (tem)) 283 if (!NILP (tem))
284 { 284 {
285 /* One way or another, cons nil onto the front of the undo list. */ 285 /* One way or another, cons nil onto the front of the undo list. */
@@ -287,12 +287,12 @@ but another undo command will undo to the previous boundary. */)
287 { 287 {
288 /* If we have preallocated the cons cell to use here, 288 /* If we have preallocated the cons cell to use here,
289 use that one. */ 289 use that one. */
290 XSETCDR (pending_boundary, current_buffer->undo_list); 290 XSETCDR (pending_boundary, B_ (current_buffer, undo_list));
291 current_buffer->undo_list = pending_boundary; 291 B_ (current_buffer, undo_list) = pending_boundary;
292 pending_boundary = Qnil; 292 pending_boundary = Qnil;
293 } 293 }
294 else 294 else
295 current_buffer->undo_list = Fcons (Qnil, current_buffer->undo_list); 295 B_ (current_buffer, undo_list) = Fcons (Qnil, B_ (current_buffer, undo_list));
296 } 296 }
297 last_boundary_position = PT; 297 last_boundary_position = PT;
298 last_boundary_buffer = current_buffer; 298 last_boundary_buffer = current_buffer;
@@ -321,7 +321,7 @@ truncate_undo_list (struct buffer *b)
321 record_unwind_protect (set_buffer_if_live, Fcurrent_buffer ()); 321 record_unwind_protect (set_buffer_if_live, Fcurrent_buffer ());
322 set_buffer_internal (b); 322 set_buffer_internal (b);
323 323
324 list = b->undo_list; 324 list = B_ (b, undo_list);
325 325
326 prev = Qnil; 326 prev = Qnil;
327 next = list; 327 next = list;
@@ -433,7 +433,7 @@ truncate_undo_list (struct buffer *b)
433 XSETCDR (last_boundary, Qnil); 433 XSETCDR (last_boundary, Qnil);
434 /* There's nothing we decided to keep, so clear it out. */ 434 /* There's nothing we decided to keep, so clear it out. */
435 else 435 else
436 b->undo_list = Qnil; 436 B_ (b, undo_list) = Qnil;
437 437
438 unbind_to (count, Qnil); 438 unbind_to (count, Qnil);
439} 439}
@@ -470,13 +470,13 @@ Return what remains of the list. */)
470 470
471 /* In a writable buffer, enable undoing read-only text that is so 471 /* In a writable buffer, enable undoing read-only text that is so
472 because of text properties. */ 472 because of text properties. */
473 if (NILP (current_buffer->read_only)) 473 if (NILP (B_ (current_buffer, read_only)))
474 specbind (Qinhibit_read_only, Qt); 474 specbind (Qinhibit_read_only, Qt);
475 475
476 /* Don't let `intangible' properties interfere with undo. */ 476 /* Don't let `intangible' properties interfere with undo. */
477 specbind (Qinhibit_point_motion_hooks, Qt); 477 specbind (Qinhibit_point_motion_hooks, Qt);
478 478
479 oldlist = current_buffer->undo_list; 479 oldlist = B_ (current_buffer, undo_list);
480 480
481 while (arg > 0) 481 while (arg > 0)
482 { 482 {
@@ -631,9 +631,9 @@ Return what remains of the list. */)
631 so the test in `undo' for continuing an undo series 631 so the test in `undo' for continuing an undo series
632 will work right. */ 632 will work right. */
633 if (did_apply 633 if (did_apply
634 && EQ (oldlist, current_buffer->undo_list)) 634 && EQ (oldlist, B_ (current_buffer, undo_list)))
635 current_buffer->undo_list 635 B_ (current_buffer, undo_list)
636 = Fcons (list3 (Qapply, Qcdr, Qnil), current_buffer->undo_list); 636 = Fcons (list3 (Qapply, Qcdr, Qnil), B_ (current_buffer, undo_list));
637 637
638 UNGCPRO; 638 UNGCPRO;
639 return unbind_to (count, list); 639 return unbind_to (count, list);