Changeset 841 for trunk/dll/copyf.c


Ignore:
Timestamp:
Sep 23, 2007, 6:27:51 PM (18 years ago)
Author:
Gregg Young
Message:

This implements large file support; The wrappers to allow WARP3 compatibility are not done so this will not run on Warp3or Warp 4 pre fixpack 12(?)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/dll/copyf.c

    r838 r841  
    2424#define INCL_DOSERRORS
    2525#define INCL_WIN
     26#define INCL_LONGLONG
    2627#include <os2.h>
    2728
     
    5051char *MakeTempName(char *buffer)
    5152{
    52   FILESTATUS3 fs3;
     53  FILESTATUS3L fs3;
    5354  APIRET rc;
    5455  char *p, *o;
     
    5960  for (;;) {
    6061    DosError(FERR_DISABLEHARDERR);
    61     rc = DosQueryPathInfo(buffer, FIL_STANDARD, &fs3, (ULONG) sizeof(fs3));
     62    rc = DosQueryPathInfo(buffer, FIL_STANDARDL, &fs3, (ULONG) sizeof(fs3));
    6263    if (rc == ERROR_DISK_CHANGE) {
    6364      DosError(FERR_ENABLEHARDERR);
    64       rc = DosQueryPathInfo(buffer, FIL_STANDARD, &fs3, (ULONG) sizeof(fs3));
     65      rc = DosQueryPathInfo(buffer, FIL_STANDARDL, &fs3, (ULONG) sizeof(fs3));
    6566    }
    6667    if (rc)
     
    9091{
    9192  CHAR *p, *f, *s, *o;
    92   FILESTATUS3 fs3;
     93  FILESTATUS3L fs3;
    9394  APIRET rc;
    9495
     
    153154  for (;;) {
    154155    DosError(FERR_DISABLEHARDERR);
    155     rc = DosQueryPathInfo(buffer, FIL_STANDARD, &fs3, (ULONG) sizeof(fs3));
     156    rc = DosQueryPathInfo(buffer, FIL_STANDARDL, &fs3, (ULONG) sizeof(fs3));
    156157    if (rc == ERROR_DISK_CHANGE) {
    157158      DosError(FERR_ENABLEHARDERR);
    158       rc = DosQueryPathInfo(buffer, FIL_STANDARD, &fs3, (ULONG) sizeof(fs3));
     159      rc = DosQueryPathInfo(buffer, FIL_STANDARDL, &fs3, (ULONG) sizeof(fs3));
    159160    }
    160161    if (rc)
     
    281282    memset(pfealist, 0, ealen + 1);
    282283    pfealist->cbList = ealen;
    283     pfealist->list[0].oNextEntryOffset = 0L;
     284    pfealist->list[0].oNextEntryOffset = 0;
    284285    pfealist->list[0].fEA = 0;
    285286    pfealist->list[0].cbName = 9;
     
    352353APIRET docopyallf(INT type, CHAR * oldname, CHAR * newname, ...)
    353354{
    354   FILEFINDBUF3 fb;
     355  FILEFINDBUF3L fb;
    355356  ULONG nm;
    356357  HDIR hdir;
     
    408409  CHAR olddisk, newdisk, dir[CCHMAXPATH], *p, *pp;
    409410  APIRET ret = -1, rc;
    410   FILESTATUS3 st, st2, dummy;
     411  FILESTATUS3L st, st2, dummy;
    411412  BOOL diskchange = FALSE, zaplong = FALSE;
    412413  va_list ap;
     
    422423
    423424  DosError(FERR_DISABLEHARDERR);
    424   if (DosQueryPathInfo(oldname, FIL_STANDARD, &st, sizeof(FILESTATUS3)))
     425  if (DosQueryPathInfo(oldname, FIL_STANDARDL, &st, sizeof(FILESTATUS3L)))
    425426    return (APIRET) - 2;                /* no source */
    426427
     
    585586        DosError(FERR_DISABLEHARDERR);
    586587        rc = DosQueryPathInfo(fullnewname,
    587                               FIL_STANDARD, &st2, sizeof(FILESTATUS3));
     588                              FIL_STANDARDL, &st2, sizeof(FILESTATUS3L));
    588589        if (rc == ERROR_DISK_CHANGE) {
    589590          DosError(FERR_ENABLEHARDERR);
    590591          rc = DosQueryPathInfo(fullnewname,
    591                                 FIL_STANDARD, &st2, sizeof(FILESTATUS3));
     592                                FIL_STANDARDL, &st2, sizeof(FILESTATUS3L));
    592593        }
    593594        if (!rc && st2.cbFile == st.cbFile) {   /* seems to have worked... */
     
    595596          if (diskchange) {
    596597            DosError(FERR_ENABLEHARDERR);
    597             DosQueryPathInfo(oldname, FIL_STANDARD, &dummy, sizeof(FILESTATUS3));       /* force disk change */
     598            DosQueryPathInfo(oldname, FIL_STANDARDL, &dummy, sizeof(FILESTATUS3L));     /* force disk change */
    598599          }
    599600          if (!(st2.attrFile & FILE_DIRECTORY)) /* erase file */
     
    661662{
    662663  INT ret = -1;
    663   FILESTATUS3 fsi;
     664  FILESTATUS3L fsi;
    664665
    665666  DosError(FERR_DISABLEHARDERR);
    666   if (!DosQueryPathInfo(filename, FIL_STANDARD, &fsi, sizeof(fsi))) {
     667  if (!DosQueryPathInfo(filename, FIL_STANDARDL, &fsi, sizeof(fsi))) {
    667668    fsi.attrFile = 0;
    668669    DosError(FERR_DISABLEHARDERR);
    669     if (!xDosSetPathInfo(filename, FIL_STANDARD, &fsi, sizeof(fsi), 0))
     670    if (!xDosSetPathInfo(filename, FIL_STANDARDL, &fsi, sizeof(fsi), 0))
    670671      ret = 0;
    671672  }
     
    677678  /* unlink everything from directory on down... */
    678679
    679   FILEFINDBUF3 *f;
     680  FILEFINDBUF3L *f;
    680681  HDIR search_handle;
    681682  ULONG num_matches;
     
    735736
    736737  ss = xmalloc(CCHMAXPATH, pszSrcFile, __LINE__);
    737   f = xmalloc(sizeof(FILEFINDBUF3), pszSrcFile, __LINE__);
     738  f = xmalloc(sizeof(FILEFINDBUF3L), pszSrcFile, __LINE__);
    738739  if (!ss || !f) {
    739740    xfree(ss);
     
    744745
    745746  search_handle = HDIR_CREATE;
    746   num_matches = 1L;
     747  num_matches = 1;
    747748
    748749  DosError(FERR_DISABLEHARDERR);
    749750  if (!xDosFindFirst(str, &search_handle, FILE_NORMAL | FILE_DIRECTORY |
    750751                     FILE_SYSTEM | FILE_READONLY | FILE_HIDDEN | FILE_ARCHIVED,
    751                      f, sizeof(FILEFINDBUF3), &num_matches, FIL_STANDARD)) {
     752                     f, sizeof(FILEFINDBUF3L), &num_matches, FIL_STANDARDL)) {
    752753
    753754    strcpy(ss, s);
     
    779780      num_matches = 1L;
    780781      DosError(FERR_DISABLEHARDERR);
    781     } while (!xDosFindNext(search_handle, f, sizeof(FILEFINDBUF3),
     782    } while (!xDosFindNext(search_handle, f, sizeof(FILEFINDBUF3L),
    782783                           &num_matches));
    783784    DosFindClose(search_handle);
     
    794795  /* wildcard delete */
    795796
    796   FILEFINDBUF3 *f;
     797  FILEFINDBUF3L *f;
    797798  HDIR search_handle;
    798799  ULONG num_matches;
     
    829830
    830831  ss = xmalloc(CCHMAXPATH, pszSrcFile, __LINE__);
    831   f = xmalloc(sizeof(FILEFINDBUF3), pszSrcFile, __LINE__);
     832  f = xmalloc(sizeof(FILEFINDBUF3L), pszSrcFile, __LINE__);
    832833  if (!ss || !f) {
    833834    xfree(ss);
     
    842843  DosError(FERR_DISABLEHARDERR);
    843844  if (!xDosFindFirst(str, &search_handle, FILE_NORMAL, f,
    844                      sizeof(FILEFINDBUF3), &num_matches, FIL_STANDARD)) {
     845                     sizeof(FILEFINDBUF3L), &num_matches, FIL_STANDARDL)) {
    845846
    846847    strcpy(ss, s);
     
    852853      num_matches = 1;
    853854      DosError(FERR_DISABLEHARDERR);
    854     } while (!xDosFindNext(search_handle, f, sizeof(FILEFINDBUF3),
     855    } while (!xDosFindNext(search_handle, f, sizeof(FILEFINDBUF3L),
    855856                           &num_matches));
    856857    DosFindClose(search_handle);
Note: See TracChangeset for help on using the changeset viewer.