diff options
author | bors <bors@rust-lang.org> | 2022-10-13 00:22:29 +0000 |
---|---|---|
committer | bors <bors@rust-lang.org> | 2022-10-13 00:22:29 +0000 |
commit | 9960e1cdcc7dfe1cf2acc89ad061d044f66aa076 (patch) | |
tree | 2c6fb6fd98074abce23394c9e008016172aa22db | |
parent | 80b2ede6770c52621f9c9f5488a6385f39f0e30f (diff) | |
parent | bfc406468aa908cb54b962d824221581e11e9a42 (diff) | |
download | rust-libc-9960e1cdcc7dfe1cf2acc89ad061d044f66aa076.tar.gz |
Auto merge of #2957 - SteveLauC:time-fn, r=JohnTitor
add some time functions on glibc and musl
#### man pages
* [asctime/ctime man page](https://man7.org/linux/man-pages/man3/ctime.3.html)
* [strftime](https://man7.org/linux/man-pages/man3/strftime.3.html)
* [strptime](https://man7.org/linux/man-pages/man3/strptime.3.html)
I didn't add `ctime()/ctime_r()` on musl because they involve the `time_t` type, which elicits [a deprecation wraning](https://github.com/rust-lang/libc/pull/1956).
Is it fine to add these two functions on `musl`, they will have the same definitions as the `glibc` ones:
```rust
pub fn ctime(timep: *const time_t) -> *mut ::c_char;
pub fn ctime_r(timep: *const time_t, buf: *mut ::c_char) -> *mut ::c_char;
```
If it's ok, I will add them:)
-rw-r--r-- | libc-test/semver/linux-gnu.txt | 6 | ||||
-rw-r--r-- | libc-test/semver/linux-musl.txt | 5 | ||||
-rw-r--r-- | src/unix/linux_like/linux/gnu/mod.rs | 11 | ||||
-rw-r--r-- | src/unix/linux_like/linux/musl/mod.rs | 10 |
4 files changed, 30 insertions, 2 deletions
diff --git a/libc-test/semver/linux-gnu.txt b/libc-test/semver/linux-gnu.txt index 6b43d6202b..a4289ad849 100644 --- a/libc-test/semver/linux-gnu.txt +++ b/libc-test/semver/linux-gnu.txt @@ -653,4 +653,8 @@ utmpname utmpx utmpxname euidaccess -eaccess
\ No newline at end of file +eaccess +asctime_r +ctime_r +strftime +strptime
\ No newline at end of file diff --git a/libc-test/semver/linux-musl.txt b/libc-test/semver/linux-musl.txt index 96d04e0d90..c00934af10 100644 --- a/libc-test/semver/linux-musl.txt +++ b/libc-test/semver/linux-musl.txt @@ -49,4 +49,7 @@ pwritev64 reallocarray timex euidaccess -eaccess
\ No newline at end of file +eaccess +asctime_r +strftime +strptime
\ No newline at end of file diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index 21e7619db5..3506d922dd 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -1335,6 +1335,17 @@ extern "C" { pub fn euidaccess(pathname: *const ::c_char, mode: ::c_int) -> ::c_int; pub fn eaccess(pathname: *const ::c_char, mode: ::c_int) -> ::c_int; + + pub fn asctime_r(tm: *const ::tm, buf: *mut ::c_char) -> *mut ::c_char; + pub fn ctime_r(timep: *const time_t, buf: *mut ::c_char) -> *mut ::c_char; + + pub fn strftime( + s: *mut ::c_char, + max: ::size_t, + format: *const ::c_char, + tm: *const ::tm, + ) -> ::size_t; + pub fn strptime(s: *const ::c_char, format: *const ::c_char, tm: *mut ::tm) -> *mut ::c_char; } extern "C" { diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index 894f377acf..32d3578218 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -757,6 +757,16 @@ extern "C" { pub fn euidaccess(pathname: *const ::c_char, mode: ::c_int) -> ::c_int; pub fn eaccess(pathname: *const ::c_char, mode: ::c_int) -> ::c_int; + + pub fn asctime_r(tm: *const ::tm, buf: *mut ::c_char) -> *mut ::c_char; + + pub fn strftime( + s: *mut ::c_char, + max: ::size_t, + format: *const ::c_char, + tm: *const ::tm, + ) -> ::size_t; + pub fn strptime(s: *const ::c_char, format: *const ::c_char, tm: *mut ::tm) -> *mut ::c_char; } cfg_if! { |