aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKai Großjohann2003-06-17 14:03:58 +0000
committerKai Großjohann2003-06-17 14:03:58 +0000
commitea9d14432848d8985f743abe68306d535cb29031 (patch)
tree7c177200bf8133116856a9ef32b7bb454fad805c
parentb5d2c6219692c4d5b12a1bb3db7e52a335fdbf1e (diff)
downloademacs-ea9d14432848d8985f743abe68306d535cb29031.tar.gz
emacs-ea9d14432848d8985f743abe68306d535cb29031.zip
Version 2.0.35 of Tramp released.
* net/tramp.el (tramp-password-end-of-line): Use "xy" with plink. (tramp-completion-function-alist): Add completion function for "remcp", "remsh" and "plink1". Factor out the `regular' file name handling via a remote shell of some sort into a specific function. Intent is to later put that part of Tramp into a special file, so that the Tramp `core' is just a dispatcher that dispatches to various handlers. (tramp-sh-file-name-handler): New function. (tramp-foreign-file-name-handler-alist): New default value. Call tramp-sh-file-name-handler as default case. (tramp-file-name-handler): Do not invoke the old remote-shell handler. (tramp-find-foreign-file-name-handler): Return after first match is found. From Francis Litterio <franl@world.std.com>. (tramp-handle-file-newer-than-file-p): `tramp-time-diff' returns integer, not list. Do not apply `car' to the return value of `tramp-time-diff'. Reported by David D. Smith <ultrasoul@ultrasoul.com>. (tramp-time-diff): Convert return value of subtract-time to a number of seconds in a correct manner, by applying float-time or time-to-seconds. Also correct compat code accordingly. The XEmacs branch for itimer-time-difference didn't need correction, it returned a float already. Reported by David D. Smith <ultrasoul@ultrasoul.com>. (tramp-handle-insert-file-contents): When calling `file-local-copy', let-bind `inhibit-file-name-operation' accordingly. This makes sure that jka-compr is not called when `insert-file-contents-literally' is invoked. From Katsumi Yamaoka <yamaoka@jpl.org>. (tramp-do-copy-or-rename-via-buffer): Avoid calling jka-compr when writing the target file. (tramp-foreign-file-name-handler-alist): Add comment about default value having to come last. (tramp-handle-file-local-copy, tramp-handle-write-region): Add the "-p" hack. (tramp-handle-copy-file): Set file modes of target file. (tramp-handle-file-local-copy) (tramp-do-copy-or-rename-via-buffer): Use binary coding system, instead of no-conversion. They are the same on Emacs but different on XEmacs. (tramp-shell-prompt-pattern): Allow multiple escape sequences (each with optional trailing space). * net/tramp-uu.el: * net/tramp-util.el: * net/tramp-efs.el: Use iso-2022-7bit encoding with coding cookie for XEmacs compatibility.
-rw-r--r--lisp/ChangeLog52
-rw-r--r--lisp/net/tramp-util.el3
-rw-r--r--lisp/net/tramp-uu.el3
-rw-r--r--lisp/net/tramp.el154
-rw-r--r--lisp/net/trampver.el2
5 files changed, 162 insertions, 52 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index cf4c24bdd2a..92c33e1311c 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,55 @@
12003-06-17 Kai Gro,A_(Bjohann <kai.grossjohann@gmx.net>
2
3 Version 2.0.35 of Tramp released.
4
5 * net/tramp.el (tramp-password-end-of-line): Use "xy" with plink.
6 (tramp-completion-function-alist): Add completion function for
7 "remcp", "remsh" and "plink1".
8 Factor out the `regular' file name handling via a remote shell of
9 some sort into a specific function. Intent is to later put that
10 part of Tramp into a special file, so that the Tramp `core' is
11 just a dispatcher that dispatches to various handlers.
12 (tramp-sh-file-name-handler): New function.
13 (tramp-foreign-file-name-handler-alist): New default value. Call
14 tramp-sh-file-name-handler as default case.
15 (tramp-file-name-handler): Do not invoke the old remote-shell
16 handler.
17 (tramp-find-foreign-file-name-handler): Return after first match
18 is found. From Francis Litterio <franl@world.std.com>.
19 (tramp-handle-file-newer-than-file-p): `tramp-time-diff' returns
20 integer, not list. Do not apply `car' to the return value of
21 `tramp-time-diff'. Reported by David D. Smith
22 <ultrasoul@ultrasoul.com>.
23 (tramp-time-diff): Convert return value of subtract-time to a
24 number of seconds in a correct manner, by applying float-time or
25 time-to-seconds. Also correct compat code accordingly. The
26 XEmacs branch for itimer-time-difference didn't need correction,
27 it returned a float already. Reported by David D. Smith
28 <ultrasoul@ultrasoul.com>.
29 (tramp-handle-insert-file-contents): When calling
30 `file-local-copy', let-bind `inhibit-file-name-operation'
31 accordingly. This makes sure that jka-compr is not called when
32 `insert-file-contents-literally' is invoked. From Katsumi Yamaoka
33 <yamaoka@jpl.org>.
34 (tramp-do-copy-or-rename-via-buffer): Avoid calling jka-compr when
35 writing the target file.
36 (tramp-foreign-file-name-handler-alist): Add comment about default
37 value having to come last.
38 (tramp-handle-file-local-copy, tramp-handle-write-region): Add the
39 "-p" hack.
40 (tramp-handle-copy-file): Set file modes of target file.
41 (tramp-handle-file-local-copy)
42 (tramp-do-copy-or-rename-via-buffer): Use binary coding system,
43 instead of no-conversion. They are the same on Emacs but
44 different on XEmacs.
45 (tramp-shell-prompt-pattern): Allow multiple escape
46 sequences (each with optional trailing space).
47
48 * net/tramp-uu.el:
49 * net/tramp-util.el:
50 * net/tramp-efs.el: Use iso-2022-7bit encoding with coding cookie
51 for XEmacs compatibility.
52
12003-06-17 Kenichi Handa <handa@m17n.org> 532003-06-17 Kenichi Handa <handa@m17n.org>
2 54
3 * term/x-win.el (x-select-request-type): New variable. 55 * term/x-win.el (x-select-request-type): New variable.
diff --git a/lisp/net/tramp-util.el b/lisp/net/tramp-util.el
index 7dd1f97339a..44a24ca3ab7 100644
--- a/lisp/net/tramp-util.el
+++ b/lisp/net/tramp-util.el
@@ -1,8 +1,9 @@
1;;; -*- coding: iso-2022-7bit; -*-
1;;; tramp-util.el --- Misc utility functions to use with Tramp 2;;; tramp-util.el --- Misc utility functions to use with Tramp
2 3
3;; Copyright (C) 2001 Free Software Foundation, Inc. 4;; Copyright (C) 2001 Free Software Foundation, Inc.
4 5
5;; Author: Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE> 6;; Author: Kai Gro,A_(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
6;; Keywords: comm, extensions, processes 7;; Keywords: comm, extensions, processes
7 8
8;; This file is free software; you can redistribute it and/or modify 9;; This file is free software; you can redistribute it and/or modify
diff --git a/lisp/net/tramp-uu.el b/lisp/net/tramp-uu.el
index 01ede56ca7d..e307febc6fc 100644
--- a/lisp/net/tramp-uu.el
+++ b/lisp/net/tramp-uu.el
@@ -1,8 +1,9 @@
1;;; -*- coding: iso-2022-7bit; -*-
1;;; tramp-uu.el --- uuencode in Lisp 2;;; tramp-uu.el --- uuencode in Lisp
2 3
3;; Copyright (C) 2002 Free Software Foundation, Inc. 4;; Copyright (C) 2002 Free Software Foundation, Inc.
4 5
5;; Author: Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE> 6;; Author: Kai Gro,A_(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
6;; Keywords: comm, terminals 7;; Keywords: comm, terminals
7 8
8;; This file is free software; you can redistribute it and/or modify 9;; This file is free software; you can redistribute it and/or modify
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
index b88c73ebce8..50cd8056fde 100644
--- a/lisp/net/tramp.el
+++ b/lisp/net/tramp.el
@@ -238,28 +238,28 @@ This variable defaults to the value of `tramp-encoding-shell'."
238 (tramp-remote-sh "/bin/sh") 238 (tramp-remote-sh "/bin/sh")
239 (tramp-login-args nil) 239 (tramp-login-args nil)
240 (tramp-copy-args nil) 240 (tramp-copy-args nil)
241 (tramp-copy-keep-date-arg "-p")) 241 (tramp-copy-keep-date-arg "-p"))
242 ("scp" (tramp-connection-function tramp-open-connection-rsh) 242 ("scp" (tramp-connection-function tramp-open-connection-rsh)
243 (tramp-login-program "ssh") 243 (tramp-login-program "ssh")
244 (tramp-copy-program "scp") 244 (tramp-copy-program "scp")
245 (tramp-remote-sh "/bin/sh") 245 (tramp-remote-sh "/bin/sh")
246 (tramp-login-args ("-e" "none")) 246 (tramp-login-args ("-e" "none"))
247 (tramp-copy-args nil) 247 (tramp-copy-args nil)
248 (tramp-copy-keep-date-arg "-p")) 248 (tramp-copy-keep-date-arg "-p"))
249 ("scp1" (tramp-connection-function tramp-open-connection-rsh) 249 ("scp1" (tramp-connection-function tramp-open-connection-rsh)
250 (tramp-login-program "ssh") 250 (tramp-login-program "ssh")
251 (tramp-copy-program "scp") 251 (tramp-copy-program "scp")
252 (tramp-remote-sh "/bin/sh") 252 (tramp-remote-sh "/bin/sh")
253 (tramp-login-args ("-1" "-e" "none")) 253 (tramp-login-args ("-1" "-e" "none"))
254 (tramp-copy-args ("-1")) 254 (tramp-copy-args ("-1"))
255 (tramp-copy-keep-date-arg "-p")) 255 (tramp-copy-keep-date-arg "-p"))
256 ("scp2" (tramp-connection-function tramp-open-connection-rsh) 256 ("scp2" (tramp-connection-function tramp-open-connection-rsh)
257 (tramp-login-program "ssh") 257 (tramp-login-program "ssh")
258 (tramp-copy-program "scp") 258 (tramp-copy-program "scp")
259 (tramp-remote-sh "/bin/sh") 259 (tramp-remote-sh "/bin/sh")
260 (tramp-login-args ("-2" "-e" "none")) 260 (tramp-login-args ("-2" "-e" "none"))
261 (tramp-copy-args ("-2")) 261 (tramp-copy-args ("-2"))
262 (tramp-copy-keep-date-arg "-p")) 262 (tramp-copy-keep-date-arg "-p"))
263 ("scp1_old" 263 ("scp1_old"
264 (tramp-connection-function tramp-open-connection-rsh) 264 (tramp-connection-function tramp-open-connection-rsh)
265 (tramp-login-program "ssh1") 265 (tramp-login-program "ssh1")
@@ -267,7 +267,7 @@ This variable defaults to the value of `tramp-encoding-shell'."
267 (tramp-remote-sh "/bin/sh") 267 (tramp-remote-sh "/bin/sh")
268 (tramp-login-args ("-e" "none")) 268 (tramp-login-args ("-e" "none"))
269 (tramp-copy-args nil) 269 (tramp-copy-args nil)
270 (tramp-copy-keep-date-arg "-p")) 270 (tramp-copy-keep-date-arg "-p"))
271 ("scp2_old" 271 ("scp2_old"
272 (tramp-connection-function tramp-open-connection-rsh) 272 (tramp-connection-function tramp-open-connection-rsh)
273 (tramp-login-program "ssh2") 273 (tramp-login-program "ssh2")
@@ -275,49 +275,49 @@ This variable defaults to the value of `tramp-encoding-shell'."
275 (tramp-remote-sh "/bin/sh") 275 (tramp-remote-sh "/bin/sh")
276 (tramp-login-args ("-e" "none")) 276 (tramp-login-args ("-e" "none"))
277 (tramp-copy-args nil) 277 (tramp-copy-args nil)
278 (tramp-copy-keep-date-arg "-p")) 278 (tramp-copy-keep-date-arg "-p"))
279 ("rsync" (tramp-connection-function tramp-open-connection-rsh) 279 ("rsync" (tramp-connection-function tramp-open-connection-rsh)
280 (tramp-login-program "ssh") 280 (tramp-login-program "ssh")
281 (tramp-copy-program "rsync") 281 (tramp-copy-program "rsync")
282 (tramp-remote-sh "/bin/sh") 282 (tramp-remote-sh "/bin/sh")
283 (tramp-login-args ("-e" "none")) 283 (tramp-login-args ("-e" "none"))
284 (tramp-copy-args ("-e" "ssh")) 284 (tramp-copy-args ("-e" "ssh"))
285 (tramp-copy-keep-date-arg "-t")) 285 (tramp-copy-keep-date-arg "-t"))
286 ("remcp" (tramp-connection-function tramp-open-connection-rsh) 286 ("remcp" (tramp-connection-function tramp-open-connection-rsh)
287 (tramp-login-program "remsh") 287 (tramp-login-program "remsh")
288 (tramp-copy-program "rcp") 288 (tramp-copy-program "rcp")
289 (tramp-remote-sh "/bin/sh") 289 (tramp-remote-sh "/bin/sh")
290 (tramp-login-args nil) 290 (tramp-login-args nil)
291 (tramp-copy-args nil) 291 (tramp-copy-args nil)
292 (tramp-copy-keep-date-arg "-p")) 292 (tramp-copy-keep-date-arg "-p"))
293 ("rsh" (tramp-connection-function tramp-open-connection-rsh) 293 ("rsh" (tramp-connection-function tramp-open-connection-rsh)
294 (tramp-login-program "rsh") 294 (tramp-login-program "rsh")
295 (tramp-copy-program nil) 295 (tramp-copy-program nil)
296 (tramp-remote-sh "/bin/sh") 296 (tramp-remote-sh "/bin/sh")
297 (tramp-login-args nil) 297 (tramp-login-args nil)
298 (tramp-copy-args nil) 298 (tramp-copy-args nil)
299 (tramp-copy-keep-date-arg nil)) 299 (tramp-copy-keep-date-arg nil))
300 ("ssh" (tramp-connection-function tramp-open-connection-rsh) 300 ("ssh" (tramp-connection-function tramp-open-connection-rsh)
301 (tramp-login-program "ssh") 301 (tramp-login-program "ssh")
302 (tramp-copy-program nil) 302 (tramp-copy-program nil)
303 (tramp-remote-sh "/bin/sh") 303 (tramp-remote-sh "/bin/sh")
304 (tramp-login-args ("-e" "none")) 304 (tramp-login-args ("-e" "none"))
305 (tramp-copy-args nil) 305 (tramp-copy-args nil)
306 (tramp-copy-keep-date-arg nil)) 306 (tramp-copy-keep-date-arg nil))
307 ("ssh1" (tramp-connection-function tramp-open-connection-rsh) 307 ("ssh1" (tramp-connection-function tramp-open-connection-rsh)
308 (tramp-login-program "ssh") 308 (tramp-login-program "ssh")
309 (tramp-copy-program nil) 309 (tramp-copy-program nil)
310 (tramp-remote-sh "/bin/sh") 310 (tramp-remote-sh "/bin/sh")
311 (tramp-login-args ("-1" "-e" "none")) 311 (tramp-login-args ("-1" "-e" "none"))
312 (tramp-copy-args ("-1")) 312 (tramp-copy-args ("-1"))
313 (tramp-copy-keep-date-arg nil)) 313 (tramp-copy-keep-date-arg nil))
314 ("ssh2" (tramp-connection-function tramp-open-connection-rsh) 314 ("ssh2" (tramp-connection-function tramp-open-connection-rsh)
315 (tramp-login-program "ssh") 315 (tramp-login-program "ssh")
316 (tramp-copy-program nil) 316 (tramp-copy-program nil)
317 (tramp-remote-sh "/bin/sh") 317 (tramp-remote-sh "/bin/sh")
318 (tramp-login-args ("-2" "-e" "none")) 318 (tramp-login-args ("-2" "-e" "none"))
319 (tramp-copy-args ("-2")) 319 (tramp-copy-args ("-2"))
320 (tramp-copy-keep-date-arg nil)) 320 (tramp-copy-keep-date-arg nil))
321 ("ssh1_old" 321 ("ssh1_old"
322 (tramp-connection-function tramp-open-connection-rsh) 322 (tramp-connection-function tramp-open-connection-rsh)
323 (tramp-login-program "ssh1") 323 (tramp-login-program "ssh1")
@@ -325,7 +325,7 @@ This variable defaults to the value of `tramp-encoding-shell'."
325 (tramp-remote-sh "/bin/sh") 325 (tramp-remote-sh "/bin/sh")
326 (tramp-login-args ("-e" "none")) 326 (tramp-login-args ("-e" "none"))
327 (tramp-copy-args nil) 327 (tramp-copy-args nil)
328 (tramp-copy-keep-date-arg nil)) 328 (tramp-copy-keep-date-arg nil))
329 ("ssh2_old" 329 ("ssh2_old"
330 (tramp-connection-function tramp-open-connection-rsh) 330 (tramp-connection-function tramp-open-connection-rsh)
331 (tramp-login-program "ssh2") 331 (tramp-login-program "ssh2")
@@ -333,14 +333,14 @@ This variable defaults to the value of `tramp-encoding-shell'."
333 (tramp-remote-sh "/bin/sh") 333 (tramp-remote-sh "/bin/sh")
334 (tramp-login-args ("-e" "none")) 334 (tramp-login-args ("-e" "none"))
335 (tramp-copy-args nil) 335 (tramp-copy-args nil)
336 (tramp-copy-keep-date-arg nil)) 336 (tramp-copy-keep-date-arg nil))
337 ("remsh" (tramp-connection-function tramp-open-connection-rsh) 337 ("remsh" (tramp-connection-function tramp-open-connection-rsh)
338 (tramp-login-program "remsh") 338 (tramp-login-program "remsh")
339 (tramp-copy-program nil) 339 (tramp-copy-program nil)
340 (tramp-remote-sh "/bin/sh") 340 (tramp-remote-sh "/bin/sh")
341 (tramp-login-args nil) 341 (tramp-login-args nil)
342 (tramp-copy-args nil) 342 (tramp-copy-args nil)
343 (tramp-copy-keep-date-arg nil)) 343 (tramp-copy-keep-date-arg nil))
344 ("telnet" 344 ("telnet"
345 (tramp-connection-function tramp-open-connection-telnet) 345 (tramp-connection-function tramp-open-connection-telnet)
346 (tramp-login-program "telnet") 346 (tramp-login-program "telnet")
@@ -348,14 +348,14 @@ This variable defaults to the value of `tramp-encoding-shell'."
348 (tramp-remote-sh "/bin/sh") 348 (tramp-remote-sh "/bin/sh")
349 (tramp-login-args nil) 349 (tramp-login-args nil)
350 (tramp-copy-args nil) 350 (tramp-copy-args nil)
351 (tramp-copy-keep-date-arg nil)) 351 (tramp-copy-keep-date-arg nil))
352 ("su" (tramp-connection-function tramp-open-connection-su) 352 ("su" (tramp-connection-function tramp-open-connection-su)
353 (tramp-login-program "su") 353 (tramp-login-program "su")
354 (tramp-copy-program nil) 354 (tramp-copy-program nil)
355 (tramp-remote-sh "/bin/sh") 355 (tramp-remote-sh "/bin/sh")
356 (tramp-login-args ("-" "%u")) 356 (tramp-login-args ("-" "%u"))
357 (tramp-copy-args nil) 357 (tramp-copy-args nil)
358 (tramp-copy-keep-date-arg nil)) 358 (tramp-copy-keep-date-arg nil))
359 ("sudo" (tramp-connection-function tramp-open-connection-su) 359 ("sudo" (tramp-connection-function tramp-open-connection-su)
360 (tramp-login-program "sudo") 360 (tramp-login-program "sudo")
361 (tramp-copy-program nil) 361 (tramp-copy-program nil)
@@ -363,28 +363,28 @@ This variable defaults to the value of `tramp-encoding-shell'."
363 (tramp-login-args ("-u" "%u" "-s" 363 (tramp-login-args ("-u" "%u" "-s"
364 "-p" "Password:")) 364 "-p" "Password:"))
365 (tramp-copy-args nil) 365 (tramp-copy-args nil)
366 (tramp-copy-keep-date-arg nil)) 366 (tramp-copy-keep-date-arg nil))
367 ("multi" (tramp-connection-function tramp-open-connection-multi) 367 ("multi" (tramp-connection-function tramp-open-connection-multi)
368 (tramp-login-program nil) 368 (tramp-login-program nil)
369 (tramp-copy-program nil) 369 (tramp-copy-program nil)
370 (tramp-remote-sh "/bin/sh") 370 (tramp-remote-sh "/bin/sh")
371 (tramp-login-args nil) 371 (tramp-login-args nil)
372 (tramp-copy-args nil) 372 (tramp-copy-args nil)
373 (tramp-copy-keep-date-arg nil)) 373 (tramp-copy-keep-date-arg nil))
374 ("scpx" (tramp-connection-function tramp-open-connection-rsh) 374 ("scpx" (tramp-connection-function tramp-open-connection-rsh)
375 (tramp-login-program "ssh") 375 (tramp-login-program "ssh")
376 (tramp-copy-program "scp") 376 (tramp-copy-program "scp")
377 (tramp-remote-sh "/bin/sh") 377 (tramp-remote-sh "/bin/sh")
378 (tramp-login-args ("-e" "none" "-t" "-t" "/bin/sh")) 378 (tramp-login-args ("-e" "none" "-t" "-t" "/bin/sh"))
379 (tramp-copy-args nil) 379 (tramp-copy-args nil)
380 (tramp-copy-keep-date-arg "-p")) 380 (tramp-copy-keep-date-arg "-p"))
381 ("sshx" (tramp-connection-function tramp-open-connection-rsh) 381 ("sshx" (tramp-connection-function tramp-open-connection-rsh)
382 (tramp-login-program "ssh") 382 (tramp-login-program "ssh")
383 (tramp-copy-program nil) 383 (tramp-copy-program nil)
384 (tramp-remote-sh "/bin/sh") 384 (tramp-remote-sh "/bin/sh")
385 (tramp-login-args ("-e" "none" "-t" "-t" "/bin/sh")) 385 (tramp-login-args ("-e" "none" "-t" "-t" "/bin/sh"))
386 (tramp-copy-args nil) 386 (tramp-copy-args nil)
387 (tramp-copy-keep-date-arg nil)) 387 (tramp-copy-keep-date-arg nil))
388 ("krlogin" 388 ("krlogin"
389 (tramp-connection-function tramp-open-connection-rsh) 389 (tramp-connection-function tramp-open-connection-rsh)
390 (tramp-login-program "krlogin") 390 (tramp-login-program "krlogin")
@@ -392,7 +392,7 @@ This variable defaults to the value of `tramp-encoding-shell'."
392 (tramp-remote-sh "/bin/sh") 392 (tramp-remote-sh "/bin/sh")
393 (tramp-login-args ("-x")) 393 (tramp-login-args ("-x"))
394 (tramp-copy-args nil) 394 (tramp-copy-args nil)
395 (tramp-copy-keep-date-arg nil)) 395 (tramp-copy-keep-date-arg nil))
396 ("plink" 396 ("plink"
397 (tramp-connection-function tramp-open-connection-rsh) 397 (tramp-connection-function tramp-open-connection-rsh)
398 (tramp-login-program "plink") 398 (tramp-login-program "plink")
@@ -400,7 +400,7 @@ This variable defaults to the value of `tramp-encoding-shell'."
400 (tramp-remote-sh "/bin/sh") 400 (tramp-remote-sh "/bin/sh")
401 (tramp-login-args ("-ssh")) ;optionally add "-v" 401 (tramp-login-args ("-ssh")) ;optionally add "-v"
402 (tramp-copy-args nil) 402 (tramp-copy-args nil)
403 (tramp-copy-keep-date-arg nil)) 403 (tramp-copy-keep-date-arg nil))
404 ("plink1" 404 ("plink1"
405 (tramp-connection-function tramp-open-connection-rsh) 405 (tramp-connection-function tramp-open-connection-rsh)
406 (tramp-login-program "plink") 406 (tramp-login-program "plink")
@@ -408,7 +408,7 @@ This variable defaults to the value of `tramp-encoding-shell'."
408 (tramp-remote-sh "/bin/sh") 408 (tramp-remote-sh "/bin/sh")
409 (tramp-login-args ("-1" "-ssh")) ;optionally add "-v" 409 (tramp-login-args ("-1" "-ssh")) ;optionally add "-v"
410 (tramp-copy-args nil) 410 (tramp-copy-args nil)
411 (tramp-copy-keep-date-arg nil)) 411 (tramp-copy-keep-date-arg nil))
412 ("pscp" 412 ("pscp"
413 (tramp-connection-function tramp-open-connection-rsh) 413 (tramp-connection-function tramp-open-connection-rsh)
414 (tramp-login-program "plink") 414 (tramp-login-program "plink")
@@ -416,7 +416,7 @@ This variable defaults to the value of `tramp-encoding-shell'."
416 (tramp-remote-sh "/bin/sh") 416 (tramp-remote-sh "/bin/sh")
417 (tramp-login-args ("-ssh")) 417 (tramp-login-args ("-ssh"))
418 (tramp-copy-args nil) 418 (tramp-copy-args nil)
419 (tramp-copy-keep-date-arg "-p")) 419 (tramp-copy-keep-date-arg "-p"))
420 ("fcp" 420 ("fcp"
421 (tramp-connection-function tramp-open-connection-rsh) 421 (tramp-connection-function tramp-open-connection-rsh)
422 (tramp-login-program "fsh") 422 (tramp-login-program "fsh")
@@ -424,7 +424,7 @@ This variable defaults to the value of `tramp-encoding-shell'."
424 (tramp-remote-sh "/bin/sh -i") 424 (tramp-remote-sh "/bin/sh -i")
425 (tramp-login-args ("sh" "-i")) 425 (tramp-login-args ("sh" "-i"))
426 (tramp-copy-args nil) 426 (tramp-copy-args nil)
427 (tramp-copy-keep-date-arg "-p")) 427 (tramp-copy-keep-date-arg "-p"))
428 ) 428 )
429 "*Alist of methods for remote files. 429 "*Alist of methods for remote files.
430This is a list of entries of the form (NAME PARAM1 PARAM2 ...). 430This is a list of entries of the form (NAME PARAM1 PARAM2 ...).
@@ -620,12 +620,14 @@ See `tramp-methods' for a list of possibilities for METHOD."
620 (cons "scp1_old" tramp-completion-function-alist-ssh) 620 (cons "scp1_old" tramp-completion-function-alist-ssh)
621 (cons "scp2_old" tramp-completion-function-alist-ssh) 621 (cons "scp2_old" tramp-completion-function-alist-ssh)
622 (cons "rsync" tramp-completion-function-alist-rsh) 622 (cons "rsync" tramp-completion-function-alist-rsh)
623 (cons "remcp" tramp-completion-function-alist-rsh)
623 (cons "rsh" tramp-completion-function-alist-rsh) 624 (cons "rsh" tramp-completion-function-alist-rsh)
624 (cons "ssh" tramp-completion-function-alist-ssh) 625 (cons "ssh" tramp-completion-function-alist-ssh)
625 (cons "ssh1" tramp-completion-function-alist-ssh) 626 (cons "ssh1" tramp-completion-function-alist-ssh)
626 (cons "ssh2" tramp-completion-function-alist-ssh) 627 (cons "ssh2" tramp-completion-function-alist-ssh)
627 (cons "ssh1_old" tramp-completion-function-alist-ssh) 628 (cons "ssh1_old" tramp-completion-function-alist-ssh)
628 (cons "ssh2_old" tramp-completion-function-alist-ssh) 629 (cons "ssh2_old" tramp-completion-function-alist-ssh)
630 (cons "remsh" tramp-completion-function-alist-rsh)
629 (cons "telnet" tramp-completion-function-alist-telnet) 631 (cons "telnet" tramp-completion-function-alist-telnet)
630 (cons "su" tramp-completion-function-alist-su) 632 (cons "su" tramp-completion-function-alist-su)
631 (cons "sudo" tramp-completion-function-alist-su) 633 (cons "sudo" tramp-completion-function-alist-su)
@@ -634,6 +636,7 @@ See `tramp-methods' for a list of possibilities for METHOD."
634 (cons "sshx" tramp-completion-function-alist-ssh) 636 (cons "sshx" tramp-completion-function-alist-ssh)
635 (cons "krlogin" tramp-completion-function-alist-rsh) 637 (cons "krlogin" tramp-completion-function-alist-rsh)
636 (cons "plink" tramp-completion-function-alist-ssh) 638 (cons "plink" tramp-completion-function-alist-ssh)
639 (cons "plink1" tramp-completion-function-alist-ssh)
637 (cons "pscp" tramp-completion-function-alist-ssh) 640 (cons "pscp" tramp-completion-function-alist-ssh)
638 (cons "fcp" tramp-completion-function-alist-ssh) 641 (cons "fcp" tramp-completion-function-alist-ssh)
639 ) 642 )
@@ -665,7 +668,12 @@ Also see `tramp-password-end-of-line'."
665 :group 'tramp 668 :group 'tramp
666 :type 'string) 669 :type 'string)
667 670
668(defcustom tramp-password-end-of-line tramp-rsh-end-of-line 671(defcustom tramp-password-end-of-line
672 (if (string-match "plink" tramp-default-method)
673 ;; Any two characters will do for plink! Doesn't have to be
674 ;; newline characters.
675 "xy"
676 tramp-rsh-end-of-line)
669 "*String used for end of line after sending a password. 677 "*String used for end of line after sending a password.
670It seems that people using plink under Windows need to send 678It seems that people using plink under Windows need to send
671\"\\r\\n\" (carriage-return, then newline) after a password, but just 679\"\\r\\n\" (carriage-return, then newline) after a password, but just
@@ -696,7 +704,7 @@ The regexp should match at end of buffer."
696 :type 'regexp) 704 :type 'regexp)
697 705
698(defcustom tramp-shell-prompt-pattern 706(defcustom tramp-shell-prompt-pattern
699 "^[^#$%>\n]*[#$%>] *\\(\e\\[[0-9;]*[a-zA-Z]\\)?" 707 "^[^#$%>\n]*[#$%>] *\\(\e\\[[0-9;]*[a-zA-Z] *\\)*"
700 "Regexp to match prompts from remote shell. 708 "Regexp to match prompts from remote shell.
701Normally, Tramp expects you to configure `shell-prompt-pattern' 709Normally, Tramp expects you to configure `shell-prompt-pattern'
702correctly, but sometimes it happens that you are connecting to a 710correctly, but sometimes it happens that you are connecting to a
@@ -1580,7 +1588,10 @@ mentioned here will be handled by `tramp-file-name-handler-alist' or the
1580normal Emacs functions.") 1588normal Emacs functions.")
1581 1589
1582;; Handlers for foreign methods, like FTP or SMB, shall be plugged here. 1590;; Handlers for foreign methods, like FTP or SMB, shall be plugged here.
1583(defvar tramp-foreign-file-name-handler-alist nil 1591(defvar tramp-foreign-file-name-handler-alist
1592 ;; (identity . tramp-sh-file-name-handler) should always be the last
1593 ;; entry, since `identity' always matches.
1594 '((identity . tramp-sh-file-name-handler))
1584 "Alist of elements (FUNCTION . HANDLER) for foreign methods handled specially. 1595 "Alist of elements (FUNCTION . HANDLER) for foreign methods handled specially.
1585If (FUNCTION FILENAME) returns non-nil, then all I/O on that file is done by 1596If (FUNCTION FILENAME) returns non-nil, then all I/O on that file is done by
1586calling HANDLER.") 1597calling HANDLER.")
@@ -2168,7 +2179,7 @@ if the remote host can't provide the modtime."
2168 (fa2 (file-attributes file2))) 2179 (fa2 (file-attributes file2)))
2169 (if (and (not (equal (nth 5 fa1) '(0 0))) 2180 (if (and (not (equal (nth 5 fa1) '(0 0)))
2170 (not (equal (nth 5 fa2) '(0 0)))) 2181 (not (equal (nth 5 fa2) '(0 0))))
2171 (> 0 (car (tramp-time-diff (nth 5 fa1) (nth 5 fa2)))) 2182 (> 0 (tramp-time-diff (nth 5 fa1) (nth 5 fa2)))
2172 ;; If one of them is the dont-know value, then we can 2183 ;; If one of them is the dont-know value, then we can
2173 ;; still try to run a shell command on the remote host. 2184 ;; still try to run a shell command on the remote host.
2174 ;; However, this only works if both files are Tramp 2185 ;; However, this only works if both files are Tramp
@@ -2458,8 +2469,10 @@ if the remote host can't provide the modtime."
2458 ;; At least one file a tramp file? 2469 ;; At least one file a tramp file?
2459 (if (or (tramp-tramp-file-p filename) 2470 (if (or (tramp-tramp-file-p filename)
2460 (tramp-tramp-file-p newname)) 2471 (tramp-tramp-file-p newname))
2461 (tramp-do-copy-or-rename-file 2472 (let ((modes (file-modes filename)))
2462 'copy filename newname ok-if-already-exists keep-date) 2473 (tramp-do-copy-or-rename-file
2474 'copy filename newname ok-if-already-exists keep-date)
2475 (set-file-modes newname modes))
2463 (tramp-run-real-handler 2476 (tramp-run-real-handler
2464 'copy-file 2477 'copy-file
2465 (list filename newname ok-if-already-exists keep-date)))) 2478 (list filename newname ok-if-already-exists keep-date))))
@@ -2555,7 +2568,10 @@ KEEP-DATE is non-nil if NEWNAME should have the same timestamp as FILENAME."
2555 (save-excursion 2568 (save-excursion
2556 (set-buffer trampbuf) (erase-buffer) 2569 (set-buffer trampbuf) (erase-buffer)
2557 (insert-file-contents-literally filename) 2570 (insert-file-contents-literally filename)
2558 (let ((coding-system-for-write 'no-conversion)) 2571 ;; We don't want the target file to be compressed, so we let-bind
2572 ;; `jka-compr-inhibit' to t.
2573 (let ((coding-system-for-write 'binary)
2574 (jka-compr-inhibit t))
2559 (write-region (point-min) (point-max) newname))) 2575 (write-region (point-min) (point-max) newname)))
2560 ;; If the operation was `rename', delete the original file. 2576 ;; If the operation was `rename', delete the original file.
2561 (unless (eq op 'copy) 2577 (unless (eq op 'copy)
@@ -2961,6 +2977,12 @@ This will break if COMMAND prints a newline, followed by the value of
2961 filename)) 2977 filename))
2962 (setq tmpfil (tramp-make-temp-file)) 2978 (setq tmpfil (tramp-make-temp-file))
2963 (cond (copy-program 2979 (cond (copy-program
2980 ;; The following should be changed. We need a more general
2981 ;; mechanism to parse extra host args.
2982 (when (string-match "\\([^#]*\\)#\\(.*\\)" host)
2983 (setq copy-args (cons "-p" (cons (match-string 2 host)
2984 rsh-args)))
2985 (setq host (match-string 1 host)))
2964 ;; Use rcp-like program for file transfer. 2986 ;; Use rcp-like program for file transfer.
2965 (tramp-message-for-buffer 2987 (tramp-message-for-buffer
2966 multi-method method user host 2988 multi-method method user host
@@ -3021,7 +3043,7 @@ This will break if COMMAND prints a newline, followed by the value of
3021 ;; line from the output here. Go to point-max, 3043 ;; line from the output here. Go to point-max,
3022 ;; search backward for tramp_exit_status, delete 3044 ;; search backward for tramp_exit_status, delete
3023 ;; between point and point-max if found. 3045 ;; between point and point-max if found.
3024 (let ((coding-system-for-write 'no-conversion)) 3046 (let ((coding-system-for-write 'binary))
3025 (funcall loc-dec (point-min) (point-max)) 3047 (funcall loc-dec (point-min) (point-max))
3026 (write-region (point-min) (point-max) tmpfil)) 3048 (write-region (point-min) (point-max) tmpfil))
3027 (kill-buffer tmpbuf)) 3049 (kill-buffer tmpbuf))
@@ -3058,7 +3080,12 @@ This will break if COMMAND prints a newline, followed by the value of
3058 (signal 'file-error 3080 (signal 'file-error
3059 (format "File `%s' not found on remote host" filename)) 3081 (format "File `%s' not found on remote host" filename))
3060 (list (expand-file-name filename) 0)) 3082 (list (expand-file-name filename) 0))
3061 (let ((local-copy (file-local-copy filename)) 3083 ;; `insert-file-contents-literally' takes care to avoid calling
3084 ;; jka-compr. By let-binding inhibit-file-name-operation, we
3085 ;; propagate that care to the file-local-copy operation.
3086 (let ((local-copy
3087 (let ((inhibit-file-name-operation 'file-local-copy))
3088 (file-local-copy filename)))
3062 (coding-system-used nil) 3089 (coding-system-used nil)
3063 (result nil)) 3090 (result nil))
3064 (when visit 3091 (when visit
@@ -3148,6 +3175,13 @@ This will break if COMMAND prints a newline, followed by the value of
3148 ;; _also_ specifies an encoding function, then that is used for 3175 ;; _also_ specifies an encoding function, then that is used for
3149 ;; encoding the contents of the tmp file. 3176 ;; encoding the contents of the tmp file.
3150 (cond (copy-program 3177 (cond (copy-program
3178 ;; The following should be changed. We need a more general
3179 ;; mechanism to parse extra host args.
3180 (when (string-match "\\([^#]*\\)#\\(.*\\)" host)
3181 (setq copy-args (cons "-p" (cons (match-string 2 host)
3182 rsh-args)))
3183 (setq host (match-string 1 host)))
3184
3151 ;; use rcp-like program for file transfer 3185 ;; use rcp-like program for file transfer
3152 (let ((argl (append copy-args 3186 (let ((argl (append copy-args
3153 (list 3187 (list
@@ -3411,29 +3445,41 @@ ARGS are the arguments OPERATION has been called with."
3411(defun tramp-find-foreign-file-name-handler (filename) 3445(defun tramp-find-foreign-file-name-handler (filename)
3412 "Return foreign file name handler if exists." 3446 "Return foreign file name handler if exists."
3413 (when (tramp-tramp-file-p filename) 3447 (when (tramp-tramp-file-p filename)
3414 (let (elt res) 3448 (let (elt
3415 (dolist (elt tramp-foreign-file-name-handler-alist res) 3449 res
3450 (handler-alist tramp-foreign-file-name-handler-alist))
3451 (while handler-alist
3452 (setq elt (car handler-alist)
3453 handler-alist (cdr handler-alist))
3416 (when (funcall (car elt) filename) 3454 (when (funcall (car elt) filename)
3455 (setq handler-alist nil)
3417 (setq res (cdr elt)))) 3456 (setq res (cdr elt))))
3418 res))) 3457 res)))
3419 3458
3420;; Main function. 3459;; Main function.
3421;;;###autoload 3460;;;###autoload
3422(defun tramp-file-name-handler (operation &rest args) 3461(defun tramp-file-name-handler (operation &rest args)
3423 "Invoke tramp file name handler. 3462 "Invoke Tramp file name handler.
3424Falls back to normal file name handler if no tramp file name handler exists." 3463Falls back to normal file name handler if no tramp file name handler exists."
3425 (save-match-data 3464 (save-match-data
3426 (let* ((fn (assoc operation tramp-file-name-handler-alist)) 3465 (let* ((filename (apply 'tramp-file-name-for-operation operation args))
3427 (filename (apply 'tramp-file-name-for-operation operation args))
3428 (foreign (tramp-find-foreign-file-name-handler filename))) 3466 (foreign (tramp-find-foreign-file-name-handler filename)))
3429 (cond 3467 (cond
3430 (foreign (apply foreign operation args)) 3468 (foreign (apply foreign operation args))
3431 (fn (apply (cdr fn) args))
3432 (t (tramp-run-real-handler operation args)))))) 3469 (t (tramp-run-real-handler operation args))))))
3433 3470
3434;;;###autoload 3471;;;###autoload
3435(put 'tramp-file-name-handler 'file-remote-p t) ;for file-remote-p 3472(put 'tramp-file-name-handler 'file-remote-p t) ;for file-remote-p
3436 3473
3474(defun tramp-sh-file-name-handler (operation &rest args)
3475 "Invoke remote-shell Tramp file name handler.
3476Fall back to normal file name handler if no Tramp handler exists."
3477 (save-match-data
3478 (let ((fn (assoc operation tramp-file-name-handler-alist)))
3479 (if fn
3480 (apply (cdr fn) args)
3481 (tramp-run-real-handler operation args)))))
3482
3437;;;###autoload 3483;;;###autoload
3438(defun tramp-completion-file-name-handler (operation &rest args) 3484(defun tramp-completion-file-name-handler (operation &rest args)
3439 "Invoke tramp file name completion handler. 3485 "Invoke tramp file name completion handler.
@@ -6097,18 +6143,28 @@ T1 and T2 are time values (as returned by `current-time' for example).
6097NOTE: This function will fail if the time difference is too large to 6143NOTE: This function will fail if the time difference is too large to
6098fit in an integer." 6144fit in an integer."
6099 ;; Pacify byte-compiler with `symbol-function'. 6145 ;; Pacify byte-compiler with `symbol-function'.
6100 (cond ((fboundp 'subtract-time) 6146 (cond ((and (fboundp 'subtract-time)
6101 (cadr (funcall (symbol-function 'subtract-time) t1 t2))) 6147 (fboundp 'float-time))
6148 (funcall (symbol-function 'float-time)
6149 (funcall (symbol-function 'subtract-time) t1 t2)))
6150 ((and (fboundp 'subtract-time)
6151 (fboundp 'time-to-seconds))
6152 (funcall (symbol-function 'time-to-seconds)
6153 (funcall (symbol-function 'subtract-time) t1 t2)))
6102 ((fboundp 'itimer-time-difference) 6154 ((fboundp 'itimer-time-difference)
6103 (floor (funcall 6155 (floor (funcall
6104 (symbol-function 'itimer-time-difference) 6156 (symbol-function 'itimer-time-difference)
6105 (if (< (length t1) 3) (append t1 '(0)) t1) 6157 (if (< (length t1) 3) (append t1 '(0)) t1)
6106 (if (< (length t2) 3) (append t2 '(0)) t2)))) 6158 (if (< (length t2) 3) (append t2 '(0)) t2))))
6107 (t 6159 (t
6108 ;; snarfed from Emacs 21 time-date.el 6160 ;; snarfed from Emacs 21 time-date.el; combining
6109 (cadr (let ((borrow (< (cadr t1) (cadr t2)))) 6161 ;; time-to-seconds and subtract-time
6162 (let ((time (let ((borrow (< (cadr t1) (cadr t2))))
6110 (list (- (car t1) (car t2) (if borrow 1 0)) 6163 (list (- (car t1) (car t2) (if borrow 1 0))
6111 (- (+ (if borrow 65536 0) (cadr t1)) (cadr t2)))))))) 6164 (- (+ (if borrow 65536 0) (cadr t1)) (cadr t2))))))
6165 (+ (* (car time) 65536.0)
6166 (cadr time)
6167 (/ (or (nth 2 time) 0) 1000000.0))))))
6112 6168
6113(defun tramp-coding-system-change-eol-conversion (coding-system eol-type) 6169(defun tramp-coding-system-change-eol-conversion (coding-system eol-type)
6114 "Return a coding system like CODING-SYSTEM but with given EOL-TYPE. 6170 "Return a coding system like CODING-SYSTEM but with given EOL-TYPE.
diff --git a/lisp/net/trampver.el b/lisp/net/trampver.el
index b8175946c23..91c4cbb9b5e 100644
--- a/lisp/net/trampver.el
+++ b/lisp/net/trampver.el
@@ -30,7 +30,7 @@
30;; are auto-frobbed from configure.ac, so you should edit that file and run 30;; are auto-frobbed from configure.ac, so you should edit that file and run
31;; "autoconf && ./configure" to change them. 31;; "autoconf && ./configure" to change them.
32 32
33(defconst tramp-version "2.0.34" 33(defconst tramp-version "2.0.35"
34 "This version of Tramp.") 34 "This version of Tramp.")
35 35
36(defconst tramp-bug-report-address "tramp-devel@mail.freesoftware.fsf.org" 36(defconst tramp-bug-report-address "tramp-devel@mail.freesoftware.fsf.org"