1. 26 Apr, 2019 10 commits
    • Alexander Gramiak's avatar
      Add terminal hook defined_color_hook · 41e20ee4
      Alexander Gramiak authored
      * src/termhooks.h (defined_color_hook): New terminal hook.
      * src/xterm.c:
      * src/nsterm.m:
      * src/term.c:
      * src/w32term.c: Set defined_color_hook.
      * src/xfaces.c: Use defined_color_hook.
      (defined_color): Remove.
      * src/image.c: Remove redefinitions of x_defined_color, and use
    • Alexander Gramiak's avatar
      Rename generic x_* identifiers · a411517f
      Alexander Gramiak authored
      * src/image.c: Rename x_* procedures to image_*.
      * src/frame.c: Rename x_* procedures to gui_*. Rename
      xrdb_get_resource to gui_display_get_resource. Rename x_get_arg to
      gui_display_get arg.
      * src/frame.h: Rename can_x_set_window_size to can_set_window_size.
      * src/xfaces.c: Rename realize_x_face to realize_gui_face. Rename
      x_supports_face_attributes_p to gui_supports_face_attributes_p.
      * src/keyboard.c:
      * src/lisp.h:
      * src/nsterm.m:
      * src/w32term.c:
      * src/xterm.c: Rename x_get_keysym_name to get_keysym_name.
      * src/nsfns.c:
      * src/nsterm.m: Rename x_* procedures to ns_*.
      * src/w32fns.c:
      * src/w32term.c: Rename x_* procedures to w32_*.
      * src/termhooks.h (query_colors, get_focus_frame, focus_frame_hook)
      (frame_visible_invisible_hook, iconify_frame_hook)
      (set_window_size_hook, set_frame_offset_hook, set_frame_alpha_hook)
      (set_new_font_hook, set_bitmap_icon_hook, implicit_set_name_hook)
      (activate_menubar_hook, change_tool_bar_height_hook)
      (set_scroll_bar_default_height_hook, get_string_resource_hook): New
      terminal hooks to replace backend-specific x_* procedures.
      * src/dispextern.h (clear_under_internal_border): New RIF procedure.
      * src/alloc.c:
      * src/frame.c:
      * src/xdisp.c: Use FRAME_OUTPUT_DATA instead of FRAME_X_OUTPUT.
      * src/frame.c:
      * src/w32term.c:
      * src/w32fns.c: Use FRAME_NATIVE_WINDOW instead of FRAME_X_WINDOW.
    • Alexander Gramiak's avatar
      Add prefixes to some window system-dependent procedures · da9541dd
      Alexander Gramiak authored
      * src/nsterm.m (note_mouse_movement):
      * src/w32fns.c (construct_console_modifiers):
      * src/w32inevt.c:
      * src/w32term.c (frame_highlight, frame_unhighlight)
      (construct_mouse_click, construct_mouse_wheel, construct_drag_n_drop)
      (lispy_file_action, queue_notifications, note_mouse_movement):
      * src/w32term.h:
      * src/xterm.c (frame_highlight, frame_unhighlight)
      (construct_mouse_click, note_mouse_movement, get_current_wm_state):
      Add and use window system prefixes.
    • Alexander Gramiak's avatar
      Rename generic x_* procedures in xdisp.c · ff4e31fa
      Alexander Gramiak authored
      * src/xdisp.c (x_consider_frame_title, x_get_glyph_overhangs)
      (x_produce_glyphs, x_write_glyphs, x_insert_glyphs)
      (x_clear_end_of_line), x_fix_overlapping_area)
      (x_update_cursor, x_clear_cursor, x_clear_window_mouse_face)
      (x_draw_vertical_border, x_draw_right_divider, x_draw_bottom_divider)
      (x_intersect_rectangles): Rename with a gui prefix to indicate
      non-X-specific functionality.
      * src/composite.c:
      * src/dispextern.h:
      * src/nsfns.m:
      * src/nsterm.m:
      * src/w32fns.c:
      * src/w32term.c:
      * src/window.c:
      * src/xfns.c:
      * src/xterm.c: Use the renamed procedures.
    • Eli Zaretskii's avatar
      Avoid assertion violations in calculating line-number width · 86b6e910
      Eli Zaretskii authored
      * src/indent.c (line_number_display_width): Don't use the
      window's start marker if it belongs to a different buffer.
    • Stefan Monnier's avatar
      * lib-src/profile.c: Delete long-obsolete file · 82fc8ca6
      Stefan Monnier authored
      This auxiliary executable was used by the old `profile.el` which later
      inspired `elp.el`.  It was made obsolete when Emacs acquired native timers.
      * lib-src/Makefile.in (UTILITIES): Remove profile.
      (profile${EXEEXT}): Delete rule.
    • Michael Albinus's avatar
      Handle quoted file names in tramp-archive.el · cc70501a
      Michael Albinus authored
      * lisp/net/tramp-archive.el (tramp-archive-file-name-p):
      Suppress quoted file names.
      (tramp-archive-file-name-handler): Handle quoted file names.
      * lisp/net/tramp-compat.el (tramp-compat-file-name-quoted-p):
      Add optional TOP argument.
    • Eli Zaretskii's avatar
      Avoid compiler warning in dynlib.c · 83cdf7bf
      Eli Zaretskii authored
      * src/dynlib.c (dynlib_addr) [WINDOWSNT]: Rename the first
      argument to be consistent with other platforms.  Cast it to
      'void *' to avoid compiler warning as result of changing the
      function's signature as part of the last recent change in
    • Glenn Morris's avatar
      * test/lisp/progmodes/sql-tests.el (sql-tests-buffer-naming-harness): · a241e45b
      Glenn Morris authored
      Fix previous for TEST_LOAD_EL=no.
    • Alan Mackenzie's avatar
      Fix the formatting of '\' (including apostrophes) in CC Mode. · a0bb2588
      Alan Mackenzie authored
      In particular, the second apostrophe must also get font-lock-warning-face.
      * lisp/progmodes/cc-mode.el (c-parse-quotes-before-change)
      (c-parse-quotes-after-change): Add cond arms to recognize and handle the
      anomalous construct '\'.  Correct the handling of c-new-BEG in
  2. 25 Apr, 2019 15 commits
    • Glenn Morris's avatar
      * test/lisp/progmodes/sql-tests.el (sql-tests-buffer-naming-harness): · 80822917
      Glenn Morris authored
      Skip if no sqlite program.
    • Stephen Leake's avatar
      Fix Bug#33618; define search path variables for grep, byte-compile · 1486eadf
      Stephen Leake authored
      * etc/NEWS: Mention new variables.
      * lisp/emacs-lisp/bytecomp.el (emacs-lisp-compilation-search-path): New.
      * lisp/progmodes/grep.el (grep-search-path): New.
    • Paul Eggert's avatar
      Minor tweaks to recent UBSan-related fix · 83b0fc30
      Paul Eggert authored
      * src/alloc.c: No need to include stdalign.h; it’s pervasive.
      (GC_STRING_OVERRUN_COOKIE_SIZE): Align to sdata’s alignment,
      so that the code works even if alignof (sdata) exceeds 8.
      Don’t require the cookie size to be 8, as this overly fattens
      32-bit platforms and one DEADBEEF should be enough.
      (GC_STRING_EXTRA): Omit now-unnecessary ‘verify’.
      (allocate_string_data): Omit unnecessary cast.
    • Paul Eggert's avatar
      Port to Oracle Developer Studio 12.6 · 69947311
      Paul Eggert authored
      This compiler is a bit pickier about checking conformance to
      the C standard, ranging from syntax trivia (no extra ";" at
      the top level) to portability trivia (warnings re conversion
      between function and data pointers) to more-important stuff
      like lack of support for some __attribute__ usages.
      * src/dynlib.c (dynlib_addr): First argument is a function
      pointer, not a data pointer.  All callers changed.
      * src/emacs-module.c (module_function_address):
      Return module_funcptr, not void *.  All uses changed.
      * src/lisp.h (module_funcptr) [HAVE_MODULES]: New type.
      * src/lread.c (union ieee754_double): Don’t assume the usual
      semantics for converting signed to unsigned int when initializing
      a bitfield, as the Oracle compiler complains and the C standard
      is unclear.
      * src/pdumper.c (ALLOW_IMPLICIT_CONVERSION): Make it clearer
      that -Wsign-conversion is disabled everywhere in this file.
      (dump_trace, dump_tailq_prepend, dump_tailq_append):
      Don’t assume __attribute__.
      (dump_object_self_representing_p): Don’t disable conversion
      warnings; it’s not needed here.
      (DEFINE_FROMLISP_FUNC): Avoid possible signal in integer
      conversion from unsigned to signed.
      (DEFINE_FROMLISP_FUNC, finish_dump_pvec): Avoid warning about
      unreachable statements on platforms not supporting the
      (intmax_t_from_lisp, intmax_t_to_lisp, dump_off_from_lisp)
      (dump_off_to_lisp, dump_emacs_reloc_immediate_lv)
      (dump_emacs_reloc_immediate_int, dump_emacs_reloc_immediate_bool):
      Omit stray semicolon that violates C standard.
      (dump_metadata_for_pdumper): Add cast to pacify compiler complaining
      about conversion from function pointer to data pointer.
      (Fdump_emacs_portable): Do not use CALLN to call a function
      with zero arguments, as C99 prohibits empty initializers.
      * src/xdisp.c (syms_of_xdisp): Do not nest calls to pure_list,
      to work around a bug in Oracle Developer Studio 12.6.
    • Stefan Monnier's avatar
    • Philipp Stephani's avatar
      Make sure that ‘sdata’ objects in ‘sblock’ objects are aligned. · fe6c507f
      Philipp Stephani authored
      Issue found by Clang’s UBSan.
      * src/alloc.c (GC_STRING_OVERRUN_COOKIE_SIZE): Increase to 8.
      (string_overrun_cookie): Extend accordingly.
      (GC_STRING_EXTRA): Ensure that it’s properly aligned for ‘sdata’.
      (allocate_string_data): Verify that ‘sdata’ blocks remain aligned.
    • Stefan Monnier's avatar
      Use lexical-binding by default for M-:, --eval, and *scratch* · e08e0880
      Stefan Monnier authored
      * lisp/startup.el (command-line): Default to lexical-binding in *scratch*.
      (normal-no-mouse-startup-screen, command-line-1):
      Use startup--get-buffer-create-scratch.
      * lisp/simple.el (eval-expression):
      * lisp/server.el (server-eval-and-print): Use lexical-binding to
      evaluate the expression.
      (server-execute): Use startup--get-buffer-create-scratch.
      * lisp/ielm.el (inferior-emacs-lisp-mode): Default to lexical-binding.
    • Alan Mackenzie's avatar
      Restore fontification of delimiters of multiline CC Mode strings. · 0c2d921a
      Alan Mackenzie authored
      E.g., on typing the closing delimiter of a string continued onto a second
      line, the opening delimiter retained its font-lock-warning-face.
      * lisp/progmodes/cc-defs.el (c-c++-raw-string-opener-re)
      (c-c++-raw-string-opener-1-re): New constants.
      (c-sub-at-c++-raw-string-opener, c-at-c++-raw-string-opener): New macros.
      * lisp/progmodes/cc-engine.el (c-raw-string-pos)
      (c-depropertize-raw-strings-in-region, c-after-change-unmark-raw-strings):
      Replace uses of open-coded raw string regexps by the new constants and macros
      in cc-defs.el.
      * lisp/progmodes/cc-fonts.el (c-font-lock-raw-strings): Ditto
      * lisp/progmodes/cc-mode.el (c-before-change-check-unbalanced-strings): Set
      c-new-BEG to the beginning of the string when we encounter its closing ".
      When not in a raw string, but in a string, clear syntax-table properties from
      its delimiters and set c-new-BEG/END to its limits.
      (c-after-change-mark-abnormal-strings): When applying syntax-table properties
      to string delimiters, also set c-new-BEG/END to ensure subsequent
    • Stephen Berman's avatar
      Make wdired-mode ignore ls file indicators · 6d8e0fc5
      Stephen Berman authored
      * lisp/wdired.el (wdired--restore-dired-filename-prop): When
      dired-listing-switches includes "F" or "classify", don't treat
      appended indicator characters as part of the file name (bug#34915).
      * test/lisp/wdired-tests.el (wdired-test-bug34915): New test.
    • Paul Eggert's avatar
      Port emacsclient euidaccess to Solaris 10 · 30030945
      Paul Eggert authored
      Without this fix, linking emacsclient fails with ‘Undefined
      symbol eaccess’ on Solaris 10 sparc.
      * lib-src/Makefile.in (LIB_EACCESS): New macro.
      (emacsclient${EXEEXT}, emacsclientw${EXEEXT}): Use it.
    • Alan Mackenzie's avatar
      Fix some corner cases in the recognition of C++ raw strings. · efb8921a
      Alan Mackenzie authored
      These are where changing the identifier in a raw string delimiter causes
      different delimiters to match eachother.
      * lisp/progmodes/cc-engine.el (c-raw-string-end-delim-disrupted): New
      (c-before-change-check-raw-strings): Use new variable.
      (c-after-change-unmark-raw-strings): When typing into an opening delimiter or
      altering its close delimiter causes the opening delimiter to match a later
      closing delimiter, clear all syntax-table char properties from the opening
      delimiter onwards, and set c-new-END to point max.  Also, when changing a
      closing delimiter, check whether its new value matches a previously open
      opening delimiter earlier in the buffer, and amend the syntax-table text
      properties appropriately.
    • Michael R. Mauger's avatar
      * lisp/progmodes/sql.el · a1386fa6
      Michael R. Mauger authored
      (sql-is-sqli-buffer-p): New function.
      (sql-generate-unique-sqli-buffer-name): Refactor and use it.
      (sql-product-interactive): Simplify name logic.
      * test/lisp/progmodes/sql-tests.el
      (sql-tests-placeholder-filter-harness): New macro.
      (sql-tests-placeholder-filter-period): Refactored tests and use macro.
      (sql-tests-buffer-naming-harness): New macro.
      (sql-tests-buffer-naming-existing): New tests.
    • Paul Eggert's avatar
      Improve port to platforms lacking euidaccess (Bug#35406) · 2bf95739
      Paul Eggert authored
      * lib-src/emacsclient.c (set_local_socket):
      Use faccessat with AT_EACCESS instead of using euidaccess.
      * admin/merge-gnulib, lib/gnulib.mk.in, m4/gnulib-comp.m4:
      Revert previous change.
    • Paul Eggert's avatar
      Port to platforms lacking euidaccess (Bug#35406) · 445713f5
      Paul Eggert authored
      * admin/merge-gnulib (GNULIB_MODULES): Add euidaccess.
      * lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
    • Paul Eggert's avatar
      Merge from gnulib · 41cc2b64
      Paul Eggert authored
  3. 24 Apr, 2019 15 commits
    • Mark Oteiza's avatar
      Fix some strings in wordstar mode · 4494789d
      Mark Oteiza authored
      * lisp/obsolete/ws-mode.el (ws-search-direction, ws-error, ws-end-block):
      (ws-mark-word, ws-undo, ws-goto-last-cursorposition, ws-last-error):
      (ws-kill-bol): Remove full stops from message string endings.  Minor
      formatting tweaks.
    • Mark Oteiza's avatar
      Change WordStar emulation into a minor mode (Bug#35148) · cb17e9c4
      Mark Oteiza authored
      * lisp/obsolete/ws-mode.el: Turn on lexical-binding.  Update commentary.
      (wordstar): New custom group.
      (wordstar-mode-lighter): New custom variable.
      (wordstar-mode): Declare with define-minor-mode.
      (turn-on-wordstar-mode): New function.
      (global-wordstar-mode): New function.  Use previous new function.
    • Dmitry Gutov's avatar
      Fix project-find-regexp search for '--' · f0e026a8
      Dmitry Gutov authored
      * lisp/progmodes/project.el (project--find-regexp-in-files):
      Add an explicit '-e' before the pattern.  Fixing the ability to
      search for '--'.  Reported by Juri Linkov <juri@linkov.net>.
    • Juri Linkov's avatar
      * lisp/windmove.el (windmove-display-in-direction): Support consecutive calls · 62072bad
      Juri Linkov authored
      Remember action and delete it from display-buffer-overriding-action afterwards
    • Philipp Stephani's avatar
      Unbreak build when building without GMP support. · 4eb7f9ef
      Philipp Stephani authored
      Add support for a new preprocessor macro EMACS_MODULE_HAVE_MPZ_T to
      emacs-module.h.  If this macro is defined, assume that mpz_t is
      already defined and don’t include gmp.h.
      Don’t document the new macro for now, as it’s unclear whether we want
      to support this in modules outside the Emacs tree.
      * src/emacs-module.h.in: Allow user to prevent inclusion of gmp.h.
      * src/emacs-module.c: Use mini-gmp if GMP is unavailable.  Don’t
      include gmp.h.
      * src/lisp.h: Don’t require gmp.h.  It’s not needed for lisp.h.
      * test/Makefile.in (GMP_LIB, GMP_OBJ): New variables.
      ($(test_module)): Use them.
      * test/data/emacs-module/mod-test.c: Use mini-gmp if GMP is unavailable.
    • Philipp Stephani's avatar
      Add missing GMP library to test module. · 553220fc
      Philipp Stephani authored
      * test/Makefile.in (GMP_LIB): Define variable.
      ($(test_module)): Use it.
    • Philipp Stephani's avatar
      Move definition of Lisp_Module_Function to emacs-module.c. · d2e1bac4
      Philipp Stephani authored
      * src/lisp.h: Remove include of emacs-module.h.  Remove definition
      of Lisp_Module_Function structure.
      * src/emacs-module.c (module_function_documentation)
      (module_function_address): New accessor functions for module function
      (emacs_subr, struct Lisp_Module_Function): Move from lisp.h.
      * src/print.c (print_vectorlike):
      * src/doc.c (Fdocumentation): Use the new accessor functions.
    • Paul Eggert's avatar
      Simplify thread initialization and GC · 4c90369d
      Paul Eggert authored
      * src/lisp.h (PVECHEADERSIZE): New macro.
      * src/search.c (syms_of_search): No need to initialize or
      staticpro last_thing_searched or saved_last_thing_searched, as
      the thread code arranges for initialization and GC.
      * src/thread.c (main_thread): Initialize statically.
      (Fmake_mutex, Fmake_condition_variable, Fmake_thread):
      Use ALLOCATE_ZEROED_PSEUDOVECTOR rather than zeroing by hand.
      (mark_one_thread): No need to mark Lisp_Object members.
      (init_main_thread, init_threads_once): Remove.  All uses removed.
    • Eli Zaretskii's avatar
      Regenerate src/emacs-module.h when emacs-module.h.in changes · c5358e83
      Eli Zaretskii authored
      * Makefile.in (CONFIG_STATUS_FILES_IN): Add
    • Eli Zaretskii's avatar
      Fix rescheduling timers after suspension · 2b3c0ae5
      Eli Zaretskii authored
      * lisp/emacs-lisp/timer.el (timer-event-handler): Fix the
      comparison between next invocation time and current time.
    • Eli Zaretskii's avatar
      Fix posn-at-point with line-number display and display properties · f6e6c174
      Eli Zaretskii authored
      * src/xdisp.c (pos_visible_p): Account for line-number display
      width when CHARPOS is covered by display property that begins
      at the 2nd display element of a screen line.  (Bug#35404)
    • Eli Zaretskii's avatar
      Fix a typo in a recent commit · a2e9d3e3
      Eli Zaretskii authored
      * src/timefns.c (timespec_to_lisp): Fix a typo in function
    • Philipp Stephani's avatar
    • Philipp Stephani's avatar
      Clarify rounding mode when converting to struct timespec. · c4bacb12
      Philipp Stephani authored
      * doc/lispref/internals.texi (Module Values): Clarify that the
      truncation is towards negative infinity.
      * test/data/emacs-module/mod-test.c (Fmod_test_nanoseconds): Add test
      (emacs_module_init): Define it.
      * test/src/emacs-module-tests.el (mod-test-nanoseconds): New unit test.
    • Philipp Stephani's avatar
      Fix return type of make_time. · 534c33cf
      Philipp Stephani authored
      make_time is documented to return a (TICKS . HZ) pair, so we can’t use
      make_lisp_time.  Introduce a new conversion function instead.
      * src/emacs-module.c (module_make_time): Use timespec_to_lisp to
      correct return type.
      * src/timefns.c (timespec_to_lisp): New function.
      (make_lisp_time): Use it.
      * test/src/emacs-module-tests.el (mod-test-add-nanosecond/valid):
      Check return type.