ruby-changes:1872
From: ko1@a...
Date: 7 Sep 2007 14:13:11 +0900
Subject: [ruby-changes:1872] shyouhei - Ruby:r13363 (ruby_1_8_5): * ext/win32ole/win32ole.c (ole_type_progid, reg_enum_key,
shyouhei 2007-09-07 14:13:03 +0900 (Fri, 07 Sep 2007)
New Revision: 13363
Modified files:
branches/ruby_1_8_5/ChangeLog
branches/ruby_1_8_5/ext/win32ole/win32ole.c
branches/ruby_1_8_5/version.h
Log:
* ext/win32ole/win32ole.c (ole_type_progid, reg_enum_key,
reg_get_val, ole_wc2mb): fix the bug. Thanks, arton.
[ruby-dev:31576]
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8_5/ext/win32ole/win32ole.c?r1=13363&r2=13362
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8_5/version.h?r1=13363&r2=13362
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8_5/ChangeLog?r1=13363&r2=13362
Index: ruby_1_8_5/ext/win32ole/win32ole.c
===================================================================
--- ruby_1_8_5/ext/win32ole/win32ole.c (revision 13362)
+++ ruby_1_8_5/ext/win32ole/win32ole.c (revision 13363)
@@ -78,7 +78,7 @@
#define WC2VSTR(x) ole_wc2vstr((x), TRUE)
-#define WIN32OLE_VERSION "0.7.1"
+#define WIN32OLE_VERSION "0.7.2"
typedef HRESULT (STDAPICALLTYPE FNCOCREATEINSTANCEEX)
(REFCLSID, IUnknown*, DWORD, COSERVERINFO*, DWORD, MULTI_QI*);
@@ -476,8 +476,9 @@
LPSTR pm;
size = WideCharToMultiByte(cWIN32OLE_cp, 0, pw, -1, NULL, 0, NULL, NULL);
if (size) {
- pm = ALLOC_N(char, size);
+ pm = ALLOC_N(char, size + 1);
WideCharToMultiByte(cWIN32OLE_cp, 0, pw, -1, pm, size, NULL, NULL);
+ pm[size] = '\0';
}
else {
pm = ALLOC_N(char, 1);
@@ -1137,12 +1138,13 @@
HKEY hkey;
DWORD i;
{
- char buf[BUFSIZ];
- DWORD size_buf = sizeof(buf);
+ char buf[BUFSIZ + 1];
+ DWORD size_buf = sizeof(buf) - 1;
FILETIME ft;
LONG err = RegEnumKeyEx(hkey, i, buf, &size_buf,
NULL, NULL, NULL, &ft);
if(err == ERROR_SUCCESS) {
+ buf[BUFSIZ] = '\0';
return rb_str_new2(buf);
}
return Qnil;
@@ -1153,10 +1155,11 @@
HKEY hkey;
const char *subkey;
{
- char buf[BUFSIZ];
- LONG size_buf = sizeof(buf);
+ char buf[BUFSIZ + 1];
+ LONG size_buf = sizeof(buf) - 1;
LONG err = RegQueryValue(hkey, subkey, buf, &size_buf);
if (err == ERROR_SUCCESS) {
+ buf[BUFSIZ] = '\0';
return rb_str_new2(buf);
}
return Qnil;
@@ -3617,8 +3620,10 @@
if (FAILED(hr))
return progid;
hr = ProgIDFromCLSID(&pTypeAttr->guid, &pbuf);
- if (SUCCEEDED(hr))
- progid = WC2VSTR(pbuf);
+ if (SUCCEEDED(hr)) {
+ progid = ole_wc2vstr(pbuf, FALSE);
+ CoTaskMemFree(pbuf);
+ }
OLE_RELEASE_TYPEATTR(pTypeInfo, pTypeAttr);
return progid;
}
Index: ruby_1_8_5/ChangeLog
===================================================================
--- ruby_1_8_5/ChangeLog (revision 13362)
+++ ruby_1_8_5/ChangeLog (revision 13363)
@@ -1,3 +1,9 @@
+Fri Sep 7 14:12:37 2007 Masaki Suketa <masaki.suketa@n...>
+
+ * ext/win32ole/win32ole.c (ole_type_progid, reg_enum_key,
+ reg_get_val, ole_wc2mb): fix the bug. Thanks, arton.
+ [ruby-dev:31576]
+
Fri Sep 7 14:02:10 2007 Nobuyoshi Nakada <nobu@r...>
* process.c (detach_process_watcher): should not pass the pointer
Index: ruby_1_8_5/version.h
===================================================================
--- ruby_1_8_5/version.h (revision 13362)
+++ ruby_1_8_5/version.h (revision 13363)
@@ -2,7 +2,7 @@
#define RUBY_RELEASE_DATE "2007-09-07"
#define RUBY_VERSION_CODE 185
#define RUBY_RELEASE_CODE 20070907
-#define RUBY_PATCHLEVEL 101
+#define RUBY_PATCHLEVEL 102
#define RUBY_VERSION_MAJOR 1
#define RUBY_VERSION_MINOR 8
--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml