Line | |
---|
1 | /*
|
---|
2 | * Globbing for NT. Relies on the expansion done by the library
|
---|
3 | * startup code.
|
---|
4 | */
|
---|
5 |
|
---|
6 | #include <stdio.h>
|
---|
7 | #include <io.h>
|
---|
8 | #include <fcntl.h>
|
---|
9 | #include <string.h>
|
---|
10 | #include <windows.h>
|
---|
11 |
|
---|
12 | int
|
---|
13 | main(int argc, char *argv[])
|
---|
14 | {
|
---|
15 | int i;
|
---|
16 | size_t len;
|
---|
17 | char root[MAX_PATH];
|
---|
18 | char *dummy;
|
---|
19 | char volname[MAX_PATH];
|
---|
20 | DWORD serial, maxname, flags;
|
---|
21 | BOOL downcase = TRUE;
|
---|
22 |
|
---|
23 | /* check out the file system characteristics */
|
---|
24 | if (GetFullPathName(".", MAX_PATH, root, &dummy)) {
|
---|
25 | dummy = strchr(root,'\\');
|
---|
26 | if (dummy)
|
---|
27 | *++dummy = '\0';
|
---|
28 | if (GetVolumeInformation(root, volname, MAX_PATH,
|
---|
29 | &serial, &maxname, &flags, 0, 0)) {
|
---|
30 | downcase = !(flags & FS_CASE_IS_PRESERVED);
|
---|
31 | }
|
---|
32 | }
|
---|
33 |
|
---|
34 | setmode(fileno(stdout), O_BINARY);
|
---|
35 | for (i = 1; i < argc; i++) {
|
---|
36 | len = strlen(argv[i]);
|
---|
37 | if (downcase)
|
---|
38 | strlwr(argv[i]);
|
---|
39 | if (i > 1) fwrite("\0", sizeof(char), 1, stdout);
|
---|
40 | fwrite(argv[i], sizeof(char), len, stdout);
|
---|
41 | }
|
---|
42 | return 0;
|
---|
43 | }
|
---|
44 |
|
---|
Note:
See
TracBrowser
for help on using the repository browser.