mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05: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_6@13389 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
		
							parent
							
								
									27c7fd9acc
								
							
						
					
					
						commit
						ae6dd097f2
					
				
					 3 changed files with 20 additions and 9 deletions
				
			
		|  | @ -1,3 +1,9 @@ | ||||||
|  | Fri Sep  7 16:09:39 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] | ||||||
|  | 
 | ||||||
| Fri Sep  7 15:50:50 2007  Yukihiro Matsumoto  <matz@ruby-lang.org> | Fri Sep  7 15:50:50 2007  Yukihiro Matsumoto  <matz@ruby-lang.org> | ||||||
| 
 | 
 | ||||||
| 	* eval.c (mnew): should preserve noex as safe_level. | 	* eval.c (mnew): should preserve noex as safe_level. | ||||||
|  |  | ||||||
|  | @ -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; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -2,7 +2,7 @@ | ||||||
| #define RUBY_RELEASE_DATE "2007-09-07" | #define RUBY_RELEASE_DATE "2007-09-07" | ||||||
| #define RUBY_VERSION_CODE 186 | #define RUBY_VERSION_CODE 186 | ||||||
| #define RUBY_RELEASE_CODE 20070907 | #define RUBY_RELEASE_CODE 20070907 | ||||||
| #define RUBY_PATCHLEVEL 94 | #define RUBY_PATCHLEVEL 95 | ||||||
| 
 | 
 | ||||||
| #define RUBY_VERSION_MAJOR 1 | #define RUBY_VERSION_MAJOR 1 | ||||||
| #define RUBY_VERSION_MINOR 8 | #define RUBY_VERSION_MINOR 8 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 shyouhei
						shyouhei