Yukihiro "Matz" Matsumoto
c94ae288d5
mruby-time: use presym for initialization
2024-06-14 00:16:21 +09:00
Yukihiro "Matz" Matsumoto
4801a424a3
mruby-time: adjust local variable declarations
2024-05-02 19:55:29 +09:00
Yukihiro "Matz" Matsumoto
87b358a342
Including header files in include/* by <>
2024-03-26 13:59:59 +09:00
Yukihiro "Matz" Matsumoto
95765c8193
mruby-time: mrb_time_at is an API function; close #6195
...
5265e35 was wrong. Should not remove `mrb_` prefix from the function.
2024-03-11 09:48:32 +09:00
Yukihiro "Matz" Matsumoto
ae43ce7593
mruby-time: refactor _POSIX_TIMERS handling issue; ref #6124
2023-12-27 22:24:12 +09:00
SiZiOUS
c0ffc13801
mruby-time: protect against incorrectly defined _POSIX_TIMERS
...
This update avoids the following error: operator '&&' has no right operand (related to _POSIX_TIMERS)
See: https://stackoverflow.com/questions/48538243/macro-if-statement-returns-error-operator-has-no-right-operand
2023-12-23 19:16:23 +00:00
Yukihiro "Matz" Matsumoto
b064d7e547
mruby-time/time.c (time_alloc_time): need to handle negative time_t
2023-09-19 14:22:49 +09:00
Yukihiro "Matz" Matsumoto
795044f82c
internal.h: add mrb_check_num_exact prototype to the header
2023-05-30 08:54:05 +09:00
Yukihiro "Matz" Matsumoto
f1a3cfbd3b
add a space between if and (
2023-05-22 11:55:21 +09:00
Yukihiro "Matz" Matsumoto
c32f7915fb
reformat else clause indentation style
2023-05-20 00:21:01 +09:00
Yukihiro "Matz" Matsumoto
eea72ec84a
fix spaces in the type cast expressions (cosmetic changes)
2023-05-18 23:29:16 +09:00
Yukihiro "Matz" Matsumoto
5265e35ad2
mruby-time/time.c: remove mrb_ prefix from static functions
2023-04-03 08:58:33 +09:00
Yukihiro "Matz" Matsumoto
65897145aa
mruby-time/time.c (mrb_to_time_t): should always initialize usec
2023-04-03 08:46:30 +09:00
Yukihiro "Matz" Matsumoto
875e0b0b59
mruby-time/time.c (time_value_from_time_t): should raise exception
...
When time_t does not fit in mrb_int; ref #5958
2023-04-03 08:38:52 +09:00
dearblue
bcce4b7141
Need fixable_time_t_p() always
2023-04-01 23:22:08 +09:00
Yukihiro "Matz" Matsumoto
fc4fe48a00
mruby-time/time.c: fix error message from localtime_r(3) failure
2023-03-10 08:52:06 +09:00
Yukihiro "Matz" Matsumoto
13cd0e5585
mruby-time/time.c (mrb_time_minus): specify mrb_float directly
...
The `typedef mrb_sec` does not improve readability at all.
2023-03-10 08:52:06 +09:00
Yukihiro "Matz" Matsumoto
e62d672ef3
mruby-time/time.c (mrb_to_time_t): support Bigint if defined
2023-03-10 08:52:06 +09:00
Yukihiro "Matz" Matsumoto
c71408bc0a
mruby-time/time.c (mrb_to_time_t): raise error if obj is not time
...
Or a time-compatible object like a number.
2023-03-10 08:52:05 +09:00
Yukihiro "Matz" Matsumoto
7096d277da
mruby-time/time.c: support bigint to time_t if necessary
2023-03-10 08:52:05 +09:00
Yukihiro "Matz" Matsumoto
da8c23524f
mruby-time/time.c (mrb_to_time_t): use floor instead of llround
...
Since we should generate `t=(sec+usec)` from a floating point number
`sec` should be `floor(f)` especially for negative numbers, if the place
for `usec` is specified. In contrast, we can `round` the below point
digits if we are going to ignore them. But we now use `round` instead of
`llround` which directly convert `double` to `long long`, to add
boundary check for conversion.
2023-03-10 08:52:05 +09:00
Yukihiro "Matz" Matsumoto
e5de08b692
mruby-time/time.c (time_mktime): should allow year before 1900
...
If the platform use 64 bit time_t, it is possible to represent the year
before 1903. So we should remove this check.
2023-03-10 08:52:04 +09:00
Yukihiro "Matz" Matsumoto
0a1fd07910
mruby-time/time.c: implement weekday methods in C
2023-02-01 14:33:46 +09:00
Yukihiro "Matz" Matsumoto
9992de5a4f
Rename MRB_TT_DATA to MRB_TT_CDATA
...
`TT_DATA` is too confusing with `Data` objects (which is immutable
Struct like objects introduced in Ruby 3.2).
2022-12-04 22:45:36 +09:00
Yukihiro "Matz" Matsumoto
5eaef1cf25
mruby-time/time.c: properly generate hash from time objects.
2022-08-06 06:43:42 +09:00
Yukihiro "Matz" Matsumoto
c34bb7825a
mruby-time/time.c: add Time#eql? to compare.
2022-08-01 16:29:35 +09:00
Yukihiro "Matz" Matsumoto
475b868b72
time.c: remove duplicated UTC condition check.
2022-01-15 18:24:39 +09:00
Yukihiro "Matz" Matsumoto
171d32c007
time.c: 1969-12-31 23:59:59 is a valid time.
...
But `mktime(3)` for the date returns `-1` which happen to be the
error value.
2022-01-14 11:40:52 +09:00
Yukihiro "Matz" Matsumoto
8f09d8feb4
time.c: check year range before creating Time object.
2022-01-13 15:40:09 +09:00
dearblue
5a57602860
Organize the include of header files
...
- `#include <math.h>` is done in `mruby.h`.
Eliminate the need to worry about the `MRB_NO_FLOAT` macro.
- Include mruby header files before standard header files.
If the standard header file is already placed before `mruby.h`, the standard header file added in the future tends to be placed before `mruby.h`.
This change should some reduce the chances of macros that must be defined becoming undefined in C++ or including problematic header files in a particular mruby build configuration.
2021-08-21 15:42:57 +09:00
Yukihiro "Matz" Matsumoto
26340a8818
time.c: fixed a potential buffer overflow in time_zonename.
2021-07-25 16:43:00 +09:00
Yukihiro "Matz" Matsumoto
c2c0250063
time.c: fixed time_zonename buffer size bug.
2021-07-25 16:38:37 +09:00
Yukihiro "Matz" Matsumoto
368b75d81b
time.c: stop returning LOCAL for the zone name from Time.zone.
2021-07-25 13:07:11 +09:00
Yukihiro "Matz" Matsumoto
2bed2fabae
time.c: update the document for Time#usec; close #5515
2021-07-25 13:07:11 +09:00
Yukihiro "Matz" Matsumoto
5c804cf68f
Remove redundant include headers.
...
- stdlib.h
- stddef.h
- stdint.h
- stdarg.h
- limits.h
- float.h
2021-07-25 13:07:10 +09:00
Yukihiro "Matz" Matsumoto
033aa98cf4
time.c: Windows API provides clock_gettime.
...
`gettimeofday` emulation needed no longer.
2021-05-08 10:34:38 +09:00
Yukihiro "Matz" Matsumoto
4d249c28d9
Skip tests that use Float inside; ref #5421
2021-04-24 12:04:08 +09:00
Yukihiro "Matz" Matsumoto
4b4622f711
time.c: fixable_time_t_p is not used with MRB_NO_FLOAT; #5421
2021-04-24 11:38:56 +09:00
Yukihiro "Matz" Matsumoto
dc88a87f9b
time.c: time_t may be unsigned on some platforms.
2021-04-23 07:53:17 +09:00
Yukihiro "Matz" Matsumoto
049ec9056e
time.c: add integer boundary check for year.
...
On configurations where `sizeof(mrb_int) > sizeof(int)`.
2021-04-19 15:49:50 +09:00
Yukihiro "Matz" Matsumoto
bf524e7002
time.c: calendar clock should use CLOCK_REALTIME; 5e95f11
...
The issue was reported by @shuujii
2021-03-14 14:54:53 +09:00
Yukihiro "Matz" Matsumoto
f2b3529441
time.c: fix errors on Windows and macOS; ref #5354
...
`gmtime_r` detection logic was too strict.
2021-03-08 15:23:29 +09:00
Yukihiro "Matz" Matsumoto
cb3a6dd168
ISO C99 doesn't support unnamed unions; fix #5354
2021-03-08 11:50:52 +09:00
Yukihiro "Matz" Matsumoto
2be1a9c3c7
time.c: timespec_get() never fails.
2021-03-03 12:01:49 +09:00
Yukihiro "Matz" Matsumoto
42afafbd23
time.c: fixed wrong condition to include unistd.h.
2021-03-03 10:15:50 +09:00
Yukihiro "Matz" Matsumoto
79e2ad9a44
time.c: Windows does not have unistd.h.
2021-03-03 10:01:32 +09:00
Yukihiro "Matz" Matsumoto
5e95f11756
time.c: use clock_gettime() if possible.
2021-03-03 09:53:11 +09:00
Yukihiro "Matz" Matsumoto
0c631a4c08
time.c: adjust buffer size in mrb_time_asctime().
2021-03-03 09:52:26 +09:00
Yukihiro "Matz" Matsumoto
384209b8dd
time.c: fix compile errors in mrb_time_asctime().
2021-03-03 09:51:27 +09:00
Yukihiro "Matz" Matsumoto
935a135553
time.c: fixed a bug on no builtin overflow (e.g. VC).
2021-03-01 11:35:15 +09:00