1. 24 Jul, 2019 13 commits
    • Paul Eggert's avatar
      Port double-slash test to z/OS · 50126f20
      Paul Eggert authored
      * admin/merge-gnulib (GNULIB_MODULES): Add double-slash-root.
      Emacs was already using this Gnulib module indirectly, so this
      is merely noting that there is now a direct dependency.
      * lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
      * src/fileio.c (search_embedded_absfilename):
    • Paul Eggert's avatar
      Update from Gnulib · f2cc674e
      Paul Eggert authored
      This incorporates:
      2019-07-16 update-copyright: Make it work again
      * build-aux/config.guess, build-aux/update-copyright:
      Copy from Gnulib.
    • Sam Steingold's avatar
      Avoid potential extensive verbosity in gnus-summary-browse-url · fd86149b
      Sam Steingold authored
      * lisp/wid-edit.el (widget-move): Accept suppress-echo argument.
      * lisp/gnus/gnus-sum.el (gnus-collect-urls): Use it.
    • Lars Ingebrigtsen's avatar
      Use input-decode-map in the manuals · 7da926ce
      Lars Ingebrigtsen authored
      * doc/misc/edt.texi (Changes):
      * doc/emacs/custom.texi (Terminal Init): Use input-decode-map
      instead of local-function-key-map, according to Stefan Monnier.
    • Mattias Engdegård's avatar
      Use destructuring in filenotify backend handlers · 084e8381
      Mattias Engdegård authored
      * lisp/filenotify.el (file-notify--callback-inotify)
      (file-notify--callback-kqueue, file-notify--callback-w32notify)
      (file-notify--callback-gfilenotify, file-notify--callback): Use cl-defun.
    • Mattias Engdegård's avatar
      Use defstruct instead of list for filenotify pending-rename · 27f25d73
      Mattias Engdegård authored
      * lisp/filenotify.el (file-notify--rename): New defstruct.
      (file-notify--pending-rename): Changed type.
      (file-notify--handle-event): Adapt to new type.
    • Mattias Engdegård's avatar
      Refactor the callback half of filenotify.el · 5a80a9de
      Mattias Engdegård authored
      Split callback code into backend-specific and general parts.  Refactor
      pending event, which is always a rename, to include relevant
      information only.  General clean-up.
      * lisp/filenotify.el (file-notify--pending-event): Rename.
      (file-notify--event-watched-file, file-notify--event-file-name)
      (file-notify--event-file1-name, file-notify--event-cookie): Remove.
      (file-notify--rename, file-notify--expand-file-name)
      (file-notify--callback-inotify, file-notify--callback-kqueue)
      (file-notify--callback-w32notify, file-notify--callback-gfilenotify)
      (file-notify--call-handler, file-notify--handle-event): New.
      (file-notify-callback): Split general parts into
      file-notify--call-handler and file-notify--handle-event.
      (file-notify--add-watch-inotify, file-notify--add-watch-kqueue)
      (file-notify--add-watch-gfilenotify): Use new callbacks.
    • Mattias Engdegård's avatar
      Don't use internal filenotify function in test · 3a764848
      Mattias Engdegård authored
      * test/lisp/filenotify-tests.el
      (file-notify--test-file, file-notify--test-add-watch): New.
      (file-notify--test-event-test, file-notify--test-event-handler)
      (file-notify-test02-rm-watch, file-notify-test03-events)
      (file-notify-test05-file-validity, file-notify-test07-many-events)
      (file-notify-test08-backup, file-notify-test09-watched-file-in-watched-dir):
      Avoid using the internal `file-notify--event-watched-file' so that it
      can be removed from filenotify.el.
      Instead, pass the file name to the callback as an extra argument;
      use `file-notify--test-add-watch' instead of `file-notify-add-watch'.
    • Mattias Engdegård's avatar
      Local definitions of accessors only used in test · 5cfd8c50
      Mattias Engdegård authored
      * test/lisp/filenotify-tests.el (file-notify--test-event-file)
      (file-notify--test-event-file1, file-notify--test-event-test)
      Define accessors locally, so that they can be removed from filenotify.el.
    • Thomas Fitzsimmons's avatar
      soap-client: Do not double-encode duplicate types · 52e202a5
      Thomas Fitzsimmons authored
      * lisp/net/soap-client.el (soap-encode-xs-complex-type): Eliminate
      duplicates from type hierarchy before encoding values.
    • Thomas Fitzsimmons's avatar
      soap-client: Encode simple type attributes · c92cccb4
      Thomas Fitzsimmons authored
      * lisp/net/soap-client.el (soap-encode-xs-simple-type-attributes):
      Encode simple type attributes.
    • Thomas Fitzsimmons's avatar
      soap-client: Allow attributes and a value · a255caf1
      Thomas Fitzsimmons authored
      * lisp/net/soap-client.el (soap-encode-xs-basic-type): Allow
      attributes and a value to be specified in the same element.
    • Andreas Schwab's avatar
  2. 23 Jul, 2019 15 commits
    • Juri Linkov's avatar
      Customizable char-fold with char-fold-symmetric, char-fold-include (bug#35689) · 376f5df3
      Juri Linkov authored
      * doc/emacs/search.texi (Lax Search): Document
      char-fold-symmetric, char-fold-include, char-fold-exclude.
      * lisp/char-fold.el (char-fold--default-include)
      (char-fold--default-exclude, char-fold--default-symmetric)
      (char-fold--previous): New defconsts.
      (char-fold-include, char-fold-exclude, char-fold-symmetric):
      New defcustoms.
      (char-fold-make-table): Use them.
      (char-fold-update-table): New function called at top-level.
      * test/lisp/char-fold-tests.el (char-fold--test-no-match-exactly)
      (char-fold--permutation): New functions.
      (char-fold--test-with-customization): New tests.
    • Paul Eggert's avatar
      Merge pdumper.c and alloc.c builtin symbol tests · a48726eb
      Paul Eggert authored
      * src/alloc.c (c_symbol_p): Move from here ...
      * src/lisp.h (c_symbol_p): ... to here, and make it more portable
      to hypothetical platforms where pointers are wider than ptrdiff_t.
      * src/pdumper.c (dump_builtin_symbol_p): Use c_symbol_p.
    • Lars Ingebrigtsen's avatar
      Make "Compiling" in the mode line a clickable command · 3479ec73
      Lars Ingebrigtsen authored
      * lisp/progmodes/compile.el (compilation-goto-in-progress-buffer):
      New command.
      (compilation-in-progress): Don't put the in-progress mode-line
      marker among the minor modes (because it's not a minor mode), and
      add a command that allows you to switch to the in-progress
      compilation buffer (bug#27252).
    • Robert Pluim's avatar
      Follow decomposition chains when constructing char-fold-table · f9337bc3
      Robert Pluim authored
      * lisp/char-fold.el (char-fold-make-table): Decompose the
      decomposition of each character, adding equivalences to the original
      character, until no more decompositions are left.
    • Lars Ingebrigtsen's avatar
      Refer to local-function-key-map in various manuals · 9a83ecb6
      Lars Ingebrigtsen authored
      * doc/misc/viper.texi (Key Bindings):
      * doc/misc/efaq.texi (X key translations for Emacs)
      (No Escape key):
      * doc/misc/edt.texi (Changes):
      * doc/emacs/msdos-xtra.texi (MS-DOS Keyboard):
      * doc/emacs/custom.texi (Terminal Init): Refer to
      local-function-key-map instead of function-key-map, since the
      latter isn't supposed to be changed (bug#27490).
    • Paul Eggert's avatar
      Improve pdumper doc; say unexec is deprecated · 8dd5b6ea
      Paul Eggert authored
      Say that pdumping cannot redump unless -batch is used.  Say that
      the traditional unexec dumping method is by default not available,
      and is deprecated.  Don't call dump files "portable", as dump files
      are not any more portable than the Emacs executables themselves.
      Just call them "dump files".  Similar, prefer "portable dumper"
      (since the dumper code is portable) to "portable dumping" (since
      the dump file is not).  Be more systematic about calling them
      "dump files" instead of "dumped images" or whatnot.
    • Stefan Monnier's avatar
    • Alan Mackenzie's avatar
      Fix problems in CC Mode with " being entered into a comment at EOB. · 6bd817ee
      Alan Mackenzie authored
      * lisp/progmodes/cc-engine.el (c-full-lit-near-cache): Amend the definition
      such that an element's END element will be nil if the pertinent literal is
      open at EOB.
      (c-full-pp-to-literal): Before setting the aforementioned END element, check
      that we're no longer in a literal.  (c-literal-limits): When
      c-full-pp-to-literal returns a list with a nil END element, replace this by
      (point-max) to keep the interface of c-literal-limits unchanged.
      * lisp/progmodes/cc-mode.el (c-after-change-mark-abnormal-strings): Having
      found a string quote, check it is not inside an unterminated comment (i.e. one
      at EOB).
    • Paul Eggert's avatar
      Support "%x" etc. formats on more floats · dfb0ba79
      Paul Eggert authored
      * doc/lispref/strings.texi (Formatting Strings): Document this.
      * src/editfns.c (styled_format): Support %o, %x, and %X on
      finite floats less than zero or greater than UINTMAX_MAX.
      * test/src/editfns-tests.el (format-%x-large-float)
      (read-large-integer, format-%o-negative-float):
      Adjust tests to match extended behavior.
      Rename the latter test from format-%o-invalid-float,
      since the float is no longer invalid.
      * test/src/editfns-tests.el (format-%x-large-float)
      (read-large-integer): Test this.
    • Paul Eggert's avatar
      Tweak performance of cmpfn_profiler · 56a3e4a5
      Paul Eggert authored
      * src/profiler.c (cmpfn_profiler):
      Improve performance when VECTORP (bt1) && EQ (bt1, bt2).
    • Paul Eggert's avatar
      Avoid overexposing fixnums for hash codes · f378ed1a
      Paul Eggert authored
      Following a suggestion by Stefan Monnier in:
      * doc/lispref/hash.texi (Creating Hash, Defining Hash):
      * src/fns.c (Fsxhash_eq, Fsxhash_eql, Fsxhash_equal, Fmake_hash_table):
      Don’t insist that hash codes be fixnums, reverting
      the recent doc changes to the contrary.
      * src/bytecode.c (exec_byte_code): Special-case only the eq case,
      as the others aren’t worth tuning now that we treat bignum hashes
      like fixnums.
      * src/fns.c (hashfn_user_defined): If the hash code is a bignum,
      reduce its hash down to a fixnum.
    • Stefan Kangas's avatar
      Document normal usage in ibuffer.el · 97477eda
      Stefan Kangas authored
      * lisp/ibuffer.el (Commentary): Document normal usage.  (Bug#5608)
      Remove redundant :group args.
    • Paul Eggert's avatar
      Do not pdump user-defined hashtabs · 3f4a9a5a
      Paul Eggert authored
      * src/pdumper.c (dump_hash_table_stable_p):
      Signal an error if a hash table has user-defined tests (Bug#36769).
      * src/fns.c (hashfn_user_defined): Now extern.
    • Paul Eggert's avatar
      Keep track of consing while GC’s inhibited · c34496d0
      Paul Eggert authored
      * src/alloc.c (allow_garbage_collection): Do not discard the count
      of consing that occurred while GC was inhibited.
      Problem and initial fix reported by Pip Cet in:
    • Pip Cet's avatar
      Avoid byte compiler warning for subr.el · f9443e2a
      Pip Cet authored
      * lisp/subr.el (number-sequence): Simplify to avoid byte compiler warning.
  3. 22 Jul, 2019 9 commits
    • Paul Eggert's avatar
      Remove no-longer-needed integer overflow code · c63e7f1b
      Paul Eggert authored
      * lisp/calculator.el (calculator-number-to-string):
      Use truncate, not calculator-truncate, since integer
      overflow cannot occur here.
      * lisp/calendar/cal-persia.el (calendar-persian-year-from-absolute):
      * lisp/gnus/gnus-agent.el (gnus-agent-read-article-number):
      * lisp/gnus/nnmaildir.el (nnmaildir--group-maxnum)
      * lisp/scroll-bar.el (scroll-bar-scale):
      * lisp/simple.el (beginning-of-buffer, end-of-buffer):
      Simplify, now that integer overflow cannot occur.
    • Eric Abrahamsen's avatar
      Adjust regexp for parsing IMAP header response · b904a238
      Eric Abrahamsen authored
      * lisp/gnus/nnimap.el (nnimap-transform-headers): The first header
      might have no value, or a continuation header might start with a
    • Stefan Monnier's avatar
      * lisp/progmodes/opascal.el: Tweak code to ease edebugging · 33ed5718
      Stefan Monnier authored
      (opascal-strings): Inline in its sole use.
      (opascal-save-excursion): Add Edebug spec.
      (opascal-is): Remove.  Use `memq` directly instead.
      (opascal--in): New pcase pattern.
      (opascal-literal-end-pattern): Remove unused function.
      (opascal--scan-non-whitespace-backward): New macro.
      (opascal-block-start, opascal-else-start, opascal-is-use-clause-end)
      (opascal-previous-indent-of, opascal-section-indent-of)
      (opascal-enclosing-indent-of): Use it.
      (opascal-corrected-indentation): Presume we're already at first token.
      (opascal-indent-line): Use indent-line-to.
      (opascal-new-comment-line): Declare obsolete.
      (opascal-mode-map): Keep the default M-j binding instead.
    • Eric Abrahamsen's avatar
      Fix case of IMAP Noselect flag · 3f571bdd
      Eric Abrahamsen authored
      * lisp/gnus/nnimap.el (nnimap-get-groups): We should be looking for
      %Noselect, not %NoSelect.
    • Mattias Engdegård's avatar
      Remove some obsolete integer overflow handling · 7e294d55
      Mattias Engdegård authored
      * lisp/subr.el (number-sequence):
      * lisp/org/org-gnus.el (org-gnus-follow-link):
      * lisp/ls-lisp.el (ls-lisp-insert-directory):
      Remove dead code guarding against integer overflow.
    • Stefan Monnier's avatar
      * lisp/progmodes/opascal.el: Allow inline `var` decl in `for` (bug#36348) · 87ad8a11
      Stefan Monnier authored
      (opascal-enclosing-indent-of): Ignore decls "neutered" by delimiter.
    • Mattias Engdegård's avatar
      Make tramp test regexp more robust · d0eeb62c
      Mattias Engdegård authored
      * test/lisp/net/tramp-tests.el (tramp-test17-insert-directory):
      Match a greater variety of human-readable size values.
    • Michael Albinus's avatar
      Support history files in remote shells (Bug#36742) · 7f95d2d4
      Michael Albinus authored
      * doc/emacs/misc.texi (Shell Ring): Mention history file for
      remote shells.
      * lisp/shell.el (shell--start-prog): New buffer-local variable.
      (shell): Set it.
      (shell-mode): Handle history file for remote shells. (Bug#36742)
    • Martin Rudalics's avatar
      Handle persistence of windows' scroll bar and fringes settings (Bug#36193) · 8e0ebb9a
      Martin Rudalics authored
      * doc/lispref/display.texi (Fringe Size/Pos): Document new
      argument PERSISTENT of 'set-window-fringes'.
      (Scroll Bars): Document new argument PERSISTENT of
      'set-window-scroll-bars'.  Mention that HORIZONTAL-TYPE must
      be 'bottom' to show a horizontal scroll bar on mini windows.
      * lisp/window.el (window-min-pixel-height): For mini windows the
      minimum height is one line.
      (window--min-size-1): Use value returned by
      'window-min-pixel-height' when dealing with mini windows.
      (window--resize-mini-window): Try to handle horizontal scroll
      bars and size restrictions more accurately.
      (window--state-put-2): Handle persistence of scroll bar
      * src/frame.c (make_frame): Allow horizontal scroll bars in
      mini windows.
      (adjust_frame_size): Drop PIXELWISE argument in
      'resize_frame_windows' calls.
      * src/window.c (set_window_buffer): Don't override WINDOW's
      scroll bar and fringe settings when marked as persistent.
      (resize_frame_windows): Drop fourth argument PIXELWISE - SIZE
      is always specified in terms of pixels.  Try to handle height
      of mini windows more accurately.
      (grow_mini_window, shrink_mini_window): Use body height of
      mini window when calculating expected height change.  Take
      horizontal scroll bars into account.
      (struct saved_window): Two new members to handle persistence
      of window fringes and scroll bars.
      (Fset_window_configuration, save_window_save): Handle
      persistence of fringes and scroll bars.
      (set_window_fringes, set_window_scroll_bars): New arguments
      PERSISTENT.  Make dimension checks more accurate.
      (Fset_window_fringes): New argument PERSISTENT.
      (Fwindow_fringes, Fwindow_scroll_bars): Add PERSISTENT to
      return values.
      (Fset_window_scroll_bars): New argument PERSISTENT.  In
      doc-string mention that 'bottom' must be specified to get a
      horizontal scroll bar in mini windows.
      (compare_window_configurations): Add checks for persistence of
      fringes and scroll bars.
      * src/window.h (struct window): New boolean slots
      'fringes_persistent' and 'scroll_bars_persistent'.
      (WINDOW_HAS_HORIZONTAL_SCROLL_BAR): Allow horizontal scroll bars
      for mini windows.
      (resize_frame_windows): Remove fourth argument of
      'resize_frame_windows' in external declaration.
      * src/xdisp.c (resize_mini_window): Use box text height to
      tell whether mini window height changed.
      (set_horizontal_scroll_bar): Set mini window's horizontal
      scroll bar when its type is specified as 'bottom'.
      * etc/NEWS: Mention new options for 'set-window-fringes' and
  4. 21 Jul, 2019 3 commits
    • Alan Mackenzie's avatar
      Implement C++ Mode attributes. This fixes bug #36650. · 5ccaee4b
      Alan Mackenzie authored
      * lisp/progmodes/cc-engine.el (c-looking-at-c++-attribute)
      (c-enclosing-c++-attribute, c-slow-enclosing-c++-attribute): New macro and
      (c-crosses-statement-barrier-p): Add [ into skip-chars for C++ Mode, and use
      it to detect and skip over an attribute whilst scanning forward.
      (c-sws-lit-type): Use the new value 'attribute.
      (c-invalidate-sws-region-before): Put a save-match-data around this function.
      Detect and handle an enclosing attribute at either END or BEG.
      (c-invalidate-sws-region-after): Handle C++ attributes.
      (c-forward-sws, c-backward-sws): Handle C++ attributes.
      * lisp/progmodes/cc-mode.el (c-fl-decl-end): Detect and handle point being
      inside a C++ attribute.
    • Paul Eggert's avatar
      Fix lifetime error in previous patch · 5d4dd552
      Paul Eggert authored
      Problem reported by Pip Cet in:
      * src/alloc.c (inhibit_garbage_collection): Use new function.
      (allow_garbage_collection): Accept intmax_t, not pointer.
      * src/eval.c (default_toplevel_binding, do_one_unbind)
      (backtrace_eval_unrewind, Fbacktrace__locals, mark_specpdl):
      (record_unwind_protect_excursion): New function.
      * src/lisp.h (enum specbind_tag): New constant SPECPDL_UNWIND_INTMAX.
      (union specbinding): New member unwind_intmax.
    • Paul Eggert's avatar
      Speed up maybe_gc when GC is inhibited · d02c2f7f
      Paul Eggert authored
      * src/alloc.c (allow_garbage_collection)
      (inhibit_garbage_collection): Temporarily bump
      consing_until_gc, to improve performance of maybe_gc while
      garbage collection is inhibited.  Suggested by Stefan Monnier in: