<feed xmlns='http://www.w3.org/2005/Atom'>
<title>emacs/src/termhooks.h, branch fix/not-defined-at-runtime</title>
<subtitle>Emacs is the extensible, customizable, self-documenting real-time display editor. 
</subtitle>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/'/>
<entry>
<title>Make src headers idempotent and standalone</title>
<updated>2015-10-16T21:56:11+00:00</updated>
<author>
<name>Paul Eggert</name>
</author>
<published>2015-10-16T21:54:09+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=55ba8c022b493b494bea257e4f523758154e0fdd'/>
<id>55ba8c022b493b494bea257e4f523758154e0fdd</id>
<content type='text'>
Redo src/*.h so that each include file is idempotent (that is, can
be included multiple times with the latter inclusions having no
effect) and standalone (that is, can be included by itself,
with no include file other than config.h needed as a prerequisite).
This is standard practice in GNU programs nowadays.
* lwlib/lwlib-widget.h, src/buffer.h, src/category.h, src/character.h:
* src/charset.h, src/coding.h, src/commands.h, src/disptab.h:
* src/fontset.h, src/gnutls.h, src/indent.h, src/keymap.h, src/macros.h:
* src/regex.h [emacs]:
* src/syntax.h, src/systty.h, src/termhooks.h:
Include lisp.h, for Lisp_Object.
* src/buffer.h, src/category.h, src/cm.h, src/commands.h, src/disptab.h:
* src/indent.h, src/intervals.h, src/keyboard.h, src/macros.h:
* src/process.h, src/puresize.h, src/region-cache.h, src/syntax.h:
* src/syssignal.h, src/sysstdio.h, src/systty.h, src/termchar.h:
* src/termopts.h, src/tparam.h, src/unexec.h:
Protect against multiple inclusion.
* src/buffer.h: Include character.h, for STRING_CHAR.
* src/emacsgtkfixed.h (struct frame):
* src/fontset.h (struct face):
* src/region-cache.h (struct buffer):
* src/termhooks.h (struct glyph):
* src/xsettings.h (struct x_display_info):
Add possibly-forward decl.
* src/syntax.h: Include buffer.h, for BVAR.
* src/sysselect.h: Include lisp.h, for eassume.
* src/termchar.h: Include &lt;stdio.h&gt;, for FILE.
* src/widget.h: Include &lt;X11/IntrinsicP.h&gt;, for Widget.
* src/xsettings.h: Include &lt;X11/Xlib.h&gt;, for XEvent.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Redo src/*.h so that each include file is idempotent (that is, can
be included multiple times with the latter inclusions having no
effect) and standalone (that is, can be included by itself,
with no include file other than config.h needed as a prerequisite).
This is standard practice in GNU programs nowadays.
* lwlib/lwlib-widget.h, src/buffer.h, src/category.h, src/character.h:
* src/charset.h, src/coding.h, src/commands.h, src/disptab.h:
* src/fontset.h, src/gnutls.h, src/indent.h, src/keymap.h, src/macros.h:
* src/regex.h [emacs]:
* src/syntax.h, src/systty.h, src/termhooks.h:
Include lisp.h, for Lisp_Object.
* src/buffer.h, src/category.h, src/cm.h, src/commands.h, src/disptab.h:
* src/indent.h, src/intervals.h, src/keyboard.h, src/macros.h:
* src/process.h, src/puresize.h, src/region-cache.h, src/syntax.h:
* src/syssignal.h, src/sysstdio.h, src/systty.h, src/termchar.h:
* src/termopts.h, src/tparam.h, src/unexec.h:
Protect against multiple inclusion.
* src/buffer.h: Include character.h, for STRING_CHAR.
* src/emacsgtkfixed.h (struct frame):
* src/fontset.h (struct face):
* src/region-cache.h (struct buffer):
* src/termhooks.h (struct glyph):
* src/xsettings.h (struct x_display_info):
Add possibly-forward decl.
* src/syntax.h: Include buffer.h, for BVAR.
* src/sysselect.h: Include lisp.h, for eassume.
* src/termchar.h: Include &lt;stdio.h&gt;, for FILE.
* src/widget.h: Include &lt;X11/IntrinsicP.h&gt;, for Widget.
* src/xsettings.h: Include &lt;X11/Xlib.h&gt;, for XEvent.
</pre>
</div>
</content>
</entry>
<entry>
<title>Improvements for curved quotes on Linux consule</title>
<updated>2015-09-09T09:22:24+00:00</updated>
<author>
<name>Paul Eggert</name>
</author>
<published>2015-09-09T09:21:16+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=6e5d81ff4536ed117dfac269357c46dbdc1890c9'/>
<id>6e5d81ff4536ed117dfac269357c46dbdc1890c9</id>
<content type='text'>
This should help Emacs work better out-of-the-box on Linux consoles,
which have only limited support for displaying Unicode characters.
Also, undo the recent change that caused text-quoting-style to
affect quote display on terminals, so that the two features are
independent.  See Alan Mackenzie in:
http://lists.gnu.org/archive/html/emacs-devel/2015-09/msg00244.html
Finally, add a style parameter to startup--setup-quote-display,
so that this function can also be invoked after startup, with
different styles depending on user preference at the time.
* configure.ac: Check for linux/kd.h header.
* doc/emacs/display.texi (Text Display): Document quote display.
* doc/lispref/display.texi (Active Display Table):
* etc/NEWS:
* lisp/startup.el (startup--setup-quote-display, command-line):
text-quoting-style no longer affects quote display.
* doc/lispref/frames.texi (Terminal Parameters): Fix typo.
* lisp/international/mule-util.el (char-displayable-p):
* lisp/startup.el (startup--setup-quote-display):
On a text terminal supporting glyph codes, use the reported
glyph codes instead of the terminal coding system, as this
is more accurate on the Linux console.
* lisp/startup.el (startup--setup-quote-display):
New optional arg STYLE.
* src/fontset.c (Finternal_char_font):
Report glyph codes for a text terminal, if they are available.
Currently this is supported only for the Linux console.
* src/termhooks.h (struct terminal): New member glyph-code-table.
* src/terminal.c [HAVE_LINUX_KD_H]: Include &lt;errno.h&gt;, &lt;linux/kd.h&gt;.
(calculate_glyph_code_table) [HAVE_LINUX_KD_H]: New function.
(terminal_glyph_code): New function.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This should help Emacs work better out-of-the-box on Linux consoles,
which have only limited support for displaying Unicode characters.
Also, undo the recent change that caused text-quoting-style to
affect quote display on terminals, so that the two features are
independent.  See Alan Mackenzie in:
http://lists.gnu.org/archive/html/emacs-devel/2015-09/msg00244.html
Finally, add a style parameter to startup--setup-quote-display,
so that this function can also be invoked after startup, with
different styles depending on user preference at the time.
* configure.ac: Check for linux/kd.h header.
* doc/emacs/display.texi (Text Display): Document quote display.
* doc/lispref/display.texi (Active Display Table):
* etc/NEWS:
* lisp/startup.el (startup--setup-quote-display, command-line):
text-quoting-style no longer affects quote display.
* doc/lispref/frames.texi (Terminal Parameters): Fix typo.
* lisp/international/mule-util.el (char-displayable-p):
* lisp/startup.el (startup--setup-quote-display):
On a text terminal supporting glyph codes, use the reported
glyph codes instead of the terminal coding system, as this
is more accurate on the Linux console.
* lisp/startup.el (startup--setup-quote-display):
New optional arg STYLE.
* src/fontset.c (Finternal_char_font):
Report glyph codes for a text terminal, if they are available.
Currently this is supported only for the Linux console.
* src/termhooks.h (struct terminal): New member glyph-code-table.
* src/terminal.c [HAVE_LINUX_KD_H]: Include &lt;errno.h&gt;, &lt;linux/kd.h&gt;.
(calculate_glyph_code_table) [HAVE_LINUX_KD_H]: New function.
(terminal_glyph_code): New function.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix bug that munged selection info</title>
<updated>2015-06-23T23:30:58+00:00</updated>
<author>
<name>Paul Eggert</name>
</author>
<published>2015-06-23T23:29:27+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=1552e6737317ea2c85e06600e178114c6b0f9fb2'/>
<id>1552e6737317ea2c85e06600e178114c6b0f9fb2</id>
<content type='text'>
On some optimizing C compilers, copying a structure did not
copy the padding bytes between elements, and the type punning
between struct input_data and struct selection_input_data did
not work.  Change the C code to use a proper union type instead.
Problem reported by YAMAMOTO Mitsuharu (Bug#20756).
* src/keyboard.c (kbd_buffer, kbd_fetch_ptr, kbd_store_ptr)
(readable_events, discard_mouse_events, kbd_buffer_events_waiting)
(kbd_buffer_get_event, process_special_events, stuff_buffered_input)
(mark_kboards):
Use union buffered_input_event, not struct input_event.
(clear_event, deliver_input_available_signal, process_special_events):
Remove unnecessary forward decls.
(kbd_buffer_store_buffered_event): New function, mostly just the
old kbd_buffer_store_event_hold, except its argument is of type
union buffered_input_event, not struct input_event.
(kbd_buffer_unget_event): Define only if HAVE_X11, since it's
not needed otherwise.  Argument is now of type
struct selection_input_event *, not struct input_event *.
All callers changed.
(clear_event): Arg is now of type union buffered_input_event *,
not struct input_event *.  All callers changed.
* src/keyboard.h [HAVE_X11]: Include "xterm.h".
(union buffered_input_event): New type.
(kbd_buffer_store_event_hold): Now an inline function,
defined here.
* src/termhooks.h (EVENT_KIND_WIDTH): New constant.
(struct input_event): Use it.
* src/xselect.c (struct selection_event_queue):
Make elements be of type struct selection_input_event,
not struct input_event.
(selection_input_event_equal): New static function.
(x_queue_event): Use it.
(x_queue_event, x_decline_selection_request)
(x_selection_current_request, x_reply_selection_request)
(x_handle_selection_request, x_handle_selection_clear)
(x_handle_selection_event): Use struct selection_input_event,
not struct input_event.  All callers changed.
(x_convert_selection): Omit unused first arg.  All callers changed.
(Fx_disown_selection_internal): Omit unnecessary union.
* src/xterm.c (handle_one_xevent): Use new union buffered_input_event
rather than rolling our own equivalent.  Prefer sie.kind when
setting up that kind of structure.
Call kbd_buffer_store_buffered_event, not kbd_buffer_store_event_hold.
* src/xterm.h (struct selection_input_event: Use EVENT_KIND_WIDTH.
(SELECTION_EVENT_DISPLAY, SELECTION_EVENT_DPYINFO)
(SELECTION_EVENT_REQUESTOR, SELECTION_EVENT_SELECTION)
(SELECTION_EVENT_TARGET, SELECTION_EVENT_PROPERTY)
(SELECTION_EVENT_TIME, x_handle_selection_event):
Arg is now of type struct selection_input_event *)
not struct input_event *.  All callers changed.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
On some optimizing C compilers, copying a structure did not
copy the padding bytes between elements, and the type punning
between struct input_data and struct selection_input_data did
not work.  Change the C code to use a proper union type instead.
Problem reported by YAMAMOTO Mitsuharu (Bug#20756).
* src/keyboard.c (kbd_buffer, kbd_fetch_ptr, kbd_store_ptr)
(readable_events, discard_mouse_events, kbd_buffer_events_waiting)
(kbd_buffer_get_event, process_special_events, stuff_buffered_input)
(mark_kboards):
Use union buffered_input_event, not struct input_event.
(clear_event, deliver_input_available_signal, process_special_events):
Remove unnecessary forward decls.
(kbd_buffer_store_buffered_event): New function, mostly just the
old kbd_buffer_store_event_hold, except its argument is of type
union buffered_input_event, not struct input_event.
(kbd_buffer_unget_event): Define only if HAVE_X11, since it's
not needed otherwise.  Argument is now of type
struct selection_input_event *, not struct input_event *.
All callers changed.
(clear_event): Arg is now of type union buffered_input_event *,
not struct input_event *.  All callers changed.
* src/keyboard.h [HAVE_X11]: Include "xterm.h".
(union buffered_input_event): New type.
(kbd_buffer_store_event_hold): Now an inline function,
defined here.
* src/termhooks.h (EVENT_KIND_WIDTH): New constant.
(struct input_event): Use it.
* src/xselect.c (struct selection_event_queue):
Make elements be of type struct selection_input_event,
not struct input_event.
(selection_input_event_equal): New static function.
(x_queue_event): Use it.
(x_queue_event, x_decline_selection_request)
(x_selection_current_request, x_reply_selection_request)
(x_handle_selection_request, x_handle_selection_clear)
(x_handle_selection_event): Use struct selection_input_event,
not struct input_event.  All callers changed.
(x_convert_selection): Omit unused first arg.  All callers changed.
(Fx_disown_selection_internal): Omit unnecessary union.
* src/xterm.c (handle_one_xevent): Use new union buffered_input_event
rather than rolling our own equivalent.  Prefer sie.kind when
setting up that kind of structure.
Call kbd_buffer_store_buffered_event, not kbd_buffer_store_event_hold.
* src/xterm.h (struct selection_input_event: Use EVENT_KIND_WIDTH.
(SELECTION_EVENT_DISPLAY, SELECTION_EVENT_DPYINFO)
(SELECTION_EVENT_REQUESTOR, SELECTION_EVENT_SELECTION)
(SELECTION_EVENT_TARGET, SELECTION_EVENT_PROPERTY)
(SELECTION_EVENT_TIME, x_handle_selection_event):
Arg is now of type struct selection_input_event *)
not struct input_event *.  All callers changed.
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert changes installed by xwidgets merge</title>
<updated>2015-02-01T19:45:15+00:00</updated>
<author>
<name>Paul Eggert</name>
</author>
<published>2015-02-01T19:39:36+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=241260cc2819e5df254ad85953588b06388ade61'/>
<id>241260cc2819e5df254ad85953588b06388ade61</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>merge master</title>
<updated>2015-01-02T15:30:55+00:00</updated>
<author>
<name>jave</name>
</author>
<published>2015-01-02T15:30:55+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=db4613576d3115aa320f0293d081ce98baa06acd'/>
<id>db4613576d3115aa320f0293d081ce98baa06acd</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Update copyright year to 2015</title>
<updated>2015-01-01T22:26:41+00:00</updated>
<author>
<name>Paul Eggert</name>
</author>
<published>2015-01-01T22:26:41+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=7e09ef09a479731d01b1ca46e94ddadd73ac98e3'/>
<id>7e09ef09a479731d01b1ca46e94ddadd73ac98e3</id>
<content type='text'>
Run admin/update-copyright.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Run admin/update-copyright.
</pre>
</div>
</content>
</entry>
<entry>
<title>Use bool for boolean in xterm.c</title>
<updated>2014-12-22T03:36:28+00:00</updated>
<author>
<name>Paul Eggert</name>
</author>
<published>2014-12-22T03:35:30+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=455e54691f2e95ff1ec1e3e81f3e271775269af2'/>
<id>455e54691f2e95ff1ec1e3e81f3e271775269af2</id>
<content type='text'>
* frame.h, nsterm.m, w32term.c, w32term.h, xterm.c:
(x_set_window_size, x_bitmap_icon):
* nsterm.m (ns_frame_raise_lower, x_new_font):
* termhooks.h (struct terminal.toggle_invisible_pointer_hook)
(struct terminal.frame_raise_lower_hook):
* w32term.c (w32_frame_raise_lower):
* xterm.c, xterm.h (x_text_icon):
* xterm.c (x_update_window_begin, x_update_window_end)
(x_update_end, x_after_update_window_line)
(x_set_glyph_string_gc, x_draw_glyph_string_background)
(x_draw_glyph_string_foreground)
(x_draw_composite_glyph_string_foreground)
(x_alloc_lighter_color, x_draw_relief_rect)
(x_draw_glyph_string_box, x_draw_image_relief)
(x_draw_image_glyph_string, x_draw_stretch_glyph_string)
(x_draw_underwave, x_draw_glyph_string, x_show_hourglass)
(x_hide_hourglass):
(XFillRectangle) [HAVE_GTK3]:
(XTtoggle_invisible_pointer, frame_highlight, frame_unhighlight)
(x_focus_changed, x_find_modifier_meanings, note_mouse_movement)
(XTmouse_position, xt_action_hook, xt_horizontal_action_hook)
(x_send_scroll_bar_event, xm_scroll_callback)
(xg_scroll_callback, xaw_jump_callback, xaw_scroll_callback)
(x_create_toolkit_scroll_bar)
(x_create_horizontal_toolkit_scroll_bar)
(x_set_toolkit_horizontal_scroll_bar_thumb, x_scroll_bar_create)
(x_scroll_bar_set_handle, XTset_vertical_scroll_bar)
(XTset_horizontal_scroll_bar, x_scroll_bar_expose)
(x_scroll_bar_handle_click, x_scroll_bar_note_movement)
(x_scroll_bar_report_motion)
(x_horizontal_scroll_bar_report_motion, x_net_wm_state)
(handle_one_xevent, XTread_socket, x_draw_bar_cursor)
(x_draw_window_cursor, x_clear_errors)
(x_trace_wire, x_new_font, x_set_offset, wm_supports)
(set_wm_state, x_set_sticky, get_current_wm_state)
(do_ewmh_fullscreen, x_handle_net_wm_state)
(x_check_expected_move, x_sync_with_move, x_wait_for_event)
(x_set_window_size_1, XTframe_raise_lower)
(x_make_frame_visible, x_iconify_frame)
(x_timeout_atimer_activated_flag, same_x_server, x_display_ok)
(x_term_init, x_process_timeouts, x_activate_timeout_atimer)
(x_delete_terminal, x_initialize, syms_of_xterm):
Use bool for boolean.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* frame.h, nsterm.m, w32term.c, w32term.h, xterm.c:
(x_set_window_size, x_bitmap_icon):
* nsterm.m (ns_frame_raise_lower, x_new_font):
* termhooks.h (struct terminal.toggle_invisible_pointer_hook)
(struct terminal.frame_raise_lower_hook):
* w32term.c (w32_frame_raise_lower):
* xterm.c, xterm.h (x_text_icon):
* xterm.c (x_update_window_begin, x_update_window_end)
(x_update_end, x_after_update_window_line)
(x_set_glyph_string_gc, x_draw_glyph_string_background)
(x_draw_glyph_string_foreground)
(x_draw_composite_glyph_string_foreground)
(x_alloc_lighter_color, x_draw_relief_rect)
(x_draw_glyph_string_box, x_draw_image_relief)
(x_draw_image_glyph_string, x_draw_stretch_glyph_string)
(x_draw_underwave, x_draw_glyph_string, x_show_hourglass)
(x_hide_hourglass):
(XFillRectangle) [HAVE_GTK3]:
(XTtoggle_invisible_pointer, frame_highlight, frame_unhighlight)
(x_focus_changed, x_find_modifier_meanings, note_mouse_movement)
(XTmouse_position, xt_action_hook, xt_horizontal_action_hook)
(x_send_scroll_bar_event, xm_scroll_callback)
(xg_scroll_callback, xaw_jump_callback, xaw_scroll_callback)
(x_create_toolkit_scroll_bar)
(x_create_horizontal_toolkit_scroll_bar)
(x_set_toolkit_horizontal_scroll_bar_thumb, x_scroll_bar_create)
(x_scroll_bar_set_handle, XTset_vertical_scroll_bar)
(XTset_horizontal_scroll_bar, x_scroll_bar_expose)
(x_scroll_bar_handle_click, x_scroll_bar_note_movement)
(x_scroll_bar_report_motion)
(x_horizontal_scroll_bar_report_motion, x_net_wm_state)
(handle_one_xevent, XTread_socket, x_draw_bar_cursor)
(x_draw_window_cursor, x_clear_errors)
(x_trace_wire, x_new_font, x_set_offset, wm_supports)
(set_wm_state, x_set_sticky, get_current_wm_state)
(do_ewmh_fullscreen, x_handle_net_wm_state)
(x_check_expected_move, x_sync_with_move, x_wait_for_event)
(x_set_window_size_1, XTframe_raise_lower)
(x_make_frame_visible, x_iconify_frame)
(x_timeout_atimer_activated_flag, same_x_server, x_display_ok)
(x_term_init, x_process_timeouts, x_activate_timeout_atimer)
(x_delete_terminal, x_initialize, syms_of_xterm):
Use bool for boolean.
</pre>
</div>
</content>
</entry>
<entry>
<title>Cleanup terminal handling code.</title>
<updated>2014-10-14T12:45:41+00:00</updated>
<author>
<name>Dmitry Antipov</name>
</author>
<published>2014-10-14T12:45:41+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=bb75cdf9c74ab19b75532da1f953233a47eedab4'/>
<id>bb75cdf9c74ab19b75532da1f953233a47eedab4</id>
<content type='text'>
* dispextern.h (get_named_tty): Remove prototype but...
* termhooks.h (get_named_terminal): ...resurrect it under
more meaningful name.
(get_terminal): Likewise, but with...
(decode_live_terminal): ...this name.
(decode_tty_terminal): Add prototype.
* term.c (get_tty_terminal): Remove.
(get_named_tty): Remove.
(Ftty_display_color_p, Ftty_display_color_cells, Ftty_type)
(Fcontrolling_tty_p, Fsuspend_tty, Fresume_tty):
Use decode_tty_terminal.
(Ftty_no_underline, Ftty_top_frame): Use decode_live_terminal.
* terminal.c (get_terminal): Refactor to...
(decode_terminal, decode_live_terminal): ...new functions.
(decode_tty_terminal): Replacement for get_tty_terminal.
(get_named_terminal): Likewise for get_named_tty.
* coding.c (Fset_terminal_coding_system_internal)
(Fterminal_coding_system, Fset_keyboard_coding_system_internal):
(Fkeyboard_coding_system):
* composite.c (Fcomposition_get_gstring):
* dispnew.c (Fsend_string_to_terminal):
* frame.c (Fmake_terminal_frame):
* nsfns.m (check_ns_display_info):
* w32fns.c, xfns.c (check_x_display_info):
* xselect.c (frame_for_x_selection): Use decode_live_terminal.
* keyboard.c (handle_interrupt_signal, handle_interrupt)
(Fset_quit_char): Use get_named_terminal.
(Fset_output_flow_control, Fset_input_meta_mode):
Use decode_tty_terminal.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* dispextern.h (get_named_tty): Remove prototype but...
* termhooks.h (get_named_terminal): ...resurrect it under
more meaningful name.
(get_terminal): Likewise, but with...
(decode_live_terminal): ...this name.
(decode_tty_terminal): Add prototype.
* term.c (get_tty_terminal): Remove.
(get_named_tty): Remove.
(Ftty_display_color_p, Ftty_display_color_cells, Ftty_type)
(Fcontrolling_tty_p, Fsuspend_tty, Fresume_tty):
Use decode_tty_terminal.
(Ftty_no_underline, Ftty_top_frame): Use decode_live_terminal.
* terminal.c (get_terminal): Refactor to...
(decode_terminal, decode_live_terminal): ...new functions.
(decode_tty_terminal): Replacement for get_tty_terminal.
(get_named_terminal): Likewise for get_named_tty.
* coding.c (Fset_terminal_coding_system_internal)
(Fterminal_coding_system, Fset_keyboard_coding_system_internal):
(Fkeyboard_coding_system):
* composite.c (Fcomposition_get_gstring):
* dispnew.c (Fsend_string_to_terminal):
* frame.c (Fmake_terminal_frame):
* nsfns.m (check_ns_display_info):
* w32fns.c, xfns.c (check_x_display_info):
* xselect.c (frame_for_x_selection): Use decode_live_terminal.
* keyboard.c (handle_interrupt_signal, handle_interrupt)
(Fset_quit_char): Use get_named_terminal.
(Fset_output_flow_control, Fset_input_meta_mode):
Use decode_tty_terminal.
</pre>
</div>
</content>
</entry>
<entry>
<title>Avoid signed integer overflow when converting Time to ptrdiff_t.</title>
<updated>2014-09-24T20:30:28+00:00</updated>
<author>
<name>Paul Eggert</name>
</author>
<published>2014-09-24T20:30:28+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=203a9eb0ec0e1f28958df5fa1a49c5a7e3f4cae8'/>
<id>203a9eb0ec0e1f28958df5fa1a49c5a7e3f4cae8</id>
<content type='text'>
* keyboard.c (INPUT_EVENT_POS_MAX, INPUT_EVENT_POS_MIN):
New macros.
(position_to_Time, Time_to_position): New functions.
(gen_help_event, kbd_buffer_get_event): Use them.
* systime.h (Time) [emacs &amp;&amp; !HAVE_X_WINDOWS]:
Go back to plain 'unsigned long', so that 'Time' is the same
for both X and non-X builds; this is less likely to cause surprise.
* termhooks.h: Remove compile-time check that Time and ptrdiff_t
are the same size; this is no longer required.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* keyboard.c (INPUT_EVENT_POS_MAX, INPUT_EVENT_POS_MIN):
New macros.
(position_to_Time, Time_to_position): New functions.
(gen_help_event, kbd_buffer_get_event): Use them.
* systime.h (Time) [emacs &amp;&amp; !HAVE_X_WINDOWS]:
Go back to plain 'unsigned long', so that 'Time' is the same
for both X and non-X builds; this is less likely to cause surprise.
* termhooks.h: Remove compile-time check that Time and ptrdiff_t
are the same size; this is no longer required.
</pre>
</div>
</content>
</entry>
<entry>
<title>* termhooks.h (enum scroll_bar_part): Begin from 0 to allow...</title>
<updated>2014-09-24T07:17:51+00:00</updated>
<author>
<name>Dmitry Antipov</name>
</author>
<published>2014-09-24T07:17:51+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=4b930ccbb4fc4b848f318e09eddd172c2acf9b9b'/>
<id>4b930ccbb4fc4b848f318e09eddd172c2acf9b9b</id>
<content type='text'>
(struct input_event): ...unsigned bitfields.  Likewise for
`event_kind' member.  Prefer unsigned for `code' and 'modifiers'.
Use `timestamp' for HELP_EVENT position.  Add compile-time assert.
* keyboard.c (gen_help_event, kbd_buffer_store_help_event)
(kbd_buffer_get_event): Adjust users.
(scroll_bar_parts): Add Qnil to match scroll_bar_nowhere.
(make_scroll_bar_position): New function, refactored out of...
(make_lispy_event): ...adjusted user.
* nsterm.h (EmacsScroller): Use enum for `last_hit_part' member.
* nsterm.m (ns_mouse_position, mouseUp):
* term.c (term_mouse_position):
* w32inevt.c (w32_console_mouse_position):
* w32term.c (w32_mouse_position):
* xterm.c (XTmouse_position): Use scroll_bar_above_handle.
(x_send_scroll_bar_event, xm_scroll_callback, xg_scroll_callback):
Prefer enum and explicit enum members to integers and numeric values.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
(struct input_event): ...unsigned bitfields.  Likewise for
`event_kind' member.  Prefer unsigned for `code' and 'modifiers'.
Use `timestamp' for HELP_EVENT position.  Add compile-time assert.
* keyboard.c (gen_help_event, kbd_buffer_store_help_event)
(kbd_buffer_get_event): Adjust users.
(scroll_bar_parts): Add Qnil to match scroll_bar_nowhere.
(make_scroll_bar_position): New function, refactored out of...
(make_lispy_event): ...adjusted user.
* nsterm.h (EmacsScroller): Use enum for `last_hit_part' member.
* nsterm.m (ns_mouse_position, mouseUp):
* term.c (term_mouse_position):
* w32inevt.c (w32_console_mouse_position):
* w32term.c (w32_mouse_position):
* xterm.c (XTmouse_position): Use scroll_bar_above_handle.
(x_send_scroll_bar_event, xm_scroll_callback, xg_scroll_callback):
Prefer enum and explicit enum members to integers and numeric values.
</pre>
</div>
</content>
</entry>
</feed>
