std.c.setlocale: fix return type to nullable pointer

According to https://en.cppreference.com/mwiki/index.php?title=c/locale/setlocale&oldid=171500 ,
`setlocale` "returns null value on failure":

> Return value
> pointer to a narrow null-terminated string identifying the C locale
> after applying the changes, if any, or null pointer on failure.

Example program:
```zig
const std = @import("std");

pub fn main() void {
    const ptr = std.c.setlocale(.ALL, "non_existent");
    std.debug.print("ptr = {d}\n", .{@intFromPtr(ptr)});
}
```

Output:
```console
ptr = 0
```

Signed-off-by: Eric Joldasov <bratishkaerik@landless-city.net>
This commit is contained in:
Eric Joldasov 2024-07-16 00:27:56 +05:00
parent 888708ec8a
commit ece8480fc2
No known key found for this signature in database
GPG Key ID: 5C9C69060686B588

View File

@ -1914,7 +1914,7 @@ pub const LC = enum(c_int) {
IDENTIFICATION = 12,
};
pub extern "c" fn setlocale(category: LC, locale: ?[*:0]const u8) [*:0]const u8;
pub extern "c" fn setlocale(category: LC, locale: ?[*:0]const u8) ?[*:0]const u8;
pub const getcontext = if (builtin.target.isAndroid())
@compileError("android bionic libc does not implement getcontext")