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

138 Коммитов

Автор SHA1 Сообщение Дата
ocean 4b0f7cecc4 * dir.c (rb_glob): fixed mismatch of argument.
* dir.c (fnmatch): removed unnecessary code. (by string.c 1.219)

* win32/win32.c (NtInitialize): ditto. (by numeric.c 1.117)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8078 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-03-05 09:30:24 +00:00
matz 70bbad3cfd * array.c: replace rb_protect_inspect() and rb_inspecting_p() by
rb_exec_recursive() in eval.c.

* eval.c (rb_exec_recursive): new function.

* array.c (rb_ary_join): use rb_exec_recursive().

* array.c (rb_ary_inspect, rb_ary_hash): ditto.

* file.c (rb_file_join): ditto.

* hash.c (rb_hash_inspect, rb_hash_to_s, rb_hash_hash): ditto.

* io.c (rb_io_puts): ditto.

* object.c (rb_obj_inspect): ditto

* struct.c (rb_struct_inspect): ditto.

* lib/set.rb (SortedSet::setup): a hack to shut up warning.
  [ruby-talk:132866]

* lib/time.rb (Time::strptime): add new function.  inspired by
  [ruby-talk:132815].

* lib/parsedate.rb (ParseDate::strptime): ditto.

* regparse.c: move st_*_strend() functions from st.c.  fixed some
  potential memory leaks.

* exception error messages updated.  [ruby-core:04497]

* ext/socket/socket.c (Init_socket): add bunch of Socket
  constants.  Patch from Sam Roberts <sroberts@uniserve.com>.
  [ruby-core:04409]

* array.c (rb_ary_s_create): no need for negative argc check.
  [ruby-core:04463]

* array.c (rb_ary_unshift_m): ditto.

* lib/xmlrpc/parser.rb (XMLRPC::FaultException): make it subclass
  of StandardError class, not Exception class.  [ruby-core:04429]

* parse.y (fcall_gen): lvar(arg) will be evaluated as
  lvar.call(arg) when lvar is a defined local variable. [new]

* object.c (rb_class_initialize): call inherited method before
  calling initializing block.

* eval.c (rb_thread_start_1): initialize newly pushed frame.

* lib/open3.rb (Open3::popen3): $? should not be EXIT_FAILURE.
  fixed: [ruby-core:04444]

* eval.c (is_defined): NODE_IASGN is an assignment.

* ext/readline/readline.c (Readline.readline): use rl_outstream
  and rl_instream.  [ruby-dev:25699]

* ext/etc/etc.c (Init_etc): sGroup needs HAVE_ST_GR_PASSWD check
  [ruby-dev:25675]

* misc/ruby-mode.el: [ruby-core:04415]

* lib/rdoc/generators/html_generator.rb: [ruby-core:04412]

* lib/rdoc/generators/ri_generator.rb: ditto.

* struct.c (make_struct): fixed: [ruby-core:04402]

* ext/curses/curses.c (window_color_set): [ruby-core:04393]

* ext/socket/socket.c (Init_socket): SO_REUSEPORT added.
  [ruby-talk:130092]

* object.c: [ruby-doc:818]

* parse.y (open_args): fix too verbose warnings for the space
  before argument parentheses.  [ruby-dev:25492]

* parse.y (parser_yylex): ditto.

* parse.y (parser_yylex): the first expression in the parentheses
  should not be a command.  [ruby-dev:25492]

* lib/irb/context.rb (IRB::Context::initialize): [ruby-core:04330]

* object.c (Init_Object): remove Object#type.  [ruby-core:04335]

* st.c (st_foreach): report success/failure by return value.
  [ruby-Bugs-1396]

* parse.y: forgot to initialize parser struct.  [ruby-dev:25492]

* parse.y (parser_yylex): no tLABEL on EXPR_BEG.
  [ruby-talk:127711]

* document updates - [ruby-core:04296], [ruby-core:04301],
  [ruby-core:04302], [ruby-core:04307]

* dir.c (rb_push_glob): should work for NUL delimited patterns.

* dir.c (rb_glob2): should aware of offset in the pattern.

* string.c (rb_str_new4): should propagate taintedness.

* env.h: rename member names in struct FRAME; last_func -> callee,
  orig_func -> this_func, last_class -> this_class.

* struct.c (rb_struct_set): use original method name, not callee
  name, to retrieve member slot.  [ruby-core:04268]

* time.c (time_strftime): protect from format modification from GC
  finalizers.

* object.c (Init_Object): remove rb_obj_id_obsolete()

