1. 25 Jul, 2020 5 commits
    • Philipp Stephani's avatar
      Fix subtle bug when checking liveness of module values. · 6355a3ec
      Philipp Stephani authored
      We can't simply look up the Lisp object in the global reference table
      because an invalid local and a valid global reference might refer to
      the same object.  Instead, we have to test the address of the global
      reference against the stored references.
      
      * src/emacs-module.c (module_global_reference_p): New helper function.
      (value_to_lisp): Use it.
      
      * test/data/emacs-module/mod-test.c
      (Fmod_test_invalid_store_copy): New test module function.
      (emacs_module_init): Export it.
      
      * test/src/emacs-module-tests.el
      (module--test-assertions--load-non-live-object-with-global-copy):
      New unit test.
      6355a3ec
    • Mattias Engdegård's avatar
      Optimise 3-arg +, - and * · 609cbd63
      Mattias Engdegård authored
      Turn (+ a b c) into (+ (+ a b) c), and do the same for - and *.
      The 2-arg operations have their own bytecode which results in a 1.5×
      speed-up.  Furthermore, the transform enables other optimisations; for
      example, (+ a 1 b) -> (+ (1+ a) b).
      
      * lisp/emacs-lisp/byte-opt.el (byte-optimize-plus, byte-optimize-minus)
      (byte-optimize-multiply): Transform (OP a b c) into (OP (OP a b) c).
      609cbd63
    • Eli Zaretskii's avatar
      Update and improve documentation of project.el commands · 3b448298
      Eli Zaretskii authored
      * doc/emacs/custom.texi (Prefix Keymaps): Document
      'project-prefix-map'.
      * doc/emacs/maintaining.texi (Project File Commands)
      (Switching Projects): Describe key bindings for the commands
      described in the sections.  Document 'project-list-file'.
      (Project Buffer Commands): New section.
      * doc/emacs/emacs.texi (Top): Add Project sections to the detailed
      menu.
      
      * etc/NEWS: Add entries for project.el, and mark documented entries as
      appropriate.
      3b448298
    • Eli Zaretskii's avatar
      Fix display of man pages after killing the 'man' process · eaad6eac
      Eli Zaretskii authored
      * lisp/man.el (Man-bgproc-filter, Man-bgproc-sentinel): Use
      'buffer-live-p' instead of just testing the buffer's name.
      (Bug#42160)
      eaad6eac
    • Dmitry Gutov's avatar
      project-remember-project: New public function · 19064761
      Dmitry Gutov authored
      * lisp/progmodes/project.el (project-remember-project):
      Rename from project--add-to-project-list-front (bug#42332).
      And autoload it.
      19064761
  2. 23 Jul, 2020 6 commits
    • Juri Linkov's avatar
      * lisp/vc/vc-git.el (vc-git-log-view-mode): Fix commit regexp (bug#40248) · bca8686f
      Juri Linkov authored
      The regexp 'log-view-message-re' should match e.g. "commit 123456789",
      not "CommitDate".
      bca8686f
    • Tassilo Horn's avatar
      Don't call undefined function elisp-eldoc-documentation-function (bug#42493) · f7ebba57
      Tassilo Horn authored
      * lisp/ielm.el (inferior-emacs-lisp-mode): Add
      `elisp-eldoc-var-docstring' and `elisp-eldoc-funcall' as
      `eldoc-documentation-functions' instead of the undefined
      elisp-eldoc-documentation-function (bug#42493).
      f7ebba57
    • Tassilo Horn's avatar
      bug-reference auto-setup for IRC, implementation for ERC · 0d7d422b
      Tassilo Horn authored
      * lisp/progmodes/bug-reference.el (bug-reference-setup-from-irc-alist):
      Change SERVER-REGEXP to NETWORK-REGEXP in docstring.
      * lisp/progmodes/bug-reference.el (bug-reference--maybe-setup-from-irc):
      Change semantics from requiring a match of channel OR server to
      requiring a match of both (if both are configured).
      * lisp/progmodes/bug-reference.el (bug-reference-try-setup-from-erc):
      New defun doing the auto-setup for ERC.
      (bug-reference--run-auto-setup): Run bug-reference-try-setup-from-erc.
      * etc/NEWS: Extend entry describing bug-reference auto-setup.
      0d7d422b
    • Lars Ingebrigtsen's avatar
      Fix viewing of encrypted S/MIME messages · 84ec57fe
      Lars Ingebrigtsen authored
      * lisp/gnus/mm-decode.el (mm-possibly-verify-or-decrypt): Don't
      add a content-type header if there already is one (bug#41659).
      84ec57fe
    • Philipp Stephani's avatar
      Fix memory leak for global module objects (Bug#42482). · 5c5eb979
      Philipp Stephani authored
      Instead of storing the global values in a global 'emacs_value_storage'
      object, store them as hash values alongside the reference counts.
      That way the garbage collector takes care of cleaning them up.
      
      * src/emacs-module.c (global_storage): Remove.
      (struct module_global_reference): New pseudovector type.
      (XMODULE_GLOBAL_REFERENCE): New helper function.
      (module_make_global_ref, module_free_global_ref): Use
      'module_global_reference' struct for global reference values.
      (value_to_lisp, module_handle_nonlocal_exit): Adapt to deletion of
      'global_storage'.
      5c5eb979
    • João Távora's avatar
      Don't needlessly request docs from ElDoc functions · fcd43287
      João Távora authored
      Fixes: bug#42421
      
      Do this conservatively for now: if the ElDoc helper buffer (as
      returned by eldoc--doc-buffer) is visible and showing documentation
      for the very same "situation" (as computed by the the new
      eldoc--request-state helper), don't request that documentation from
      sources again.
      
      Before this change, not only was that request inefficient but if the
      user invoked scroll-other-window to see more of the helper buffer,
      that would eventually cause it to be reformatted and unexpectedly
      recentered.
      
      Later on, when a customizable list of documentation "sinks" is offered
      to the user, say, something like eldoc-display-functions, this process
      must be consolidated.  In those circumstances, as soon as one of those
      sinks signals that it doesn't have up-to-date documentation for the
      state computed by eldoc--request-state, documentation will have to be
      requested anew from eldoc-documentation-functions via
      eldoc--invoke-strategy.
      
      * lisp/emacs-lisp/eldoc.el (eldoc--request-docs-p): Rework from
      eglot-display-message-p.
      (eldoc--last-request-state): New variable.
      (eldoc--request-state): New helper.
      (eldoc--handle-docs): Memorize state of request in doc buffer.
      (eldoc-print-current-symbol-info): Pass a token to
      eldoc--request-docs-p.
      (Version): Bump to 1.6.0
      fcd43287
  3. 22 Jul, 2020 4 commits
  4. 21 Jul, 2020 7 commits
  5. 20 Jul, 2020 18 commits