[PATCH 2/6] lib: fwts_log: add fwts_log_get_filenames()

Alex Hung alex.hung at canonical.com
Thu Jun 21 01:04:02 UTC 2012


On 06/20/2012 07:30 PM, Colin King wrote:
> From: Colin Ian King<colin.king at canonical.com>
>
> Add function to return back a string of all the log filenames being
> used.  For multi-log logging, this returns multiple filenames
> separated by a space, e.g. "results.log results.html results.json"
>
> Signed-off-by: Colin Ian King<colin.king at canonical.com>
> ---
>   src/lib/include/fwts_log.h |    1 +
>   src/lib/src/fwts_log.c     |   40 ++++++++++++++++++++++++++++++++++++++++
>   2 files changed, 41 insertions(+)
>
> diff --git a/src/lib/include/fwts_log.h b/src/lib/include/fwts_log.h
> index 513bf88..22ec70e 100644
> --- a/src/lib/include/fwts_log.h
> +++ b/src/lib/include/fwts_log.h
> @@ -144,6 +144,7 @@ int 	  fwts_log_line_number(fwts_log *log);
>   void	  fwts_log_set_line_width(const int width);
>   void	  fwts_log_section_begin(fwts_log *log, const char *name);
>   void	  fwts_log_section_end(fwts_log *log);
> +char     *fwts_log_get_filenames(const char *filename, fwts_log_type type);
>   fwts_log_filename_type fwts_log_get_filename_type(const char *name);
>
>   static inline int fwts_log_type_count(fwts_log_type type)
> diff --git a/src/lib/src/fwts_log.c b/src/lib/src/fwts_log.c
> index 3ab7930..d946c31 100644
> --- a/src/lib/src/fwts_log.c
> +++ b/src/lib/src/fwts_log.c
> @@ -562,6 +562,46 @@ fwts_log_filename_type fwts_log_get_filename_type(const char *filename)
>   }
>
>   /*
> + *  fwts_log_filenames()
> + *	return string of all the log filenames that will be used
> + */
> +char *fwts_log_get_filenames(const char *filename, fwts_log_type type)
> +{
> +	unsigned int i;
> +	char *filenames = NULL;
> +	char *tmp;
> +	size_t len = 0;
> +
> +	for (i=0; i<32; i++) {
> +		fwts_log_type mask = 1<<  i;
> +		if (type&  mask) {
> +			if ((tmp = fwts_log_filename(filename, mask)) == NULL)
> +				return NULL;
> +
> +			if (filenames) {
> +				len += strlen(tmp) + 2;
> +				if ((filenames = realloc(filenames, len)) == NULL) {
> +					free(tmp);
> +					return NULL;
> +				}
> +				strcat(filenames, " ");
> +				strcat(filenames, tmp);
> +			} else {
> +				len = strlen(tmp) + 1;
> +				if ((filenames = malloc(len)) == NULL) {
> +					free(tmp);
> +					return NULL;
> +				}
> +				strcpy(filenames, tmp);
> +			}
> +			free(tmp);
> +		}
> +	}
> +
> +	return filenames;
> +}
> +
> +/*
>    *  fwts_log_open()
>    *	open a log file. if name is stderr or stdout, then attach log to these
>    *	streams.
Acked-by: Alex Hung <alex.hung at canonical.com>




More information about the fwts-devel mailing list