Commit graph

115 commits

Author SHA1 Message Date
nobu
720160f364 * ruby.c (get_arglen): skip the last terminator of argv before
checking environ.

* ruby.c (get_arglen): duplicate environ area if setenv and unsetenv
  are provided.

* ruby.c (set_arg0): keep empty strings.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@27468 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-04-24 04:06:59 +00:00
nobu
2f9adccc9b * ruby.c (DllMain, ruby_init_loadpath): use DLL instance handle given
to DllMain instead of VirtualQuery so that loadpath becomes relative
  from the DLL on WinCE too.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@27306 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-04-11 07:48:14 +00:00
nobu
f477963e6e * ruby.c (ruby_init_loadpath): do not mangle relative path.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@27305 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-04-11 07:37:13 +00:00
nobu
9e71120ca8 * ruby.c (rubylib_mangled_path2): not used.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@27299 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-04-11 02:30:18 +00:00
nobu
b068def1ab * ruby.c (ruby_init_loadpath): fix for the length of mangled path.
[ruby-core:29398]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@27298 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-04-11 02:28:59 +00:00
nobu
84b5e3e075 * version.c (ruby_initial_load_paths): moved initial load path
from ruby.c.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@27110 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-03-30 09:11:29 +00:00
knu
5c54c57521 * prelude.rb, Makefile.in, common.mk: Introduce prelude.rb.
* eval.c (rb_eval_prelude): New function exported only for use in
  preludes.

* configure.in: Define RUBY_EXEC_PREFIX and RUBY_LIB_PREFIX.

* ruby.c (proc_options, ruby_init_loadpath, ruby_prelude): Load
  prelude.

* compile_prelude.rb: Port the prelude compiler from trunk.

* miniprelude.c: Currently miniruby does not include prelude.rb.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@27053 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-03-25 19:11:51 +00:00
nobu
7b90b70db2 * ruby.c (load_file): preserves $.. [ruby-core:24024]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@23852 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-06-25 06:53:28 +00:00
kazu
71789a5029 * ruby.c: Mac OS X needs origargc times of '\0' in origargv. [ruby-dev:35308]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@17849 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-07-03 10:46:06 +00:00
nobu
c1ed3956a7 * ruby.c (set_arg0, ruby_prog_init): freeze $0. a patch from Keita
Yamaguchi <keita.yamaguchi at gmail.com>.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@17586 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-26 15:00:16 +00:00
nobu
9ed3d64d1d * suppress warnings on cygwin, mingw and mswin.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@16740 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-01 19:55:25 +00:00
nobu
1378795e08 * suppress warnings with -Wwrite-string.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@16716 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-31 09:28:20 +00:00
knu
b67592ed7b * configure.in, win32/Makefile.sub, mkconfig.rb, instruby.rb,
ruby.c, lib/mkmf.rb, README.EXT, README.EXT.ja: Backport the
  vendor_ruby directory support.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@16678 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-29 11:07:59 +00:00
matz
1232fd4a9b * ruby.c (proc_options): -W should be allowed in RUBYOPT
environment variable.  [ruby-core:12118]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@13434 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-09-12 14:17:33 +00:00
nobu
73c59df711 * dln.c (load_1, dln_find_1): constified.
* ruby.c (usage): constified.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@12848 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-07-26 04:57:48 +00:00
nobu
d772c1af14 * dln.c (conv_to_posix_path): removed.
* ruby.c (rubylib_mangled_path, rubylib_mangled_path2): return
  VALUE instead of a pointer to static buffer.

* ruby.c (push_include_cygwin): fixed buffer overflow.
  [ruby-dev:31297]

* ruby.c (ruby_init_loadpath): not convert built-in paths.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@12847 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-07-26 04:38:07 +00:00
nobu
44fcb03b2d * ruby.c (set_arg0): fill argv other than the first with an empty
string instead of NULL.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@10731 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-08-16 02:11:21 +00:00
ocean
e4cddd7d2e * configure.in, hash.c (ruby_setenv): use setenv(3) and unsetenv(3)
where they are supported. modifing environ variable seems to
  segfault solaris 10. [ruby-core:7276] [ruby-dev:28270]

* ruby.c (set_arg0): if use setenv(3), environ space cannot be used
  for altering argv[0].


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@9868 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-02-01 13:27:47 +00:00
matz
e585523a2b * ext/digest/digest.c (rb_digest_base_s_digest): add volatile to
protect temporary context object.  [ruby-dev:27979]

* ext/iconv/iconv.c (Init_iconv): rb_gc_register_address() should
  be called before actual variable initialization.
  [ruby-dev:27986]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@9673 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-12 00:36:54 +00:00
ocean
477187defd * dir.c, eval.c, hash.c, process.c, ruby.c: avoid warning "unused
variable" [ruby-dev:26387]

(patch from Kazuhiro NISHIYAMA)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8670 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-06-28 13:09:58 +00:00
matz
c33063f42d * numeric.c (fix_pow): support Fixnum ** Float case directly
without coercing.  [ruby-talk:142697] [ruby-talk:143054]

