summaryrefslogtreecommitdiffstats
path: root/gnu/usr.bin/perl/win32/perlglob.c
diff options
context:
space:
mode:
authormillert <millert@openbsd.org>1997-11-30 07:45:47 +0000
committermillert <millert@openbsd.org>1997-11-30 07:45:47 +0000
commitba47ec9da08b5e716a167fd61325b8edfcb66dd6 (patch)
tree91bc543f2ed3206add10a699e40e1120ba95f742 /gnu/usr.bin/perl/win32/perlglob.c
parentverbose eisa/pci (diff)
downloadwireguard-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.c42
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;
+}