mirror of
https://github.com/ruby/ruby.git
synced 2025-09-17 17:43:59 +02:00
* ext/win32ole/win32ole.c (ole_type_progid, reg_enum_key,
reg_get_val, ole_wc2mb): fix the bug. Thanks, arton. [ruby-dev:31576] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@13297 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
03785cd9b1
commit
763e41cbca
3 changed files with 22 additions and 11 deletions
|
@ -1,3 +1,9 @@
|
||||||
|
Tue Aug 28 23:26:12 2007 Masaki Suketa <masaki.suketa@nifty.ne.jp>
|
||||||
|
|
||||||
|
* ext/win32ole/win32ole.c (ole_type_progid, reg_enum_key,
|
||||||
|
reg_get_val, ole_wc2mb): fix the bug. Thanks, arton.
|
||||||
|
[ruby-dev:31576]
|
||||||
|
|
||||||
Mon Aug 27 19:10:50 2007 Yukihiro Matsumoto <matz@ruby-lang.org>
|
Mon Aug 27 19:10:50 2007 Yukihiro Matsumoto <matz@ruby-lang.org>
|
||||||
|
|
||||||
* ext/etc/etc.c (etc_getlogin): update documentation to note
|
* ext/etc/etc.c (etc_getlogin): update documentation to note
|
||||||
|
|
|
@ -79,7 +79,7 @@
|
||||||
|
|
||||||
#define WC2VSTR(x) ole_wc2vstr((x), TRUE)
|
#define WC2VSTR(x) ole_wc2vstr((x), TRUE)
|
||||||
|
|
||||||
#define WIN32OLE_VERSION "0.7.1"
|
#define WIN32OLE_VERSION "0.7.2"
|
||||||
|
|
||||||
typedef HRESULT (STDAPICALLTYPE FNCOCREATEINSTANCEEX)
|
typedef HRESULT (STDAPICALLTYPE FNCOCREATEINSTANCEEX)
|
||||||
(REFCLSID, IUnknown*, DWORD, COSERVERINFO*, DWORD, MULTI_QI*);
|
(REFCLSID, IUnknown*, DWORD, COSERVERINFO*, DWORD, MULTI_QI*);
|
||||||
|
@ -477,8 +477,9 @@ ole_wc2mb(pw)
|
||||||
LPSTR pm;
|
LPSTR pm;
|
||||||
size = WideCharToMultiByte(cWIN32OLE_cp, 0, pw, -1, NULL, 0, NULL, NULL);
|
size = WideCharToMultiByte(cWIN32OLE_cp, 0, pw, -1, NULL, 0, NULL, NULL);
|
||||||
if (size) {
|
if (size) {
|
||||||
pm = ALLOC_N(char, size);
|
pm = ALLOC_N(char, size + 1);
|
||||||
WideCharToMultiByte(cWIN32OLE_cp, 0, pw, -1, pm, size, NULL, NULL);
|
WideCharToMultiByte(cWIN32OLE_cp, 0, pw, -1, pm, size, NULL, NULL);
|
||||||
|
pm[size] = '\0';
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
pm = ALLOC_N(char, 1);
|
pm = ALLOC_N(char, 1);
|
||||||
|
@ -1138,12 +1139,13 @@ reg_enum_key(hkey, i)
|
||||||
HKEY hkey;
|
HKEY hkey;
|
||||||
DWORD i;
|
DWORD i;
|
||||||
{
|
{
|
||||||
char buf[BUFSIZ];
|
char buf[BUFSIZ + 1];
|
||||||
DWORD size_buf = sizeof(buf);
|
DWORD size_buf = sizeof(buf) - 1;
|
||||||
FILETIME ft;
|
FILETIME ft;
|
||||||
LONG err = RegEnumKeyEx(hkey, i, buf, &size_buf,
|
LONG err = RegEnumKeyEx(hkey, i, buf, &size_buf,
|
||||||
NULL, NULL, NULL, &ft);
|
NULL, NULL, NULL, &ft);
|
||||||
if(err == ERROR_SUCCESS) {
|
if(err == ERROR_SUCCESS) {
|
||||||
|
buf[BUFSIZ] = '\0';
|
||||||
return rb_str_new2(buf);
|
return rb_str_new2(buf);
|
||||||
}
|
}
|
||||||
return Qnil;
|
return Qnil;
|
||||||
|
@ -1154,10 +1156,11 @@ reg_get_val(hkey, subkey)
|
||||||
HKEY hkey;
|
HKEY hkey;
|
||||||
const char *subkey;
|
const char *subkey;
|
||||||
{
|
{
|
||||||
char buf[BUFSIZ];
|
char buf[BUFSIZ + 1];
|
||||||
LONG size_buf = sizeof(buf);
|
LONG size_buf = sizeof(buf) - 1;
|
||||||
LONG err = RegQueryValue(hkey, subkey, buf, &size_buf);
|
LONG err = RegQueryValue(hkey, subkey, buf, &size_buf);
|
||||||
if (err == ERROR_SUCCESS) {
|
if (err == ERROR_SUCCESS) {
|
||||||
|
buf[BUFSIZ] = '\0';
|
||||||
return rb_str_new2(buf);
|
return rb_str_new2(buf);
|
||||||
}
|
}
|
||||||
return Qnil;
|
return Qnil;
|
||||||
|
@ -3618,8 +3621,10 @@ ole_type_progid(pTypeInfo)
|
||||||
if (FAILED(hr))
|
if (FAILED(hr))
|
||||||
return progid;
|
return progid;
|
||||||
hr = ProgIDFromCLSID(&pTypeAttr->guid, &pbuf);
|
hr = ProgIDFromCLSID(&pTypeAttr->guid, &pbuf);
|
||||||
if (SUCCEEDED(hr))
|
if (SUCCEEDED(hr)) {
|
||||||
progid = WC2VSTR(pbuf);
|
progid = ole_wc2vstr(pbuf, FALSE);
|
||||||
|
CoTaskMemFree(pbuf);
|
||||||
|
}
|
||||||
OLE_RELEASE_TYPEATTR(pTypeInfo, pTypeAttr);
|
OLE_RELEASE_TYPEATTR(pTypeInfo, pTypeAttr);
|
||||||
return progid;
|
return progid;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#define RUBY_VERSION "1.8.6"
|
#define RUBY_VERSION "1.8.6"
|
||||||
#define RUBY_RELEASE_DATE "2007-08-27"
|
#define RUBY_RELEASE_DATE "2007-08-28"
|
||||||
#define RUBY_VERSION_CODE 186
|
#define RUBY_VERSION_CODE 186
|
||||||
#define RUBY_RELEASE_CODE 20070827
|
#define RUBY_RELEASE_CODE 20070828
|
||||||
#define RUBY_PATCHLEVEL 5000
|
#define RUBY_PATCHLEVEL 5000
|
||||||
|
|
||||||
#define RUBY_VERSION_MAJOR 1
|
#define RUBY_VERSION_MAJOR 1
|
||||||
|
@ -9,7 +9,7 @@
|
||||||
#define RUBY_VERSION_TEENY 6
|
#define RUBY_VERSION_TEENY 6
|
||||||
#define RUBY_RELEASE_YEAR 2007
|
#define RUBY_RELEASE_YEAR 2007
|
||||||
#define RUBY_RELEASE_MONTH 8
|
#define RUBY_RELEASE_MONTH 8
|
||||||
#define RUBY_RELEASE_DAY 27
|
#define RUBY_RELEASE_DAY 28
|
||||||
|
|
||||||
#ifdef RUBY_EXTERN
|
#ifdef RUBY_EXTERN
|
||||||
RUBY_EXTERN const char ruby_version[];
|
RUBY_EXTERN const char ruby_version[];
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue