Hi Stuart, Yeah I noticed when I was working with this yesterday evening, which lead me to another question about building from the source tree, but I digress...
Thanks. On Fri, Nov 28, 2025, 3:06 AM Stuart Henderson <[email protected]> wrote: > this diff is for libc rather than ports. it will definitely fix this > problem, the question is whether it's acceptable to commit it like this. > > -- > Sent from a phone, apologies for poor formatting. > > > On 27 November 2025 20:52:48 Claudio Miranda <[email protected]> wrote: > > 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. >>> */ >>> >> >

