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 45