perlglob.c revision 1.2
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 12int 13main(int argc, char *argv[]) 14{ 15 int i; 16 int 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