Hi Stuart, I can give this a try this weekend if it's not already applied. I've got the ports tree checked out via CVS on my laptop to give this a test and report back.
Regards, -Claudio On Wed, Nov 26, 2025 at 5:10 AM Stuart Henderson <[email protected]> wrote: > > [This message has also been posted to gmane.os.openbsd.misc.] > On 2025-11-26, Claudio Miranda <[email protected]> wrote: > > --0000000000001fa64a0644755b51 > > Content-Type: text/plain; charset="UTF-8" > > > > Greetings and apologies for the delayed reply to the list and to Carson. > > moving to tech@ and CC'ing maintainer > > > So, I finally had a chance to look at this, and it's actually "_I" (as > > in "India") and not a lowercase L as I originally thought (changing > > the application font in MATE to Serif confirmed this). While not > > directly related to what I found, this bug report for the clock applet > > gave me a hint as to what exactly the typo is, and it looks like it > > should be "%_I" (as in "India"). The percent sign is missing, hence > > the time showing up as "_I:ss PM" (where "ss" is seconds which > > displays correctly on the applet). > > > > https://github.com/mate-desktop/mate-panel/issues/1451 > > > > I've only seen this happen on the OpenBSD port of the MATE Clock > > applet. Checked MATE Clock on FreeBSD and Fedora (where I run MATE > > Desktop) and those display correctly. > > to fix that issue, mate-panel changed from one strftime extension > (%l, supported by OpenBSD but not musl libc) to another (%_I, glibc > extension, supported by musl libc, FreeBSD and reportedly AIX, Solaris) > > the %_ extension is from a set of three modifiers which specify padding > behaviour instead of the default for the following format character: > > %0K - like %K but pad numbers with zeros > %_K - like %K but pad numbers with spaces > %-K - like %K but do not pad numbers > > patching this in mate-panel is a pain because the strftime strings > are used as translated strings (i.e. changing to the common local > format where available) so a bunch of .po files would need patches. > > taking a cue from libc's "support" for %E/%O (C99 locale modifiers > which are recognised but ignored) here's a diff to ignore the modifiers > so at least we'd get something sensible printed in these cases. (if > testing with date(1) note that it's statically linked). would this > or something like it make sense? > > Index: time/strftime.c > =================================================================== > RCS file: /cvs/src/lib/libc/time/strftime.c,v > diff -u -p -r1.34 strftime.c > --- time/strftime.c 16 May 2025 14:24:39 -0000 1.34 > +++ time/strftime.c 26 Nov 2025 10:06:55 -0000 > @@ -477,6 +477,16 @@ label: > pt = _fmt(Locale->date_fmt, t, pt, ptlim, > warnp); > continue; > + case '0': > + case '-': > + case '_': > + /* > + * GNU libc extensions. > + * 0 should explicitly specify zero for > padding. > + * - should avoid padding numerical outputs. > + * _ should xplicitly specify space for > padding. > + */ > + goto label; > case '%': > /* > ** X311J/88-090 (4.12.3.5): if conversion char is > Index: time/strptime.c > =================================================================== > RCS file: /cvs/src/lib/libc/time/strptime.c,v > diff -u -p -r1.34 strptime.c > --- time/strptime.c 20 Nov 2025 10:59:56 -0000 1.34 > +++ time/strptime.c 26 Nov 2025 10:06:55 -0000 > @@ -132,6 +132,15 @@ literal: > break; > > /* > + * "Padding" modifiers. Not handled but set the appropriate > + * flag and start over again. > + */ > + case '_': /* "%_?" pad numbers with spaces. */ > + case '0': /* "%0?" pad numbers with zeros. */ > + case '-': /* "%-?" do not pad numbers. */ > + goto again; > + > + /* > * "Alternative" modifiers. Just set the appropriate flag > * and start over again. > */

