~mdw
/
sgt
/
putty
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Some introductory blurb in the docs
[sgt/putty]
/
psftp.c
diff --git
a/psftp.c
b/psftp.c
index
f4c254a
..
1e89575
100644
(file)
--- a/
psftp.c
+++ b/
psftp.c
@@
-406,7
+406,6
@@
int sftp_cmd_put(struct sftp_command *cmd) {
fp = fopen(fname, "rb");
if (!fp) {
printf("local: unable to open %s\n", fname);
fp = fopen(fname, "rb");
if (!fp) {
printf("local: unable to open %s\n", fname);
- fxp_close(fh);
sfree(outfname);
return 0;
}
sfree(outfname);
return 0;
}
@@
-590,6
+589,7
@@
void do_sftp(void) {
fprintf(stderr,
"Fatal: unable to initialise SFTP: %s\n",
fxp_error());
fprintf(stderr,
"Fatal: unable to initialise SFTP: %s\n",
fxp_error());
+ return;
}
/*
}
/*
@@
-860,10
+860,10
@@
static void ssh_sftp_init(void) {
}
static char *password = NULL;
}
static char *password = NULL;
-static int get_
password(const char *prompt, char *str, int maxlen
)
+static int get_
line(const char *prompt, char *str, int maxlen, int is_pw
)
{
HANDLE hin, hout;
{
HANDLE hin, hout;
- DWORD savemode, i;
+ DWORD savemode,
newmode,
i;
if (password) {
static int tried_once = 0;
if (password) {
static int tried_once = 0;
@@
-886,8
+886,12
@@
static int get_password(const char *prompt, char *str, int maxlen)
}
GetConsoleMode(hin, &savemode);
}
GetConsoleMode(hin, &savemode);
- SetConsoleMode(hin, (savemode & (~ENABLE_ECHO_INPUT)) |
- ENABLE_PROCESSED_INPUT | ENABLE_LINE_INPUT);
+ newmode = savemode | ENABLE_PROCESSED_INPUT | ENABLE_LINE_INPUT;
+ if (is_pw)
+ newmode &= ~ENABLE_ECHO_INPUT;
+ else
+ newmode |= ENABLE_ECHO_INPUT;
+ SetConsoleMode(hin, newmode);
WriteFile(hout, prompt, strlen(prompt), &i, NULL);
ReadFile(hin, str, maxlen-1, &i, NULL);
WriteFile(hout, prompt, strlen(prompt), &i, NULL);
ReadFile(hin, str, maxlen-1, &i, NULL);
@@
-897,7
+901,8
@@
static int get_password(const char *prompt, char *str, int maxlen)
if ((int)i > maxlen) i = maxlen-1; else i = i - 2;
str[i] = '\0';
if ((int)i > maxlen) i = maxlen-1; else i = i - 2;
str[i] = '\0';
- WriteFile(hout, "\r\n", 2, &i, NULL);
+ if (is_pw)
+ WriteFile(hout, "\r\n", 2, &i, NULL);
return 1;
}
return 1;
}
@@
-948,7
+953,7
@@
int main(int argc, char *argv[])
char *err;
flags = FLAG_STDERR;
char *err;
flags = FLAG_STDERR;
- ssh_get_
password = &get_password
;
+ ssh_get_
line = &get_line
;
init_winsock();
sk_init();
init_winsock();
sk_init();