* net/tramp-compat.el (tramp-compat-line-beginning-position)

(tramp-compat-line-end-position): Remove them.

* net/tramp.el (tramp-parse-rhosts-group)
(tramp-parse-shosts-group, tramp-parse-sconfig-group)
(tramp-parse-hosts-group, tramp-parse-passwd-group)
(tramp-parse-netrc-group, tramp-parse-putty-group)
* net/tramp-cmds.el (tramp-append-tramp-buffers)
* net/tramp-sh.el (tramp-do-file-attributes-with-ls)
(tramp-sh-handle-file-selinux-context)
(tramp-sh-handle-file-name-all-completions)
(tramp-sh-handle-insert-directory)
(tramp-sh-handle-expand-file-name, tramp-find-executable)
(tramp-wait-for-output, tramp-send-command-and-read)
* net/tramp-smb.el (tramp-smb-read-file-entry)
(tramp-smb-get-cifs-capabilities): Use `point-at-eol'.

* net/tramp-sh.el (tramp-sh-handle-insert-directory) Use
`point-at-bol'.
(tramp-remote-coding-commands): Add an alternative using "base64
-d -i".  This is needed for older base64 versions from GNU
coreutils.  Reported by Klaus Reichl
<Klaus.Reichl@thalesgroup.com>.
This commit is contained in:
Michael Albinus 2010-11-13 11:42:32 +01:00
parent ea4f775071
commit 6e060cee81
6 changed files with 56 additions and 61 deletions

View file

@ -1,3 +1,29 @@
2010-11-13 Michael Albinus <michael.albinus@gmx.de>
* net/tramp-compat.el (tramp-compat-line-beginning-position)
(tramp-compat-line-end-position): Remove them.
* net/tramp.el (tramp-parse-rhosts-group)
(tramp-parse-shosts-group, tramp-parse-sconfig-group)
(tramp-parse-hosts-group, tramp-parse-passwd-group)
(tramp-parse-netrc-group, tramp-parse-putty-group)
* net/tramp-cmds.el (tramp-append-tramp-buffers)
* net/tramp-sh.el (tramp-do-file-attributes-with-ls)
(tramp-sh-handle-file-selinux-context)
(tramp-sh-handle-file-name-all-completions)
(tramp-sh-handle-insert-directory)
(tramp-sh-handle-expand-file-name, tramp-find-executable)
(tramp-wait-for-output, tramp-send-command-and-read)
* net/tramp-smb.el (tramp-smb-read-file-entry)
(tramp-smb-get-cifs-capabilities): Use `point-at-eol'.
* net/tramp-sh.el (tramp-sh-handle-insert-directory) Use
`point-at-bol'.
(tramp-remote-coding-commands): Add an alternative using "base64
-d -i". This is needed for older base64 versions from GNU
coreutils. Reported by Klaus Reichl
<Klaus.Reichl@thalesgroup.com>.
2010-11-13 Hrvoje Niksic <hniksic@xemacs.org>
* simple.el (count-words-region): New function.
@ -1227,7 +1253,7 @@
* newcomment.el (comment-dwim): Fix the intentation in the doc string.
010-10-21 Michael Albinus <michael.albinus@gmx.de>
2010-10-21 Michael Albinus <michael.albinus@gmx.de>
* net/tramp-sh.el (tramp-do-file-attributes-with-stat): Do not use
space in stat format string.

View file

