From 09fe8e29c32aa8f78f6417900f6eb9fc8021a951 Mon Sep 17 00:00:00 2001 From: auronandace Date: Tue, 14 Apr 2026 11:00:25 +0100 Subject: [PATCH] verify monetary header includes --- src/header/monetary/cbindgen.toml | 16 ++++++++++++---- src/header/monetary/strfmon.rs | 1 + 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/header/monetary/cbindgen.toml b/src/header/monetary/cbindgen.toml index 8ffbc9b7ab..59294e84c5 100644 --- a/src/header/monetary/cbindgen.toml +++ b/src/header/monetary/cbindgen.toml @@ -1,5 +1,16 @@ -sys_includes = ["stddef.h", "stdint.h", "features.h"] +# POSIX header spec: https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/monetary.h.html +# +# Spec quotations relating to includes: +# - "The header shall define the locale_t type as described in ." +# - "The header shall define the size_t type as described in ." +# - "The header shall define the ssize_t type as described in ." +# +# sys/types.h brings in stddef.h +sys_includes = ["sys/types.h"] include_guard = "_RELIBC_MONETARY_H" +after_includes = """ +#include // for locale_t from locale.h +""" language = "C" style = "tag" no_includes = true @@ -7,6 +18,3 @@ cpp_compat = true [enum] prefix_with_name = true - - - diff --git a/src/header/monetary/strfmon.rs b/src/header/monetary/strfmon.rs index 2320a0452f..ac436d4e9a 100644 --- a/src/header/monetary/strfmon.rs +++ b/src/header/monetary/strfmon.rs @@ -14,6 +14,7 @@ use libm::{fabs, pow, round, trunc}; /// Returns: /// - The number of characters written (excluding the null terminator), or -1 if /// an error occurs (e.g., invalid input, buffer overflow) +#[unsafe(no_mangle)] pub unsafe extern "C" fn strfmon( s: *mut c_char, // Output buffer maxsize: usize, // Maximum size of the buffer