1. 30 Jul, 2020 1 commit
    • Eli Zaretskii's avatar
      Fix face extension past EOL in overlay strings · 35564bea
      Eli Zaretskii authored
      * src/xdisp.c (face_at_pos): Pass ATTR_FILTER to
      face_for_overlay_string.
      * src/xfaces.c (face_for_overlay_string): Accept an additional
      argument ATTR_INDEX and pass it to merge_face_ref for merging the
      face at POS.  This ensures a face from buffer text will not be
      merged unless it specifies the :extend attribute.  (Bug#42552)
      * src/dispextern.h (face_for_overlay_string): Adjust prototype.
      35564bea
  2. 22 Jun, 2020 1 commit
    • Eli Zaretskii's avatar
      Minor improvements as followup to recent RGB string-parsing change · 30ff2433
      Eli Zaretskii authored
      * src/xfaces.c (Finternal_color_values_from_color_spec): Rename to...
      (Fcolor_values_from_color_spec): ...this.  Callers changed.
      Rename the argument to SPEC and improve the doc string.
      (parse_color_spec, parse_float_color_comp, parse_hex_color_comp):
      Improve commentary.
      (parse_color_spec): Rename the argument S to SPEC.
      
      * etc/NEWS: Mention 'color-values-from-color-spec'.
      30ff2433
  3. 21 Jun, 2020 1 commit
    • Mattias Engdegård's avatar
      Consolidate #RGB string parsers · 9fe2bdb8
      Mattias Engdegård authored
      Use a single parser of color strings in the #RGB, rgb:R/G/B and
      rgbi:R/G/B formats, replacing four existing ones.  Previously,
      error-checking was spotty, handling of the rgbi: format not always
      present, and normalization of the result was sometimes incorrect.
      
      * src/dispextern.h: New prototype.
      * src/xfaces.c (parse_hex_color_comp, parse_float_color_comp)
      (parse_color_spec, Finternal-color_values_from_color_spec): New functions.
      * test/src/xfaces-tests.el (xfaces-internal-color-values-from-color-spec):
      New test.
      * lisp/term/tty-colors.el (tty-color-standard-values):
      Use internal-color-values-from-color-spec, replacing old parser.
      * src/nsterm.m (ns_get_color):
      * src/w32fns.c (x_to_w32_color):
      * src/xterm.c (x_parse_color): Use parse_color_spec, replacing old
      parsers.
      (HEX_COLOR_NAME_LENGTH): Remove #define.
      9fe2bdb8
  4. 03 Jun, 2020 1 commit
    • Mattias Engdegård's avatar
      Make color-distance symmetric and more accurate · 7e8c1a67
      Mattias Engdegård authored
      * src/xfaces.c (color_distance): Don't throw away the low 8 bits of
      the colours, and make the function symmetric (bug41544)
      (Fcolor_distance): Add caution about this not being a true metric.
      * test/src/xfaces-tests.el: New file.
      7e8c1a67
  5. 12 May, 2020 1 commit
    • Paul Eggert's avatar
      Pacify GCC 10.1.0 · 4645430b
      Paul Eggert authored
      Pacify GCC 10.1.0 so that it does not issue false alarms
      when Emacs is configured with --enable-gcc-warnings.
      * src/dispnew.c (clear_glyph_row):
      * src/fns.c (hash_clear):
      * src/keyboard.c (append_tab_bar_item):
      * src/lisp.h (vcopy):
      * src/xfaces.c (get_lface_attributes_no_remap)
      (Finternal_copy_lisp_face, realize_default_face):
      * src/xmenu.c (set_frame_menubar):
      Work around -Warray-bounds false alarm in GCC 10.1.0.
      * src/intervals.c (copy_properties):
      Avoid -Wnull-dereference false alarm in GCC 10.1.0.
      * src/lisp.h (xvector_contents_addr, xvector_contents):
      New functions, useful for working around GCC bug 95072.
      4645430b
  6. 01 Apr, 2020 1 commit
    • Alexandre Adolphe's avatar
      Allow negative line width for :box face attribute · 34ae2d0c
      Alexandre Adolphe authored
      Separate values for box line width and height and allow both to be
      negative which makes the visual width and height of the boxed string
      unchanged (Bug#13011).
      
      * doc/lispref/display.texi (Face Attributes): Modify :box attribute
      description to reflect the new possibilities.
      * lisp/cus-face.el (custom-face-attributes): Set box attribute to get
      two integer to set vertical and horizontal width and modify pre-filter
      to accept dotted list of two int as valid box attribute.
      * src/dispextern.h (face): Use two int for box horizontal and vertical
      line width.
      
      * src/nsfont.m (nsfont_draw): Use new face attributes.
      * src/nsterm.m (ns_draw_box, ns_draw_relief): Support separated
      horizontal and vertical box line width.
      (ns_dumpglyphs_box_or_relief, ns_maybe_dumpglyphs_background)
      (ns_dumpglyphs_image, ns_draw_glyph_string_foreground)
      (ns_draw_composite_glyph_string_foreground): Use new face attributes.
      
      * src/w32term.c (w32_draw_box_rect, w32_draw_relief_rect): Support
      separated horizontal and vertical box line width.
      (x_draw_glyph_string_background, x_draw_glyph_string_foreground)
      (x_draw_composite_glyph_string_foreground)
      (x_draw_glyphless_glyph_string_foreground, x_draw_glyph_string_box)
      (x_draw_image_foreground, x_draw_image_relief)
      (w32_draw_image_foreground_1, x_draw_image_glyph_string): Use new face
      attributes.
      
      * src/xfaces.c (Sinternal_set_lisp_face_attribute, realize_x_face):
      Accept box attribute as a list of two ints.
      
      * src/xdisp.c (estimate_mode_line_height, produce_image_glyph)
      (produce_xwidget_glyph, x_produce_glyphs): Use new face attributes.
      * src/xterm.c (x_draw_box_rect, x_draw_relief_rect): Support separated
      horizontal and vertical box line width.
      (x_draw_glyph_string_background, x_draw_glyph_string_foreground)
      (x_draw_composite_glyph_string_foreground)
      (x_draw_glyphless_glyph_string_foreground, x_draw_glyph_string_box)
      (x_draw_image_foreground, x_draw_image_relief, x_draw_image_foreground_1)
      (x_draw_image_glyph_string): Use new face attributes.
      34ae2d0c
  7. 29 Mar, 2020 2 commits
  8. 09 Feb, 2020 1 commit
    • Alan Mackenzie's avatar
      Correct "different than" to "different from" where appropriate · 53006746
      Alan Mackenzie authored
      (doc/emacs/screen.texi)
      (doc/lispintro/emacs-lisp-intro.texi)
      (doc/misc/calc.texi)
      (doc/misc/gnus.texi)
      (doc/misc/sc.texi)
      (lisp/align.el)
      (lisp/allout-widgets.el)
      (lisp/allout.el)
      (lisp/emacs-lisp/gv.el)
      (lisp/font-lock.el)
      (lisp/gnus/mm-util.el)
      (lisp/mail/feedmail.el)
      (lisp/mail/sendmail.el)
      (lisp/mail/supercite.el)
      (lisp/org/org-attach.el)
      (lisp/progmodes/cc-langs.el)
      (lisp/progmodes/idlw-shell.el)
      (lisp/ps-print.el)
      (lisp/simple.el)
      (src/cmds.c)
      (src/editfns.c)
      (src/frame.h)
      (src/regex-emacs.c)
      (src/xfaces.c): Replace "different than" by "different from".
      53006746
  9. 01 Jan, 2020 1 commit
  10. 16 Dec, 2019 1 commit
  11. 13 Dec, 2019 2 commits
  12. 11 Dec, 2019 1 commit
  13. 05 Dec, 2019 1 commit
  14. 26 Nov, 2019 1 commit
    • Eli Zaretskii's avatar
      Support ':extend' in faces defined by list of key/value pairs · d4515f3c
      Eli Zaretskii authored
      * src/xfaces.c: Update and improve commentary at the beginning
      of the file.
      (face_attr_sym): New static array.
      (init_xfaces): Initialize 'face_attr_sym'.
      (merge_face_ref): Handle the :extend attribute in faces
      specified as lists of key/value pairs.  (Bug#37774)
      d4515f3c
  15. 25 Nov, 2019 1 commit
    • Eli Zaretskii's avatar
      Fix face merging when some have :extend non-nil and some are inherited · 19aecd34
      Eli Zaretskii authored
      * src/xfaces.c (face_inherited_attr): New function.
      (merge_named_face): Call 'face_inherited_attr' when testing
      whether a face that inherits from another fits the filtering
      criteria specified by ATTR_FILTER.
      (merge_face_vectors): Revert the changes made in this function
      for filtering by ATTR_FILTER, and remove that argument as
      well.  These tests are now completely done by the caller, see
      'merge_named_face'.  (Bug#37774)
      19aecd34
  16. 14 Nov, 2019 1 commit
  17. 13 Nov, 2019 1 commit
  18. 08 Nov, 2019 1 commit
  19. 29 Oct, 2019 2 commits
    • Jimmy Aguilar Mena's avatar
      Optimize conditional recursive merge face. · dafc87ef
      Jimmy Aguilar Mena authored
      * src/xfaces.c (merge_face_vectors) : Pass ATTR_FILTER to
      merge_face_ref to stop recursion merging in advance when possible.
      (merge_named_face) : add more conditions to potentially reduce calls to
      merge_face_vectors in more unneeded situations.
      dafc87ef
    • Jimmy Aguilar Mena's avatar
      Fix inherited :extend attribute in faces. · 8ae2a3a4
      Jimmy Aguilar Mena authored
      * src/xfaces.c (merge_face_vectors) : Add extra parameter ATTR_FILTER
      with the same functionality than in merge_named_face.  Update all
      occurrences.
      (merge_named_face): Remove condition to avoid call
      `merge_face_vectors`.
      8ae2a3a4
  20. 14 Oct, 2019 8 commits
  21. 01 Oct, 2019 1 commit
  22. 23 Sep, 2019 1 commit
    • Paul Eggert's avatar
      Update some URLs · 946a56a1
      Paul Eggert authored
      This mostly changes http: to https: in URLs.  It also updates
      some URLs that have moved, removes some URLs that no longer
      work, recommends against using procmail (procmail.org no
      longer works), and removes some mentions of the
      no-longer-existing Gmane, LPF and VTW.
      It doesn't update all URLs, just the ones I had time for.
      * GNUmakefile (help):
      * admin/admin.el (manual-doctype-string):
      * admin/charsets/Makefile.in (${charsetdir}/ALTERNATIVNYJ.map):
      * admin/charsets/mapconv:
      * lisp/net/soap-client.el (soap-create-envelope):
      * lisp/org/org.el (org-doi-server-url):
      * lisp/textmodes/bibtex.el (bibtex-generate-url-list):
      Prefer https: to http: un URLs.
      946a56a1
  23. 31 Aug, 2019 1 commit
    • Juri Linkov's avatar
      Frame-local tab-bar and window-local tab-line. · 3e0ad29a
      Juri Linkov authored
      * etc/NEWS: Add 'tab-bar-mode' and 'global-tab-line-mode'.
      
      * etc/TODO: Remove tab-related items.
      
      * lisp/cus-start.el: Add tab-bar-mode, tab-bar-max-label-size.
      
      * lisp/frame.el (frame-notice-user-settings): handle tab-bar-lines.
      
      * lisp/loadup.el: Load "tab-bar".
      
      * lisp/menu-bar.el (menu-bar-options-save): Add tab-bar-mode.
      (menu-bar-showhide-menu): Define showhide-tab-bar.
      
      * lisp/startup.el (tab-bar-images-pixel-height): New defconst.
      (command-line): Reset tab-bar-mode.
      (x-apply-session-resources): Add "tabBar", "TabBar".
      
      * lisp/subr.el (read-key): Add tab-bar.
      
      * lisp/tab-bar.el: New file.
      * lisp/tab-line.el: New file.
      
      * lisp/window.el (window--dump-frame): Add tab-bar-height.
      
      * src/dispextern.h (enum window_part): Add ON_TAB_LINE.
      (struct glyph_matrix): Add tab_line_p.
      (struct glyph_row): Add tab_line_p.
      (MATRIX_TAB_LINE_ROW): New macro.
      (MATRIX_FIRST_TEXT_ROW): Handle more mode lines.
      (MR_PARTIALLY_VISIBLE_AT_TOP): Add WINDOW_TAB_LINE_HEIGHT.
      (MATRIX_TAB_LINE_HEIGHT, CURRENT_TAB_LINE_HEIGHT)
      (DESIRED_TAB_LINE_HEIGHT): New macros.
      (enum face_id): Add TAB_BAR_FACE_ID and TAB_LINE_FACE_ID.
      (struct it): Add tab_line_p.
      (tab_bar_item_idx, tab_bar_item_image): New enums.
      (DEFAULT_TAB_BAR_LABEL_SIZE, DEFAULT_TAB_BAR_BUTTON_MARGIN)
      (DEFAULT_TAB_BAR_BUTTON_RELIEF, DEFAULT_TAB_BAR_IMAGE_HEIGHT):
      New constants.
      
      * src/dispnew.c (adjust_glyph_matrix): Use window_wants_tab_line.
      (shift_glyph_matrix): Add WINDOW_TAB_LINE_HEIGHT.
      (clear_current_matrices, clear_desired_matrices):
      Call clear_glyph_matrix on tab_bar_window.
      (blank_row): Add WINDOW_TAB_LINE_HEIGHT.
      (required_matrix_height): Change 2 to 3.
      (fake_current_matrices): Reset tab_line_p.
      (adjust_frame_glyphs_for_window_redisplay): Handle tab_bar_window.
      Add FRAME_TAB_BAR_HEIGHT and FRAME_TAB_BAR_LINES.
      (free_glyphs): Handle tab_bar_window.
      (update_frame): Handle tab_bar_window.
      (update_window): Handle row->tab_line_p.
      (scrolling_window): Change arg type from bool to int.
      Change header_line_p to tab_line_p.
      (buffer_posn_from_coords): Add window_wants_tab_line.
      (mode_line_string): Use MATRIX_TAB_LINE_ROW for part ON_TAB_LINE.
      
      * src/frame.c (frame_default_tab_bar_height): New internal variable.
      (adjust_frame_size): Handle tab_bar_window.
      (make_frame): Reset tab_bar_redisplayed, tab_bar_resized and
      last_tab_bar_item.
      (Ftab_bar_pixel_width): New function.
      (frame_parms): Add tab-bar-lines.
      (gui_figure_window_size): Add new arg tabbar_p.
      (syms_of_frame): Add Qtab_bar_size, Qupdate_frame_tab_bar,
      Qfree_frame_tab_bar, Qtab_bar_lines, Stab_bar_pixel_width.
      Add Qtab_bar_lines to frame_inhibit_implied_resize.
      (tab-bar-mode): New variable.
      
      * src/frame.h (GCALIGNED_STRUCT): Add tab_bar_window,
      desired_tab_bar_string, current_tab_bar_string.
      (GCALIGNED_STRUCT): Add tab_bar_items, last_tab_bar_item,
      minimize_tab_bar_window_p, tab_bar_redisplayed, tab_bar_resized,
      tab_bar_lines, tab_bar_height, n_tab_bar_rows, n_tab_bar_items.
      (fset_tab_bar_items, fset_tab_bar_window)
      (fset_current_tab_bar_string, fset_desired_tab_bar_string):
      New inlines.
      (FRAME_TAB_BAR_LINES, FRAME_TAB_BAR_HEIGHT): New macros.
      (FRAME_TOP_MARGIN, FRAME_TOP_MARGIN_HEIGHT):
      Use FRAME_TAB_BAR_LINES.
      
      * src/fringe.c (draw_fringe_bitmap_1, update_window_fringes):
      Add WINDOW_TAB_LINE_HEIGHT.
      
      * src/gtkutil.c (xg_frame_set_char_size): Add FRAME_TABBAR_WIDTH.
      (x_wm_set_size_hint): Add FRAME_TABBAR_WIDTH.
      
      * src/keyboard.c (read_char): Handle Qtab_bar.
      (kbd_buffer_get_event): Handle TAB_BAR_EVENT.
      (make_lispy_position): Add WINDOW_TAB_LINE_HEIGHT.
      Handle TAB_BAR_EVENT.
      (tab_bar_items_vector, tab_bar_item_properties, ntab_bar_items):
      New internal variables.
      (tab_bar_items, process_tab_bar_item, set_prop_tab_bar)
      (parse_tab_bar_item, init_tab_bar_items, append_tab_bar_item):
      New functions.
      (read_char_x_menu_prompt, read_key_sequence): Handle Qtab_bar.
      (tab-bar-separator-image-expression): New variable.
      
      * src/keymap.c (syms_of_keymap): Add Qtab_bar and Qtab_line.
      
      * src/menu.c (x_popup_menu_1, Fx_popup_dialog): Handle Qtab_bar.
      
      * src/termhooks.h (enum event_kind): Add TAB_BAR_EVENT.
      (GCALIGNED_STRUCT): Add change_tab_bar_height_hook.
      
      * src/w32fns.c (w32_frame_parm_handlers): Add w32_set_tab_bar_lines.
      
      * src/w32term.c (w32_draw_window_cursor): Add WINDOW_TAB_LINE_HEIGHT.
      
      * src/window.c (window_body_height): Add WINDOW_TAB_LINE_HEIGHT.
      (Fwindow_tab_line_height): New function.
      (coordinates_in_window): Use window_wants_tab_line with
      CURRENT_TAB_LINE_HEIGHT.
      (window_relative_x_coord): Add ON_TAB_LINE.
      (Fcoordinates_in_window_p): Add ON_TAB_LINE.
      (window_from_coordinates): Add new arg tab_bar_p.
      (Fwindow_line_height): Use window_wants_tab_line with
      WINDOW_TAB_LINE_HEIGHT.
      (Fwindow_lines_pixel_dimensions): Add WINDOW_TAB_LINE_HEIGHT.
      (make_window): Set tab_line_height to -1.
      (window_wants_tab_line): New function.
      (window_internal_height): Use window_wants_tab_line.
      (window_scroll_pixel_based): Add WINDOW_TAB_LINE_HEIGHT.
      (Frecenter): Set minimize_tab_bar_window_p to 1.
      (GCALIGNED_STRUCT): Add frame_tab_bar_lines and frame_tab_bar_height.
      (Fcurrent_window_configuration): Set frame_tab_bar_lines and
      frame_tab_bar_height.
      (set_window_scroll_bars): Add WINDOW_TAB_LINE_HEIGHT.
      (syms_of_window): Add Qtab_line_format and Swindow_tab_line_height.
      
      * src/window.h (GCALIGNED_STRUCT): Add tab_line_height.
      (WINDOW_TAB_BAR_P, WINDOW_TAB_LINE_HEIGHT, WINDOW_TAB_LINE_LINES):
      New macros.
      (WINDOW_TOP_EDGE_Y, WINDOW_BOTTOM_EDGE_Y, WINDOW_TAB_LINE_HEIGHT):
      Add WINDOW_TAB_BAR_P.
      
      * src/xdisp.c (window_box_height): Add window_wants_tab_line with
      MATRIX_TAB_LINE_ROW and CURRENT_TAB_LINE_HEIGHT.
      (pos_visible_p): Use window_wants_tab_line.
      Add WINDOW_TAB_LINE_HEIGHT.
      (get_glyph_string_clip_rects): Add WINDOW_TAB_LINE_HEIGHT.
      (get_phys_cursor_geometry): Add WINDOW_TAB_LINE_HEIGHT.
      (remember_mouse_glyph): Use MATRIX_TAB_LINE_ROW for part
      ON_TAB_LINE.
      (init_iterator): Use MATRIX_TAB_LINE_ROW for TAB_LINE_FACE_ID.
      Add WINDOW_TAB_LINE_HEIGHT.  Add window_wants_tab_line.
      (Fwindow_text_pixel_size): Add WINDOW_TAB_LINE_HEIGHT.
      (prepare_menu_bars): Call update_tab_bar.
      (update_tab_bar, build_desired_tab_bar_string)
      (display_tab_bar_line, tab_bar_height, Ftab_bar_height)
      (redisplay_tab_bar, tab_bar_item_info, get_tab_bar_item)
      (handle_tab_bar_click, note_tab_bar_highlight): New functions.
      (compute_window_start_on_continuation_line): Use window_wants_tab_line.
      (try_cursor_movement): Use window_wants_tab_line with
      CURRENT_TAB_LINE_HEIGHT.
      (redisplay_window): Use window_wants_tab_line with
      CURRENT_TAB_LINE_HEIGHT.
      (try_window_reusing_current_matrix): Use window_wants_tab_line
      with WINDOW_TAB_LINE_HEIGHT.
      (Fdump_tab_bar_row): New function.
      (compute_line_metrics): Add WINDOW_TAB_LINE_HEIGHT.
      (display_line): Use window_wants_tab_line.
      (display_mode_line): Set tab_line_p to true if face_id is
      TAB_LINE_FACE_ID.
      (Fformat_mode_line): Handle Qtab_line and Qtab_bar.
      (gui_clear_end_of_line): Add WINDOW_TAB_LINE_HEIGHT.
      (erase_phys_cursor): Use WINDOW_TAB_LINE_HEIGHT.
      (show_mouse_face): Use tab_bar_window.
      (note_mode_line_or_margin_highlight): Use MATRIX_TAB_LINE_ROW for
      area ON_TAB_LINE.
      (note_mouse_highlight): Call note_tab_bar_highlight,
      (expose_frame): Handle tab_bar_window.
      (syms_of_xdisp): Add Sdump_tab_bar_row and Stab_bar_height.
      (auto-resize-tab-bars, auto-raise-tab-bar-buttons)
      (tab-bar-border, tab-bar-button-margin, tab-bar-button-relief)
      (tab-bar-max-label-size): New variables.
      
      * src/xfaces.c (lookup_basic_face): Add TAB_LINE_FACE_ID and
      TAB_BAR_FACE_ID.
      (syms_of_xfaces): Define Qtab_bar and Qtab_line.
      
      * src/xfns.c (x_set_tab_bar_lines, x_change_tab_bar_height):
      New functions.
      (xic_set_statusarea): Add FRAME_TABBAR_TOP_HEIGHT.
      (frame_geometry): Add FRAME_TAB_BAR_HEIGHT and Qtab_bar_size.
      
      * src/xterm.c (x_draw_image_relief): Use tab_bar_button_relief.
      (x_draw_image_relief): Use TAB_BAR_FACE_ID.
      (handle_one_xevent): Handle tab_bar_window.
      (x_set_window_size_1): Add FRAME_TABBAR_WIDTH.
      (x_create_terminal): Set change_tab_bar_height_hook.
      
      * src/xterm.h (struct x_output): Add tabbar_top_height,
      tabbar_bottom_height, tabbar_left_width, tabbar_right_width
      tabbar_widget, tabbar_in_hbox, tabbar_is_packed.
      (FRAME_TABBAR_TOP_HEIGHT): Add FRAME_TABBAR_TOP_HEIGHT,
      FRAME_TABBAR_BOTTOM_HEIGHT, FRAME_TABBAR_HEIGHT,
      FRAME_TABBAR_LEFT_WIDTH, FRAME_TABBAR_RIGHT_WIDTH,
      FRAME_TABBAR_WIDTH.
      3e0ad29a
  24. 09 Jul, 2019 1 commit
    • Paul Eggert's avatar
      Use fewer locks when accessing stdio · f8ab9083
      Paul Eggert authored
      * src/alloc.c, src/bidi.c, src/emacs-module.c, src/pdumper.c:
      * src/regex-emacs.c, src/unexhp9k800.c, src/unexmacosx.c:
      * src/widget.c, src/xdisp.c, src/xselect.c, src/xterm.c:
      Include sysstdio.h instead of stdio.h, to avoid locking
      stdio streams in many cases.
      * src/alloc.c (test_setjmp):
      * src/bidi.c (bidi_dump_cached_states):
      * src/cm.c (calccost):
      * src/dispnew.c (init_display_interactive):
      * src/emacs.c (main):
      * src/image.c (convert_mono_to_color_image):
      * src/minibuf.c (read_minibuf_noninteractive):
      * src/nsfont.m (ns_descriptor_to_entity)
      (ns_dump_glyphstring):
      * src/nsterm.h (NSTRACE_MSG_NO_DASHES):
      * src/nsterm.m (ns_mouse_position)
      (sendEvent:, keyDown:, performDragOperation:):
      * src/pdumper.c (dump_fingerprint, print_paths_to_root_1):
      * src/print.c (debug_print):
      * src/regex-emacs.c (debug_putchar, print_fastmap)
      (print_partial_compiled_pattern, print_compiled_pattern)
      (print_double_string, regex_compile):
      * src/term.c (vfatal):
      * src/unexhp9k800.c (read_header):
      * src/unexmacosx.c (unexec_error):
      * src/widget.c (EmacsFrameInitialize):
      * src/xdisp.c (message_to_stderr, vmessage, dump_glyph_row)
      (Fdump_glyph_matrix, Fdump_frame_glyph_matrix, dump_glyph_string):
      * src/xfaces.c (Fdump_colors, Fdump_face):
      * src/xselect.c (x_clipboard_manager_error_2):
      * src/xterm.c (x_initialize):
      * src/xwidget.c (WEBKIT_FN_INIT):
      Prefer unlocked calls like fputs to locked calls like fprintf.
      * src/charset.c (read_hex):
      * src/cm.c (cmputc, cmcheckmagic):
      * src/dispnew.c (update_frame, update_frame_with_menu)
      (update_frame_1, Fsend_string_to_terminal, Fding)
      (bitch_at_user):
      * src/emacs.c (main, Fdump_emacs):
      * src/emacs-module.c (module_abort):
      * src/fileio.c (Fdo_auto_save):
      * src/image.c (slurp_file)
      (png_read_from_file, png_load_body, our_stdio_fill_input_buffer):
      * src/keyboard.c (record_char, kbd_buffer_get_event)
      (handle_interrupt):
      * src/lread.c (readbyte_from_stdio, read1):
      * src/minibuf.c (read_minibuf_noninteractive):
      * src/print.c (printchar_to_stream, strout)
      (Fredirect_debugging_output):
      * src/sysdep.c (reset_sys_modes, close_output_streams)
      (procfs_ttyname, procfs_get_total_memory):
      * src/term.c (tty_ring_bell, tty_send_additional_strings)
      (tty_set_terminal_modes, tty_reset_terminal_modes)
      (tty_update_end, tty_clear_end_of_line, tty_write_glyphs)
      (tty_write_glyphs_with_face, tty_insert_glyphs)
      (tty_menu_activate):
      * src/xfaces.c (Fx_load_color_file):
      Simplify by using ordinary calls like putc to explicitly-unlocked
      calls like putc_unlocked, since the ordinary calls are now
      unlocked anyway.
      * src/emacs.c (main, Fdump_emacs):
      * src/pdumper.c (Fdump_emacs_portable):
      Coalesce adjacent printfs.
      * src/nsterm.h: Include sysstdio.h as this file’s macros rely on it.
      * src/regex-emacs.c (print_compiled_pattern):
      Omit redundant fflush.
      * src/sysstdio.h: Include unlocked-io.h.
      (clearerr_unlocked, feof_unlocked, ferror_unlocked)
      (fflush_unlocked, fgets_unlocked, fputc_unlocked)
      (fputs_unlocked, fread_unlocked, fwrite_unlocked)
      (getc_unlocked, getchar_unlocked, putc_unlocked)
      (putchar_unlocked): Remove these macros; now done by unlocked-io.h.
      * src/xwidget.c: Include sysstdio.h.
      f8ab9083
  25. 27 Jun, 2019 1 commit
  26. 15 Jun, 2019 2 commits
  27. 07 Jun, 2019 1 commit
    • Paul Eggert's avatar
      Use machine pointer width for face hashes · de46a6a4
      Paul Eggert authored
      * src/dispextern.h (struct face):
      * src/xfaces.c (hash_string_case_insensitive, lface_hash)
      (cache_face, lookup_face): Use uintptr_t for face hashes
      instead of discarding the upper pointer bits on 64-bit machines.
      de46a6a4
  28. 20 May, 2019 2 commits
    • Alexander Gramiak's avatar
      Introduce Emacs_GC struct and typedef · b3d3c0da
      Alexander Gramiak authored
      * src/dispextern.h [HAVE_X_WINDOWS]: Alias Emacs_GC to XGCValues.
      [!HAVE_X_WINDOWS]: Define Emacs_GC, GCForeground, and GCBackground.
      
      * src/nsgui.h:
      * src/w32gui.h:Remove obsolete XGCValues, GC, GCForeground,
      GCBackground, and GCFont definitions.
      
      * src/w32fns.c (w32_make_gc): Do not set unused font field.
      
      * src/w32term.c: Use Emacs_GC over XGCValues. Do not set unused font
      field.
      
      * src/xfaces.c: Use Emacs_GC over XGCValues and GC.
      b3d3c0da
    • Alexander Gramiak's avatar
      Introduce Emacs_Color struct and typedef · c0e146e4
      Alexander Gramiak authored
      This avoids clashing with the XColor struct from X.
      
      * src/dispextern [HAVE_X_WINDOWS]: Define Emacs_Color alias.
      [!HAVE_X_WINDOWS]: Rename XColor compatibility struct to
      Emacs_Color. Remove unused fields.
      
      * src/gtkutil.c:
      * src/gtkutil.h:
      * src/image.c:
      * src/nsterm.h:
      * src/nsterm.m:
      * src/termhooks.h:
      * src/w32fns.c:
      * src/w32term.c:
      * src/w32term.h:
      * src/xfaces.c:
      * src/xfns.c:
      * src/xterm.h: Use Emacs_Color over XColor outside of X-specific
      sections.
      c0e146e4