1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
Commit graph

78 commits

Author SHA1 Message Date
nobu
80429eed63 * io.c, process.c, time.c, ext: use rb_sys_fail_str instead of
rb_sys_fail.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34825 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-02-27 01:50:27 +00:00
akr
9056098516 update comment.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34804 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-02-25 07:26:22 +00:00
akr
d9adb03dd9 * ext/curses/curses.c (Init_curses): use rb_define_const once for
Curses::VERSION.

* ext/dbm/dbm.c (Init_dbm): ditto for DBM::VERSION.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34799 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-02-25 02:09:22 +00:00
akr
aa281e7517 * ext/curses/curses.c (Init_curses): make Curses::VERSION
understandable without context.

* ext/dbm/dbm.c (Init_dbm): ditto for DBM::VERSION.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34798 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-02-25 01:36:33 +00:00
akr
8963f50f26 * ext/dbm/extconf.rb: check DBM_SUFFIX for Mac OS X.
Its ndbm.h doesn't include db.h.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34726 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-02-21 21:13:52 +00:00
akr
eac1d9cfca * ext/dbm/dbm.c (fdbm_initialize): disable Berkeley DB error messages.
* ext/dbm/extconf.rb: check DBC type for above.

[ruby-dev:45269]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34724 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-02-21 21:04:04 +00:00
akr
95f3f9829f * ext/dbm/dbm.c (Init_dbm): refine DBM::VERSION definition.
* ext/dbm/extconf.rb: provide RUBYDBM_GDBM_HEADER macro.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34696 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-02-19 14:02:14 +00:00
akr
0187905af2 * ext/dbm/extconf.rb: detect GDBM's ndbm.h by testing dbm_clearerr is
an empty macro.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34685 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-02-18 16:06:52 +00:00
akr
fc0111cce1 * ext/dbm/extconf.rb (dblib): prefer recent GDBM over older GDBM.
(have_declared_libvar): new function to check a declared variable
  exists in a library.
  (have_undeclared_libvar): renamed from renamed from have_libvar.
  (headers.db_check2): check that GDBM version variable if GDBM header
  is choosen.

* ext/dbm/dbm.c (Init_dbm): use HAVE_DECLARED_LIBVAR_GDBM_VERSION and
  HAVE_UNDECLARED_LIBVAR_GDBM_VERSION macro.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34679 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-02-18 09:47:07 +00:00
akr
e7a1d4a309 * ext/dbm/dbm.c (DBM::VERSION): define it by detecting _GDBM_H_ or
_DBM_IOERR.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34672 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-02-18 03:51:52 +00:00
akr
f119915f51 update doc.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34560 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-02-11 12:05:57 +00:00
shirosaki
9678dce5a4 * ext/dbm/dbm.c (Init_dbm): fix a build error on mswin32.
use `extern __declspec(dllimport)` for dll link with VC.
  [ruby-core:41996] [Bug ]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34265 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-01-10 13:21:54 +00:00
akr
a408b64c62 update doc.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34241 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-01-09 05:09:57 +00:00
akr
5335b4b608 update doc.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34240 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-01-09 04:02:08 +00:00
akr
c5fada686d fix spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33964 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-12-06 10:38:28 +00:00
akr
bb1875175b * ext/dbm/dbm.c: use db_version() instead of DB_VERSION_STRING for
detect runtime Berkeley DB version.
  use dpversion instead of _QDBM_VERSION for detect runtime QDBM
  [ruby-dev:44948]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33963 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-12-06 10:21:12 +00:00
akr
2f49f5ee0b * ext/dbm/extconf.rb: detect gdbm_version in libgdbm.
* ext/dbm/dbm.c: make DBM::VERSION more informative for gdbm, qdbm and
  Berkeley DB 1.x.  [ruby-dev:44944]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33959 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-12-06 03:38:07 +00:00
nobu
416778c5d8 * ext/dbm/extconf.rb: use convertible_int.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33738 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-11-13 14:47:31 +00:00
akr
abe61eb0d1 update comments.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33735 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-11-13 12:32:15 +00:00
akr
df2e1f85d2 * ext/dbm/extconf.rb: dbm_clearerr should be available in all ndbm
implementation.  If it is not available, it is caused by
  header/library mismatch such that Berkeley DB header & gdbm library.

