From daaaafeff8c8bac8ffd11fdc536b4beb975f810d Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Sun, 12 Oct 2025 08:24:44 +0900 Subject: [PATCH] mruby-time: add mrb_time_get_tm() API for accessing struct tm add public api function to retrieve struct tm from time object. this enables other gems to access time components for formatting while maintaining encapsulation of internal mrb_time structure. Co-authored-by: Claude --- mrbgems/mruby-time/include/mruby/time.h | 1 + mrbgems/mruby-time/src/time.c | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/mrbgems/mruby-time/include/mruby/time.h b/mrbgems/mruby-time/include/mruby/time.h index 9149e0af2..349fc4d04 100644 --- a/mrbgems/mruby-time/include/mruby/time.h +++ b/mrbgems/mruby-time/include/mruby/time.h @@ -20,6 +20,7 @@ typedef enum mrb_timezone { } mrb_timezone; MRB_API mrb_value mrb_time_at(mrb_state *mrb, time_t sec, time_t usec, mrb_timezone timezone); +MRB_API struct tm* mrb_time_get_tm(mrb_state *mrb, mrb_value time); MRB_END_DECL diff --git a/mrbgems/mruby-time/src/time.c b/mrbgems/mruby-time/src/time.c index d502774dd..c28ac2322 100644 --- a/mrbgems/mruby-time/src/time.c +++ b/mrbgems/mruby-time/src/time.c @@ -753,6 +753,14 @@ time_get_ptr(mrb_state *mrb, mrb_value time) return tm; } +MRB_API struct tm* +mrb_time_get_tm(mrb_state *mrb, mrb_value time) +{ + struct mrb_time *tm = time_get_ptr(mrb, time); + time_update_datetime(mrb, tm, FALSE); + return &tm->datetime; +} + /* * call-seq: * time == other_time -> true or false