@ -298,8 +298,7 @@ buffer in your bug report.
(setq buffer-read-only nil)
(goto-char (point-min))
(while (not (eobp))
(if (re-search-forward
tramp-buf-regexp (tramp-compat-line-end-position) t)
(if (re-search-forward tramp-buf-regexp (point-at-eol) t)
(forward-line 1)
(forward-line 0)
(let ((start (point)))
@ -372,5 +371,4 @@ please ensure that the buffers are attached to your email.\n\n")
;; ordinary variable that gets its initial value from
;; tramp-default-user-alist and then is added to. (Pete Forman)
;; arch-tag: 190d4c33-76bb-4e99-8b6f-71741f23d98c
;;; tramp-cmds.el ends here

View file

@ -199,29 +199,6 @@
(ignore-errors
(tramp-compat-funcall 'font-lock-add-keywords mode keywords how)))
;; FIXME is this really necessary? Eg Emacs has both l-b-p and p-at-b
;; since at least 21.1.
(defsubst tramp-compat-line-beginning-position ()
"Return point at beginning of line (compat function).
Calls `line-beginning-position' or `point-at-bol' if defined, else
own implementation."
(cond
((fboundp 'line-beginning-position)
(tramp-compat-funcall 'line-beginning-position))
((fboundp 'point-at-bol) (tramp-compat-funcall 'point-at-bol))
(t (save-excursion (beginning-of-line) (point)))))
;; FIXME is this really necessary? Eg Emacs has both l-e-p and p-at-e
;; since at least 21.1.
(defsubst tramp-compat-line-end-position ()
"Return point at end of line (compat function).
Calls `line-end-position' or `point-at-eol' if defined, else
own implementation."
(cond
((fboundp 'line-end-position) (tramp-compat-funcall 'line-end-position))
((fboundp 'point-at-eol) (tramp-compat-funcall 'point-at-eol))
(t (save-excursion (end-of-line) (point)))))
(defsubst tramp-compat-temporary-file-directory ()
"Return name of directory for temporary files (compat function).
For Emacs, this is the variable `temporary-file-directory', for XEmacs

View file

@ -1189,8 +1189,7 @@ target of the symlink differ."
;; if symlink, find out file name pointed to
(when symlinkp
(search-forward "-> ")
(setq res-symlink-target
(buffer-substring (point) (tramp-compat-line-end-position))))
(setq res-symlink-target (buffer-substring (point) (point-at-eol))))
;; return data gathered
(list
;; 0. t for directory, string (name linked to) for symbolic
@ -1438,7 +1437,7 @@ and gid of the corresponding user is taken. Both parameters must be integers."
(tramp-shell-quote-argument localname))))
(with-current-buffer (tramp-get-connection-buffer v)
(goto-char (point-min))
(when (re-search-forward regexp (tramp-compat-line-end-position) t)
(when (re-search-forward regexp (point-at-eol) t)
(setq context (list (match-string 1) (match-string 2)
(match-string 3) (match-string 4))))))
;; Return the context.
@ -1746,8 +1745,7 @@ and gid of the corresponding user is taken. Both parameters must be integers."
(tramp-error
v 'file-error
"tramp-sh-handle-file-name-all-completions: %s"
(buffer-substring
(point) (tramp-compat-line-end-position))))
(buffer-substring (point) (point-at-eol))))
;; For peace of mind, if buffer doesn't end in `fail'
;; then it should end in `ok'. If neither are in the
;; buffer something went seriously wrong on the remote
@ -1760,9 +1758,7 @@ tramp-sh-handle-file-name-all-completions: internal error accessing `%s': `%s'"
(tramp-shell-quote-argument localname) (buffer-string))))
(while (zerop (forward-line -1))
(push (buffer-substring
(point) (tramp-compat-line-end-position))
result)))
(push (buffer-substring (point) (point-at-eol)) result)))
;; Because the remote op went through OK we know the
;; directory we `cd'-ed to exists
@ -2524,7 +2520,7 @@ This is like `dired-recursive-delete-directory' for Tramp files."
(forward-line -1))
(when (looking-at "//DIRED//\\s-+")
(let ((databeg (match-end 0))
(end (tramp-compat-line-end-position)))
(end (point-at-eol)))
;; Now read the numeric positions of file names.
(goto-char databeg)
(while (< (point) end)
@ -2534,7 +2530,7 @@ This is like `dired-recursive-delete-directory' for Tramp files."
;; End is followed by \n or by " -> ".
(put-text-property start end 'dired-filename t))))))
;; Remove trailing lines.
(goto-char (tramp-compat-line-beginning-position))
(goto-char (point-at-bol))
(while (looking-at "//")
(forward-line 1)
(delete-region (match-beginning 0) (point)))
@ -2593,8 +2589,7 @@ the result will be a local, non-Tramp, filename."
v (format "cd %s; pwd" (tramp-shell-quote-argument uname)))
(with-current-buffer (tramp-get-buffer v)
(goto-char (point-min))
(buffer-substring
(point) (tramp-compat-line-end-position)))))
(buffer-substring (point) (point-at-eol)))))
(setq localname (concat uname fname))))
;; There might be a double slash, for example when "~/"
;; expands to "/". Remove this.
@ -3496,8 +3491,7 @@ This function expects to be in the right *tramp* buffer."
(when (search-backward "tramp_executable " nil t)
(skip-chars-forward "^ ")
(skip-chars-forward " ")
(setq result (buffer-substring
(point) (tramp-compat-line-end-position)))))
(setq result (buffer-substring (point) (point-at-eol)))))
result)))
(defun tramp-set-remote-path (vec)
@ -3647,7 +3641,7 @@ process to set up. VEC specifies the connection."
;; the single quotes makes it work under `rc', too. We also unset
;; the variable $ENV because that is read by some sh
;; implementations (eg, bash when called as sh) on startup; this
;; way, we avoid the startup file clobbering $PS1. $PROMP_COMMAND
;; way, we avoid the startup file clobbering $PS1. $PROMPT_COMMAND
;; is another way to set the prompt in /bin/bash, it must be
;; discarded as well.
(tramp-open-shell
@ -3858,7 +3852,11 @@ and end of region, and are expected to replace the region contents
with the encoded or decoded results, respectively.")
(defconst tramp-remote-coding-commands
'((b64 "base64" "base64 -d")
'((b64 "base64" "base64 -d -i")
;; "-i" is more robust with older base64 from GNU coreutils.
;; However, I don't know whether all base64 versions do supports
;; this option.
(b64 "base64" "base64 -d")
(b64 "mimencode -b" "mimencode -u -b")
(b64 "mmencode -b" "mmencode -u -b")
(b64 "recode data..base64" "recode base64..data")
@ -4360,8 +4358,8 @@ function waits for output unless NOOUTPUT is set."
(tramp-set-connection-property p "check-remote-echo" t)
(setq command (format "%s%s%s" tramp-echo-mark command tramp-echo-mark)))
(when (string-match "<<'EOF'" command)
;; Unset $PS1 when using here documents, in order not to get
;; several prompts.
;; Unset $PS1 when using here documents, in order to avoid
;; multiple prompts.
(setq command (concat "(PS1= ; " command "\n)")))
;; Send the command.
(tramp-message vec 6 "%s" command)
@ -4387,8 +4385,7 @@ function waits for output unless NOOUTPUT is set."
;; A simple-minded busybox has sent " ^H" sequences.
;; Delete them.
(goto-char (point-min))
(when (re-search-forward
"^\\(.\b\\)+$" (tramp-compat-line-end-position) t)
(when (re-search-forward "^\\(.\b\\)+$" (point-at-eol) t)
(forward-line 1)
(delete-region (point-min) (point)))
;; Delete the prompt.
@ -4450,7 +4447,7 @@ In case there is no valid Lisp expression, it raises an error"
(condition-case nil
(prog1 (read (current-buffer))
;; Error handling.
(when (re-search-forward "\\S-" (tramp-compat-line-end-position) t)
(when (re-search-forward "\\S-" (point-at-eol) t)
(error nil)))
(error (tramp-error
vec 'file-error
@ -5042,5 +5039,6 @@ function cell is returned to be applied on a buffer."
;; rsync.
;; * Try telnet+curl as new method. It might be useful for busybox,
;; without built-in uuencode/uudecode.
;; * Try ssh+netcat as out-of-band method.
;;; tramp-sh.el ends here

View file

@ -1079,7 +1079,7 @@ If SHARE is result, entries are of type dir. Otherwise, shares are listed.
Result is the list (LOCALNAME MODE SIZE MTIME)."
;; We are called from `tramp-smb-get-file-entries', which sets the
;; current buffer.
(let ((line (buffer-substring (point) (tramp-compat-line-end-position)))
(let ((line (buffer-substring (point) (point-at-eol)))
localname mode size month day hour min sec year mtime)
(if (not share)
@ -1177,8 +1177,7 @@ Result is the list (LOCALNAME MODE SIZE MTIME)."
(member
"pathnames"
(split-string
(buffer-substring
(point) (tramp-compat-line-end-position)) nil t)))))))))
(buffer-substring (point) (point-at-eol)) nil t)))))))))
(defun tramp-smb-get-stat-capability (vec)
"Check, whether the SMB server supports the STAT command."
@ -1396,5 +1395,4 @@ Returns nil if an error message has appeared."
;; regular again.
;; * Make it multi-hop capable.
;; arch-tag: fcc9dbec-7503-4d73-b638-3c8aa59575f5
;;; tramp-smb.el ends here

View file

@ -2352,7 +2352,7 @@ Either user or host may be nil."
(concat
"^\\(" tramp-host-regexp "\\)"
"\\([ \t]+" "\\(" tramp-user-regexp "\\)" "\\)?")))
(narrow-to-region (point) (tramp-compat-line-end-position))
(narrow-to-region (point) (point-at-eol))
(when (re-search-forward regexp nil t)
(setq result (append (list (match-string 3) (match-string 1)))))
(widen)
@ -2379,7 +2379,7 @@ User is always nil."
User is always nil."
(let ((result)
(regexp (concat "^\\(" tramp-host-regexp "\\)")))
(narrow-to-region (point) (tramp-compat-line-end-position))
(narrow-to-region (point) (point-at-eol))
(when (re-search-forward regexp nil t)
(setq result (list nil (match-string 1))))
(widen)
@ -2408,7 +2408,7 @@ User is always nil."
User is always nil."
(let ((result)
(regexp (concat "^[ \t]*Host[ \t]+" "\\(" tramp-host-regexp "\\)")))
(narrow-to-region (point) (tramp-compat-line-end-position))
(narrow-to-region (point) (point-at-eol))
(when (re-search-forward regexp nil t)
(setq result (list nil (match-string 1))))
(widen)
@ -2469,7 +2469,7 @@ User is always nil."
(let ((result)
(regexp
(concat "^\\(" tramp-ipv6-regexp "\\|" tramp-host-regexp "\\)")))
(narrow-to-region (point) (tramp-compat-line-end-position))
(narrow-to-region (point) (point-at-eol))
(when (re-search-forward regexp nil t)
(setq result (list nil (match-string 1))))
(widen)
@ -2504,7 +2504,7 @@ Host is always \"localhost\"."
Host is always \"localhost\"."
(let ((result)
(regexp (concat "^\\(" tramp-user-regexp "\\):")))
(narrow-to-region (point) (tramp-compat-line-end-position))
(narrow-to-region (point) (point-at-eol))
(when (re-search-forward regexp nil t)
(setq result (list (match-string 1) "localhost")))
(widen)
@ -2534,7 +2534,7 @@ User may be nil."
(concat
"^[ \t]*machine[ \t]+" "\\(" tramp-host-regexp "\\)"
"\\([ \t]+login[ \t]+" "\\(" tramp-user-regexp "\\)" "\\)?")))
(narrow-to-region (point) (tramp-compat-line-end-position))
(narrow-to-region (point) (point-at-eol))
(when (re-search-forward regexp nil t)
(setq result (list (match-string 3) (match-string 1))))
(widen)
@ -2560,7 +2560,7 @@ User is always nil."
User is always nil."
(let ((result)
(regexp (concat (regexp-quote registry) "\\\\\\(.+\\)")))
(narrow-to-region (point) (tramp-compat-line-end-position))
(narrow-to-region (point) (point-at-eol))
(when (re-search-forward regexp nil t)
(setq result (list nil (match-string 1))))
(widen)
@ -3662,7 +3662,6 @@ Only works for Bourne-like shells."
;; expects English? Or just to set LC_MESSAGES to "C" if Tramp
;; expects only English messages? (Juri Linkov)
;; * Make shadowfile.el grok Tramp filenames. (Bug#4526, Bug#4846)
;; * Load ~/.emacs_SHELLNAME on the remote host for `shell'.
;; * I was wondering it it would be possible to use tramp even if I'm
;; actually using sshfs. But when I launch a command I would like
;; to get it executed on the remote machine where the files really
@ -3674,7 +3673,6 @@ Only works for Bourne-like shells."
;; Functions for file-name-handler-alist:
;; diff-latest-backup-file -- in diff.el
;; arch-tag: 3a21a994-182b-48fa-b0cd-c1d9fede424a
;;; tramp.el ends here
;; Local Variables: