Commit graph

125 commits

Author SHA1 Message Date
matz
620bb29f49 * process.c (rb_f_system): block SIGCHLD during the process
execution, like glibc system(3) does.  [ruby-talk:202361]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@10563 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-07-18 14:36:15 +00:00
matz
226bf50f8e * process.c (rb_f_system): call rb_sys_fail(0) if rb_last_status
is nil.  [ruby-talk:202361]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@10556 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-07-18 05:53:33 +00:00
nobu
aa2a96eb5b * process.c (rb_proc_times): use sysconf(_SC_CLK_TCK) value prior to
HZ and CLK_TCK.  fixed: [ruby-talk:200293]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@10475 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-07-06 13:22:23 +00:00
akr
3d0c41a022 Define Process.getrlimit and Process.setrlimit even if
getrlimit and setrlimit are not exist.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@10274 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-06-15 06:43:29 +00:00
akr
675702d121 * configure.in: check sizeof(rlim_t).
check setrlimit.

* process.c (proc_getrlimit): new method Process.getrlimit.
  (proc_setrlimit): new method Process.setrlimit.

* ruby.h (NUM2ULL): new macro.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@10262 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-06-14 14:10:39 +00:00
matz
fb45255198 * process.c (rb_f_sleep): remove description about SIGALRM which
is not valid on the current implementation.  [ruby-dev:28464]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@10051 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-03-24 08:22:36 +00:00
akr
b8d6e2218e document that fork doesn't copy other threads
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@9571 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-11-20 03:30:47 +00:00
matz
7b4486c877 * merged a patch from Takahiro Kambe <taca@back-street.net> to
support DragonFly BSD.  [ruby-dev:26984]

* object.c (rb_mod_cvar_get, rb_mod_cvar_set): document fix from
  sheepman <sheepman@sheepman.sakura.ne.jp>; a bug in visibility
  description.  [ruby-dev:26965]

* sprintf.c (rb_f_sprintf): warn "too many argument" on verbose
  mode (-v/-w); backported from 1.9.  [ruby-dev:26963]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@9102 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-09-08 05:59:43 +00:00
ocean
b692adc093 * process.c (proc_detach, proc_setmaxgroups): missing argument type
declaration. (I recomment ANSI-style function)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@9057 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-08-31 01:40:56 +00:00
nobu
1a6b5e7a18 * process.c (detach_process_wathcer): fixed typo.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8683 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-06-30 14:54:53 +00:00
matz
04f006aea3 * eval.c (rb_eval): pre-evaluate argument for unambiguous
evaluation order.  [ruby-dev:26383]

* lib/delegate.rb (Delegator::method_missing): forward unknown
  method to the destination.  suggested by
  <christophe.poucet@gmail.com>.  [ruby-talk:146776]

* process.c (detach_process_watcher): terminate process watcher
  thread right after rb_waitpid() succeed.  [ruby-talk:146430]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8676 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-06-30 06:20:09 +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
nobu
7862a89c56 * configure.in: Check for the availability of pid_t, gid_t and uid_t and
remove AC_TYPE_UID_T.  fixed: [ruby-core:04745]

* defines.h: Remove pid_t typedef.

* ruby.h: Define rb_pid_t, rb_gid_t and rb_uid_t in accordance with
 the available system types.

* process.c: Change instances of pid_t and gid_t to their rb_*
 counterparts.

* ext/pty/pty.c: Change pid_t to rb_pid_t.

* vms/config.h: Define HAVE_{P,G,U}ID_T to 1.

* win32/Makefile.sub: Remove #define for {g,u}id_t.

* win32/win32.c: Change pid_t to rb_pid_t.

* wince/Makefile.sub: Remove #define for {g,u}id_t.

* wince/sys/types.h: Remove definitions of {p,g,u}id_t.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8455 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-05-14 14:57:53 +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
matz
3d4376d167 * 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]

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


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8028 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-02-23 13:52:19 +00:00
nobu
4b5138d888 * process.c (proc_setgroups): check if the argument lenght is
modified.  fixed: [ruby-dev:25285]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7642 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-12-23 14:36:53 +00:00
matz
d650fb0578 * process.c (proc_setgroups): [ruby-dev:25081]
* re.c (rb_reg_eqq): document fix.  [ruby-talk:122541]

* ext/socket/socket.c (sock_connect): use rb_str_new4().
  [ruby-dev:25052]

* io.c (io_write): remove rb_str_locktmp().  [ruby-dev:25050]

* io.c (io_fwrite): takes VALUE string as an argument.
  [ruby-dev:25050]

* ext/socket/socket.c (sock_connect): remove rb_str_locktmp().
  [ruby-dev:25050]

* ext/socket/socket.c (udp_connect): [ruby-dev:25045]

* ext/socket/socket.c (udp_bind): ditto.

* ext/socket/socket.c (udp_send): ditto.

* ext/socket/socket.c (bsock_send): ditto.

* ext/socket/socket.c (s_recvfrom): ditto.

