From 7f5cd33fc45bc3002c3acbda0fdab3603d6edb77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= Date: Tue, 13 Oct 2026 20:23:28 +0200 Subject: [PATCH] std.c: fix LC enum for serenity --- lib/std/c.zig | 43 ++++++++++++++++++++++++++++--------------- 1 file changed, 28 insertions(+), 15 deletions(-) diff --git a/lib/std/c.zig b/lib/std/c.zig index b4e29e664b4fd0ba8c04df55677c97d9470378fb..92d45f0b1c0790c0e1c99185faa8a4de08feef9f 100644 --- a/lib/std/c.zig +++ b/lib/std/c.zig @@ -11287,21 +11287,34 @@ pub extern "c" fn setsid() pid_t; /// These are implementation defined but share identical values in at least musl and glibc: /// - https://git.musl-libc.org/cgit/musl/tree/include/locale.h?id=ab31e9d6a0fa7c5c408856c89df2dfb12c344039#n18 /// - https://sourceware.org/git/?p=glibc.git;a=blob;f=locale/bits/locale.h;h=0fcbb66114be5fef0577dc9047256eb508c45919;hb=c90cfce849d010474e8cccf3e5bff49a2c8b141f#l26 -pub const LC = enum(c_int) { - CTYPE = 0, - NUMERIC = 1, - TIME = 2, - COLLATE = 3, - MONETARY = 4, - MESSAGES = 5, - ALL = 6, - PAPER = 7, - NAME = 8, - ADDRESS = 9, - TELEPHONE = 10, - MEASUREMENT = 11, - IDENTIFICATION = 12, - _, +pub const LC = switch (native_os) { + // https://github.com/SerenityOS/serenity/blob/fe4f3879551f2fdd8a24de06b88f4450e2f3b93d/Userland/Libraries/LibC/locale.h#L14-L29 + .serenity => enum(c_int) { + ALL = 0, + NUMERIC = 1, + CTYPE = 2, + COLLATE = 3, + TIME = 4, + MONETARY = 5, + MESSAGES = 6, + _, + }, + else => enum(c_int) { + CTYPE = 0, + NUMERIC = 1, + TIME = 2, + COLLATE = 3, + MONETARY = 4, + MESSAGES = 5, + ALL = 6, + PAPER = 7, + NAME = 8, + ADDRESS = 9, + TELEPHONE = 10, + MEASUREMENT = 11, + IDENTIFICATION = 12, + _, + }, }; pub extern "c" fn setlocale(category: LC, locale: ?[*:0]const u8) ?[*:0]const u8; -- 2.54.0