* ruby.c (require_libraries): caused SEGV when continuation jumped
  in to the required library code.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8515 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-05-24 14:52:05 +00:00
nobu
0886eb8ca8 * ruby.c (set_arg0): use also environment variable space for setting
$0.  [ruby-core:04774]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8402 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-05-01 00:58:21 +00:00
nobu
33fa9defff * ruby.c (process_sflag): replace '-' in variable names with '_'.
[ruby-dev:26107]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8400 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-05-01 00:13:48 +00:00
matz
88d5dcc8de * exception error messages updated. [ruby-core:04497]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8035 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-02-28 02:45:23 +00:00
usa
8452085ea9 * ruby.c (proc_options): correct -T option in RUBYOPT. (backported
from CVS HEAD)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7825 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-01-25 08:12:37 +00:00
nobu
68c46aadb8 * ruby.c (proc_options): ignore trailing CRs at the end of short
options as well as long options.  fixed: [ruby-core:04232]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7775 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-01-15 05:58:02 +00:00
matz
adac65af93 * gc.c (define_final): should not disclose NODE* to Ruby world.
[ruby-dev:23957]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6691 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-07-23 07:52:38 +00:00
nobu
6a14cf11f7 * ruby.c (require_libraries): restore source file/line after
statically linked extensions initialized.  [ruby-dev:23357]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6137 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-04-11 10:12:39 +00:00
aamine
ad07498d94 * eval.c (Init_load): make $LOADED_FEATURES built-in. [ruby-dev:23299]
* ruby.c (ruby_prog_init): make $PROGRAM_NAME built-in.
* lib/English.rb: remove $LOADED_FEATURES and $PROGRAM_NAME.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6087 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-04-04 11:34:24 +00:00
eban
c5c450cded * ruby.c: use translate_char() on Cygwin.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@5491 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-01-18 11:59:43 +00:00
nobu
4646ba6b2a * ext/stringio/stringio.c (strio_set_string, strio_reopen): check
tainted.

* ext/stringio/stringio.c (strio_copy, strio_ungetc, strio_write,
  strio_putc): add infection.

* ext/stringio/stringio.c (strio_path): just nil.  [ruby-dev:21846]

* ruby.c (proc_options): reserve searched script path in the
  source file name table.  [ruby-list:38765]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4906 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-11-06 01:17:59 +00:00
matz
029e9449ce * ruby.c (proc_options): -F set compiled regular expression to $;.
[ruby-talk:77381]

* string.c (Init_String): no setter type check for $;


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4230 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-30 07:08:56 +00:00
eban
2555db608e * ruby.c: typo fix.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4225 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-30 02:15:13 +00:00
matz
fe13785cc6 * marshal.c (w_object): if object responds to 'marshal_dump',
Marshal.dump uses it to dump object.  unlike '_dump',
  marshal_dump returns any kind of object.

* marshal.c (r_object0): restore instance by calling
  'marshal_load' method.  unlike '_load', it's an instance
  method, to handle cyclic reference.

* marshal.c (marshal_load): all objects read from file should be
  tainted. [ruby-core:01325]

* lib/timeout.rb (Timeout::timeout): execute immediately if sec is
  zero.

* ext/socket/socket.c (socks_init): typo fixed. [ruby-talk:77232]

* ext/socket/extconf.rb: the default value for --enable-socks is
  taken from ENV["SOCKS_SERVER"]. [ruby-talk:77232]

* ruby.c (proc_options): add -W option. -W0 to shut up all warning
  messages. [ruby-talk:77227]

* error.c (rb_warn): no message will be printed if the value of
  $VERBOSE is "nil", i.e. perfect silence.

* ruby.c (verbose_setter): $VERBOSE value is either true, false,
  or nil.

* io.c (Init_IO): no "read" check for $stdin.  in addition some
  function names has been changed.

* regex.c (re_match_exec): incorrect multibyte match.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4220 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-29 18:26:55 +00:00
matz
67dcad92b7 * string.c (rb_str_upto): generate sequence according to "succ"
order.  formerly check was done by dictionary order.
  [ruby-talk:74138]

* string.c (rb_string_value): fill constant empty string along
  with setting ELTS_SHARED if str->ptr is NULL. [ruby-core:01179]

* string.c (rb_string_value_ptr): ditto.

* string.c (rb_check_string_type): ditto.

* string.c (str_gsub): move END(0) check before mbclen2().

* string.c (scan_once): reduce END(0) check.

* io.c (rb_io_initialize): accept fixnum mode.

* eval.c (error_print): replace strchr() by memchr(), einfo may
  contain "\0".

* pack.c (pack_unpack): range check for "@" move; initialize check
  for "m".

* error.c (syserr_initialize): avoid buffer overflow.

* file.c (rb_file_s_readlink): expand buffer until readlink
  succeed.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3982 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-06-23 06:52:39 +00:00
