1. 20 Dec, 2018 3 commits
    • Stefan Monnier's avatar
      * lisp/emacs-lisp/map.el: Add support for plists · f68f2eb4
      Stefan Monnier authored
      (map--plist-p, map--plist-delete): New functions.
      (map-elt, map-delete, map-length, map-into, map-put!, map-insert)
      (map-apply, map-do): Handle the plist case.
      
      * test/lisp/emacs-lisp/map-tests.el (with-maps-do): Add sample plist.
      (test-map-put!): The behavior of map-put! is not the same for plists as
      for alists.
      f68f2eb4
    • Michael Albinus's avatar
      * test/lisp/net/tramp-tests.el (tramp-test32-environment-variables): · 6a3c5f41
      Michael Albinus authored
      Remove expected failure.
      6a3c5f41
    • Michael Albinus's avatar
      Fix Bug#33781 · 88d3713b
      Michael Albinus authored
      * lisp/net/tramp-sh.el (tramp-set-remote-path): Use a temporary
      file for setting $PATH, if it exceeds PATH_MAX on the remote system.
      (tramp-send-command-and-read): Ignore errors if NOERROR.  (Bug#33781)
      
      * test/lisp/net/tramp-tests.el (tramp-test34-remote-path): New test.
      88d3713b
  2. 19 Dec, 2018 9 commits
  3. 18 Dec, 2018 8 commits
    • Juri Linkov's avatar
      More font-lock improvements for diff-mode · fb163130
      Juri Linkov authored
      * lisp/vc/diff-mode.el (diff-font-lock-keywords): Use diff-header face
      for git index lines (like already used for bzr index lines).
      Use diff-file-header face for binary file headers.
      (diff-find-source-location): Use expand-file-name for vc-find-revision.
      (diff--font-lock-prettify): Use diff-indicator-* faces for
      left-fringe indicators.
      (diff-syntax-fontify-props): Optimize to not use text-property-not-all
      for font-lock-ensure.
      
      * lisp/replace.el (occur-engine-line): Simplify to use font-lock-ensure
      without text-property-not-all.
      fb163130
    • Juri Linkov's avatar
      Fontify one-line diffs without the final newline (bug#33567) · 8cbbf4ba
      Juri Linkov authored
      * lisp/vc/diff-mode.el (diff-hunk-text, diff-syntax-fontify-hunk):
      Skip lines beginning with backslash like "\ No newline at end of file".
      (diff-syntax-fontify-hunk): Use string-trim-right.
      For one-line diffs use 1 explicitly in the list of line numbers.
      8cbbf4ba
    • Paul Eggert's avatar
      Support (ash INTEGER BIGNUM) · cdaaaf2e
      Paul Eggert authored
      * src/data.c (emacs_mpz_mul_2exp): 2nd arg is now a
      nonnegative EMACS_INT not mp_bitcnt_t, to simplify checking.
      (Fash): Support COUNT values that are bignums or that
      exceed mp_bitcnt_t range.
      * test/src/data-tests.el (data-tests-ash-lsh): Test this.
      cdaaaf2e
    • Glenn Morris's avatar
      Expect tramp environment test to fail on hydra · 5a04e826
      Glenn Morris authored
      * test/lisp/net/tramp-tests.el (tramp-test32-environment-variables):
      Expect failure on hydra.nixos.org.
      5a04e826
    • Glenn Morris's avatar
      A filenotify test now passes on hydra · 5486a46d
      Glenn Morris authored
      * test/lisp/filenotify-tests.el (file-notify-test04-autorevert):
      Remote test now passes on hydra.nixos.org, since PATH
      workaround for bug#33781.
      5486a46d
    • Michael Albinus's avatar
      Fix Bug#33781 · 710e79a6
      Michael Albinus authored
      * lisp/net/tramp-cache.el (tramp-connection-properties):
      * lisp/net/tramp-sh.el (tramp-remote-path)
      (tramp-remote-process-environment, tramp-sh-extra-args):
      Reinsert autoload cookie.  (Bug#33781)
      
      * test/lisp/net/tramp-tests.el: Do not require tramp-sh before
      changing tramp-remote-path.
      710e79a6
    • NicolasPetton's avatar
      New convenience functions in seq.el · 5a9eba60
      NicolasPetton authored
      Functions to access the first or all but the first elements of
      sequences have been repeatedly asked for (the last occurrence being
      https://github.com/NicolasPetton/seq.el/issues/9).
      
      * lisp/emacs-lisp/seq.el (seq-first, seq-rest): New functions.
      * test/lisp/emacs-lisp/seq-tests.el (test-seq-first, test-seq-rest):
      New tests for seq-first and seq-rest.
      5a9eba60
    • Glenn Morris's avatar
      Tiny ert-summarize-tests-batch-and-exit improvement · 73b2f7ac
      Glenn Morris authored
      * lisp/emacs-lisp/ert.el (ert-summarize-tests-batch-and-exit):
      Report the details of unexpected passes as well as failures.
      73b2f7ac
  4. 17 Dec, 2018 14 commits
    • Juri Linkov's avatar
      Syntactic fontification of diff hunks (bug#33567) · 6973b148
      Juri Linkov authored
      * lisp/vc/diff-mode.el (diff-font-lock-syntax): New defcustom.
      (diff-default-directory): New buffer-local variable.
      (diff-indicator-removed, diff-indicator-added)
      (diff-indicator-changed): Set foreground to distinctive colors.
      (diff-context): Remove colors to make room for syntax highlighting.
      (diff-font-lock-keywords): Add diff--font-lock-syntax.
      (diff--font-lock-cleanup): Remove diff-mode syntax overlays.
      (diff--font-lock-syntax, diff--font-lock-syntax--refresh)
      (diff-syntax-fontify-revisions, diff-syntax-fontify-hunk)
      (diff-syntax-fontify-props): New functions.
      
      * lisp/vc/diff.el (diff-no-select): Set diff-default-directory to
      default-directory.
      
      * doc/emacs/files.texi (Diff Mode): Document diff-font-lock-syntax.
      6973b148
    • Paul Eggert's avatar
      Make org-protocol-flatten always an alias · c5e02f2b
      Paul Eggert authored
      * lisp/org/org-protocol.el (org-protocol-flatten):
      Rewrite as top-level alias, as per Stefan’s suggestion,
      to avoid compiler warnings.
      c5e02f2b
    • Stefan Monnier's avatar
      * lisp/emacs-lisp/map.el: Avoid special casing lists. · 55838e4e
      Stefan Monnier authored
      (map-not-inplace, map-inplace): New errors.
      (map-insert): New generic function.
      (map-put!): Signal map-not-inplace rather than a generic 'error'.
      (map-elt): Use map-not-inplace and map-insert to avoid hardcoding
      a special case for lists.
      
      * test/lisp/emacs-lisp/map-tests.el (test-map-put!): Rename from
      test-map-put.  Also test the errors signaled.
      55838e4e
    • Glenn Morris's avatar
      Avoid tests failures on hydra due to Tramp autoload changes · 2c3f7f9c
      Glenn Morris authored
      * test/lisp/filenotify-tests.el, test/lisp/shadowfile-tests.el:
      * test/lisp/net/tramp-tests.el: Require tramp-sh before changing
      tramp-remote-path.
      2c3f7f9c
    • Paul Eggert's avatar
      One more flatten-tree test · 36215936
      Paul Eggert authored
      * test/lisp/subr-tests.el (subr-tests-flatten-tree):
      Add a test for lots of nothing.
      36215936
    • Paul Eggert's avatar
      Some more flatten-tree aliases · ef144113
      Paul Eggert authored
      * lisp/allout.el (allout-flatten):
      * lisp/progmodes/hideif.el (hif-flatten):
      Now an obsolete alias for flatten-tree.  All callers changed.
      * lisp/org/org-protocol.el (org-protocol-flatten):
      Make it an alias for flatten-tree if available.
      * lisp/progmodes/js.el (js--flatten-list):
      Remove alias.  We shouldn’t need obsolete function aliases for
      private functions.
      ef144113
    • Paul Eggert's avatar
      Improve flatten-tree documentation · a5995a32
      Paul Eggert authored
      * doc/lispref/lists.texi (Building Lists):
      * lisp/subr.el (flatten-tree):
      Don’t imply that flatten-tree modifies its argument.
      Clarify wording.
      a5995a32
    • Paul Eggert's avatar
      Improve flatten-tree performance · 8664ba18
      Paul Eggert authored
      * lisp/subr.el (flatten-tree): Improve performance by calling
      ‘cons’ once rather than twice when a cons cell is popped.
      8664ba18
    • Paul Eggert's avatar
      Assume ‘emacs’ is defined in Emacs-only code · 4d77c4ac
      Paul Eggert authored
      * src/charset.c, src/coding.c, src/coding.h, src/gmalloc.c:
      * src/ralloc.c, src/regex-emacs.c: Simplify slightly by
      assuming that ‘emacs’ is defined.  These modules have long
      been specific to Emacs, and are not used elsewhere.
      4d77c4ac
    • Michael Albinus's avatar
      Use `flatten-tree' in Tramp · 739dca78
      Michael Albinus authored
      * lisp/net/tramp-compat.el (tramp-compat-flatten-tree): New defun.
      (tramp-compat-flatten-list): Remove.
      
      * lisp/net/tramp-sudoedit.el (tramp-sudoedit-send-command): Use it.
      739dca78
    • Alex Branham's avatar
      New function flatten-tree · 36b05dc8
      Alex Branham authored
      Co-authored-by: default avatarBasil L. Contovounesios <contovob@tcd.ie>
      
      * doc/lispref/lists.texi: Document `flatten-tree'.
      
      * lisp/progmodes/js.el (js--maybe-join):
      * lisp/printing.el (pr-switches):
      * lisp/lpr.el (lpr-print-region):
      * lisp/gnus/nnimap.el (nnimap-find-wanted-parts):
      * lisp/gnus/message.el (message-talkative-question):
      * lisp/gnus/gnus-sum.el (gnus-remove-thread)
      (gnus-thread-highest-number, gnus-thread-latest-date):
      * lisp/eshell/esh-util.el (eshell-flatten-and-stringify):
      * lisp/eshell/esh-opt.el (eshell-eval-using-options):
      * lisp/eshell/esh-ext.el (eshell-external-command):
      * lisp/eshell/em-xtra.el (eshell/expr):
      * lisp/eshell/em-unix.el (eshell/rm, eshell-mvcpln-template)
      (eshell/cat, eshell/make, eshell-poor-mans-grep, eshell-grep)
      (eshell/du, eshell/time, eshell/diff, eshell/locate):
      * lisp/eshell/em-tramp.el (eshell/su, eshell/sudo):
      * lisp/eshell/em-term.el (eshell-exec-visual):
      * lisp/eshell/em-dirs.el (eshell-dirs-substitute-cd, eshell/cd):
      * lisp/eshell/em-basic.el (eshell/printnl):
      Use new flatten-tree.
      
      * lisp/progmodes/js.el (js--flatten-list):
      * lisp/lpr.el (lpr-flatten-list):
      * lisp/gnus/message.el (message-flatten-list):
      * lisp/eshell/esh-util.el (eshell-flatten-list):
      Obsolete in favor of Emacs-wide `flatten-tree'.
      
      * lisp/subr.el (flatten-list): Alias to `flatten-tree' for
      discoverability.
      
      * lisp/subr.el (flatten-tree): New defun.
      
      * test/lisp/subr-tests.el (subr-tests-flatten-tree): New test.
      36b05dc8
    • Michael Albinus's avatar
      Fix Bug#33524 · 09a6cc47
      Michael Albinus authored
      * lisp/progmodes/flymake-proc.el
      (flymake-proc-create-temp-with-folder-structure):
      Unquote file-name.  (Bug#33524)
      09a6cc47
    • Michael Albinus's avatar
      Reduce autoloaded objects in Tramp · 3e9ecaec
      Michael Albinus authored
      * lisp/net/tramp-adb.el (tramp-adb-program)
      (tramp-adb-connect-if-not-connected, tramp-adb-prompt):
      Remove autoload cookie.
      
      * lisp/net/tramp-cache.el (tramp-connection-properties)
      (tramp-persistency-file-name): Remove autoload cookie.
      
      * lisp/net/tramp-ftp.el (tramp-ftp-enable-ange-ftp):
      Use `tramp-autoload' cookie.
      
      * lisp/net/tramp-gvfs.el (tramp-gvfs-zeroconf-domain):
      Remove autoload cookie.
      
      * lisp/net/tramp-rclone.el (tramp-rclone-program): Remove autoload
      cookie.
      (tramp-set-completion-function): Use `tramp--with-startup'.
      
      * lisp/net/tramp-sh.el (tramp-inline-compress-start-size)
      (tramp-copy-size-limit, tramp-histfile-override)
      (tramp-use-ssh-controlmaster-options, tramp-remote-path)
      (tramp-remote-process-environment, tramp-sh-extra-args):
      Remove autoload cookie.
      (tramp-stat-marker, tramp-stat-quoted-marker): Move to tramp.el.
      
      * lisp/net/tramp-smb.el (tramp-smb-program)
      (tramp-smb-acl-program, tramp-smb-conf)
      (tramp-smb-winexe-program, tramp-smb-winexe-shell-command)
      (tramp-smb-winexe-shell-command-switch): Remove autoload cookie.
      
      * lisp/net/tramp-sudoedit.el (server, tramp-sh): Do not require.
      
      * lisp/net/tramp.el (tramp--startup-hook): Define.
      (tramp-stat-marker, tramp-stat-quoted-marker): New defconsts,
      taken from tramp-sh.el.
      
      * test/lisp/net/tramp-archive-tests.el (tramp-copy-size-limit)
      (tramp-persistency-file-name): Declare.
      
      * test/lisp/net/tramp-tests.el (tramp-connection-properties)
      (tramp-display-escape-sequence-regexp)
      (tramp-inline-compress-start-size, tramp-remote-path): Declare.
      3e9ecaec
    • Stefan Monnier's avatar
      * lisp/emacs-lisp/macroexp.el: Don't hide backtrace · 522acbf4
      Stefan Monnier authored
      (macroexp--compiler-macro): Use condition-case-unless-debug.
      522acbf4
  5. 16 Dec, 2018 6 commits
    • João Távora's avatar
      Jsonrpc error handlers can now safely call jsonrpc-shutdown · 2f655257
      João Távora authored
      Previously, if an error handler called jsonrpc-shutdown, and if that
      error handler was being called from the process sentinel,
      jsonrpc-shutdown would infloop waiting for jsonrpc-sentinel-done to be
      set.
      
      Rename the process property jsonrpc-sentinel-done to
      jsonrpc-sentinel-cleanup-started, arrange for it to be set earlier
      in the sentinel, and also check for it earlier in jsonrpc-shutdown.
      
      * lisp/jsonrpc.el (Version): Bump to 1.0.7.
      (jsonrpc--process-sentinel): Set jsonrpc-sentinel-cleanup-started
      a bit earlier than previous jsonrpc-sentinel-done.
      (jsonrpc-shutdown): Query jsonrpc-sentinel-cleanup-started
      2f655257
    • Paul Eggert's avatar
      Update from Gnulib · f74595aa
      Paul Eggert authored
      This incorporates:
      2018-12-16 regex: propagate fix for glibc bug 18040
      2018-12-16 obstack, libc-config: Support HP-UX cc in C99 mode
      2018-12-15 regex: work around a bug in glibc-2.27 and prior
      2018-12-13 localtime-buffer: Avoid endless recursion
      * build-aux/config.guess, build-aux/config.sub, lib/cdefs.h:
      * lib/gettext.h, lib/localtime-buffer.c, lib/regexec.c, m4/regex.m4:
      Copy from Gnulib.
      f74595aa
    • Stefan Monnier's avatar
      * lisp/net/tramp: Rework mutual dependencies · 07d88279
      Stefan Monnier authored
      Functionally split tramp-loaddefs.el into two parts: one part run
      while loading it at the very beginning of loading tramp.el (holding plain
      autoloads and declarations), and another run at the very end of loading
      tramp.el (holding setup code).
      This should reduce infinite-recursion problems while loading.
      
      * lisp/net/tramp.el: Require tramp-loaddefs at beginning.
      Run (new and internal) tramp--startup-hook at the end.
      Remove all tramp-autoloads.  Prefer tramp--with-startup over
      eval-after-load.
      (tramp--with-startup): New macro.
      (tramp-set-syntax): Show the new value rather than the old value in the
      error message.
      (tramp-syntax-values): Explicitly return 'values'.
      (tramp-prefix-format, tramp-prefix-regexp, tramp-method-regexp)
      (tramp-postfix-method-format, tramp-postfix-method-regexp)
      (tramp-prefix-ipv6-format, tramp-prefix-ipv6-regexp)
      (tramp-postfix-ipv6-format, tramp-postfix-ipv6-regexp)
      (tramp-postfix-host-format, tramp-postfix-host-regexp)
      (tramp-remote-file-name-spec-regexp, tramp-file-name-structure)
      (tramp-completion-file-name-regexp): Don't initialize in the declaration,
      since it's recomputed at the end anyway.
      (tramp-time-dont-know, tramp-time-doesnt-exist): Move before first use.
      
      * lisp/net/tramp-compat.el: Don't require tramp-loaddefs any more.
      (tramp-compat-tramp-syntax): Declare tramp-syntax.
      
      * lisp/net/tramp-smb.el:
      * lisp/net/tramp-rclone.el:
      * lisp/net/tramp-gvfs.el:
      * lisp/net/tramp-ftp.el:
      * lisp/net/tramp-adb.el: Wrap all autoloaded setup operations within
      tramp--with-startup.
      
      * lisp/net/tramp-sh.el: Wrap all autoloaded setup operations within
      tramp--with-startup.
      (tramp-display-escape-sequence-regexp)
      (tramp-device-escape-sequence-regexp): Don't tramp-autoload any more.
      (tramp-stat-marker): Use eval-and-compile rather than tramp-autoload.
      
      * lisp/net/tramp-sudoedit.el: Wrap all autoloaded setup operations within
      tramp--with-startup.
      Require tramp-sh at compile-time to precompute some regexps based on
      tramp-stat-marker.
      07d88279
    • Michael Albinus's avatar
      Add Tramp sudoedit method · e8199e76
      Michael Albinus authored
      * doc/misc/tramp.texi (Quick Start Guide): New section "Using sudoedit".
      (External methods) <sudoedit>: Describe.
      
      * lisp/net/tramp-adb.el (tramp-adb-file-name-handler-alist):
      * lisp/net/tramp-gvfs.el (tramp-gvfs-file-name-handler-alist):
      * lisp/net/tramp-rclone.el (tramp-rclone-file-name-handler-alist):
      * lisp/net/tramp-sh.el (tramp-sh-file-name-handler-alist)
      * lisp/net/tramp-smb.el (tramp-smb-file-name-handler-alist):
      Add handler.
      
      * lisp/net/tramp-sh.el (tramp-sh-handle-set-file-uid-gid): Rename from
      `tramp-sh-handle-set-file-uid-gid'.  Handle only remote file names.
      
      * lisp/net/tramp-sudoedit.el: New file.
      
      * lisp/net/tramp.el (tramp-file-name-for-operation): Handle also
      `tramp-set-file-uid-gid'.
      (tramp-set-file-uid-gid): New defun.
      (tramp-get-local-uid, tramp-get-local-gid): Cache result.
      
      * test/lisp/net/tramp-tests.el (tramp--test-sudoedit-p): New defun.
      (tramp-test20-file-modes, tramp-test22-file-times)
      (tramp--test-sudoedit-p): Use it.
      e8199e76
    • João Távora's avatar
      Rephrase a confusing sentence in the jsonrpc.el manual · 4f230e8d
      João Távora authored
      * doc/lispref/text.texi (JSONRPC Overview): Rephrase first
      sentence on building JSONRPC applications.
      4f230e8d
    • Glenn Morris's avatar
      Expect two epg tests to fail on hydra · 61dbe6ba
      Glenn Morris authored
      * test/lisp/epg-tests.el (epg-decrypt-1, epg-roundtrip-1):
      These currently fail for unknown reasons on hydra.nixos.org.
      61dbe6ba