aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKai Großjohann2003-07-20 19:04:48 +0000
committerKai Großjohann2003-07-20 19:04:48 +0000
commit90f8dc03085e08b1eba333f4cb943474024c5f44 (patch)
tree93dcc52f43daa327e473b6e407cde1339cbff6e6
parent6013ce4724488c9ec585a4464ced7d1081c5b735 (diff)
downloademacs-90f8dc03085e08b1eba333f4cb943474024c5f44.tar.gz
emacs-90f8dc03085e08b1eba333f4cb943474024c5f44.zip
Tramp 2.0.36 released.
* net/tramp.el (tramp-default-password-end-of-line): Renamed from tramp-password-end-of-line. (tramp-password-end-of-line): New method parameter. (tramp-get-password-end-of-line): Function to access method parameter `tramp-password-end-of-line', or variable `tramp-default-password-end-of-line' (default value). (tramp-methods): Add entries for new parameter tramp-password-end-of-line. (tramp-enter-password): Use new function `tramp-get-password-end-of-line'. (tramp-handle-insert-file-contents): Do not unconditionally inhibit the file operation file-local-copy, only do that when the inhibit-file-name-operation is currently insert-file-contents. This fixes finding remote CVS-controlled files. (It would barf on inserting the CVS/Entries file literally, because the file-local-copy handler wasn't called.) (tramp-handle-shell-command): Support optional third arg ERROR-BUFFER. (tramp-sh-extra-args): Adapt defcustom type to XEmacs. (tramp-initial-commands): New variable. (tramp-process-initial-commands): New function, using the variable. (tramp-open-connection-setup-interactive-shell): Call the new function. (tramp-buffer-name, tramp-debug-buffer-name): Always put the method into the buffer name, never use nil. Reported by Hanak David <dhanak@inf.bme.hu>. (tramp-open-connection-setup-interactive-shell): Erase buffer before sending "stty -onlcr". * net/tramp-vc.el (vc-workfile-unchanged-p): Add comment.
-rw-r--r--lisp/ChangeLog34
-rw-r--r--lisp/net/tramp-vc.el3
-rw-r--r--lisp/net/tramp.el230
-rw-r--r--lisp/net/trampver.el2
4 files changed, 213 insertions, 56 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index d52831ce560..4e3126a300e 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,37 @@
12003-07-20 Kai Gro,A_(Bjohann <kai.grossjohann@gmx.net>
2 Version 2.0.36 of Tramp released.
3
4 * net/tramp.el (tramp-default-password-end-of-line): Renamed from
5 tramp-password-end-of-line.
6 (tramp-password-end-of-line): New method parameter.
7 (tramp-get-password-end-of-line): Function to access method
8 parameter `tramp-password-end-of-line', or variable
9 `tramp-default-password-end-of-line' (default value).
10 (tramp-methods): Add entries for new parameter
11 tramp-password-end-of-line.
12 (tramp-enter-password): Use new function
13 `tramp-get-password-end-of-line'.
14 (tramp-handle-insert-file-contents): Do not
15 unconditionally inhibit the file operation file-local-copy, only
16 do that when the inhibit-file-name-operation is currently
17 insert-file-contents. This fixes finding remote CVS-controlled
18 files. (It would barf on inserting the CVS/Entries file
19 literally, because the file-local-copy handler wasn't called.)
20 (tramp-handle-shell-command): Support optional third arg
21 ERROR-BUFFER.
22 (tramp-sh-extra-args): Adapt defcustom type to XEmacs.
23 (tramp-initial-commands): New variable.
24 (tramp-process-initial-commands): New function, using the variable.
25 (tramp-open-connection-setup-interactive-shell): Call the new
26 function.
27 (tramp-buffer-name, tramp-debug-buffer-name): Always put the
28 method into the buffer name, never use nil. Reported by Hanak
29 David <dhanak@inf.bme.hu>.
30 (tramp-open-connection-setup-interactive-shell): Erase buffer
31 before sending "stty -onlcr".
32
33 * net/tramp-vc.el (vc-workfile-unchanged-p): Add comment.
34
12003-07-19 Markus Rost <rost@math.ohio-state.edu> 352003-07-19 Markus Rost <rost@math.ohio-state.edu>
2 36
3 * textmodes/artist.el (artist-erase-char): Fix default value using 37 * textmodes/artist.el (artist-erase-char): Fix default value using
diff --git a/lisp/net/tramp-vc.el b/lisp/net/tramp-vc.el
index 119bb6af09e..cee13308d38 100644
--- a/lisp/net/tramp-vc.el
+++ b/lisp/net/tramp-vc.el
@@ -336,6 +336,9 @@ Since TRAMP doesn't do async commands yet, this function doesn't, either."
336 (tramp-tramp-file-p filename) 336 (tramp-tramp-file-p filename)
337 (not 337 (not
338 (let ((v (tramp-dissect-file-name filename))) 338 (let ((v (tramp-dissect-file-name filename)))
339 ;; The following check is probably to test whether
340 ;; file-attributes returns correct last modification
341 ;; times. This check needs to be changed.
339 (tramp-get-remote-perl (tramp-file-name-multi-method v) 342 (tramp-get-remote-perl (tramp-file-name-multi-method v)
340 (tramp-file-name-method v) 343 (tramp-file-name-method v)
341 (tramp-file-name-user v) 344 (tramp-file-name-user v)
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
index 50cd8056fde..966d93b719c 100644
--- a/lisp/net/tramp.el
+++ b/lisp/net/tramp.el
@@ -238,28 +238,32 @@ 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 (tramp-password-end-of-line nil))
242 ("scp" (tramp-connection-function tramp-open-connection-rsh) 243 ("scp" (tramp-connection-function tramp-open-connection-rsh)
243 (tramp-login-program "ssh") 244 (tramp-login-program "ssh")
244 (tramp-copy-program "scp") 245 (tramp-copy-program "scp")
245 (tramp-remote-sh "/bin/sh") 246 (tramp-remote-sh "/bin/sh")
246 (tramp-login-args ("-e" "none")) 247 (tramp-login-args ("-e" "none"))
247 (tramp-copy-args nil) 248 (tramp-copy-args nil)
248 (tramp-copy-keep-date-arg "-p")) 249 (tramp-copy-keep-date-arg "-p")
250 (tramp-password-end-of-line nil))
249 ("scp1" (tramp-connection-function tramp-open-connection-rsh) 251 ("scp1" (tramp-connection-function tramp-open-connection-rsh)
250 (tramp-login-program "ssh") 252 (tramp-login-program "ssh")
251 (tramp-copy-program "scp") 253 (tramp-copy-program "scp")
252 (tramp-remote-sh "/bin/sh") 254 (tramp-remote-sh "/bin/sh")
253 (tramp-login-args ("-1" "-e" "none")) 255 (tramp-login-args ("-1" "-e" "none"))
254 (tramp-copy-args ("-1")) 256 (tramp-copy-args ("-1"))
255 (tramp-copy-keep-date-arg "-p")) 257 (tramp-copy-keep-date-arg "-p")
258 (tramp-password-end-of-line nil))
256 ("scp2" (tramp-connection-function tramp-open-connection-rsh) 259 ("scp2" (tramp-connection-function tramp-open-connection-rsh)
257 (tramp-login-program "ssh") 260 (tramp-login-program "ssh")
258 (tramp-copy-program "scp") 261 (tramp-copy-program "scp")
259 (tramp-remote-sh "/bin/sh") 262 (tramp-remote-sh "/bin/sh")
260 (tramp-login-args ("-2" "-e" "none")) 263 (tramp-login-args ("-2" "-e" "none"))
261 (tramp-copy-args ("-2")) 264 (tramp-copy-args ("-2"))
262 (tramp-copy-keep-date-arg "-p")) 265 (tramp-copy-keep-date-arg "-p")
266 (tramp-password-end-of-line nil))
263 ("scp1_old" 267 ("scp1_old"
264 (tramp-connection-function tramp-open-connection-rsh) 268 (tramp-connection-function tramp-open-connection-rsh)
265 (tramp-login-program "ssh1") 269 (tramp-login-program "ssh1")
@@ -267,7 +271,8 @@ This variable defaults to the value of `tramp-encoding-shell'."
267 (tramp-remote-sh "/bin/sh") 271 (tramp-remote-sh "/bin/sh")
268 (tramp-login-args ("-e" "none")) 272 (tramp-login-args ("-e" "none"))
269 (tramp-copy-args nil) 273 (tramp-copy-args nil)
270 (tramp-copy-keep-date-arg "-p")) 274 (tramp-copy-keep-date-arg "-p")
275 (tramp-password-end-of-line nil))
271 ("scp2_old" 276 ("scp2_old"
272 (tramp-connection-function tramp-open-connection-rsh) 277 (tramp-connection-function tramp-open-connection-rsh)
273 (tramp-login-program "ssh2") 278 (tramp-login-program "ssh2")
@@ -275,49 +280,56 @@ This variable defaults to the value of `tramp-encoding-shell'."
275 (tramp-remote-sh "/bin/sh") 280 (tramp-remote-sh "/bin/sh")
276 (tramp-login-args ("-e" "none")) 281 (tramp-login-args ("-e" "none"))
277 (tramp-copy-args nil) 282 (tramp-copy-args nil)
278 (tramp-copy-keep-date-arg "-p")) 283 (tramp-copy-keep-date-arg "-p")
284 (tramp-password-end-of-line nil))
279 ("rsync" (tramp-connection-function tramp-open-connection-rsh) 285 ("rsync" (tramp-connection-function tramp-open-connection-rsh)
280 (tramp-login-program "ssh") 286 (tramp-login-program "ssh")
281 (tramp-copy-program "rsync") 287 (tramp-copy-program "rsync")
282 (tramp-remote-sh "/bin/sh") 288 (tramp-remote-sh "/bin/sh")
283 (tramp-login-args ("-e" "none")) 289 (tramp-login-args ("-e" "none"))
284 (tramp-copy-args ("-e" "ssh")) 290 (tramp-copy-args ("-e" "ssh"))
285 (tramp-copy-keep-date-arg "-t")) 291 (tramp-copy-keep-date-arg "-t")
292 (tramp-password-end-of-line nil))
286 ("remcp" (tramp-connection-function tramp-open-connection-rsh) 293 ("remcp" (tramp-connection-function tramp-open-connection-rsh)
287 (tramp-login-program "remsh") 294 (tramp-login-program "remsh")
288 (tramp-copy-program "rcp") 295 (tramp-copy-program "rcp")
289 (tramp-remote-sh "/bin/sh") 296 (tramp-remote-sh "/bin/sh")
290 (tramp-login-args nil) 297 (tramp-login-args nil)
291 (tramp-copy-args nil) 298 (tramp-copy-args nil)
292 (tramp-copy-keep-date-arg "-p")) 299 (tramp-copy-keep-date-arg "-p")
300 (tramp-password-end-of-line nil))
293 ("rsh" (tramp-connection-function tramp-open-connection-rsh) 301 ("rsh" (tramp-connection-function tramp-open-connection-rsh)
294 (tramp-login-program "rsh") 302 (tramp-login-program "rsh")
295 (tramp-copy-program nil) 303 (tramp-copy-program nil)
296 (tramp-remote-sh "/bin/sh") 304 (tramp-remote-sh "/bin/sh")
297 (tramp-login-args nil) 305 (tramp-login-args nil)
298 (tramp-copy-args nil) 306 (tramp-copy-args nil)
299 (tramp-copy-keep-date-arg nil)) 307 (tramp-copy-keep-date-arg nil)
308 (tramp-password-end-of-line nil))
300 ("ssh" (tramp-connection-function tramp-open-connection-rsh) 309 ("ssh" (tramp-connection-function tramp-open-connection-rsh)
301 (tramp-login-program "ssh") 310 (tramp-login-program "ssh")
302 (tramp-copy-program nil) 311 (tramp-copy-program nil)
303 (tramp-remote-sh "/bin/sh") 312 (tramp-remote-sh "/bin/sh")
304 (tramp-login-args ("-e" "none")) 313 (tramp-login-args ("-e" "none"))
305 (tramp-copy-args nil) 314 (tramp-copy-args nil)
306 (tramp-copy-keep-date-arg nil)) 315 (tramp-copy-keep-date-arg nil)
316 (tramp-password-end-of-line nil))
307 ("ssh1" (tramp-connection-function tramp-open-connection-rsh) 317 ("ssh1" (tramp-connection-function tramp-open-connection-rsh)
308 (tramp-login-program "ssh") 318 (tramp-login-program "ssh")
309 (tramp-copy-program nil) 319 (tramp-copy-program nil)
310 (tramp-remote-sh "/bin/sh") 320 (tramp-remote-sh "/bin/sh")
311 (tramp-login-args ("-1" "-e" "none")) 321 (tramp-login-args ("-1" "-e" "none"))
312 (tramp-copy-args ("-1")) 322 (tramp-copy-args ("-1"))
313 (tramp-copy-keep-date-arg nil)) 323 (tramp-copy-keep-date-arg nil)
324 (tramp-password-end-of-line nil))
314 ("ssh2" (tramp-connection-function tramp-open-connection-rsh) 325 ("ssh2" (tramp-connection-function tramp-open-connection-rsh)
315 (tramp-login-program "ssh") 326 (tramp-login-program "ssh")
316 (tramp-copy-program nil) 327 (tramp-copy-program nil)
317 (tramp-remote-sh "/bin/sh") 328 (tramp-remote-sh "/bin/sh")
318 (tramp-login-args ("-2" "-e" "none")) 329 (tramp-login-args ("-2" "-e" "none"))
319 (tramp-copy-args ("-2")) 330 (tramp-copy-args ("-2"))
320 (tramp-copy-keep-date-arg nil)) 331 (tramp-copy-keep-date-arg nil)
332 (tramp-password-end-of-line nil))
321 ("ssh1_old" 333 ("ssh1_old"
322 (tramp-connection-function tramp-open-connection-rsh) 334 (tramp-connection-function tramp-open-connection-rsh)
323 (tramp-login-program "ssh1") 335 (tramp-login-program "ssh1")
@@ -325,7 +337,8 @@ This variable defaults to the value of `tramp-encoding-shell'."
325 (tramp-remote-sh "/bin/sh") 337 (tramp-remote-sh "/bin/sh")
326 (tramp-login-args ("-e" "none")) 338 (tramp-login-args ("-e" "none"))
327 (tramp-copy-args nil) 339 (tramp-copy-args nil)
328 (tramp-copy-keep-date-arg nil)) 340 (tramp-copy-keep-date-arg nil)
341 (tramp-password-end-of-line nil))
329 ("ssh2_old" 342 ("ssh2_old"
330 (tramp-connection-function tramp-open-connection-rsh) 343 (tramp-connection-function tramp-open-connection-rsh)
331 (tramp-login-program "ssh2") 344 (tramp-login-program "ssh2")
@@ -333,14 +346,16 @@ This variable defaults to the value of `tramp-encoding-shell'."
333 (tramp-remote-sh "/bin/sh") 346 (tramp-remote-sh "/bin/sh")
334 (tramp-login-args ("-e" "none")) 347 (tramp-login-args ("-e" "none"))
335 (tramp-copy-args nil) 348 (tramp-copy-args nil)
336 (tramp-copy-keep-date-arg nil)) 349 (tramp-copy-keep-date-arg nil)
350 (tramp-password-end-of-line nil))
337 ("remsh" (tramp-connection-function tramp-open-connection-rsh) 351 ("remsh" (tramp-connection-function tramp-open-connection-rsh)
338 (tramp-login-program "remsh") 352 (tramp-login-program "remsh")
339 (tramp-copy-program nil) 353 (tramp-copy-program nil)
340 (tramp-remote-sh "/bin/sh") 354 (tramp-remote-sh "/bin/sh")
341 (tramp-login-args nil) 355 (tramp-login-args nil)
342 (tramp-copy-args nil) 356 (tramp-copy-args nil)
343 (tramp-copy-keep-date-arg nil)) 357 (tramp-copy-keep-date-arg nil)
358 (tramp-password-end-of-line nil))
344 ("telnet" 359 ("telnet"
345 (tramp-connection-function tramp-open-connection-telnet) 360 (tramp-connection-function tramp-open-connection-telnet)
346 (tramp-login-program "telnet") 361 (tramp-login-program "telnet")
@@ -348,14 +363,16 @@ This variable defaults to the value of `tramp-encoding-shell'."
348 (tramp-remote-sh "/bin/sh") 363 (tramp-remote-sh "/bin/sh")
349 (tramp-login-args nil) 364 (tramp-login-args nil)
350 (tramp-copy-args nil) 365 (tramp-copy-args nil)
351 (tramp-copy-keep-date-arg nil)) 366 (tramp-copy-keep-date-arg nil)
367 (tramp-password-end-of-line nil))
352 ("su" (tramp-connection-function tramp-open-connection-su) 368 ("su" (tramp-connection-function tramp-open-connection-su)
353 (tramp-login-program "su") 369 (tramp-login-program "su")
354 (tramp-copy-program nil) 370 (tramp-copy-program nil)
355 (tramp-remote-sh "/bin/sh") 371 (tramp-remote-sh "/bin/sh")
356 (tramp-login-args ("-" "%u")) 372 (tramp-login-args ("-" "%u"))
357 (tramp-copy-args nil) 373 (tramp-copy-args nil)
358 (tramp-copy-keep-date-arg nil)) 374 (tramp-copy-keep-date-arg nil)
375 (tramp-password-end-of-line nil))
359 ("sudo" (tramp-connection-function tramp-open-connection-su) 376 ("sudo" (tramp-connection-function tramp-open-connection-su)
360 (tramp-login-program "sudo") 377 (tramp-login-program "sudo")
361 (tramp-copy-program nil) 378 (tramp-copy-program nil)
@@ -363,28 +380,32 @@ This variable defaults to the value of `tramp-encoding-shell'."
363 (tramp-login-args ("-u" "%u" "-s" 380 (tramp-login-args ("-u" "%u" "-s"
364 "-p" "Password:")) 381 "-p" "Password:"))
365 (tramp-copy-args nil) 382 (tramp-copy-args nil)
366 (tramp-copy-keep-date-arg nil)) 383 (tramp-copy-keep-date-arg nil)
384 (tramp-password-end-of-line nil))
367 ("multi" (tramp-connection-function tramp-open-connection-multi) 385 ("multi" (tramp-connection-function tramp-open-connection-multi)
368 (tramp-login-program nil) 386 (tramp-login-program nil)
369 (tramp-copy-program nil) 387 (tramp-copy-program nil)
370 (tramp-remote-sh "/bin/sh") 388 (tramp-remote-sh "/bin/sh")
371 (tramp-login-args nil) 389 (tramp-login-args nil)
372 (tramp-copy-args nil) 390 (tramp-copy-args nil)
373 (tramp-copy-keep-date-arg nil)) 391 (tramp-copy-keep-date-arg nil)
392 (tramp-password-end-of-line nil))
374 ("scpx" (tramp-connection-function tramp-open-connection-rsh) 393 ("scpx" (tramp-connection-function tramp-open-connection-rsh)
375 (tramp-login-program "ssh") 394 (tramp-login-program "ssh")
376 (tramp-copy-program "scp") 395 (tramp-copy-program "scp")
377 (tramp-remote-sh "/bin/sh") 396 (tramp-remote-sh "/bin/sh")
378 (tramp-login-args ("-e" "none" "-t" "-t" "/bin/sh")) 397 (tramp-login-args ("-e" "none" "-t" "-t" "/bin/sh"))
379 (tramp-copy-args nil) 398 (tramp-copy-args nil)
380 (tramp-copy-keep-date-arg "-p")) 399 (tramp-copy-keep-date-arg "-p")
400 (tramp-password-end-of-line nil))
381 ("sshx" (tramp-connection-function tramp-open-connection-rsh) 401 ("sshx" (tramp-connection-function tramp-open-connection-rsh)
382 (tramp-login-program "ssh") 402 (tramp-login-program "ssh")
383 (tramp-copy-program nil) 403 (tramp-copy-program nil)
384 (tramp-remote-sh "/bin/sh") 404 (tramp-remote-sh "/bin/sh")
385 (tramp-login-args ("-e" "none" "-t" "-t" "/bin/sh")) 405 (tramp-login-args ("-e" "none" "-t" "-t" "/bin/sh"))
386 (tramp-copy-args nil) 406 (tramp-copy-args nil)
387 (tramp-copy-keep-date-arg nil)) 407 (tramp-copy-keep-date-arg nil)
408 (tramp-password-end-of-line nil))
388 ("krlogin" 409 ("krlogin"
389 (tramp-connection-function tramp-open-connection-rsh) 410 (tramp-connection-function tramp-open-connection-rsh)
390 (tramp-login-program "krlogin") 411 (tramp-login-program "krlogin")
@@ -392,7 +413,8 @@ This variable defaults to the value of `tramp-encoding-shell'."
392 (tramp-remote-sh "/bin/sh") 413 (tramp-remote-sh "/bin/sh")
393 (tramp-login-args ("-x")) 414 (tramp-login-args ("-x"))
394 (tramp-copy-args nil) 415 (tramp-copy-args nil)
395 (tramp-copy-keep-date-arg nil)) 416 (tramp-copy-keep-date-arg nil)
417 (tramp-password-end-of-line nil))
396 ("plink" 418 ("plink"
397 (tramp-connection-function tramp-open-connection-rsh) 419 (tramp-connection-function tramp-open-connection-rsh)
398 (tramp-login-program "plink") 420 (tramp-login-program "plink")
@@ -400,7 +422,8 @@ This variable defaults to the value of `tramp-encoding-shell'."
400 (tramp-remote-sh "/bin/sh") 422 (tramp-remote-sh "/bin/sh")
401 (tramp-login-args ("-ssh")) ;optionally add "-v" 423 (tramp-login-args ("-ssh")) ;optionally add "-v"
402 (tramp-copy-args nil) 424 (tramp-copy-args nil)
403 (tramp-copy-keep-date-arg nil)) 425 (tramp-copy-keep-date-arg nil)
426 (tramp-password-end-of-line "xy")) ;see docstring for "xy"
404 ("plink1" 427 ("plink1"
405 (tramp-connection-function tramp-open-connection-rsh) 428 (tramp-connection-function tramp-open-connection-rsh)
406 (tramp-login-program "plink") 429 (tramp-login-program "plink")
@@ -408,7 +431,8 @@ This variable defaults to the value of `tramp-encoding-shell'."
408 (tramp-remote-sh "/bin/sh") 431 (tramp-remote-sh "/bin/sh")
409 (tramp-login-args ("-1" "-ssh")) ;optionally add "-v" 432 (tramp-login-args ("-1" "-ssh")) ;optionally add "-v"
410 (tramp-copy-args nil) 433 (tramp-copy-args nil)
411 (tramp-copy-keep-date-arg nil)) 434 (tramp-copy-keep-date-arg nil)
435 (tramp-password-end-of-line "xy")) ;see docstring for "xy"
412 ("pscp" 436 ("pscp"
413 (tramp-connection-function tramp-open-connection-rsh) 437 (tramp-connection-function tramp-open-connection-rsh)
414 (tramp-login-program "plink") 438 (tramp-login-program "plink")
@@ -416,7 +440,8 @@ This variable defaults to the value of `tramp-encoding-shell'."
416 (tramp-remote-sh "/bin/sh") 440 (tramp-remote-sh "/bin/sh")
417 (tramp-login-args ("-ssh")) 441 (tramp-login-args ("-ssh"))
418 (tramp-copy-args nil) 442 (tramp-copy-args nil)
419 (tramp-copy-keep-date-arg "-p")) 443 (tramp-copy-keep-date-arg "-p")
444 (tramp-password-end-of-line "xy")) ;see docstring for "xy"
420 ("fcp" 445 ("fcp"
421 (tramp-connection-function tramp-open-connection-rsh) 446 (tramp-connection-function tramp-open-connection-rsh)
422 (tramp-login-program "fsh") 447 (tramp-login-program "fsh")
@@ -424,7 +449,8 @@ This variable defaults to the value of `tramp-encoding-shell'."
424 (tramp-remote-sh "/bin/sh -i") 449 (tramp-remote-sh "/bin/sh -i")
425 (tramp-login-args ("sh" "-i")) 450 (tramp-login-args ("sh" "-i"))
426 (tramp-copy-args nil) 451 (tramp-copy-args nil)
427 (tramp-copy-keep-date-arg "-p")) 452 (tramp-copy-keep-date-arg "-p")
453 (tramp-password-end-of-line nil))
428 ) 454 )
429 "*Alist of methods for remote files. 455 "*Alist of methods for remote files.
430This is a list of entries of the form (NAME PARAM1 PARAM2 ...). 456This is a list of entries of the form (NAME PARAM1 PARAM2 ...).
@@ -469,6 +495,15 @@ pair of the form (KEY VALUE). The following KEYs are defined:
469 This specifies the parameter to use for the copying program when the 495 This specifies the parameter to use for the copying program when the
470 timestamp of the original file should be kept. For `rcp', use `-p', for 496 timestamp of the original file should be kept. For `rcp', use `-p', for
471 `rsync', use `-t'. 497 `rsync', use `-t'.
498 * `tramp-password-end-of-line'
499 This specifies the string to use for terminating the line after
500 submitting the password. If this method parameter is nil, then the
501 value of the normal variable `tramp-default-password-end-of-line'
502 is used. This parameter is necessary because the \"plink\" program
503 requires any two characters after sending the password. These do
504 not have to be newline or carriage return characters. Other login
505 programs are happy with just one character, the newline character.
506 We use \"xy\" as the value for methods using \"plink\".
472 507
473What does all this mean? Well, you should specify `tramp-login-program' 508What does all this mean? Well, you should specify `tramp-login-program'
474for all methods; this program is used to log in to the remote site. Then, 509for all methods; this program is used to log in to the remote site. Then,
@@ -518,7 +553,9 @@ host other than `localhost' or the name of the local host."
518 (list (const tramp-encoding-function) 553 (list (const tramp-encoding-function)
519 (choice (const nil) function)) 554 (choice (const nil) function))
520 (list (const tramp-decoding-function) 555 (list (const tramp-decoding-function)
521 (choice (const nil) function)))))) 556 (choice (const nil) function))
557 (list (const tramp-password-end-of-line)
558 (choice (const nil) string))))))
522 559
523(defcustom tramp-multi-methods '("multi" "multiu") 560(defcustom tramp-multi-methods '("multi" "multiu")
524 "*List of multi-hop methods. 561 "*List of multi-hop methods.
@@ -664,17 +701,17 @@ the info pages."
664 "*String used for end of line in rsh connections. 701 "*String used for end of line in rsh connections.
665I don't think this ever needs to be changed, so please tell me about it 702I don't think this ever needs to be changed, so please tell me about it
666if you need to change this. 703if you need to change this.
667Also see `tramp-password-end-of-line'." 704Also see the method parameter `tramp-password-end-of-line' and the normal
705variable `tramp-default-password-end-of-line'."
668 :group 'tramp 706 :group 'tramp
669 :type 'string) 707 :type 'string)
670 708
671(defcustom tramp-password-end-of-line 709(defcustom tramp-default-password-end-of-line
672 (if (string-match "plink" tramp-default-method) 710 tramp-rsh-end-of-line
673 ;; Any two characters will do for plink! Doesn't have to be
674 ;; newline characters.
675 "xy"
676 tramp-rsh-end-of-line)
677 "*String used for end of line after sending a password. 711 "*String used for end of line after sending a password.
712This variable provides the default value for the method parameter
713`tramp-password-end-of-line', see `tramp-methods' for more details.
714
678It seems that people using plink under Windows need to send 715It seems that people using plink under Windows need to send
679\"\\r\\n\" (carriage-return, then newline) after a password, but just 716\"\\r\\n\" (carriage-return, then newline) after a password, but just
680\"\\n\" after all other lines. This variable can be used for the 717\"\\n\" after all other lines. This variable can be used for the
@@ -806,7 +843,11 @@ This variable is only used when Tramp needs to start up another shell
806for tilde expansion. The extra arguments should typically prevent the 843for tilde expansion. The extra arguments should typically prevent the
807shell from reading its init file." 844shell from reading its init file."
808 :group 'tramp 845 :group 'tramp
809 :type '(alist :key-type string :value-type string)) 846 ;; This might be the wrong way to test whether the widget type
847 ;; `alist' is available. Who knows the right way to test it?
848 :type (if (get 'alist 'widget-type)
849 '(alist :key-type string :value-type string)
850 '(repeat (cons string string))))
810 851
811(defcustom tramp-prefix-format 852(defcustom tramp-prefix-format
812 (if tramp-unified-filenames "/" "/[") 853 (if tramp-unified-filenames "/" "/[")
@@ -1171,6 +1212,21 @@ See `tramp-actions-before-shell' for more info."
1171 :group 'tramp 1212 :group 'tramp
1172 :type '(repeat (list variable function))) 1213 :type '(repeat (list variable function)))
1173 1214
1215(defcustom tramp-initial-commands
1216 '("unset correct"
1217 "unset autocorrect")
1218 "List of commands to send to the first remote shell that we see.
1219These commands will be sent to any shell, and thus they should be
1220designed to work in such circumstances. Also, restrict the commands
1221to the bare necessity for getting the remote shell into a state
1222where it is possible to execute the Bourne-ish shell.
1223
1224At the moment, the command to execute the Bourne-ish shell uses strange
1225quoting which `tcsh' tries to correct, so we send the command \"unset
1226autocorrect\" to the remote host."
1227 :group 'tramp
1228 :type '(repeat string))
1229
1174;; Chunked sending kluge. We set this to 500 for black-listed constellations 1230;; Chunked sending kluge. We set this to 500 for black-listed constellations
1175;; known to have a bug in `process-send-string'; some ssh connections appear 1231;; known to have a bug in `process-send-string'; some ssh connections appear
1176;; to drop bytes when data is sent too quickly. 1232;; to drop bytes when data is sent too quickly.
@@ -1290,6 +1346,11 @@ method parameter, as specified in `tramp-methods' (which see).")
1290In the connection buffer, this variable has the value of the like-named 1346In the connection buffer, this variable has the value of the like-named
1291method parameter, as specified in `tramp-methods' (which see).") 1347method parameter, as specified in `tramp-methods' (which see).")
1292 1348
1349(defvar tramp-password-end-of-line nil
1350 "This internal variable holds a parameter for `tramp-methods'.
1351In the connection buffer, this variable has the value of the like-named
1352method parameter, as specified in `tramp-methods' (which see).")
1353
1293;; CCC `local in each buffer'? 1354;; CCC `local in each buffer'?
1294(defvar tramp-ls-command nil 1355(defvar tramp-ls-command nil
1295 "This command is used to get a long listing with numeric user and group ids. 1356 "This command is used to get a long listing with numeric user and group ids.
@@ -2896,8 +2957,8 @@ This will break if COMMAND prints a newline, followed by the value of
2896 (let (status) 2957 (let (status)
2897 (when (string-match "&[ \t]*\\'" command) 2958 (when (string-match "&[ \t]*\\'" command)
2898 (error "Tramp doesn't grok asynchronous shell commands, yet")) 2959 (error "Tramp doesn't grok asynchronous shell commands, yet"))
2899 (when error-buffer 2960;; (when error-buffer
2900 (error "Tramp doesn't grok optional third arg ERROR-BUFFER, yet")) 2961;; (error "Tramp doesn't grok optional third arg ERROR-BUFFER, yet"))
2901 (save-excursion 2962 (save-excursion
2902 (tramp-barf-unless-okay 2963 (tramp-barf-unless-okay
2903 multi-method method user host 2964 multi-method method user host
@@ -2905,8 +2966,12 @@ This will break if COMMAND prints a newline, followed by the value of
2905 nil 'file-error 2966 nil 'file-error
2906 "tramp-handle-shell-command: Couldn't `cd %s'" 2967 "tramp-handle-shell-command: Couldn't `cd %s'"
2907 (tramp-shell-quote-argument localname)) 2968 (tramp-shell-quote-argument localname))
2908 (tramp-send-command multi-method method user host 2969 (tramp-send-command
2909 (concat command "; tramp_old_status=$?")) 2970 multi-method method user host
2971 (if error-buffer
2972 (format "( %s ) 2>/tmp/tramp.$$.err; tramp_old_status=$?"
2973 command)
2974 (format "%s ;tramp_old_status=$?" command)))
2910 ;; This will break if the shell command prints "/////" 2975 ;; This will break if the shell command prints "/////"
2911 ;; somewhere. Let's just hope for the best... 2976 ;; somewhere. Let's just hope for the best...
2912 (tramp-wait-for-output)) 2977 (tramp-wait-for-output))
@@ -2918,6 +2983,18 @@ This will break if COMMAND prints a newline, followed by the value of
2918 (setq output-buffer (current-buffer))) 2983 (setq output-buffer (current-buffer)))
2919 (set-buffer output-buffer) 2984 (set-buffer output-buffer)
2920 (insert-buffer (tramp-get-buffer multi-method method user host)) 2985 (insert-buffer (tramp-get-buffer multi-method method user host))
2986 (when error-buffer
2987 (save-excursion
2988 (unless (bufferp error-buffer)
2989 (setq error-buffer (get-buffer-create error-buffer)))
2990 (tramp-send-command
2991 multi-method method user host
2992 "cat /tmp/tramp.$$.err")
2993 (tramp-wait-for-output)
2994 (set-buffer error-buffer)
2995 (insert-buffer (tramp-get-buffer multi-method method user host))
2996 (tramp-send-command-and-check
2997 multi-method method user host "rm -f /tmp/tramp.$$.err")))
2921 (save-excursion 2998 (save-excursion
2922 (tramp-send-command multi-method method user host "cd") 2999 (tramp-send-command multi-method method user host "cd")
2923 (tramp-wait-for-output) 3000 (tramp-wait-for-output)
@@ -3084,7 +3161,10 @@ This will break if COMMAND prints a newline, followed by the value of
3084 ;; jka-compr. By let-binding inhibit-file-name-operation, we 3161 ;; jka-compr. By let-binding inhibit-file-name-operation, we
3085 ;; propagate that care to the file-local-copy operation. 3162 ;; propagate that care to the file-local-copy operation.
3086 (let ((local-copy 3163 (let ((local-copy
3087 (let ((inhibit-file-name-operation 'file-local-copy)) 3164 (let ((inhibit-file-name-operation
3165 (when (eq inhibit-file-name-operation
3166 'insert-file-contents)
3167 'file-local-copy)))
3088 (file-local-copy filename))) 3168 (file-local-copy filename)))
3089 (coding-system-used nil) 3169 (coding-system-used nil)
3090 (result nil)) 3170 (result nil))
@@ -4115,12 +4195,12 @@ hosts, or files, disagree."
4115 4195
4116(defun tramp-buffer-name (multi-method method user host) 4196(defun tramp-buffer-name (multi-method method user host)
4117 "A name for the connection buffer for USER at HOST using METHOD." 4197 "A name for the connection buffer for USER at HOST using METHOD."
4118 (cond (multi-method 4198 (if multi-method
4119 (tramp-buffer-name-multi-method "tramp" multi-method method user host)) 4199 (tramp-buffer-name-multi-method "tramp" multi-method method user host)
4120 (user 4200 (let ((method (tramp-find-method multi-method method user host)))
4121 (format "*tramp/%s %s@%s*" method user host)) 4201 (if user
4122 (t 4202 (format "*tramp/%s %s@%s*" method user host))
4123 (format "*tramp/%s %s*" method host)))) 4203 (format "*tramp/%s %s*" method host))))
4124 4204
4125(defun tramp-buffer-name-multi-method (prefix multi-method method user host) 4205(defun tramp-buffer-name-multi-method (prefix multi-method method user host)
4126 "A name for the multi method connection buffer. 4206 "A name for the multi method connection buffer.
@@ -4150,13 +4230,13 @@ USER the array of user names, HOST the array of host names."
4150 4230
4151(defun tramp-debug-buffer-name (multi-method method user host) 4231(defun tramp-debug-buffer-name (multi-method method user host)
4152 "A name for the debug buffer for USER at HOST using METHOD." 4232 "A name for the debug buffer for USER at HOST using METHOD."
4153 (cond (multi-method 4233 (if multi-method
4154 (tramp-buffer-name-multi-method "debug tramp" 4234 (tramp-buffer-name-multi-method "debug tramp"
4155 multi-method method user host)) 4235 multi-method method user host)
4156 (user 4236 (let ((method (tramp-find-method multi-method method user host)))
4157 (format "*debug tramp/%s %s@%s*" method user host)) 4237 (if user
4158 (t 4238 (format "*debug tramp/%s %s@%s*" method user host)
4159 (format "*debug tramp/%s %s*" method host)))) 4239 (format "*debug tramp/%s %s*" method host)))))
4160 4240
4161(defun tramp-get-debug-buffer (multi-method method user host) 4241(defun tramp-get-debug-buffer (multi-method method user host)
4162 "Get the debug buffer for USER at HOST using METHOD." 4242 "Get the debug buffer for USER at HOST using METHOD."
@@ -4540,6 +4620,28 @@ The terminal type can be configured with `tramp-terminal-type'."
4540 (unless (eq exit 'ok) 4620 (unless (eq exit 'ok)
4541 (error "Login failed")))) 4621 (error "Login failed"))))
4542 4622
4623;; Functions to execute when we have seen the remote shell prompt but
4624;; before we exec the Bourne-ish shell. Note that these commands
4625;; might be sent to any shell, not just a Bourne-ish shell. This
4626;; means that the commands need to work in all shells. (It is also
4627;; okay for some commands to just fail with an error message, but
4628;; please make sure that they at least don't crash the odd shell people
4629;; might be running...)
4630(defun tramp-process-initial-commands (p
4631 multi-method method user host
4632 commands)
4633 "Send list of commands to remote host, in order."
4634 (let (cmd)
4635 (while commands
4636 (setq cmd (pop commands))
4637 (erase-buffer)
4638 (tramp-message 10 "Sending command to remote shell: %s"
4639 cmd)
4640 (tramp-send-command multi-method method user host cmd)
4641 (tramp-barf-if-no-shell-prompt
4642 p 60 "Remote shell command failed: %s" cmd))
4643 (erase-buffer)))
4644
4543;; The actual functions for opening connections. 4645;; The actual functions for opening connections.
4544 4646
4545(defun tramp-open-connection-telnet (multi-method method user host) 4647(defun tramp-open-connection-telnet (multi-method method user host)
@@ -4950,7 +5052,13 @@ seconds. If not, it produces an error message with the given ERROR-ARGS."
4950Uses PROMPT as a prompt and sends the password to process P." 5052Uses PROMPT as a prompt and sends the password to process P."
4951 (let ((pw (tramp-read-passwd prompt))) 5053 (let ((pw (tramp-read-passwd prompt)))
4952 (erase-buffer) 5054 (erase-buffer)
4953 (process-send-string p (concat pw tramp-password-end-of-line)))) 5055 (process-send-string
5056 p (concat pw
5057 (tramp-get-password-end-of-line
5058 tramp-current-multi-method
5059 tramp-current-method
5060 tramp-current-user
5061 tramp-current-host)))))
4954 5062
4955;; HHH: Not Changed. This might handle the case where USER is not 5063;; HHH: Not Changed. This might handle the case where USER is not
4956;; given in the "File name" very poorly. Then, the local 5064;; given in the "File name" very poorly. Then, the local
@@ -4976,6 +5084,8 @@ to set up. METHOD, USER and HOST specify the connection."
4976 ;; a Kerberos login. 5084 ;; a Kerberos login.
4977 (sit-for 1) 5085 (sit-for 1)
4978 (tramp-discard-garbage-erase-buffer p multi-method method user host) 5086 (tramp-discard-garbage-erase-buffer p multi-method method user host)
5087 (tramp-process-initial-commands p multi-method method user host
5088 tramp-initial-commands)
4979 ;; It is useful to set the prompt in the following command because 5089 ;; It is useful to set the prompt in the following command because
4980 ;; some people have a setting for $PS1 which /bin/sh doesn't know 5090 ;; some people have a setting for $PS1 which /bin/sh doesn't know
4981 ;; about and thus /bin/sh will display a strange prompt. For 5091 ;; about and thus /bin/sh will display a strange prompt. For
@@ -5035,6 +5145,7 @@ to set up. METHOD, USER and HOST specify the connection."
5035 ;; We have found a ^M but cannot frob the process coding system 5145 ;; We have found a ^M but cannot frob the process coding system
5036 ;; because we're running on a non-MULE Emacs. Let's try 5146 ;; because we're running on a non-MULE Emacs. Let's try
5037 ;; stty, instead. 5147 ;; stty, instead.
5148 (erase-buffer)
5038 (tramp-message 9 "Trying `stty -onlcr'") 5149 (tramp-message 9 "Trying `stty -onlcr'")
5039 (tramp-send-command-internal multi-method method user host 5150 (tramp-send-command-internal multi-method method user host
5040 "stty -onlcr")))) 5151 "stty -onlcr"))))
@@ -6057,6 +6168,15 @@ If the value is not set for the connection, return `default'"
6057 (error "Method `%s' didn't specify `keep-date' arg for tramp" 6168 (error "Method `%s' didn't specify `keep-date' arg for tramp"
6058 (or multi-method method))))) 6169 (or multi-method method)))))
6059 6170
6171(defun tramp-get-password-end-of-line (multi-method method user host)
6172 (let ((entry (assoc 'tramp-password-end-of-line
6173 (assoc (tramp-find-method multi-method method user host)
6174 tramp-methods))))
6175 (unless entry
6176 (error "Method `%s' didn't specify `password-end-of-line' arg for tramp"
6177 (or multi-method method)))
6178 (or (second entry) tramp-default-password-end-of-line)))
6179
6060;; Auto saving to a special directory. 6180;; Auto saving to a special directory.
6061 6181
6062(defun tramp-make-auto-save-file-name (fn) 6182(defun tramp-make-auto-save-file-name (fn)
@@ -6322,7 +6442,7 @@ Only works for Bourne-like shells."
6322 tramp-auto-save-directory ; vars to dump 6442 tramp-auto-save-directory ; vars to dump
6323 tramp-default-method 6443 tramp-default-method
6324 tramp-rsh-end-of-line 6444 tramp-rsh-end-of-line
6325 tramp-password-end-of-line 6445 tramp-default-password-end-of-line
6326 tramp-remote-path 6446 tramp-remote-path
6327 tramp-login-prompt-regexp 6447 tramp-login-prompt-regexp
6328 tramp-password-prompt-regexp 6448 tramp-password-prompt-regexp
diff --git a/lisp/net/trampver.el b/lisp/net/trampver.el
index 91c4cbb9b5e..f741da82757 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.35" 33(defconst tramp-version "2.0.36"
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"