[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master aff0c58: Port tramp-adb to various 'touch' platform
From: |
Michael Albinus |
Subject: |
[Emacs-diffs] master aff0c58: Port tramp-adb to various 'touch' platforms |
Date: |
Sat, 16 Feb 2019 03:28:00 -0500 (EST) |
branch: master
commit aff0c585060b7cc92d52a32978c6aa64cf7e2a5e
Author: Paul Eggert <address@hidden>
Commit: Michael Albinus <address@hidden>
Port tramp-adb to various 'touch' platforms
* lisp/net/tramp-adb.el (tramp-adb-handle-set-file-times):
Try nanoseconds first, then plain seconds, then touch -t.
---
lisp/net/tramp-adb.el | 17 ++++++++++++++---
1 file changed, 14 insertions(+), 3 deletions(-)
diff --git a/lisp/net/tramp-adb.el b/lisp/net/tramp-adb.el
index 22f2c5f..4fba4e1 100644
--- a/lisp/net/tramp-adb.el
+++ b/lisp/net/tramp-adb.el
@@ -677,11 +677,22 @@ But handle the case, if the \"test\" command is not
available."
(tramp-compat-time-equal-p time tramp-time-doesnt-exist)
(tramp-compat-time-equal-p time tramp-time-dont-know))
(current-time)
- time)))
+ time))
+ (quoted-name (tramp-shell-quote-argument localname)))
+ ;; Older versions of toybox 'touch' mishandle nanoseconds and/or
+ ;; trailing "Z", so fall back on plain seconds if nanoseconds+Z
+ ;; fails. Also, fall back on old POSIX 'touch -t' if 'touch -d'
+ ;; (introduced in POSIX.1-2008) fails.
(tramp-adb-send-command-and-check
- v (format "touch -d %s %s"
+ v (format (concat "touch -d %s %s 2>/dev/null || "
+ "touch -d %s %s 2>/dev/null || "
+ "touch -t %s %s")
+ (format-time-string "%Y-%m-%dT%H:%M:%S.%NZ" time t)
+ quoted-name
(format-time-string "%Y-%m-%dT%H:%M:%S" time t)
- (tramp-shell-quote-argument localname))))))
+ quoted-name
+ (format-time-string "%Y%m%d%H%M.%S" time t)
+ quoted-name)))))
(defun tramp-adb-handle-copy-file
(filename newname &optional ok-if-already-exists keep-date
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] master aff0c58: Port tramp-adb to various 'touch' platforms,
Michael Albinus <=