Re: [PATCH] add Android support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Rafael Gieschke <rafael@xxxxxxxxxxx> writes:

> diff --git a/connect.c b/connect.c
> index 57dc20c..15b285e 100644
> --- a/connect.c
> +++ b/connect.c
> @@ -632,7 +632,11 @@ char *git_getpass(const char *prompt)
>  	if (!askpass)
>  		askpass = getenv("SSH_ASKPASS");
>  	if (!askpass || !(*askpass)) {
> +		#ifndef NO_GETPASS
>  		char *result = getpass(prompt);
> +		#else
> +		char *result = NULL;
> +		#endif
>  		if (!result)
>  			die_errno("Could not read password");
>  		return result;
> diff --git a/ident.c b/ident.c
> index 1c4adb0..76fa786 100644
> --- a/ident.c
> +++ b/ident.c
> @@ -20,7 +20,12 @@ static void copy_gecos(const struct passwd *w, char *name, size_t sz)
>  	 * with commas.  Also & stands for capitalized form of the login name.
>  	 */
>  
> -	for (len = 0, dst = name, src = w->pw_gecos; len < sz; src++) {
> +	#ifndef NO_PW_GECOS
> +	src = w->pw_gecos;
> +	#else
> +	src = "&";
> +	#endif
> +	for (len = 0, dst = name; len < sz; src++) {
>  		int ch = *src;
>  		if (ch != '&') {
>  			*dst++ = ch;

Please do not throw in conditional compilation in a codepath that is
otherwise generic.

Do something like this near the beginning of the file (or if they are
common, in an appropriate header):

        #ifdef NO_GETPASS
        #define getpass(ignored) NULL
        #endif

        #ifdef NO_PW_GECOS
        #define get_gecos(ignored) "&"
        #else
        #define get_gecos(struct_passwd) (struct_passwd->pw_gecos)
        #endif

That way, you do not have to change connect.c at all, and the code that
accesses gecos field would get a slight abstraction, i.e.

	for (len = 0, dst = name, src = get_gecos(w); len < sz; src++) {
		...

I however suspect that NO_GETPASS would be a useless thing in the longer
term. Wouldn't you rather wish to have a native Android UI that asks a
password and plug that implementation as a replacement for git_getpass()?

It might be worthwhile to study how mingw folks do this part before you
dive in and butcher this codepath in a way you may regret later.



--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]