git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] compat: add a getpass() compatibility function

From
Rafael Gieschke <rafael@gieschke.de>
Date
May 19, 2011, 19:16 UTC
Message-ID
<8B762D96-54CF-4E42-BF90-7790E900AA30@gieschke.de>
In-Reply-To
<BANLkTimDW8W13Wm8i+n0ww9jCeHsXc__iA@mail.gmail.com>
Am 19.05.2011 um 20:07 schrieb Erik Faye-Lund:
Show 22 quoted lines
> On Thu, May 19, 2011 at 7:27 PM, Junio C Hamano <gitster@pobox.com> wrote:
>> 
>> Probably a properly abstracted common version would look like a function
>> that calls four platform-dependent helper funcions in this order:
>> 
>>        0. prompt
>>        1. start "noecho" mode
>>        2. get whole line
>>        3. exit "noecho" mode
>> 
> 
> When I think about it a bit more, it feels a bit pointless:
> 0. is identical (fputs)
> 1. is different (tc[gs]etattr vs nop)
> 2. is different (getc vs _getch)
> 3. is different (tcsetattr vs nop)
> 
> So there's probably not much code to share here. There's a bit of
> logic, but I'm not entirely sure this should be the same either,
> because on Windows we have to take care of '\r' (since we open stdin
> in binary mode at start-up).
> 
I agree, 0 would even have to be different, too, as we have to write to /dev/tty (which would have to be opened first) or (as fallback) stderr on POSIX.
Show 10 quoted lines
> diff --git a/compat/mingw.h b/compat/mingw.h
> index 62eccd3..e37d557 100644
> --- a/compat/mingw.h
> +++ b/compat/mingw.h
> @@ -48,6 +48,8 @@ typedef int socklen_t;
> #define EAFNOSUPPORT WSAEAFNOSUPPORT
> #define ECONNABORTED WSAECONNABORTED
> 
> +#define PASS_MAX 512
> +
It might be worth to have this in git-compat-util.h, so it can also be used by compat/getpass.c. I'm not sure about the name, however; it's a remote password and MAX_PASS is about local passwords AFAIK. Maybe PASS_MAX_REMOTE or something similiar. Like that, compat/getpass.c could also be used in case MAX_PASS has some insanely low value on a platform.
Previous: Erik Faye-LundNext: Erik Faye-Lund
Message 7 of 19 in “compat: add a getpass() compatibility function”
  1. compat: add a getpass() compatibility functionRafael Gieschke, May 19, 2011
  2. Erik Faye-LundMay 19, 2011
  3. Junio C HamanoMay 19, 2011
  4. Rafael GieschkeMay 19, 2011
  5. Junio C HamanoMay 19, 2011
  6. Erik Faye-LundMay 19, 2011
  7. Rafael GieschkeMay 19, 2011
  8. Erik Faye-LundMay 19, 2011
  9. Rafael GieschkeMay 19, 2011
  10. Erik Faye-LundMay 19, 2011
  11. Erik Faye-LundMay 19, 2011
  12. Rafael GieschkeMay 20, 2011
  13. Erik Faye-LundMay 20, 2011
  14. Junio C HamanoMay 20, 2011
  15. Erik Faye-LundMay 20, 2011
  16. Erik Faye-LundMay 19, 2011
  17. Jonathan NiederMay 19, 2011
  18. Erik Faye-LundMay 19, 2011
  19. Junio C HamanoMay 19, 2011

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.