1. 09 Mar, 2019 1 commit
    • Michael Albinus's avatar
      Do not hardcode "/bin/sh" in compile. Bug#24338, Bug#29723 · 21f54fee
      Michael Albinus authored
      * doc/emacs/custom.texi (Connection Variables): New node.
      
      * doc/emacs/emacs.texi (Top): Add entry for Connection Variables.
      
      * doc/emacs/misc.texi (Single Shell): Mention default value for
      remote buffers.
      
      * doc/lispref/variables.texi (Connection Local Variables):
      Describe `with-connection-local-variables' instead of
      `with-connection-local-profiles'.
      
      * doc/misc/tramp.texi (Remote processes): Refer to Emacs manual.
      Mention default connection-local settings for `shell-file-name'
      and `shell-command-switch'.
      
      * etc/NEWS: Mention connection-local variables changes.
      
      * lisp/files-x.el (hack-connection-local-variables):
      Push connection-local variables to `file-local-variables-alist'.
      (connection-local-criteria-for-default-directory): New defsubst.
      (with-connection-local-variables): Rename from
      `with-connection-local-profiles'.  Adapt implementation.
      
      * lisp/files.el (hack-local-variables):
      Call `hack-connection-local-variables'.
      
      * lisp/shell.el (shell): Use `with-connection-local-variables'.
      
      * lisp/subr.el (start-file-process-shell-command):
      * lisp/progmodes/compile.el (compilation-start):
      Use `with-connection-local-variables'.  Do not set "/bin/sh" for
      remote buffers, trust settings of `shell-file-name'.  (Bug#24338),
      (Bug#29723)
      
      * lisp/net/ange-ftp.el (ange-ftp-compress, ange-ftp-uncompress):
      Use `shell-command-switch'.
      
      * lisp/net/tramp-adb.el (tramp-adb-connection-local-default-profile):
      New defvar.  Add it to connection-local profiles after loading "shell".
      
      * lisp/net/tramp-integration.el (tramp-compat): Require tramp-compat.
      (tramp-compat-exec-path): Do not declare anymore.
      (tramp-connection-local-safe-shell-file-names): New defvar.
      (tramp-connection-local-default-profile): New defconst.  Activate
      it after loading "shell".
      (shell-file-name, shell-command-switch): Add safe-local-variable
      property.
      
      * lisp/net/tramp-sh.el (tramp-display-escape-sequence-regexp):
      Add tramp-autoload cookie.
      
      * test/lisp/files-x-tests.el (remote-shell-file-name):
      Add safe-local-variable property to remote-* variables.
      (tramp-connection-local-default-profile): Declare.
      (files-x-test-with-connection-local-variables):
      Rename from `files-x-test-with-connection-local-profiles'.  Adapt
      implementation.
      
      * test/lisp/net/tramp-tests.el
      (tramp-test34-connection-local-variables): New test.
      (tramp-test34-explicit-shell-file-name): Run it also for tramp-adb.
      Bind connection-local-{profile,criteria}-alist.  Use tramp-adb
      specific `shell-file-name'.  Add safe-local-variable property to
      `explicit-shell-file-name' and `explicit-sh-args'.
      21f54fee
  2. 06 Mar, 2019 1 commit
    • Michael Albinus's avatar
      Handle empty strings in Tramp's expand-file-name implementations · be147d24
      Michael Albinus authored
      * lisp/net/tramp.el (tramp-handle-expand-file-name):
      * lisp/net/tramp-gvfs.el (tramp-gvfs-handle-expand-file-name):
      * lisp/net/tramp-sh.el (tramp-sh-handle-expand-file-name):
      * lisp/net/tramp-smb.el (tramp-smb-handle-expand-file-name):
      * lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-expand-file-name):
      Handle empty NAME.
      
      * test/lisp/net/tramp-tests.el (tramp-test01-file-name-syntax)
      (tramp-test01-file-name-syntax-simplified)
      (tramp-test01-file-name-syntax-separate): Use neutral IPv4 address.
      (tramp-test05-expand-file-name): Check also "." and "".
      be147d24
  3. 28 Feb, 2019 1 commit
    • Michael Albinus's avatar
      Use proper read syntax for all function names in Tramp · a80e1045
      Michael Albinus authored
      * lisp/net/tramp.el:
      * lisp/net/tramp-adb.el:
      * lisp/net/tramp-archive.el:
      * lisp/net/tramp-cache.el:
      * lisp/net/tramp-cmds.el:
      * lisp/net/tramp-compat.el:
      * lisp/net/tramp-ftp.el:
      * lisp/net/tramp-gvfs.el:
      * lisp/net/tramp-integration.el:
      * lisp/net/tramp-rclone.el:
      * lisp/net/tramp-sh.el:
      * lisp/net/tramp-smb.el:
      * lisp/net/tramp-sudoedit.el:
      * test/lisp/net/tramp-archive-tests.el:
      * test/lisp/net/tramp-tests.el: Use proper read syntax for all
      function names.
      a80e1045
  4. 23 Feb, 2019 2 commits
    • Michael Albinus's avatar
      Make last Tramp change backward compatible to Emacs 24 · 5f640bfd
      Michael Albinus authored
      * lisp/net/tramp-cache.el (tramp-get-file-property):
      * lisp/net/tramp-sh.el (tramp-maybe-open-connection):
      * lisp/net/tramp-smb.el (tramp-smb-maybe-open-connection):
      Make them backward compatible to Emacs 24.
      5f640bfd
    • Paul Eggert's avatar
      Avoid some double-rounding of Lisp timestamps · 476066e8
      Paul Eggert authored
      Also, simplify some time-related Lisp timestamp code
      while we’re in the neighborhood.
      * lisp/battery.el (battery-linux-proc-acpi)
      (battery-linux-sysfs, battery-upower, battery-bsd-apm):
      * lisp/calendar/timeclock.el (timeclock-seconds-to-string)
      (timeclock-log, timeclock-last-period)
      (timeclock-entry-length, timeclock-entry-list-span)
      (timeclock-find-discrep, timeclock-generate-report):
      * lisp/cedet/ede/detect.el (ede-detect-qtest):
      * lisp/completion.el (cmpl-hours-since-origin):
      * lisp/ecomplete.el (ecomplete-decay-1):
      * lisp/emacs-lisp/ert.el (ert--results-update-stats-display)
      (ert--results-update-stats-display-maybe):
      * lisp/emacs-lisp/timer-list.el (list-timers):
      * lisp/emacs-lisp/timer.el (timer-until)
      (timer-event-handler):
      * lisp/erc/erc-backend.el (erc-server-send-ping)
      (erc-server-send-queue, erc-handle-parsed-server-response)
      (erc-handle-unknown-server-response):
      * lisp/erc/erc-track.el (erc-buffer-visible):
      * lisp/erc/erc.el (erc-lurker-cleanup, erc-lurker-p)
      (erc-cmd-PING, erc-send-current-line):
      * lisp/eshell/em-pred.el (eshell-pred-file-time):
      * lisp/eshell/em-unix.el (eshell-show-elapsed-time):
      * lisp/gnus/gnus-icalendar.el (gnus-icalendar-event:org-timestamp):
      * lisp/gnus/gnus-int.el (gnus-backend-trace):
      * lisp/gnus/gnus-sum.el (gnus-user-date):
      * lisp/gnus/mail-source.el (mail-source-delete-crash-box):
      * lisp/gnus/nnmaildir.el (nnmaildir--scan):
      * lisp/ibuf-ext.el (ibuffer-mark-old-buffers):
      * lisp/gnus/nnmaildir.el (nnmaildir--scan):
      * lisp/mouse.el (mouse--down-1-maybe-follows-link)
      (mouse--click-1-maybe-follows-link):
      * lisp/mpc.el (mpc--faster-toggle):
      * lisp/net/rcirc.el (rcirc-handler-ctcp-KEEPALIVE)
      (rcirc-sentinel):
      * lisp/net/tramp-cache.el (tramp-get-file-property):
      * lisp/net/tramp-sh.el (tramp-sh-handle-file-newer-than-file-p)
      (tramp-maybe-open-connection):
      * lisp/net/tramp-smb.el (tramp-smb-maybe-open-connection):
      * lisp/org/org-clock.el (org-clock-resolve):
      (org-resolve-clocks, org-clock-in, org-clock-out, org-clock-sum):
      * lisp/org/org-timer.el (org-timer-start)
      (org-timer-pause-or-continue, org-timer-seconds):
      * lisp/org/org.el (org-evaluate-time-range):
      * lisp/org/ox-publish.el (org-publish-cache-ctime-of-src):
      * lisp/pixel-scroll.el (pixel-scroll-in-rush-p):
      * lisp/play/hanoi.el (hanoi-move-ring):
      * lisp/proced.el (proced-format-time):
      * lisp/progmodes/cpp.el (cpp-progress-message):
      * lisp/progmodes/flymake.el (flymake--handle-report):
      * lisp/progmodes/js.el (js--wait-for-matching-output):
      * lisp/subr.el (progress-reporter-do-update):
      * lisp/term/xterm.el (xterm--read-event-for-query):
      * lisp/time.el (display-time-update, emacs-uptime):
      * lisp/tooltip.el (tooltip-delay):
      * lisp/url/url-cookie.el (url-cookie-parse-file-netscape):
      * lisp/url/url-queue.el (url-queue-prune-old-entries):
      * lisp/url/url.el (url-retrieve-synchronously):
      * lisp/xt-mouse.el (xterm-mouse-event):
      Avoid double-rounding of time-related values.  Simplify.
      * lisp/calendar/icalendar.el (icalendar--decode-isodatetime):
      When hoping for the best (unlikely), use a better decoded time.
      (icalendar--convert-sexp-to-ical): Avoid unnecessary encode-time.
      * lisp/calendar/timeclock.el (timeclock-when-to-leave):
      * lisp/cedet/ede/detect.el (ede-detect-qtest):
      * lisp/desktop.el (desktop-create-buffer):
      * lisp/emacs-lisp/benchmark.el (benchmark-elapse):
      * lisp/gnus/gnus-art.el (article-lapsed-string):
      * lisp/gnus/gnus-group.el (gnus-group-timestamp-delta):
      * lisp/gnus/nnmail.el (nnmail-expired-article-p):
      * lisp/gnus/nnmaildir.el (nnmaildir-request-expire-articles):
      * lisp/nxml/rng-maint.el (rng-time-function):
      * lisp/org/org-clock.el (org-clock-get-clocked-time)
      (org-clock-resolve, org-resolve-clocks, org-resolve-clocks-if-idle):
      * lisp/org/org-habit.el (org-habit-insert-consistency-graphs):
      * lisp/progmodes/vhdl-mode.el (vhdl-update-progress-info)
      (vhdl-fix-case-region-1):
      Use time-since instead of open-coding most of it.
      * lisp/erc/erc-dcc.el (erc-dcc-get-sentinel):
      * lisp/erc/erc.el (erc-string-to-emacs-time, erc-time-gt):
      Now obsolete.  All uses changed.
      (erc-time-diff): Accept all Lisp time values.
      All uses changed.
      * lisp/gnus/gnus-demon.el (gnus-demon-idle-since):
      * lisp/gnus/gnus-score.el (gnus-score-headers):
      * lisp/gnus/nneething.el (nneething-make-head):
      * lisp/gnus/nnheader.el (nnheader-message-maybe):
      * lisp/gnus/nnimap.el (nnimap-keepalive):
      * lisp/image.el (image-animate-timeout):
      * lisp/mail/feedmail.el (feedmail-rfc822-date):
      * lisp/net/imap.el (imap-wait-for-tag):
      * lisp/net/newst-backend.el (newsticker--image-get):
      * lisp/net/rcirc.el (rcirc-handler-317, rcirc-handler-333):
      * lisp/obsolete/xesam.el (xesam-refresh-entry):
      * lisp/org/org-agenda.el (org-agenda-show-clocking-issues)
      (org-agenda-check-clock-gap, org-agenda-to-appt):
      * lisp/org/org-capture.el (org-capture-set-target-location):
      * lisp/org/org-clock.el (org-clock-resolve-clock)
      (org-clocktable-steps):
      * lisp/org/org-colview.el (org-columns-edit-value)
      (org-columns, org-agenda-columns):
      * lisp/org/org-duration.el (org-duration-from-minutes):
      * lisp/org/org-element.el (org-element-cache-sync-duration)
      (org-element-cache-sync-break)
      (org-element--cache-interrupt-p, org-element--cache-sync):
      * lisp/org/org-habit.el (org-habit-get-faces)
      * lisp/org/org-indent.el (org-indent-add-properties):
      * lisp/org/org-table.el (org-table-sum):
      * lisp/org/org-timer.el (org-timer-show-remaining-time)
      (org-timer-set-timer):
      * lisp/org/org.el (org-babel-load-file, org-today)
      (org-auto-repeat-maybe, org-2ft, org-time-stamp)
      (org-read-date-analyze, org-time-stamp-to-now)
      (org-small-year-to-year, org-goto-calendar):
      * lisp/org/ox.el (org-export-insert-default-template):
      * lisp/ses.el (ses--time-check):
      * lisp/type-break.el (type-break-time-warning)
      (type-break-statistics, type-break-demo-boring):
      * lisp/url/url-cache.el (url-cache-expired)
      (url-cache-prune-cache):
      * lisp/vc/vc-git.el (vc-git-stash-snapshot):
      * lisp/erc/erc-match.el (erc-log-matches-come-back):
      Simplify.
      476066e8
  5. 19 Feb, 2019 1 commit
    • Michael Albinus's avatar
      Implement access-file in Tramp · 0a6c4479
      Michael Albinus authored
      * lisp/net/tramp-adb.el (tramp-adb-file-name-handler-alist):
      * lisp/net/tramp-archive.el (tramp-archive-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):
      * lisp/net/tramp-sudoedit.el (tramp-sudoedit-file-name-handler-alist):
      Add `access-file'.
      
      * lisp/net/tramp-archive.el (tramp-archive-handle-access-file):
      * lisp/net/tramp.el (tramp-handle-access-file): New defun.
      (tramp-condition-case-unless-debug): Add declaration.
      (tramp-handle-insert-directory):
      * lisp/net/tramp-sh.el (tramp-sh-handle-insert-directory):
      * lisp/net/tramp-smb.el (tramp-smb-handle-insert-directory):
      Check, whether directory is accessible.
      
      * test/lisp/net/tramp-archive-tests.el
      (tramp-archive-test17-insert-directory)
      (tramp-archive-test18-file-attributes):
      * test/lisp/net/tramp-tests.el (tramp-test17-insert-directory)
      (tramp-test18-file-attributes): Test error cases.
      0a6c4479
  6. 30 Jan, 2019 1 commit
    • Michael Albinus's avatar
      Fix problem in filenotify-tests · 49e253a0
      Michael Albinus authored
      * lisp/net/tramp-sh.el (tramp-sh-handle-file-notify-add-watch):
      Adapt `accept-process-output' argument.
      
      * test/lisp/filenotify-tests.el (file-notify--deftest-remote):
      Remove :unstable tag.
      49e253a0
  7. 29 Jan, 2019 1 commit
    • Michael Albinus's avatar
      ; Tramp cleanup · 492b31d9
      Michael Albinus authored
      * lisp/net/tramp-adb.el (tramp-adb-maybe-open-connection):
      Handle `non-essential'.
      
      * lisp/net/tramp-archive.el: Increase `max-specpdl-size' when
      loading tramp-gvfs.
      
      * lisp/net/tramp-rclone.el (tramp-rclone-mounted-p): Reorder for
      better traces.
      (tramp-rclone-maybe-open-connection): Handle `non-essential'.
      
      * lisp/net/tramp-sh.el (tramp-sh-handle-copy-directory)
      (tramp-find-inline-encoding): Simplify check.
      
      * lisp/net/tramp-smb.el (tramp-smb-handle-insert-directory)
      (tramp-smb-handle-insert-directory): Simplify check.
      
      * lisp/net/tramp-sudoedit.el (tramp-sudoedit-action-sudo):
      Simplify check.
      (tramp-sudoedit-maybe-open-connection): Handle `non-essential'.
      
      * lisp/net/tramp.el (tramp-handle-load, tramp-wait-for-regexp):
      Simplify check.
      (tramp-action-login, tramp-action-password, tramp-action-yesno)
      (tramp-action-yn, tramp-action-terminal): Return explicitly t.
      (tramp-process-one-action, tramp-process-actions): Adapt docstring.
      492b31d9
  8. 28 Jan, 2019 1 commit
    • Michael Albinus's avatar
      Adapt accept-process-output timeouts in Tramp · 6c560a3b
      Michael Albinus authored
      * lisp/net/tramp.el (tramp-accept-process-output):
      Make timeout optional.  Do not set explicit timer.
      (tramp-action-out-of-band, tramp-process-one-action)
      (tramp-wait-for-regexp, tramp-interrupt-process):
      * lisp/net/tramp-adb.el (tramp-adb-parse-device-names):
      * lisp/net/tramp-gvfs.el (tramp-gvfs-handle-file-notify-add-watch):
      * lisp/net/tramp-rclone.el (tramp-rclone-parse-device-names):
      * lisp/net/tramp-sh.el (tramp-sh-handle-file-notify-add-watch):
      * lisp/net/tramp-smb.el (tramp-smb-action-get-acl)
      (tramp-smb-action-set-acl, tramp-smb-wait-for-output):
      * tramp-sudoedit.el (tramp-sudoedit-action-sudo):
      Adapt `accept-process-output' calls wrt timeouts.
      6c560a3b
  9. 24 Jan, 2019 1 commit
  10. 22 Jan, 2019 1 commit
    • Michael Albinus's avatar
      Respect setgid bit of the upper directory in Tramp · c5800815
      Michael Albinus authored
      * doc/misc/trampver.texi:
      * lisp/net/trampver.el: Change version to "2.4.2-pre".
      
      * lisp/net/tramp.el: Bump version to 2.4.2-pre.
      (tramp-set-file-uid-gid): Respect setgid bit of the upper directory.
      (tramp-default-file-modes, tramp-handle-insert-file-contents)
      (tramp-mode-string-to-int, tramp-make-tramp-temp-file):
      * lisp/net/tramp-adb.el (tramp-adb-handle-file-local-copy)
      (tramp-adb-handle-write-region):
      * lisp/net/tramp-sh.el (tramp-do-copy-or-rename-file-directly)
      (tramp-sh-handle-write-region): Use octal constants.
      c5800815
  11. 21 Jan, 2019 2 commits
  12. 20 Jan, 2019 1 commit
  13. 16 Jan, 2019 1 commit
    • Michael Albinus's avatar
      Some accept-process-output cleanups in Tramp · b2497ef6
      Michael Albinus authored
      * lisp/net/tramp.el (tramp-action-out-of-band): Read process
      output in a loop.
      (tramp-accept-process-output): Return result.
      (tramp-interrupt-process):
      * lisp/net/tramp-adb.el (tramp-adb-parse-device-names):
      * lisp/net/tramp-rclone.el (tramp-rclone-parse-device-names):
      Remove FIXME.
      
      * lisp/net/tramp-sh.el (tramp-local-coding-commands): Fix docstring.
      
      * lisp/net/tramp-smb.el (tramp-smb-wait-for-output): Adapt docstring.
      Simplify code.
      
      * lisp/net/tramp-sudoedit.el (tramp-sudoedit-action-sudo):
      Adapt docstring.  Read process output in a loop.
      
      * test/lisp/net/tramp-tests.el (tramp-test43-asynchronous-requests):
      Remove :unstable tag on emba.
      b2497ef6
  14. 01 Jan, 2019 2 commits
  15. 31 Dec, 2018 1 commit
  16. 28 Dec, 2018 1 commit
  17. 24 Dec, 2018 1 commit
    • Michael Albinus's avatar
      Provide tramp-sh-handle-make-process · a94ac604
      Michael Albinus authored
      * lisp/net/tramp-sh.el (tramp-sh-file-name-handler-alist):
      Add `tramp-sh-handle-make-process' and
      `tramp-handle-start-file-process'.
      (tramp-sh-handle-make-process): New defun, derived from
      `tramp-sh-handle-start-file-process'.  (Bug#28691)
      
      * lisp/net/tramp.el (tramp-handle-start-file-process): New defun.
      
      * test/lisp/net/tramp-tests.el (tramp-test30-make-process):
      New test.
      (tramp-test31-interrupt-process, tramp-test32-shell-command)
      (tramp-test33-environment-variables)
      (tramp-test33-environment-variables-and-port-numbers)
      (tramp-test34-explicit-shell-file-name, tramp-test35-exec-path)
      (tramp-test35-remote-path, tramp-test36-vc-registered)
      (tramp-test37-make-auto-save-file-name)
      (tramp-test38-find-backup-file-name)
      (tramp-test39-make-nearby-temp-file)
      (tramp-test40-special-characters)
      (tramp-test40-special-characters-with-stat)
      (tramp-test40-special-characters-with-perl)
      (tramp-test40-special-characters-with-ls, tramp-test41-utf8)
      (tramp-test41-utf8-with-stat, tramp-test41-utf8-with-perl)
      (tramp-test41-utf8-with-ls, tramp-test42-file-system-info)
      (tramp-test43-asynchronous-requests, tramp-test44-auto-load)
      (tramp-test44-delay-load, tramp-test44-recursive-load)
      (tramp-test44-remote-load-path, tramp-test45-unload): Rename.
      a94ac604
  18. 23 Dec, 2018 1 commit
    • Michael Albinus's avatar
      Handle `make-process' in Tramp and ange-ftp · 3ea89aca
      Michael Albinus authored
      * doc/lispref/processes.texi (Asynchronous Processes):
      Explain, that not all file name handlers support `make-process'.
      
      * lisp/net/ange-ftp.el:
      * lisp/net/tramp-adb.el (tramp-adb-file-name-handler-alist):
      * lisp/net/tramp-archive.el (tramp-archive-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):
      * lisp/net/tramp-sudoedit.el (tramp-sudoedit-file-name-handler-alist):
      * lisp/net/tramp.el (tramp-file-name-for-operation): Add `make-process'.
      
      * lisp/vc/ediff-util.el:
      * src/process.c:
      * test/src/process-tests.el: Use "file name handler" consequently.
      3ea89aca
  19. 21 Dec, 2018 1 commit
    • Michael Albinus's avatar
      Fix Bug#33735 · 452d0c52
      Michael Albinus authored
      * lisp/net/tramp-sh.el (tramp-sh-gio-monitor-process-filter):
      Delete empty lines.  (Bug#33735)
      (tramp-sh-inotifywait-process-filter): Use `string-match'.
      (tramp-set-remote-path): Check for PIPE_BUF but PATH_MAX.
      
      * test/lisp/filenotify-tests.el: Handle $REMOTE_FILE_NOTIFY_LIBRARY.
      (file-notify--deftest-remote): Suppress vc-handled-backends.
      (file-notify-test08-backup): Do not expect failure on hydra.
      (Bug#33735).
      452d0c52
  20. 20 Dec, 2018 1 commit
    • 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
  21. 19 Dec, 2018 1 commit
  22. 18 Dec, 2018 1 commit
    • 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
  23. 17 Dec, 2018 1 commit
    • 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
  24. 16 Dec, 2018 2 commits
    • 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
  25. 07 Dec, 2018 1 commit
    • Michael Albinus's avatar
      Refactor some Tramp functions · 294b2c2b
      Michael Albinus authored
      * lisp/net/tramp-compat.el (tramp-compat-file-local-name): New defsubst.
      (tramp-compat-file-name-quoted-p, tramp-compat-file-name-quote)
      (tramp-compat-file-name-unquote):
      * lisp/net/tramp.el (tramp-handle-file-name-case-insensitive-p)
      (tramp-handle-file-truename, tramp-get-remote-tmpdir):
      * lisp/net/tramp-adb.el (tramp-adb-handle-copy-file)
      (tramp-adb-handle-rename-file, tramp-adb-handle-exec-path):
      * lisp/net/tramp-sh.el (tramp-do-copy-or-rename-file-directly)
      (tramp-sh-handle-exec-path, tramp-find-inline-encoding)
      (tramp-get-remote-touch): Use it.
      
      * lisp/net/tramp-adb.el (tramp-adb-file-name-handler-alist):
      Use `tramp-handle-expand-file-name'.
      (tramp-adb-handle-expand-file-name): Move to tramp.el.
      (tramp-adb-handle-file-writable-p): Adapt docstring.
      
      * lisp/net/tramp-gvfs.el (tramp-gvfs-file-name-handler-alist):
      Use `tramp-handle-file-local-copy', `tramp-handle-file-writable-p'
      and `tramp-handle-write-region'.
      (tramp-gvfs-handle-file-local-copy)
      (tramp-gvfs-handle-file-writable-p)
      (tramp-gvfs-handle-write-region): Move to tramp.el.
      
      * lisp/net/tramp-rclone.el: Dont't require `tramp-adb' and
      `tramp-gvfs' anymore.
      (tramp-rclone-file-name-handler-alist):
      Use `tramp-handle-expand-file-name', `tramp-handle-file-local-copy',
      `tramp-handle-file-writable-p' and `tramp-handle-write-region'.
      (tramp-rclone-handle-directory-files): Simplify.
      
      * lisp/net/tramp.el (tramp-methods): Extend docstring.
      (tramp-parse-netrc): Require `netrc'.
      (tramp-handle-expand-file-name, tramp-handle-file-local-copy)
      (tramp-handle-file-writable-p, tramp-handle-write-region): New defuns.
      294b2c2b
  26. 06 Dec, 2018 1 commit
    • Michael Albinus's avatar
      Rework Tramp wrt string-match-p, looking-at-p, save-match-data · 66b49fc1
      Michael Albinus authored
      * lisp/net/tramp.el (tramp-find-method, tramp-find-user)
      (tramp-find-host, tramp-dissect-file-name, tramp-make-tramp-file-name)
      (tramp-completion-make-tramp-file-name, tramp-debug-message)
      (tramp-message, tramp-progress-reporter-update)
      (tramp-set-completion-function)
      (tramp-rfn-eshadow-update-overlay)
      (tramp-find-file-name-coding-system-alist)
      (tramp-file-name-for-operation)
      (tramp-use-absolute-autoload-file-names)
      (tramp-get-completion-methods, tramp-get-completion-user-host)
      (tramp-handle-directory-files)
      (tramp-handle-file-name-case-insensitive-p)
      (tramp-handle-file-name-completion, tramp-handle-file-truename)
      (tramp-handle-insert-directory, tramp-handle-load)
      (tramp-handle-shell-command, tramp-action-yesno)
      (tramp-action-yn, tramp-process-actions)
      (tramp-mode-string-to-int, tramp-get-local-locale)
      (tramp-local-host-p):
      * lisp/net/tramp-adb.el (tramp-adb-handle-file-system-info)
      (tramp-adb-handle-directory-files-and-attributes)
      (tramp-adb--gnu-switches-to-ash, tramp-adb-sh-fix-ls-output)
      (tramp-adb-handle-file-name-all-completions)
      (tramp-adb-handle-shell-command)
      (tramp-adb-handle-start-file-process):
      * lisp/net/tramp-archive.el (tramp-archive-dissect-file-name):
      * lisp/net/tramp-cache.el (tramp-get-hash-table)
      (tramp-flush-directory-properties, tramp-flush-file-function):
      * lisp/net/tramp-cmds.el (tramp-reporter-dump-variable)
      (tramp-append-tramp-buffers):
      * lisp/net/tramp-compat.el (tramp-compat-process-running-p):
      * lisp/net/tramp-gvfs.el (tramp-gvfs-handle-expand-file-name)
      (tramp-gvfs-get-file-attributes)
      (tramp-gvfs-handle-file-attributes)
      (tramp-gvfs-monitor-process-filter)
      (tramp-gvfs-handler-mounted-unmounted)
      (tramp-gvfs-connection-mounted-p, tramp-gvfs-mount-spec-entry)
      (tramp-gvfs-mount-spec, tramp-gvfs-maybe-open-connection):
      * lisp/net/tramp-sh.el (tramp-do-file-attributes-with-ls)
      (tramp-do-file-attributes-with-stat)
      (tramp-sh-handle-file-selinux-context)
      (tramp-sh-handle-directory-files-and-attributes)
      (tramp-do-directory-files-and-attributes-with-stat)
      (tramp-sh-handle-file-name-all-completions)
      (tramp-sh-handle-dired-compress-file)
      (tramp-sh-handle-insert-directory)
      (tramp-sh-handle-expand-file-name)
      (tramp-sh-handle-start-file-process)
      (tramp-sh-handle-process-file, tramp-sh-handle-write-region)
      (tramp-sh-handle-file-notify-add-watch)
      (tramp-sh-gio-monitor-process-filter)
      (tramp-sh-gvfs-monitor-dir-process-filter)
      (tramp-sh-inotifywait-process-filter)
      (tramp-sh-handle-file-system-info, tramp-maybe-send-script)
      (tramp-find-executable, tramp-open-shell, tramp-find-shell)
      (tramp-open-connection-setup-interactive-shell)
      (tramp-find-inline-encoding, tramp-call-local-coding-command)
      (tramp-compute-multi-hops, tramp-maybe-open-connection)
      (tramp-convert-file-attributes)
      (tramp-make-copy-program-file-name, tramp-get-remote-locale)
      (tramp-get-test-nt-command, tramp-get-remote-stat)
      (tramp-get-inline-coding):
      * lisp/net/tramp-smb.el (tramp-smb-handle-directory-files)
      (tramp-smb-action-get-acl, tramp-smb-handle-file-attributes)
      (tramp-smb-handle-file-name-all-completions)
      (tramp-smb-handle-file-system-info)
      (tramp-smb-handle-file-writable-p)
      (tramp-smb-handle-insert-directory)
      (tramp-smb-handle-make-directory)
      (tramp-smb-handle-make-directory-internal)
      (tramp-smb-handle-start-file-process, tramp-smb-get-localname)
      (tramp-smb-read-file-entry): Use `string-match-p' and
      `looking-at-p'.  Remove superfluous `save-match-data'.  Apply
      `eval-when-compile' on constant concat data.
      
      * lisp/net/tramp-compat.el (tramp-compat-file-name-quoted-p-p):
      Use `string-prefix-p'.
      (tramp-compat-file-name-unquote): Do not use match data.
      66b49fc1
  27. 28 Nov, 2018 1 commit
    • Michael Albinus's avatar
      Tramp cleanup · 9b9c70b7
      Michael Albinus authored
      * lisp/net/tramp-sh.el (tramp-sh-handle-file-name-all-completions)
      * lisp/net/tramp-gvfs.el (tramp-gvfs-handle-file-name-all-completions):
      * lisp/net/tramp-smb.el (tramp-smb-read-file-entry):
      Use `string-match-p'.
      
      * lisp/net/tramp-rclone.el (tramp-rclone-maybe-open-connection):
      Set file properties more robust.
      
      * lisp/net/tramp-sh.el (tramp-stat-marker)
      (tramp-convert-file-attributes): Add tramp-autoload cookie.
      9b9c70b7
  28. 24 Nov, 2018 2 commits
  29. 21 Nov, 2018 1 commit
    • Michael Albinus's avatar
      Let Tramp sudo sessions expire after a timeout · fb200f3e
      Michael Albinus authored
      * doc/misc/tramp.texi (Inline methods) <sudo, doas>: Both methods expire
      the underlying session per default.
      (Predefined connection information): Explain "session-timeout".
      
      * etc/NEWS: Mention Tramp session expiration.
      
      * lisp/net/tramp-sh.el (tramp-methods) <sudo, doas>:
      Add `tramp-session-timeout'.
      (tramp-timeout-session): New defun.
      (tramp-maybe-open-connection): Handle session timeout.
      
      * lisp/net/tramp.el (tramp-methods): Adapt docstring.
      (tramp-equal-remote): Extend.
      fb200f3e
  30. 06 Nov, 2018 1 commit
    • Michael Albinus's avatar
      Handle also port and domain in Tramp proxy definitions · 3abe7bfe
      Michael Albinus authored
      * doc/misc/tramp.texi (Multi-hops): Exclude ports and domains from
      pattern expansion.
      
      * lisp/net/tramp-cmds.el (tramp-cleanup-all-connections):
      Remove ad-hoc proxies.
      
      * lisp/net/tramp-sh.el (tramp-compute-multi-hops): Handle also
      port and domain in the proxy.  Propertize ad-hoc proxies.
      
      * lisp/net/tramp.el (tramp-default-proxies-alist): Adapt docstring.
      
      * test/lisp/net/tramp-tests.el (tramp-test02-file-name-dissect)
      (tramp-test02-file-name-dissect-simplified)
      (tramp-test02-file-name-dissect-separate): Extend tests.
      3abe7bfe
  31. 27 Oct, 2018 1 commit
  32. 01 Oct, 2018 1 commit
  33. 29 Sep, 2018 1 commit
    • Michael Albinus's avatar
      Rework time-* functions in Tramp · ce0da8a4
      Michael Albinus authored
      * doc/misc/emacs-mime.texi (time-date): Add time-equal-p.
      
      * lisp/net/tramp-compat.el (tramp-compat-time-equal-p): New defsubst.
      
      * lisp/net/tramp.el (tramp-file-name-handler): Remove `debug'
      error handler.
      (tramp-half-a-year): Remove.
      (tramp-time-dont-know, tramp-time-doesnt-exist): New defconst.
      (tramp-time-diff): Remove compat code.
      (tramp-handle-set-visited-file-modtime)
      (tramp-handle-verify-visited-file-modtime):
      * lisp/net/tramp-adb.el (tramp-do-parse-file-attributes-with-ls)
      (tramp-adb-handle-set-file-times):
      * lisp/net/tramp-sh.el (tramp-do-file-attributes-with-ls)
      (tramp-sh-handle-set-visited-file-modtime)
      (tramp-sh-handle-verify-visited-file-modtime)
      (tramp-sh-handle-set-file-times)
      (tramp-sh-handle-file-newer-than-file-p):
      Use `tramp-time-dont-know', `tramp-time-doesnt-exist' and
      `tramp-compat-time-equal-p'.
      (tramp-sh-handle-verify-visited-file-modtime): Simplify check.
      
      * lisp/net/tramp-smb.el (tramp-smb-handle-file-attributes)
      (tramp-smb-read-file-entry): Use `tramp-time-dont-know'.
      (tramp-smb-handle-insert-directory): Adapt half-a-year check.
      
      * src/editfns.c (Ftime_equal_p): Adapt docstring.
      
      * test/lisp/net/tramp-tests.el
      (tramp-test19-directory-files-and-attributes)
      (tramp-test22-file-times): Use `tramp-compat-time-equal-p' and
      `tramp-time-dont-know'.
      (tramp-test23-visited-file-modtime): Extend test.
      ce0da8a4
  34. 29 Aug, 2018 1 commit
  35. 28 Aug, 2018 1 commit
    • Michael Albinus's avatar
      Add bignum support in Tramp · adcf904b
      Michael Albinus authored
      * lisp/net/tramp-adb.el (tramp-adb-handle-file-system-info):
      * lisp/net/tramp-gvfs.el (tramp-gvfs-handle-file-system-info):
      * lisp/net/tramp-sh.el (tramp-do-file-attributes-with-stat)
      (tramp-do-directory-files-and-attributes-with-stat)
      (tramp-sh-handle-file-system-info):
      * lisp/net/tramp-smb.el (tramp-smb-handle-file-system-info): Do
      not add "e0" to integers.
      
      * lisp/net/tramp-sh.el (tramp-perl-file-attributes)
      (tramp-convert-file-attributes): Do not use a consp for the inode
      if there is bignum support.
      adcf904b