Граф коммитов

133 Коммитов

Автор SHA1 Сообщение Дата
naruse b919cb1d93 * include/ruby/ruby.h: replace snprintf and vsnprintf by
ruby_snprintf and ruby_vsnprintf. [ruby-dev:40909]

* configure.in: don't check snprintf(3) and vsnprintf(3).

* include/ruby/missing.h: don't delare snprintf and vsnprintf.

* include/ruby/ruby.h: include stdarg.h.

* sprintf.c: include vsnprintf.c

* vsnprintf.c: renamed from missing/vsnprintf.c.

* vsnprintf.c: remove useless ifdefs.

* win32/mkexports.rb: use ruby_snprintf and ruby_vsnprintf.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27214 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-04-04 01:10:53 +00:00
naruse 12b2e16e21 * sprintf.c (rb_str_format): support %a format. [ruby-dev:40650]
* missing/vsnprintf.c (BSD_vfprintf): ditto.

* missing/vsnprintf.c (cvt): ditto.

* util.c (BSD__hdtoa): added.  This is 2-clause BSDL licensed
  by David Schultz and from FreeBSD.

* LEGAL: add about hdtoa() in util.c.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27141 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-04-01 04:32:57 +00:00
matz bba5e1126b * io.c (rb_io_getline_fast): wrong calculation of new position
from rb_str_coderange_scan_restartable().  [ruby-core:28103]

* io.c (read_all): ditto.  

* sprintf.c (rb_str_format): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26622 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-02-08 15:08:15 +00:00
nobu eb5692ab32 * sprintf.c: fixed type.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25052 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-23 04:17:16 +00:00
matz f7020b1b42 revert r24507. [ruby-dev:39073]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24519 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-13 03:03:20 +00:00
matz 5703c1756c * sprintf.c (rb_str_format): should preserve format encoding
before raising CompatibilityError.  [ruby-list:46274]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24507 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-11 23:53:21 +00:00
matz 91e5ba1cb8 * encoding.c (rb_enc_codepoint_len): combine rb_enc_codepoint()
and rb_enc_codelen() in one function to reduce calls.

* encoding.c (rb_enc_codepoint): compatibility function.

* sprintf.c (rb_str_format): use rb_enc_codepoint_len().

* string.c (rb_str_inspect, rb_str_upcase_bang,
  rb_str_downcase_bang, rb_str_capitalize_bang,
  rb_str_swapcase_bang, trnext, tr_trans, rb_str_delete_bang,
  rb_str_squeeze_bang, rb_str_count, rb_str_split_m,
  rb_str_each_line, rb_str_each_codepoint, rb_str_lstrip_bang,
  sym_printable): ditto.

* transcode.c (make_econv_exception): use rb_enc_mbc_to_codepoint()

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23493 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-05-19 16:59:22 +00:00
nobu 946fe69932 * sprintf.c (rb_str_format): scan coderange incrementally.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23188 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-04-13 08:21:41 +00:00
naruse b2ac99dfa3 * sprintf.c (rb_str_format): optimize previous commit.
[ruby-list:45954]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23187 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-04-13 02:40:20 +00:00
naruse 87335c3e2f * sprintf.c (rb_str_format): check encoding compatibility only on
real parts.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23186 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-04-13 02:00:30 +00:00
nobu 48379c7309 * sprintf.c (rb_str_format): checks if named argument given twice.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23090 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-03-27 23:49:52 +00:00
nobu 456f68f2fd * sprintf.c (GETNAMEARG): remembers named arg is used, to get rid
of too many arguments warning.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23089 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-03-27 21:18:29 +00:00
nobu 22cde7b682 * dir.c, dln.c, parse.y, re.c, ruby.c, sprintf.c, strftime.c,
string.c, util.c, variable.c: use strlcpy, memcpy and snprintf
  instead of strcpy, strncpy and sprintf.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22984 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-03-17 01:29:17 +00:00
nobu 12d2c8ba41 stripped trailing spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22552 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-22 14:23:33 +00:00
usa 7fc5fa69f1 * include/ruby/missing.h, sprintf.c: get rid of a warning of VC++.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21277 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-02 14:35:07 +00:00
nobu ca65828014 * sprintf.c: not force to override snprintf/vsnprintf.
[ruby-core:20824]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21115 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-28 09:40:04 +00:00
mame 41da4d16b0 * sprintf.c (rb_str_format): fix buffer overflow.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20921 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-22 15:18:12 +00:00
nobu 9f3b77e435 * configure.in (mingw): no longer uses snprintf and vsnprintf of
msvcrt.