* hash.c (rb_hash_hash): should provide "hash" method where "eql?"
  is redefined.  [ruby-talk:122482]

* ext/socket/socket.c (bsock_setsockopt): [ruby-dev:25039]

* hash.c (rb_hash_hash): should provide "hash" method where "eql?"
  is redefined.  [ruby-talk:122482]

* ext/socket/socket.c (bsock_setsockopt): [ruby-dev:25039]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7483 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-12-06 15:34:10 +00:00
matz
db8a49614f * process.c (proc_getpgrp): prohibit for $SAFE=2.
[ruby-dev:24899]

* process.c (get_pid): ditto.  [ruby-dev:24904]

* process.c (get_ppid): ditto.

* array.c (rb_ary_delete): defer rb_ary_modify() until actual
  modification.  [ruby-dev:24901]

* parse.y (newline_node): should not use FL_SET. [ruby-dev:24874]

* parse.y (string_content): should not use FL_UNSET.

* node.h (NODE_NEWLINE): remove unused bit to utilize flag field
  in nodes.

* string.c (rb_str_splice): move rb_str_modify() after
  StringValue(), which may alter the receiver.  [ruby-dev:24878]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7307 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-11-18 03:47:14 +00:00
naruse
028d19ef5c On NetBSD don't use setruid() and setrgid().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7193 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-11-03 13:32:12 +00:00
matz
4e8d491b90 * process.c (rb_f_fork): need to flush stdout and stderr before
fork(2).  [ruby-talk:117715]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7180 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-11-02 07:13:02 +00:00
matz
6f9dcadf6e * string.c (rb_str_sum): check was done with false pointer.
[ruby-dev:24383]

* string.c (rb_str_sum): string may be altered.  [ruby-dev:24381]

* eval.c (rb_f_eval): defer pointer retrieval to prevent unsafe
  sourcefile string modification.  [ruby-dev:24373]

* io.c (io_read): block string buffer modification during
  rb_io_fread() by freezing it temporarily. [ruby-dev:24366]

* io.c (rb_io_s_popen): mode argument may be altered.
  [ruby-dev:24375]

* file.c (rb_file_s_basename): ext argument may be altered.
  [ruby-dev:24377]

* enum.c (enum_sort_by): use NODE instead of 2 element arrays.
  [ruby-dev:24378]

* string.c (rb_str_chomp_bang): StringValue() may change the
  receiver.  [ruby-dev:24371]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6979 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-10-02 03:50:53 +00:00
usa
94fe903463 fix typo(?).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6948 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-09-22 04:11:34 +00:00
dave
7abdd26013 Add documentation to fork()
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6943 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-09-21 15:13:53 +00:00
matz
b74286e423 * lib/irb/ruby-lex.rb (RubyLex::identify_string): %s string do not
process expression interpolation.  [ruby-talk:106691]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6684 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-07-22 03:50:33 +00:00
usa
dcd31c368c * process.c (rb_f_system): not need to call last_status_set() any
longer on _WIN32.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6682 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-07-21 15:04:51 +00:00
nobu
d9fd180849 * process.c (pst_success_p): new method Process::Status#success?.
[ruby-dev:23385]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6170 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-04-15 15:02:12 +00:00
nobu
280ee0095f * process.c (pst_success_p): new method Process::Status#success?.
[ruby-dev:23385]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6169 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-04-15 14:21:55 +00:00
nobu
da011c8311 * array.c, enum.c, eval.c, file.c, io.c, numeric.c, object.c, prec.c,
process.c, re.c, string.c: typos in RDoc comments.  [ruby-core:02783]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6158 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-04-14 04:06:52 +00:00
dave
c6fe98f4a6 Add HTML formatter to ri
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@5440 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-01-11 17:34:05 +00:00
eban
180de1b3f8 * eval.c, object.c, process.c, re.c: don't use C++ style comments.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@5413 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-01-08 02:30:19 +00:00
dave
62cbbfb24b Finish documenting internal stuff. See Changelog for other details
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@5364 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-01-02 06:01:12 +00:00
eban
79444dbdb9 * win32/win32.h: define execv() using do_aspawn().
* process.c (proc_exec_v): remove #ifdef's which stopped needing.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5153 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-12-10 04:00:07 +00:00
nobu
e788706235 * eval.c (rb_f_exit), process.c (rb_f_exit_bang): use VALUEs not but
TYPEs.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5041 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-11-27 15:47:33 +00:00
nobu
99fb5f4871 * eval.c (rb_f_exit), process.c (rb_f_exit_bang): treat true as
success, false as failure.  [ruby-dev:22067]

* eval.c (rb_f_abort, rb_thread_switch), process.c (rb_f_system): use
  ANSI macro instead of hard coded value.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5040 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-11-27 15:34:53 +00:00
matz
a4934a42cb * io.c (read_all): fptr->f may be NULL, if IO is closed in the
signal handler.

* io.c (io_read): ditto.

* string.c (get_pat): remove 1.8.0 warning code.

