[sheepdog] [PATCH] remove extra newline character from fgets() result

Liu Yuan namei.unix at gmail.com
Mon Aug 19 08:05:11 CEST 2013


On Sat, Aug 17, 2013 at 04:49:13AM +0900, MORITA Kazutaka wrote:
> From: MORITA Kazutaka <morita.kazutaka at lab.ntt.co.jp>
> 
> This adds chomp() to remove an extra "\n".
> 
> Signed-off-by: MORITA Kazutaka <morita.kazutaka at lab.ntt.co.jp>
> ---
>  include/util.h |    1 +
>  lib/logger.c   |   10 +++++-----
>  lib/util.c     |   10 ++++++++++
>  3 files changed, 16 insertions(+), 5 deletions(-)
> 
> diff --git a/include/util.h b/include/util.h
> index ff1f0c7..9e6b959 100644
> --- a/include/util.h
> +++ b/include/util.h
> @@ -104,6 +104,7 @@ int xftruncate(int fd, off_t length);
>  int eventfd_xread(int efd);
>  void eventfd_xwrite(int efd, int value);
>  void pstrcpy(char *buf, int buf_size, const char *str);
> +char *chomp(char *str);
>  int rmdir_r(char *dir_path);
>  int purge_directory(char *dir_path);
>  bool is_numeric(const char *p);
> diff --git a/lib/logger.c b/lib/logger.c
> index 7c9e540..1f92b08 100644
> --- a/lib/logger.c
> +++ b/lib/logger.c
> @@ -731,12 +731,12 @@ int __sd_dump_variable(const char *var)
>  	sd_emerg("dump %s", var);
>  	while (fgets(info, sizeof(info), f) != NULL) {
>  		if (info[0] == '$') {
> -			sd_emerg("%s", info);
> +			sd_emerg("%s", chomp(info));
>  			break;
>  		}
>  	}
>  	while (fgets(info, sizeof(info), f) != NULL)
> -		sd_emerg("%s", info);
> +		sd_emerg("%s", chomp(info));
>  
>  	pclose(f);
>  	return 0;
> @@ -787,7 +787,7 @@ static int dump_stack_frames(void)
>  				}
>  				stack_no = no;
>  				found = true;
> -				sd_emerg("%s", info);
> +				sd_emerg("%s", chomp(info));
>  				break;
>  			}
>  		}
> @@ -801,7 +801,7 @@ static int dump_stack_frames(void)
>  		}
>  
>  		while (fgets(info, sizeof(info), f) != NULL)
> -			sd_emerg("%s", info);
> +			sd_emerg("%s", chomp(info));
>  
>  		pclose(f);
>  	}
> @@ -840,7 +840,7 @@ void sd_backtrace(void)
>  			goto fallback_close;
>  
>  		if (info[0] != '?' && info[0] != '\0')
> -			sd_emerg("%s", info);
> +			sd_emerg("%s", chomp(info));
>  		else
>  			goto fallback_close;
>  
> diff --git a/lib/util.c b/lib/util.c
> index 9781fd8..5454f0a 100644
> --- a/lib/util.c
> +++ b/lib/util.c
> @@ -333,6 +333,16 @@ void pstrcpy(char *buf, int buf_size, const char *str)
>  	*q = '\0';
>  }
>  
> +/* remove a newline character from the end of a string */
> +char *chomp(char *str)
> +{
> +	char *p = strchr(str, '\n');
> +	if (p != NULL)
> +		*p = '\0';
> +
> +	return str;
> +}
> +
>  /* Purge directory recursively */
>  int purge_directory(char *dir_path)
>  {
> -- 
> 1.7.9.5
> 

Applied thanks

Yuan



More information about the sheepdog mailing list