perl/win32/perlglob.c
<<
>>
Prefs
   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    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
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.