* eval.c (rb_mod_define_method): incomplete subclass check.
  [ruby-dev:25464]

* gc.c (rb_data_object_alloc): klass may be NULL.
  [ruby-list:40498]

* bignum.c (rb_big_rand): should return positive random number.
  [ruby-dev:25401]

* bignum.c (rb_big_rand): do not use rb_big_modulo to generate
  random bignums.  [ruby-dev:25396]

* variable.c (rb_autoload): [ruby-dev:25373]

* eval.c (svalue_to_avalue): [ruby-dev:25366]

* string.c (rb_str_justify): [ruby-dev:25367]

* io.c (rb_f_select): [ruby-dev:25312]

* ext/socket/socket.c (sock_s_getservbyport): [ruby-talk:124072]

* struct.c (make_struct): [ruby-dev:25249]

* dir.c (dir_open_dir): new function.  [ruby-dev:25242]

* io.c (rb_f_open): add type check for return value from to_open.

* lib/pstore.rb (PStore#transaction): Use the empty content when a
  file is not found.  [ruby-dev:24561]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8068 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-03-04 06:47:45 +00:00
usa 571e1361b6 * io.c (dir_s_mkdir): win32 special processing doesn't need any longer.
* win32/win32.[ch] (rb_w32_mkdir): new function. POSIX.1 compatible
  interface.

* win32/win32.[ch] (rb_w32_rmdir): new function.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7487 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-12-07 04:45:46 +00:00
matz f50136a311 * file.c (rb_file_chown): integer conversion should be prior to
GetOpenFile().  [ruby-dev:24947]

* file.c (rb_file_truncate): ditto.

* file.c (rb_file_s_truncate): ditto.

* dir.c (dir_seek): use NUM2OFFT().

* misc/ruby-mode.el (ruby-non-block-do-re): [ruby-core:03719]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7353 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-11-22 15:26:02 +00:00
matz fec64f7fe2 * dir.c (dir_seek): should retrieve dir_data after NUM2INT().
[ruby-dev:24941]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7349 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-11-21 15:33:56 +00:00
nobu 9c1e33fc45 * dir.c (rb_push_glob): fix overrun. [ruby-dev:24886]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7296 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-11-17 04:05:18 +00:00
matz 9f3d5e7172 * dir.c (rb_glob): should have called rb_glob_caller().
[ruby-dev:24773]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7252 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-11-11 08:59:20 +00:00
nobu 765c6a80e6 * dir.c (glob_helper): path is a string object now.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7243 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-11-10 10:48:01 +00:00
matz 683400f427 * dir.c (rb_glob2): do not allocate buffer from heap to avoid
memory leaks.  use string object for buffering instead.
  [ruby-dev:24738]

* dir.c (join_path): ditto.

* io.c (io_read): external input buffer may be modified even after
  rb_str_locktmp().  [ruby-dev:24735]

* dir.c (fnmatch): p or s may be NULL.  [ruby-dev:24749]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7242 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-11-10 07:17:53 +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 bfabc05a43 * enum.c (enum_sort_by): do not use qsort directly. use
rb_ary_sort_bang() instead.  [ruby-dev:24291]

* enum.c (enum_sort_by): pedantic type check added.
  [ruby-dev:24291]

* hash.c (rb_hash_foreach_iter): check iter_lev after each
  iteration.  [ruby-dev:24289]

* array.c (rb_ary_and): element size might change during
  comparison.  [ruby-dev:24290]

* array.c (rb_ary_or): ditto. [ruby-dev:24292]

* array.c (rb_ary_equal): wrong fix. [ruby-dev:24286]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6939 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-09-21 03:08:33 +00:00
matz e77ddaf0d1 * array.c (rb_ary_delete): element comparison might change array
size. [ruby-dev:24273]

* parse.y: make ruby parser reentrant. merge ripper parser to the
  real one.  this change makes ruby require bison.

* file.c (rb_file_truncate): clear stdio buffer before truncating
  the file.  [ruby-dev:24191]

* ext/digest/digest.c: use rb_obj_class() instead of CLASS_OF
  which might return singleton class.  [ruby-dev:24202]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6919 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-09-17 09:24:13 +00:00
matz d73fa69935 * dir.c (free_dir): fix memory leak. reported by yamamoto
madoka.

* eval.c (bind_eval): new method. [RCR 251]

* string.c (rb_str_clear): new method. [ruby-dev:24104]

* io.c (rb_io_reopen): should clear allocated OpenFile.  pointed
  out by Guy Decoux. [ruby-core:03288]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6794 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-08-19 07:33:15 +00:00
dave 541d9d3536 Roll in Austin Ziegler's patch
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6750 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-08-09 03:54:15 +00:00
knu 5b42ef645e * dir.c (bracket): use NULL instead of 0.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6667 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-07-17 18:20:57 +00:00
ocean 82593c058f * dir.c: RDOC for File::FNM_CASEFOLD was missed.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6453 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-06-12 05:18:23 +00:00
ocean f77db2ed9c * dir.c (rb_push_glob): simplified code (not change behavior)
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6251 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-05-06 05:42:48 +00:00
ocean 51ab50efd3 * dir.c: Updated RDocs.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6182 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-04-19 11:59:33 +00:00
ocean c2642b2c3f * dir.c: Updated RDocs.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6180 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-04-19 09:31:39 +00:00
ocean da2ace5c40 * dir.c (rb_push_glob): Dir.glob() should return nil if block is given.
(http://www.ruby-lang.org/ja/man/index.cgi?cmd=view;name=Dir)

* dir.c (push_braces): Dir.glob() should handle '{ }' nested more than
  3 times.

* dir.c (push_braces, rb_push_glob): Dir.glob() should handle escaped
  '{' and '}' and ','.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6163 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-04-15 10:32:09 +00:00
ocean 4c4d155e3d * dir.c (rb_glob2, rb_glob, push_globs, push_braces, rb_push_glob):
fix memory leak to occur when block is interrupted in Dir.glob.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6141 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-04-12 01:45:27 +00:00
ocean ae9512fcf6 * dir.c (has_magic, find_dirsep): incomplete '[' matches no character
in Dir.glob. (follows File.fnmatch's behavior)

* dir.c (fnmatch_helper): incomplete escape is ignored in File.fnmatch.
  (follows Dir.glob's behavior)

* dir.c (find_dirsep): '/' between '[' and ']' is ignored in Dir.glob.
  (follows File.fnmatch with File::FNM_PATHNAME 's behavior)

* dir.c (find_dirsep): escaped slash '\/' loses its meaning as
  directory separator in Dir.glob.

[ruby-dev:23291]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6129 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-04-09 08:06:01 +00:00
matz df84c64be9 * pack.c (pack_pack): use NUM2INT() instead of num2i32().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6120 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-04-07 06:30:15 +00:00
matz 4ded52b623 * file.c (rb_get_path): get path string via "to_path" method if
path object is not a string. [Ruby2]

* gc.c (rb_gc_call_finalizer_at_exit): do not free threads in the
  exit finalizers.

* io.c (rb_io_reopen): should use rb_io_check_io().


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6114 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-04-07 02:51:05 +00:00
ocean 7307c01906 * dir.c (fnmatch_helper): File.fnmatch('\.', '.') should return true.
(Rev1.112 lost compatiblity)

* dir.c (fnmatch_helper): File.fnmatch('\/', '/', File::FNM_PATHNAME)
  should return true. (Rev1.112 lost compatiblity)

* dir.c (fnmatch): '**/' shouldn't match leading period unless
  File::FNM_DOTMATCH is set.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5955 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-03-16 02:24:47 +00:00
ocean c6e5374aae * dir.c (fnmatch):
directory recursion '**/' can be used with File::FNM_PATHNAME.
  [ruby-dev:22901]

* dir.c (fnmatch_helper):
  only '/' is accepted as path separator even in DOSISH environment.
  [ruby-dev:22974] [ruby-list:39337]

* dir.c (fnmatch_helper):
  faster '*' matching.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5944 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-03-12 15:00:39 +00:00
ocean f34d501658 * dir.c (range): Cancel change for incomplete '['. More discussion
is needed.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5926 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-03-08 12:14:49 +00:00
ocean 6901d03914 * dir.c (range): treat incomplete '[' as ordinary character (like
has_magic does). fix buffer overrun at incomplete escape like '[\'.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5921 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-03-08 06:10:22 +00:00
ocean b381815014 * dir.c (glob_helper): '**/' should not match leading period
unless File::FNM_DOTMATCH is set. (like '*/')


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5824 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-02-24 09:49:59 +00:00
ocean 77d7ff7cbe * dir.c (fnmatch): File.fnmatch with FNM_PATHNAME was broken
for the pattern including '*' followed by '/'.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5822 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-02-24 08:17:10 +00:00
ocean ba60b3f25f * dir.c (CompareImpl): File.fnmatch and Dir.glob get better performance
in Win32. This is achived by calling downcase() for single-byte
  characters. CharLower() is only called for multi-byte characters.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5719 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-02-16 01:33:12 +00:00
ocean 5e379106b5 * dir.c (push_braces): remove wrong const.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5715 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-02-15 12:00:51 +00:00
ocean 30fd29a174 * ruby.h, dir.c (rb_glob): add const.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5709 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-02-15 06:34:21 +00:00
ocean 3a8647ea9f * dir.c (glob_helper): Dir.glob('**/') did not work.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5644 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-02-08 01:07:09 +00:00
ocean c887d20966 Did some styles (no change to behavior)
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5641 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-02-07 14:22:33 +00:00
ocean b839a4d720 * dir.c (fnmatch):
File.fnmatch('\[1\]' , '[1]') should return true. [ruby-dev:22815]
  File.fnmatch('*?', 'a') should return true. [ruby-dev:22819]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5639 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-02-07 12:51:57 +00:00
matz 0ae750341e * dir.c (glob_helper): infinite loop bug in win32 code.
[ruby-dev:22770]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5579 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-01-29 11:59:55 +00:00
matz 7a987b9bcd * dir.c: merge tuning from H.Yamamoto <ocean@m2.ccsnet.ne.jp>.
[ruby-dev:22761]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5577 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-01-29 08:05:29 +00:00
siena fc69b2a7f6 * defines.h: define RUBY_MBCHAR_MAX instead of MB_CUR_MAX.
* dir.c (Next, emx_mblen): use RUBY_MBCHAR_MAX for mblen().
* file.c (CharNext): ditto.
* ruby.c (translate_char): ditto.
* util.c (__crt0_glob_function): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5530 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-01-21 15:26:11 +00:00
nobu 53157197d2 * dir.c (dir_inspect): new method, Dir#inspect. [ruby-dev:22562]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5425 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-01-10 13:46:21 +00:00
nobu 0f3e58e707 * dir.c (glob_helper): should not recurse in exceptional status.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5416 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-01-08 09:25:32 +00:00
nobu debe0485f0 * dir.c (glob_helper): fix memory leak.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5405 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-01-07 13:28:15 +00:00
matz caaac4db27 * dir.c: merge tuning from H.Yamamoto <ocean@m2.ccsnet.ne.jp>.
[ruby-dev:22486]

* pack.c (pack_unpack): unpack requires big endian offet (OFF16B
  and OFF32B).  The patch is from Minero Aoki in [ruby-dev:22489]

* pack.c (OFF16B): add big-endian offset again.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5374 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-01-05 10:01:54 +00:00
matz 59dbfa3e4c * dir.c: merge tuning from H.Yamamoto <ocean@m2.ccsnet.ne.jp>.
[ruby-dev:22476]

* io.c (argf_eof): ARGF.eof? should not have any side effect.
  [ruby-dev:22469]

* io.c (argf_each_byte): should return self.  [ruby-dev:22465]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5365 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-01-02 16:21:26 +00:00
dave 5076ed519b Document Class and Dir
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5222 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-12-19 15:18:09 +00:00
nobu 77ffc8bf3f * dir.c (fnmatch): unlike find_dirsep(), rb_path_next() never
return NULL.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5211 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-12-18 07:38:48 +00:00
nobu 52f81e0ce7 commit miss
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5192 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-12-15 04:11:34 +00:00
nobu 12b5b81a97 * dir.c (check_dirname): check string safety and remove extraneous
trailing directory separators.  [ruby-dev:22279]

* file.c: extern rb_path_next, rb_path_skip_prefix,
  rb_path_last_separator, rb_path_end.

* intern.h: prototypes for rb_path_next, rb_path_skip_prefix,
  rb_path_last_separator, rb_path_end.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5191 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-12-15 04:07:03 +00:00
matz 6212cfb9c5 * gc.c (Init_stack): stack region is far smaller than usual if
pthread is used.

* marshal.c (w_extended): singleton methods should not be checked
  when dumping via marshal_dump() or _dump(). [ruby-talk:85909]

* file.c (getcwdofdrv): avoid using getcwd() directly, use
  my_getcwd() instead.

* merged NeXT, OpenStep, Rhapsody ports patch from Eric Sunshine
  <sunshine@sunshineco.com>.  [ruby-core:01596]

* marshal.c (w_object): LINK check earlier than anything else,
  i.e. do not dump TYPE_IVAR for already dumped objects.
  (ruby-bugs PR#1220)

* eval.c (rb_eval): call "inherited" only when a new class is
  generated; not on reopening.

* eval.c (eval): prepend error position in evaluating string to

* configure.in: revived NextStep, OpenStep, and Rhapsody ports which
  had become unbuildable; enhanced --enable-fat-binary option so that
  it accepts a list of desired architectures (rather than assuming a
  fixed list), or defaults to a platform-appropriate list if user does
  not provide an explicit list; made the default list of architectures
  for MAB (fat binary) more comprehensive; now uses -fno-common even
  when building the interpreter (in addition to using it for
  extensions), thus allowing the interpreter to be embedded into a
  plugin module of an external project (in addition to allowing
  embedding directly into an application); added checks for
  <netinet/in_systm.h> (needed by `socket' extension) and getcwd(); now
  ensures that -I/usr/local/include is employed when extensions'
  extconf.rb scripts invoke have_header() since extension checks on
  NextStep and OpenStep will fail without it if the desired resource
  resides in the /usr/local tree; fixed formatting of --help message.

* Makefile.in: $(LIBRUBY_A) rule now deletes the archive before
  invoking $(AR) since `ar' on Apple/NeXT can not "update" MAB archives
  (see configure's --enable-fat-binary option); added rule for new
  missing/getcwd.c.

* defines.h: fixed endian handling during MAB build (see configure's
  --enable-fat-binary option) to ensure that all portions of the
  project see the correct WORDS_BIGENDIAN value (some extension modules
  were getting the wrong endian setting); added missing constants
  GETPGRP_VOID, WNOHANG, WUNTRACED, X_OK, and type pid_t for NextStep
  and OpenStep; removed unnecessary and problematic HAVE_SYS_WAIT_H
  define in NeXT section.

* dir.c: do not allow NAMLEN() macro to trust dirent::d_namlen on
  NextStep since, on some installations, this value always resolves
  uselessly to zero.

* dln.c: added error reporting to NextStep extension loader since the
  previous behavior of failing silently was not useful; now ensures
  that NSLINKMODULE_OPTION_BINDNOW compatibility constant is defined
  for OpenStep and Rhapsody; no longer includes <mach-o/dyld.h> twice
  on Rhapsody since this header lacks multiple-include protection,
  which resulted in "redefinition" compilation errors.

* main.c: also create hard reference to objc_msgSend() on NeXT
  platforms (in addition to Apple platforms).

* lib/mkmf.rb: now exports XCFLAGS from configure script to extension
  makefiles so that extensions can be built MAB (see configure's
  --enable-fat-binary option); also utilize XCFLAGS in cc_command()
  (but not cpp_command() because MAB flags are incompatible with
  direct invocation of `cpp').

* ext/curses/extconf.rb: now additionally checks for presence of these
  curses functions which are not present on NextStep or Openstep:
  bkgd(), bkgdset(), color(), curs(), getbkgd(), init(), scrl(), set(),
  setscrreg(), wattroff(), wattron(), wattrset(), wbkgd(), wbkgdset(),
  wscrl(), wsetscrreg()

* ext/curses/curses.c: added appropriate #ifdef's for additional set of
  curses functions now checked by extconf.rb; fixed curses_bkgd() and
  window_bkgd() to correctly return boolean result rather than numeric
  result; fixed window_getbkgd() to correctly signal an error by
  returning nil rather than -1.

* ext/etc/etc.c: setup_passwd() and setup_group() now check for null
  pointers before invoking rb_tainted_str_new2() upon fields extracted
  from `struct passwd' and `struct group' since null pointers in some
  fields are common on NextStep/OpenStep (especially so for the
  `pw_comment' field) and rb_tainted_str_new2() throws an exception
  when it receives a null pointer.

* ext/pty/pty.c: include "util.h" for strdup()/ruby_strdup() for
  platforms such as NextStep and OpenStep which lack strdup().

* ext/socket/getaddrinfo.c: cast first argument of getservbyname(),
  gethostbyaddr(), and gethostbyname() from (const char*) to non-const
  (char*) for older platforms such as NextStep and OpenStep.

* ext/socket/socket.c: include "util.h" for strdup()/ruby_strdup() for
  platforms such as NextStep and OpenStep which lack strdup(); include
  <netinet/in_systm.h> if present for NextStep and OpenStep; cast first
  argument of gethostbyaddr() and getservbyname() from (const char*) to
  non-const (char*) for older platforms.

* ext/syslog/syslog.c: include "util.h" for strdup()/ruby_strdup() for
  platforms such as NextStep and OpenStep which lack strdup().


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5002 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-11-22 04:00:03 +00:00
nobu 43e4a50015 * dir.c (glob_helper): preserve raw order for **.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4403 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-08-18 02:23:13 +00:00