summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-sprintf/src
AgeCommit message (Collapse)Author
2019-09-29Further refactoring over #4738Yukihiro "Matz" Matsumoto
2019-09-29Remove unnecessary assignmentsdearblue
2019-09-26Use proper type specifier for `mrb_raisef()`; ref #4731Yukihiro "Matz" Matsumoto
The following two may be different: * `%d` for `int` * `%i` for `mrb_int`
2019-09-26Merge pull request #4731 from dearblue/consistent-typeYukihiro "Matz" Matsumoto
Keep the type of `posarg` consistent
2019-09-25Keep the type of `posarg` consistentdearblue
Match the type with the caller and related functions.
2019-09-25Add "fall through"dearblue
2019-08-05Use new specifiers/modifiers of `mrb_vfromat()`KOBAYASHI Shuji
The binary sizes (gems are only `mruby-bin-mruby`) are reduced slightly in my environment than before the introduction of new specifiers/modifiers (5116789a) with this change. ------------+-------------------+-------------------+-------- BINARY | BEFORE (5116789a) | AFTER (This PR) | RATIO ------------+-------------------+-------------------+-------- mruby | 593416 bytes | 593208 bytes | -0.04% libmruby.a | 769048 bytes | 767264 bytes | -0.23% ------------+-------------------+-------------------+-------- BTW, I accidentally changed `tasks/toolchains/visualcpp.rake` at #4613, so I put it back.
2018-11-19Use type checking `mrb_to_str` instead of converting `mrb_str_to_str`.Yukihiro "Matz" Matsumoto
2018-11-19Removed `to_hash` conversion method.Yukihiro "Matz" Matsumoto
2018-09-14Prevent signed integer overflow.Clayton Smith
2018-09-07Fix integer overflow issue; fix #4108Yukihiro "Matz" Matsumoto
I misunderstood the return value from `snprintf()`, which is NOT number of characters written in buffer, but the number of character the buffer has to have to write the complete output.
2018-07-31Check size of the integer multiply before actual overflow; fix #4062Yukihiro "Matz" Matsumoto
2017-10-13Support MRB_WIHTOUT_FLOAT to mruby-sprintfYAMAMOTO Masaya
2017-09-27fix: mrbgems\mruby-sprintf\src\sprintf.c(1052): warning C4244: '+=': ↵Tomasz Dąbrowski
conversion from 'mrb_int' to 'int', possible loss of data
2017-09-27fix: mrbgems\mruby-sprintf\src\sprintf.c(623): warning C4244: 'function': ↵Tomasz Dąbrowski
conversion from 'mrb_int' to 'int', possible loss of data
2017-09-27fix: mrbgems\mruby-sprintf\src\sprintf.c(646): warning C4244: 'function': ↵Tomasz Dąbrowski
conversion from 'mrb_int' to 'int', possible loss of data
2017-09-27fix: mrbgems\mruby-sprintf\src\sprintf.c(618): warning C4244: ↵Tomasz Dąbrowski
'initializing': conversion from 'mrb_int' to 'int', possible loss of data
2017-09-27fix: mrbgems\mruby-sprintf\src\sprintf.c(516): warning C4244: 'function': ↵Tomasz Dąbrowski
conversion from 'mrb_int' to 'int', possible loss of data
2017-08-18Separate `mrb_str_buf_new` and `mrb_str_new_capa`.Yukihiro "Matz" Matsumoto
`mrb_str_buf_new` is an old function that ensures capacity size of `MRB_STR_BUF_MIN_SIZE` minimum. Usually one need to use `mrb_str_new_capa` instead.
2017-08-12Reduce integer type mismatch warnings in VC.Yukihiro "Matz" Matsumoto
2017-08-09Replaced tabs with spacesChristopher Aue
2017-07-14Avoid duplicated width filling for sprintf `%d` specifier; fix #3736Yukihiro "Matz" Matsumoto
2017-07-05`print("%d", 0)` should not print `-0`; fix #3731Yukihiro "Matz" Matsumoto
2017-07-05Negation was not a good way to handle negative integers; fix #3729Yukihiro "Matz" Matsumoto
There's a number that negation does not work (-2147483648 in 32bit environment).
2017-07-05In Ruby, `sprintf` specifier `%u` should behave as `%d`; fix #3730Yukihiro "Matz" Matsumoto
Since there's no unsigned integer in Ruby. Binary, octal and hexadecimal negative numbers can be represented by using 2's compliment. But decimal (not being power of 2) cannot be use that kind of format.
2017-07-04Refactor `sprintf()` code.Yukihiro "Matz" Matsumoto
2017-07-04Initialize `flags` for each loop.Yukihiro "Matz" Matsumoto
2017-06-28Avoid `mrb_funcall()` unless absolutely necessary; ref #3722Yukihiro "Matz" Matsumoto
As a result, `#chr` is not called for ch < 0x80, so we need to update the "invalid chr" test.
2017-05-25Under MRB_INT64, width may be bigger than INT_MAX; fix #3665Yukihiro "Matz" Matsumoto
2017-05-08Fix segmentation fault ref: #3648ksss
2017-04-29Better error messageNobuyoshi Nakada
Raise argument error with the better message, at the only place where the size to fill can be negative.
2017-04-29Use `FILL` and `PUSH`Nobuyoshi Nakada
Instead of loop or `memcpy` after `CHECK`, use dedicated macros, `FILL` and `PUSH`, respectively.
2017-04-23Refactor "%f" % Inf/NaNNobuyoshi Nakada
As for non-finite float, calculate the exact needed size with the space flag.
2017-04-23Fix space flag when Inf/NaN and width==3Nobuyoshi Nakada
While `"% 2f"` and `"% 4f"` result in `" Inf"` and `" Inf"` respectively, `"% 3f"` results in `"Inf"` (no space).
2017-04-03Unify `else` clause styleYukihiro "Matz" Matsumoto
2017-03-18Should use mrb_int for any objectksss
o=Object.new def o.to_int 1 end p "%*d" % [o, 1]
2017-03-13Fix out-of-bound accessNobuyoshi Nakada
Get rid of out-of-bound access when single % at the end.
2017-03-11The width printf specifier may be negative; fix #3498Yukihiro "Matz" Matsumoto
2017-03-11fixup! Check return value from snprintf(); ref #3498Yukihiro "Matz" Matsumoto
2017-03-11Check return value from snprintf(); ref #3498Yukihiro "Matz" Matsumoto
2017-02-11Avoid integer overflow in sprintf(); fix #3439Yukihiro "Matz" Matsumoto
This issue was reported by https://hackerone.com/aerodudrizzt
2017-01-16Dots is not needed for base 10 negative numbers; fix #3400Yukihiro "Matz" Matsumoto
2016-12-21One less argument for raisef(); fix #3355Yukihiro "Matz" Matsumoto
This issue was reported by https://hackerone.com/mg36
2016-12-18Check if width is zero or negative before fill; fix #3347Yukihiro "Matz" Matsumoto
Reported by https://hackerone.com/haquaman.
2016-12-18Prohibit mixture of posarg and nextarg; ref #3347Yukihiro "Matz" Matsumoto
2016-11-24Fixes for compiling mruby as C++Tomasz Dąbrowski
2016-11-23Fix segfault when Fixnum#chr doesn't return a stringBouke van der Bijl
2016-07-01Fix warning shift-negative-valueksss
2016-04-23mruby-sprintf:fix double negative signs in printf; fix #3148Yukihiro "Matz" Matsumoto
MRB_INT_MAX does not have corresponding positive integer
2016-04-23mruby-sprintf: format specifiers o,u,x,b ignore sign(+); ref #3148Yukihiro "Matz" Matsumoto