summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/man/1/ssh8
-rw-r--r--sys/src/cmd/ssh.c8
2 files changed, 13 insertions, 3 deletions
diff --git a/sys/man/1/ssh b/sys/man/1/ssh
index f2e376e82..3e6ca94d6 100644
--- a/sys/man/1/ssh
+++ b/sys/man/1/ssh
@@ -8,6 +8,8 @@ ssh - secure shell remote login client
] [
.B -R
] [
+.B -r
+] [
.B -t
.I thumbfile
] [
@@ -67,7 +69,7 @@ is interpreted as a subsystem name such as sftp (see
Without
.IR cmd ,
a shell is started on the remote side.
-When the
+In that case and when the
.B $TERM
environment variable is set (such as when started under
a terminal emulator like
@@ -76,6 +78,10 @@ a pseudo terminal will be requested for the shell.
This can be disabled with the
.B -R
option.
+A pseudo-terminal can be requested in all cases
+with the
+.B -r
+option.
.PP
The
.B -d
diff --git a/sys/src/cmd/ssh.c b/sys/src/cmd/ssh.c
index 750563588..2933686f4 100644
--- a/sys/src/cmd/ssh.c
+++ b/sys/src/cmd/ssh.c
@@ -1160,6 +1160,9 @@ main(int argc, char *argv[])
case 'R':
raw = 0;
break;
+ case 'r':
+ raw = 2; /* bloody */
+ break;
case 'u':
user = EARGF(usage());
break;
@@ -1193,8 +1196,9 @@ main(int argc, char *argv[])
for(cmd = nil; *argv != nil; argv++){
if(cmd == nil){
cmd = strdup(*argv);
- raw = 0;
- }else {
+ if(raw == 1)
+ raw = 0;
+ }else{
s = smprint("%s %k", cmd, *argv);
free(cmd);
cmd = s;