* win32/win32.c (rb_w32_vsnprintf, rb_w32_snprintf): removed.

* win32/Makefile.sub (config.h): vsnprintf exists in VC7 or later.

* win32/mkexports.rb (Exports#initialize): aliases
  rb_w32_vsnprintf and rb_w32_snprintf for binary compatibility.

* sprintf.c (rb_str_format): uses snprintf instead of sprintf.

* numeric.c (flo_to_s, rb_num2long, rb_num2ll): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20909 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-22 03:05:20 +00:00
nobu d8267b72b5 * util.c (freedtoa): made static to get rid of name clash. a patch by
Tadashi Saito <shiba AT mail2.accsnet.ne.jp> at [ruby-dev:36913]

* util.c (ruby_dtoa): added prefix, ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19927 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-10-24 18:56:31 +00:00
nobu 94355e2984 * sprintf.c (rb_str_format): check if codepoint for %c is valid.
[ruby-dev:36691]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19737 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-10-09 18:41:35 +00:00
matz 8bfa0ac869 * sprintf.c (rb_str_format): add %<name>s style named argument
support.  a patch from Yusuke Endoh <mame at tsg.ne.jp>
  in [ruby-dev:35851].

* sprintf.c (rb_str_format): add gettext style named format
  (%{name}) support.  inspired by [ruby-dev:35852].

* sprintf.c (GETNAMEARG): should raise KeyError exception when no
  named argument found.

* hash.c (rb_hash_fetch): export fetch function.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19641 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-30 08:01:11 +00:00
naruse d51b061565 * include/ruby/oniguruma.h (OnigCodePoint): unsigned long to unsigned int.
* include/ruby/encoding.h (rb_enc_codepoint): ditto.

* encoding.c (rb_enc_codepoint): signed int to unsigned int.

* encoding.c (rb_enc_ascget): ditto.

* string.c (rb_str_casecmp): ditto.

* string.c (enc_succ_alnum_char): ditto.

* string.c (rb_str_inspect): ditto.

* string.c (rb_str_upcase_bang): ditto.

* string.c (rb_str_downcase_bang): ditto.

* string.c (rb_str_capitalize_bang): ditto.

* string.c (rb_str_swapcase_bang): ditto.

* string.c (struct tr): ditto.

* string.c (trnext): ditto.

* string.c (tr_trans): ditto.

* string.c (tr_setup_table): ditto.

* string.c (tr_find): ditto.

* string.c (rb_str_delete_bang): ditto.

* string.c (rb_str_squeeze_bang): ditto.

* string.c (rb_str_count): ditto.

* string.c (rb_str_split_m): ditto.

* string.c (rb_str_each_line): ditto.

* string.c (rb_str_lstrip_bang): ditto.

* string.c (rb_str_rstrip_bang): ditto.

* string.c (rb_str_intern): ditto.

* dir.c (char_casecmp): ditto.

* sprintf.c (rb_str_format): ditto.

* enc/emacs_mule.c (mbc_to_code): to be 32bit clean.

* enc/emacs_mule.c (code_to_mbc): ditto.

* enc/gb18030.c (mbc_to_code): ditto.

* enc/gb18030.c (code_to_mbc): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19295 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-11 10:34:59 +00:00
nobu 076b6a226f * sprintf.c, util.c (quorem, nrv_alloc, dtoa): enabled floating point
support.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18522 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-08-12 07:06:33 +00:00
nobu 70b317b9da * include/ruby/intern.h, sprintf.c (rb_str_catf, rb_str_vcatf): new
functions.  [ruby-dev:35597]

* string.c (rb_str_capacity): new function to return the capacity.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18156 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-07-22 07:48:00 +00:00
nobu 6ccce7e3f5 * missing/vsnprintf.c (struct __sbuf, FILE): use size_t.
* sprintf.c (ruby__sfvwrite): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18142 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-07-21 06:29:35 +00:00
mame 104e841390 * sprintf.c: include ieeefp.h to refer isinf.
* ext/bigdecimal/bigdecimal.c: ditto.

* ext/json/ext/generator/generator.c: ditto.

* rational.c: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17824 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-07-02 16:24:11 +00:00
shyouhei 982450e24f * eval.c (rb_interrupt): trick to suppress GCC warning.
* sprintf.c (rb_str_format): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17777 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-07-01 11:59:50 +00:00
akr 3863e54bbf describe %% in rdoc.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17086 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-10 23:21:26 +00:00
akr 6aee0a5bca update sprintf rdoc.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16100 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-20 06:44:41 +00:00
akr 861219ce4a fix doc.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15734 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-09 01:04:46 +00:00
akr 67151cd7af update sprintf rdoc.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15722 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-07 08:31:41 +00:00
akr fbe88bb213 update sprintf rdoc.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15721 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-06 15:46:18 +00:00
nobu ec2205b205 * sprintf.c (rb_str_format): space flag is in effect for Inf/NaN too.
[ruby-dev:34002]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15720 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-06 08:26:55 +00:00
usa ed6b1829ba * sprintf.c (rb_str_format): casting double to long is undefined
if the interger part of double is out of the range of long.
	  (fix previous commit).



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15716 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-06 06:44:41 +00:00
usa 16d0ad4899 * sprintf.c (rb_str_format): casting double to long is undefined
if the interger part of double is out of the range of long.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15713 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-06 06:20:48 +00:00
nobu 591503c0ab * sprintf.c (rb_str_format): ignore 0 flag for NaN and Inf.
[ruby-dev:33994]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15711 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-06 06:11:43 +00:00
nobu 6b10829b22 * sprintf.c (rb_str_format): no need of loop.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15703 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-06 02:12:31 +00:00
nobu 8c889459cf * sprintf.c (rb_str_format): size_t returned from strlen() can be
unsigned.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15697 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-05 15:34:02 +00:00
matz 18e70b266f * sprintf.c (rb_str_format): "%#.0o" should keep prefix where
"%#.0x" should not.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15648 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-01 00:38:33 +00:00
nobu b980803a6e * sprintf.c (rb_str_format): fix for left justify flag.
* sprintf.c (rb_str_format): zero-precision zero bug revised.
  [ruby-dev:33419]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15281 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-27 14:33:37 +00:00
nobu 7889fdd1e6 * sprintf.c (rb_str_format): fix for octal with precision.
[ruby-dev:33411]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15278 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-27 13:33:41 +00:00
nobu f356662f6b * sprintf.c (rb_str_format): zero-precision zero should be empty.
[ruby-dev:33363]

* sprintf.c (rb_str_format): not prepend octal prefix to negative or
  zero value.  [ruby-dev:33363], [ruby-dev:33367]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15257 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-26 14:46:36 +00:00
nobu 0c390860cb * sprintf.c (remove_sign_bits): returns pointer to the first char to
be used, instead of copying.

* sprintf.c (rb_str_format): negative indicator dots should come
  before sign digits always.  [ruby-dev:33224]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15215 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-24 10:29:22 +00:00
mame d4f83d2261 * sprintf.c: fix comment. [ruby-dev:33275]
* math.c: fix comment.  [ruby-dev:33276]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15191 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-23 14:55:39 +00:00
nobu 2a11c7f62a * sprintf.c (rb_str_format): set result encoding for wider width.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15117 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-18 15:37:22 +00:00
akr 6cdef2dc7e * $Date$ keyword removed to avoid inclusion of locale dependent
string.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14912 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-06 15:49:38 +00:00
akr 1137af8a03 fix a typo.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14812 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-31 09:06:45 +00:00
nobu 3d0260cc94 * include/ruby/encoding.h (rb_enc_sprintf, rb_enc_vsprintf): prototyped.
* sprintf.c (rb_enc_sprintf, rb_enc_vsprintf): new functions to format
  arguments with encoding.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14806 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-30 21:08:36 +00:00
akr 4cf437519f * regerror.c, string.c, io.c, lib/getoptlong.rb, lib/net/imap.rb,
compile.c, sprintf.c, parse.y, ext/win32ole/win32ole.c,
  ext/tk/sample/demos-en/entry3.rb, ext/tk/lib/tcltk.rb,
  ext/openssl/ossl_bn.c, numeric.c, vm.c,
  benchmark/bm_so_meteor_contest.rb, bignum.c, ruby.c: don't "illegal"
  for non law violation context.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14377 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-21 02:31:11 +00:00
matz 1ec5dcdd31 * sprintf.c (rb_str_format): need to clear output buffer to avoid
broken encoding compatibility check.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14279 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-17 16:50:17 +00:00