Kim F. Storm [Fri, 21 Mar 2003 13:52:28 +0000 (13:52 +0000)]
The following changes consolidate code related to writing and
inserting glyphs, exposing frame, the tool bar, the mouse face,
the output cursor, and help echo from xterm.c, w32term.c and
macterm.c into xdisp.c. It also generalizes the use of the
window_part enum instead of using numeric values throughout.
* xdisp.c: Consolidate gui-independent code here.
Include keymap.h.
(Qhelp_echo): Import.
(mouse_autoselect_window, x_stretch_cursor_p): Declare here.
(help_echo_string, help_echo_window, help_echo_object)
(previous_help_echo_string, help_echo_pos): Declare here.
(output_cursor, last_mouse_frame, last_tool_bar_item): Declare here.
(estimate_mode_line_height): Define here. Handle windowing
systems directly (without using estimate_mode_line_height_hook).
(x_y_to_hpos_vpos, get_tool_bar_item, note_tool_bar_highlight):
(update_window_cursor, update_cursor_in_window_tree)
(fast_find_position, fast_find_string_pos)
(note_mode_line_highlight, note_mode_line_or_margin_highlight)
(expose_area, expose_line, expose_overlaps, expose_window)
(expose_window_tree, phys_cursor_in_rect_p): New generic versions;
declared static as they are only used locally in xdisp.c.
(draw_glyphs): Rename from x_draw_glyphs and make static.
(tool_bar_item_info, notice_overwritten_cursor): Make static.
(frame_to_window_pixel_xy, get_glyph_string_clip_rect)
(set_output_cursor, x_cursor_to, handle_tool_bar_click)
(x_write_glyphs, x_insert_glyphs, x_clear_end_of_line):
(x_fix_overlapping_area, draw_phys_cursor_glyph, erase_phys_cursor)
(display_and_set_cursor, x_update_cursor, x_clear_cursor)
(show_mouse_face, clear_mouse_face, cursor_in_mouse_face_p)
(note_mouse_highlight, x_clear_window_mouse_face)
(cancel_mouse_face, x_draw_vertical_border, expose_frame)
(x_intersect_rectangles): New generic functions for use by xdisp.c
and GUI front-ends.
(syms_of_xdisp): Initialize and staticpro help_echo* variables.
Defvar_bool "x-streach-cursor" and "mouse-autoselect-window" here.
Kim F. Storm [Fri, 21 Mar 2003 13:52:06 +0000 (13:52 +0000)]
* window.c (enum window_part): Move to dispextern.h.
(coordinates_in_window): Use enum window_part member names
instead of numbers to describe return value.
(struct check_window_data): Change part member to window_part.
(check_window_containing): Return window_part unaltered.
(window_from_coordinates): Change part arg from int to enum
window_part. Allow part arg to be null. All users changed.
Kim F. Storm [Fri, 21 Mar 2003 13:51:33 +0000 (13:51 +0000)]
(No_Cursor): Define as 0 for W32.
(XRectangle): Add X compatible rectangle type.
(NativeRectangle): Declare as RECT for W32.
(CONVERT_TO_XRECT, CONVERT_FROM_XRECT, STORE_NATIVE_RECT): New macros.
Kim F. Storm [Fri, 21 Mar 2003 13:49:57 +0000 (13:49 +0000)]
(No_Cursor): Define as 0 for Mac.
(XRectangle): Add X compatible rectangle type.
(NativeRectangle): Declare as Rect for Mac.
(CONVERT_TO_XRECT, CONVERT_FROM_XRECT, STORE_NATIVE_RECT): New macros.
Kenichi Handa [Wed, 19 Mar 2003 11:58:25 +0000 (11:58 +0000)]
* dired.el (dired-get-filename): Pay attention to the case that
`read' returns a unibyte string. Don't encode the file name by
buffer-file-coding-system.
Kenichi Handa [Wed, 19 Mar 2003 11:54:57 +0000 (11:54 +0000)]
(Ffile_name_directory): Reconstruct file name by
make_specified_string.
(Ffile_name_nondirectory, Ffile_name_as_directory)
(Fdirectory_file_name, Fexpand_file_name)
(Fsubstitute_in_file_name): Likewise.
(Fread_file_name): Compare decoded homedir with DIR and
DEFAULT_FILENAME.
Stefan Monnier [Tue, 18 Mar 2003 19:34:31 +0000 (19:34 +0000)]
(accessible_keymaps_1): Break cycles but without preventing
multiple occurrences of the same keymap under different prefixes.
(Faccessible_keymaps): Remove code redundant since 1994-08-03T07:39:00Z!rms@gnu.org.
Kenichi Handa [Tue, 18 Mar 2003 04:26:15 +0000 (04:26 +0000)]
(Vchar_coding_system_table): Remove this variable.
(Vcoding_system_safe_chars): New variable.
(intersection): Remove this function.
(find_safe_codings): Don't use Vchar_coding_system_table, but try
all codings in SAFE_CODINGS.
(Ffind_coding_systems_region_internal): Adjusted for the change of
find_safe_codings. Get generic coding systems from
Vcoding_system_safe_chars.
(Fdefine_coding_system_internal): New function.
(syms_of_coding): Defsubr Sdefine_coding_system_internal.
Initialize and staticpro Vcoding_system_safe_chars.
Kenichi Handa [Tue, 18 Mar 2003 04:11:32 +0000 (04:11 +0000)]
* international/mule.el (optimize-char-coding-system-table):
Remove this function.
(register-char-codings): Make it obsolete.
(char-coding-system-table): Defconst it here.
(make-coding-system): Don't call register-char-codings, call
define-coding-system-internal.
Kim F. Storm [Sun, 16 Mar 2003 20:48:56 +0000 (20:48 +0000)]
The following changes consolidate some of the gui-independent
parts of the processing and drawing of "glyph strings" from
xterm.c, w32term.c, and macterm.c into xdisp.c.
* macterm.c: Remove consolidated defines and code.
(mac_per_char_metric): New function for RIF.
(mac_encode_char): Adapted to new RIF requirements.
(mac_compute_glyph_string_overhangs): Adapt for RIF.
(x_redisplay_interface): Add new members.
Kim F. Storm [Sun, 16 Mar 2003 20:47:48 +0000 (20:47 +0000)]
Remove consolidated defines and code.
(BUILD_WCHAR_T, BYTE1, BYTE2): Macros removed; callers changed
to use STORE_XCHAR2B, XCHAR2B_BYTE1, XCHAR2B_BYTE2 instead.
(w32_per_char_metric): Change font_type arg to int for RIF.
(w32_encode_char): Return int according to RIF requirements.
(w32_compute_glyph_string_overhangs): Adapt to RIF.
(w32_get_glyph_overhangs): New function for RIF. Uses generic
x_get_glyph_overhangs.
(w32_redisplay_interface): Add new members.
Kim F. Storm [Sun, 16 Mar 2003 20:47:30 +0000 (20:47 +0000)]
(Display): Add dummy typedef for consolidation.
(XChar2b): Define alias for wchar_t for consolidation.
(STORE_XCHAR2B, XCHAR2B_BYTE1, XCHAR2B_BYTE2): New macros.
Kim F. Storm [Sun, 16 Mar 2003 20:45:20 +0000 (20:45 +0000)]
(struct glyph): Reduce face_id member from 22 to
21 bits (this reduces number of faces from 4M to 2M).
Replace W32 specific w32_font_type member (2 bits) by generic
font_type member (3 bits) for portability.
(FONT_TYPE_UNKNOWN): New define, default for font_type member.
(enum draw_glyphs_face): Define here.
(struct glyph_string): Define here. Merge W32 and X versions.
(struct redisplay_interface): New members per_char_metric,
encode_char, compute_glyph_string_overhangs, draw_glyph_string.
(VCENTER_BASELINE_OFFSET): Define here.
(dump_glyph_string, x_get_glyph_overhangs, x_produce_glyphs)
(x_draw_glyphs, notice_overwritten_cursor): Declare prototypes here.
Kim F. Storm [Sun, 16 Mar 2003 20:44:55 +0000 (20:44 +0000)]
The following changes consolidate some of the gui-independent
parts of the processing and drawing of "glyph strings" from
xterm.c, w32term.c, and macterm.c into xdisp.c.
(xml-ucs-to-string): New function to convert Unicode codepoints to strings.
Uses decode-char (mule.el) if available.
(xml-parse-tag, xml-parse-attlist, xml-skip-dtd, xml-parse-dtd,
xml-parse-elem-type): Use ' \t\n\r' instead of '[:space:]'.
(xml-parse-attlist): Added attribute normalization.
(xml-parse-tag): Replace "\r\n" and "\r" with "\n".
Stefan Monnier [Sun, 16 Mar 2003 00:39:23 +0000 (00:39 +0000)]
(easy-menu-name-match): Catch any error that member-ignore-case might signal.
(easy-menu-add-item): Default to the global map, as documented.
(easy-menu-convert-item-1): Use match-string.
Stefan Monnier [Fri, 14 Mar 2003 22:29:13 +0000 (22:29 +0000)]
(texinfo-outline-level): Remove.
(texinfo-mode): Set outline-heading-alist instead.
(texinfo-section-list): Reorder for the needs of outline-heading-alist.
(texinfo-insert-block): Don't cons needlessly.
(texinfo-enable-quote-macros, texinfo-enable-quote-envs): New vars.
(texinfo-insert-quote): Use them.
Stefan Monnier [Fri, 14 Mar 2003 21:43:53 +0000 (21:43 +0000)]
(outline-level): Demote it to defvar.
(outline-heading-alist): Document extended semantics.
(outline-head-from-level): New fun.
(outline-promote, outline-demote): Use it.
(outline-show-heading): New fun.
(hide-sublevels, show-children): Use it together with outline-map-region.
(outline-get-next-sibling): Don't call outline-level at eob.