perlglob.c revision 1.1
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 if (dummy = strchr(root, '\\')) 26 *++dummy = '\0'; 27 if (GetVolumeInformation(root, volname, MAX_PATH, 28 &serial, &maxname, &flags, 0, 0)) { 29 downcase = !(flags & FS_CASE_IS_PRESERVED); 30 } 31 } 32 33 setmode(fileno(stdout), O_BINARY); 34 for (i = 1; i < argc; i++) { 35 len = strlen(argv[i]); 36 if (downcase) 37 strlwr(argv[i]); 38 if (i > 1) fwrite("\0", sizeof(char), 1, stdout); 39 fwrite(argv[i], sizeof(char), len, stdout); 40 } 41 return 0; 42} 43