usa
65ba3eba64 * defines.h (PATH_ENV): name of PATH environment. [new].
* defines.h (ENV_IGNORECASE): define for case insensitive platforms
  to access environment variables.

* dln.c (dln_find_exe): use PATH_ENV instead of "PATH".

* hash.c (env_delete, rb_f_getenv, env_fetch, rb_env_path_tainted,
  env_aset): ditto.

* ruby.c (proc_options): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3966 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-06-20 06:22:50 +00:00
uema2
a16fc220ca * ruby.c: don't call VirtualQuery in ruby_init_loadpath()
on mswince.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3714 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-04-22 11:58:08 +00:00
matz
0cd7c01c6a * eval.c (rb_yield_0): call avalue_to_mrhs() to assign block
parameter |a|. [ruby-dev:19897]

* ruby.c (ruby_set_argv): freeze argument strings.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3612 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-03-25 08:26:08 +00:00
nobu
050f2d8460 * ruby.c (proc_options): script argument is in effect only when -e is not given.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3491 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-02-13 03:02:19 +00:00
nobu
2f6595c1ed * ruby.c (ruby_init_loadpath): ensures buffer terminated
before use strncpy().

* ruby.c (proc_options): avoid SEGV at -S with no arguments.
  (ruby-bugs-ja:PR#391)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3489 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-02-13 00:59:00 +00:00
michal
4e13d36561 -Wall cleanups (removed unused vars, no 'code has no effect' warnings)
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3346 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-01-16 07:38:40 +00:00
michal
9df466b287 Updated Copyrights of Matz to 2003.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3345 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-01-16 07:34:03 +00:00
nobu
10c93d6c74 * ruby.c (ruby_init_loadpath): under Windows, get the module
path from an internal address instead of hard coded library
  name.

* cygwin/GNUmakefile.in, bcc32/Makefile.sub,
  win32/Makefile.sub (CPPFLAGS): removed LIBRUBY_SO macro.

* bcc32/Makefile.sub, win32/Makefile.sub (config.h): no longer
  depends on makefiles.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3290 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-01-05 01:40:24 +00:00
uema2
b19e36a214 * configure.in, defines.h, dir.c, dir.h, dln.c, error.c,
eval.c, file.c, hash.c, io.c, main.c, missing.c,
      process.c, ruby.c, rubysig.h, signal.c, st.c, util.c, util.h,
      bcc/Makefile.sub, win32/Makefile.sub, win32/win32.h,
      ext/Win32API/Win32API.c, ext/socket/getaddrinfo.c,
      ext/socket/getnameinfo.c, ext/socket/socket.c,
      ext/tcltklib/stubs.c
      : replace "NT" with "_WIN32", add DOSISH_DRIVE_LETTER
* wince/exe.mak : delete \r at the end of lines.
* wince/mswince-ruby17.def : delete rb_obj_become


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3148 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-12-15 03:18:08 +00:00
knu
a2868ff651 * eval.c, file.c, gc.c, io.c, object.c, ruby.c, ruby.h, struct.c,
ext/socket/socket.c: differentiate long and int; use proper
  printf type specifiers and do casts where appropriate.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3014 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-29 21:35:28 +00:00
nobu
4b6dffad02 * bcc32/mkexports.rb: to work on cygwin via telnet.
[ruby-win32:358]

* ext/tcltklib/tcltklib.c (ip_invoke): requires command name
  argument.  [ruby-dev:18438]

* eval.c (ruby_init, ruby_options): Init_stack() with local
  location.  (ruby-bugs-ja:PR#277)

* eval.c (rb_call0): disable trace call.  [ruby-dev:18074]

* eval.c (eval, rb_load): enable trace call.  [ruby-dev:18074]

* eval.c (rb_f_require): set source file name for extension
  libraries.  [ruby-dev:18445]

* ruby.c (translate_char): translate a character in a string;
  DOSISH only.  [ruby-dev:18274]

* ruby.c (ruby_init_loadpath): added argv[0] handling under
  Human68K.  [ruby-dev:18274]

* ruby.c (proc_options): translate directory separator in $0 to
  '/'.  [ruby-dev:18274]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2929 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-03 11:20:31 +00:00
nobu
742283385f * eval.c (call_trace_func): should not call trace function while
compilation.

* eval.c (rb_call0): also inside c-func.

* parse.y (yycompile): ditto.

* ruby.c (require_libraries): preserve source file/line for each
  require.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2880 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-09-22 12:52:18 +00:00
aamine
10c4364287 * gc.c (gc_sweep): does reclaim nodes in also compile time, if we can.
* ruby.c (load_file): omit GC if we can.
* parse.y (ruby_parser_stack_on_heap): new function.
* intern.h (ruby_parser_stack_on_heap): added.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2780 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-09-02 12:19:30 +00:00
nobu
a13ebdb836 * ruby.c (require_libraries): prevent ruby_sorcefile from GC.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2750 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-08-27 11:00:24 +00:00
michal
ffc13a6525 *.c: Int vs Long cleanup
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2734 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-08-21 15:47:54 +00:00