summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2022-10-13 00:22:29 +0000
committerbors <bors@rust-lang.org>2022-10-13 00:22:29 +0000
commit9960e1cdcc7dfe1cf2acc89ad061d044f66aa076 (patch)
tree2c6fb6fd98074abce23394c9e008016172aa22db
parent80b2ede6770c52621f9c9f5488a6385f39f0e30f (diff)
parentbfc406468aa908cb54b962d824221581e11e9a42 (diff)
downloadrust-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.txt6
-rw-r--r--libc-test/semver/linux-musl.txt5
-rw-r--r--src/unix/linux_like/linux/gnu/mod.rs11
-rw-r--r--src/unix/linux_like/linux/musl/mod.rs10
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! {