* string.c (rb_str_match): extend warning until 1.8.2.

* string.c (rb_str_match2): ditto.

* class.c (class_instance_method_list): remove 1.8.0 warnings.
  method_list now recurs.  [ruby-dev:21816]

* class.c (rb_obj_singleton_methods): ditto.

* array.c (rb_ary_select): remove select with block.
  [ruby-dev:21824]

* hash.c (rb_hash_select): ditto.

* hash.c (env_select): ditto.

* re.c (match_select): ditto.

* struct.c (rb_struct_select): ditto.

* process.c (check_uid_switch): remove duplicated error messages.

* process.c (check_gid_switch): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4892 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-11-04 09:13:57 +00:00
usa
f1ab0d3cab * process.c (rb_f_system): fixed lack of security check before
calling do_spawn() on win32. [ruby-talk:84555]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4861 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-30 00:34:30 +00:00
matz
1184373d86 * string.c (str_new4): should not preserve FL_TAINT status in the
internal shared string. [ruby-dev:21601]

* string.c (rb_str_new4): ditto.

* eval.c: use EXIT_SUCCESS and EXIT_FAILURE for exit values.

* process.c: ditto. [ruby-dev:38521]

* lib/debug.rb (debug_command): should enter emacs mode when
  assigned any value to the environment variable "EMACS".
  On Meadow, (getenv "EMACS") is "meadow".


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4749 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-13 13:05:24 +00:00
nobu
5c547fd3e2 * signal.c (ruby_signal_name): adjust to the prototype.
* process.c (pst_inspect): ditto.

* ext/etc/etc.c (Init_etc): typo.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4641 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-01 15:14:23 +00:00
akr
77d7066abe * process.c (pst_inspect): describe stopped process "stopped".
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4632 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-09-30 02:31:24 +00:00
matz
13ac4447f6 * eval.c (rb_eval): while/until should not capture break unless
they are destination of the break.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4629 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-09-30 00:21:14 +00:00
matz
4699b4afbb * eval.c (rb_thread_atfork): wrong format specifier.
[ruby-dev:21428]

* process.c (pst_inspect): better description.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4617 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-09-29 02:44:49 +00:00
eban
6f8f8959b7 * process.c (p_gid_sw_ensure): return VALUE.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4471 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-08-31 13:57:38 +00:00
nagai
803a130207 * process.c (p_gid_sw_ensure): lack of function type
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4469 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-08-31 13:29:54 +00:00
nagai
24ff3f4448 * doc/ChangeLog-1.8.0: add changes of Ruby/Tk
* ext/tcltklib/tcltklib.c : some methods have no effect if on slave-IP
* ext/tcltklib/tcltklib.c : can create a interpreter without Tk
* ext/tcltklib/tcltklib.c : bug fix on handling exceptions
* ext/tcltklib/MANUAL.euc : modify
* ext/tk/lib/tk.rb : freeze some core modules
* ext/tk/lib/multi-tk.rb : more secure
* ext/tk/lib/tk.rb: TkVariable.new(array) --> treat the array as the
  Tk's list
* ext/tk/lib/tk.rb: improve accessibility of TkVariable object
* ext/tk/lib/tk.rb, ext/tk/lib/tkfont.rb, ext/tk/lib/tkcanvas.rb,
  ext/tk/lib/tktext.rb : fix bug of font handling
* ext/tk/lib/tkfont.rb TkFont.new() accepts compound fonts
* process.c: bug fix
* process.c: add rb_secure(2) to methods of Process::{UID,GID,Sys}
* process.c: deny handling IDs during evaluating the block given to
  the Process::{UID,GID}.switch method


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4456 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-08-29 08:34:14 +00:00
nagai
c1c4b6b501 * modify macro to detect 'MacOS X' based on [ruby-talk:77849]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4293 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-08-03 02:55:52 +00:00
nagai
baf02b9a63 * (bug fix) preprocessor errors occur on OpenBSD-current
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4276 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-08-01 18:51:10 +00:00
matz
85911c410a * ext/socket/socket.c (tcp_s_gethostbyname): was using
uninitialized size_t value. [ruby-talk:76946]

* Minor cleanups.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4156 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-25 05:36:55 +00:00
matz
5dd2b7102c * gcc -Wall clean-up.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4151 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-24 18:33:50 +00:00
nagai
fd46a1da0a process.c : unify indentation
configure.in : add --enable-setreuid option
tcltklib.c : TclTkIp.new accepts 'ip-name' and 'options'
             ( e.g. TclTkIp.new('FOO', '-geometry 500x200 -use 0x2200009') )
tk.rb      : support arguments of TclTkIp.new
             ( see TkCore::IP_NAME, TkCore::IP_OPTS )
tk*.rb     : preparations for multi-Tk interpreter support


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4127 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-23 16:07:35 +00:00
nagai
3e8d70c95c process.c, configure.in :
* add a module for raw syscalls to control UID/GID
  * add modules for portable UID/GID control


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4119 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-23 02:39:46 +00:00