diff --git a/compat/mingw.c b/compat/mingw.c
index cdeda1d9859fd545950e0c39ee7de3c9dc09bb07..e190fddf41d6b15d9254859fca8b638ed7c0f428 100644 (file)
--- a/compat/mingw.c
+++ b/compat/mingw.c
if (buf[0] != '#' || buf[1] != '!')
return NULL;
buf[n] = '\0';
if (buf[0] != '#' || buf[1] != '!')
return NULL;
buf[n] = '\0';
- p = strchr(buf, '\n');
- if (!p)
+ p = buf + strcspn(buf, "\r\n");
+ if (!*p)
return NULL;
*p = '\0';
return NULL;
*p = '\0';
}
return 0;
}
}
return 0;
}
+
+char *getpass(const char *prompt)
+{
+ struct strbuf buf = STRBUF_INIT;
+
+ fputs(prompt, stderr);
+ for (;;) {
+ char c = _getch();
+ if (c == '\r' || c == '\n')
+ break;
+ strbuf_addch(&buf, c);
+ }
+ fputs("\n", stderr);
+ return strbuf_detach(&buf, NULL);
+}