* ext/dbm/dbm.c (fdbm_store): use dbm_clearerr() unconditionally.
  gdbm 1.9 provides it as a real function instead of a empty macro.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33723 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-11-12 07:06:09 +00:00
akr
e68f4ac7dc add comment.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33700 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-11-10 11:39:16 +00:00
nobu
0e4c2ce841 * ext/dbm/dbm.c (fdbm_fetch, fdbm_key, fdbm_delete, fdbm_store)
(fdbm_has_key, fdbm_has_value): get rid of overflow.
* ext/gdbm/gdbm.c (rb_gdbm_fetch2, rb_gdbm_nextkey)
  (rb_gdbm_delete, fgdbm_store, fgdbm_has_key): ditto.
* ext/dbm/dbm.c (fdbm_delete_if): hide intermediate objects.
* ext/gdbm/gdbm.c (fgdbm_delete_if): ditto.
* ext/dbm/extconf.rb: check size of datum.dsize to get rid of
  overflow.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33676 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-11-08 14:34:39 +00:00
akr
733a57b878 add comment.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33656 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-11-07 12:16:10 +00:00
akr
e4e5b7df4c * ext/dbm/extconf.rb: check dbm_pagfno() and dbm_dirfno().
* ext/dbm/dbm.c: use above to set close-on-exec flag.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33652 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-11-07 11:17:17 +00:00
nobu
413f24d3b0 * whitespace cleanup.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33634 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-11-04 07:19:23 +00:00
akr
1bbae2431f add comment.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33599 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-11-01 03:04:53 +00:00
akr
a16c2745fe * ext/dbm/dbm.c (fdbm_initialize): use O_CLOEXEC if available.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33586 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-31 13:07:26 +00:00
naruse
78df33a0c1 * enc/utf_16le.c: surpress warning: shorten-64-to-32.
* ext/dbm/dbm.c: ditto.

* ext/gdbm/gdbm.c: ditto.

* parse.y (Init_ripper): surpress warning: unused value.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31141 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-03-21 21:23:42 +00:00
akr
adfcc591a8 * ext/dbm/dbm.c: parenthesize macro arguments.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30802 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-02-06 02:29:49 +00:00
nobu
d8dfba24bb * ext/dbm/dbm.c: rdoc based on a patch by mathew meta AT
pobox.com, at [ruby-core:32853].

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29540 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-10-20 14:54:40 +00:00
nobu
048d2e6d32 * ext/dbm/dbm.c (struct dbmdata, fdbm_key, fdbm_delete_if): fixed
type warnings.

* time.c (calc_tm_yday): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28656 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-07-16 07:40:37 +00:00
nobu
977267c2e0 * ext/**/*.[ch]: removed trailing spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27437 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-04-22 08:04:13 +00:00
knu
38d2bcd952 * ext/dbm/dbm.c (fdbm_initialize): Make the file variable
volatile, because FilePathValue() currently does not protect the
  given variable from GC. (Probably it should)

* ext/sdbm/init.c (fsdbm_initialize): Ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23057 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-03-23 12:45:23 +00:00
matz
c82769f227 * ext/dbm/dbm.c (fdbm_index): make #index warn like Hash.
* ext/dbm/dbm.c (fdbm_key): new method.

* ext/sdbm/init.c: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20146 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-11-07 22:07:05 +00:00
matz
6259c87d02 * include/ruby/ruby.h (ExportStringValue): new macro to convert
string in internal encoding to external to export.

* string.c (rb_str_export): new function to do conversion to
  external encoding.

* ext/sdbm/init.c: encoding conversion support.

* ext/dbm/dbm.c: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19855 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-10-20 08:05:44 +00:00
ko1
72ba13aa8e * array.c, bignum.c, cont.c, dir.c, dln.c, encoding.c, enumerator.c,
enumerator.c (enumerator_allocate), eval_jump.c, file.c, hash.c,
  io.c, load.c, pack.c, proc.c, random.c, re.c, ruby.c, st.c,
  string.c, thread.c, thread_pthread.c, time.c, util.c, variable.c,
  vm.c, gc.c:
  allocated memory objects by xmalloc (ruby_xmalloc) should be
  freed by xfree (ruby_xfree).
