diff options
author | 1997-11-30 07:45:47 +0000 | |
---|---|---|
committer | 1997-11-30 07:45:47 +0000 | |
commit | ba47ec9da08b5e716a167fd61325b8edfcb66dd6 (patch) | |
tree | 91bc543f2ed3206add10a699e40e1120ba95f742 /gnu/usr.bin/perl/win32/perlglob.c | |
parent | verbose eisa/pci (diff) | |
download | wireguard-openbsd-ba47ec9da08b5e716a167fd61325b8edfcb66dd6.tar.xz wireguard-openbsd-ba47ec9da08b5e716a167fd61325b8edfcb66dd6.zip |
perl 5.004_04
Diffstat (limited to 'gnu/usr.bin/perl/win32/perlglob.c')
-rw-r--r-- | gnu/usr.bin/perl/win32/perlglob.c | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/gnu/usr.bin/perl/win32/perlglob.c b/gnu/usr.bin/perl/win32/perlglob.c new file mode 100644 index 00000000000..b2fdca2f71e --- /dev/null +++ b/gnu/usr.bin/perl/win32/perlglob.c @@ -0,0 +1,42 @@ +/* + * Globbing for NT. Relies on the expansion done by the library + * startup code. + */ + +#include <stdio.h> +#include <io.h> +#include <fcntl.h> +#include <string.h> +#include <windows.h> + +int +main(int argc, char *argv[]) +{ + int i; + int len; + char root[MAX_PATH]; + char *dummy; + char volname[MAX_PATH]; + DWORD serial, maxname, flags; + BOOL downcase = TRUE; + + /* check out the file system characteristics */ + if (GetFullPathName(".", MAX_PATH, root, &dummy)) { + if (dummy = strchr(root, '\\')) + *++dummy = '\0'; + if (GetVolumeInformation(root, volname, MAX_PATH, + &serial, &maxname, &flags, 0, 0)) { + downcase = !(flags & FS_CASE_IS_PRESERVED); + } + } + + setmode(fileno(stdout), O_BINARY); + for (i = 1; i < argc; i++) { + len = strlen(argv[i]); + if (downcase) + strlwr(argv[i]); + if (i > 1) fwrite("\0", sizeof(char), 1, stdout); + fwrite(argv[i], sizeof(char), len, stdout); + } + return 0; +} |