[Cluster-devel] [PATCH 3/3] mkfs i18n:

Steven Whitehouse swhiteho at redhat.com
Tue Sep 6 19:10:06 UTC 2011


Hi,

On Tue, 2011-09-06 at 14:41 -0300, Carlos Maiolino wrote:
> Use rpmatch() function to get answer to
> yes-or-no questions during mkfs confirmation
> 
> Signed-off-by: Carlos Maiolino <cmaiolino at redhat.com>
> ---
>  gfs2/mkfs/main_mkfs.c |   30 ++++++++++++++++++++++--------
>  1 files changed, 22 insertions(+), 8 deletions(-)
> 
> diff --git a/gfs2/mkfs/main_mkfs.c b/gfs2/mkfs/main_mkfs.c
> index 4751f19..d68cf98 100644
> --- a/gfs2/mkfs/main_mkfs.c
> +++ b/gfs2/mkfs/main_mkfs.c
> @@ -456,8 +456,11 @@ fail:
>  
>  static void are_you_sure(struct gfs2_sbd *sdp)
>  {
> -	char input[32];
> +	char *line = NULL;
> +	size_t len = 0;
>  	int fd;
> +	int ret = -1;
> +	int res = 0;
>  
>  	fd = open(sdp->device_name, O_RDONLY|O_CLOEXEC);
>  	if (fd < 0)
> @@ -465,14 +468,25 @@ static void are_you_sure(struct gfs2_sbd *sdp)
>  	printf( _("This will destroy any data on %s.\n"), sdp->device_name);
>  	check_dev_content(sdp->device_name);
>  	close(fd);
> -	printf( _("\nAre you sure you want to proceed? [y/n] "));
> -	if(!fgets(input, 32, stdin))
> -		die( _("unable to read from stdin\n"));
> +	
> +	do{
> +		printf( _("\nAre you sure you want to proceed? [y/n]"));
This means that the translator needs to know that rpmatch is being used
and to also know how to translate this accordingly. Why not use
nl_langinfo() to put the response strings into this message?

Also, starting the string with \n is a bit odd too,

Steve.


> +		ret = getline(&line, &len, stdin);
> +		res = rpmatch(line);
> +		
> +		if (res > 0){
> +			free(line);
> +			return;
> +		}
> +		if (!res){
> +			printf("\n");
> +			die( _("aborted\n"));
> +		}
> +		
> +	}while(ret >= 0);
>  
> -	if (input[0] != 'y')
> -		die( _("aborted\n"));
> -	else
> -		printf("\n");
> +	if(line)
> +		free(line);
>  }
>  
>  /**





More information about the Cluster-devel mailing list