* ext/curses/curses.c, ext/dbm/dbm.c, ext/digest/digest.c,
  ext/gdbm/gdbm.c, ext/json/ext/parser/parser.c,
  ext/json/ext/parser/unicode.c, ext/openssl/ossl_cipher.c,
  ext/openssl/ossl_hmac.c, ext/openssl/ossl_pkey_ec.c,
  ext/sdbm/init.c, ext/strscan/strscan.c, ext/zlib/zlib.c:
  ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17017 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-08 10:01:40 +00:00
knu
ffc456d0ed * ext/dbm/dbm.c (fdbm_each_value, fdbm_each_key, fdbm_each_pair):
GDBM#{each,each_pair,each_key,each_value}: Return an enumerator
	  if no block is given.

	* ext/gdbm/gdbm.c (fgdbm_each_value, fgdbm_each_key,
	  fgdbm_each_pair): GDBM#{each,each_pair,each_key,each_value}:
	  Return an enumerator if no block is given.

	* ext/openssl/ossl_config.c (ossl_config_each):
	  OpenSSL::Config#each: Return an enumerator if no block is given.

	* ext/readline/readline.c (hist_each): Readline::HISTORY#each:
	  Return an enumerator if no block is given.

	* ext/sdbm/init.c (fsdbm_each_value, fsdbm_each_key,
	  fsdbm_each_pair): SDBM#{each,each_pair,each_key,each_value}:
	  Return an enumerator if no block is given.

* ext/stringio/stringio.c (strio_each_byte, strio_each):
  StringIO#{each,each_line,each_byte}: Return an enumerator if no
  block is given.

* ext/stringio/stringio.c (Init_stringio): Add #lines and #bytes,
  which are aliases to #each_line and #each_byte, respectively.

* ext/win32ole/win32ole.c (fole_each): WIN32OLE#each: Return an
  enumerator if no block is given.

* ext/zlib/zlib.c (rb_gzreader_each_byte, rb_gzreader_each):
  Zlib::GzipReader#{each,each_line,each_byte}: Return an
  enumerator if no block is given.

* ext/zlib/zlib.c (Init_zlib): Add Zlib::GzipReader#lines and
  #bytes, which are aliases to #each_line and #each_byte,
  respectively.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16125 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-21 08:48:33 +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
matz
2156870525 * ruby.h (struct RArray): embed small arrays.
(RARRAY_LEN): defined for accessing array members.
  (RARRAY_PTR): ditto.

* array.c: use RARRAY_LEN and RARRAY_PTR.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10833 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-09-02 14:42:08 +00:00
matz
25c50cd193 * ruby.h (struct RString): embed small strings.
(RSTRING_LEN): defined for accessing string members.
  (RSTRING_PTR): ditto.

* string.c: use RSTRING_LEN and RSTRING_PTR.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10809 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-08-31 10:30:33 +00:00
matz
7f72360259 * parse.y (parser_parse_string): mention "regexp" in a error
message.  a patch from Mauricio Fernandez <mfp at acm.org>
  [ruby-core:07340]

* eval.c (rb_f_autoload): check if ruby_cbase is nil (during
  instance_eval for objects cannot have singleton classes,
  e.g. fixnums and symbols).  [ruby-dev:28178]

* gc.c (rb_gc_call_finalizer_at_exit): turn on during_gc while
  invoking finalizers.

* gc.c (rb_gc_finalize_deferred): ditto.

* io.c (rb_write_error2): use fwrite(3) if rb_stderr is not
  updated or is already freed.  [ruby-dev:28313]

* eval.c (error_line): include the class name of a surrounding
  method in error position description.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9918 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-02-13 04:53:22 +00:00
matz
5675cdbd41 * eval.c: unify ruby_class (for method definition) and ruby_cbase
(for constant reference).

* eval.c (rb_call0): use TMP_ALLOC() instead of allocating
  a temporary array object.

* eval.c (eval): need not to protect $SAFE value.
  [ruby-core:07177]

* error.c (Init_Exception): change NameError to direct subclass of
  Exception so that default rescue do not handle it silently.

* struct.c (rb_struct_select): update RDoc description.
  [ruby-core:7254]

* numeric.c (int_upto): return an enumerator if no block is
  attached to the method.

* numeric.c (int_downto): ditto.

* numeric.c (int_dotimes): ditto.

* enum.c (enum_first): new method Enumerable#first to take first n
  element from an enumerable.

