All of lore.kernel.org
 help / color / mirror / Atom feed
From: Petr Mladek <pmladek@suse.com>
To: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: Alessandro Zummo <a.zummo@towertech.it>,
	Alexandre Belloni <alexandre.belloni@bootlin.com>,
	linux-rtc@vger.kernel.org, Arnd Bergmann <arnd@arndb.de>,
	Joe Perches <joe@perches.com>, Mark Salyzyn <salyzyn@android.com>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	linux-kernel@vger.kernel.org,
	Rasmus Villemoes <rasmus.villemoes@prevas.dk>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>,
	Dmitry Torokhov <dmitry.torokhov@gmail.com>,
	Guan Xuetao <gxt@mprc.pku.edu.cn>, Ingo Molnar <mingo@kernel.org>,
	Jason Wessel <jason.wessel@windriver.com>,
	Jonathan Corbet <corbet@lwn.net>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Krzysztof Kozlowski <krzk@kernel.org>,
	"Rafael J. Wysocki" <rjw@rjwysocki.net>,
	Thierry Reding <thierry.reding@gmail.com>
Subject: Re: [PATCH v5 02/21] lib/vsprintf: Print time and date in human readable format via %pt
Date: Tue, 4 Dec 2018 14:30:28 +0100	[thread overview]
Message-ID: <20181204133028.xkdnc5bqtqlnb3zu@pathway.suse.cz> (raw)
In-Reply-To: <20181129105956.25933-3-andriy.shevchenko@linux.intel.com>

On Thu 2018-11-29 12:59:40, Andy Shevchenko wrote:
> There are users which print time and date represented by content of
> struct rtc_time in human readable format.
> 
> Instead of open coding that each time introduce %ptR[dt][r] specifier.
> 
> diff --git a/lib/test_printf.c b/lib/test_printf.c
> index 53527ea822b5..97b7d14961d6 100644
> --- a/lib/test_printf.c
> +++ b/lib/test_printf.c
> @@ -418,6 +418,11 @@ struct_va_format(void)
>  {
>  }
>  
> +static void __init
> +struct_rtc_time(void)
> +{
> +}

Just by chance, do you have any plans to add the test code? ;-)

I understand that you did now want to spend time on it before
the real change was accepted.


