* net/tramp.el (tramp-replace-environment-variables): Make it a defun.
* net/tramp-adb.el (top): Require `time-date'.
(tramp-adb-ls-output-time-less-p): Use `tramp-time-less-p'.
(tramp-adb-handle-copy-file, tramp-adb-handle-rename-file): Use
`tramp-file-name-handler'.
(tramp-adb-maybe-open-connection): Use
`tramp-compat-set-process-query-on-exit-flag'.
* net/tramp-sh.el (tramp-sh-handle-file-acl): Use
`tramp-compat-funcall'.
* net/tramp-smb.el (tramp-smb-handle-file-acl): Use `looking-at' and
`tramp-compat-funcall'.
+2013-01-21 Michael Albinus <michael.albinus@gmx.de>
+
+ Improve XEmacs compatibility.
+
+ * net/tramp.el (tramp-replace-environment-variables): Make it a defun.
+
+ * net/tramp-adb.el (top): Require `time-date'.
+ (tramp-adb-ls-output-time-less-p): Use `tramp-time-less-p'.
+ (tramp-adb-handle-copy-file, tramp-adb-handle-rename-file): Use
+ `tramp-file-name-handler'.
+ (tramp-adb-maybe-open-connection): Use
+ `tramp-compat-set-process-query-on-exit-flag'.
+
+ * net/tramp-sh.el (tramp-sh-handle-file-acl): Use
+ `tramp-compat-funcall'.
+
+ * net/tramp-smb.el (tramp-smb-handle-file-acl): Use `looking-at' and
+ `tramp-compat-funcall'.
+
2013-01-21 Jürgen Hötzel <juergen@archlinux.org>
* net/tramp-adb.el (tramp-adb-handle-start-file-process): Complete
;;; Code:
(require 'tramp)
+(require 'time-date)
(defvar dired-move-to-filename-regexp)
(setq time-a (apply 'encode-time (parse-time-string (match-string 0 a))))
(string-match tramp-adb-ls-date-regexp b)
(setq time-b (apply 'encode-time (parse-time-string (match-string 0 b))))
- (time-less-p time-b time-a)))
+ (tramp-time-less-p time-b time-a)))
(defun tramp-adb-ls-output-name-less-p (a b)
"Sort \"ls\" output by name, ascending."
newname (expand-file-name newname))
(if (file-directory-p filename)
- (copy-directory filename newname keep-date t)
+ (tramp-file-name-handler 'copy-directory filename newname keep-date t)
(with-tramp-progress-reporter
(tramp-dissect-file-name (if (file-remote-p filename) filename newname))
0 (format "Copying %s to %s" filename newname)
(tramp-flush-file-property v localname)
;; Short track.
(tramp-adb-barf-unless-okay
- v (format "mv %s %s" (file-remote-p filename 'localname) localname)
+ v (format
+ "mv %s %s"
+ (tramp-file-name-handler 'file-remote-p filename 'localname)
+ localname)
"Error renaming %s to %s" filename newname))
;; Rename by copy.
(tramp-adb-wait-for-output p)
(unless (eq 'run (process-status p))
(tramp-error vec 'file-error "Terminated!"))
- (set-process-query-on-exit-flag p nil)
+ (tramp-compat-set-process-query-on-exit-flag p nil)
;; Check whether the properties have been changed. If
;; yes, this is a strong indication that we must expire all
(goto-char (point-max))
(delete-blank-lines)
(when (> (point-max) (point-min))
- (substring-no-properties (buffer-string))))))))
+ (tramp-compat-funcall
+ 'substring-no-properties (buffer-string))))))))
(defun tramp-sh-handle-set-file-acl (filename acl-string)
"Like `set-file-acl' for Tramp files."
v (format "getfacl \"%s\"" (tramp-smb-get-localname v)))
(with-current-buffer (tramp-get-connection-buffer v)
(goto-char (point-min))
- (while (looking-at-p "^#")
+ (while (looking-at "^#")
(forward-line)
(delete-region (point-min) (point)))
(goto-char (point-max))
(delete-blank-lines)
(when (> (point-max) (point-min))
- (substring-no-properties (buffer-string))))))))
+ (tramp-compat-funcall
+ 'substring-no-properties (buffer-string))))))))
(defun tramp-smb-handle-file-attributes (filename &optional id-format)
"Like `file-attributes' for Tramp files."
(or (file-modes filename)
(logand (default-file-modes) (tramp-compat-octal-to-decimal "0666"))))
-(defalias 'tramp-replace-environment-variables
- (if (ignore-errors
- (equal "${ tramp?}"
- (tramp-compat-funcall
- 'substitute-env-vars "${ tramp?}" 'only-defined)))
- (lambda (filename)
- "Like `substitute-env-vars' with `only-defined' non-nil."
- (tramp-compat-funcall 'substitute-env-vars filename 'only-defined))
- (lambda (filename)
- "Replace environment variables in FILENAME.
+(defun tramp-replace-environment-variables (filename)
+ "Replace environment variables in FILENAME.
Return the string with the replaced variables."
- (save-match-data
- (let ((idx (string-match "$\\(\\w+\\)" filename)))
- ;; `$' is coded as `$$'.
- (when (and idx
- (or (zerop idx) (not (eq ?$ (aref filename (1- idx)))))
- (getenv (match-string 1 filename)))
- (setq filename
- (replace-match
- (substitute-in-file-name (match-string 0 filename))
- t nil filename)))
- filename)))))
+ (or (ignore-errors
+ (tramp-compat-funcall 'substitute-env-vars filename 'only-defined))
+ ;; We need an own implementation.
+ (save-match-data
+ (let ((idx (string-match "$\\(\\w+\\)" filename)))
+ ;; `$' is coded as `$$'.
+ (when (and idx
+ (or (zerop idx) (not (eq ?$ (aref filename (1- idx)))))
+ (getenv (match-string 1 filename)))
+ (setq filename
+ (replace-match
+ (substitute-in-file-name (match-string 0 filename))
+ t nil filename)))
+ filename))))
;; In XEmacs, electricity is implemented via a key map for ?/ and ?~,
;; which calls corresponding functions (see minibuf.el).