aboutsummaryrefslogtreecommitdiffstats
path: root/ext/date/date_core.c
Commit message (Collapse)AuthorAgeFilesLines
* [ruby/date] Revert "Simplify #inspect"Jeremy Evans2019-10-311-2/+5
| | | | | | | | This reverts commit af01edd7d8575f544f647dbe8cde5b6ae535d459. Revert requested by Yui Naruse. https://github.com/ruby/date/commit/875d563557
* [ruby/date] introduce Date::Error, raise Date::Error for everyglaszig2019-10-311-30/+32
| | | | | | "invalid <anything>" type of exception https://github.com/ruby/date/commit/3e55c09ba4
* Fix typo causing Date.new(year, month) to failJeremy Evans2019-10-241-1/+1
| | | | Add a test for this case.
* [ruby/date] Update docszverok2019-10-241-2/+2
| | | | https://github.com/ruby/date/commit/8c02586a98
* [ruby/date] Simplify #inspectzverok2019-10-241-5/+2
| | | | https://github.com/ruby/date/commit/af01edd7d8
* [ruby/date] Remove taint supportJeremy Evans2019-10-241-7/+0
| | | | | | | | Ruby 2.7 deprecates taint and it no longer has an effect. The lack of taint support should not cause a problem in previous versions. https://github.com/ruby/date/commit/519470dc3b
* [ruby/date] Check for numeric arguments in constructorsJeremy Evans2019-10-241-0/+49
| | | | | | | | | | | | | | | Previously, the type of these arguments were not checked, leading to NoMethodErrors in some cases, and TypeErrors in other cases, but not showing what field was having the problems. This change makes it so the field with the problem is included in the error message. For the valid_*? methods, this changes them to return false if one of the arguments that should be numeric is not. Fixes Ruby Bug 11935 Fixes Ruby Misc 15298 https://github.com/ruby/date/commit/a2f4b665f8
* [ruby/date] Make julian dates roundtrip through to_time.to_dateJeremy Evans2019-10-241-5/+12
| | | | | | | | | | | | | | | Previously, julian dates would not round trip through to_time.to_date, because Time is always considered gregorian. This converts the Date instance from julian to gregorian before converting to Time, ensuring that an equal date object will be returned if converting that Time back to Date. This does result in julian Date objects showing different day values if converting to Time. Fixes Ruby Bug 8428. https://github.com/ruby/date/commit/d8df64555e
* [ruby/date] Describe what is meant by valid in the Date.valid_date? rdocJeremy Evans2019-07-221-0/+3
| | | | https://github.com/ruby/date/commit/8eca79d1f0
* date: support for Reiwa, new Japanese eranobu2019-04-091-1/+5
| | | | | | [Feature #15742] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67474 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* date_core.c: [DOC] Heisei will be assumed if no-era [ci skip]nobu2019-04-091-0/+9
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67473 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* date: make zone a substring to copy encoding and taintednessnobu2019-04-031-10/+0
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67425 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* date: use del_hash to extract an element destructivelynobu2019-04-021-2/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67409 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Separate RSTRING_PTR from a function callnobu2018-12-131-1/+3
| | | | | | | Do not apply RSTRING_PTR, a macro which evaluats its argument multiple times, on a function call. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66377 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Revise Date#hour, #min, #secnobu2018-12-121-0/+12
| | | | | | For ActiveSupport. [ruby-core:90443] [Bug #15403] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66362 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ext/date: Fix !NDEBUG codenobu2018-12-111-33/+30
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66330 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* date_core.c: moved some methods to DateTimenobu2018-12-111-25/+10
| | | | | | | | * ext/date/date_core.c (Init_date_core): moved methods which make sense only for DateTime to that class, instead of defining private methods in Date and making them public in DateTime. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66329 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* date_core.c: reorder ComplexDateDatanobu2018-12-111-8/+5
| | | | | | | * ext/date/date_core.c (ComplexDateData): reordered to adjust common part with SimpleDateData. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66328 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* date_core.c: use static ID variablesnobu2018-11-131-4/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65701 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* date_core.c: obey to the allocation frameworknobu2018-11-131-31/+47
| | | | | | | | | * ext/date/date_core.c (date_initialize): separate from date_s_civil and obey the allocation framework. * ext/date/date_core.c (datetime_initialize): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65699 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* date_core.c: respect COMPLEX_DAT bitnobu2018-11-131-39/+25
| | | | | | | * ext/date/date_core.c (d_lite_marshal_load): respect COMPLEX_DAT bit in the pre-allocated structure. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65698 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* date_core.c: keep COMPLEX_DAT bitnobu2018-11-131-3/+22
| | | | | | | | * ext/date/date_core.c (d_lite_initialize_copy): do not change COMPLEX_DAT bit, as the structure does not change. initialize member-wise instead. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65697 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* date_core.c: set/reset COMPLEX_DATnobu2018-11-131-9/+9
| | | | | | | | * ext/date/date_core.c (set_to_simple, set_to_complex): always set/reset COMPLEX_DAT bit, which is very tightly bound to the structure. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65696 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* surround macro block with do/whilenobu2018-09-011-35/+35
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64604 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* [DOC] leap seconds [ci skip]kazu2018-08-311-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64597 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Removed useless assertions [ci skip]nobu2018-03-091-2/+0
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62703 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* date_core.c: check conversionnobu2018-03-071-19/+22
| | | | | | | * ext/date/date_core.c (offset_to_sec, d_lite_plus): check conversion results, to get rid of infinite recursion. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62685 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* date_core.c: ensure symbols static allnobu2018-02-251-5/+5
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62573 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* date_core.c: defensive codenobu2018-02-251-16/+14
| | | | | | | | | * ext/date/date_core.c (f_cmp): check comparison failure. * ext/date/date_core.c (d_lite_step): deal with the comparison result more defensively. [ruby-core:85796] [Bug #14549] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62572 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ext/date/extconf.rb: check for timezone and altzonerhe2017-09-171-2/+2
| | | | | | | | Instead of in configure.in. As of r28592 the HAVE_VAR_TIMEZONE and HAVE_VAR_ALTZONE macros are only used by ext/date. ext/date doesn't care whether they are int or long, so just check for the existence. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59939 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ruby.h: unnormalized Fixnum valuenobu2017-09-071-1/+1
| | | | | | | * include/ruby/ruby.h (ST2FIX): fix unnormalized Fixnum value bug on mingw/mswin. [ruby-core:82687] [Bug #13877] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59765 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* date_core.c: fix docs for %Z formatstomar2017-05-091-2/+2
| | | | | | | | | | * ext/date/date_core.c: [DOC] fix documentation for %Z format of {Date,DateTime}.strftime. Reported by Damon Timm. Based on a patch by nano. [ruby-core:79602] [Bug #13231] [Fix GH-1565] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58643 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* date_core.c: fix error in DateTime docsstomar2017-03-191-12/+12
| | | | | | | | | | * ext/date/date_core.c: [DOC] fix format string for DateTime#rfc3339. Reported by Andreas Rayo Kniep. [ruby-core:68418] [Bug #10936] * ext/date/date_core.c: [DOC] ditto for DateTime#iso8601 and DateTime#xmlschema; other small improvements. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58020 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* date_core.c: expand docs for Date shiftingstomar2017-02-271-5/+43
| | | | | | | | | | | | * ext/date/date_core.c: [DOC] expand docs for Date shifting * add examples for Date#>> and Date#<< that clarify some edge cases * add examples for Date#next_year and Date#prev_year * add cross references to Date#>> and Date#<< [ruby-core:79584] [Bug #13225] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57737 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* date_core.c: [DOC] revise docs [ci skip]nobu2017-02-061-129/+135
| | | | | | | | | | | | | | | | * fix malformed rdoc for Date#today, Date._strptime, and DateTime._strptime * add code examples for Date#<< and Date#>> to demonstrate that different dates can result in the same return value * use Date::ITALY in call-seq instead of only ITALY * fix some copy/paste mistakes where Date should be DateTime * fix various errors and grammar * fix cross references and formatting [ruby-core:79433] [Bug #13193] Author: Marcus Stollsteimer <sto.mar@web.de> git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57549 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* date_core.c: remove assertnobu2016-06-151-2/+0
| | | | | | | * ext/date/date_core.c (decode_jd): do not assert type of argument. just try to convert. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55421 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* date_core.c: missing argumentnobu2016-06-151-1/+1
| | | | | | | * ext/date/date_core.c (d_lite_initialize): fix missing argument for write-barrier. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55420 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ext/date: constifynobu2016-06-081-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55318 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix typos [ci skip]kazu2016-05-201-3/+3
| | | | | | | * ext/date/date_core.c: [DOC] fix typos. [fix GH-1360] patched by @soundasleep git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55083 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ruby.h: RB_INTEGER_TYPE_Pnobu2016-05-181-2/+2
| | | | | | | | * include/ruby/ruby.h (RB_INTEGER_TYPE_P): new macro and underlying inline function to check if the object is an Integer (Fixnum or Bignum). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55044 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* date_core.c: [DOC] markdown to rdoc [ci skip]nobu2016-04-231-148/+136
| | | | | | | | * ext/date/date_core.c (Init_date_core): [DOC] Convert DateTime documentation to RDoc from Markdown. [ruby-core:75136] [Bug #12311] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54721 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/date/date_core.c : remove not used f_getlocal macro.yui-knk2016-04-161-1/+0
| | | | | | After r54553 f_getlocal macro is not used. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54614 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/date/date_core.c : remove not used f_utc6 macro.yui-knk2016-04-161-2/+0
| | | | | | After r54169 f_utc6 macro is not used. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54613 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* date_core.c: preserve timezonenobu2016-04-121-2/+2
| | | | | | | * ext/date/date_core.c (time_to_time): should preserve timezone info. [ruby-core:74889] [Bug #12271] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54553 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* date_core.c: fix indentnobu2016-03-311-48/+48
| | | | | | | * ext/date/date_core.c (d_lite_strftime, dt_lite_strftime): [DOC] fix indent not to be a big sole verbatim. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54445 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* date_core.c: fix DateTime rdocnobu2016-03-311-61/+61
| | | | | | | * ext/date/date_core.c (Init_date_core): [DOC] fix misplaced doc of DateTime. [ruby-core:74729] [Bug #12233] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54444 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* date_core.c: unused variablenobu2016-03-241-5/+2
| | | | | | | * ext/date/date_core.c (dt_lite_jisx0301): remove no longer used variable. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54244 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* date_core.c: append stringsnobu2016-03-241-2/+2
| | | | | | | * ext/date/date_core.c (dt_lite_iso8601): strftimev() always returns a String, so append them directly. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54243 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* date_core.c: fix jisx0301 and iso8601nobu2016-03-241-57/+60
| | | | | | | | * ext/date/date_core.c (d_lite_jisx0301, iso8601_timediv), (dt_lite_jisx0301): format by the format string in local buffer to prevent intermediate strings from GC. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54242 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* date_core.c: fix inspectnobu2016-03-241-51/+27
| | | | | | | * ext/date/date_core.c (mk_inspect_raw, mk_inspect): inspect by "%+"PRIsVALUE, to prevent intermediate strings from GC. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54241 b2dd03c8-39d4-4d8f-98ff-823fe69b080e