>  static void __init
>  struct_clk(void)
>  {
> diff --git a/lib/vsprintf.c b/lib/vsprintf.c
> index 37a54a6dd594..b7114799b91f 100644
> --- a/lib/vsprintf.c
> +++ b/lib/vsprintf.c
> +static noinline_for_stack
> +char *rtc_str(char *buf, char *end, const struct rtc_time *tm, const char *fmt)
> +{
> +	bool have_t = true, have_d = true;
> +	bool raw = false;
> +	int count = 2;
> +	bool found;
> +
> +	switch (fmt[count]) {
> +	case 'd':
> +		have_t = false;
> +		count++;
> +		break;
> +	case 't':
> +		have_d = false;
> +		count++;
> +		break;
> +	}
> +
> +	found = true;
> +	do {
> +		switch (fmt[count++]) {
> +		case 'r':
> +			raw = true;
> +			break;
> +		default:
> +			found = false;
> +			break;
> +		}
> +	} while (found);

I guess that the while cycle is remainder from an older version and
should not be here. It handles only the final 'r' now. 


> +	if (have_d)
> +		buf = date_str(buf, end, tm, raw);
> +	if (have_d && have_t) {
> +		/* Respect ISO 8601 */
> +		if (buf < end)
> +			*buf = 'T';

I checked several conversion patches and the original code did not use
the ISO format. The change makes sense (even though I personally
do not like the format much ;-)

Anyway, people might expect that the conversion is 1:1. The change
should get mentioned in the affected patches so that people are
not later surprised.


> +		buf++;
> +	}
> +	if (have_t)
> +		buf = time_str(buf, end, tm, raw);
> +
> +	return buf;
> +}
> +
> +static noinline_for_stack
> +char *timeanddate(char *buf, char *end, void *ptr, struct printf_spec spec,
> +		  const char *fmt)

Please, rename the function to time_and_date(). It is the style used
in this source file and it is much easier to read.

Otherwise, the patch looks fine. It helps to remove the many variants
of the code and unifies the output format.

Best Regards,
Petr

  reply	other threads:[~2018-12-04 13:30 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-11-29 10:59 [PATCH v5 00/21] lib, rtc: Print rtc_time via %ptR[dt][r] Andy Shevchenko
2018-11-29 10:59 ` [PATCH v5 01/21] nvmem: Move nvmem_type_str array to its only user Andy Shevchenko
2018-11-29 10:59 ` [PATCH v5 02/21] lib/vsprintf: Print time and date in human readable format via %pt Andy Shevchenko
2018-12-04 13:30   ` Petr Mladek [this message]
2018-12-04 16:12     ` Andy Shevchenko
2018-12-04 16:16       ` Geert Uytterhoeven
2018-12-04 16:38         ` Andy Shevchenko
2018-11-29 10:59 ` [PATCH v5 03/21] rtc: Switch to use %ptR Andy Shevchenko
2018-11-29 10:59 ` [PATCH v5 04/21] rtc: at91rm9200: " Andy Shevchenko
2018-11-29 10:59 ` [PATCH v5 05/21] rtc: at91sam9: " Andy Shevchenko
2018-11-29 10:59 ` [PATCH v5 06/21] rtc: m41t80: " Andy Shevchenko
2018-11-29 10:59 ` [PATCH v5 07/21] rtc: m48t59: " Andy Shevchenko
2018-11-29 10:59 ` [PATCH v5 08/21] rtc: mcp795: " Andy Shevchenko
2018-11-29 10:59 ` [PATCH v5 09/21] rtc: pcf50633: " Andy Shevchenko
2018-11-29 10:59 ` [PATCH v5 10/21] rtc: pic32: " Andy Shevchenko
2018-11-29 10:59 ` [PATCH v5 11/21] rtc: pm8xxx: " Andy Shevchenko
2018-11-29 10:59 ` [PATCH v5 12/21] rtc: puv3: " Andy Shevchenko
2018-11-29 10:59 ` [PATCH v5 13/21] rtc: rk808: " Andy Shevchenko
2018-11-29 10:59 ` [PATCH v5 14/21] rtc: rx6110: " Andy Shevchenko
2018-11-29 10:59 ` [PATCH v5 15/21] rtc: rx8025: " Andy Shevchenko
2018-11-29 10:59 ` [PATCH v5 16/21] rtc: s3c: " Andy Shevchenko
2018-11-29 10:59 ` [PATCH v5 17/21] rtc: s5m: " Andy Shevchenko
2018-11-29 10:59 ` [PATCH v5 18/21] rtc: tegra: " Andy Shevchenko
2018-11-29 10:59 ` [PATCH v5 19/21] Input: hp_sdc_rtc - " Andy Shevchenko
2018-11-29 10:59 ` [PATCH v5 20/21] m68k/mac: " Andy Shevchenko
2018-12-02  9:42   ` Geert Uytterhoeven
2018-11-29 10:59 ` [PATCH v5 21/21] PM: " Andy Shevchenko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20181204133028.xkdnc5bqtqlnb3zu@pathway.suse.cz \
    --to=pmladek@suse.com \
    --cc=a.zummo@towertech.it \
    --cc=alexandre.belloni@bootlin.com \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=arnd@arndb.de \
    --cc=b.zolnierkie@samsung.com \
    --cc=corbet@lwn.net \
    --cc=dmitry.torokhov@gmail.com \
    --cc=geert@linux-m68k.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=gxt@mprc.pku.edu.cn \
    --cc=jason.wessel@windriver.com \
    --cc=joe@perches.com \
    --cc=jonathanh@nvidia.com \
    --cc=krzk@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-rtc@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=rasmus.villemoes@prevas.dk \
    --cc=rjw@rjwysocki.net \
    --cc=salyzyn@android.com \
    --cc=thierry.reding@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.