Now on revision 109579. ------------------------------------------------------------ revno: 109579 committer: Dmitry Antipov branch nick: trunk timestamp: Mon 2012-08-13 07:44:27 +0400 message: Use KSET for write access to Lisp_Object members of struct kboard. * keyboard.h (KSET): New macro. * callint.c, category.c, frame.c, keyboard.c, keyboard.h, macros.c: * msdos.c, nsfns.m, nsterm.m, term.c, w32fns.c, w32term.c, xfns.c: * xterm.c: Adjust users. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2012-08-13 03:39:07 +0000 +++ src/ChangeLog 2012-08-13 03:44:27 +0000 @@ -1,5 +1,13 @@ 2012-08-13 Dmitry Antipov + Use KSET for write access to Lisp_Object members of struct kboard. + * keyboard.h (KSET): New macro. + * callint.c, category.c, frame.c, keyboard.c, keyboard.h, macros.c: + * msdos.c, nsfns.m, nsterm.m, term.c, w32fns.c, w32term.c, xfns.c: + * xterm.c: Adjust users. + +2012-08-13 Dmitry Antipov + Use BSET for write access to Lisp_Object members of struct buffer. * buffer.h (BSET): New macro. * buffer.c, casetab.c, cmds.c, coding.c, data.c, editfns.c: === modified file 'src/callint.c' --- src/callint.c 2012-08-05 15:47:28 +0000 +++ src/callint.c 2012-08-13 03:44:27 +0000 @@ -372,7 +372,7 @@ Vthis_command = save_this_command; Vthis_original_command = save_this_original_command; Vreal_this_command = save_real_this_command; - KVAR (current_kboard, Vlast_command) = save_last_command; + KSET (current_kboard, Vlast_command, save_last_command); temporarily_switch_to_single_kboard (NULL); return unbind_to (speccount, apply1 (function, specs)); @@ -843,7 +843,7 @@ Vthis_command = save_this_command; Vthis_original_command = save_this_original_command; Vreal_this_command = save_real_this_command; - KVAR (current_kboard, Vlast_command) = save_last_command; + KSET (current_kboard, Vlast_command, save_last_command); { Lisp_Object val; === modified file 'src/category.c' --- src/category.c 2012-08-02 07:31:34 +0000 +++ src/category.c 2012-08-13 03:44:27 +0000 @@ -285,7 +285,7 @@ { int idx; table = check_category_table (table); - BVAR (current_buffer, category_table) = table; + BSET (current_buffer, category_table, table); /* Indicate that this buffer now has a specified category table. */ idx = PER_BUFFER_VAR_IDX (category_table); SET_PER_BUFFER_VALUE_P (current_buffer, idx, 1); === modified file 'src/frame.c' --- src/frame.c 2012-08-13 03:39:07 +0000 +++ src/frame.c 2012-08-13 03:44:27 +0000 @@ -393,8 +393,8 @@ XSETFRAME (frame_dummy, f); GCPRO1 (frame_dummy); /* If there's no minibuffer frame to use, create one. */ - KVAR (kb, Vdefault_minibuffer_frame) = - call1 (intern ("make-initial-minibuffer-frame"), display); + KSET (kb, Vdefault_minibuffer_frame, + call1 (intern ("make-initial-minibuffer-frame"), display)); UNGCPRO; } @@ -843,7 +843,7 @@ (Lisp_Object event) { /* Preserve prefix arg that the command loop just cleared. */ - KVAR (current_kboard, Vprefix_arg) = Vcurrent_prefix_arg; + KSET (current_kboard, Vprefix_arg, Vcurrent_prefix_arg); Frun_hooks (1, &Qmouse_leave_buffer_hook); return do_switch_frame (event, 0, 0, Qnil); } @@ -1435,11 +1435,11 @@ if (NILP (frame_with_minibuf)) abort (); - KVAR (kb, Vdefault_minibuffer_frame) = frame_with_minibuf; + KSET (kb, Vdefault_minibuffer_frame, frame_with_minibuf); } else /* No frames left on this kboard--say no minibuffer either. */ - KVAR (kb, Vdefault_minibuffer_frame) = Qnil; + KSET (kb, Vdefault_minibuffer_frame, Qnil); } /* Cause frame titles to update--necessary if we now have just one frame. */ === modified file 'src/keyboard.c' --- src/keyboard.c 2012-08-08 15:53:52 +0000 +++ src/keyboard.c 2012-08-13 03:44:27 +0000 @@ -551,8 +551,8 @@ else if (STRINGP (echo_string)) echo_string = concat2 (echo_string, build_string (" ")); - KVAR (current_kboard, echo_string) - = concat2 (echo_string, make_string (buffer, ptr - buffer)); + KSET (current_kboard, echo_string, + concat2 (echo_string, make_string (buffer, ptr - buffer))); echo_now (); } @@ -597,8 +597,8 @@ /* Put a dash at the end of the buffer temporarily, but make it go away when the next character is added. */ - KVAR (current_kboard, echo_string) = concat2 (KVAR (current_kboard, echo_string), - build_string ("-")); + KSET (current_kboard, echo_string, + concat2 (KVAR (current_kboard, echo_string), build_string ("-"))); echo_now (); } @@ -660,7 +660,7 @@ { current_kboard->immediate_echo = 0; current_kboard->echo_after_prompt = -1; - KVAR (current_kboard, echo_string) = Qnil; + KSET (current_kboard, echo_string, Qnil); ok_to_echo_at_next_pause = NULL; echo_kboard = NULL; echo_message_buffer = Qnil; @@ -684,9 +684,9 @@ echo_truncate (ptrdiff_t nchars) { if (STRINGP (KVAR (current_kboard, echo_string))) - KVAR (current_kboard, echo_string) - = Fsubstring (KVAR (current_kboard, echo_string), - make_number (0), make_number (nchars)); + KSET (current_kboard, echo_string, + Fsubstring (KVAR (current_kboard, echo_string), + make_number (0), make_number (nchars))); truncate_echo_area (nchars); } @@ -1016,8 +1016,8 @@ Vstandard_input = Qt; Vexecuting_kbd_macro = Qnil; executing_kbd_macro = Qnil; - KVAR (current_kboard, Vprefix_arg) = Qnil; - KVAR (current_kboard, Vlast_prefix_arg) = Qnil; + KSET (current_kboard, Vprefix_arg, Qnil); + KSET (current_kboard, Vlast_prefix_arg, Qnil); cancel_echoing (); /* Avoid unquittable loop if data contains a circular list. */ @@ -1338,8 +1338,8 @@ #endif int already_adjusted = 0; - KVAR (current_kboard, Vprefix_arg) = Qnil; - KVAR (current_kboard, Vlast_prefix_arg) = Qnil; + KSET (current_kboard, Vprefix_arg, Qnil); + KSET (current_kboard, Vlast_prefix_arg, Qnil); Vdeactivate_mark = Qnil; waiting_for_input = 0; cancel_echoing (); @@ -1371,10 +1371,10 @@ } /* Do this after running Vpost_command_hook, for consistency. */ - KVAR (current_kboard, Vlast_command) = Vthis_command; - KVAR (current_kboard, Vreal_last_command) = Vreal_this_command; + KSET (current_kboard, Vlast_command, Vthis_command); + KSET (current_kboard, Vreal_last_command, Vreal_this_command); if (!CONSP (last_command_event)) - KVAR (current_kboard, Vlast_repeatable_command) = Vreal_this_command; + KSET (current_kboard, Vlast_repeatable_command, Vreal_this_command); while (1) { @@ -1537,7 +1537,7 @@ keys = Fkey_description (keys, Qnil); bitch_at_user (); message_with_string ("%s is undefined", keys, 0); - KVAR (current_kboard, defining_kbd_macro) = Qnil; + KSET (current_kboard, defining_kbd_macro, Qnil); update_mode_lines = 1; /* If this is a down-mouse event, don't reset prefix-arg; pass it to the command run by the up event. */ @@ -1547,10 +1547,10 @@ = parse_modifiers (EVENT_HEAD (last_command_event)); int modifiers = XINT (XCAR (XCDR (breakdown))); if (!(modifiers & down_modifier)) - KVAR (current_kboard, Vprefix_arg) = Qnil; + KSET (current_kboard, Vprefix_arg, Qnil); } else - KVAR (current_kboard, Vprefix_arg) = Qnil; + KSET (current_kboard, Vprefix_arg, Qnil); } else { @@ -1587,7 +1587,7 @@ unbind_to (scount, Qnil); #endif } - KVAR (current_kboard, Vlast_prefix_arg) = Vcurrent_prefix_arg; + KSET (current_kboard, Vlast_prefix_arg, Vcurrent_prefix_arg); safe_run_hooks (Qpost_command_hook); @@ -1618,11 +1618,10 @@ if (NILP (KVAR (current_kboard, Vprefix_arg)) || CONSP (last_command_event)) { - KVAR (current_kboard, Vlast_command) = Vthis_command; - KVAR (current_kboard, Vreal_last_command) = Vreal_this_command; + KSET (current_kboard, Vlast_command, Vthis_command); + KSET (current_kboard, Vreal_last_command, Vreal_this_command); if (!CONSP (last_command_event)) - KVAR (current_kboard, Vlast_repeatable_command) - = Vreal_this_command; + KSET (current_kboard, Vlast_repeatable_command, Vreal_this_command); cancel_echoing (); this_command_key_count = 0; this_command_key_count_reset = 0; @@ -2565,7 +2564,7 @@ abort (); } if (!CONSP (last)) - KVAR (kb, kbd_queue) = Fcons (c, Qnil); + KSET (kb, kbd_queue, Fcons (c, Qnil)); else XSETCDR (last, Fcons (c, Qnil)); kb->kbd_queue_has_data = 1; @@ -2737,8 +2736,8 @@ if (!CONSP (KVAR (current_kboard, kbd_queue))) abort (); c = XCAR (KVAR (current_kboard, kbd_queue)); - KVAR (current_kboard, kbd_queue) - = XCDR (KVAR (current_kboard, kbd_queue)); + KSET (current_kboard, kbd_queue, + XCDR (KVAR (current_kboard, kbd_queue))); if (NILP (KVAR (current_kboard, kbd_queue))) current_kboard->kbd_queue_has_data = 0; input_pending = readable_events (0); @@ -2805,7 +2804,7 @@ abort (); } if (!CONSP (last)) - KVAR (kb, kbd_queue) = Fcons (c, Qnil); + KSET (kb, kbd_queue, Fcons (c, Qnil)); else XSETCDR (last, Fcons (c, Qnil)); kb->kbd_queue_has_data = 1; @@ -3063,7 +3062,7 @@ cancel_echoing (); ok_to_echo_at_next_pause = saved_ok_to_echo; - KVAR (current_kboard, echo_string) = saved_echo_string; + KSET (current_kboard, echo_string, saved_echo_string); current_kboard->echo_after_prompt = saved_echo_after_prompt; if (saved_immediate_echo) echo_now (); @@ -3534,9 +3533,9 @@ if (single_kboard && kb != current_kboard) { - KVAR (kb, kbd_queue) - = Fcons (make_lispy_switch_frame (event->frame_or_window), - Fcons (make_number (c), Qnil)); + KSET (kb, kbd_queue, + Fcons (make_lispy_switch_frame (event->frame_or_window), + Fcons (make_number (c), Qnil))); kb->kbd_queue_has_data = 1; for (sp = kbd_fetch_ptr; sp != kbd_store_ptr; sp++) { @@ -5408,7 +5407,7 @@ /* We need to use an alist rather than a vector as the cache since we can't make a vector long enough. */ if (NILP (KVAR (current_kboard, system_key_syms))) - KVAR (current_kboard, system_key_syms) = Fcons (Qnil, Qnil); + KSET (current_kboard, system_key_syms, Fcons (Qnil, Qnil)); return modify_event_symbol (event->code, event->modifiers, Qfunction_key, @@ -8729,11 +8728,11 @@ is not used on replay. */ orig_defn_macro = KVAR (current_kboard, defining_kbd_macro); - KVAR (current_kboard, defining_kbd_macro) = Qnil; + KSET (current_kboard, defining_kbd_macro, Qnil); do obj = read_char (commandflag, 0, 0, Qt, 0, NULL); while (BUFFERP (obj)); - KVAR (current_kboard, defining_kbd_macro) = orig_defn_macro; + KSET (current_kboard, defining_kbd_macro, orig_defn_macro); if (!INTEGERP (obj)) return obj; @@ -9089,7 +9088,7 @@ /* Install the string STR as the beginning of the string of echoing, so that it serves as a prompt for the next character. */ - KVAR (current_kboard, echo_string) = prompt; + KSET (current_kboard, echo_string, prompt); current_kboard->echo_after_prompt = SCHARS (prompt); echo_now (); } @@ -9335,15 +9334,15 @@ if (!NILP (delayed_switch_frame)) { - KVAR (interrupted_kboard, kbd_queue) - = Fcons (delayed_switch_frame, - KVAR (interrupted_kboard, kbd_queue)); + KSET (interrupted_kboard, kbd_queue, + Fcons (delayed_switch_frame, + KVAR (interrupted_kboard, kbd_queue))); delayed_switch_frame = Qnil; } while (t > 0) - KVAR (interrupted_kboard, kbd_queue) - = Fcons (keybuf[--t], KVAR (interrupted_kboard, kbd_queue)); + KSET (interrupted_kboard, kbd_queue, + Fcons (keybuf[--t], KVAR (interrupted_kboard, kbd_queue))); /* If the side queue is non-empty, ensure it begins with a switch-frame, so we'll replay it in the right context. */ @@ -9355,9 +9354,9 @@ { Lisp_Object frame; XSETFRAME (frame, interrupted_frame); - KVAR (interrupted_kboard, kbd_queue) - = Fcons (make_lispy_switch_frame (frame), - KVAR (interrupted_kboard, kbd_queue)); + KSET (interrupted_kboard, kbd_queue, + Fcons (make_lispy_switch_frame (frame), + KVAR (interrupted_kboard, kbd_queue))); } mock_input = 0; orig_local_map = get_local_map (PT, current_buffer, Qlocal_map); @@ -10251,7 +10250,7 @@ { prefixarg = KVAR (current_kboard, Vprefix_arg); Vcurrent_prefix_arg = prefixarg; - KVAR (current_kboard, Vprefix_arg) = Qnil; + KSET (current_kboard, Vprefix_arg, Qnil); } else prefixarg = Qnil; @@ -11249,30 +11248,30 @@ void init_kboard (KBOARD *kb) { - KVAR (kb, Voverriding_terminal_local_map) = Qnil; - KVAR (kb, Vlast_command) = Qnil; - KVAR (kb, Vreal_last_command) = Qnil; - KVAR (kb, Vkeyboard_translate_table) = Qnil; - KVAR (kb, Vlast_repeatable_command) = Qnil; - KVAR (kb, Vprefix_arg) = Qnil; - KVAR (kb, Vlast_prefix_arg) = Qnil; - KVAR (kb, kbd_queue) = Qnil; + KSET (kb, Voverriding_terminal_local_map, Qnil); + KSET (kb, Vlast_command, Qnil); + KSET (kb, Vreal_last_command, Qnil); + KSET (kb, Vkeyboard_translate_table, Qnil); + KSET (kb, Vlast_repeatable_command, Qnil); + KSET (kb, Vprefix_arg, Qnil); + KSET (kb, Vlast_prefix_arg, Qnil); + KSET (kb, kbd_queue, Qnil); kb->kbd_queue_has_data = 0; kb->immediate_echo = 0; - KVAR (kb, echo_string) = Qnil; + KSET (kb, echo_string, Qnil); kb->echo_after_prompt = -1; kb->kbd_macro_buffer = 0; kb->kbd_macro_bufsize = 0; - KVAR (kb, defining_kbd_macro) = Qnil; - KVAR (kb, Vlast_kbd_macro) = Qnil; + KSET (kb, defining_kbd_macro, Qnil); + KSET (kb, Vlast_kbd_macro, Qnil); kb->reference_count = 0; - KVAR (kb, Vsystem_key_alist) = Qnil; - KVAR (kb, system_key_syms) = Qnil; - KVAR (kb, Vwindow_system) = Qt; /* Unset. */ - KVAR (kb, Vinput_decode_map) = Fmake_sparse_keymap (Qnil); - KVAR (kb, Vlocal_function_key_map) = Fmake_sparse_keymap (Qnil); + KSET (kb, Vsystem_key_alist, Qnil); + KSET (kb, system_key_syms, Qnil); + KSET (kb, Vwindow_system, Qt); /* Unset. */ + KSET (kb, Vinput_decode_map, Fmake_sparse_keymap (Qnil)); + KSET (kb, Vlocal_function_key_map, Fmake_sparse_keymap (Qnil)); Fset_keymap_parent (KVAR (kb, Vlocal_function_key_map), Vfunction_key_map); - KVAR (kb, Vdefault_minibuffer_frame) = Qnil; + KSET (kb, Vdefault_minibuffer_frame, Qnil); } /* @@ -11348,7 +11347,7 @@ init_kboard (current_kboard); /* A value of nil for Vwindow_system normally means a tty, but we also use it for the initial terminal since there is no window system there. */ - KVAR (current_kboard, Vwindow_system) = Qnil; + KSET (current_kboard, Vwindow_system, Qnil); if (!noninteractive) { === modified file 'src/keyboard.h' --- src/keyboard.h 2012-07-31 12:36:19 +0000 +++ src/keyboard.h 2012-08-13 03:44:27 +0000 @@ -22,6 +22,7 @@ /* Most code should use this macro to access Lisp fields in struct kboard. */ #define KVAR(kboard, field) ((kboard)->INTERNAL_FIELD (field)) +#define KSET(kboard, field, value) ((kboard)->INTERNAL_FIELD (field) = (value)) /* Each KBOARD represents one logical input stream from which Emacs gets input. If we are using ordinary terminals, it has one KBOARD === modified file 'src/macros.c' --- src/macros.c 2012-08-05 15:47:28 +0000 +++ src/macros.c 2012-08-13 03:44:27 +0000 @@ -127,7 +127,7 @@ message ("Appending to kbd macro..."); } - KVAR (current_kboard, defining_kbd_macro) = Qt; + KSET (current_kboard, defining_kbd_macro, Qt); return Qnil; } @@ -137,12 +137,12 @@ void end_kbd_macro (void) { - KVAR (current_kboard, defining_kbd_macro) = Qnil; + KSET (current_kboard, defining_kbd_macro, Qnil); update_mode_lines++; - KVAR (current_kboard, Vlast_kbd_macro) - = make_event_array ((current_kboard->kbd_macro_end - - current_kboard->kbd_macro_buffer), - current_kboard->kbd_macro_buffer); + KSET (current_kboard, Vlast_kbd_macro, + make_event_array ((current_kboard->kbd_macro_end + - current_kboard->kbd_macro_buffer), + current_kboard->kbd_macro_buffer)); } DEFUN ("end-kbd-macro", Fend_kbd_macro, Send_kbd_macro, 0, 2, "p", @@ -330,7 +330,7 @@ executing_kbd_macro = final; executing_kbd_macro_index = 0; - KVAR (current_kboard, Vprefix_arg) = Qnil; + KSET (current_kboard, Vprefix_arg, Qnil); if (!NILP (loopfunc)) { === modified file 'src/msdos.c' --- src/msdos.c 2012-08-07 07:33:18 +0000 +++ src/msdos.c 2012-08-13 03:44:27 +0000 @@ -1801,7 +1801,7 @@ } tty = FRAME_TTY (sf); - KVAR (current_kboard, Vwindow_system) = Qpc; + KSET (current_kboard, Vwindow_system, Qpc); sf->output_method = output_msdos_raw; if (init_needed) { === modified file 'src/nsfns.m' --- src/nsfns.m 2012-08-10 09:24:03 +0000 +++ src/nsfns.m 2012-08-13 03:44:27 +0000 @@ -1391,7 +1391,7 @@ if (FRAME_HAS_MINIBUF_P (f) && (!FRAMEP (KVAR (kb, Vdefault_minibuffer_frame)) || !FRAME_LIVE_P (XFRAME (KVAR (kb, Vdefault_minibuffer_frame))))) - KVAR (kb, Vdefault_minibuffer_frame) = frame; + KSET (kb, Vdefault_minibuffer_frame, frame); /* All remaining specified parameters, which have not been "used" by x_get_arg and friends, now go in the misc. alist of the frame. */ === modified file 'src/nsterm.m' --- src/nsterm.m 2012-08-11 09:10:08 +0000 +++ src/nsterm.m 2012-08-13 03:44:27 +0000 @@ -4051,7 +4051,7 @@ terminal->kboard = xmalloc (sizeof *terminal->kboard); init_kboard (terminal->kboard); - KVAR (terminal->kboard, Vwindow_system) = Qns; + KSET (terminal->kboard, Vwindow_system, Qns); terminal->kboard->next_kboard = all_kboards; all_kboards = terminal->kboard; /* Don't let the initial kboard remain current longer than necessary. === modified file 'src/term.c' --- src/term.c 2012-08-07 05:29:25 +0000 +++ src/term.c 2012-08-13 03:44:27 +0000 @@ -1333,7 +1333,7 @@ /* This can happen if CANNOT_DUMP or with strange options. */ if (!KEYMAPP (KVAR (kboard, Vinput_decode_map))) - KVAR (kboard, Vinput_decode_map) = Fmake_sparse_keymap (Qnil); + KSET (kboard, Vinput_decode_map, Fmake_sparse_keymap (Qnil)); for (i = 0; i < (sizeof (keys)/sizeof (keys[0])); i++) { @@ -3281,7 +3281,7 @@ terminal->kboard = xmalloc (sizeof *terminal->kboard); init_kboard (terminal->kboard); - KVAR (terminal->kboard, Vwindow_system) = Qnil; + KSET (terminal->kboard, Vwindow_system, Qnil); terminal->kboard->next_kboard = all_kboards; all_kboards = terminal->kboard; terminal->kboard->reference_count++; === modified file 'src/w32fns.c' --- src/w32fns.c 2012-08-13 03:39:07 +0000 +++ src/w32fns.c 2012-08-13 03:44:27 +0000 @@ -4381,7 +4381,7 @@ if (FRAME_HAS_MINIBUF_P (f) && (!FRAMEP (KVAR (kb, Vdefault_minibuffer_frame)) || !FRAME_LIVE_P (XFRAME (KVAR (kb, Vdefault_minibuffer_frame))))) - KVAR (kb, Vdefault_minibuffer_frame) = frame; + KSET (kb, Vdefault_minibuffer_frame, frame); /* All remaining specified parameters, which have not been "used" by x_get_arg and friends, now go in the misc. alist of the frame. */ === modified file 'src/w32term.c' --- src/w32term.c 2012-08-08 19:53:44 +0000 +++ src/w32term.c 2012-08-13 03:44:27 +0000 @@ -6232,7 +6232,7 @@ terminal like X does. */ terminal->kboard = xmalloc (sizeof (KBOARD)); init_kboard (terminal->kboard); - KVAR (terminal->kboard, Vwindow_system) = intern ("w32"); + KSET (terminal->kboard, Vwindow_system, intern ("w32")); terminal->kboard->next_kboard = all_kboards; all_kboards = terminal->kboard; /* Don't let the initial kboard remain current longer than necessary. === modified file 'src/xfns.c' --- src/xfns.c 2012-08-13 03:39:07 +0000 +++ src/xfns.c 2012-08-13 03:44:27 +0000 @@ -3461,7 +3461,7 @@ if (FRAME_HAS_MINIBUF_P (f) && (!FRAMEP (KVAR (kb, Vdefault_minibuffer_frame)) || !FRAME_LIVE_P (XFRAME (KVAR (kb, Vdefault_minibuffer_frame))))) - KVAR (kb, Vdefault_minibuffer_frame) = frame; + KSET (kb, Vdefault_minibuffer_frame, frame); /* All remaining specified parameters, which have not been "used" by x_get_arg and friends, now go in the misc. alist of the frame. */ === modified file 'src/xterm.c' --- src/xterm.c 2012-08-07 13:37:21 +0000 +++ src/xterm.c 2012-08-13 03:44:27 +0000 @@ -7835,7 +7835,7 @@ { /* Set this to t so that delete_frame won't get confused trying to find a replacement. */ - KVAR (FRAME_KBOARD (XFRAME (frame)), Vdefault_minibuffer_frame) = Qt; + KSET (FRAME_KBOARD (XFRAME (frame)), Vdefault_minibuffer_frame, Qt); delete_frame (frame, Qnoelisp); } @@ -10115,7 +10115,7 @@ { terminal->kboard = xmalloc (sizeof *terminal->kboard); init_kboard (terminal->kboard); - KVAR (terminal->kboard, Vwindow_system) = Qx; + KSET (terminal->kboard, Vwindow_system, Qx); /* Add the keyboard to the list before running Lisp code (via Qvendor_specific_keysyms below), since these are not traced @@ -10137,9 +10137,9 @@ /* Temporarily hide the partially initialized terminal. */ terminal_list = terminal->next_terminal; UNBLOCK_INPUT; - KVAR (terminal->kboard, Vsystem_key_alist) - = call1 (Qvendor_specific_keysyms, - vendor ? build_string (vendor) : empty_unibyte_string); + KSET (terminal->kboard, Vsystem_key_alist, + call1 (Qvendor_specific_keysyms, + vendor ? build_string (vendor) : empty_unibyte_string)); BLOCK_INPUT; terminal->next_terminal = terminal_list; terminal_list = terminal; ------------------------------------------------------------ revno: 109578 committer: Dmitry Antipov branch nick: trunk timestamp: Mon 2012-08-13 07:39:07 +0400 message: Use BSET for write access to Lisp_Object members of struct buffer. * buffer.h (BSET): New macro. * buffer.c, casetab.c, cmds.c, coding.c, data.c, editfns.c: * fileio.c, frame.c, indent.c, insdel.c, intervals.c, keymap.c: * minibuf.c, print.c, process.c, syntax.c, undo.c, w32fns.c: * window.c, xdisp.c, xfns.c: Adjust users. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2012-08-11 15:34:01 +0000 +++ src/ChangeLog 2012-08-13 03:39:07 +0000 @@ -1,3 +1,12 @@ +2012-08-13 Dmitry Antipov + + Use BSET for write access to Lisp_Object members of struct buffer. + * buffer.h (BSET): New macro. + * buffer.c, casetab.c, cmds.c, coding.c, data.c, editfns.c: + * fileio.c, frame.c, indent.c, insdel.c, intervals.c, keymap.c: + * minibuf.c, print.c, process.c, syntax.c, undo.c, w32fns.c: + * window.c, xdisp.c, xfns.c: Adjust users. + 2012-08-11 BT Templeton (tiny change) * lread.c (syms_of_lread): Initialize Vlexical_binding. === modified file 'src/buffer.c' --- src/buffer.c 2012-08-08 14:47:11 +0000 +++ src/buffer.c 2012-08-13 03:39:07 +0000 @@ -370,7 +370,7 @@ b->newline_cache = 0; b->width_run_cache = 0; - BVAR (b, width_table) = Qnil; + BSET (b, width_table, Qnil); b->prevent_redisplay_optimizations_p = 1; /* Put this on the chain of all buffers including killed ones. */ @@ -379,20 +379,20 @@ /* An ordinary buffer normally doesn't need markers to handle BEGV and ZV. */ - BVAR (b, pt_marker) = Qnil; - BVAR (b, begv_marker) = Qnil; - BVAR (b, zv_marker) = Qnil; + BSET (b, pt_marker, Qnil); + BSET (b, begv_marker, Qnil); + BSET (b, zv_marker, Qnil); name = Fcopy_sequence (buffer_or_name); string_set_intervals (name, NULL); - BVAR (b, name) = name; + BSET (b, name, name); - BVAR (b, undo_list) = (SREF (name, 0) != ' ') ? Qnil : Qt; + BSET (b, undo_list, (SREF (name, 0) != ' ') ? Qnil : Qt); reset_buffer (b); reset_buffer_local_variables (b, 1); - BVAR (b, mark) = Fmake_marker (); + BSET (b, mark, Fmake_marker ()); BUF_MARKERS (b) = NULL; /* Put this in the alist of all live buffers. */ @@ -481,7 +481,7 @@ /* Get (a copy of) the alist of Lisp-level local variables of FROM and install that in TO. */ - BVAR (to, local_var_alist) = buffer_lisp_local_variables (from, 1); + BSET (to, local_var_alist, buffer_lisp_local_variables (from, 1)); } @@ -584,7 +584,7 @@ b->newline_cache = 0; b->width_run_cache = 0; - BVAR (b, width_table) = Qnil; + BSET (b, width_table, Qnil); /* Put this on the chain of all buffers including killed ones. */ b->header.next.buffer = all_buffers; @@ -592,7 +592,7 @@ name = Fcopy_sequence (name); string_set_intervals (name, NULL); - BVAR (b, name) = name; + BSET (b, name, name); reset_buffer (b); reset_buffer_local_variables (b, 1); @@ -601,10 +601,10 @@ XSETBUFFER (buf, b); Vbuffer_alist = nconc2 (Vbuffer_alist, Fcons (Fcons (name, buf), Qnil)); - BVAR (b, mark) = Fmake_marker (); + BSET (b, mark, Fmake_marker ()); /* The multibyte status belongs to the base buffer. */ - BVAR (b, enable_multibyte_characters) = BVAR (b->base_buffer, enable_multibyte_characters); + BSET (b, enable_multibyte_characters, BVAR (b->base_buffer, enable_multibyte_characters)); /* Make sure the base buffer has markers for its narrowing. */ if (NILP (BVAR (b->base_buffer, pt_marker))) @@ -612,14 +612,14 @@ eassert (NILP (BVAR (b->base_buffer, begv_marker))); eassert (NILP (BVAR (b->base_buffer, zv_marker))); - BVAR (b->base_buffer, pt_marker) - = build_marker (b->base_buffer, b->base_buffer->pt, b->base_buffer->pt_byte); - - BVAR (b->base_buffer, begv_marker) - = build_marker (b->base_buffer, b->base_buffer->begv, b->base_buffer->begv_byte); - - BVAR (b->base_buffer, zv_marker) - = build_marker (b->base_buffer, b->base_buffer->zv, b->base_buffer->zv_byte); + BSET (b->base_buffer, pt_marker, + build_marker (b->base_buffer, b->base_buffer->pt, b->base_buffer->pt_byte)); + + BSET (b->base_buffer, begv_marker, + build_marker (b->base_buffer, b->base_buffer->begv, b->base_buffer->begv_byte)); + + BSET (b->base_buffer, zv_marker, + build_marker (b->base_buffer, b->base_buffer->zv, b->base_buffer->zv_byte)); XMARKER (BVAR (b->base_buffer, zv_marker))->insertion_type = 1; } @@ -627,9 +627,9 @@ if (NILP (clone)) { /* Give the indirect buffer markers for its narrowing. */ - BVAR (b, pt_marker) = build_marker (b, b->pt, b->pt_byte); - BVAR (b, begv_marker) = build_marker (b, b->begv, b->begv_byte); - BVAR (b, zv_marker) = build_marker (b, b->zv, b->zv_byte); + BSET (b, pt_marker, build_marker (b, b->pt, b->pt_byte)); + BSET (b, begv_marker, build_marker (b, b->begv, b->begv_byte)); + BSET (b, zv_marker, build_marker (b, b->zv, b->zv_byte)); XMARKER (BVAR (b, zv_marker))->insertion_type = 1; } else @@ -637,11 +637,11 @@ struct buffer *old_b = current_buffer; clone_per_buffer_values (b->base_buffer, b); - BVAR (b, filename) = Qnil; - BVAR (b, file_truename) = Qnil; - BVAR (b, display_count) = make_number (0); - BVAR (b, backed_up) = Qnil; - BVAR (b, auto_save_file_name) = Qnil; + BSET (b, filename, Qnil); + BSET (b, file_truename, Qnil); + BSET (b, display_count, make_number (0)); + BSET (b, backed_up, Qnil); + BSET (b, auto_save_file_name, Qnil); set_buffer_internal_1 (b); Fset (intern ("buffer-save-without-query"), Qnil); Fset (intern ("buffer-file-number"), Qnil); @@ -704,9 +704,10 @@ void reset_buffer (register struct buffer *b) { - BVAR (b, filename) = Qnil; - BVAR (b, file_truename) = Qnil; - BVAR (b, directory) = (current_buffer) ? BVAR (current_buffer, directory) : Qnil; + BSET (b, filename, Qnil); + BSET (b, file_truename, Qnil); + BSET (b, directory, + (current_buffer) ? BVAR (current_buffer, directory) : Qnil); b->modtime = make_emacs_time (0, UNKNOWN_MODTIME_NSECS); b->modtime_size = -1; XSETFASTINT (BVAR (b, save_length), 0); @@ -714,24 +715,25 @@ /* It is more conservative to start out "changed" than "unchanged". */ b->clip_changed = 0; b->prevent_redisplay_optimizations_p = 1; - BVAR (b, backed_up) = Qnil; + BSET (b, backed_up, Qnil); BUF_AUTOSAVE_MODIFF (b) = 0; b->auto_save_failure_time = 0; - BVAR (b, auto_save_file_name) = Qnil; - BVAR (b, read_only) = Qnil; + BSET (b, auto_save_file_name, Qnil); + BSET (b, read_only, Qnil); buffer_set_overlays (b, NULL, OV_BEFORE); buffer_set_overlays (b, NULL, OV_AFTER); b->overlay_center = BEG; - BVAR (b, mark_active) = Qnil; - BVAR (b, point_before_scroll) = Qnil; - BVAR (b, file_format) = Qnil; - BVAR (b, auto_save_file_format) = Qt; - BVAR (b, last_selected_window) = Qnil; - XSETINT (BVAR (b, display_count), 0); - BVAR (b, display_time) = Qnil; - BVAR (b, enable_multibyte_characters) = BVAR (&buffer_defaults, enable_multibyte_characters); - BVAR (b, cursor_type) = BVAR (&buffer_defaults, cursor_type); - BVAR (b, extra_line_spacing) = BVAR (&buffer_defaults, extra_line_spacing); + BSET (b, mark_active, Qnil); + BSET (b, point_before_scroll, Qnil); + BSET (b, file_format, Qnil); + BSET (b, auto_save_file_format, Qt); + BSET (b, last_selected_window, Qnil); + BSET (b, display_count, make_number (0)); + BSET (b, display_time, Qnil); + BSET (b, enable_multibyte_characters, + BVAR (&buffer_defaults, enable_multibyte_characters)); + BSET (b, cursor_type, BVAR (&buffer_defaults, cursor_type)); + BSET (b, extra_line_spacing, BVAR (&buffer_defaults, extra_line_spacing)); b->display_error_modiff = 0; } @@ -755,10 +757,10 @@ things that depend on the major mode. default-major-mode is handled at a higher level. We ignore it here. */ - BVAR (b, major_mode) = Qfundamental_mode; - BVAR (b, keymap) = Qnil; - BVAR (b, mode_name) = QSFundamental; - BVAR (b, minor_modes) = Qnil; + BSET (b, major_mode, Qfundamental_mode); + BSET (b, keymap, Qnil); + BSET (b, mode_name, QSFundamental); + BSET (b, minor_modes, Qnil); /* If the standard case table has been altered and invalidated, fix up its insides first. */ @@ -767,15 +769,15 @@ && CHAR_TABLE_P (XCHAR_TABLE (Vascii_downcase_table)->extras[2]))) Fset_standard_case_table (Vascii_downcase_table); - BVAR (b, downcase_table) = Vascii_downcase_table; - BVAR (b, upcase_table) = XCHAR_TABLE (Vascii_downcase_table)->extras[0]; - BVAR (b, case_canon_table) = XCHAR_TABLE (Vascii_downcase_table)->extras[1]; - BVAR (b, case_eqv_table) = XCHAR_TABLE (Vascii_downcase_table)->extras[2]; - BVAR (b, invisibility_spec) = Qt; + BSET (b, downcase_table, Vascii_downcase_table); + BSET (b, upcase_table, XCHAR_TABLE (Vascii_downcase_table)->extras[0]); + BSET (b, case_canon_table, XCHAR_TABLE (Vascii_downcase_table)->extras[1]); + BSET (b, case_eqv_table, XCHAR_TABLE (Vascii_downcase_table)->extras[2]); + BSET (b, invisibility_spec, Qt); /* Reset all (or most) per-buffer variables to their defaults. */ if (permanent_too) - BVAR (b, local_var_alist) = Qnil; + BSET (b, local_var_alist, Qnil); else { Lisp_Object tmp, prop, last = Qnil; @@ -809,7 +811,7 @@ } /* Delete this local variable. */ else if (NILP (last)) - BVAR (b, local_var_alist) = XCDR (tmp); + BSET (b, local_var_alist, XCDR (tmp)); else XSETCDR (last, XCDR (tmp)); } @@ -1286,7 +1288,7 @@ error ("Buffer name `%s' is in use", SDATA (newname)); } - BVAR (current_buffer, name) = newname; + BSET (current_buffer, name, newname); /* Catch redisplay's attention. Unless we do this, the mode lines for any windows displaying current_buffer will stay unchanged. */ @@ -1431,7 +1433,7 @@ } if (EQ (BVAR (XBUFFER (real_buffer), undo_list), Qt)) - BVAR (XBUFFER (real_buffer), undo_list) = Qnil; + BSET (XBUFFER (real_buffer), undo_list, Qnil); return Qnil; } @@ -1703,7 +1705,7 @@ swap_out_buffer_local_variables (b); reset_buffer_local_variables (b, 1); - BVAR (b, name) = Qnil; + BSET (b, name, Qnil); BLOCK_INPUT; if (b->base_buffer) @@ -1727,9 +1729,9 @@ free_region_cache (b->width_run_cache); b->width_run_cache = 0; } - BVAR (b, width_table) = Qnil; + BSET (b, width_table, Qnil); UNBLOCK_INPUT; - BVAR (b, undo_list) = Qnil; + BSET (b, undo_list, Qnil); /* Run buffer-list-update-hook. */ if (!NILP (Vrun_hooks)) @@ -1910,7 +1912,7 @@ /* Put the undo list back in the base buffer, so that it appears that an indirect buffer shares the undo list of its base. */ if (old_buf->base_buffer) - BVAR (old_buf->base_buffer, undo_list) = BVAR (old_buf, undo_list); + BSET (old_buf->base_buffer, undo_list, BVAR (old_buf, undo_list)); /* If the old current buffer has markers to record PT, BEGV and ZV when it is not current, update them now. */ @@ -1920,7 +1922,7 @@ /* Get the undo list from the base buffer, so that it appears that an indirect buffer shares the undo list of its base. */ if (b->base_buffer) - BVAR (b, undo_list) = BVAR (b->base_buffer, undo_list); + BSET (b, undo_list, BVAR (b->base_buffer, undo_list)); /* If the new current buffer has markers to record PT, BEGV and ZV when it is not current, fetch them now. */ @@ -2118,8 +2120,8 @@ #define swapfield_(field, type) \ do { \ type tmp##field = BVAR (other_buffer, field); \ - BVAR (other_buffer, field) = BVAR (current_buffer, field); \ - BVAR (current_buffer, field) = tmp##field; \ + BSET (other_buffer, field, BVAR (current_buffer, field)); \ + BSET (current_buffer, field, tmp##field); \ } while (0) swapfield (own_text, struct buffer_text); @@ -2159,8 +2161,8 @@ swapfield_ (pt_marker, Lisp_Object); swapfield_ (begv_marker, Lisp_Object); swapfield_ (zv_marker, Lisp_Object); - BVAR (current_buffer, point_before_scroll) = Qnil; - BVAR (other_buffer, point_before_scroll) = Qnil; + BSET (current_buffer, point_before_scroll, Qnil); + BSET (other_buffer, point_before_scroll, Qnil); current_buffer->text->modiff++; other_buffer->text->modiff++; current_buffer->text->chars_modiff++; other_buffer->text->chars_modiff++; @@ -2249,7 +2251,7 @@ /* Don't record these buffer changes. We will put a special undo entry instead. */ - BVAR (current_buffer, undo_list) = Qt; + BSET (current_buffer, undo_list, Qt); /* If the cached position is for this buffer, clear it out. */ clear_charpos_cache (current_buffer); @@ -2271,7 +2273,7 @@ to calculate the old correspondences. */ set_intervals_multibyte (0); - BVAR (current_buffer, enable_multibyte_characters) = Qnil; + BSET (current_buffer, enable_multibyte_characters, Qnil); Z = Z_BYTE; BEGV = BEGV_BYTE; @@ -2409,7 +2411,7 @@ /* Do this first, so that chars_in_text asks the right question. set_intervals_multibyte needs it too. */ - BVAR (current_buffer, enable_multibyte_characters) = Qt; + BSET (current_buffer, enable_multibyte_characters, Qt); GPT_BYTE = advance_to_char_boundary (GPT_BYTE); GPT = chars_in_text (BEG_ADDR, GPT_BYTE - BEG_BYTE) + BEG; @@ -2467,10 +2469,11 @@ if (!EQ (old_undo, Qt)) { /* Represent all the above changes by a special undo entry. */ - BVAR (current_buffer, undo_list) = Fcons (list3 (Qapply, - intern ("set-buffer-multibyte"), - NILP (flag) ? Qt : Qnil), - old_undo); + BSET (current_buffer, undo_list, + Fcons (list3 (Qapply, + intern ("set-buffer-multibyte"), + NILP (flag) ? Qt : Qnil), + old_undo)); } UNGCPRO; @@ -4929,55 +4932,55 @@ /* Must do these before making the first buffer! */ /* real setup is done in bindings.el */ - BVAR (&buffer_defaults, mode_line_format) = build_pure_c_string ("%-"); - BVAR (&buffer_defaults, header_line_format) = Qnil; - BVAR (&buffer_defaults, abbrev_mode) = Qnil; - BVAR (&buffer_defaults, overwrite_mode) = Qnil; - BVAR (&buffer_defaults, case_fold_search) = Qt; - BVAR (&buffer_defaults, auto_fill_function) = Qnil; - BVAR (&buffer_defaults, selective_display) = Qnil; - BVAR (&buffer_defaults, selective_display_ellipses) = Qt; - BVAR (&buffer_defaults, abbrev_table) = Qnil; - BVAR (&buffer_defaults, display_table) = Qnil; - BVAR (&buffer_defaults, undo_list) = Qnil; - BVAR (&buffer_defaults, mark_active) = Qnil; - BVAR (&buffer_defaults, file_format) = Qnil; - BVAR (&buffer_defaults, auto_save_file_format) = Qt; + BSET (&buffer_defaults, mode_line_format, build_pure_c_string ("%-")); + BSET (&buffer_defaults, header_line_format, Qnil); + BSET (&buffer_defaults, abbrev_mode, Qnil); + BSET (&buffer_defaults, overwrite_mode, Qnil); + BSET (&buffer_defaults, case_fold_search, Qt); + BSET (&buffer_defaults, auto_fill_function, Qnil); + BSET (&buffer_defaults, selective_display, Qnil); + BSET (&buffer_defaults, selective_display_ellipses, Qt); + BSET (&buffer_defaults, abbrev_table, Qnil); + BSET (&buffer_defaults, display_table, Qnil); + BSET (&buffer_defaults, undo_list, Qnil); + BSET (&buffer_defaults, mark_active, Qnil); + BSET (&buffer_defaults, file_format, Qnil); + BSET (&buffer_defaults, auto_save_file_format, Qt); buffer_defaults.overlays_before = NULL; buffer_defaults.overlays_after = NULL; buffer_defaults.overlay_center = BEG; XSETFASTINT (BVAR (&buffer_defaults, tab_width), 8); - BVAR (&buffer_defaults, truncate_lines) = Qnil; - BVAR (&buffer_defaults, word_wrap) = Qnil; - BVAR (&buffer_defaults, ctl_arrow) = Qt; - BVAR (&buffer_defaults, bidi_display_reordering) = Qt; - BVAR (&buffer_defaults, bidi_paragraph_direction) = Qnil; - BVAR (&buffer_defaults, cursor_type) = Qt; - BVAR (&buffer_defaults, extra_line_spacing) = Qnil; - BVAR (&buffer_defaults, cursor_in_non_selected_windows) = Qt; + BSET (&buffer_defaults, truncate_lines, Qnil); + BSET (&buffer_defaults, word_wrap, Qnil); + BSET (&buffer_defaults, ctl_arrow, Qt); + BSET (&buffer_defaults, bidi_display_reordering, Qt); + BSET (&buffer_defaults, bidi_paragraph_direction, Qnil); + BSET (&buffer_defaults, cursor_type, Qt); + BSET (&buffer_defaults, extra_line_spacing, Qnil); + BSET (&buffer_defaults, cursor_in_non_selected_windows, Qt); - BVAR (&buffer_defaults, enable_multibyte_characters) = Qt; - BVAR (&buffer_defaults, buffer_file_coding_system) = Qnil; + BSET (&buffer_defaults, enable_multibyte_characters, Qt); + BSET (&buffer_defaults, buffer_file_coding_system, Qnil); XSETFASTINT (BVAR (&buffer_defaults, fill_column), 70); XSETFASTINT (BVAR (&buffer_defaults, left_margin), 0); - BVAR (&buffer_defaults, cache_long_line_scans) = Qnil; - BVAR (&buffer_defaults, file_truename) = Qnil; + BSET (&buffer_defaults, cache_long_line_scans, Qnil); + BSET (&buffer_defaults, file_truename, Qnil); XSETFASTINT (BVAR (&buffer_defaults, display_count), 0); XSETFASTINT (BVAR (&buffer_defaults, left_margin_cols), 0); XSETFASTINT (BVAR (&buffer_defaults, right_margin_cols), 0); - BVAR (&buffer_defaults, left_fringe_width) = Qnil; - BVAR (&buffer_defaults, right_fringe_width) = Qnil; - BVAR (&buffer_defaults, fringes_outside_margins) = Qnil; - BVAR (&buffer_defaults, scroll_bar_width) = Qnil; - BVAR (&buffer_defaults, vertical_scroll_bar_type) = Qt; - BVAR (&buffer_defaults, indicate_empty_lines) = Qnil; - BVAR (&buffer_defaults, indicate_buffer_boundaries) = Qnil; - BVAR (&buffer_defaults, fringe_indicator_alist) = Qnil; - BVAR (&buffer_defaults, fringe_cursor_alist) = Qnil; - BVAR (&buffer_defaults, scroll_up_aggressively) = Qnil; - BVAR (&buffer_defaults, scroll_down_aggressively) = Qnil; - BVAR (&buffer_defaults, display_time) = Qnil; + BSET (&buffer_defaults, left_fringe_width, Qnil); + BSET (&buffer_defaults, right_fringe_width, Qnil); + BSET (&buffer_defaults, fringes_outside_margins, Qnil); + BSET (&buffer_defaults, scroll_bar_width, Qnil); + BSET (&buffer_defaults, vertical_scroll_bar_type, Qt); + BSET (&buffer_defaults, indicate_empty_lines, Qnil); + BSET (&buffer_defaults, indicate_buffer_boundaries, Qnil); + BSET (&buffer_defaults, fringe_indicator_alist, Qnil); + BSET (&buffer_defaults, fringe_cursor_alist, Qnil); + BSET (&buffer_defaults, scroll_up_aggressively, Qnil); + BSET (&buffer_defaults, scroll_down_aggressively, Qnil); + BSET (&buffer_defaults, display_time, Qnil); /* Assign the local-flags to the slots that have default values. The local flag is a bit that is used in the buffer @@ -4989,24 +4992,24 @@ /* 0 means not a lisp var, -1 means always local, else mask */ memset (&buffer_local_flags, 0, sizeof buffer_local_flags); - XSETINT (BVAR (&buffer_local_flags, filename), -1); - XSETINT (BVAR (&buffer_local_flags, directory), -1); - XSETINT (BVAR (&buffer_local_flags, backed_up), -1); - XSETINT (BVAR (&buffer_local_flags, save_length), -1); - XSETINT (BVAR (&buffer_local_flags, auto_save_file_name), -1); - XSETINT (BVAR (&buffer_local_flags, read_only), -1); - XSETINT (BVAR (&buffer_local_flags, major_mode), -1); - XSETINT (BVAR (&buffer_local_flags, mode_name), -1); - XSETINT (BVAR (&buffer_local_flags, undo_list), -1); - XSETINT (BVAR (&buffer_local_flags, mark_active), -1); - XSETINT (BVAR (&buffer_local_flags, point_before_scroll), -1); - XSETINT (BVAR (&buffer_local_flags, file_truename), -1); - XSETINT (BVAR (&buffer_local_flags, invisibility_spec), -1); - XSETINT (BVAR (&buffer_local_flags, file_format), -1); - XSETINT (BVAR (&buffer_local_flags, auto_save_file_format), -1); - XSETINT (BVAR (&buffer_local_flags, display_count), -1); - XSETINT (BVAR (&buffer_local_flags, display_time), -1); - XSETINT (BVAR (&buffer_local_flags, enable_multibyte_characters), -1); + BSET (&buffer_local_flags, filename, make_number (-1)); + BSET (&buffer_local_flags, directory, make_number (-1)); + BSET (&buffer_local_flags, backed_up, make_number (-1)); + BSET (&buffer_local_flags, save_length, make_number (-1)); + BSET (&buffer_local_flags, auto_save_file_name, make_number (-1)); + BSET (&buffer_local_flags, read_only, make_number (-1)); + BSET (&buffer_local_flags, major_mode, make_number (-1)); + BSET (&buffer_local_flags, mode_name, make_number (-1)); + BSET (&buffer_local_flags, undo_list, make_number (-1)); + BSET (&buffer_local_flags, mark_active, make_number (-1)); + BSET (&buffer_local_flags, point_before_scroll, make_number (-1)); + BSET (&buffer_local_flags, file_truename, make_number (-1)); + BSET (&buffer_local_flags, invisibility_spec, make_number (-1)); + BSET (&buffer_local_flags, file_format, make_number (-1)); + BSET (&buffer_local_flags, auto_save_file_format, make_number (-1)); + BSET (&buffer_local_flags, display_count, make_number (-1)); + BSET (&buffer_local_flags, display_time, make_number (-1)); + BSET (&buffer_local_flags, enable_multibyte_characters, make_number (-1)); idx = 1; XSETFASTINT (BVAR (&buffer_local_flags, mode_line_format), idx); ++idx; @@ -5062,7 +5065,7 @@ QSFundamental = build_pure_c_string ("Fundamental"); Qfundamental_mode = intern_c_string ("fundamental-mode"); - BVAR (&buffer_defaults, major_mode) = Qfundamental_mode; + BSET (&buffer_defaults, major_mode, Qfundamental_mode); Qmode_class = intern_c_string ("mode-class"); @@ -5125,13 +5128,13 @@ len++; } - BVAR (current_buffer, directory) = make_unibyte_string (pwd, len); + BSET (current_buffer, directory, make_unibyte_string (pwd, len)); if (! NILP (BVAR (&buffer_defaults, enable_multibyte_characters))) /* At this moment, we still don't know how to decode the directory name. So, we keep the bytes in multibyte form so that ENCODE_FILE correctly gets the original bytes. */ - BVAR (current_buffer, directory) - = string_to_multibyte (BVAR (current_buffer, directory)); + BSET (current_buffer, directory, + string_to_multibyte (BVAR (current_buffer, directory))); /* Add /: to the front of the name if it would otherwise be treated as magic. */ @@ -5142,11 +5145,11 @@ However, it is not necessary to turn / into /:/. So avoid doing that. */ && strcmp ("/", SSDATA (BVAR (current_buffer, directory)))) - BVAR (current_buffer, directory) - = concat2 (build_string ("/:"), BVAR (current_buffer, directory)); + BSET (current_buffer, directory, + concat2 (build_string ("/:"), BVAR (current_buffer, directory))); temp = get_minibuffer (0); - BVAR (XBUFFER (temp), directory) = BVAR (current_buffer, directory); + BSET (XBUFFER (temp), directory, BVAR (current_buffer, directory)); free (pwd); } === modified file 'src/buffer.h' --- src/buffer.h 2012-08-08 14:47:11 +0000 +++ src/buffer.h 2012-08-13 03:39:07 +0000 @@ -477,6 +477,7 @@ /* Most code should use this macro to access Lisp fields in struct buffer. */ #define BVAR(buf, field) ((buf)->INTERNAL_FIELD (field)) +#define BSET(buf, field, value) ((buf)->INTERNAL_FIELD (field) = (value)) /* This is the structure that the buffer Lisp object points to. */ === modified file 'src/casetab.c' --- src/casetab.c 2012-06-16 12:24:15 +0000 +++ src/casetab.c 2012-08-13 03:39:07 +0000 @@ -158,10 +158,10 @@ } else { - BVAR (current_buffer, downcase_table) = table; - BVAR (current_buffer, upcase_table) = up; - BVAR (current_buffer, case_canon_table) = canon; - BVAR (current_buffer, case_eqv_table) = eqv; + BSET (current_buffer, downcase_table, table); + BSET (current_buffer, upcase_table, up); + BSET (current_buffer, case_canon_table, canon); + BSET (current_buffer, case_eqv_table, eqv); } return table; === modified file 'src/cmds.c' --- src/cmds.c 2012-08-07 13:37:21 +0000 +++ src/cmds.c 2012-08-13 03:39:07 +0000 @@ -301,7 +301,7 @@ added be explicit calls to undo-boundary. */ && EQ (BVAR (current_buffer, undo_list), last_undo_boundary)) /* Remove the undo_boundary that was just pushed. */ - BVAR (current_buffer, undo_list) = XCDR (BVAR (current_buffer, undo_list)); + BSET (current_buffer, undo_list, XCDR (BVAR (current_buffer, undo_list))); /* Barf if the key that invoked this was not a character. */ if (!CHARACTERP (last_command_event)) === modified file 'src/coding.c' --- src/coding.c 2012-08-09 05:14:23 +0000 +++ src/coding.c 2012-08-13 03:39:07 +0000 @@ -7103,7 +7103,7 @@ if (GPT != PT) move_gap_both (PT, PT_BYTE); undo_list = BVAR (current_buffer, undo_list); - BVAR (current_buffer, undo_list) = Qt; + BSET (current_buffer, undo_list, Qt); } coding->consumed = coding->consumed_char = 0; @@ -7200,7 +7200,7 @@ decode_eol (coding); if (BUFFERP (coding->dst_object)) { - BVAR (current_buffer, undo_list) = undo_list; + BSET (current_buffer, undo_list, undo_list); record_insert (coding->dst_pos, coding->produced_char); } return coding->result; @@ -7568,8 +7568,8 @@ doesn't compile new regexps. */ Fset (Fmake_local_variable (Qinhibit_modification_hooks), Qt); Ferase_buffer (); - BVAR (current_buffer, undo_list) = Qt; - BVAR (current_buffer, enable_multibyte_characters) = multibyte ? Qt : Qnil; + BSET (current_buffer, undo_list, Qt); + BSET (current_buffer, enable_multibyte_characters, multibyte ? Qt : Qnil); set_buffer_internal (current); return workbuf; } === modified file 'src/data.c' --- src/data.c 2012-08-07 13:37:21 +0000 +++ src/data.c 2012-08-13 03:39:07 +0000 @@ -1211,8 +1211,8 @@ bindings, not for frame-local bindings. */ eassert (!blv->frame_local); tem1 = Fcons (symbol, XCDR (blv->defcell)); - BVAR (XBUFFER (where), local_var_alist) - = Fcons (tem1, BVAR (XBUFFER (where), local_var_alist)); + BSET (XBUFFER (where), local_var_alist, + Fcons (tem1, BVAR (XBUFFER (where), local_var_alist))); } } @@ -1651,9 +1651,9 @@ default value. */ find_symbol_value (variable); - BVAR (current_buffer, local_var_alist) - = Fcons (Fcons (variable, XCDR (blv->defcell)), - BVAR (current_buffer, local_var_alist)); + BSET (current_buffer, local_var_alist, + Fcons (Fcons (variable, XCDR (blv->defcell)), + BVAR (current_buffer, local_var_alist))); /* Make sure symbol does not think it is set up for this buffer; force it to look once again for this buffer's value. */ @@ -1721,8 +1721,8 @@ XSETSYMBOL (variable, sym); /* Propagate variable indirection. */ tem = Fassq (variable, BVAR (current_buffer, local_var_alist)); if (!NILP (tem)) - BVAR (current_buffer, local_var_alist) - = Fdelq (tem, BVAR (current_buffer, local_var_alist)); + BSET (current_buffer, local_var_alist, + Fdelq (tem, BVAR (current_buffer, local_var_alist))); /* If the symbol is set up with the current buffer's binding loaded, recompute its value. We have to do it now, or else === modified file 'src/editfns.c' --- src/editfns.c 2012-08-08 14:47:11 +0000 +++ src/editfns.c 2012-08-13 03:39:07 +0000 @@ -882,7 +882,7 @@ info = XCDR (info); tem = XCAR (info); tem1 = BVAR (current_buffer, mark_active); - BVAR (current_buffer, mark_active) = tem; + BSET (current_buffer, mark_active, tem); /* If mark is active now, and either was not active or was at a different place, run the activate hook. */ @@ -2816,13 +2816,13 @@ static Lisp_Object subst_char_in_region_unwind (Lisp_Object arg) { - return BVAR (current_buffer, undo_list) = arg; + return BSET (current_buffer, undo_list, arg); } static Lisp_Object subst_char_in_region_unwind_1 (Lisp_Object arg) { - return BVAR (current_buffer, filename) = arg; + return BSET (current_buffer, filename, arg); } DEFUN ("subst-char-in-region", Fsubst_char_in_region, @@ -2896,11 +2896,11 @@ { record_unwind_protect (subst_char_in_region_unwind, BVAR (current_buffer, undo_list)); - BVAR (current_buffer, undo_list) = Qt; + BSET (current_buffer, undo_list, Qt); /* Don't do file-locking. */ record_unwind_protect (subst_char_in_region_unwind_1, BVAR (current_buffer, filename)); - BVAR (current_buffer, filename) = Qnil; + BSET (current_buffer, filename, Qnil); } if (pos_byte < GPT_BYTE) @@ -2982,7 +2982,7 @@ INC_POS (pos_byte_next); if (! NILP (noundo)) - BVAR (current_buffer, undo_list) = tem; + BSET (current_buffer, undo_list, tem); UNGCPRO; } === modified file 'src/fileio.c' --- src/fileio.c 2012-08-08 14:47:11 +0000 +++ src/fileio.c 2012-08-13 03:39:07 +0000 @@ -3149,8 +3149,8 @@ TEMP_SET_PT_BOTH (BEG, BEG_BYTE); /* Now we are safe to change the buffer's multibyteness directly. */ - BVAR (current_buffer, enable_multibyte_characters) = multibyte; - BVAR (current_buffer, undo_list) = undo_list; + BSET (current_buffer, enable_multibyte_characters, multibyte); + BSET (current_buffer, undo_list, undo_list); return Qnil; } @@ -3486,16 +3486,16 @@ buf = XBUFFER (workbuf); delete_all_overlays (buf); - BVAR (buf, directory) = BVAR (current_buffer, directory); - BVAR (buf, read_only) = Qnil; - BVAR (buf, filename) = Qnil; - BVAR (buf, undo_list) = Qt; + BSET (buf, directory, BVAR (current_buffer, directory)); + BSET (buf, read_only, Qnil); + BSET (buf, filename, Qnil); + BSET (buf, undo_list, Qt); eassert (buffer_get_overlays (buf, OV_BEFORE) == NULL); eassert (buffer_get_overlays (buf, OV_AFTER) == NULL); set_buffer_internal (buf); Ferase_buffer (); - BVAR (buf, enable_multibyte_characters) = Qnil; + BSET (buf, enable_multibyte_characters, Qnil); insert_1_both ((char *) read_buf, nread, nread, 0, 0, 0); TEMP_SET_PT_BOTH (BEG, BEG_BYTE); @@ -4104,8 +4104,8 @@ unwind_data = Fcons (BVAR (current_buffer, enable_multibyte_characters), Fcons (BVAR (current_buffer, undo_list), Fcurrent_buffer ())); - BVAR (current_buffer, enable_multibyte_characters) = Qnil; - BVAR (current_buffer, undo_list) = Qt; + BSET (current_buffer, enable_multibyte_characters, Qnil); + BSET (current_buffer, undo_list, Qt); record_unwind_protect (decide_coding_unwind, unwind_data); if (inserted > 0 && ! NILP (Vset_auto_coding_function)) @@ -4153,7 +4153,7 @@ && NILP (replace)) /* Visiting a file with these coding system makes the buffer unibyte. */ - BVAR (current_buffer, enable_multibyte_characters) = Qnil; + BSET (current_buffer, enable_multibyte_characters, Qnil); } coding.dst_multibyte = ! NILP (BVAR (current_buffer, enable_multibyte_characters)); @@ -4196,13 +4196,13 @@ if (!NILP (visit)) { if (!EQ (BVAR (current_buffer, undo_list), Qt) && !nochange) - BVAR (current_buffer, undo_list) = Qnil; + BSET (current_buffer, undo_list, Qnil); if (NILP (handler)) { current_buffer->modtime = mtime; current_buffer->modtime_size = st.st_size; - BVAR (current_buffer, filename) = orig_filename; + BSET (current_buffer, filename, orig_filename); } SAVE_MODIFF = MODIFF; @@ -4247,7 +4247,7 @@ /* Save old undo list and don't record undo for decoding. */ old_undo = BVAR (current_buffer, undo_list); - BVAR (current_buffer, undo_list) = Qt; + BSET (current_buffer, undo_list, Qt); if (NILP (replace)) { @@ -4339,7 +4339,7 @@ if (NILP (visit)) { - BVAR (current_buffer, undo_list) = old_undo; + BSET (current_buffer, undo_list, old_undo); if (CONSP (old_undo) && inserted != old_inserted) { /* Adjust the last undo record for the size change during @@ -4354,7 +4354,7 @@ else /* If undo_list was Qt before, keep it that way. Otherwise start with an empty undo_list. */ - BVAR (current_buffer, undo_list) = EQ (old_undo, Qt) ? Qt : Qnil; + BSET (current_buffer, undo_list, EQ (old_undo, Qt) ? Qt : Qnil); unbind_to (count1, Qnil); } @@ -4594,7 +4594,7 @@ { SAVE_MODIFF = MODIFF; XSETFASTINT (BVAR (current_buffer, save_length), Z - BEG); - BVAR (current_buffer, filename) = visit_file; + BSET (current_buffer, filename, visit_file); } UNGCPRO; return val; @@ -4810,7 +4810,7 @@ { SAVE_MODIFF = MODIFF; XSETFASTINT (BVAR (current_buffer, save_length), Z - BEG); - BVAR (current_buffer, filename) = visit_file; + BSET (current_buffer, filename, visit_file); update_mode_lines++; } else if (quietly) === modified file 'src/frame.c' --- src/frame.c 2012-08-10 09:24:03 +0000 +++ src/frame.c 2012-08-13 03:39:07 +0000 @@ -1677,7 +1677,7 @@ w = XWINDOW (window); if (!NILP (w->buffer)) - BVAR (XBUFFER (w->buffer), display_time) = Fcurrent_time (); + BSET (XBUFFER (w->buffer), display_time, Fcurrent_time ()); if (!NILP (w->vchild)) make_frame_visible_1 (w->vchild); === modified file 'src/indent.c' --- src/indent.c 2012-08-08 14:47:11 +0000 +++ src/indent.c 2012-08-13 03:39:07 +0000 @@ -141,7 +141,7 @@ struct Lisp_Vector *widthtab; if (!VECTORP (BVAR (buf, width_table))) - BVAR (buf, width_table) = Fmake_vector (make_number (256), make_number (0)); + BSET (buf, width_table, Fmake_vector (make_number (256), make_number (0))); widthtab = XVECTOR (BVAR (buf, width_table)); if (widthtab->header.size != 256) abort (); @@ -166,7 +166,7 @@ { free_region_cache (current_buffer->width_run_cache); current_buffer->width_run_cache = 0; - BVAR (current_buffer, width_table) = Qnil; + BSET (current_buffer, width_table, Qnil); } } else === modified file 'src/insdel.c' --- src/insdel.c 2012-08-08 14:47:11 +0000 +++ src/insdel.c 2012-08-13 03:39:07 +0000 @@ -1792,7 +1792,7 @@ if (! preserve_chars_modiff) CHARS_MODIFF = MODIFF; - BVAR (buffer, point_before_scroll) = Qnil; + BSET (buffer, point_before_scroll, Qnil); if (buffer != old_buffer) set_buffer_internal (old_buffer); === modified file 'src/intervals.c' --- src/intervals.c 2012-08-10 13:24:20 +0000 +++ src/intervals.c 2012-08-13 03:39:07 +0000 @@ -1858,7 +1858,7 @@ int have_overlays; ptrdiff_t original_position; - BVAR (current_buffer, point_before_scroll) = Qnil; + BSET (current_buffer, point_before_scroll, Qnil); if (charpos == PT) return; === modified file 'src/keymap.c' --- src/keymap.c 2012-08-07 07:33:18 +0000 +++ src/keymap.c 2012-08-13 03:39:07 +0000 @@ -1854,7 +1854,7 @@ if (!NILP (keymap)) keymap = get_keymap (keymap, 1, 1); - BVAR (current_buffer, keymap) = keymap; + BSET (current_buffer, keymap, keymap); return Qnil; } === modified file 'src/minibuf.c' --- src/minibuf.c 2012-08-07 07:33:18 +0000 +++ src/minibuf.c 2012-08-13 03:39:07 +0000 @@ -562,11 +562,11 @@ /* Defeat (setq-default truncate-lines t), since truncated lines do not work correctly in minibuffers. (Bug#5715, etc) */ - BVAR (current_buffer, truncate_lines) = Qnil; + BSET (current_buffer, truncate_lines, Qnil); /* If appropriate, copy enable-multibyte-characters into the minibuffer. */ if (inherit_input_method) - BVAR (current_buffer, enable_multibyte_characters) = enable_multibyte; + BSET (current_buffer, enable_multibyte_characters, enable_multibyte); /* The current buffer's default directory is usually the right thing for our minibuffer here. However, if you're typing a command at @@ -577,7 +577,7 @@ you think of something better to do? Find another buffer with a better directory, and use that one instead. */ if (STRINGP (ambient_dir)) - BVAR (current_buffer, directory) = ambient_dir; + BSET (current_buffer, directory, ambient_dir); else { Lisp_Object buf_list; @@ -591,7 +591,8 @@ other_buf = XCDR (XCAR (buf_list)); if (STRINGP (BVAR (XBUFFER (other_buf), directory))) { - BVAR (current_buffer, directory) = BVAR (XBUFFER (other_buf), directory); + BSET (current_buffer, directory, + BVAR (XBUFFER (other_buf), directory)); break; } } @@ -664,7 +665,7 @@ } clear_message (1, 1); - BVAR (current_buffer, keymap) = map; + BSET (current_buffer, keymap, map); /* Turn on an input method stored in INPUT_METHOD if any. */ if (STRINGP (input_method) && !NILP (Ffboundp (Qactivate_input_method))) @@ -673,7 +674,7 @@ Frun_hooks (1, &Qminibuffer_setup_hook); /* Don't allow the user to undo past this point. */ - BVAR (current_buffer, undo_list) = Qnil; + BSET (current_buffer, undo_list, Qnil); recursive_edit_1 (); === modified file 'src/print.c' --- src/print.c 2012-08-08 14:47:11 +0000 +++ src/print.c 2012-08-13 03:39:07 +0000 @@ -494,14 +494,14 @@ Fkill_all_local_variables (); delete_all_overlays (current_buffer); - BVAR (current_buffer, directory) = BVAR (old, directory); - BVAR (current_buffer, read_only) = Qnil; - BVAR (current_buffer, filename) = Qnil; - BVAR (current_buffer, undo_list) = Qt; + BSET (current_buffer, directory, BVAR (old, directory)); + BSET (current_buffer, read_only, Qnil); + BSET (current_buffer, filename, Qnil); + BSET (current_buffer, undo_list, Qt); eassert (buffer_get_overlays (NULL, OV_BEFORE) == NULL); eassert (buffer_get_overlays (NULL, OV_AFTER) == NULL); - BVAR (current_buffer, enable_multibyte_characters) - = BVAR (&buffer_defaults, enable_multibyte_characters); + BSET (current_buffer, enable_multibyte_characters, + BVAR (&buffer_defaults, enable_multibyte_characters)); specbind (Qinhibit_read_only, Qt); specbind (Qinhibit_modification_hooks, Qt); Ferase_buffer (); === modified file 'src/process.c' --- src/process.c 2012-08-07 07:42:34 +0000 +++ src/process.c 2012-08-13 03:39:07 +0000 @@ -5246,7 +5246,7 @@ old_begv_byte = BEGV_BYTE; old_zv_byte = ZV_BYTE; - BVAR (current_buffer, read_only) = Qnil; + BSET (current_buffer, read_only, Qnil); /* Insert new output into buffer at the current end-of-output marker, @@ -5337,7 +5337,7 @@ Fnarrow_to_region (make_number (old_begv), make_number (old_zv)); - BVAR (current_buffer, read_only) = old_read_only; + BSET (current_buffer, read_only, old_read_only); SET_PT_BOTH (opoint, opoint_byte); } /* Handling the process output should not deactivate the mark. */ @@ -6671,13 +6671,13 @@ before_byte = PT_BYTE; tem = BVAR (current_buffer, read_only); - BVAR (current_buffer, read_only) = Qnil; + BSET (current_buffer, read_only, Qnil); insert_string ("\nProcess "); { /* FIXME: temporary kludge */ Lisp_Object tem2 = p->name; Finsert (1, &tem2); } insert_string (" "); Finsert (1, &msg); - BVAR (current_buffer, read_only) = tem; + BSET (current_buffer, read_only, tem); set_marker_both (p->mark, p->buffer, PT, PT_BYTE); if (opoint >= before) === modified file 'src/syntax.c' --- src/syntax.c 2012-08-08 06:11:29 +0000 +++ src/syntax.c 2012-08-13 03:39:07 +0000 @@ -836,7 +836,7 @@ { int idx; check_syntax_table (table); - BVAR (current_buffer, syntax_table) = table; + BSET (current_buffer, syntax_table, table); /* Indicate that this buffer now has a specified syntax table. */ idx = PER_BUFFER_VAR_IDX (syntax_table); SET_PER_BUFFER_VALUE_P (current_buffer, idx, 1); === modified file 'src/undo.c' --- src/undo.c 2012-07-10 23:24:36 +0000 +++ src/undo.c 2012-08-13 03:39:07 +0000 @@ -104,8 +104,9 @@ if (at_boundary && current_buffer == last_boundary_buffer && last_boundary_position != pt) - BVAR (current_buffer, undo_list) - = Fcons (make_number (last_boundary_position), BVAR (current_buffer, undo_list)); + BSET (current_buffer, undo_list, + Fcons (make_number (last_boundary_position), + BVAR (current_buffer, undo_list))); } /* Record an insertion that just happened or is about to happen, @@ -141,8 +142,8 @@ XSETFASTINT (lbeg, beg); XSETINT (lend, beg + length); - BVAR (current_buffer, undo_list) = Fcons (Fcons (lbeg, lend), - BVAR (current_buffer, undo_list)); + BSET (current_buffer, undo_list, + Fcons (Fcons (lbeg, lend), BVAR (current_buffer, undo_list))); } /* Record that a deletion is about to take place, @@ -167,8 +168,8 @@ record_point (beg); } - BVAR (current_buffer, undo_list) - = Fcons (Fcons (string, sbeg), BVAR (current_buffer, undo_list)); + BSET (current_buffer, undo_list, + Fcons (Fcons (string, sbeg), BVAR (current_buffer, undo_list))); } /* Record the fact that MARKER is about to be adjusted by ADJUSTMENT. @@ -190,9 +191,9 @@ Fundo_boundary (); last_undo_buffer = current_buffer; - BVAR (current_buffer, undo_list) - = Fcons (Fcons (marker, make_number (adjustment)), - BVAR (current_buffer, undo_list)); + BSET (current_buffer, undo_list, + Fcons (Fcons (marker, make_number (adjustment)), + BVAR (current_buffer, undo_list))); } /* Record that a replacement is about to take place, @@ -225,9 +226,9 @@ if (base_buffer->base_buffer) base_buffer = base_buffer->base_buffer; - BVAR (current_buffer, undo_list) = - Fcons (Fcons (Qt, make_lisp_time (base_buffer->modtime)), - BVAR (current_buffer, undo_list)); + BSET (current_buffer, undo_list, + Fcons (Fcons (Qt, make_lisp_time (base_buffer->modtime)), + BVAR (current_buffer, undo_list))); } /* Record a change in property PROP (whose old value was VAL) @@ -265,7 +266,8 @@ XSETINT (lbeg, beg); XSETINT (lend, beg + length); entry = Fcons (Qnil, Fcons (prop, Fcons (value, Fcons (lbeg, lend)))); - BVAR (current_buffer, undo_list) = Fcons (entry, BVAR (current_buffer, undo_list)); + BSET (current_buffer, undo_list, + Fcons (entry, BVAR (current_buffer, undo_list))); current_buffer = obuf; } @@ -288,11 +290,11 @@ /* If we have preallocated the cons cell to use here, use that one. */ XSETCDR (pending_boundary, BVAR (current_buffer, undo_list)); - BVAR (current_buffer, undo_list) = pending_boundary; + BSET (current_buffer, undo_list, pending_boundary); pending_boundary = Qnil; } else - BVAR (current_buffer, undo_list) = Fcons (Qnil, BVAR (current_buffer, undo_list)); + BSET (current_buffer, undo_list, Fcons (Qnil, BVAR (current_buffer, undo_list))); } last_boundary_position = PT; last_boundary_buffer = current_buffer; @@ -433,7 +435,7 @@ XSETCDR (last_boundary, Qnil); /* There's nothing we decided to keep, so clear it out. */ else - BVAR (b, undo_list) = Qnil; + BSET (b, undo_list, Qnil); unbind_to (count, Qnil); } @@ -648,8 +650,8 @@ will work right. */ if (did_apply && EQ (oldlist, BVAR (current_buffer, undo_list))) - BVAR (current_buffer, undo_list) - = Fcons (list3 (Qapply, Qcdr, Qnil), BVAR (current_buffer, undo_list)); + BSET (current_buffer, undo_list, + Fcons (list3 (Qapply, Qcdr, Qnil), BVAR (current_buffer, undo_list))); UNGCPRO; return unbind_to (count, list); === modified file 'src/w32fns.c' --- src/w32fns.c 2012-08-10 09:24:03 +0000 +++ src/w32fns.c 2012-08-13 03:39:07 +0000 @@ -5240,7 +5240,7 @@ Fset_window_buffer (FRAME_ROOT_WINDOW (f), buffer, Qnil); old_buffer = current_buffer; set_buffer_internal_1 (XBUFFER (buffer)); - BVAR (current_buffer, truncate_lines) = Qnil; + BSET (current_buffer, truncate_lines, Qnil); specbind (Qinhibit_read_only, Qt); specbind (Qinhibit_modification_hooks, Qt); Ferase_buffer (); @@ -5670,7 +5670,7 @@ /* Display the tooltip text in a temporary buffer. */ old_buffer = current_buffer; set_buffer_internal_1 (XBUFFER (XWINDOW (FRAME_ROOT_WINDOW (f))->buffer)); - BVAR (current_buffer, truncate_lines) = Qnil; + BSET (current_buffer, truncate_lines, Qnil); clear_glyph_matrix (w->desired_matrix); clear_glyph_matrix (w->current_matrix); SET_TEXT_POS (pos, BEGV, BEGV_BYTE); === modified file 'src/window.c' --- src/window.c 2012-08-07 07:33:18 +0000 +++ src/window.c 2012-08-13 03:39:07 +0000 @@ -373,7 +373,7 @@ Fset_buffer (w->buffer); - BVAR (XBUFFER (w->buffer), last_selected_window) = window; + BSET (XBUFFER (w->buffer), last_selected_window, window); /* Go to the point recorded in the window. This is important when the buffer is in more @@ -1812,7 +1812,7 @@ if (WINDOWP (BVAR (b, last_selected_window)) && w == XWINDOW (BVAR (b, last_selected_window))) - BVAR (b, last_selected_window) = Qnil; + BSET (b, last_selected_window, Qnil); } /* Put NEW into the window structure in place of OLD. SETFLAG zero @@ -2990,15 +2990,15 @@ WSET (w, buffer, buffer); if (EQ (window, selected_window)) - BVAR (b, last_selected_window) = window; + BSET (b, last_selected_window, window); /* Let redisplay errors through. */ b->display_error_modiff = 0; /* Update time stamps of buffer display. */ if (INTEGERP (BVAR (b, display_count))) - XSETINT (BVAR (b, display_count), XINT (BVAR (b, display_count)) + 1); - BVAR (b, display_time) = Fcurrent_time (); + BSET (b, display_count, make_number (XINT (BVAR (b, display_count)) + 1)); + BSET (b, display_time, Fcurrent_time ()); WSET (w, window_end_pos, make_number (0)); WSET (w, window_end_vpos, make_number (0)); @@ -3189,7 +3189,7 @@ register Lisp_Object window; register struct window *w; - BVAR (XBUFFER (buf), directory) = BVAR (current_buffer, directory); + BSET (XBUFFER (buf), directory, BVAR (current_buffer, directory)); Fset_buffer (buf); BUF_SAVE_MODIFF (XBUFFER (buf)) = MODIFF; === modified file 'src/xdisp.c' --- src/xdisp.c 2012-08-08 19:53:44 +0000 +++ src/xdisp.c 2012-08-13 03:39:07 +0000 @@ -9318,7 +9318,7 @@ old_deactivate_mark = Vdeactivate_mark; oldbuf = current_buffer; Fset_buffer (Fget_buffer_create (Vmessages_buffer_name)); - BVAR (current_buffer, undo_list) = Qt; + BSET (current_buffer, undo_list, Qt); oldpoint = message_dolog_marker1; set_marker_restricted (oldpoint, make_number (PT), Qnil); @@ -9880,7 +9880,7 @@ old_buffer = echo_buffer[i]; echo_buffer[i] = Fget_buffer_create (make_formatted_string (name, " *Echo Area %d*", i)); - BVAR (XBUFFER (echo_buffer[i]), truncate_lines) = Qnil; + BSET (XBUFFER (echo_buffer[i]), truncate_lines, Qnil); /* to force word wrap in echo area - it was decided to postpone this*/ /* XBUFFER (echo_buffer[i])->word_wrap = Qt; */ @@ -9973,8 +9973,8 @@ set_marker_both (w->pointm, buffer, BEG, BEG_BYTE); } - BVAR (current_buffer, undo_list) = Qt; - BVAR (current_buffer, read_only) = Qnil; + BSET (current_buffer, undo_list, Qt); + BSET (current_buffer, read_only, Qnil); specbind (Qinhibit_read_only, Qt); specbind (Qinhibit_modification_hooks, Qt); @@ -10087,7 +10087,7 @@ /* Switch to that buffer and clear it. */ set_buffer_internal (XBUFFER (echo_area_buffer[0])); - BVAR (current_buffer, truncate_lines) = Qnil; + BSET (current_buffer, truncate_lines, Qnil); if (Z > BEG) { @@ -10130,7 +10130,7 @@ { /* Someone switched buffers between print requests. */ set_buffer_internal (XBUFFER (echo_area_buffer[0])); - BVAR (current_buffer, truncate_lines) = Qnil; + BSET (current_buffer, truncate_lines, Qnil); } } } @@ -10582,9 +10582,9 @@ != !NILP (BVAR (current_buffer, enable_multibyte_characters))) Fset_buffer_multibyte (message_enable_multibyte ? Qt : Qnil); - BVAR (current_buffer, truncate_lines) = message_truncate_lines ? Qt : Qnil; + BSET (current_buffer, truncate_lines, message_truncate_lines ? Qt : Qnil); if (!NILP (BVAR (current_buffer, bidi_display_reordering))) - BVAR (current_buffer, bidi_paragraph_direction) = Qleft_to_right; + BSET (current_buffer, bidi_paragraph_direction, Qleft_to_right); /* Insert new message at BEG. */ TEMP_SET_PT_BOTH (BEG, BEG_BYTE); === modified file 'src/xfns.c' --- src/xfns.c 2012-08-10 09:24:03 +0000 +++ src/xfns.c 2012-08-13 03:39:07 +0000 @@ -4594,7 +4594,7 @@ Fset_window_buffer (FRAME_ROOT_WINDOW (f), buffer, Qnil); old_buffer = current_buffer; set_buffer_internal_1 (XBUFFER (buffer)); - BVAR (current_buffer, truncate_lines) = Qnil; + BSET (current_buffer, truncate_lines, Qnil); specbind (Qinhibit_read_only, Qt); specbind (Qinhibit_modification_hooks, Qt); Ferase_buffer (); @@ -5091,7 +5091,7 @@ /* Display the tooltip text in a temporary buffer. */ old_buffer = current_buffer; set_buffer_internal_1 (XBUFFER (XWINDOW (FRAME_ROOT_WINDOW (f))->buffer)); - BVAR (current_buffer, truncate_lines) = Qnil; + BSET (current_buffer, truncate_lines, Qnil); clear_glyph_matrix (w->desired_matrix); clear_glyph_matrix (w->current_matrix); SET_TEXT_POS (pos, BEGV, BEGV_BYTE); ------------------------------------------------------------ revno: 109577 committer: Stefan Monnier branch nick: trunk timestamp: Sun 2012-08-12 18:52:33 -0400 message: * lisp/subr.el (internal--before-with-seleted-window) (internal--after-with-seleted-window): New functions. (with-selected-window): Use them, to replace dependency on tty-top-frame. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-08-12 22:06:56 +0000 +++ lisp/ChangeLog 2012-08-12 22:52:33 +0000 @@ -1,3 +1,9 @@ +2012-08-12 Stefan Monnier + + * subr.el (internal--before-with-seleted-window) + (internal--after-with-seleted-window): New functions. + (with-selected-window): Use them, to replace dependency on tty-top-frame. + 2012-08-12 Nobuyoshi Nakada * progmodes/ruby-mode.el (ruby-mode-map): Remove unnecessary === modified file 'lisp/subr.el' --- lisp/subr.el 2012-08-10 14:47:12 +0000 +++ lisp/subr.el 2012-08-12 22:52:33 +0000 @@ -3023,6 +3023,30 @@ (set-buffer ,buffer-or-name) ,@body)) +(defun internal--before-with-seleted-window (window) + (let ((other-frame (window-frame window))) + (list window (selected-window) + ;; Selecting a window on another frame also changes that + ;; frame's frame-selected-window. We must save&restore it. + (unless (eq (selected-frame) other-frame) + (frame-selected-window other-frame)) + ;; Also remember the top-frame if on ttys. + (unless (eq (selected-frame) other-frame) + (tty-top-frame other-frame))))) + +(defun internal--after-with-seleted-window (state) + ;; First reset frame-selected-window. + (when (window-live-p (nth 2 state)) + ;; We don't use set-frame-selected-window because it does not + ;; pass the `norecord' argument to Fselect_window. + (select-window (nth 2 state) 'norecord) + (and (frame-live-p (nth 3 state)) + (not (eq (tty-top-frame) (nth 3 state))) + (select-frame (nth 3 state) 'norecord))) + ;; Then reset the actual selected-window. + (when (window-live-p (nth 2 state)) + (select-window (nth 2 state) 'norecord))) + (defmacro with-selected-window (window &rest body) "Execute the forms in BODY with WINDOW as the selected window. The value returned is the value of the last form in BODY. @@ -3040,34 +3064,13 @@ potentially make a different buffer current. It does not alter the buffer list ordering." (declare (indent 1) (debug t)) - ;; Most of this code is a copy of save-selected-window. - `(let* ((save-selected-window-destination ,window) - (save-selected-window-frame - (window-frame save-selected-window-destination)) - (save-selected-window-window (selected-window)) - ;; Selecting a window on another frame also changes that - ;; frame's frame-selected-window. We must save&restore it. - (save-selected-window-other-frame - (unless (eq (selected-frame) save-selected-window-frame) - (frame-selected-window save-selected-window-frame))) - (save-selected-window-top-frame - (unless (eq (selected-frame) save-selected-window-frame) - (tty-top-frame save-selected-window-frame)))) + `(let ((save-selected-window--state + (internal--before-with-seleted-window ,window))) (save-current-buffer (unwind-protect - (progn (select-window save-selected-window-destination 'norecord) + (progn (select-window (car save-selected-window--state) 'norecord) ,@body) - ;; First reset frame-selected-window. - (when (window-live-p save-selected-window-other-frame) - ;; We don't use set-frame-selected-window because it does not - ;; pass the `norecord' argument to Fselect_window. - (select-window save-selected-window-other-frame 'norecord) - (and (frame-live-p save-selected-window-top-frame) - (not (eq (tty-top-frame) save-selected-window-top-frame)) - (select-frame save-selected-window-top-frame 'norecord))) - ;; Then reset the actual selected-window. - (when (window-live-p save-selected-window-window) - (select-window save-selected-window-window 'norecord)))))) + (internal--before-with-seleted-window save-selected-window--state))))) (defmacro with-selected-frame (frame &rest body) "Execute the forms in BODY with FRAME as the selected frame. ------------------------------------------------------------ revno: 109576 author: Nobuyoshi Nakada , Dmitry Gutov committer: Stefan Monnier branch nick: trunk timestamp: Sun 2012-08-12 18:06:56 -0400 message: Merge from upstream ruby-mode.el * lisp/progmodes/ruby-mode.el (ruby-mode-map): Remove unnecessary binding for `newline'. (ruby-move-to-block): When moving backward, stop at block opening, not indentation. * progmodes/ruby-mode.el (ruby-brace-to-do-end) (ruby-do-end-to-brace, ruby-toggle-block): New functions. * progmodes/ruby-mode.el (ruby-mode-map): Add binding for `ruby-toggle-block'. * test/automated/ruby-mode-tests.el (ruby-move-to-block-stops-at-opening) (ruby-toggle-block-to-do-end, ruby-toggle-block-to-brace): New test. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-08-12 17:29:53 +0000 +++ lisp/ChangeLog 2012-08-12 22:06:56 +0000 @@ -1,3 +1,14 @@ +2012-08-12 Nobuyoshi Nakada + + * progmodes/ruby-mode.el (ruby-mode-map): Remove unnecessary + binding for `newline'. + (ruby-move-to-block): When moving backward, stop at block opening, + not indentation. + * progmodes/ruby-mode.el (ruby-brace-to-do-end) + (ruby-do-end-to-brace, ruby-toggle-block): New functions. + * progmodes/ruby-mode.el (ruby-mode-map): Add binding for + `ruby-toggle-block'. + 2012-08-12 Stefan Monnier * ibuffer.el (ibuffer-do-toggle-read-only): @@ -40,16 +51,18 @@ 2012-08-09 Dmitry Gutov - Merge stuff from upsteam ruby-mode, part 1 (bug#12169). + * progmodes/ruby-mode.el (ruby-expr-beg, ruby-parse-partial): + ?, _, and : are symbol constituents, ! is not (but kinda should be). + (ruby-syntax-propertize-heredoc): Use ruby-singleton-class-p. + (ruby-syntax-propertize-function): Adjust for changes in + `ruby-syntax-propertize-heredoc'. + +2012-08-09 Nobuyoshi Nakada + * progmodes/ruby-mode.el (ruby-mode-map): Remove deprecated binding (use `M-;' instead). - (ruby-expr-beg, ruby-parse-partial): ?, _, and : are symbol - constituents, ! is not (but kinda should be). (ruby-singleton-class-p): New function. - (ruby-expr-beg, ruby-in-here-doc-p) - (ruby-syntax-propertize-heredoc): Use it. - (ruby-syntax-propertize-function): Adjust for changes in - `ruby-syntax-propertize-heredoc'. + (ruby-expr-beg, ruby-in-here-doc-p) Use it. 2012-08-10 Stefan Monnier === modified file 'lisp/progmodes/ruby-mode.el' --- lisp/progmodes/ruby-mode.el 2012-08-10 20:19:09 +0000 +++ lisp/progmodes/ruby-mode.el 2012-08-12 22:06:56 +0000 @@ -150,7 +150,7 @@ (define-key map (kbd "M-C-q") 'ruby-indent-exp) (define-key map (kbd "C-M-h") 'backward-kill-word) (define-key map (kbd "C-j") 'reindent-then-newline-and-indent) - (define-key map (kbd "C-m") 'newline) + (define-key map (kbd "C-c {") 'ruby-toggle-block) map) "Keymap used in Ruby mode.") @@ -881,10 +881,11 @@ ;; TODO: Make this work for n > 1, ;; make it not loop for n = 0, ;; document body - (let (start pos done down) - (setq start (ruby-calculate-indent)) - (setq down (looking-at (if (< n 0) ruby-block-end-re - (concat "\\<\\(" ruby-block-beg-re "\\)\\>")))) + (let ((orig (point)) + (start (ruby-calculate-indent)) + (down (looking-at (if (< n 0) ruby-block-end-re + (concat "\\<\\(" ruby-block-beg-re "\\)\\>")))) + pos done) (while (and (not done) (not (if (< n 0) (bobp) (eobp)))) (forward-line n) (cond @@ -907,8 +908,18 @@ (save-excursion (back-to-indentation) (if (looking-at (concat "\\<\\(" ruby-block-mid-re "\\)\\>")) - (setq done nil)))))) - (back-to-indentation)) + (setq done nil))))) + (back-to-indentation) + (when (< n 0) + (let ((eol (point-at-eol)) state next) + (if (< orig eol) (setq eol orig)) + (setq orig (point)) + (while (and (setq next (apply 'ruby-parse-partial eol state)) + (< (point) eol)) + (setq state next)) + (when (cdaadr state) + (goto-char (cdaadr state))) + (backward-word))))) (defun ruby-beginning-of-block (&optional arg) "Move backward to the beginning of the current block. @@ -1116,6 +1127,47 @@ (if mlist (concat mlist mname) mname) mlist))))) +(defun ruby-brace-to-do-end () + (when (looking-at "{") + (let ((orig (point)) (end (progn (ruby-forward-sexp) (point)))) + (when (eq (char-before) ?\}) + (delete-char -1) + (if (eq (char-syntax (char-before)) ?w) + (insert " ")) + (insert "end") + (if (eq (char-syntax (char-after)) ?w) + (insert " ")) + (goto-char orig) + (delete-char 1) + (if (eq (char-syntax (char-before)) ?w) + (insert " ")) + (insert "do") + (when (looking-at "\\sw\\||") + (insert " ") + (backward-char)) + t)))) + +(defun ruby-do-end-to-brace () + (when (and (or (bolp) + (not (memq (char-syntax (char-before)) '(?w ?_)))) + (looking-at "\\ + + * automated/ruby-mode-tests.el (ruby-move-to-block-stops-at-opening) + (ruby-toggle-block-to-do-end, ruby-toggle-block-to-brace): New test. + 2012-08-11 Glenn Morris * automated/files.el: New file. @@ -12,6 +17,10 @@ Add tests for `ruby-deep-indent-paren' behavior. Port all tests from test/misc/test_ruby_mode.rb in Ruby repo. +2012-08-10 Nobuyoshi Nakada + + Original tests in test_ruby_mode.rb in upstream (author). + 2012-08-09 Dmitry Gutov * automated/ruby-mode-tests.el (ruby-should-indent) === modified file 'test/automated/ruby-mode-tests.el' --- test/automated/ruby-mode-tests.el 2012-08-10 20:25:43 +0000 +++ test/automated/ruby-mode-tests.el 2012-08-12 22:06:56 +0000 @@ -191,6 +191,32 @@ | end |")) +(ert-deftest ruby-move-to-block-stops-at-opening () + (with-temp-buffer + (insert "def f\nend") + (beginning-of-line) + (ruby-mode) + (ruby-move-to-block -1) + (should (looking-at "f$")))) + +(ert-deftest ruby-toggle-block-to-do-end () + (with-temp-buffer + (insert "foo {|b|\n}\n") + (ruby-mode) + (search-backward "{") + (ruby-toggle-block) + (should (string= "foo do |b|\nend\n" (buffer-substring-no-properties + (point-min) (point-max)))))) + +(ert-deftest ruby-toggle-block-to-brace () + (with-temp-buffer + (insert "foo do |b|\nend\n") + (ruby-mode) + (search-backward "do") + (ruby-toggle-block) + (should (string= "foo {|b|\n}\n" (buffer-substring-no-properties + (point-min) (point-max)))))) + (provide 'ruby-mode-tests) ;;; ruby-mode-tests.el ends here ------------------------------------------------------------ revno: 109575 fixes bug: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11981 author: David Engster committer: Stefan Monnier branch nick: trunk timestamp: Sun 2012-08-12 13:35:15 -0400 message: * lisp/url/url-util.el (url-file-directory, url-file-nondirectory): Avoid file-name-directory and file-name-nondirectory internally. diff: === modified file 'lisp/url/ChangeLog' --- lisp/url/ChangeLog 2012-08-11 14:50:28 +0000 +++ lisp/url/ChangeLog 2012-08-12 17:35:15 +0000 @@ -1,3 +1,8 @@ +2012-08-12 David Engster + + * url-util.el (url-file-directory, url-file-nondirectory): Avoid + file-name-directory and file-name-nondirectory internally (bug#11981). + 2012-08-11 Jason Rumney * url-http.el (url-http-create-request): Use url-http-proxy to @@ -5,7 +10,7 @@ 2012-07-28 David Engster - * url-dav.el (url-dav-supported-p): Added doc-string and remove + * url-dav.el (url-dav-supported-p): Add doc-string and remove check for feature `xml' and function `xml-expand-namespace' which never existed in Emacs proper. (url-dav-process-response): Remove all indentation and newlines @@ -63,8 +68,8 @@ 2012-05-10 Chong Yidong - * url-parse.el (url-path-and-query, url-port-if-non-default): New - functions. + * url-parse.el (url-path-and-query, url-port-if-non-default): + New functions. (url-generic-parse-url): Don't set the portspec slot if it is not specified; that is what `url-port' is for. (url-port): Only require the scheme to be specified to call === modified file 'lisp/url/url-util.el' --- lisp/url/url-util.el 2012-07-11 23:13:41 +0000 +++ lisp/url/url-util.el 2012-08-12 17:35:15 +0000 @@ -247,8 +247,9 @@ (cond ((null file) "") ((string-match "\\?" file) - (file-name-directory (substring file 0 (match-beginning 0)))) - (t (file-name-directory file)))) + (url-file-directory (substring file 0 (match-beginning 0)))) + ((string-match "\\(.*\\(/\\|%2[fF]\\)\\)" file) + (match-string 1 file)))) ;;;###autoload (defun url-file-nondirectory (file) @@ -256,8 +257,10 @@ (cond ((null file) "") ((string-match "\\?" file) - (file-name-nondirectory (substring file 0 (match-beginning 0)))) - (t (file-name-nondirectory file)))) + (url-file-nondirectory (substring file 0 (match-beginning 0)))) + ((string-match ".*\\(?:/\\|%2[fF]\\)\\(.*\\)" file) + (match-string 1 file)) + (t file))) ;;;###autoload (defun url-parse-query-string (query &optional downcase allow-newlines) ------------------------------------------------------------ revno: 109574 committer: Stefan Monnier branch nick: trunk timestamp: Sun 2012-08-12 13:29:53 -0400 message: * lisp/ibuffer.el (ibuffer-do-toggle-read-only): * lisp/dired.el (dired-toggle-read-only): * lisp/buff-menu.el (Buffer-menu-toggle-read-only): * lisp/bindings.el (mode-line-toggle-read-only): * lisp/bs.el (bs-toggle-readonly): Call toggle-read-only interactively. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-08-12 09:35:57 +0000 +++ lisp/ChangeLog 2012-08-12 17:29:53 +0000 @@ -1,3 +1,11 @@ +2012-08-12 Stefan Monnier + + * ibuffer.el (ibuffer-do-toggle-read-only): + * dired.el (dired-toggle-read-only): + * buff-menu.el (Buffer-menu-toggle-read-only): + * bindings.el (mode-line-toggle-read-only): + * bs.el (bs-toggle-readonly): Call toggle-read-only interactively. + 2012-08-12 Andreas Schwab * descr-text.el (describe-char): Put the overlays over the === modified file 'lisp/bindings.el' --- lisp/bindings.el 2012-08-10 16:02:48 +0000 +++ lisp/bindings.el 2012-08-12 17:29:53 +0000 @@ -40,8 +40,7 @@ (interactive "e") (save-selected-window (select-window (posn-window (event-start event))) - (toggle-read-only nil t) - (force-mode-line-update))) + (call-interactively 'toggle-read-only))) (defun mode-line-toggle-modified (event) "Toggle the buffer-modified flag from the mode-line." === modified file 'lisp/bs.el' --- lisp/bs.el 2012-07-13 07:06:09 +0000 +++ lisp/bs.el 2012-08-12 17:29:53 +0000 @@ -962,7 +962,7 @@ Uses function `toggle-read-only'." (interactive) (with-current-buffer (bs--current-buffer) - (toggle-read-only)) + (call-interactively 'toggle-read-only)) (bs--update-current-line)) (defun bs-clear-modified () === modified file 'lisp/buff-menu.el' --- lisp/buff-menu.el 2012-07-31 22:34:36 +0000 +++ lisp/buff-menu.el 2012-08-12 17:29:53 +0000 @@ -518,10 +518,10 @@ "Toggle read-only status of buffer on this line. This behaves like invoking \\[toggle-read-only] in that buffer." (interactive) - (let (read-only) - (with-current-buffer (Buffer-menu-buffer t) - (toggle-read-only) - (setq read-only buffer-read-only)) + (let ((read-only + (with-current-buffer (Buffer-menu-buffer t) + (call-interactively 'toggle-read-only) + buffer-read-only))) (tabulated-list-set-col 1 (if read-only "%" " ") t))) (defun Buffer-menu-bury () === modified file 'lisp/dired.el' --- lisp/dired.el 2012-07-18 09:27:23 +0000 +++ lisp/dired.el 2012-08-12 17:29:53 +0000 @@ -1961,9 +1961,9 @@ mode is `dired-mode'), call `wdired-change-to-wdired-mode'. Otherwise, call `toggle-read-only'." (interactive) - (if (eq major-mode 'dired-mode) + (if (derived-mode-p 'dired-mode) (wdired-change-to-wdired-mode) - (toggle-read-only nil t))) + (call-interactively 'toggle-read-only))) (defun dired-next-line (arg) "Move down lines then position at filename. === modified file 'lisp/ibuffer.el' --- lisp/ibuffer.el 2012-07-13 07:06:09 +0000 +++ lisp/ibuffer.el 2012-08-12 17:29:53 +0000 @@ -1279,11 +1279,11 @@ (define-ibuffer-op ibuffer-do-toggle-read-only (&optional arg) "Toggle read only status in marked buffers. -With optional ARG, make read-only only if ARG is positive." +With optional ARG, make read-only only if ARG is not negative." (:opstring "toggled read only status in" :interactive "P" :modifier-p t) - (toggle-read-only arg t)) + (call-interactively 'toggle-read-only)) (define-ibuffer-op ibuffer-do-delete () "Kill marked buffers as with `kill-this-buffer'." ------------------------------------------------------------ revno: 109573 committer: Andreas Schwab branch nick: emacs timestamp: Sun 2012-08-12 11:35:57 +0200 message: * descr-text.el (describe-char): Put the overlays over the "displayed as" character. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-08-12 04:32:28 +0000 +++ lisp/ChangeLog 2012-08-12 09:35:57 +0000 @@ -1,3 +1,8 @@ +2012-08-12 Andreas Schwab + + * descr-text.el (describe-char): Put the overlays over the + "displayed as" character. + 2012-08-12 Jay Belanger * calc/calc-units.el (math-default-units-table): Give an === modified file 'lisp/descr-text.el' --- lisp/descr-text.el 2012-08-09 08:10:32 +0000 +++ lisp/descr-text.el 2012-08-12 09:35:57 +0000 @@ -689,7 +689,7 @@ (when overlays (save-excursion (goto-char (point-min)) - (re-search-forward "character:[ \t\n]+") + (re-search-forward "(displayed as ") (let ((end (+ (point) (length char-description)))) (mapc (lambda (props) (let ((o (make-overlay (point) end))) ------------------------------------------------------------ revno: 109572 committer: Jay Belanger branch nick: trunk timestamp: Sat 2012-08-11 23:32:28 -0500 message: calc/calc-units.el (math-default-units-table): Give it an initial value. (math-put-default-units): Add options to put composite units and unit systems in default units table. (calc-convert-units): Send composite units to `math-put-default-units' when appropriate. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-08-11 04:46:38 +0000 +++ lisp/ChangeLog 2012-08-12 04:32:28 +0000 @@ -1,3 +1,12 @@ +2012-08-12 Jay Belanger + + * calc/calc-units.el (math-default-units-table): Give an + initial value. + (math-put-default-units): Add options to put composite units and + unit systems in the default units table. + (calc-convert-units): Send composite units to + `math-put-default-units' when appropriate. + 2012-08-11 Glenn Morris * emacs-lisp/copyright.el (copyright-update-directory): Logic fix. === modified file 'lisp/calc/calc-units.el' --- lisp/calc/calc-units.el 2012-05-19 14:59:47 +0000 +++ lisp/calc/calc-units.el 2012-08-12 04:32:28 +0000 @@ -404,7 +404,7 @@ (math-composition-to-string cexpr)))))) (defvar math-default-units-table - (make-hash-table :test 'equal) + #s(hash-table test equal data (1 (1))) "A table storing previously converted units.") (defun math-get-default-units (expr) @@ -418,22 +418,24 @@ (math-make-unit-string (cadr default-units)) (math-make-unit-string (car default-units))))) -(defun math-put-default-units (expr) - "Put the units in EXPR in the default units table." - (let ((units (math-get-units expr))) - (unless (eq units 1) - (let* ((standard-units (math-get-standard-units expr)) - (default-units (gethash - standard-units - math-default-units-table))) - (cond - ((not default-units) - (puthash standard-units (list units) math-default-units-table)) - ((not (equal units (car default-units))) - (puthash standard-units - (list units (car default-units)) - math-default-units-table))))))) - +(defun math-put-default-units (expr &optional comp std) + "Put the units in EXPR in the default units table. +If COMP or STD is non-nil, put that in the units table instead." + (let* ((new-units (or comp std (math-get-units expr))) + (standard-units (math-get-standard-units + (cond + (comp (math-simplify-units expr)) + (std expr) + (t new-units)))) + (default-units (gethash standard-units math-default-units-table))) + (unless (eq standard-units 1) + (cond + ((not default-units) + (puthash standard-units (list new-units) math-default-units-table)) + ((not (equal new-units (car default-units))) + (puthash standard-units + (list new-units (car default-units)) + math-default-units-table)))))) (defun calc-convert-units (&optional old-units new-units) (interactive) @@ -457,47 +459,48 @@ (when (eq (car-safe uold) 'error) (error "Bad format in units expression: %s" (nth 1 uold))) (setq expr (math-mul expr uold)))) - (unless new-units - (setq defunits (math-get-default-units expr)) - (setq new-units - (read-string (concat - (if uoldname - (concat "Old units: " - uoldname - ", new units") - "New units") - (if defunits - (concat - " (default " - defunits - "): ") - ": ")))) - - (if (and - (string= new-units "") - defunits) - (setq new-units defunits))) - (when (string-match "\\` */" new-units) - (setq new-units (concat "1" new-units))) - (setq units (math-read-expr new-units)) - (when (eq (car-safe units) 'error) - (error "Bad format in units expression: %s" (nth 2 units))) - (if calc-ensure-consistent-units - (math-check-unit-consistency expr units)) - (math-put-default-units units) - (let ((unew (math-units-in-expr-p units t)) - (std (and (eq (car-safe units) 'var) - (assq (nth 1 units) math-standard-units-systems)))) - (if std - (calc-enter-result 1 "cvun" (math-simplify-units - (math-to-standard-units expr - (nth 1 std)))) - (unless unew + (setq defunits (math-get-default-units expr)) + (if (equal defunits "1") + (progn + (calc-enter-result 1 "cvun" (math-simplify-units expr)) + (message "All units in expression cancel")) + (unless new-units + (setq new-units + (read-string (concat + (if uoldname + (concat "Old units: " + uoldname + ", new units") + "New units") + (if defunits + (concat + " (default " + defunits + "): ") + ": ")))) + (if (and + (string= new-units "") + defunits) + (setq new-units defunits))) + (when (string-match "\\` */" new-units) + (setq new-units (concat "1" new-units))) + (setq units (math-read-expr new-units)) + (when (eq (car-safe units) 'error) + (error "Bad format in units expression: %s" (nth 2 units))) + (if calc-ensure-consistent-units + (math-check-unit-consistency expr units)) + (let ((unew (math-units-in-expr-p units t)) + (std (and (eq (car-safe units) 'var) + (assq (nth 1 units) math-standard-units-systems))) + (comp (eq (car-safe units) '+))) + (unless (or unew std) (error "No units specified")) - (calc-enter-result 1 "cvun" - (math-convert-units - expr units - (and uoldname (not (equal uoldname "1")))))))))) + (let ((res + (if std + (math-simplify-units (math-to-standard-units expr (nth 1 std))) + (math-convert-units expr units (and uoldname (not (equal uoldname "1"))))))) + (math-put-default-units res (if comp units)) + (calc-enter-result 1 "cvun" res))))))) (defun calc-autorange-units (arg) (interactive "P") ------------------------------------------------------------ revno: 109571 committer: Glenn Morris branch nick: trunk timestamp: Sat 2012-08-11 20:13:37 -0700 message: CPP-DEFINES misc cleanup diff: === modified file 'admin/CPP-DEFINES' --- admin/CPP-DEFINES 2012-08-11 22:39:36 +0000 +++ admin/CPP-DEFINES 2012-08-12 03:13:37 +0000 @@ -231,80 +231,149 @@ _setjmp _start abort -access alloca -brk -calloc -chdir -chmod -chown close -creat -ctime -dup -dup2 -edata emacs -etext -execlp -execvp -fdopen -fileno -fopen free -fsync -ftruncate -fwrite -getdefdir -getdisk -getenv -getpid -getuid gmtime -index -isatty -kill -link -linux localtime -logb -lseek malloc -mkdir -mktemp -open -pclose -pipe -popen random read realloc -rename -rindex -rmdir -sbrk select +umask +vfork + + +src/sysdep.c: +write + +src/syssignal.h: +signal sigmask -signal sigsetmask + + +lib/dup2.c: +dup2 + +lib/signal.h: +signal + +lib/sigprocmask.c: +signal + +lib/stdio.h: +fdopen +fopen +fwrite +popen +rename + +lib/stdlib.h: +calloc +srandom (conf_post.h may undo) + +lib/strftime.c: +tzname +tzset + +lib/sys/stat.h: +mkdir + +lib/unistd.h: +chown +dup +dup2 +ftruncate +isatty +link +lseek +pipe +rmdir +sleep +unlink + + +MS compat stuff: + +ms-w32.h: +access +calloc +chdir +chmod +chown +creat +ctime +dup +dup2 +execlp +execvp (also emacsclient.c [WINDOWSNT]) +fdopen +fileno +fopen +fsync +ftruncate +getdefdir +getdisk +getpid +isatty +kill +link +logb +lseek +mkdir +mktemp +open +pclose +pipe +popen +rename +rmdir +signal sleep spawnve -srandom strdup stricmp strnicmp strupr sys_nerr -system -temacs tzname tzset umask -unix unlink utimbuf utime -vfork -wait +wait (also movemail.c [WINDOWSNT]) write -xfree + +lib-src/ntlib: +access +chdir +chmod +creat +dup +dup2 +execlp +execvp +fdopen +fileno +fopen +getpid +index +isatty +logb +lseek +mkdir +mktemp +open +pclose +pipe +popen +rmdir +rindex +sleep +umask +unlink +utime ------------------------------------------------------------ revno: 109570 committer: Glenn Morris branch nick: trunk timestamp: Sat 2012-08-11 15:39:36 -0700 message: Remove some defines that are no longer present diff: === modified file 'admin/CPP-DEFINES' --- admin/CPP-DEFINES 2012-08-06 20:22:22 +0000 +++ admin/CPP-DEFINES 2012-08-11 22:39:36 +0000 @@ -94,7 +94,6 @@ CLASH_DETECTION DATA_SEG_BITS DATA_START -DBL_MIN_REPLACEMENT DEFAULT_SOUND_DEVICE DEVICE_SEP DIRECTORY_SEP @@ -107,11 +106,9 @@ EMACS_INT EMACS_UINT FLOAT_CHECK_DOMAIN -GC_LISP_OBJECT_ALIGNMENT GC_MARK_SECONDARY_STACK GC_MARK_STACK GC_SETJMP_WORKS -GMALLOC_INHIBIT_VALLOC GNU_MALLOC HAVE_AIX_SMT_EXP HAVE_CBRT @@ -133,13 +130,11 @@ HAVE_INET_SOCKETS HAVE_INVERSE_HYPERBOLIC HAVE_LIBKSTAT -HAVE_LIMITS_H HAVE_LINUX_VERSION_H HAVE_LOGB HAVE_LONG_FILE_NAMES HAVE_LRAND48 HAVE_MENUS -HAVE_MKTIME HAVE_MOUSE HAVE_PSTAT_GETDYNAMIC HAVE_PWD_H @@ -155,7 +150,6 @@ HAVE_SOCKETS HAVE_SOUND HAVE_STDLIB_H -HAVE_STRFTIME HAVE_STRING_H HAVE_STRUCT_UTIMBUF HAVE_SYS_SELECT_H @@ -173,14 +167,12 @@ INTERNAL_TERMINAL IS_ANY_SEP IS_DIRECTORY_SEP -LINUX_VERSION_CODE LOCALTIME_CACHE MAIL_USE_FLOCK MAIL_USE_LOCKF MAIL_USE_POP MAIL_USE_SYSTEM_LOCK MAXPATHLEN -MODE_LINE_BINARY_TEXT MUST_UNDEF__STDC__ NLIST_STRUCT NO_ABORT @@ -191,7 +183,6 @@ NSIG_MINIMUM NULL_DEVICE ORDINARY_LINK -O_APPEND O_RDONLY O_RDWR PAGESIZE @@ -204,7 +195,6 @@ PURESIZE RUN_TIME_REMAP SA_RESTART -SEGMENT_MASK SETPGRP_RELEASES_CTTY SETUP_SLAVE_PTY SIGALRM @@ -218,7 +208,6 @@ STDC_HEADERS SYSTEM_PURESIZE_EXTRA SYSTEM_MALLOC -SYSV_SYSTEM_DIR TAB3 TABDLY TERM @@ -234,7 +223,6 @@ XOS_NEEDS_TIME_H _FILE_OFFSET_BITS _LP64 -_MALLOC_INTERNAL _NAIVE_DOS_REGS _VARARGS_ _WINSOCKAPI_ ------------------------------------------------------------ revno: 109569 author: BT Templeton committer: Stefan Monnier branch nick: trunk timestamp: Sat 2012-08-11 11:34:01 -0400 message: * src/lread.c (syms_of_lread): Initialize Vlexical_binding. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2012-08-11 09:10:08 +0000 +++ src/ChangeLog 2012-08-11 15:34:01 +0000 @@ -1,3 +1,7 @@ +2012-08-11 BT Templeton (tiny change) + + * lread.c (syms_of_lread): Initialize Vlexical_binding. + 2012-08-11 Jan Djärv * nsterm.m (not_in_argv): New function. @@ -6,8 +10,8 @@ if not_in_argv returns non-zero (bug#12171). * gtkutil.c (gtk_font_chooser_dialog_new, GTK_FONT_CHOOSER) - (gtk_font_chooser_set_font, gtk_font_chooser_get_font): Define - for Gtk+ versions less than 3.2. + (gtk_font_chooser_set_font, gtk_font_chooser_get_font): + Define for Gtk+ versions less than 3.2. (xg_get_font_name): Use those functions/macros here. Reported by Frans Oilinki . @@ -133,8 +137,8 @@ Cleanup intervals. * intervals.h (NULL_INTERVAL, DEFAULT_INTERVAL): Remove. (NULL_INTERVAL_P): Likewise. Adjust users. - (FRONT_STICKY_P, END_NONSTICKY_P, FRONT_NONSTICKY_P): Adjust - comment. Move under #if 0. + (FRONT_STICKY_P, END_NONSTICKY_P, FRONT_NONSTICKY_P): + Adjust comment. Move under #if 0. * alloc.c, buffer.c, editfns.c, fns.c, insdel.c, intervals.c: * print.c, syntax.c, textprop.c, xdisp.c: Adjust users. @@ -146,8 +150,8 @@ 2012-08-07 Eli Zaretskii - * .gdbinit (xframe, xwindow, nextcons, xcar, xcdr, xlist): Rename - fields to match removal of FGET and WGET and disuse of + * .gdbinit (xframe, xwindow, nextcons, xcar, xcdr, xlist): + Rename fields to match removal of FGET and WGET and disuse of INTERNAL_FIELD in Lisp_Cons. 2012-08-07 Dmitry Antipov @@ -174,8 +178,8 @@ (interval_set_left, interval_set_right, interval_set_plist): (interval_copy_parent): New function. (SET_INTERVAL_OBJECT, SET_INTERVAL_PARENT, INTERVAL_PTR_SIZE): Remove. - (RESET_INTERVAL, COPY_INTERVAL_CACHE, MERGE_INTERVAL_CACHE): Adjust - indentation. + (RESET_INTERVAL, COPY_INTERVAL_CACHE, MERGE_INTERVAL_CACHE): + Adjust indentation. (INTERVAL_SIZE): Remove. Adjust users. * alloc.c, intervals.c, lread.c, textprop.c: Use new functions. @@ -238,8 +242,8 @@ 2012-08-06 Eli Zaretskii - * w32menu.c (set_frame_menubar, initialize_frame_menubar): Don't - use FRAME_MENU_BAR_ITEMS as an lvalue. + * w32menu.c (set_frame_menubar, initialize_frame_menubar): + Don't use FRAME_MENU_BAR_ITEMS as an lvalue. 2012-08-06 Stefan Monnier @@ -351,11 +355,11 @@ Fix startup warnings about ../site-lisp on MS-Windows. (Bug#11959) * w32.c (init_environment): Change the default values of many environment variables in dflt_envvars[] to NULL, to avoid pushing - them into environment when they were not already defined. Remove - the code that deletes site-lisp subdirectories from the default + them into environment when they were not already defined. + Remove the code that deletes site-lisp subdirectories from the default value of EMACSLOADPATH, as it is no longer needed. - (check_windows_init_file): Now external, not static. Use - Vload_path as is, without adding anything, as this function is now + (check_windows_init_file): Now external, not static. + Use Vload_path as is, without adding anything, as this function is now called when Vload_path is already set up. * w32.h (check_windows_init_file): Add prototype. @@ -444,11 +448,11 @@ GetFileAttributes fails with network-related error codes. (sys_rename): Diagnose renaming of a symlink when the user doesn't have the required privileges. - (get_file_security_desc_by_name): Renamed from + (get_file_security_desc_by_name): Rename from get_file_security_desc. (stat_worker): New function, with most of the guts of 'stat', and - with addition of handling of symlinks and support for 'lstat'. If - possible, get file's attributes and security information by + with addition of handling of symlinks and support for 'lstat'. + If possible, get file's attributes and security information by handle, not by name. Produce S_IFLNK bit for symlinks, when called from 'lstat'. (stat, lstat): New functions, call 'stat_worker'. @@ -652,7 +656,7 @@ Generalize INTERNAL_FIELD between buffers, keyboards and frames. * lisp.h (INTERNAL_FIELD): New macro. - * buffer.h (BUFFER_INTERNAL_FIELD): Removed. + * buffer.h (BUFFER_INTERNAL_FIELD): Remove. (BVAR): Change to use INTERNAL_FIELD. * keyboard.h (KBOARD_INTERNAL_FIELD): Likewise. (KVAR): Change to use INTERNAL_FIELD. @@ -707,8 +711,8 @@ * nsterm.m (ns_do_open_file): New variable. (ns_term_init): Set ns_do_open_file to YES after run returns. - (openFile, openTempFile, openFileWithoutUI, openFiles): Open - files only if ns_do_open_file. + (openFile, openTempFile, openFileWithoutUI, openFiles): + Open files only if ns_do_open_file. 2012-07-30 Paul Eggert @@ -845,7 +849,7 @@ 2012-07-29 Eli Zaretskii - * w32heap.h (OS_9X): Renamed from OS_WINDOWS_95. + * w32heap.h (OS_9X): Rename from OS_WINDOWS_95. * w32heap.c (cache_system_info): * w32.c (sys_rename): @@ -862,8 +866,8 @@ 2012-07-29 Dmitry Antipov Cleanup statistics calculation in Fgarbage_collect. - * alloc.c (Fgarbage_collect): Rename t1 to meaningful start. Fix - zombies percentage calculation. Simplify elapsed time calculation. + * alloc.c (Fgarbage_collect): Rename t1 to meaningful start. + Fix zombies percentage calculation. Simplify elapsed time calculation. 2012-07-29 Dmitry Antipov @@ -921,8 +925,8 @@ Adjust GDB to reflect pvec_type changes (Bug#12036). * .gdbinit (xvectype, xpr, xbacktrace): Adjust to reflect the - 2012-07-04 changes to pseudovector representation. Problem - reported by Eli Zaretskii in . + 2012-07-04 changes to pseudovector representation. + Problem reported by Eli Zaretskii in . 2012-07-27 Michael Albinus @@ -1183,8 +1187,8 @@ for the reasons. * w32menu.c (add_menu_item): Cast to ULONG_PTR when assigning - info.dwItemData. Fixes crashes on 64-bit Windows. Suggested by - Fabrice Popineau . + info.dwItemData. Fixes crashes on 64-bit Windows. + Suggested by Fabrice Popineau . 2012-07-21 Jan Djärv @@ -1810,8 +1814,8 @@ * lisp.h (intern, intern_c_string): Redefine as static inline wrappers for intern_1 and intern_c_string_1, respectively. (intern_1, intern_c_string_1): Rename prototypes. - * lread.c (intern_1, intern_c_string_1, oblookup): Simplify - Vobarray checking. + * lread.c (intern_1, intern_c_string_1, oblookup): + Simplify Vobarray checking. * font.c (font_intern_prop): Likewise. Adjust comment. * w32font.c (intern_font_name): Likewise. @@ -1880,8 +1884,8 @@ Avoid calls to strlen in font processing functions. * font.c (font_parse_name, font_parse_xlfd, font_parse_fcname) - (font_open_by_name): Change to use length argument. Adjust - users accordingly. + (font_open_by_name): Change to use length argument. + Adjust users accordingly. * font.h (font_open_by_name, font_parse_xlfd, font_unparse_xlfd): Adjust prototypes. * xfont.c (xfont_decode_coding_xlfd, font_unparse_xlfd): @@ -2013,8 +2017,8 @@ srclen argument and return the length of result. Adjust users accordingly. (directory_file_name): Fix comment. Change to add srclen argument, - swap 1st and 2nd arguments to obey the common convention. Adjust - users accordingly. + swap 1st and 2nd arguments to obey the common convention. + Adjust users accordingly. * filelock.c (fill_in_lock_file_name): Avoid calls to strlen. 2012-07-10 Glenn Morris @@ -2178,8 +2182,8 @@ Support truncation and continuation glyphs on GUI frames, when fringes are disabled. (Bug#11832) * xdisp.c (init_iterator): Get dimensions of truncation and - continuation glyphs even if on GUI frames. Adjust - it->last_visible_x on GUI frames when the left or right fringes, + continuation glyphs even if on GUI frames. + Adjust it->last_visible_x on GUI frames when the left or right fringes, or both, are absent. (start_display, move_it_in_display_line_to): Handle the case of a GUI frame without a fringe to display continuation or truncation @@ -2629,8 +2633,8 @@ Fix block vector allocation code to allow VECTOR_BLOCK_SIZE values which aren't power of 2. - * alloc.c (VECTOR_FREE_LIST_SIZE_MASK): New macro. Verify - it's value and the value of VECTOR_BLOCK_SIZE. Adjust users + * alloc.c (VECTOR_FREE_LIST_SIZE_MASK): New macro. + Verify it's value and the value of VECTOR_BLOCK_SIZE. Adjust users accordingly. 2012-07-03 Stefan Monnier @@ -2684,8 +2688,8 @@ * alloc.c (mark_buffer): Simplify. Remove prototype. (mark_object): Add comment. Reorganize marking of vector-like objects. Use CHECK_LIVE for all vector-like objects except buffers - and subroutines when GC_CHECK_MARKED_OBJECTS is defined. Avoid - redundant calls to mark_vectorlike for bool vectors. + and subroutines when GC_CHECK_MARKED_OBJECTS is defined. + Avoid redundant calls to mark_vectorlike for bool vectors. 2012-06-30 Glenn Morris === modified file 'src/lread.c' --- src/lread.c 2012-08-08 10:23:04 +0000 +++ src/lread.c 2012-08-11 15:34:01 +0000 @@ -4541,8 +4541,7 @@ Vbytecomp_version_regexp = build_pure_c_string ("^;;;.\\(in Emacs version\\|bytecomp version FSF\\)"); - Qlexical_binding = intern ("lexical-binding"); - staticpro (&Qlexical_binding); + DEFSYM (Qlexical_binding, "lexical-binding"); DEFVAR_LISP ("lexical-binding", Vlexical_binding, doc: /* Whether to use lexical binding when evaluating code. Non-nil means that the code in the current buffer should be evaluated @@ -4550,6 +4549,7 @@ This variable is automatically set from the file variables of an interpreted Lisp file read using `load'. Unlike other file local variables, this must be set in the first line of a file. */); + Vlexical_binding = Qnil; Fmake_variable_buffer_local (Qlexical_binding); DEFVAR_LISP ("eval-buffer-list", Veval_buffer_list, ------------------------------------------------------------ revno: 109568 committer: Jason Rumney branch nick: trunk timestamp: Sat 2012-08-11 22:50:28 +0800 message: Last change fixes Bug#12069 diff: === modified file 'lisp/url/ChangeLog' --- lisp/url/ChangeLog 2012-08-11 14:48:37 +0000 +++ lisp/url/ChangeLog 2012-08-11 14:50:28 +0000 @@ -1,7 +1,7 @@ 2012-08-11 Jason Rumney * url-http.el (url-http-create-request): Use url-http-proxy to - look up proxy credentials. + look up proxy credentials (Bug#12069). 2012-07-28 David Engster ------------------------------------------------------------ revno: 109567 committer: Jason Rumney branch nick: trunk timestamp: Sat 2012-08-11 22:48:37 +0800 message: * lisp/url/url-http.el (url-http-create-request): Use url-http-proxy to look up proxy credentials. diff: === modified file 'lisp/url/ChangeLog' --- lisp/url/ChangeLog 2012-07-28 11:07:17 +0000 +++ lisp/url/ChangeLog 2012-08-11 14:48:37 +0000 @@ -1,3 +1,8 @@ +2012-08-11 Jason Rumney + + * url-http.el (url-http-create-request): Use url-http-proxy to + look up proxy credentials. + 2012-07-28 David Engster * url-dav.el (url-dav-supported-p): Added doc-string and remove === modified file 'lisp/url/url-http.el' --- lisp/url/url-http.el 2012-07-11 23:13:41 +0000 +++ lisp/url/url-http.el 2012-08-11 14:48:37 +0000 @@ -239,7 +239,7 @@ nil (let ((url-basic-auth-storage 'url-http-proxy-basic-auth-storage)) - (url-get-authentication url-http-target-url nil 'any nil)))) + (url-get-authentication url-http-proxy nil 'any nil)))) (real-fname (url-filename url-http-target-url)) (host (url-host url-http-target-url)) (auth (if (cdr-safe (assoc "Authorization" url-http-extra-headers)) ------------------------------------------------------------ revno: 109566 fixes bug: http://debbugs.gnu.org/12171 committer: Jan D. branch nick: trunk timestamp: Sat 2012-08-11 11:10:08 +0200 message: * nsterm.m (not_in_argv): New function. (application:openFile, application:openTempFile:): (application:openFileWithoutUI:, application:openFiles:): Open file if not_in_argv returns non-zero. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2012-08-11 08:54:35 +0000 +++ src/ChangeLog 2012-08-11 09:10:08 +0000 @@ -1,5 +1,10 @@ 2012-08-11 Jan Djärv + * nsterm.m (not_in_argv): New function. + (application:openFile, application:openTempFile:): + (application:openFileWithoutUI:, application:openFiles:): Open file + if not_in_argv returns non-zero (bug#12171). + * gtkutil.c (gtk_font_chooser_dialog_new, GTK_FONT_CHOOSER) (gtk_font_chooser_set_font, gtk_font_chooser_get_font): Define for Gtk+ versions less than 3.2. === modified file 'src/nsterm.m' --- src/nsterm.m 2012-08-10 09:24:03 +0000 +++ src/nsterm.m 2012-08-11 09:10:08 +0000 @@ -4448,11 +4448,20 @@ return NSTerminateNow; /* just in case */ } +static int +not_in_argv (NSString *arg) +{ + int k; + const char *a = [arg UTF8String]; + for (k = 1; k < initial_argc; ++k) + if (strcmp (a, initial_argv[k]) == 0) return 0; + return 1; +} /* Notification from the Workspace to open a file */ - (BOOL)application: sender openFile: (NSString *)file { - if (ns_do_open_file) + if (ns_do_open_file || not_in_argv (file)) [ns_pending_files addObject: file]; return YES; } @@ -4461,7 +4470,7 @@ /* Open a file as a temporary file */ - (BOOL)application: sender openTempFile: (NSString *)file { - if (ns_do_open_file) + if (ns_do_open_file || not_in_argv (file)) [ns_pending_files addObject: file]; return YES; } @@ -4470,25 +4479,22 @@ /* Notification from the Workspace to open a file noninteractively (?) */ - (BOOL)application: sender openFileWithoutUI: (NSString *)file { - if (ns_do_open_file) + if (ns_do_open_file || not_in_argv (file)) [ns_pending_files addObject: file]; return YES; } - /* Notification from the Workspace to open multiple files */ - (void)application: sender openFiles: (NSArray *)fileList { - /* Don't open files from the command line, Cocoa parses the command line - wrong anyway, --option value tries to open value if --option is the last - option. */ - if (ns_do_open_file) - { - NSEnumerator *files = [fileList objectEnumerator]; - NSString *file; - while ((file = [files nextObject]) != nil) - [ns_pending_files addObject: file]; - } + NSEnumerator *files = [fileList objectEnumerator]; + NSString *file; + /* Don't open files from the command line unconditionally, + Cocoa parses the command line wrong, --option value tries to open value + if --option is the last option. */ + while ((file = [files nextObject]) != nil) + if (ns_do_open_file || not_in_argv (file)) + [ns_pending_files addObject: file]; [self replyToOpenOrPrint: NSApplicationDelegateReplySuccess]; ------------------------------------------------------------ revno: 109565 committer: Jan D. branch nick: trunk timestamp: Sat 2012-08-11 10:54:35 +0200 message: Use GtkFontChooser on Gtk+ 3.2 and up. * src/gtkutil.c (gtk_font_chooser_dialog_new, GTK_FONT_CHOOSER) (gtk_font_chooser_set_font, gtk_font_chooser_get_font): Define for Gtk+ versions less than 3.2. (xg_get_font_name): Use those functions/macros here. Reported by Frans Oilinki . diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2012-08-11 04:46:38 +0000 +++ src/ChangeLog 2012-08-11 08:54:35 +0000 @@ -1,3 +1,11 @@ +2012-08-11 Jan Djärv + + * gtkutil.c (gtk_font_chooser_dialog_new, GTK_FONT_CHOOSER) + (gtk_font_chooser_set_font, gtk_font_chooser_get_font): Define + for Gtk+ versions less than 3.2. + (xg_get_font_name): Use those functions/macros here. + Reported by Frans Oilinki . + 2012-08-11 YAMAMOTO Mitsuharu * unexmacosx.c (copy_data_segment): Copy initialized data in === modified file 'src/gtkutil.c' --- src/gtkutil.c 2012-08-07 05:29:25 +0000 +++ src/gtkutil.c 2012-08-11 08:54:35 +0000 @@ -75,6 +75,18 @@ #define remove_submenu(w) gtk_menu_item_remove_submenu ((w)) #endif +#if GTK_MAJOR_VERSION < 3 || \ + (GTK_MAJOR_VERSION == 3 && GTK_MINOR_VERSION < 2) +#define gtk_font_chooser_dialog_new(x, y) \ + gtk_font_selection_dialog_new (x) +#undef GTK_FONT_CHOOSER +#define GTK_FONT_CHOOSER(x) GTK_FONT_SELECTION_DIALOG (x) +#define gtk_font_chooser_set_font(x, y) \ + gtk_font_selection_dialog_set_font_name (x, y) +#define gtk_font_chooser_get_font(x) \ + gtk_font_selection_dialog_get_font_name (x) +#endif + #ifndef HAVE_GTK3 #ifdef USE_GTK_TOOLTIP #define gdk_window_get_screen(w) gdk_drawable_get_screen (w) @@ -2000,12 +2012,13 @@ sigblock (sigmask (__SIGRTMIN)); #endif /* HAVE_PTHREAD */ - w = gtk_font_selection_dialog_new ("Pick a font"); + w = gtk_font_chooser_dialog_new + ("Pick a font", GTK_WINDOW (FRAME_GTK_OUTER_WIDGET (f))); + if (!default_name) default_name = "Monospace 10"; - gtk_font_selection_dialog_set_font_name (GTK_FONT_SELECTION_DIALOG (w), - default_name); + gtk_font_chooser_set_font (GTK_FONT_CHOOSER (w), default_name); gtk_widget_set_name (w, "emacs-fontdialog"); done = xg_dialog_run (f, w); @@ -2015,8 +2028,7 @@ #endif if (done == GTK_RESPONSE_OK) - fontname = gtk_font_selection_dialog_get_font_name - (GTK_FONT_SELECTION_DIALOG (w)); + fontname = gtk_font_chooser_get_font (GTK_FONT_CHOOSER (w)); gtk_widget_destroy (w); return fontname; ------------------------------------------------------------ revno: 109564 committer: Glenn Morris branch nick: trunk timestamp: Fri 2012-08-10 21:46:38 -0700 message: ChangeLog date fixes diff: === modified file 'admin/ChangeLog' --- admin/ChangeLog 2012-08-11 02:12:12 +0000 +++ admin/ChangeLog 2012-08-11 04:46:38 +0000 @@ -1,4 +1,4 @@ -2012-08-10 Glenn Morris +2012-08-11 Glenn Morris * bzrmerge.el (bzrmerge-resolve): Disable local eval:. === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-08-11 02:12:12 +0000 +++ lisp/ChangeLog 2012-08-11 04:46:38 +0000 @@ -1,4 +1,4 @@ -2012-08-10 Glenn Morris +2012-08-11 Glenn Morris * emacs-lisp/copyright.el (copyright-update-directory): Logic fix. @@ -7,8 +7,6 @@ * emacs-lisp/autoload.el (autoload-find-generated-file) (autoload-find-file): Disable local eval: (for insurance). -2012-08-07 Glenn Morris - * files.el (hack-local-variables-filter): If an eval: form is not known to be safe, and enable-local-variables is :safe, then ignore the form totally, as is done for non-eval forms. (Bug#12155) === modified file 'src/ChangeLog' --- src/ChangeLog 2012-08-11 02:13:55 +0000 +++ src/ChangeLog 2012-08-11 04:46:38 +0000 @@ -1,10 +1,8 @@ -2012-08-08 YAMAMOTO Mitsuharu +2012-08-11 YAMAMOTO Mitsuharu * unexmacosx.c (copy_data_segment): Copy initialized data in statically linked libraries from input file rather than memory. -2012-08-07 YAMAMOTO Mitsuharu - * unexmacosx.c (print_load_command_name): Add cases LC_MAIN, LC_SOURCE_VERSION, and LC_DYLIB_CODE_SIGN_DRS. (dump_it) [LC_DYLIB_CODE_SIGN_DRS]: Call copy_linkedit_data. === modified file 'test/ChangeLog' --- test/ChangeLog 2012-08-11 02:12:12 +0000 +++ test/ChangeLog 2012-08-11 04:46:38 +0000 @@ -1,13 +1,7 @@ -2012-08-10 Glenn Morris - - * automated/files.el (files-test-disable-local-variables): New test. - -2012-08-08 Glenn Morris +2012-08-11 Glenn Morris * automated/files.el: New file. -2012-08-07 Glenn Morris - * automated/Makefile.in (all): Fix typo. 2012-08-10 Dmitry Gutov