Commit graph

278 commits

Author SHA1 Message Date
suke
70db47aadb * ext/win32ole/win32ole.c (ole_val2olevariantdata):
WIN32OLE_VARIANT#new accepts nil when variant type is VT_ARRAY.

* test/win32ole/test_win32ole_variant.rb: ditto.

* ext/win32ole/win32ole.c: small refactoring.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11702 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-02-11 09:53:10 +00:00
suke
7634900b4e * ext/win32ole/win32ole.c: add WIN32OLE#ole_query_interface.
thanks to Mikael Pahmp.

* test/win32ole/test_win32ole.rb: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11690 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-02-10 11:29:49 +00:00
suke
990ae267cd * ext/win32ole/win32ole.c (ole_set_safe_array, ole_variant2val,
ole_val_ary2variant_ary): fix WIN32OLE_VARIANT.new bug when
  1st argument is empty array, and when 2nd argument is 
  VT_ARRAY|VT_BYREF.

* test/win32ole/test_win32ole_variant.rb: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11670 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-02-08 13:48:16 +00:00
suke
d4b866914b * ext/win32ole/win32ole.c (ole_val2olevariantdata, ole_val2variant):
fix the bug of WIN32OLE_VARIANT.new when variant type is 
  VT_ARRAY.

* ext/win32ole/sample/excel1.rb: rewrite using WIN32OLE_VARIANT.

* test/win32ole/test_win32ole.rb: add some test.

* test/win32ole/test_win32ole_variant.rb: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11624 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-02-03 05:41:03 +00:00
suke
883f34f777 * ext/win32ole/win32ole.c: add WIN32OLE.locale=, WIN32OLE.locale,
WIN32OLE_VARIANT#vartype.

* test/win32ole/test_win32ole.rb: add test for WIN32OLE.locale=,
  WIN32OLE.locale.

* test/win32ole/test_win32ole_variant.rb: add test for 
  WIN32OLE_VARIANT#vartype.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11588 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-01-29 12:41:50 +00:00
suke
7cc6cded59 * ext/win32ole/win32ole.c: refactoring.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11584 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-01-27 23:46:27 +00:00
suke
68daaab409 * ext/win32ole/win32ole.c (ole_val2olevariantdata): bug fix.
WIN32OLE_VARIANT.new check that 1st argument should T_ARRAY
  when variant type is VT_ARRAY.

* test/win32ole/test_win32ole_variant.rb: add some test. 


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11581 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-01-27 09:46:34 +00:00
suke
bb435c7a6c bug fix of WIN32OLE_VARIANT when variant type is VT_BYREF|VT_VARIANT.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11579 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-01-26 15:03:43 +00:00
suke
3b5dbc4b06 WIN32OLE.codepage= accepts installed codepage.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11550 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-01-20 12:12:36 +00:00
suke
f700c1354f version 0.8.6.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11547 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-01-20 02:36:54 +00:00
suke
e16e6a66ae modify WIN32OLERuntimeError message.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11546 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-01-20 02:28:49 +00:00
suke
e538fe5703 add WIN32OLE_VARIANT::Empty, WIN32OLE_VARIANT::Null, WIN32OLE_VARIANT::Nothing.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11543 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-01-19 08:22:45 +00:00
suke
72cc74655f IN32OLE_VARIANT.new accepts nil as first argument for some VARIANT TYPE. fix memory leak.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11542 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-01-18 22:08:29 +00:00
suke
d2907d42be fix memory leak of win32ole.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11529 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-01-13 14:40:54 +00:00
suke
b84ff5ccb3 add some test. update comment for rdoc.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11507 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-01-07 08:56:04 +00:00
suke
a782fa1268 add WIN32OLE::VARIANT::VT_NULL, WIN32OLE::VARIANT::VT_EMPTY.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11487 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-01-05 23:38:15 +00:00
ko1
a3e1b1ce7e * Merge YARV
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11439 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-12-31 15:02:22 +00:00
suke
c6defdfa80 remove WIN32OLE::PROPERTY class.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11424 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-12-27 12:00:54 +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
usa
6790891ef0 * ext/Win32API/Win32API.c (Win32API_initialize): use RSTRING_PTR and
RSTRING_LEN.

* ext/tk/stubs.c, ext/tk/tcltklib.c, ext/tk/tkutil/tkutil.c: ditto.

* ext/win32ole/win32ole.c (ole_val2olevariantdata): ditto.

* lib/mkmf.rb (create_makefile): follow nil.to_s.

