windows-pr 0.8.1 → 0.8.2
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES +9 -1
- data/MANIFEST +6 -1
- data/lib/windows/handle.rb +2 -2
- data/lib/windows/msvcrt/buffer.rb +12 -12
- data/lib/windows/msvcrt/directory.rb +18 -18
- data/lib/windows/msvcrt/file.rb +11 -11
- data/lib/windows/msvcrt/io.rb +32 -32
- data/lib/windows/msvcrt/string.rb +14 -14
- data/lib/windows/msvcrt/time.rb +20 -20
- data/test/tc_msvcrt_directory.rb +67 -0
- data/test/tc_msvcrt_file.rb +80 -0
- data/test/tc_msvcrt_io.rb +48 -0
- data/test/tc_msvcrt_string.rb +36 -0
- data/test/tc_msvcrt_time.rb +29 -0
- data/windows-pr.gemspec +3 -2
- metadata +15 -5
data/CHANGES
CHANGED
@@ -1,4 +1,12 @@
|
|
1
|
-
= 0.8.
|
1
|
+
= 0.8.2 - 17-Apr-2008
|
2
|
+
* Most of the MSVCRT modules now use the MSVCRT_DLL from the Windows::API
|
3
|
+
library. This helps resolve an obscure bug where state information from a
|
4
|
+
statically linked runtime DLL is local to that runtime and not shared with
|
5
|
+
the Ruby process.
|
6
|
+
* Now requires windows-api 0.2.2 or later.
|
7
|
+
* Added more MSVCRT tests.
|
8
|
+
|
9
|
+
= 0.8.1 - 27-Mar-2008
|
2
10
|
* Added waitable timer functions to the Windows::Synchronize module.
|
3
11
|
* Fixed params 3 and 4 in the CreateProcess function.
|
4
12
|
|
data/MANIFEST
CHANGED
@@ -37,6 +37,8 @@ lib/windows/unicode.rb
|
|
37
37
|
lib/windows/volume.rb
|
38
38
|
lib/windows/window.rb
|
39
39
|
|
40
|
+
lib/windows/com/automation.rb
|
41
|
+
|
40
42
|
lib/windows/gdi/bitmap.rb
|
41
43
|
lib/windows/gdi/device_context.rb
|
42
44
|
lib/windows/gdi/painting_drawing.rb
|
@@ -46,4 +48,7 @@ lib/windows/msvcrt/directory.rb
|
|
46
48
|
lib/windows/msvcrt/file.rb
|
47
49
|
lib/windows/msvcrt/io.rb
|
48
50
|
lib/windows/msvcrt/string.rb
|
49
|
-
lib/windows/msvcrt/time.rb
|
51
|
+
lib/windows/msvcrt/time.rb
|
52
|
+
|
53
|
+
lib/windows/network/management.rb
|
54
|
+
lib/windows/network/snmp.rb
|
data/lib/windows/handle.rb
CHANGED
@@ -16,8 +16,8 @@ module Windows
|
|
16
16
|
DuplicateHandle = API.new('DuplicateHandle', 'LLLLLIL', 'I')
|
17
17
|
GetHandleInformation = API.new('GetHandleInformation', 'LL', 'I')
|
18
18
|
SetHandleInformation = API.new('SetHandleInformation', 'LLL', 'I')
|
19
|
-
GetOSFHandle = API.new('_get_osfhandle', 'I', 'L',
|
20
|
-
OpenOSFHandle = API.new('_open_osfhandle', 'LI', 'I',
|
19
|
+
GetOSFHandle = API.new('_get_osfhandle', 'I', 'L', MSVCRT_DLL)
|
20
|
+
OpenOSFHandle = API.new('_open_osfhandle', 'LI', 'I', MSVCRT_DLL)
|
21
21
|
|
22
22
|
def CloseHandle(handle)
|
23
23
|
CloseHandle.call(handle) != 0
|
@@ -8,19 +8,19 @@ module Windows
|
|
8
8
|
API.auto_method = false
|
9
9
|
API.auto_unicode = false
|
10
10
|
|
11
|
-
Memcpy = API.new('memcpy', 'PLL', 'P',
|
12
|
-
Memccpy = API.new('_memccpy', 'PPIL', 'P',
|
13
|
-
Memchr = API.new('memchr', 'PIL', 'P',
|
14
|
-
Memcmp = API.new('memcmp', 'PPL', 'I',
|
15
|
-
Memicmp = API.new('_memicmp', 'PPL', 'I',
|
16
|
-
Memmove = API.new('memmove', 'PPL', 'P',
|
17
|
-
Memset = API.new('memset', 'PLL', 'L',
|
18
|
-
Swab = API.new('_swab', 'PPI', 'V',
|
11
|
+
Memcpy = API.new('memcpy', 'PLL', 'P', MSVCRT_DLL)
|
12
|
+
Memccpy = API.new('_memccpy', 'PPIL', 'P', MSVCRT_DLL)
|
13
|
+
Memchr = API.new('memchr', 'PIL', 'P', MSVCRT_DLL)
|
14
|
+
Memcmp = API.new('memcmp', 'PPL', 'I', MSVCRT_DLL)
|
15
|
+
Memicmp = API.new('_memicmp', 'PPL', 'I', MSVCRT_DLL)
|
16
|
+
Memmove = API.new('memmove', 'PPL', 'P', MSVCRT_DLL)
|
17
|
+
Memset = API.new('memset', 'PLL', 'L', MSVCRT_DLL)
|
18
|
+
Swab = API.new('_swab', 'PPI', 'V', MSVCRT_DLL)
|
19
19
|
|
20
|
-
MemcpyPLL = API.new('memcpy', 'PLL', 'P',
|
21
|
-
MemcpyLPL = API.new('memcpy', 'LPL', 'P',
|
22
|
-
MemcpyLLL = API.new('memcpy', 'LLL', 'P',
|
23
|
-
MemcpyPPL = API.new('memcpy', 'PPL', 'P',
|
20
|
+
MemcpyPLL = API.new('memcpy', 'PLL', 'P', MSVCRT_DLL)
|
21
|
+
MemcpyLPL = API.new('memcpy', 'LPL', 'P', MSVCRT_DLL)
|
22
|
+
MemcpyLLL = API.new('memcpy', 'LLL', 'P', MSVCRT_DLL)
|
23
|
+
MemcpyPPL = API.new('memcpy', 'PPL', 'P', MSVCRT_DLL)
|
24
24
|
|
25
25
|
# Wrapper for the memcpy() function. Both the +dest+ and +src+ can
|
26
26
|
# be either a string or a memory address. If +size+ is omitted, it
|
@@ -6,24 +6,24 @@ module Windows
|
|
6
6
|
module Directory
|
7
7
|
API.auto_method = false
|
8
8
|
API.auto_constant = false
|
9
|
-
API.auto_unicode = false
|
10
|
-
|
11
|
-
Chdir = API.new('_chdir', 'P', 'I',
|
12
|
-
Wchdir = API.new('_wchdir', 'P', 'I',
|
13
|
-
Chdrive = API.new('_chdrive', 'I', 'I',
|
14
|
-
Getcwd = API.new('_getcwd', 'PI', 'P',
|
15
|
-
Wgetcwd = API.new('_wgetcwd', 'PI', 'P',
|
16
|
-
Getdcwd = API.new('_getdcwd', 'IPI', 'P',
|
17
|
-
Wgetdcwd = API.new('_wgetdcwd', 'IPI', 'P',
|
18
|
-
Getdiskfree = API.new('_getdiskfree', 'IP', 'I',
|
19
|
-
Getdrive = API.new('_getdrive', 'V', 'I',
|
20
|
-
Getdrives = API.new('_getdrives', 'V', 'L',
|
21
|
-
Mkdir = API.new('_mkdir', 'P', 'I',
|
22
|
-
Wmkdir = API.new('_wmkdir', 'P', 'I',
|
23
|
-
Rmdir = API.new('_rmdir', 'P', 'I',
|
24
|
-
Wrmdir = API.new('_wrmdir', 'P', 'I',
|
25
|
-
Searchenv = API.new('_searchenv', 'PPP', 'V',
|
26
|
-
Wsearchenv = API.new('_wsearchenv', 'PPP', 'V',
|
9
|
+
API.auto_unicode = false
|
10
|
+
|
11
|
+
Chdir = API.new('_chdir', 'P', 'I', MSVCRT_DLL)
|
12
|
+
Wchdir = API.new('_wchdir', 'P', 'I', MSVCRT_DLL)
|
13
|
+
Chdrive = API.new('_chdrive', 'I', 'I', MSVCRT_DLL)
|
14
|
+
Getcwd = API.new('_getcwd', 'PI', 'P', MSVCRT_DLL)
|
15
|
+
Wgetcwd = API.new('_wgetcwd', 'PI', 'P', MSVCRT_DLL)
|
16
|
+
Getdcwd = API.new('_getdcwd', 'IPI', 'P', MSVCRT_DLL)
|
17
|
+
Wgetdcwd = API.new('_wgetdcwd', 'IPI', 'P', MSVCRT_DLL)
|
18
|
+
Getdiskfree = API.new('_getdiskfree', 'IP', 'I', MSVCRT_DLL)
|
19
|
+
Getdrive = API.new('_getdrive', 'V', 'I', MSVCRT_DLL)
|
20
|
+
Getdrives = API.new('_getdrives', 'V', 'L', MSVCRT_DLL)
|
21
|
+
Mkdir = API.new('_mkdir', 'P', 'I', MSVCRT_DLL)
|
22
|
+
Wmkdir = API.new('_wmkdir', 'P', 'I', MSVCRT_DLL)
|
23
|
+
Rmdir = API.new('_rmdir', 'P', 'I', MSVCRT_DLL)
|
24
|
+
Wrmdir = API.new('_wrmdir', 'P', 'I', MSVCRT_DLL)
|
25
|
+
Searchenv = API.new('_searchenv', 'PPP', 'V', MSVCRT_DLL)
|
26
|
+
Wsearchenv = API.new('_wsearchenv', 'PPP', 'V', MSVCRT_DLL)
|
27
27
|
|
28
28
|
def chdir(dirname)
|
29
29
|
Chdir.call(dirname)
|
data/lib/windows/msvcrt/file.rb
CHANGED
@@ -6,7 +6,7 @@ module Windows
|
|
6
6
|
module File
|
7
7
|
API.auto_method = false
|
8
8
|
API.auto_constant = false
|
9
|
-
API.auto_unicode = false
|
9
|
+
API.auto_unicode = false
|
10
10
|
|
11
11
|
S_IFMT = 0170000 # file type mask
|
12
12
|
S_IFDIR = 0040000 # directory
|
@@ -17,21 +17,21 @@ module Windows
|
|
17
17
|
S_IWRITE = 0000200 # write permission, owner
|
18
18
|
S_IEXEC = 0000100 # execute/search permission, owner
|
19
19
|
|
20
|
-
Chmod = API.new('_chmod', 'PI', 'I',
|
21
|
-
Chsize = API.new('_chsize', 'IL', 'I',
|
22
|
-
Mktemp = API.new('_mktemp', 'P', 'P',
|
20
|
+
Chmod = API.new('_chmod', 'PI', 'I', MSVCRT_DLL)
|
21
|
+
Chsize = API.new('_chsize', 'IL', 'I', MSVCRT_DLL)
|
22
|
+
Mktemp = API.new('_mktemp', 'P', 'P', MSVCRT_DLL)
|
23
23
|
Stat = API.new('_stat', 'PP', 'I', 'msvcrt')
|
24
|
-
Stat64 = API.new('_stat64', 'PP', 'I',
|
25
|
-
Wchmod = API.new('_wchmod', 'PI', 'I',
|
26
|
-
Wmktemp = API.new('_wmktemp', 'P', 'P',
|
24
|
+
Stat64 = API.new('_stat64', 'PP', 'I', MSVCRT_DLL)
|
25
|
+
Wchmod = API.new('_wchmod', 'PI', 'I', MSVCRT_DLL)
|
26
|
+
Wmktemp = API.new('_wmktemp', 'P', 'P', MSVCRT_DLL)
|
27
27
|
Wstat = API.new('_wstat', 'PP', 'I', 'msvcrt')
|
28
|
-
Wstat64 = API.new('_wstat64', 'PP', 'I',
|
28
|
+
Wstat64 = API.new('_wstat64', 'PP', 'I', MSVCRT_DLL)
|
29
29
|
|
30
30
|
# VC++ 8.0 or later
|
31
31
|
begin
|
32
|
-
Chsize_s = API.new('_chsize_s', 'IL', 'I',
|
33
|
-
Mktemp_s = API.new('_mktemp_s', 'PL', 'L',
|
34
|
-
Wmktemp_s = API.new('_wmktemp_s', 'PL', 'L',
|
32
|
+
Chsize_s = API.new('_chsize_s', 'IL', 'I', MSVCRT_DLL)
|
33
|
+
Mktemp_s = API.new('_mktemp_s', 'PL', 'L', MSVCRT_DLL)
|
34
|
+
Wmktemp_s = API.new('_wmktemp_s', 'PL', 'L', MSVCRT_DLL)
|
35
35
|
rescue RuntimeError
|
36
36
|
# Ignore - you must check for it via 'defined?'
|
37
37
|
end
|
data/lib/windows/msvcrt/io.rb
CHANGED
@@ -18,41 +18,41 @@ module Windows
|
|
18
18
|
S_IWRITE = 0000200 # write permission, owner
|
19
19
|
S_IEXEC = 0000100 # execute/search permission, owner
|
20
20
|
|
21
|
-
Clearerr = API.new('clearerr', 'I', 'V',
|
22
|
-
Close = API.new('_close', 'I', 'V',
|
23
|
-
Fclose = API.new('fclose', 'I', 'I',
|
24
|
-
Fcloseall = API.new('_fcloseall', 'V', 'I',
|
25
|
-
Fdopen = API.new('_fdopen', 'IP', 'I',
|
26
|
-
Feof = API.new('feof', 'I', 'I',
|
27
|
-
Ferror = API.new('ferror', 'L', 'I',
|
28
|
-
Fflush = API.new('fflush', 'I', 'I',
|
29
|
-
Fgetc = API.new('fgetc', 'L', 'I',
|
30
|
-
Fgetpos = API.new('fgetpos', 'LP', 'I',
|
31
|
-
Fgetwc = API.new('fgetwc', 'L', 'I',
|
32
|
-
Fgets = API.new('fgets', 'PIL', 'P',
|
33
|
-
Fgetws = API.new('fgetws', 'PIL', 'P',
|
34
|
-
Fileno = API.new('_fileno', 'I', 'I',
|
35
|
-
Flushall = API.new('_flushall', 'V', 'I',
|
36
|
-
Fopen = API.new('fopen', 'PP', 'I',
|
37
|
-
Fputs = API.new('fputs', 'PL', 'I',
|
38
|
-
Fputws = API.new('fputws', 'PL', 'I',
|
39
|
-
Getc = API.new('getc', 'L', 'I',
|
40
|
-
Getwc = API.new('getwc', 'L', 'L',
|
41
|
-
Open = API.new('_open', 'PPI', 'I',
|
42
|
-
Rmtmp = API.new('_rmtmp', 'V', 'I',
|
43
|
-
Setmode = API.new('_setmode', 'II', 'I',
|
44
|
-
Tempnam = API.new('_tempnam', 'PP', 'P',
|
45
|
-
Tmpfile = API.new('tmpfile', 'V', 'L',
|
46
|
-
Tmpnam = API.new('tmpnam', 'P', 'P',
|
47
|
-
Wopen = API.new('_wopen', 'PPI', 'I',
|
48
|
-
Wfdopen = API.new('_wfdopen', 'IP', 'I',
|
49
|
-
Wfopen = API.new('_wfopen', 'PPI', 'I',
|
50
|
-
Wtempnam = API.new('_wtempnam', 'PP', 'P',
|
51
|
-
Wtmpnam = API.new('_wtmpnam', 'P', 'P',
|
21
|
+
Clearerr = API.new('clearerr', 'I', 'V', MSVCRT_DLL)
|
22
|
+
Close = API.new('_close', 'I', 'V', MSVCRT_DLL)
|
23
|
+
Fclose = API.new('fclose', 'I', 'I', MSVCRT_DLL)
|
24
|
+
Fcloseall = API.new('_fcloseall', 'V', 'I', MSVCRT_DLL)
|
25
|
+
Fdopen = API.new('_fdopen', 'IP', 'I', MSVCRT_DLL)
|
26
|
+
Feof = API.new('feof', 'I', 'I', MSVCRT_DLL)
|
27
|
+
Ferror = API.new('ferror', 'L', 'I', MSVCRT_DLL)
|
28
|
+
Fflush = API.new('fflush', 'I', 'I', MSVCRT_DLL)
|
29
|
+
Fgetc = API.new('fgetc', 'L', 'I', MSVCRT_DLL)
|
30
|
+
Fgetpos = API.new('fgetpos', 'LP', 'I', MSVCRT_DLL)
|
31
|
+
Fgetwc = API.new('fgetwc', 'L', 'I', MSVCRT_DLL)
|
32
|
+
Fgets = API.new('fgets', 'PIL', 'P', MSVCRT_DLL)
|
33
|
+
Fgetws = API.new('fgetws', 'PIL', 'P', MSVCRT_DLL)
|
34
|
+
Fileno = API.new('_fileno', 'I', 'I', MSVCRT_DLL)
|
35
|
+
Flushall = API.new('_flushall', 'V', 'I', MSVCRT_DLL)
|
36
|
+
Fopen = API.new('fopen', 'PP', 'I', MSVCRT_DLL)
|
37
|
+
Fputs = API.new('fputs', 'PL', 'I', MSVCRT_DLL)
|
38
|
+
Fputws = API.new('fputws', 'PL', 'I', MSVCRT_DLL)
|
39
|
+
Getc = API.new('getc', 'L', 'I', MSVCRT_DLL)
|
40
|
+
Getwc = API.new('getwc', 'L', 'L', MSVCRT_DLL)
|
41
|
+
Open = API.new('_open', 'PPI', 'I', MSVCRT_DLL)
|
42
|
+
Rmtmp = API.new('_rmtmp', 'V', 'I', MSVCRT_DLL)
|
43
|
+
Setmode = API.new('_setmode', 'II', 'I', MSVCRT_DLL)
|
44
|
+
Tempnam = API.new('_tempnam', 'PP', 'P', MSVCRT_DLL)
|
45
|
+
Tmpfile = API.new('tmpfile', 'V', 'L', MSVCRT_DLL)
|
46
|
+
Tmpnam = API.new('tmpnam', 'P', 'P', MSVCRT_DLL)
|
47
|
+
Wopen = API.new('_wopen', 'PPI', 'I', MSVCRT_DLL)
|
48
|
+
Wfdopen = API.new('_wfdopen', 'IP', 'I', MSVCRT_DLL)
|
49
|
+
Wfopen = API.new('_wfopen', 'PPI', 'I', MSVCRT_DLL)
|
50
|
+
Wtempnam = API.new('_wtempnam', 'PP', 'P', MSVCRT_DLL)
|
51
|
+
Wtmpnam = API.new('_wtmpnam', 'P', 'P', MSVCRT_DLL)
|
52
52
|
|
53
53
|
# VC++ 8.0 or later
|
54
54
|
begin
|
55
|
-
Tmpfile_s = API.new('_tmpfile_s', 'P', 'L',
|
55
|
+
Tmpfile_s = API.new('_tmpfile_s', 'P', 'L', MSVCRT_DLL)
|
56
56
|
rescue RuntimeError
|
57
57
|
# Ignore - you must check for it via 'defined?'
|
58
58
|
end
|
@@ -8,28 +8,28 @@ module Windows
|
|
8
8
|
API.auto_method = false
|
9
9
|
API.auto_unicode = false
|
10
10
|
|
11
|
-
Strcmp = API.new('strcmp', 'PP', 'I',
|
12
|
-
Strcpy = API.new('strcpy', 'PL', 'L',
|
13
|
-
Strcspn = API.new('strcspn', 'PP', 'L',
|
14
|
-
Strlen = API.new('strlen', 'P', 'L',
|
15
|
-
Strncpy = API.new('strncpy', 'PPL', 'P',
|
16
|
-
Strrchr = API.new('strrchr', 'PI', 'P',
|
17
|
-
Strrev = API.new('_strrev', 'P', 'P',
|
18
|
-
Strtok = API.new('strtok', 'PP', 'P',
|
11
|
+
Strcmp = API.new('strcmp', 'PP', 'I', MSVCRT_DLL)
|
12
|
+
Strcpy = API.new('strcpy', 'PL', 'L', MSVCRT_DLL)
|
13
|
+
Strcspn = API.new('strcspn', 'PP', 'L', MSVCRT_DLL)
|
14
|
+
Strlen = API.new('strlen', 'P', 'L', MSVCRT_DLL)
|
15
|
+
Strncpy = API.new('strncpy', 'PPL', 'P', MSVCRT_DLL)
|
16
|
+
Strrchr = API.new('strrchr', 'PI', 'P', MSVCRT_DLL)
|
17
|
+
Strrev = API.new('_strrev', 'P', 'P', MSVCRT_DLL)
|
18
|
+
Strtok = API.new('strtok', 'PP', 'P', MSVCRT_DLL)
|
19
19
|
|
20
20
|
Mbscmp = API.new('_mbscmp', 'PP', 'I', 'msvcrt')
|
21
21
|
Mbscpy = API.new('_mbscpy', 'PL', 'L', 'msvcrt')
|
22
22
|
Mbslen = API.new('_mbslen', 'P', 'L', 'msvcrt')
|
23
23
|
Mbsrev = API.new('_mbsrev', 'P', 'P', 'msvcrt')
|
24
24
|
|
25
|
-
Wcscmp = API.new('wcscmp', 'PP', 'I',
|
26
|
-
Wcscpy = API.new('wcscpy', 'PL', 'L',
|
27
|
-
Wcslen = API.new('wcslen', 'P', 'L',
|
28
|
-
Wcsncpy = API.new('wcsncpy', 'PPL', 'P',
|
29
|
-
Wcsrev = API.new('_wcsrev', 'P', 'P',
|
25
|
+
Wcscmp = API.new('wcscmp', 'PP', 'I', MSVCRT_DLL)
|
26
|
+
Wcscpy = API.new('wcscpy', 'PL', 'L', MSVCRT_DLL)
|
27
|
+
Wcslen = API.new('wcslen', 'P', 'L', MSVCRT_DLL)
|
28
|
+
Wcsncpy = API.new('wcsncpy', 'PPL', 'P', MSVCRT_DLL)
|
29
|
+
Wcsrev = API.new('_wcsrev', 'P', 'P', MSVCRT_DLL)
|
30
30
|
|
31
31
|
begin
|
32
|
-
Strtok_s = API.new('strtok_s', 'PPI', 'P',
|
32
|
+
Strtok_s = API.new('strtok_s', 'PPI', 'P', MSVCRT_DLL)
|
33
33
|
rescue RuntimeError
|
34
34
|
# Do nothing. Not supported on your system.
|
35
35
|
end
|
data/lib/windows/msvcrt/time.rb
CHANGED
@@ -8,37 +8,37 @@ module Windows
|
|
8
8
|
API.auto_method = false
|
9
9
|
API.auto_unicode = false
|
10
10
|
|
11
|
-
Asctime = API.new('asctime', 'P', 'P',
|
12
|
-
Clock = API.new('clock', 'V', 'L',
|
11
|
+
Asctime = API.new('asctime', 'P', 'P', MSVCRT_DLL)
|
12
|
+
Clock = API.new('clock', 'V', 'L', MSVCRT_DLL)
|
13
13
|
Ctime = API.new('ctime', 'P', 'P', 'msvcrt')
|
14
|
-
Ctime64 = API.new('_ctime64', 'P', 'P',
|
14
|
+
Ctime64 = API.new('_ctime64', 'P', 'P', MSVCRT_DLL)
|
15
15
|
Difftime = API.new('difftime', 'LL', 'L', 'msvcrt')
|
16
16
|
Ftime = API.new('_ftime', 'P', 'L', 'msvcrt')
|
17
|
-
Ftime64 = API.new('_ftime64', 'P', 'L',
|
17
|
+
Ftime64 = API.new('_ftime64', 'P', 'L', MSVCRT_DLL)
|
18
18
|
Futime = API.new('_futime', 'IP', 'I', 'msvcrt')
|
19
|
-
Futime64 = API.new('_futime64', 'IP', 'I',
|
19
|
+
Futime64 = API.new('_futime64', 'IP', 'I', MSVCRT_DLL)
|
20
20
|
Gmtime = API.new('gmtime', 'P', 'P', 'msvcrt')
|
21
|
-
Gmtime64 = API.new('_gmtime64', 'P', 'P',
|
21
|
+
Gmtime64 = API.new('_gmtime64', 'P', 'P', MSVCRT_DLL)
|
22
22
|
Localtime = API.new('localtime', 'P', 'P', 'msvcrt')
|
23
|
-
Localtime64 = API.new('_localtime64', 'P', 'P',
|
23
|
+
Localtime64 = API.new('_localtime64', 'P', 'P', MSVCRT_DLL)
|
24
24
|
Mktime = API.new('mktime', 'P', 'L', 'msvcrt')
|
25
|
-
Mktime64 = API.new('_mktime64', 'P', 'L',
|
26
|
-
Strdate = API.new('_strdate', 'P', 'P',
|
27
|
-
Strftime = API.new('strftime', 'PLPP', 'L',
|
28
|
-
Strtime = API.new('_strtime', 'P', 'P',
|
25
|
+
Mktime64 = API.new('_mktime64', 'P', 'L', MSVCRT_DLL)
|
26
|
+
Strdate = API.new('_strdate', 'P', 'P', MSVCRT_DLL)
|
27
|
+
Strftime = API.new('strftime', 'PLPP', 'L', MSVCRT_DLL)
|
28
|
+
Strtime = API.new('_strtime', 'P', 'P', MSVCRT_DLL)
|
29
29
|
WinTime = API.new('time', 'P', 'L', 'msvcrt') # Avoid conflict
|
30
|
-
WinTime64 = API.new('_time64', 'P', 'L',
|
31
|
-
Tzset = API.new('_tzset', 'V', 'V',
|
30
|
+
WinTime64 = API.new('_time64', 'P', 'L', MSVCRT_DLL) # Avoid conflict
|
31
|
+
Tzset = API.new('_tzset', 'V', 'V', MSVCRT_DLL)
|
32
32
|
Utime = API.new('_utime', 'PP', 'I', 'msvcrt')
|
33
|
-
Utime64 = API.new('_utime64', 'PP', 'I',
|
34
|
-
Wasctime = API.new('_wasctime', 'P', 'P',
|
33
|
+
Utime64 = API.new('_utime64', 'PP', 'I', MSVCRT_DLL)
|
34
|
+
Wasctime = API.new('_wasctime', 'P', 'P', MSVCRT_DLL)
|
35
35
|
Wctime = API.new('_wctime', 'P', 'P', 'msvcrt')
|
36
|
-
Wctime64 = API.new('_wctime64', 'P', 'P',
|
37
|
-
Wstrdate = API.new('_wstrdate', 'P', 'L',
|
38
|
-
Wcsftime = API.new('wcsftime', 'PLPP', 'L',
|
39
|
-
Wstrtime = API.new('_wstrtime', 'P', 'P',
|
36
|
+
Wctime64 = API.new('_wctime64', 'P', 'P', MSVCRT_DLL)
|
37
|
+
Wstrdate = API.new('_wstrdate', 'P', 'L', MSVCRT_DLL)
|
38
|
+
Wcsftime = API.new('wcsftime', 'PLPP', 'L', MSVCRT_DLL)
|
39
|
+
Wstrtime = API.new('_wstrtime', 'P', 'P', MSVCRT_DLL)
|
40
40
|
Wutime = API.new('_wutime', 'PP', 'I', 'msvcrt')
|
41
|
-
Wutime64 = API.new('_wutime64', 'PP', 'I',
|
41
|
+
Wutime64 = API.new('_wutime64', 'PP', 'I', MSVCRT_DLL)
|
42
42
|
|
43
43
|
def asctime(timeptr)
|
44
44
|
Asctime.call(timeptr)
|
@@ -0,0 +1,67 @@
|
|
1
|
+
#####################################################################
|
2
|
+
# tc_msvcrt_directory.rb
|
3
|
+
#
|
4
|
+
# Test case for the Windows::MSVCRT::File module.
|
5
|
+
#####################################################################
|
6
|
+
require 'windows/msvcrt/directory'
|
7
|
+
require 'test/unit'
|
8
|
+
|
9
|
+
class MDirectoryFoo
|
10
|
+
include Windows::MSVCRT::Directory
|
11
|
+
end
|
12
|
+
|
13
|
+
class TC_Windows_MSVCRT_Directory < Test::Unit::TestCase
|
14
|
+
def setup
|
15
|
+
@foo = MDirectoryFoo.new
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_method_constants
|
19
|
+
assert_not_nil(MDirectoryFoo::Chdir)
|
20
|
+
assert_not_nil(MDirectoryFoo::Wchdir)
|
21
|
+
assert_not_nil(MDirectoryFoo::Chdrive)
|
22
|
+
assert_not_nil(MDirectoryFoo::Getcwd)
|
23
|
+
assert_not_nil(MDirectoryFoo::Wgetcwd)
|
24
|
+
assert_not_nil(MDirectoryFoo::Getdcwd)
|
25
|
+
assert_not_nil(MDirectoryFoo::Getdiskfree)
|
26
|
+
assert_not_nil(MDirectoryFoo::Getdrive)
|
27
|
+
assert_not_nil(MDirectoryFoo::Getdrives)
|
28
|
+
assert_not_nil(MDirectoryFoo::Mkdir)
|
29
|
+
assert_not_nil(MDirectoryFoo::Wmkdir)
|
30
|
+
assert_not_nil(MDirectoryFoo::Rmdir)
|
31
|
+
assert_not_nil(MDirectoryFoo::Wrmdir)
|
32
|
+
assert_not_nil(MDirectoryFoo::Searchenv)
|
33
|
+
assert_not_nil(MDirectoryFoo::Wsearchenv)
|
34
|
+
end
|
35
|
+
|
36
|
+
def test_chdir
|
37
|
+
assert_respond_to(@foo, :chdir)
|
38
|
+
end
|
39
|
+
|
40
|
+
def test_wchdir
|
41
|
+
assert_respond_to(@foo, :wchdir)
|
42
|
+
end
|
43
|
+
|
44
|
+
def test_chdrive
|
45
|
+
assert_respond_to(@foo, :chdrive)
|
46
|
+
end
|
47
|
+
|
48
|
+
def test_getcwd
|
49
|
+
assert_respond_to(@foo, :getcwd)
|
50
|
+
end
|
51
|
+
|
52
|
+
def test_wgetcwd
|
53
|
+
assert_respond_to(@foo, :wgetcwd)
|
54
|
+
end
|
55
|
+
|
56
|
+
def test_getdcwd
|
57
|
+
assert_respond_to(@foo, :getdcwd)
|
58
|
+
end
|
59
|
+
|
60
|
+
def test_wgetdcwd
|
61
|
+
assert_respond_to(@foo, :wgetdcwd)
|
62
|
+
end
|
63
|
+
|
64
|
+
def teardown
|
65
|
+
@foo = nil
|
66
|
+
end
|
67
|
+
end
|
@@ -0,0 +1,80 @@
|
|
1
|
+
#####################################################################
|
2
|
+
# tc_msvcrt_file.rb
|
3
|
+
#
|
4
|
+
# Test case for the Windows::MSVCRT::File module.
|
5
|
+
#####################################################################
|
6
|
+
require 'windows/msvcrt/file'
|
7
|
+
require 'test/unit'
|
8
|
+
|
9
|
+
class MFileFoo
|
10
|
+
include Windows::MSVCRT::File
|
11
|
+
end
|
12
|
+
|
13
|
+
class TC_Windows_MSVCRT_File < Test::Unit::TestCase
|
14
|
+
def setup
|
15
|
+
@foo = MFileFoo.new
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_numeric_constants
|
19
|
+
assert_not_nil(MFileFoo::S_IFMT)
|
20
|
+
assert_not_nil(MFileFoo::S_IFDIR)
|
21
|
+
assert_not_nil(MFileFoo::S_IFCHR)
|
22
|
+
assert_not_nil(MFileFoo::S_IFIFO)
|
23
|
+
assert_not_nil(MFileFoo::S_IFREG)
|
24
|
+
assert_not_nil(MFileFoo::S_IREAD)
|
25
|
+
assert_not_nil(MFileFoo::S_IWRITE)
|
26
|
+
assert_not_nil(MFileFoo::S_IEXEC)
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_method_constants
|
30
|
+
assert_not_nil(MFileFoo::Chmod)
|
31
|
+
assert_not_nil(MFileFoo::Chsize)
|
32
|
+
assert_not_nil(MFileFoo::Mktemp)
|
33
|
+
assert_not_nil(MFileFoo::Stat)
|
34
|
+
assert_not_nil(MFileFoo::Stat64)
|
35
|
+
assert_not_nil(MFileFoo::Wchmod)
|
36
|
+
assert_not_nil(MFileFoo::Wmktemp)
|
37
|
+
assert_not_nil(MFileFoo::Wstat)
|
38
|
+
assert_not_nil(MFileFoo::Wstat64)
|
39
|
+
end
|
40
|
+
|
41
|
+
def test_chmod
|
42
|
+
assert_respond_to(@foo, :chmod)
|
43
|
+
end
|
44
|
+
|
45
|
+
def test_chsize
|
46
|
+
assert_respond_to(@foo, :chsize)
|
47
|
+
end
|
48
|
+
|
49
|
+
def test_mktemp
|
50
|
+
assert_respond_to(@foo, :mktemp)
|
51
|
+
end
|
52
|
+
|
53
|
+
def test_stat
|
54
|
+
assert_respond_to(@foo, :stat)
|
55
|
+
end
|
56
|
+
|
57
|
+
def test_stat64
|
58
|
+
assert_respond_to(@foo, :stat64)
|
59
|
+
end
|
60
|
+
|
61
|
+
def test_wchmod
|
62
|
+
assert_respond_to(@foo, :wchmod)
|
63
|
+
end
|
64
|
+
|
65
|
+
def test_wmktemp
|
66
|
+
assert_respond_to(@foo, :wmktemp)
|
67
|
+
end
|
68
|
+
|
69
|
+
def test_wstat
|
70
|
+
assert_respond_to(@foo, :wstat)
|
71
|
+
end
|
72
|
+
|
73
|
+
def test_wstat64
|
74
|
+
assert_respond_to(@foo, :wstat64)
|
75
|
+
end
|
76
|
+
|
77
|
+
def teardown
|
78
|
+
@foo = nil
|
79
|
+
end
|
80
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
#####################################################################
|
2
|
+
# tc_msvcrt_io.rb
|
3
|
+
#
|
4
|
+
# Test case for the Windows::MSVCRT::IO module.
|
5
|
+
#####################################################################
|
6
|
+
require 'windows/msvcrt/io'
|
7
|
+
require 'test/unit'
|
8
|
+
|
9
|
+
class MIOFoo
|
10
|
+
include Windows::MSVCRT::IO
|
11
|
+
end
|
12
|
+
|
13
|
+
class TC_Windows_MSVCRT_IO < Test::Unit::TestCase
|
14
|
+
def setup
|
15
|
+
@foo = MIOFoo.new
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_numeric_constants
|
19
|
+
assert_not_nil(MIOFoo::S_IFMT)
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_method_constants
|
23
|
+
assert_not_nil(MIOFoo::Clearerr)
|
24
|
+
assert_not_nil(MIOFoo::Close)
|
25
|
+
assert_not_nil(MIOFoo::Fclose)
|
26
|
+
assert_not_nil(MIOFoo::Fileno)
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_clearerr
|
30
|
+
assert_respond_to(@foo, :clearerr)
|
31
|
+
end
|
32
|
+
|
33
|
+
def test_close
|
34
|
+
assert_respond_to(@foo, :close)
|
35
|
+
end
|
36
|
+
|
37
|
+
def test_fclose
|
38
|
+
assert_respond_to(@foo, :fclose)
|
39
|
+
end
|
40
|
+
|
41
|
+
def test_fileno
|
42
|
+
assert_respond_to(@foo, :fileno)
|
43
|
+
end
|
44
|
+
|
45
|
+
def teardown
|
46
|
+
@foo = nil
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
#####################################################################
|
2
|
+
# tc_msvcrt_string.rb
|
3
|
+
#
|
4
|
+
# Test case for the Windows::MSVCRT::String module.
|
5
|
+
#####################################################################
|
6
|
+
require 'windows/msvcrt/string'
|
7
|
+
require 'test/unit'
|
8
|
+
|
9
|
+
class MStringFoo
|
10
|
+
include Windows::MSVCRT::String
|
11
|
+
end
|
12
|
+
|
13
|
+
class TC_Windows_MSVCRT_String < Test::Unit::TestCase
|
14
|
+
def setup
|
15
|
+
@foo = MStringFoo.new
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_method_constants
|
19
|
+
assert_not_nil(MStringFoo::Strcmp)
|
20
|
+
assert_not_nil(MStringFoo::Strcpy)
|
21
|
+
assert_not_nil(MStringFoo::Strcspn)
|
22
|
+
assert_not_nil(MStringFoo::Strlen)
|
23
|
+
assert_not_nil(MStringFoo::Strncpy)
|
24
|
+
assert_not_nil(MStringFoo::Strrchr)
|
25
|
+
assert_not_nil(MStringFoo::Strrev)
|
26
|
+
assert_not_nil(MStringFoo::Strtok)
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_strcmp
|
30
|
+
assert_respond_to(@foo, :strcmp)
|
31
|
+
end
|
32
|
+
|
33
|
+
def teardown
|
34
|
+
@foo = nil
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
#####################################################################
|
2
|
+
# tc_msvcrt_time.rb
|
3
|
+
#
|
4
|
+
# Test case for the Windows::MSVCRT::Time module.
|
5
|
+
#####################################################################
|
6
|
+
require 'windows/msvcrt/time'
|
7
|
+
require 'test/unit'
|
8
|
+
|
9
|
+
class MTimeFoo
|
10
|
+
include Windows::MSVCRT::Time
|
11
|
+
end
|
12
|
+
|
13
|
+
class TC_Windows_MSVCRT_Time < Test::Unit::TestCase
|
14
|
+
def setup
|
15
|
+
@foo = MTimeFoo.new
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_method_constants
|
19
|
+
assert_not_nil(MTimeFoo::Asctime)
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_asctime
|
23
|
+
assert_respond_to(@foo, :asctime)
|
24
|
+
end
|
25
|
+
|
26
|
+
def teardown
|
27
|
+
@foo = nil
|
28
|
+
end
|
29
|
+
end
|
data/windows-pr.gemspec
CHANGED
@@ -2,10 +2,11 @@ require "rubygems"
|
|
2
2
|
|
3
3
|
spec = Gem::Specification.new do |gem|
|
4
4
|
gem.name = "windows-pr"
|
5
|
-
gem.version = "0.8.
|
5
|
+
gem.version = "0.8.2"
|
6
6
|
gem.author = "Daniel J. Berger"
|
7
7
|
gem.email = "djberg96@gmail.com"
|
8
8
|
gem.homepage = "http://www.rubyforge.org/projects/win32utils"
|
9
|
+
gem.rubyforge_project = "win32utils"
|
9
10
|
gem.platform = Gem::Platform::RUBY
|
10
11
|
gem.summary = "Windows functions and constants bundled via Win32::API"
|
11
12
|
gem.description = "Windows functions and constants bundled via Win32::API"
|
@@ -18,7 +19,7 @@ spec = Gem::Specification.new do |gem|
|
|
18
19
|
gem.files.reject! { |fn| fn.include? "CVS" }
|
19
20
|
gem.require_path = "lib"
|
20
21
|
gem.extra_rdoc_files = ["MANIFEST", "README", "CHANGES"]
|
21
|
-
gem.add_dependency("windows-api", ">= 0.2.
|
22
|
+
gem.add_dependency("windows-api", ">= 0.2.2")
|
22
23
|
end
|
23
24
|
|
24
25
|
if $0 == __FILE__
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: windows-pr
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel J. Berger
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-
|
12
|
+
date: 2008-04-18 00:00:00 -06:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -19,7 +19,7 @@ dependencies:
|
|
19
19
|
requirements:
|
20
20
|
- - ">="
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: 0.2.
|
22
|
+
version: 0.2.2
|
23
23
|
version:
|
24
24
|
description: Windows functions and constants bundled via Win32::API
|
25
25
|
email: djberg96@gmail.com
|
@@ -81,6 +81,11 @@ files:
|
|
81
81
|
- test/tc_limits.rb
|
82
82
|
- test/tc_memory.rb
|
83
83
|
- test/tc_msvcrt_buffer.rb
|
84
|
+
- test/tc_msvcrt_directory.rb
|
85
|
+
- test/tc_msvcrt_file.rb
|
86
|
+
- test/tc_msvcrt_io.rb
|
87
|
+
- test/tc_msvcrt_string.rb
|
88
|
+
- test/tc_msvcrt_time.rb
|
84
89
|
- test/tc_national.rb
|
85
90
|
- test/tc_network_management.rb
|
86
91
|
- test/tc_network_snmp.rb
|
@@ -140,8 +145,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
140
145
|
version:
|
141
146
|
requirements: []
|
142
147
|
|
143
|
-
rubyforge_project:
|
144
|
-
rubygems_version: 1.
|
148
|
+
rubyforge_project: win32utils
|
149
|
+
rubygems_version: 1.1.1
|
145
150
|
signing_key:
|
146
151
|
specification_version: 2
|
147
152
|
summary: Windows functions and constants bundled via Win32::API
|
@@ -162,6 +167,11 @@ test_files:
|
|
162
167
|
- test/tc_limits.rb
|
163
168
|
- test/tc_memory.rb
|
164
169
|
- test/tc_msvcrt_buffer.rb
|
170
|
+
- test/tc_msvcrt_directory.rb
|
171
|
+
- test/tc_msvcrt_file.rb
|
172
|
+
- test/tc_msvcrt_io.rb
|
173
|
+
- test/tc_msvcrt_string.rb
|
174
|
+
- test/tc_msvcrt_time.rb
|
165
175
|
- test/tc_national.rb
|
166
176
|
- test/tc_network_management.rb
|
167
177
|
- test/tc_network_snmp.rb
|