* enum.c (enum_group_by): new method Enumerable#group_by that
  groups enumerable values according to their block values.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9880 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-02-03 09:15:42 +00:00
akr
0517b43c5b banish some warnings.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9292 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-09-24 00:17:43 +00:00
usa
b03649bc2a * ext/dbm/dbm.c (fdbm_closed): new method DBM#closed?
* ext/gdbm/gdbm.c (fgdbm_closed): new method GDBM#closed?

* ext/sdbm/init.c (fsdbm_closed): new method SDBM#closed?

* test/dbm/test_dbm.rb, test/gdbm/test_gdbm.rb, test/sdbm/test_sdbm.rb
  (teardown): close all db objects before deleting data files.

* win32/win32.{ch} (unlink): hook runtime function to change
  file attribute before unlinking.
  merge from 1.8, see [ruby-dev:26360]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8650 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-06-20 08:17:53 +00:00
matz
3d66cc4c6b * ext/dbm/dbm.c (fdbm_select): [ruby-dev:25132]
* ext/sdbm/init.c: ditto.

* ext/gdbm/gdbm.c: ditto.

* eval.c (proc_invoke): merge Guy Decoux's argument preserve
  patch in [ruby-core:03874].


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7516 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-12-09 02:19:50 +00:00
matz
0f36ecebe0 * string.c (rb_str_clear): avoid revealing NULL pointer.
[ruby-dev:24766]

* string.c (str_gsub): add paranoid check. [ruby-dev:24827]

* string.c (str_mod_check): check frozen status as well.
  [ruby-dev:24801]

* lib/mathn.rb (Integer::gcd2): faster implementation by
  <erlercw@siu.edu>. [ruby-talk:120232]

* ext/gdbm/gdbm.c (fgdbm_store): StringValue() may alter string
  pointer.  [ruby-dev:24783]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7265 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-11-14 15:41:40 +00:00
matz
39ecad1339 * ext/dbm/dbm.c (fdbm_delete_if): should check if deleting element
is a string.  [ruby-dev:24490]

* ext/sdbm/init.c (fsdbm_delete_if): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7080 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-10-19 19:49:49 +00:00
matz
1057902ac7 * io.c (read_all): block string buffer modification during
rb_io_fread() by freezing it temporarily. [ruby-dev:24479]

* dir.c (rb_push_glob): block call at once the end of method.
  [ruby-dev:24487]

* ext/enumerator/enumerator.c (enum_each_slice): remove
  rb_gc_force_recycle() to prevent potential SEGV.
  [ruby-dev:24499]

* ext/zlib/zlib.c (zstream_expand_buffer): hide internal string
  buffer by clearing klass.  [ruby-dev:24510]

* ext/socket/socket.c (sock_s_getservbyaname): protocol string
  might be altered.  [ruby-dev:24503]

* string.c (rb_str_upto): check if return value from succ is a
  string.  [ruby-dev:24504]

* io.c (rb_io_popen): get mode string via rb_io_flags_mode() to
  avoid mode string modification.  [ruby-dev:24454]

* io.c (rb_io_getline_fast): should take delim as unsigned char to
  distinguish EOF and '\377'.  [ruby-dev:24460]

* io.c (rb_io_getline): add check for RS modification.
  [ruby-dev:24461]

* enum.c (enum_sort_by): use qsort() directly instead using
  rb_iterate().  [ruby-dev:24462]

* enum.c (enum_each_with_index): remove rb_gc_force_recycle() to
  prevent access to recycled object (via continuation for
  example).  [ruby-dev:24463]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7071 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-10-19 10:25:23 +00:00
matz
21606c6ec5 * array.c: remove #indexes, #indices.
* hash.c: ditto.

* ext/dbm/dbm.c: remove #indexes, #indices, "values_at" warning
  from #select.

* ext/gdbm/gdbm.c: ditto.

* ext/sdbm/init.c: ditto.

* ext/dbm/dbm.c (Init_dbm): set VERSION constant as "unknown" when
  DB_VERSION_STRING is not available.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6449 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-06-11 13:33:47 +00:00
akr
eeb5c7e18e * ext/dbm/dbm.c (fdbm_initialize): accept optional 3rd argument to
specify an open flag.
  (Init_dbm): define open flags: DBM::READER, DBM::WRITER, DBM::WRCREAT
  and DBM::NEWDB.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6326 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-05-16 12:03:23 +00:00