* win32/resource.rb: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10812 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-08-31 11:56:42 +00:00
suke
0c2571d621 accept hash argument of Symbol key.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10750 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-08-19 07:53:27 +00:00
suke
afdc2b89bd support some kind of method of word. [ruby-Bugs#3237]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10384 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-06-25 08:21:29 +00:00
suke
33311b653c support PROPERTYPUTREF. [ruby-talk:183042]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10316 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-06-18 11:34:53 +00:00
nobu
3e5f70a815 * math.c (log2): may be a macro.
* parse.y (args, block_param, f_args): pass f_post_arg to #params.

* util.c (powersOf10): constified.

* ext/readline/readline.c: include extconf.h first.

* ext/ripper/eventids2.c: removed tLAMBDA_ARG.

* ext/tk/tcltklib.c (lib_fromUTF8_core): removed conflict.

* ext/tk/tkutil/tkutil.c (cbsubst_get_subst_arg): rb_id2name() is
  defined as const now.

* ext/win32ole/win32ole.c (fole_missing): ditto.

* lib/mkmf.rb (create_makefile): force to create extconf header.

* lib/optparse.rb (order!): use Proc#yield.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10238 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-06-09 23:18:04 +00:00
suke
2bdd9d6eba ext/win32ole/win32ole.c (add_event_call_back): should not
delete event handler when the event name is not entried.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10125 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-05-01 09:05:08 +00:00
suke
9154b19bae ole_param_ole_type should return "unknown type" string when ITypeInfo::GetFuncDesc failed.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10121 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-04-30 23:37:54 +00:00
suke
2b5beeed15 add test/win32ole/test_win32ole_variant.rb.
ext/win32ole/win32ole.c: use ANSI C style.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10119 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-04-30 13:11:12 +00:00
suke
29ba4ff416 add WIN32OLE_METHOD#inspect, WIN32OLE_PARAM#inspect
add test/win32ole/test_win32ole_param.rb


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10085 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-04-08 09:13:30 +00:00
suke
11974f3b6d WIN32OLE_TYPELIB.new accepts OLE files.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10082 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-04-07 13:16:46 +00:00
suke
3ff87cc53f add WIN32OLE_TYPE#inspect, WIN32OLE_VARIABLE#inspect
add test/win32ole and remove some test script from ext/win32ole/tests.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10071 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-04-01 06:23:07 +00:00
suke
801443f3ac change the behavior of WIN32OLE#[] and WIN32OLE#[]=.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10068 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-03-29 14:12:49 +00:00
usa
5bc9512a0b * ext/win32ole/win32ole.c (folevariant_value): could not compile
with C90 compiler.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10042 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-03-20 02:14:24 +00:00
suke
6c0256933b change behavior of converting OLE Variant object with VT_ARRAY|VT_UI1
and Ruby String object.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10039 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-03-19 00:56:59 +00:00
suke
88ea87db21 * ext/win32ole/win32ole.c(ole_val2olevariantdata): support VT_VARIANT in
WIN32OLE_VARIANT.new().

* ext/win32ole/tests/testOLEVARIANT.rb: ditto.

* ext/win32ole/tests/testOLEPARAM.rb: test method name should not be
  duplicated.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10032 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-03-12 08:09:48 +00:00
suke
9a59edfb4e add WIN32OLE.create_guid.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9910 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-02-11 13:00:46 +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
matz
4d467a0865 * 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/trunk@9673 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-12 00:36:54 +00:00
suke
5d71328bca avoid core dump with WIN32OLE_EVENT.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9282 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-09-23 08:39:24 +00:00
ocean
a5df717c8e * ext/win32ole/win32ole.c: supress warnings. (win32)
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9030 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-08-25 06:51:33 +00:00
suke
ba30d87a36 add WIN32OLE_VARIANT class.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8984 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-08-13 12:22:12 +00:00
suke
f50c302e77 * ext/win32ole/win32ole.c (WIN32OLE_EVENT#on_event): should set
only one event handler.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8974 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-08-12 12:58:47 +00:00
suke
14f0a0d0bd add WIN32OLE_TYPE#ole_typelib, WIN32OLE_TYPE#implemented_ole_types.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8867 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-07-30 09:51:48 +00:00
suke
a2ae6182ae convert dispid in Ruby and C by INT2NUM and NUM2INT.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8738 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-07-09 13:03:10 +00:00
suke
6a63e942ba ext/win32ole/win32ole.c(ole_invoke): retry after converting Qnil
to VT_EMPTY.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8333 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-04-15 13:05:01 +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
suke
4cbaddcf8c * ext/win32ole/win32ole.c: rename WIN32OLE#ole_obj_help to
WIN32OLE#ole_type. alias ole_obj_help to ole_type.

* ext/win32ole/tests/testWIN32OLE.rb: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7222 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-11-06 11:42:35 +00:00
suke
e4a65e4427 ext/win32ole/win32ole.c(typelib_file_from_typelib): search "win16"
entry to get library path.

ext/win32ole/win32ole.c(oletypelib_path): ditto.

ext/win32ole/win32ole.c(ole_typedesc2val): add VT_LPWSTR, VT_LPSTR,
VT_ERROR case.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7201 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-11-04 12:12:59 +00:00
suke
cfc8755faf add rdoc style document.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7191 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-11-03 11:35:27 +00:00
suke
c6cf2e24fe add WIN32OLE.codepage, WIN32OLE.codepage=
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7154 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-10-31 07:59:58 +00:00
matz
3e9e2bd4ed * eval.c (rb_eval): NODE_XSTR should pass copy of literal string.
* array.c (rb_ary_update): a[n,m]=nil no longer works as element
  deletion.

* enum.c (enum_sort_by): protect continuation jump in.
  [ruby-dev:24642]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7145 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-10-30 06:56:18 +00:00