Changeset 1450 for trunk/dll


Ignore:
Timestamp:
Jul 28, 2009, 12:23:55 AM (16 years ago)
Author:
Gregg Young
Message:

Add a PCSZ srting for error messages; prevent error popup for locked text file on directory scan (scan works as expected anyway); Pass file names on stack which is in low mem for DosGetMessage.

Location:
trunk/dll
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/dll/errutil.c

    r1449 r1450  
    119119{
    120120  CHAR szMsg[4096];
    121   CHAR *szMsgFile, *szMsgFileH;
     121  CHAR szMsgFile[20], szMsgFileH[20];
    122122  ULONG Class;                          // Error class
    123123  ULONG action;                         // Error action
     
    131131    return MBID_ENTER;                  // Should not have been called
    132132
    133   //Allocate low memory for DosGetMessage (16 bit)
    134   DosAllocMem((PVOID) &szMsgFile, CCHMAXPATH,
    135                PAG_COMMIT | PAG_READ | PAG_WRITE);
    136   DosAllocMem((PVOID) &szMsgFileH, CCHMAXPATH,
    137                PAG_COMMIT | PAG_READ | PAG_WRITE);
    138133  // Format caller's message
    139134  va_start(va, pszFmt);
     
    169164      || !DosGetMessage(NULL, 0L, (PCHAR) pszMsgStart + 1, 1024, ulRC,
    170165                        szMsgFileH, &ulMsgLen)) {
    171     DosFreeMem(szMsgFile);
    172     DosFreeMem(szMsgFileH);
    173166    // Got message
    174167    pszMsgStart[ulMsgLen + 1] = 0;      // Terminate
  • trunk/dll/filldir.c

    r1447 r1450  
    460460        eaop.oError = 0;
    461461        rc = DosQueryPathInfo(pci->pszFileName, FIL_QUERYEASFROMLIST,
    462                               (PVOID) &eaop, (ULONG) sizeof(EAOP2));
    463         if (rc) {
     462                              (PVOID) &eaop, (ULONG) sizeof(EAOP2));
     463        // Prevent this error from occuring when scanning a directory
     464        // that contains a locked data file
     465        if (rc && rc != ERROR_SHARING_VIOLATION) {
    464466          CHAR s[80];
    465467          sprintf(s, "%s %s",PCSZ_DOSQUERYPATHINFO, "%s");
  • trunk/dll/init.c

    r1444 r1450  
    271271PCSZ PCSZ_CM_ALLOCRECORD  = "CM_ALLOCRECORD";
    272272PCSZ PCSZ_DOSCREATEMUTEXSEM =  "DosCreateMutexSem";
     273PCSZ PCSZ_DOSCREATEEVENTSEM =  "DosCreateEventSem";
    273274PCSZ PCSZ_DOSDUPHANDLE    =  "DosDupHandle";
    274275PCSZ PCSZ_DOSGETINFOBLOCKS = "DosGetInfoBlocks";
     
    10981099  if (DosCreateEventSem(NULL, &hevInitialCnrScanComplete, 0L, FALSE))
    10991100    Dos_Error(MB_CANCEL, rc, HWND_DESKTOP, pszSrcFile, __LINE__,
    1100               PCSZ_DOSCREATEMUTEXSEM);
     1101              PCSZ_DOSCREATEEVENTSEM);
    11011102
    11021103  /*
  • trunk/dll/init.h

    r1444 r1450  
    9595extern PCSZ PCSZ_CM_ALLOCRECORD;
    9696extern PCSZ PCSZ_DOSCREATEMUTEXSEM;
     97extern PCSZ PCSZ_DOSCREATEEVENTSEM;
    9798extern PCSZ PCSZ_DOSDUPHANDLE;
    9899extern PCSZ PCSZ_DOSGETINFOBLOCKS;
  • trunk/dll/systemf.c

    r1439 r1450  
    10971097                hTermQ = (HQUEUE)0;     // Try to survive
    10981098                DosExitCritSec();
    1099                 Dos_Error(MB_ENTER,rc,HWND_DESKTOP,pszSrcFile,__LINE__,"DoCreateEventSem");
     1099                Dos_Error(MB_ENTER,rc,HWND_DESKTOP,pszSrcFile,__LINE__, PCSZ_DOSCREATEEVENTSEM);
    11001100            }
    11011101            // if (!rc) fprintf(stderr,"%s %d qcreated ptib %x hTermQ %x\n",__FILE__, __LINE__,ptib,hTermQ);
Note: See TracChangeset for help on using the changeset viewer.