Changeset 1394 for trunk/dll/misc.c


Ignore:
Timestamp:
Feb 5, 2009, 5:17:25 AM (17 years ago)
Author:
Steven Levine
Message:

Ticket 340: Convert GetPString to use STRINGTABLE.

Drop fm3dll.str and mkstr.exe from makefiles and wpi builders

Convert many functions to expect PCSZ arguments.
Correct walk, compare and dirsizes dialog setups to ignore saved dialog size
Drop copyright.c logic from makefile

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/dll/misc.c

    r1360 r1394  
    66
    77  Copyright (c) 1993-98 M. Kimes
    8   Copyright (c) 2003, 2008 Steven H. Levine
     8  Copyright (c) 2003, 2009 Steven H. Levine
    99
    1010  11 Jun 03 SHL Add JFS and FAT32 support
     
    4141  29 Feb 08 GKY Use xfree where appropriate
    4242  08 Mar 08 JBS Ticket 230: Replace prefixless INI keys for default directory containers with
    43                 keys using a "DirCnr." prefix
     43                keys using a "DirCnr." prefix
    4444  19 Jun 08 JBS Ticket 239: Fix LoadDetailsSwitches so INI file is read correctly and details
    45                 switches are set correctly.
     45                switches are set correctly.
    4646  11 Jul 08 JBS Ticket 230: Simplified code and eliminated some local variables by incorporating
    47                 all the details view settings (both the global variables and those in the
    48                 DIRCNRDATA struct) into a new struct: DETAILS_SETTINGS.
     47                all the details view settings (both the global variables and those in the
     48                DIRCNRDATA struct) into a new struct: DETAILS_SETTINGS.
    4949  17 Jul 08 SHL Add GetTidForWindow for Fortify support
    5050  20 Jul 08 GKY Add save/append filename to clipboard.
    51                 Change menu wording to make these easier to find
     51                Change menu wording to make these easier to find
    5252  23 Aug 08 GKY Add CheckDriveSpaceAvail To pre check drive space to prevent failures
    5353  25 Dec 08 GKY Add code to allow write verify to be turned off on a per drive basis
     
    141141    if (rc) {
    142142      Dos_Error(MB_CANCEL, rc, HWND_DESKTOP, pszSrcFile, __LINE__,
    143                 "DosGetInfoBlocks");
     143                "DosGetInfoBlocks");
    144144      yes = FALSE;
    145145    }
     
    152152      // OK for window to be dead - just return FALSE
    153153      yes = WinQueryWindowProcess(hwnd, &pid, &tid) &&
    154             pid == ppib->pib_ulpid &&
    155             (!chkTid || tid == ptib->tib_ptib2->tib2_ultid);
     154            pid == ppib->pib_ulpid &&
     155            (!chkTid || tid == ptib->tib_ptib2->tib2_ultid);
    156156    }
    157157    return yes;
     
    176176    if (rc) {
    177177      Dos_Error(MB_CANCEL, rc, HWND_DESKTOP, pszSrcFile, __LINE__,
    178                 "DosGetInfoBlocks");
     178                "DosGetInfoBlocks");
    179179    }
    180180    else {
     
    182182      TID tid;
    183183      if (!WinQueryWindowProcess(hwnd, &pid, &tid))
    184         Win_Error(hwnd, HWND_DESKTOP, pszSrcFile, __LINE__, "WinQueryWindowProcess failed for %X", hwnd);
     184        Win_Error(hwnd, HWND_DESKTOP, pszSrcFile, __LINE__, "WinQueryWindowProcess failed for %X", hwnd);
    185185      else if (pid != ppib->pib_ulpid)
    186         Runtime_Error(pszSrcFile, __LINE__, "hwnd %X not created by fm/2", hwnd);
     186        Runtime_Error(pszSrcFile, __LINE__, "hwnd %X not created by fm/2", hwnd);
    187187      else
    188         ordinal = ptib->tib_ptib2->tib2_ultid;
     188        ordinal = ptib->tib_ptib2->tib2_ultid;
    189189    }
    190190    return ordinal;
     
    205205    if (rc) {
    206206      Dos_Error(MB_CANCEL, rc, HWND_DESKTOP, pszSrcFile, __LINE__,
    207                 "DosGetInfoBlocks");
     207                "DosGetInfoBlocks");
    208208    }
    209209    else
     
    312312      WinQueryWindowText(hwnd, CCHMAXPATH, s);
    313313      if (*s) {
    314         rcl.xRight -= 3;
    315         p = s;
    316         GpiQueryTextBox(hps, 3, "...", TXTBOX_COUNT, aptl);
    317         len = aptl[TXTBOX_TOPRIGHT].x;
    318         do {
    319           GpiQueryTextBox(hps, strlen(p), p, TXTBOX_COUNT, aptl);
    320           if (aptl[TXTBOX_TOPRIGHT].x > (rcl.xRight - (p != s ? len : 0)))
    321             p++;
    322           else
    323             break;
    324         }
    325         while (*p);
    326         if (*p) {
    327           GpiSetMix(hps, FM_OVERPAINT);
    328           GpiSetColor(hps, CLR_BLACK);
    329           ptl.x = 3;
    330           ptl.y = ((rcl.yTop / 2) -
    331                    ((aptl[TXTBOX_TOPRIGHT].y +
    332                      aptl[TXTBOX_BOTTOMLEFT].y) / 2));
    333           GpiMove(hps, &ptl);
    334           if (p != s)
    335             GpiCharString(hps, 3, "...");
    336           GpiCharString(hps, strlen(p), p);
    337         }
     314        rcl.xRight -= 3;
     315        p = s;
     316        GpiQueryTextBox(hps, 3, "...", TXTBOX_COUNT, aptl);
     317        len = aptl[TXTBOX_TOPRIGHT].x;
     318        do {
     319          GpiQueryTextBox(hps, strlen(p), p, TXTBOX_COUNT, aptl);
     320          if (aptl[TXTBOX_TOPRIGHT].x > (rcl.xRight - (p != s ? len : 0)))
     321            p++;
     322          else
     323            break;
     324        }
     325        while (*p);
     326        if (*p) {
     327          GpiSetMix(hps, FM_OVERPAINT);
     328          GpiSetColor(hps, CLR_BLACK);
     329          ptl.x = 3;
     330          ptl.y = ((rcl.yTop / 2) -
     331                   ((aptl[TXTBOX_TOPRIGHT].y +
     332                     aptl[TXTBOX_BOTTOMLEFT].y) / 2));
     333          GpiMove(hps, &ptl);
     334          if (p != s)
     335            GpiCharString(hps, 3, "...");
     336          GpiCharString(hps, strlen(p), p);
     337        }
    338338      }
    339339      free(s);
     
    416416}
    417417
    418 BOOL AdjustCnrColVis(HWND hwndCnr, CHAR * title, BOOL visible, BOOL toggle)
     418BOOL AdjustCnrColVis(HWND hwndCnr, PCSZ title, BOOL visible, BOOL toggle)
    419419{
    420420  PFIELDINFO pfi = (PFIELDINFO) WinSendMsg(hwndCnr,
    421                                            CM_QUERYDETAILFIELDINFO,
    422                                            MPVOID, MPFROMSHORT(CMA_FIRST));
     421                                           CM_QUERYDETAILFIELDINFO,
     422                                           MPVOID, MPFROMSHORT(CMA_FIRST));
    423423
    424424  while (pfi) {
    425425    if (!strcmp(pfi->pTitleData, title)) {
    426426      if (toggle) {
    427         if (pfi->flData & CFA_INVISIBLE)
    428           pfi->flData &= (~CFA_INVISIBLE);
    429         else
    430           pfi->flData |= CFA_INVISIBLE;
    431         return !(pfi->flData & CFA_INVISIBLE);
     427        if (pfi->flData & CFA_INVISIBLE)
     428          pfi->flData &= (~CFA_INVISIBLE);
     429        else
     430          pfi->flData |= CFA_INVISIBLE;
     431        return !(pfi->flData & CFA_INVISIBLE);
    432432      }
    433433      else {
    434         if (visible)
    435           pfi->flData &= (~CFA_INVISIBLE);
    436         else
    437           pfi->flData |= CFA_INVISIBLE;
     434        if (visible)
     435          pfi->flData &= (~CFA_INVISIBLE);
     436        else
     437          pfi->flData |= CFA_INVISIBLE;
    438438      }
    439439      return TRUE;
     
    444444}
    445445
    446 BOOL AdjustCnrColRO(HWND hwndCnr, CHAR * title, BOOL readonly, BOOL toggle)
     446BOOL AdjustCnrColRO(HWND hwndCnr, PCSZ title, BOOL readonly, BOOL toggle)
    447447{
    448448  PFIELDINFO pfi = (PFIELDINFO) WinSendMsg(hwndCnr,
    449                                            CM_QUERYDETAILFIELDINFO,
    450                                            MPVOID, MPFROMSHORT(CMA_FIRST));
     449                                           CM_QUERYDETAILFIELDINFO,
     450                                           MPVOID, MPFROMSHORT(CMA_FIRST));
    451451
    452452  while (pfi) {
    453453    if (!strcmp(pfi->pTitleData, title)) {
    454454      if (toggle) {
    455         if (pfi->flData & CFA_FIREADONLY)
    456           pfi->flData &= (~CFA_FIREADONLY);
    457         else
    458           pfi->flData |= CFA_FIREADONLY;
    459         return (pfi->flData & CFA_FIREADONLY);
     455        if (pfi->flData & CFA_FIREADONLY)
     456          pfi->flData &= (~CFA_FIREADONLY);
     457        else
     458          pfi->flData |= CFA_FIREADONLY;
     459        return (pfi->flData & CFA_FIREADONLY);
    460460      }
    461461      else {
    462         if (!readonly)
    463           pfi->flData &= (~CFA_FIREADONLY);
    464         else
    465           pfi->flData |= CFA_FIREADONLY;
     462        if (!readonly)
     463          pfi->flData &= (~CFA_FIREADONLY);
     464        else
     465          pfi->flData |= CFA_FIREADONLY;
    466466      }
    467467      return TRUE;
     
    472472}
    473473
    474 VOID AdjustCnrColsForFSType(HWND hwndCnr, CHAR * directory, DETAILS_SETTINGS * pds)
     474VOID AdjustCnrColsForFSType(HWND hwndCnr, PCSZ directory, DETAILS_SETTINGS * pds)
    475475{
    476476  CHAR FileSystem[CCHMAXPATH];
     
    485485  if (x != -1) {
    486486    if (!stricmp(FileSystem, HPFS) ||
    487         !stricmp(FileSystem, JFS) ||
    488         !stricmp(FileSystem, FAT32) ||
    489         !stricmp(FileSystem, RAMFS) ||
    490         !stricmp(FileSystem, NDFS32) ||
    491         !stricmp(FileSystem, NTFS) ||
    492         !stricmp(FileSystem, HPFS386)) {
     487        !stricmp(FileSystem, JFS) ||
     488        !stricmp(FileSystem, FAT32) ||
     489        !stricmp(FileSystem, RAMFS) ||
     490        !stricmp(FileSystem, NDFS32) ||
     491        !stricmp(FileSystem, NTFS) ||
     492        !stricmp(FileSystem, HPFS386)) {
    493493      hasCreateDT = TRUE;
    494494      hasAccessDT = TRUE;
     
    514514  }
    515515  AdjustCnrColVis(hwndCnr,
    516                   GetPString(IDS_LADATE),
    517                   pds->detailsladate ? hasAccessDT : FALSE,
    518                   FALSE);
     516                  GetPString(IDS_LADATE),
     517                  pds->detailsladate ? hasAccessDT : FALSE,
     518                  FALSE);
    519519  AdjustCnrColVis(hwndCnr,
    520                   GetPString(IDS_LATIME),
    521                   pds->detailslatime ? hasAccessDT : FALSE,
    522                   FALSE);
     520                  GetPString(IDS_LATIME),
     521                  pds->detailslatime ? hasAccessDT : FALSE,
     522                  FALSE);
    523523  AdjustCnrColVis(hwndCnr,
    524                   GetPString(IDS_CRDATE),
    525                   pds->detailscrdate ? hasCreateDT : FALSE,
    526                   FALSE);
     524                  GetPString(IDS_CRDATE),
     525                  pds->detailscrdate ? hasCreateDT : FALSE,
     526                  FALSE);
    527527  AdjustCnrColVis(hwndCnr,
    528                   GetPString(IDS_CRTIME),
    529                   pds->detailscrtime ? hasCreateDT : FALSE,
    530                   FALSE);
     528                  GetPString(IDS_CRTIME),
     529                  pds->detailscrtime ? hasCreateDT : FALSE,
     530                  FALSE);
    531531  AdjustCnrColVis(hwndCnr,
    532                   GetPString(IDS_LNAME),
    533                   pds->detailslongname ? hasLongNames : FALSE,
    534                   FALSE);
     532                  GetPString(IDS_LNAME),
     533                  pds->detailslongname ? hasLongNames : FALSE,
     534                  FALSE);
    535535  WinSendMsg(hwndCnr, CM_INVALIDATEDETAILFIELDINFO, MPVOID, MPVOID);
    536536}
    537537
    538 VOID AdjustCnrColsForPref(HWND hwndCnr, CHAR * directory, DETAILS_SETTINGS * pds,
    539                           BOOL compare)
     538VOID AdjustCnrColsForPref(HWND hwndCnr, PCSZ directory, DETAILS_SETTINGS * pds,
     539                          BOOL compare)
    540540{
    541541
    542542  AdjustCnrColVis(hwndCnr,
    543                   compare ? GetPString(IDS_STATUS) : GetPString(IDS_SUBJ),
    544                   pds->detailssubject,
    545                   FALSE);
     543                  compare ? GetPString(IDS_STATUS) : GetPString(IDS_SUBJ),
     544                  pds->detailssubject,
     545                  FALSE);
    546546
    547547  AdjustCnrColVis(hwndCnr, GetPString(IDS_ATTR), pds->detailsattr, FALSE);
     
    572572
    573573  pfi = WinSendMsg(hwndCnr, CM_ALLOCDETAILFIELDINFO,
    574                    MPFROMLONG(CONTAINER_COLUMNS), NULL);
     574                   MPFROMLONG(CONTAINER_COLUMNS), NULL);
    575575
    576576  if (!pfi) {
     
    592592    pfi->flData = CFA_BITMAPORICON | CFA_CENTER | CFA_FIREADONLY;
    593593    pfi->flTitle = CFA_CENTER | CFA_FITITLEREADONLY;
    594     pfi->pTitleData = GetPString(IDS_ICON);
     594    pfi->pTitleData = (PSZ)GetPString(IDS_ICON);
    595595    pfi->offStruct = FIELDOFFSET(MINIRECORDCORE, hptrIcon);
    596596
     
    605605    pfi->flData = CFA_STRING | CFA_LEFT | CFA_SEPARATOR;
    606606    pfi->flTitle = CFA_LEFT;
    607     pfi->pTitleData = GetPString(IDS_FILENAME);
     607    pfi->pTitleData = (PSZ)GetPString(IDS_FILENAME);
    608608    pfi->offStruct = FIELDOFFSET(CNRITEM, pszDisplayName);
    609609
     
    613613    pfi->flData = CFA_STRING | CFA_LEFT;
    614614    pfi->flTitle = CFA_LEFT | CFA_FITITLEREADONLY;
    615     pfi->pTitleData = GetPString(IDS_LNAME);
     615    pfi->pTitleData = (PSZ)GetPString(IDS_LNAME);
    616616    pfi->offStruct = FIELDOFFSET(CNRITEM, pszLongName);
    617617
     
    622622      pfi->flData = CFA_STRING | CFA_LEFT | CFA_SEPARATOR;
    623623      if (isCompCnr)
    624         pfi->flData |= CFA_FIREADONLY;
     624        pfi->flData |= CFA_FIREADONLY;
    625625      pfi->flTitle = CFA_LEFT | CFA_FITITLEREADONLY;
    626       pfi->pTitleData = isCompCnr ? GetPString(IDS_STATUS) :
    627                                   GetPString(IDS_SUBJ);
     626      pfi->pTitleData = isCompCnr ? (PSZ)GetPString(IDS_STATUS) :
     627                                    (PSZ)GetPString(IDS_SUBJ);
    628628      pfi->offStruct = FIELDOFFSET(CNRITEM, pszSubject);
    629629      pfi->cxWidth = dsDirCnrDefault.SubjectDisplayWidth;
     
    642642      pfi->flData = CFA_STRING | CFA_LEFT | CFA_SEPARATOR;
    643643      if (isCompCnr)
    644         pfi->flData |= CFA_FIREADONLY;
     644        pfi->flData |= CFA_FIREADONLY;
    645645      pfi->flTitle = CFA_LEFT | CFA_FITITLEREADONLY;
    646       pfi->pTitleData = isCompCnr ? GetPString(IDS_STATUS) :
    647                                   GetPString(IDS_SUBJ);
     646      pfi->pTitleData = isCompCnr ? (PSZ)GetPString(IDS_STATUS) :
     647                                    (PSZ)GetPString(IDS_SUBJ);
    648648      pfi->offStruct = FIELDOFFSET(CNRITEM, pszSubject);
    649649      pfi->cxWidth = dsDirCnrDefault.SubjectDisplayWidth;
     
    656656    pfi->flData = CFA_STRING | CFA_RIGHT | CFA_SEPARATOR | CFA_FIREADONLY;
    657657    pfi->flTitle = CFA_CENTER;
    658     pfi->pTitleData = GetPString(IDS_SIZE);
     658    pfi->pTitleData = (PSZ)GetPString(IDS_SIZE);
    659659    pfi->offStruct = FIELDOFFSET(CNRITEM, pszFmtFileSize);
    660660
     
    665665    pfi->flData = CFA_ULONG | CFA_RIGHT | CFA_SEPARATOR | CFA_FIREADONLY;
    666666    pfi->flTitle = CFA_CENTER;
    667     pfi->pTitleData = GetPString(IDS_EA);
     667    pfi->pTitleData = (PSZ)GetPString(IDS_EA);
    668668    pfi->offStruct = FIELDOFFSET(CNRITEM, easize);
    669669
     
    673673    pfi->flData = CFA_STRING | CFA_CENTER | CFA_SEPARATOR | CFA_FIREADONLY;
    674674    pfi->flTitle = CFA_CENTER | CFA_FITITLEREADONLY;
    675     pfi->pTitleData = GetPString(IDS_ATTR);
     675    pfi->pTitleData = (PSZ)GetPString(IDS_ATTR);
    676676    pfi->offStruct = FIELDOFFSET(CNRITEM, pszDispAttr);
    677677
     
    681681    pfi->flData = CFA_DATE | CFA_RIGHT | CFA_FIREADONLY;
    682682    pfi->flTitle = CFA_CENTER;
    683     pfi->pTitleData = GetPString(IDS_LWDATE);
     683    pfi->pTitleData = (PSZ)GetPString(IDS_LWDATE);
    684684    pfi->offStruct = FIELDOFFSET(CNRITEM, date);
    685685
     
    689689    pfi->flData = CFA_TIME | CFA_RIGHT | CFA_SEPARATOR | CFA_FIREADONLY;
    690690    pfi->flTitle = CFA_CENTER;
    691     pfi->pTitleData = GetPString(IDS_LWTIME);
     691    pfi->pTitleData = (PSZ)GetPString(IDS_LWTIME);
    692692    pfi->offStruct = FIELDOFFSET(CNRITEM, time);
    693693
     
    697697    pfi->flData = CFA_DATE | CFA_RIGHT | CFA_FIREADONLY;
    698698    pfi->flTitle = CFA_CENTER;
    699     pfi->pTitleData = GetPString(IDS_LADATE);
     699    pfi->pTitleData = (PSZ)GetPString(IDS_LADATE);
    700700    pfi->offStruct = FIELDOFFSET(CNRITEM, ladate);
    701701
     
    705705    pfi->flData = CFA_TIME | CFA_RIGHT | CFA_SEPARATOR | CFA_FIREADONLY;
    706706    pfi->flTitle = CFA_CENTER;
    707     pfi->pTitleData = GetPString(IDS_LATIME);
     707    pfi->pTitleData = (PSZ)GetPString(IDS_LATIME);
    708708    pfi->offStruct = FIELDOFFSET(CNRITEM, latime);
    709709
     
    713713    pfi->flData = CFA_DATE | CFA_RIGHT | CFA_FIREADONLY;
    714714    pfi->flTitle = CFA_CENTER;
    715     pfi->pTitleData = GetPString(IDS_CRDATE);
     715    pfi->pTitleData = (PSZ)GetPString(IDS_CRDATE);
    716716    pfi->offStruct = FIELDOFFSET(CNRITEM, crdate);
    717717
     
    721721    pfi->flData = CFA_TIME | CFA_RIGHT | CFA_FIREADONLY;
    722722    pfi->flTitle = CFA_CENTER;
    723     pfi->pTitleData = GetPString(IDS_CRTIME);
     723    pfi->pTitleData = (PSZ)GetPString(IDS_CRTIME);
    724724    pfi->offStruct = FIELDOFFSET(CNRITEM, crtime);
    725725
     
    737737
    738738    if (!WinSendMsg(hwndCnr, CM_INSERTDETAILFIELDINFO, MPFROMP(pfiFirst),
    739                     MPFROMP(&fii))) {
     739                    MPFROMP(&fii))) {
    740740      Win_Error(hwndCnr, HWND_DESKTOP, pszSrcFile, __LINE__, "CM_INSERTDETAILFIELDINFO");
    741741      fSuccess = FALSE;
     
    756756    size = sizeof(LONG);
    757757    PrfQueryProfileData(fmprof,
    758                         appname, "CnrSplitBar", &cnri.xVertSplitbar, &size);
     758                        appname, "CnrSplitBar", &cnri.xVertSplitbar, &size);
    759759    if (cnri.xVertSplitbar <= 0)
    760760      cnri.xVertSplitbar = DIR_SPLITBAR_OFFSET - 32;
    761761    if (!WinSendMsg(hwndCnr, CM_SETCNRINFO, MPFROMP(&cnri),
    762                     MPFROMLONG(CMA_PFIELDINFOLAST | CMA_PFIELDINFOOBJECT |
    763                                CMA_XVERTSPLITBAR))) {
     762                    MPFROMLONG(CMA_PFIELDINFOLAST | CMA_PFIELDINFOOBJECT |
     763                               CMA_XVERTSPLITBAR))) {
    764764      Win_Error(hwndCnr, HWND_DESKTOP, pszSrcFile, __LINE__, "CM_SETCNRINFO");
    765765      fSuccess = FALSE;
     
    779779
    780780      if (pci &&
    781           (INT) pci != -1 &&
    782           !IsRoot(pci->pszFileName) &&
    783           !(pci->flags & RECFLAGS_ENV) && !(pci->flags & RECFLAGS_UNDERENV)) {
    784         if (!pfi || pfi->offStruct == FIELDOFFSET(CNRITEM, pszDisplayName)) {
    785           PostMsg(hwnd, UM_FIXEDITNAME, MPFROMP(pci->pszFileName), MPVOID);
    786         }
    787         else if (pfi->offStruct == FIELDOFFSET(CNRITEM, pszSubject))
    788           PostMsg(hwnd, UM_FIXCNRMLE, MPFROMLONG(1048), MPVOID);
    789         else
    790           PostMsg(hwnd, UM_FIXCNRMLE, MPFROMLONG(CCHMAXPATH), MPVOID);
     781          (INT) pci != -1 &&
     782          !IsRoot(pci->pszFileName) &&
     783          !(pci->flags & RECFLAGS_ENV) && !(pci->flags & RECFLAGS_UNDERENV)) {
     784        if (!pfi || pfi->offStruct == FIELDOFFSET(CNRITEM, pszDisplayName)) {
     785          PostMsg(hwnd, UM_FIXEDITNAME, MPFROMP(pci->pszFileName), MPVOID);
     786        }
     787        else if (pfi->offStruct == FIELDOFFSET(CNRITEM, pszSubject))
     788          PostMsg(hwnd, UM_FIXCNRMLE, MPFROMLONG(1048), MPVOID);
     789        else
     790          PostMsg(hwnd, UM_FIXCNRMLE, MPFROMLONG(CCHMAXPATH), MPVOID);
    791791      }
    792792      else
    793         PostMsg(hwnd, CM_CLOSEEDIT, MPVOID, MPVOID);
     793        PostMsg(hwnd, CM_CLOSEEDIT, MPVOID, MPVOID);
    794794    }
    795795    break;
     
    804804
    805805      if (pci && (INT) pci != -1 && !IsRoot(pci->pszFileName)) {
    806         if (pfi && pfi->offStruct == FIELDOFFSET(CNRITEM, pszSubject)) {
    807 
    808           APIRET rc;
    809           EAOP2 eaop;
    810           PFEA2LIST pfealist = NULL;
    811           CHAR szSubject[1048];
    812           ULONG ealen;
    813           USHORT len;
    814           CHAR *eaval;
    815           LONG retlen;
    816           PSZ psz;
    817 
    818           retlen = WinQueryWindowText(hwndMLE, sizeof(szSubject), szSubject);
    819           szSubject[retlen + 1] = 0;
    820           bstrip(szSubject);
    821           if (pci->pszSubject != NullStr) {
    822             if (retlen == 0) {
    823               psz = pci->pszSubject;
    824               pci->pszSubject = NullStr;
    825               xfree(psz, pszSrcFile, __LINE__);
    826             }
    827             else
    828               pci->pszSubject = xrealloc(pci->pszSubject, retlen + 1, pszSrcFile, __LINE__);
    829           }
    830           else {
    831             pci->pszSubject = xmalloc(retlen + 1, pszSrcFile, __LINE__);
    832             if (!pci->pszSubject)
    833               return FALSE;
    834           }
    835           len = strlen(szSubject);
    836           if (len)
    837             ealen = sizeof(FEA2LIST) + 9 + len + 4;
    838           else
    839             ealen = sizeof(FEALIST) + 9;
    840           rc = DosAllocMem((PPVOID) & pfealist, ealen + 64,
    841                            OBJ_TILE | PAG_COMMIT | PAG_READ | PAG_WRITE);
    842           if (rc)
    843             Dos_Error(MB_CANCEL, rc, HWND_DESKTOP, pszSrcFile,
    844                       __LINE__, GetPString(IDS_OUTOFMEMORY));
    845           else {
    846             memset(pfealist, 0, ealen + 1);
    847             pfealist->cbList = ealen;
    848             pfealist->list[0].oNextEntryOffset = 0;
    849             pfealist->list[0].fEA = 0;
    850             pfealist->list[0].cbName = 8;
    851             strcpy(pfealist->list[0].szName, SUBJECT);
    852             if (len) {
    853               eaval = pfealist->list[0].szName + 9;
    854               *(USHORT *) eaval = (USHORT) EAT_ASCII;
    855               eaval += sizeof(USHORT);
    856               *(USHORT *) eaval = (USHORT) len;
    857               eaval += sizeof(USHORT);
    858               memcpy(eaval, szSubject, len);
    859               pfealist->list[0].cbValue = len + (sizeof(USHORT) * 2);
    860             }
    861             else
    862               pfealist->list[0].cbValue = 0;
    863             eaop.fpGEA2List = (PGEA2LIST) 0;
    864             eaop.fpFEA2List = pfealist;
    865             eaop.oError = 0;
    866             rc = xDosSetPathInfo(pci->pszFileName, FIL_QUERYEASIZE,
    867                                 &eaop, sizeof(eaop), DSPI_WRTTHRU);
    868             DosFreeMem(pfealist);
    869             if (rc)
    870               return FALSE;
    871           }
    872           return (MRESULT) TRUE;
    873         }
    874         else if (pfi && pfi->offStruct == FIELDOFFSET(CNRITEM, pszLongName)) {
    875 
    876           CHAR longname[CCHMAXPATHCOMP];
    877           LONG retlen;
    878           PSZ psz;
    879 
    880           *longname = 0;
    881           retlen = WinQueryWindowText(hwndMLE, sizeof(longname), longname);
    882           longname[retlen + 1] = 0;
    883           chop_at_crnl(longname);
    884           bstrip(longname);
    885           WinSetWindowText(hwndMLE, longname);
    886           if (pci->pszLongName != NullStr) {
    887             if (retlen == 0) {
    888               psz = pci->pszLongName;
    889               pci->pszLongName = NullStr;
    890               xfree(psz, pszSrcFile, __LINE__);
    891             }
    892             else
    893               pci->pszLongName = xrealloc(pci->pszLongName, retlen + 1, pszSrcFile, __LINE__);
    894           }
    895           else {
    896             pci->pszLongName = xmalloc(retlen + 1, pszSrcFile, __LINE__);
    897             if (!pci->pszLongName)
    898               return FALSE;
    899           }
    900           return (MRESULT) WriteLongName(pci->pszFileName, longname);
    901         }
    902         else {
    903           WinQueryWindowText(hwndMLE, sizeof(szData), szData);
    904           if (strchr(szData, '?') ||
    905               strchr(szData, '*') || IsRoot(pci->pszFileName))
    906             return (MRESULT) FALSE;
    907           /* If the text changed, rename the file system object. */
    908           chop_at_crnl(szData);
    909           bstrip(szData);
    910           if (!IsFullName(szData))
    911             Runtime_Error(pszSrcFile, __LINE__, "bad name");
    912           else {
    913             if (DosQueryPathInfo(szData,
    914                                 FIL_QUERYFULLNAME,
    915                                 testname, sizeof(testname)))
    916                 return FALSE;
    917             if (DosQueryPathInfo(pci->pszFileName,
    918                                 FIL_QUERYFULLNAME,
    919                                 szData,
    920                                 sizeof(szData)))
    921             {
    922               pci->pszFileName = xrealloc(pci->pszFileName, sizeof(szData), pszSrcFile, __LINE__);
    923               strcpy(szData, pci->pszFileName);
    924             }
    925             WinSetWindowText(hwndMLE, szData);
    926             if (strcmp(szData, testname)) {
    927               if (stricmp(szData, testname) && IsFile(testname) != -1) {
    928                 DosBeep(50, 100);       /* exists; disallow */
    929                 return (MRESULT) FALSE;
    930               }
    931               if (fVerify && (driveflags[toupper(*szData) - 'A'] & DRIVE_WRITEVERIFYOFF ||
    932                               driveflags[toupper(*testname) - 'A'] & DRIVE_WRITEVERIFYOFF)) {
    933                 DosSetVerify(FALSE);
    934                 fResetVerify = TRUE;
    935               }
    936               if (docopyf(MOVE, szData, "%s", testname))
    937                 Runtime_Error(pszSrcFile, __LINE__, "docopyf");
    938               else {
    939                 CHAR *filename;
    940 
    941                 filename = xstrdup(testname, pszSrcFile, __LINE__);
    942                 if (filename) {
    943                   if (!PostMsg(hwnd,
    944                                UM_FIXEDITNAME, MPVOID, MPFROMP(filename)))
    945                     free(filename);
    946                 }
    947                 if (stricmp(testname, pci->pszFileName)) {
    948                   PostMsg(hwnd, UM_FIXEDITNAME, MPFROMLONG(-1), MPFROMP(pci));
    949                   filename = xstrdup(pci->pszFileName, pszSrcFile, __LINE__);
    950                   if (filename) {
    951                     if (!PostMsg(hwnd,
    952                                 UM_FIXEDITNAME, MPVOID, MPFROMP(filename)))
    953                       free(filename);
    954                   }
    955                 }
    956               }
    957               if (fResetVerify) {
    958                 DosSetVerify(fVerify);
    959                 fResetVerify = FALSE;
    960               }
    961             }
    962           }
    963         }
     806        if (pfi && pfi->offStruct == FIELDOFFSET(CNRITEM, pszSubject)) {
     807
     808          APIRET rc;
     809          EAOP2 eaop;
     810          PFEA2LIST pfealist = NULL;
     811          CHAR szSubject[1048];
     812          ULONG ealen;
     813          USHORT len;
     814          CHAR *eaval;
     815          LONG retlen;
     816          PSZ psz;
     817
     818          retlen = WinQueryWindowText(hwndMLE, sizeof(szSubject), szSubject);
     819          szSubject[retlen + 1] = 0;
     820          bstrip(szSubject);
     821          if (pci->pszSubject != NullStr) {
     822            if (retlen == 0) {
     823              psz = pci->pszSubject;
     824              pci->pszSubject = NullStr;
     825              xfree(psz, pszSrcFile, __LINE__);
     826            }
     827            else
     828              pci->pszSubject = xrealloc(pci->pszSubject, retlen + 1, pszSrcFile, __LINE__);
     829          }
     830          else {
     831            pci->pszSubject = xmalloc(retlen + 1, pszSrcFile, __LINE__);
     832            if (!pci->pszSubject)
     833              return FALSE;
     834          }
     835          len = strlen(szSubject);
     836          if (len)
     837            ealen = sizeof(FEA2LIST) + 9 + len + 4;
     838          else
     839            ealen = sizeof(FEALIST) + 9;
     840          rc = DosAllocMem((PPVOID) & pfealist, ealen + 64,
     841                           OBJ_TILE | PAG_COMMIT | PAG_READ | PAG_WRITE);
     842          if (rc)
     843            Dos_Error(MB_CANCEL, rc, HWND_DESKTOP, pszSrcFile,
     844                      __LINE__, GetPString(IDS_OUTOFMEMORY));
     845          else {
     846            memset(pfealist, 0, ealen + 1);
     847            pfealist->cbList = ealen;
     848            pfealist->list[0].oNextEntryOffset = 0;
     849            pfealist->list[0].fEA = 0;
     850            pfealist->list[0].cbName = 8;
     851            strcpy(pfealist->list[0].szName, SUBJECT);
     852            if (len) {
     853              eaval = pfealist->list[0].szName + 9;
     854              *(USHORT *) eaval = (USHORT) EAT_ASCII;
     855              eaval += sizeof(USHORT);
     856              *(USHORT *) eaval = (USHORT) len;
     857              eaval += sizeof(USHORT);
     858              memcpy(eaval, szSubject, len);
     859              pfealist->list[0].cbValue = len + (sizeof(USHORT) * 2);
     860            }
     861            else
     862              pfealist->list[0].cbValue = 0;
     863            eaop.fpGEA2List = (PGEA2LIST) 0;
     864            eaop.fpFEA2List = pfealist;
     865            eaop.oError = 0;
     866            rc = xDosSetPathInfo(pci->pszFileName, FIL_QUERYEASIZE,
     867                                &eaop, sizeof(eaop), DSPI_WRTTHRU);
     868            DosFreeMem(pfealist);
     869            if (rc)
     870              return FALSE;
     871          }
     872          return (MRESULT) TRUE;
     873        }
     874        else if (pfi && pfi->offStruct == FIELDOFFSET(CNRITEM, pszLongName)) {
     875
     876          CHAR longname[CCHMAXPATHCOMP];
     877          LONG retlen;
     878          PSZ psz;
     879
     880          *longname = 0;
     881          retlen = WinQueryWindowText(hwndMLE, sizeof(longname), longname);
     882          longname[retlen + 1] = 0;
     883          chop_at_crnl(longname);
     884          bstrip(longname);
     885          WinSetWindowText(hwndMLE, longname);
     886          if (pci->pszLongName != NullStr) {
     887            if (retlen == 0) {
     888              psz = pci->pszLongName;
     889              pci->pszLongName = NullStr;
     890              xfree(psz, pszSrcFile, __LINE__);
     891            }
     892            else
     893              pci->pszLongName = xrealloc(pci->pszLongName, retlen + 1, pszSrcFile, __LINE__);
     894          }
     895          else {
     896            pci->pszLongName = xmalloc(retlen + 1, pszSrcFile, __LINE__);
     897            if (!pci->pszLongName)
     898              return FALSE;
     899          }
     900          return (MRESULT) WriteLongName(pci->pszFileName, longname);
     901        }
     902        else {
     903          WinQueryWindowText(hwndMLE, sizeof(szData), szData);
     904          if (strchr(szData, '?') ||
     905              strchr(szData, '*') || IsRoot(pci->pszFileName))
     906            return (MRESULT) FALSE;
     907          /* If the text changed, rename the file system object. */
     908          chop_at_crnl(szData);
     909          bstrip(szData);
     910          if (!IsFullName(szData))
     911            Runtime_Error(pszSrcFile, __LINE__, "bad name");
     912          else {
     913            if (DosQueryPathInfo(szData,
     914                                FIL_QUERYFULLNAME,
     915                                testname, sizeof(testname)))
     916                return FALSE;
     917            if (DosQueryPathInfo(pci->pszFileName,
     918                                FIL_QUERYFULLNAME,
     919                                szData,
     920                                sizeof(szData)))
     921            {
     922              pci->pszFileName = xrealloc(pci->pszFileName, sizeof(szData), pszSrcFile, __LINE__);
     923              strcpy(szData, pci->pszFileName);
     924            }
     925            WinSetWindowText(hwndMLE, szData);
     926            if (strcmp(szData, testname)) {
     927              if (stricmp(szData, testname) && IsFile(testname) != -1) {
     928                DosBeep(50, 100);       /* exists; disallow */
     929                return (MRESULT) FALSE;
     930              }
     931              if (fVerify && (driveflags[toupper(*szData) - 'A'] & DRIVE_WRITEVERIFYOFF ||
     932                              driveflags[toupper(*testname) - 'A'] & DRIVE_WRITEVERIFYOFF)) {
     933                DosSetVerify(FALSE);
     934                fResetVerify = TRUE;
     935              }
     936              if (docopyf(MOVE, szData, "%s", testname))
     937                Runtime_Error(pszSrcFile, __LINE__, "docopyf");
     938              else {
     939                CHAR *filename;
     940
     941                filename = xstrdup(testname, pszSrcFile, __LINE__);
     942                if (filename) {
     943                  if (!PostMsg(hwnd,
     944                               UM_FIXEDITNAME, MPVOID, MPFROMP(filename)))
     945                    free(filename);
     946                }
     947                if (stricmp(testname, pci->pszFileName)) {
     948                  PostMsg(hwnd, UM_FIXEDITNAME, MPFROMLONG(-1), MPFROMP(pci));
     949                  filename = xstrdup(pci->pszFileName, pszSrcFile, __LINE__);
     950                  if (filename) {
     951                    if (!PostMsg(hwnd,
     952                                UM_FIXEDITNAME, MPVOID, MPFROMP(filename)))
     953                      free(filename);
     954                  }
     955                }
     956              }
     957              if (fResetVerify) {
     958                DosSetVerify(fVerify);
     959                fResetVerify = FALSE;
     960              }
     961            }
     962          }
     963        }
    964964      }
    965965    }
     
    972972
    973973      if (pci && (INT) pci != -1 && !IsRoot(pci->pszFileName)) {
    974         WinSendMsg(hwnd,
    975                    CM_INVALIDATERECORD,
    976                    MPFROMP(&pci),
    977                    MPFROM2SHORT(1, CMA_ERASE | CMA_TEXTCHANGED));
    978         if (pfi && pfi->offStruct == FIELDOFFSET(CNRITEM, pszDisplayName))
    979           PostMsg(hwnd, UM_SORTRECORD, MPVOID, MPVOID);
     974        WinSendMsg(hwnd,
     975                   CM_INVALIDATERECORD,
     976                   MPFROMP(&pci),
     977                   MPFROM2SHORT(1, CMA_ERASE | CMA_TEXTCHANGED));
     978        if (pfi && pfi->offStruct == FIELDOFFSET(CNRITEM, pszDisplayName))
     979          PostMsg(hwnd, UM_SORTRECORD, MPVOID, MPVOID);
    980980      }
    981981      else {
    982         USHORT cmd = 0;
    983 
    984         if (!pfi || pfi->offStruct == FIELDOFFSET(CNRITEM, pszDisplayName))
    985           cmd = IDM_SORTSMARTNAME;
    986         else if (pfi->offStruct == FIELDOFFSET(CNRITEM, cbFile))
    987           cmd = IDM_SORTSIZE;
    988         else if (pfi->offStruct == FIELDOFFSET(CNRITEM, easize))
    989           cmd = IDM_SORTEASIZE;
    990         else if (pfi->offStruct == FIELDOFFSET(CNRITEM, date))
    991           cmd = IDM_SORTLWDATE;
    992         else if (pfi->offStruct == FIELDOFFSET(CNRITEM, time))
    993           cmd = IDM_SORTLWDATE;
    994         else if (pfi->offStruct == FIELDOFFSET(CNRITEM, ladate))
    995           cmd = IDM_SORTLADATE;
    996         else if (pfi->offStruct == FIELDOFFSET(CNRITEM, latime))
    997           cmd = IDM_SORTLADATE;
    998         else if (pfi->offStruct == FIELDOFFSET(CNRITEM, crdate))
    999           cmd = IDM_SORTCRDATE;
    1000         else if (pfi->offStruct == FIELDOFFSET(CNRITEM, crtime))
    1001           cmd = IDM_SORTCRDATE;
    1002         if (cmd)
    1003           PostMsg(hwnd, WM_COMMAND, MPFROM2SHORT(cmd, 0), MPVOID);
     982        USHORT cmd = 0;
     983
     984        if (!pfi || pfi->offStruct == FIELDOFFSET(CNRITEM, pszDisplayName))
     985          cmd = IDM_SORTSMARTNAME;
     986        else if (pfi->offStruct == FIELDOFFSET(CNRITEM, cbFile))
     987          cmd = IDM_SORTSIZE;
     988        else if (pfi->offStruct == FIELDOFFSET(CNRITEM, easize))
     989          cmd = IDM_SORTEASIZE;
     990        else if (pfi->offStruct == FIELDOFFSET(CNRITEM, date))
     991          cmd = IDM_SORTLWDATE;
     992        else if (pfi->offStruct == FIELDOFFSET(CNRITEM, time))
     993          cmd = IDM_SORTLWDATE;
     994        else if (pfi->offStruct == FIELDOFFSET(CNRITEM, ladate))
     995          cmd = IDM_SORTLADATE;
     996        else if (pfi->offStruct == FIELDOFFSET(CNRITEM, latime))
     997          cmd = IDM_SORTLADATE;
     998        else if (pfi->offStruct == FIELDOFFSET(CNRITEM, crdate))
     999          cmd = IDM_SORTCRDATE;
     1000        else if (pfi->offStruct == FIELDOFFSET(CNRITEM, crtime))
     1001          cmd = IDM_SORTCRDATE;
     1002        if (cmd)
     1003          PostMsg(hwnd, WM_COMMAND, MPFROM2SHORT(cmd, 0), MPVOID);
    10041004      }
    10051005    }
     
    10101010
    10111011BOOL SetMenuCheck(HWND hwndMenu, USHORT id, BOOL * bool, BOOL toggle,
    1012                   CHAR * savename)
     1012                  PCSZ savename)
    10131013{
    10141014  if (toggle) {
     
    10181018  }
    10191019  WinSendMsg(hwndMenu, MM_SETITEMATTR,
    1020              MPFROM2SHORT(id, 1),
    1021              MPFROM2SHORT(MIA_CHECKED, (*bool ? MIA_CHECKED : 0)));
     1020             MPFROM2SHORT(id, 1),
     1021             MPFROM2SHORT(MIA_CHECKED, (*bool ? MIA_CHECKED : 0)));
    10221022  return *bool;
    10231023}
     
    10281028{
    10291029  WinSendMsg(hwndMenu, MM_SETITEMATTR,
    1030              MPFROM2SHORT(id, TRUE),
    1031              MPFROM2SHORT(MIA_DISABLED, (disable ? MIA_DISABLED : 0)));
     1030             MPFROM2SHORT(id, TRUE),
     1031             MPFROM2SHORT(MIA_DISABLED, (disable ? MIA_DISABLED : 0)));
    10321032}
    10331033
    10341034//== ViewHelp() invoke view.exe, return TRUE if OK ==
    10351035
    1036 BOOL ViewHelp(CHAR * filename)
     1036BOOL ViewHelp(PCSZ filename)
    10371037{
    10381038  CHAR s[CCHMAXPATH + 81];
     
    10511051    fclose(fp);
    10521052    ret = runemf2(SEPARATE | WINDOWED, HWND_DESKTOP, pszSrcFile, __LINE__,
    1053                   NULL, NULL,
    1054                   "VIEW.EXE \"%s\"",
    1055                   BldQuotedFileName(szQuotedFileName, filename));
     1053                  NULL, NULL,
     1054                  "VIEW.EXE \"%s\"",
     1055                  BldQuotedFileName(szQuotedFileName, filename));
    10561056  }
    10571057
     
    10611061//== ExecFile() run file, return 1 if OK 0 if skipped -1 if can't run ==
    10621062
    1063 INT ExecFile(HWND hwnd, CHAR * filename)
     1063INT ExecFile(HWND hwnd, PCSZ filename)
    10641064{
    10651065  EXECARGS ex;
     
    10921092    *ex.environment = 0;
    10931093    ret = WinDlgBox(HWND_DESKTOP, hwnd, CmdLineDlgProc, FM3ModHandle,
    1094                     EXEC_FRAME, &ex);
     1094                    EXEC_FRAME, &ex);
    10951095    if (ret == 1) {
    10961096      lastflags = ex.flags;
    10971097      return runemf2(ex.flags, hwnd, pszSrcFile, __LINE__, path,
    1098                      *ex.environment ? ex.environment : NULL,
    1099                      "%s", pszCmdLine) != -1;
     1098                     *ex.environment ? ex.environment : NULL,
     1099                     "%s", pszCmdLine) != -1;
    11001100    }
    11011101    else if (ret != 0)
     
    11231123
    11241124VOID AdjustDetailsSwitches(HWND hwnd, HWND hwndMenu, USHORT cmd,
    1125                            CHAR * directory, CHAR * keyroot,
    1126                            DETAILS_SETTINGS * pds, BOOL compare)
     1125                           PCSZ directory, PCSZ keyroot,
     1126                           DETAILS_SETTINGS * pds, BOOL compare)
    11271127{
    11281128  BOOL *bool = NULL;
     
    11931193  mi.afStyle = MIS_TEXT;
    11941194  if (WinSendMsg(hwndMenu,
    1195                 MM_QUERYITEM,
    1196                 MPFROM2SHORT(id, TRUE),
    1197                 MPFROMP(&mi)))
     1195                MM_QUERYITEM,
     1196                MPFROM2SHORT(id, TRUE),
     1197                MPFROMP(&mi)))
    11981198  {
    11991199    WinSetWindowBits(mi.hwndSubMenu, QWL_STYLE, MS_CONDITIONALCASCADE,
    1200                      MS_CONDITIONALCASCADE);
     1200                     MS_CONDITIONALCASCADE);
    12011201    WinSendMsg(mi.hwndSubMenu, MM_SETDEFAULTITEMID, MPFROMSHORT(def), MPVOID);
    12021202    WinCheckMenuItem(mi.hwndSubMenu, def, TRUE);
     
    12751275  else
    12761276    WinSendMsg(hwndMenu, MM_QUERYITEM,
    1277                MPFROM2SHORT(IDM_COMMANDSMENU, TRUE), MPFROMP(&mit));
     1277               MPFROM2SHORT(IDM_COMMANDSMENU, TRUE), MPFROMP(&mit));
    12781278  if (mit.hwndSubMenu) {
    12791279    numitems = (SHORT) WinSendMsg(mit.hwndSubMenu, MM_QUERYITEMCOUNT,
    1280                                   MPVOID, MPVOID);
     1280                                  MPVOID, MPVOID);
    12811281    WinSendMsg(mit.hwndSubMenu, MM_DELETEITEM, MPFROMSHORT(-1), MPVOID);
    12821282    for (x = 0; x < numitems; x++)
    12831283      WinSendMsg(mit.hwndSubMenu, MM_DELETEITEM,
    1284                 MPFROMSHORT((SHORT) (x + IDM_COMMANDSTART)), MPVOID);
     1284                MPFROMSHORT((SHORT) (x + IDM_COMMANDSTART)), MPVOID);
    12851285    if (hwndCnr && cmdhead) {
    12861286      x = 0;
     
    12881288      while (info) {
    12891289
    1290         CHAR s[CCHMAXPATH + 24];
    1291 
    1292         sprintf(s,
    1293                 "%s%s%s",
    1294                 info->title,
    1295                 x < 20 ? "\tCtrl + " : NullStr,
    1296                 x < 20 && x > 9 ? "Shift + " : NullStr);
    1297         if (x < 20)
    1298           sprintf(&s[strlen(s)], "%d",
    1299                   ((x % 10) + 1) == 10 ? 0 : (x % 10) + 1);
    1300         mi.id = IDM_COMMANDSTART + x;
    1301         mi.afAttribute = (info->flags & ONCE ? MIA_CHECKED : 0) |
    1302                         (info->flags & PROMPT ? MIA_FRAMED : 0);
    1303         mi.afStyle = MIS_TEXT;
    1304         if (!(x % 24) && x && info->next)
    1305           mi.afStyle |= MIS_BREAK;
    1306         WinSendMsg(mit.hwndSubMenu, MM_INSERTITEM, MPFROMP(&mi), MPFROMP(s));
    1307         x++;
    1308         info = info->next;
     1290        CHAR s[CCHMAXPATH + 24];
     1291
     1292        sprintf(s,
     1293                "%s%s%s",
     1294                info->title,
     1295                x < 20 ? "\tCtrl + " : NullStr,
     1296                x < 20 && x > 9 ? "Shift + " : NullStr);
     1297        if (x < 20)
     1298          sprintf(&s[strlen(s)], "%d",
     1299                  ((x % 10) + 1) == 10 ? 0 : (x % 10) + 1);
     1300        mi.id = IDM_COMMANDSTART + x;
     1301        mi.afAttribute = (info->flags & ONCE ? MIA_CHECKED : 0) |
     1302                        (info->flags & PROMPT ? MIA_FRAMED : 0);
     1303        mi.afStyle = MIS_TEXT;
     1304        if (!(x % 24) && x && info->next)
     1305          mi.afStyle |= MIS_BREAK;
     1306        WinSendMsg(mit.hwndSubMenu, MM_INSERTITEM, MPFROMP(&mi), MPFROMP(s));
     1307        x++;
     1308        info = info->next;
    13091309      }
    13101310    }
     
    13121312}
    13131313
    1314 VOID LoadDetailsSwitches(CHAR * keyroot, DETAILS_SETTINGS * pds)
     1314VOID LoadDetailsSwitches(PCSZ keyroot, DETAILS_SETTINGS * pds)
    13151315{
    13161316  ULONG size;
     
    14011401      hwndDir = WinWindowFromID(hwndDir, DIR_CNR);
    14021402      if (hwndDir)
    1403         break;
     1403        break;
    14041404      hwndDir = (HWND) 0;
    14051405    }
     
    14181418  if (rc)
    14191419    Dos_Error(MB_CANCEL, rc, HWND_DESKTOP, pszSrcFile, __LINE__,
    1420               "DosCreateEventSem");
     1420              "DosCreateEventSem");
    14211421  else {
    14221422    priority_normal();
    14231423    for (;;) {
    14241424      if (DosWaitEventSem(CompactSem, SEM_INDEFINITE_WAIT))
    1425         break;
     1425        break;
    14261426      _heapmin();
    14271427      DosResetEventSem(CompactSem, &postcount);
     
    14301430}
    14311431
    1432 VOID FixSwitchList(HWND hwnd, CHAR * text)
     1432VOID FixSwitchList(HWND hwnd, PCSZ text)
    14331433{
    14341434  HSWITCH hswitch;
     
    14491449  if (dcd->hwndLastMenu && !dcd->cnremphasized) {
    14501450    WinSendMsg(hwnd, CM_SETRECORDEMPHASIS, MPVOID,
    1451                MPFROM2SHORT(TRUE, CRA_SOURCE));
     1451               MPFROM2SHORT(TRUE, CRA_SOURCE));
    14521452    dcd->cnremphasized = TRUE;
    14531453  }
     
    14551455    WinCheckMenuItem(dcd->hwndLastMenu, IDM_MINIICONS, TRUE);
    14561456  if (!WinPopupMenu(hwnd, hwnd, dcd->hwndLastMenu,
    1457                     8, 8, 0,
    1458                     PU_HCONSTRAIN | PU_VCONSTRAIN |
    1459                     PU_KEYBOARD | PU_MOUSEBUTTON1)) {
     1457                    8, 8, 0,
     1458                    PU_HCONSTRAIN | PU_VCONSTRAIN |
     1459                    PU_KEYBOARD | PU_MOUSEBUTTON1)) {
    14601460    if (dcd->cnremphasized) {
    14611461      WinSendMsg(hwnd, CM_SETRECORDEMPHASIS, MPVOID,
    1462                 MPFROM2SHORT(FALSE, CRA_SOURCE));
     1462                MPFROM2SHORT(FALSE, CRA_SOURCE));
    14631463      dcd->cnremphasized = FALSE;
    14641464    }
     
    14661466  else
    14671467    WinSendMsg(dcd->hwndLastMenu, MM_SELECTITEM,
    1468                MPFROM2SHORT(id, TRUE), MPFROM2SHORT(0, FALSE));
     1468               MPFROM2SHORT(id, TRUE), MPFROM2SHORT(0, FALSE));
    14691469}
    14701470
     
    14761476  for (;;) {
    14771477    pmi = (PMINIRECORDCORE) WinSendMsg(hwndCnr, CM_QUERYRECORDEMPHASIS,
    1478                                        MPFROMLONG(CMA_FIRST),
    1479                                        MPFROMSHORT(attrib));
     1478                                       MPFROMLONG(CMA_FIRST),
     1479                                       MPFROMSHORT(attrib));
    14801480    if ((!pmi || (INT) pmi == -1) && attrib == CRA_SELECTED)    /* punt */
    14811481      attrib = CRA_CURSORED;
     
    14961496      QMSG qmsg;
    14971497      for (;;) {
    1498         DosSleep(1);
    1499         rc = WinPostMsg(h, msg, mp1, mp2);
    1500         if (rc)
    1501           break;                        // OK
    1502         if (!WinIsWindow((HAB) 0, h))
    1503           break;                        // Window gone
    1504         if (WinPeekMsg((HAB) 0, &qmsg, (HWND) 0, 0, 0, PM_NOREMOVE))
    1505           break;                        // Queue has message(s)
     1498        DosSleep(1);
     1499        rc = WinPostMsg(h, msg, mp1, mp2);
     1500        if (rc)
     1501          break;                        // OK
     1502        if (!WinIsWindow((HAB) 0, h))
     1503          break;                        // Window gone
     1504        if (WinPeekMsg((HAB) 0, &qmsg, (HWND) 0, 0, 0, PM_NOREMOVE))
     1505          break;                        // Queue has message(s)
    15061506      }                  // for
    15071507    }
     
    15171517
    15181518  pci = (PCNRITEM) WinSendMsg(hwnd,
    1519                               CM_QUERYRECORDEMPHASIS,
    1520                               MPFROMLONG(CMA_FIRST),
    1521                               MPFROMSHORT(CRA_CURSORED));
     1519                              CM_QUERYRECORDEMPHASIS,
     1520                              MPFROMLONG(CMA_FIRST),
     1521                              MPFROMSHORT(CRA_CURSORED));
    15221522  if (pci && (INT) pci != -1) {
    15231523    memset(&ced, 0, sizeof(ced));
     
    15271527    ced.pRecord = (PRECORDCORE) pci;
    15281528    pfi = (PFIELDINFO) WinSendMsg(hwnd,
    1529                                   CM_QUERYDETAILFIELDINFO,
    1530                                   MPVOID, MPFROMSHORT(CMA_FIRST));
     1529                                  CM_QUERYDETAILFIELDINFO,
     1530                                  MPVOID, MPFROMSHORT(CMA_FIRST));
    15311531    if (!pfi)
    15321532      WinSendMsg(hwnd, CM_OPENEDIT, MPFROMP(&ced), MPVOID);
    15331533    else {
    15341534      while (pfi && (INT) pfi != -1 &&
    1535              pfi->offStruct != FIELDOFFSET(CNRITEM, pszFileName))
    1536         pfi = (PFIELDINFO) WinSendMsg(hwnd,
    1537                                       CM_QUERYDETAILFIELDINFO,
    1538                                       MPFROMP(pfi), MPFROMSHORT(CMA_NEXT));
     1535             pfi->offStruct != FIELDOFFSET(CNRITEM, pszFileName))
     1536        pfi = (PFIELDINFO) WinSendMsg(hwnd,
     1537                                      CM_QUERYDETAILFIELDINFO,
     1538                                      MPFROMP(pfi), MPFROMSHORT(CMA_NEXT));
    15391539      if (pfi && (INT) pfi != -1) {
    1540         ced.pFieldInfo = pfi;
    1541         {
    1542           CNRINFO cnri;
    1543 
    1544           memset(&cnri, 0, sizeof(CNRINFO));
    1545           cnri.cb = sizeof(CNRINFO);
    1546           WinSendMsg(hwnd,
    1547                      CM_QUERYCNRINFO,
    1548                      MPFROMP(&cnri), MPFROMLONG(sizeof(CNRINFO)));
    1549           if (cnri.flWindowAttr & CV_DETAIL)
    1550             ced.id = CID_LEFTDVWND;
    1551         }
    1552         WinSendMsg(hwnd, CM_OPENEDIT, MPFROMP(&ced), MPVOID);
     1540        ced.pFieldInfo = pfi;
     1541        {
     1542          CNRINFO cnri;
     1543
     1544          memset(&cnri, 0, sizeof(CNRINFO));
     1545          cnri.cb = sizeof(CNRINFO);
     1546          WinSendMsg(hwnd,
     1547                     CM_QUERYCNRINFO,
     1548                     MPFROMP(&cnri), MPFROMLONG(sizeof(CNRINFO)));
     1549          if (cnri.flWindowAttr & CV_DETAIL)
     1550            ced.id = CID_LEFTDVWND;
     1551        }
     1552        WinSendMsg(hwnd, CM_OPENEDIT, MPFROMP(&ced), MPVOID);
    15531553      }
    15541554    }
     
    15571557
    15581558#ifdef NEVER
    1559 VOID QuickView(HWND hwnd, CHAR * filename)
     1559VOID QuickView(HWND hwnd, PCSZ filename)
    15601560{
    15611561  if (filename && IsFile(filename) == 1) {
     
    15671567      list[1] = NULL;
    15681568      ExecOnList(hwnd, binview, WINDOWED | SEPARATE, NULL, list, NULL,
    1569                 pszSrcFile, __LINE__);
     1569                pszSrcFile, __LINE__);
    15701570      return;
    15711571    }
     
    15771577      list[1] = NULL;
    15781578      ExecOnList(hwnd, viewer,
    1579                 WINDOWED | SEPARATE | (fViewChild ? CHILD : 0),
    1580                 NULL, list, NULL, pszSrcFile, __LINE__);
     1579                WINDOWED | SEPARATE | (fViewChild ? CHILD : 0),
     1580                NULL, list, NULL, pszSrcFile, __LINE__);
    15811581      return;
    15821582    }
     
    15951595      list[1] = NULL;
    15961596      ExecOnList(hwnd, bined, WINDOWED | SEPARATE, NULL, list, NULL,
    1597                 pszSrcFile, __LINE__);
     1597                pszSrcFile, __LINE__);
    15981598      return;
    15991599    }
     
    16051605      list[1] = NULL;
    16061606      ExecOnList(hwnd, editor, WINDOWED | SEPARATE, NULL, list, NULL,
    1607                 pszSrcFile, __LINE__);
     1607                pszSrcFile, __LINE__);
    16081608      return;
    16091609    }
     
    16371637      mi.afStyle = MIS_TEXT;
    16381638      WinSendMsg(hwndMenu, MM_QUERYITEM,
    1639                 MPFROM2SHORT(IDM_FILESMENU, TRUE), MPFROMP(&mi));
     1639                MPFROM2SHORT(IDM_FILESMENU, TRUE), MPFROMP(&mi));
    16401640      if (!DefMenu)
    1641         DefMenu = WinLoadMenu(HWND_DESKTOP, FM3ModHandle, DEFMENU);
     1641        DefMenu = WinLoadMenu(HWND_DESKTOP, FM3ModHandle, DEFMENU);
    16421642      hwndNow = mi.hwndSubMenu;
    16431643      mi.hwndSubMenu = hwndNew;
    16441644      if (!mi.hwndSubMenu)
    1645         mi.hwndSubMenu = DefMenu;
     1645        mi.hwndSubMenu = DefMenu;
    16461646      WinSetParent(hwndNow, WinQueryObjectWindow(HWND_DESKTOP), FALSE);
    16471647      WinSetOwner(hwndNow, WinQueryObjectWindow(HWND_DESKTOP));
     
    16681668      mi.afStyle = MIS_TEXT;
    16691669      WinSendMsg(hwndMenu, MM_QUERYITEM,
    1670                 MPFROM2SHORT(IDM_VIEWSMENU, TRUE), MPFROMP(&mi));
     1670                MPFROM2SHORT(IDM_VIEWSMENU, TRUE), MPFROMP(&mi));
    16711671      if (!DefMenu)
    1672         DefMenu = WinLoadMenu(HWND_DESKTOP, FM3ModHandle, DEFMENU);
     1672        DefMenu = WinLoadMenu(HWND_DESKTOP, FM3ModHandle, DEFMENU);
    16731673      hwndNow = mi.hwndSubMenu;
    16741674      mi.hwndSubMenu = hwndNew;
    16751675      if (!mi.hwndSubMenu)
    1676         mi.hwndSubMenu = DefMenu;
     1676        mi.hwndSubMenu = DefMenu;
    16771677      WinSetParent(hwndNow, WinQueryObjectWindow(HWND_DESKTOP), FALSE);
    16781678      WinSetOwner(hwndNow, WinQueryObjectWindow(HWND_DESKTOP));
     
    17061706      SetConditionalCascade(DirMenu, IDM_EDITSUBMENU, IDM_ATTRS);
    17071707      SetConditionalCascade(DirMenu, IDM_DELETESUBMENU,
    1708                             fDefaultDeletePerm ? IDM_PERMDELETE : IDM_DELETE);
     1708                            fDefaultDeletePerm ? IDM_PERMDELETE : IDM_DELETE);
    17091709      SetConditionalCascade(DirMenu, IDM_MISCSUBMENU, IDM_SIZES);
    17101710      SetConditionalCascade(DirMenu, IDM_OPENSUBMENU, IDM_OPENWINDOW);
    17111711      if (fWorkPlace) {
    1712         WinSendMsg(DirMenu, MM_DELETEITEM,
    1713                    MPFROM2SHORT(IDM_OPENSUBMENU, TRUE), MPVOID);
    1714         WinSendMsg(DirMenu, MM_DELETEITEM,
    1715                    MPFROM2SHORT(IDM_OBJECTSUBMENU, TRUE), MPVOID);
     1712        WinSendMsg(DirMenu, MM_DELETEITEM,
     1713                   MPFROM2SHORT(IDM_OPENSUBMENU, TRUE), MPVOID);
     1714        WinSendMsg(DirMenu, MM_DELETEITEM,
     1715                   MPFROM2SHORT(IDM_OBJECTSUBMENU, TRUE), MPVOID);
    17161716      }
    17171717    }
     
    17251725      SetConditionalCascade(TreeMenu, IDM_OPENSUBMENU, IDM_OPENWINDOW);
    17261726      if (fWorkPlace) {
    1727         WinSendMsg(TreeMenu, MM_DELETEITEM,
    1728                    MPFROM2SHORT(IDM_OPENSUBMENU, TRUE), MPVOID);
    1729         WinSendMsg(TreeMenu, MM_DELETEITEM,
    1730                    MPFROM2SHORT(IDM_OBJECTSUBMENU, TRUE), MPVOID);
     1727        WinSendMsg(TreeMenu, MM_DELETEITEM,
     1728                   MPFROM2SHORT(IDM_OPENSUBMENU, TRUE), MPVOID);
     1729        WinSendMsg(TreeMenu, MM_DELETEITEM,
     1730                   MPFROM2SHORT(IDM_OBJECTSUBMENU, TRUE), MPVOID);
    17311731      }
    17321732      if (!fLVM)
    1733         WinSendMsg(TreeMenu, MM_DELETEITEM,
    1734                    MPFROM2SHORT(IDM_REFRESHREMOVABLES, TRUE), MPVOID);
     1733        WinSendMsg(TreeMenu, MM_DELETEITEM,
     1734                   MPFROM2SHORT(IDM_REFRESHREMOVABLES, TRUE), MPVOID);
    17351735    }
    17361736    else if (hwndMenu == &ArcMenu) {
     
    17401740      SetConditionalCascade(ArcMenu, IDM_VIEWSUBMENU, IDM_VIEW);
    17411741      if (fWorkPlace)
    1742         WinSendMsg(ArcMenu, MM_DELETEITEM,
    1743                    MPFROM2SHORT(IDM_FOLDERAFTEREXTRACT, TRUE), MPVOID);
     1742        WinSendMsg(ArcMenu, MM_DELETEITEM,
     1743                   MPFROM2SHORT(IDM_FOLDERAFTEREXTRACT, TRUE), MPVOID);
    17441744    }
    17451745    else if (hwndMenu == &FileMenu) {
     
    17531753      SetConditionalCascade(FileMenu, IDM_COLLECTMENU, IDM_COLLECT);
    17541754      SetConditionalCascade(FileMenu, IDM_DELETESUBMENU,
    1755                             fDefaultDeletePerm ? IDM_PERMDELETE : IDM_DELETE);
     1755                            fDefaultDeletePerm ? IDM_PERMDELETE : IDM_DELETE);
    17561756      SetConditionalCascade(FileMenu, IDM_OPENSUBMENU, IDM_OPENDEFAULT);
    17571757      SetConditionalCascade(FileMenu, IDM_OBJECTSUBMENU, IDM_SHADOW);
    17581758      if (fWorkPlace) {
    1759         WinSendMsg(FileMenu, MM_DELETEITEM,
    1760                    MPFROM2SHORT(IDM_OPENSUBMENU, TRUE), MPVOID);
    1761         WinSendMsg(FileMenu, MM_DELETEITEM,
    1762                    MPFROM2SHORT(IDM_OBJECTSUBMENU, TRUE), MPVOID);
     1759        WinSendMsg(FileMenu, MM_DELETEITEM,
     1760                   MPFROM2SHORT(IDM_OPENSUBMENU, TRUE), MPVOID);
     1761        WinSendMsg(FileMenu, MM_DELETEITEM,
     1762                   MPFROM2SHORT(IDM_OBJECTSUBMENU, TRUE), MPVOID);
    17631763      }
    17641764      if (!fLVM)
    1765         WinSendMsg(FileMenu, MM_DELETEITEM,
    1766                    MPFROM2SHORT(IDM_REFRESHREMOVABLES, TRUE), MPVOID);
     1765        WinSendMsg(FileMenu, MM_DELETEITEM,
     1766                   MPFROM2SHORT(IDM_REFRESHREMOVABLES, TRUE), MPVOID);
    17671767    }
    17681768    else if (hwndMenu == &DirCnrMenu) {
     
    17711771      SetConditionalCascade(DirCnrMenu, IDM_OPENSUBMENU, IDM_OPENSETTINGSME);
    17721772      if (fWorkPlace)
    1773         WinSendMsg(DirCnrMenu, MM_DELETEITEM,
    1774                    MPFROM2SHORT(IDM_OPENSUBMENU, TRUE), MPVOID);
     1773        WinSendMsg(DirCnrMenu, MM_DELETEITEM,
     1774                   MPFROM2SHORT(IDM_OPENSUBMENU, TRUE), MPVOID);
    17751775    }
    17761776    else if (hwndMenu == &TreeCnrMenu) {
    17771777      WinSetWindowUShort(TreeCnrMenu, QWS_ID, IDM_VIEWSMENU);
    17781778      if (!fLVM)
    1779         WinSendMsg(TreeCnrMenu, MM_DELETEITEM,
    1780                    MPFROM2SHORT(IDM_REFRESHREMOVABLES, TRUE), MPVOID);
     1779        WinSendMsg(TreeCnrMenu, MM_DELETEITEM,
     1780                   MPFROM2SHORT(IDM_REFRESHREMOVABLES, TRUE), MPVOID);
    17811781    }
    17821782    else if (hwndMenu == &ArcCnrMenu) {
     
    17841784      SetConditionalCascade(ArcCnrMenu, IDM_EXTRACTSUBMENU, IDM_ARCEXTRACT);
    17851785      if (fWorkPlace)
    1786         WinSendMsg(ArcCnrMenu, MM_DELETEITEM,
    1787                    MPFROM2SHORT(IDM_FOLDERAFTEREXTRACT, TRUE), MPVOID);
     1786        WinSendMsg(ArcCnrMenu, MM_DELETEITEM,
     1787                   MPFROM2SHORT(IDM_FOLDERAFTEREXTRACT, TRUE), MPVOID);
    17881788    }
    17891789    else if (hwndMenu == &CollectorCnrMenu) {
    17901790      WinSetWindowUShort(CollectorCnrMenu, QWS_ID, IDM_VIEWSMENU);
    17911791      SetConditionalCascade(CollectorCnrMenu, IDM_COLLECTMENU,
    1792                             IDM_COLLECTFROMCLIP);
     1792                            IDM_COLLECTFROMCLIP);
    17931793    }
    17941794    else if (hwndMenu == &CollectorFileMenu) {
    17951795      WinSetWindowUShort(CollectorFileMenu, QWS_ID, IDM_FILESMENU);
    17961796      SetConditionalCascade(CollectorFileMenu, IDM_COMMANDSMENU,
    1797                             IDM_DOITYOURSELF);
     1797                            IDM_DOITYOURSELF);
    17981798      SetConditionalCascade(CollectorFileMenu, IDM_COPYMENU, IDM_COPY);
    17991799      SetConditionalCascade(CollectorFileMenu, IDM_MOVEMENU, IDM_MOVE);
    18001800      SetConditionalCascade(CollectorFileMenu, IDM_SAVESUBMENU,
    1801                             IDM_SAVETOCLIP);
     1801                            IDM_SAVETOCLIP);
    18021802      SetConditionalCascade(CollectorFileMenu, IDM_VIEWSUBMENU, IDM_VIEW);
    18031803      SetConditionalCascade(CollectorFileMenu, IDM_EDITSUBMENU, IDM_EDIT);
    18041804      SetConditionalCascade(CollectorFileMenu, IDM_DELETESUBMENU,
    1805                             fDefaultDeletePerm ? IDM_PERMDELETE : IDM_DELETE);
     1805                            fDefaultDeletePerm ? IDM_PERMDELETE : IDM_DELETE);
    18061806      SetConditionalCascade(CollectorFileMenu, IDM_OPENSUBMENU,
    1807                             IDM_OPENDEFAULT);
     1807                            IDM_OPENDEFAULT);
    18081808      SetConditionalCascade(CollectorFileMenu, IDM_OBJECTSUBMENU, IDM_SHADOW);
    18091809      if (fWorkPlace) {
    1810         WinSendMsg(CollectorFileMenu, MM_DELETEITEM,
    1811                    MPFROM2SHORT(IDM_OPENSUBMENU, TRUE), MPVOID);
    1812         WinSendMsg(CollectorFileMenu, MM_DELETEITEM,
    1813                    MPFROM2SHORT(IDM_OBJECTSUBMENU, TRUE), MPVOID);
     1810        WinSendMsg(CollectorFileMenu, MM_DELETEITEM,
     1811                   MPFROM2SHORT(IDM_OPENSUBMENU, TRUE), MPVOID);
     1812        WinSendMsg(CollectorFileMenu, MM_DELETEITEM,
     1813                   MPFROM2SHORT(IDM_OBJECTSUBMENU, TRUE), MPVOID);
    18141814      }
    18151815    }
     
    18171817      WinSetWindowUShort(CollectorDirMenu, QWS_ID, IDM_FILESMENU);
    18181818      SetConditionalCascade(CollectorDirMenu, IDM_COMMANDSMENU,
    1819                             IDM_DOITYOURSELF);
     1819                            IDM_DOITYOURSELF);
    18201820      SetConditionalCascade(CollectorDirMenu, IDM_COPYMENU, IDM_COPY);
    18211821      SetConditionalCascade(CollectorDirMenu, IDM_MOVEMENU, IDM_MOVE);
    18221822      SetConditionalCascade(CollectorDirMenu, IDM_SAVESUBMENU,
    1823                             IDM_SAVETOCLIP);
     1823                            IDM_SAVETOCLIP);
    18241824      SetConditionalCascade(CollectorDirMenu, IDM_VIEWSUBMENU, IDM_INFO);
    18251825      SetConditionalCascade(CollectorDirMenu, IDM_EDITSUBMENU, IDM_ATTRS);
    18261826      SetConditionalCascade(CollectorDirMenu, IDM_DELETESUBMENU,
    1827                             fDefaultDeletePerm ? IDM_PERMDELETE : IDM_DELETE);
     1827                            fDefaultDeletePerm ? IDM_PERMDELETE : IDM_DELETE);
    18281828      SetConditionalCascade(CollectorDirMenu, IDM_MISCSUBMENU, IDM_SIZES);
    18291829      SetConditionalCascade(CollectorDirMenu, IDM_OPENSUBMENU,
    1830                             IDM_OPENWINDOW);
     1830                            IDM_OPENWINDOW);
    18311831      if (fWorkPlace) {
    1832         WinSendMsg(CollectorDirMenu, MM_DELETEITEM,
    1833                    MPFROM2SHORT(IDM_OPENSUBMENU, TRUE), MPVOID);
    1834         WinSendMsg(CollectorDirMenu, MM_DELETEITEM,
    1835                    MPFROM2SHORT(IDM_OBJECTSUBMENU, TRUE), MPVOID);
     1832        WinSendMsg(CollectorDirMenu, MM_DELETEITEM,
     1833                   MPFROM2SHORT(IDM_OPENSUBMENU, TRUE), MPVOID);
     1834        WinSendMsg(CollectorDirMenu, MM_DELETEITEM,
     1835                   MPFROM2SHORT(IDM_OBJECTSUBMENU, TRUE), MPVOID);
    18361836      }
    18371837    }
     
    18461846}
    18471847
    1848 SHORT AddToListboxBottom(HWND hwnd, CHAR * str)
     1848SHORT AddToListboxBottom(HWND hwnd, PCSZ str)
    18491849{
    18501850  SHORT ln;
    18511851
    18521852  ln = (SHORT) WinSendMsg(hwnd, LM_INSERTITEM, MPFROM2SHORT(LIT_END, 0),
    1853                           MPFROMP(str));
     1853                          MPFROMP(str));
    18541854  if (ln)
    18551855    WinSendMsg(hwnd, LM_SELECTITEM, MPFROM2SHORT(ln, 0), MPVOID);
     
    18621862
    18631863  if (WinSendMsg(hwndSysMenu, MM_QUERYITEMTEXT,
    1864                 MPFROM2SHORT(SC_RESTORE, 128), MPFROMP(s))) {
     1864                MPFROM2SHORT(SC_RESTORE, 128), MPFROMP(s))) {
    18651865    p = strchr(s, '\t');
    18661866    if (p) {
     
    18711871  }
    18721872  if (WinSendMsg(hwndSysMenu, MM_QUERYITEMTEXT,
    1873                 MPFROM2SHORT(SC_CLOSE, 128), MPFROMP(s))) {
     1873                MPFROM2SHORT(SC_CLOSE, 128), MPFROMP(s))) {
    18741874    p = strchr(s, '\t');
    18751875    if (p) {
     
    18801880  }
    18811881  if (WinSendMsg(hwndSysMenu, MM_QUERYITEMTEXT,
    1882                 MPFROM2SHORT(SC_MOVE, 128), MPFROMP(s))) {
     1882                MPFROM2SHORT(SC_MOVE, 128), MPFROMP(s))) {
    18831883    p = strchr(s, '\t');
    18841884    if (p) {
     
    18891889  }
    18901890  if (WinSendMsg(hwndSysMenu, MM_QUERYITEMTEXT,
    1891                 MPFROM2SHORT(SC_SIZE, 128), MPFROMP(s))) {
     1891                MPFROM2SHORT(SC_SIZE, 128), MPFROMP(s))) {
    18921892    p = strchr(s, '\t');
    18931893    if (p) {
     
    18981898  }
    18991899  if (WinSendMsg(hwndSysMenu, MM_QUERYITEMTEXT,
    1900                 MPFROM2SHORT(SC_MINIMIZE, 128), MPFROMP(s))) {
     1900                MPFROM2SHORT(SC_MINIMIZE, 128), MPFROMP(s))) {
    19011901    p = strchr(s, '\t');
    19021902    if (p) {
     
    19071907  }
    19081908  if (WinSendMsg(hwndSysMenu,
    1909                 MM_QUERYITEMTEXT,
    1910                 MPFROM2SHORT(SC_MAXIMIZE, 128), MPFROMP(s))) {
     1909                MM_QUERYITEMTEXT,
     1910                MPFROM2SHORT(SC_MAXIMIZE, 128), MPFROMP(s))) {
    19111911    p = strchr(s, '\t');
    19121912    if (p) {
     
    19171917  }
    19181918  if (WinSendMsg(hwndSysMenu,
    1919                 MM_QUERYITEMTEXT, MPFROM2SHORT(SC_HIDE, 128), MPFROMP(s))) {
     1919                MM_QUERYITEMTEXT, MPFROM2SHORT(SC_HIDE, 128), MPFROMP(s))) {
    19201920    p = strchr(s, '\t');
    19211921    if (p) {
     
    19271927}
    19281928
    1929 VOID LoadLibPath(CHAR * str, LONG len)
     1929VOID LoadLibPath(PSZ str, LONG len)
    19301930{
    19311931  ULONG ver[2];
     
    19401940    *str = 0;
    19411941    if (DosQuerySysInfo(QSV_BOOT_DRIVE,
    1942                         QSV_BOOT_DRIVE, (PVOID) ver, (ULONG) sizeof(ULONG)))
     1942                        QSV_BOOT_DRIVE, (PVOID) ver, (ULONG) sizeof(ULONG)))
    19431943      ver[0] = 3L;
    19441944    *configsys = (CHAR) ver[0] + '@';
    19451945    if (!DosQuerySysInfo(QSV_VERSION_MAJOR,
    1946                         QSV_VERSION_MINOR,
    1947                         (PVOID) ver, (ULONG) sizeof(ver)) && ver[1] >= 30)
     1946                        QSV_VERSION_MINOR,
     1947                        (PVOID) ver, (ULONG) sizeof(ver)) && ver[1] >= 30)
    19481948      warp = TRUE;
    19491949    *var = *beg = *end = 0;
    19501950    if (warp) {
    19511951      if (!DosLoadModule(var, sizeof(var), "DOSCALL1.DLL", &hmod)) {
    1952         if (!DosQueryProcAddr(hmod,
    1953                               ORD_DOS32QUERYEXTLIBPATH,
    1954                               NULL, (PFN *) & DQELIBPATH)) {
    1955           DQELIBPATH(beg, BEGIN_LIBPATH);
    1956           DQELIBPATH(end, END_LIBPATH);
    1957         }
    1958         DosFreeModule(hmod);
     1952        if (!DosQueryProcAddr(hmod,
     1953                              ORD_DOS32QUERYEXTLIBPATH,
     1954                              NULL, (PFN *) & DQELIBPATH)) {
     1955          DQELIBPATH(beg, BEGIN_LIBPATH);
     1956          DQELIBPATH(end, END_LIBPATH);
     1957        }
     1958        DosFreeModule(hmod);
    19591959      }
    19601960      *var = 0;
     
    19631963    if (fp) {
    19641964      while (!feof(fp)) {
    1965         if (!xfgets_bstripcr(var, sizeof(var), fp, pszSrcFile, __LINE__))
    1966           break;
    1967         if (!strnicmp(var, "LIBPATH=", 8)) {
    1968           memmove(var, var + 8, strlen(var + 8) + 1);
    1969           lstrip(var);
    1970           break;
    1971         }
     1965        if (!xfgets_bstripcr(var, sizeof(var), fp, pszSrcFile, __LINE__))
     1966          break;
     1967        if (!strnicmp(var, "LIBPATH=", 8)) {
     1968          memmove(var, var + 8, strlen(var + 8) + 1);
     1969          lstrip(var);
     1970          break;
     1971        }
    19721972      }
    19731973      fclose(fp);
     
    19851985  WinCheckMenuItem(hwndMenu, IDM_TEXT, ((flWindowAttr & CV_TEXT)));
    19861986  WinCheckMenuItem(hwndMenu, IDM_ICON, ((flWindowAttr & CV_ICON) &&
    1987                                         !(flWindowAttr & CV_TREE)));
     1987                                        !(flWindowAttr & CV_TREE)));
    19881988  WinCheckMenuItem(hwndMenu, IDM_TREEVIEW, ((flWindowAttr & CV_TREE)));
    19891989  WinCheckMenuItem(hwndMenu, IDM_DETAILS, ((flWindowAttr & CV_DETAIL)));
     
    19981998  if (s) {
    19991999    sprintf(s, "S:%s%s",
    2000             sortflags & SORT_REVERSE ? "^" : NullStr,
    2001             (sortflags & SORT_FIRSTEXTENSION) ?
    2002               GetPString(IDS_FIRSTX) : (sortflags & SORT_LASTEXTENSION) ?
    2003                 GetPString(IDS_LASTX) : (sortflags & SORT_SIZE) ?
    2004                   "Size" : (sortflags & SORT_EASIZE) ?
    2005                     (archive == 0) ?
    2006                       GetPString(IDS_EASIZE) : GetPString(IDS_CSIZE) :
    2007                     (sortflags & SORT_LWDATE) ?
    2008                       (archive == 0) ?
    2009                         GetPString(IDS_LWDATE) : GetPString(IDS_DATE) :
    2010                         (sortflags & SORT_LADATE) ?
    2011                           GetPString(IDS_LADATE) : (sortflags & SORT_CRDATE) ?
    2012                             GetPString(IDS_CRDATE) :
    2013                             (sortflags & SORT_PATHNAME) ?
    2014                               GetPString(IDS_PATH) : (sortflags & SORT_NOSORT) ?
    2015                                 GetPString(IDS_NONE) : (sortflags & SORT_SUBJECT) ?
    2016                                   GetPString(IDS_SUBJ) : GetPString(IDS_NAME));
     2000            sortflags & SORT_REVERSE ? "^" : NullStr,
     2001            (sortflags & SORT_FIRSTEXTENSION) ?
     2002              GetPString(IDS_FIRSTX) : (sortflags & SORT_LASTEXTENSION) ?
     2003                GetPString(IDS_LASTX) : (sortflags & SORT_SIZE) ?
     2004                  "Size" : (sortflags & SORT_EASIZE) ?
     2005                    (archive == 0) ?
     2006                      GetPString(IDS_EASIZE) : GetPString(IDS_CSIZE) :
     2007                    (sortflags & SORT_LWDATE) ?
     2008                      (archive == 0) ?
     2009                        GetPString(IDS_LWDATE) : GetPString(IDS_DATE) :
     2010                        (sortflags & SORT_LADATE) ?
     2011                          GetPString(IDS_LADATE) : (sortflags & SORT_CRDATE) ?
     2012                            GetPString(IDS_CRDATE) :
     2013                            (sortflags & SORT_PATHNAME) ?
     2014                              GetPString(IDS_PATH) : (sortflags & SORT_NOSORT) ?
     2015                                GetPString(IDS_NONE) : (sortflags & SORT_SUBJECT) ?
     2016                                  GetPString(IDS_SUBJ) : GetPString(IDS_NAME));
    20172017    WinSetWindowText(hwnd, s);
    20182018    free(s);
     
    20272027  if (s) {
    20282028    sprintf(s, "V:%s%s",
    2029             (flWindowAttr & CV_TREE) ? GetPString(IDS_TREE) :
    2030             (flWindowAttr & CV_NAME) ? GetPString(IDS_NAME) :
    2031             (flWindowAttr & CV_DETAIL) ? GetPString(IDS_DETAIL) :
    2032             (flWindowAttr & CV_TEXT) ? GetPString(IDS_TEXT) :
    2033             GetPString(IDS_ICON),
    2034             ((flWindowAttr & CV_MINI) &&
    2035              !(flWindowAttr & CV_TEXT)) ? GetPString(IDS_MINI) : NullStr);
     2029            (flWindowAttr & CV_TREE) ? GetPString(IDS_TREE) :
     2030            (flWindowAttr & CV_NAME) ? GetPString(IDS_NAME) :
     2031            (flWindowAttr & CV_DETAIL) ? GetPString(IDS_DETAIL) :
     2032            (flWindowAttr & CV_TEXT) ? GetPString(IDS_TEXT) :
     2033            GetPString(IDS_ICON),
     2034            ((flWindowAttr & CV_MINI) &&
     2035             !(flWindowAttr & CV_TEXT)) ? GetPString(IDS_MINI) : NullStr);
    20362036    WinSetWindowText(hwnd, s);
    20372037    free(s);
     
    20462046  if (s) {
    20472047    sprintf(s, "F:%s%s",
    2048             mask->szMask,
    2049             (!archive && (mask->attrFile != ALLATTRS ||
    2050                           mask->antiattr != 0)) ? " " : NullStr,
    2051             (!archive && (mask->attrFile != ALLATTRS ||
    2052                           mask->antiattr !=
    2053                           0)) ? GetPString(IDS_ATTRTEXT) : NullStr);
     2048            mask->szMask,
     2049            (!archive && (mask->attrFile != ALLATTRS ||
     2050                          mask->antiattr != 0)) ? " " : NullStr,
     2051            (!archive && (mask->attrFile != ALLATTRS ||
     2052                          mask->antiattr !=
     2053                          0)) ? GetPString(IDS_ATTRTEXT) : NullStr);
    20542054    if (!s[2])
    20552055      sprintf(s, "F:%s", GetPString(IDS_ALLTEXT));
     
    21002100
    21012101  sItemCount = (SHORT) WinSendMsg(hwndMenu,
    2102                                   MM_QUERYITEMCOUNT, MPVOID, MPVOID);
     2102                                  MM_QUERYITEMCOUNT, MPVOID, MPVOID);
    21032103
    21042104  /* clean out old additions */
    21052105  while ((SHORT) WinSendMsg(hwndMenu,
    2106                             MM_DELETEITEM,
    2107                             MPFROM2SHORT(IDM_SWITCHSTART + x++,
    2108                                         TRUE), MPVOID) < sItemCount)
     2106                            MM_DELETEITEM,
     2107                            MPFROM2SHORT(IDM_SWITCHSTART + x++,
     2108                                        TRUE), MPVOID) < sItemCount)
    21092109    sItemCount--;
    21102110  x = 0;
    21112111  while ((SHORT) WinSendMsg(hwndMenu,
    2112                             MM_DELETEITEM,
    2113                             MPFROM2SHORT(IDM_WINDOWSTART + x++,
    2114                                         TRUE), MPVOID) < sItemCount)
     2112                            MM_DELETEITEM,
     2113                            MPFROM2SHORT(IDM_WINDOWSTART + x++,
     2114                                        TRUE), MPVOID) < sItemCount)
    21152115    sItemCount--;
    21162116
     
    21272127    while ((hwndChild = WinGetNextWindow(henum)) != NULLHANDLE) {
    21282128      if (WinQueryWindowUShort(hwndChild, QWS_ID) && hwndChild != hwndFrame) {
    2129         *wtext = 0;
    2130         WinQueryWindowText(hwndChild, CCHMAXPATH + 8, wtext);
    2131         if (*wtext) {
    2132           wtext[CCHMAXPATH + 7] = 0;
    2133           mi.afStyle = MIS_TEXT;
    2134           if (!((x + sItemCount) % 28))
    2135             mi.afStyle |= MIS_BREAK;
    2136           mi.id = IDM_WINDOWSTART + x;
    2137           mi.iPosition = MIT_END;
    2138           if ((SHORT) WinSendMsg(hwndMenu,
    2139                                 MM_INSERTITEM,
    2140                                 MPFROMP(&mi), MPFROMP(wtext)) >= 0)
    2141             x++;
    2142         }
     2129        *wtext = 0;
     2130        WinQueryWindowText(hwndChild, CCHMAXPATH + 8, wtext);
     2131        if (*wtext) {
     2132          wtext[CCHMAXPATH + 7] = 0;
     2133          mi.afStyle = MIS_TEXT;
     2134          if (!((x + sItemCount) % 28))
     2135            mi.afStyle |= MIS_BREAK;
     2136          mi.id = IDM_WINDOWSTART + x;
     2137          mi.iPosition = MIT_END;
     2138          if ((SHORT) WinSendMsg(hwndMenu,
     2139                                MM_INSERTITEM,
     2140                                MPFROMP(&mi), MPFROMP(wtext)) >= 0)
     2141            x++;
     2142        }
    21432143      }
    21442144    }
     
    21672167      memset(&mi, 0, sizeof(mi));
    21682168      for (i = 0; i < pswb->cswentry; i++) {
    2169         if (pswb->aswentry[i].swctl.uchVisibility == SWL_VISIBLE &&
    2170             pswb->aswentry[i].swctl.fbJump == SWL_JUMPABLE &&
    2171             (pswb->aswentry[i].swctl.idProcess != mypid ||
    2172              !hwndFrame ||
    2173              pswb->aswentry[i].swctl.hwnd != hwndFrame) &&
    2174             (pswb->aswentry[i].swctl.idProcess != mypid ||
    2175              !hwndTopFrame ||
    2176              pswb->aswentry[i].swctl.hwnd != hwndTopFrame ||
    2177              !WinIsChild(hwndFrame, hwndTop))) {
    2178           if (!strnicmp(pswb->aswentry[i].swctl.szSwtitle, "AV/2", 4)
    2179               || !stricmp(pswb->aswentry[i].swctl.szSwtitle, "File Manager/2")
    2180               || !stricmp(pswb->aswentry[i].swctl.szSwtitle, "Collector")
    2181               || !strnicmp(pswb->aswentry[i].swctl.szSwtitle, "VTree", 5)
    2182               || !strnicmp(pswb->aswentry[i].swctl.szSwtitle, "VDir", 4)
    2183               || !strnicmp(pswb->aswentry[i].swctl.szSwtitle, FM2Str, 4)) {
    2184             mi.afStyle = MIS_TEXT;
    2185             if (x && !(x % 28))
    2186               mi.afStyle |= MIS_BREAK;
    2187             mi.id = IDM_SWITCHSTART + y;
    2188             mi.iPosition = MIT_END;
    2189             switches[y] = pswb->aswentry[i].hswitch;
    2190             if ((SHORT) WinSendMsg(hwndMenu,
    2191                                    MM_INSERTITEM,
    2192                                    MPFROMP(&mi),
    2193                                    MPFROMP(pswb->aswentry[i].
    2194                                            swctl.szSwtitle)) >= 0) {
    2195               y++;
    2196               x++;
    2197             }
    2198           }
    2199         }
     2169        if (pswb->aswentry[i].swctl.uchVisibility == SWL_VISIBLE &&
     2170            pswb->aswentry[i].swctl.fbJump == SWL_JUMPABLE &&
     2171            (pswb->aswentry[i].swctl.idProcess != mypid ||
     2172             !hwndFrame ||
     2173             pswb->aswentry[i].swctl.hwnd != hwndFrame) &&
     2174            (pswb->aswentry[i].swctl.idProcess != mypid ||
     2175             !hwndTopFrame ||
     2176             pswb->aswentry[i].swctl.hwnd != hwndTopFrame ||
     2177             !WinIsChild(hwndFrame, hwndTop))) {
     2178          if (!strnicmp(pswb->aswentry[i].swctl.szSwtitle, "AV/2", 4)
     2179              || !stricmp(pswb->aswentry[i].swctl.szSwtitle, "File Manager/2")
     2180              || !stricmp(pswb->aswentry[i].swctl.szSwtitle, "Collector")
     2181              || !strnicmp(pswb->aswentry[i].swctl.szSwtitle, "VTree", 5)
     2182              || !strnicmp(pswb->aswentry[i].swctl.szSwtitle, "VDir", 4)
     2183              || !strnicmp(pswb->aswentry[i].swctl.szSwtitle, FM2Str, 4)) {
     2184            mi.afStyle = MIS_TEXT;
     2185            if (x && !(x % 28))
     2186              mi.afStyle |= MIS_BREAK;
     2187            mi.id = IDM_SWITCHSTART + y;
     2188            mi.iPosition = MIT_END;
     2189            switches[y] = pswb->aswentry[i].hswitch;
     2190            if ((SHORT) WinSendMsg(hwndMenu,
     2191                                   MM_INSERTITEM,
     2192                                   MPFROMP(&mi),
     2193                                   MPFROMP(pswb->aswentry[i].
     2194                                           swctl.szSwtitle)) >= 0) {
     2195              y++;
     2196              x++;
     2197            }
     2198          }
     2199        }
    22002200      }
    22012201      numswitches = y;
     
    22242224      mi.afStyle = MIS_TEXT;
    22252225      if (WinSendMsg(hwndMenu,
    2226                      MM_QUERYITEM,
    2227                      MPFROM2SHORT(IDM_WINDOWSMENU, TRUE), MPFROMP(&mi)))
    2228         hwndSubMenu = mi.hwndSubMenu;
     2226                     MM_QUERYITEM,
     2227                     MPFROM2SHORT(IDM_WINDOWSMENU, TRUE), MPFROMP(&mi)))
     2228        hwndSubMenu = mi.hwndSubMenu;
    22292229    }
    22302230    else
     
    22332233      *s = 0;
    22342234      if (WinSendMsg(hwndSubMenu,
    2235                      MM_QUERYITEMTEXT,
    2236                      MPFROM2SHORT(cmd, CCHMAXPATH + 8), MPFROMP(s)) && *s) {
    2237 
    2238         HENUM henum;
    2239         CHAR checkText[CCHMAXPATH + 8];
    2240         SWP swp;
    2241 
    2242         s[CCHMAXPATH + 7] = 0;
    2243         henum = WinBeginEnumWindows(hwndMain);
    2244         while ((hwndChild = WinGetNextWindow(henum)) != NULLHANDLE) {
    2245           if (WinQueryWindowUShort(hwndChild, QWS_ID)) {
    2246             *checkText = 0;
    2247             WinQueryWindowText(hwndChild, CCHMAXPATH + 8, checkText);
    2248             checkText[CCHMAXPATH + 7] = 0;
    2249             if (!stricmp(checkText, s)) {
    2250               if (WinQueryWindowPos(hwndChild, &swp)) {
    2251                 if (swp.fl & (SWP_MINIMIZE | SWP_HIDE))
    2252                   WinSetWindowPos(hwndChild,
    2253                                   HWND_TOP,
    2254                                   0, 0, 0, 0, SWP_RESTORE | SWP_ZORDER);
    2255               }
    2256               WinSetActiveWindow(HWND_DESKTOP, hwndChild);
    2257               ret = TRUE;
    2258               break;
    2259             }
    2260           }
    2261         }
    2262         WinEndEnumWindows(henum);
     2235                     MM_QUERYITEMTEXT,
     2236                     MPFROM2SHORT(cmd, CCHMAXPATH + 8), MPFROMP(s)) && *s) {
     2237
     2238        HENUM henum;
     2239        CHAR checkText[CCHMAXPATH + 8];
     2240        SWP swp;
     2241
     2242        s[CCHMAXPATH + 7] = 0;
     2243        henum = WinBeginEnumWindows(hwndMain);
     2244        while ((hwndChild = WinGetNextWindow(henum)) != NULLHANDLE) {
     2245          if (WinQueryWindowUShort(hwndChild, QWS_ID)) {
     2246            *checkText = 0;
     2247            WinQueryWindowText(hwndChild, CCHMAXPATH + 8, checkText);
     2248            checkText[CCHMAXPATH + 7] = 0;
     2249            if (!stricmp(checkText, s)) {
     2250              if (WinQueryWindowPos(hwndChild, &swp)) {
     2251                if (swp.fl & (SWP_MINIMIZE | SWP_HIDE))
     2252                  WinSetWindowPos(hwndChild,
     2253                                  HWND_TOP,
     2254                                  0, 0, 0, 0, SWP_RESTORE | SWP_ZORDER);
     2255              }
     2256              WinSetActiveWindow(HWND_DESKTOP, hwndChild);
     2257              ret = TRUE;
     2258              break;
     2259            }
     2260          }
     2261        }
     2262        WinEndEnumWindows(henum);
    22632263      }
    22642264    }
     
    22802280 */
    22812281
    2282 INT CheckDriveSpaceAvail(CHAR *pTargetPath, ULONGLONG ullSpaceNeeded,
    2283                           ULONGLONG ullFreeSpaceWhenComplete)
     2282INT CheckDriveSpaceAvail(PCSZ pTargetPath, ULONGLONG ullSpaceNeeded,
     2283                          ULONGLONG ullFreeSpaceWhenComplete)
    22842284{
    22852285  FSALLOCATE fsa;
     
    22952295
    22962296    CommaFmtULL(szKB, sizeof(szKB),
    2297                 ullFreeQty - ullSpaceNeeded, ' ');
     2297                ullFreeQty - ullSpaceNeeded, ' ');
    22982298    if (ullFreeSpaceWhenComplete == 0) {
    22992299      saymsg(MB_OK,
    2300              HWND_DESKTOP,
    2301              NullStr,
    2302              GetPString(IDS_DRIVESPACELIMITEDTMPSAVE),
    2303              pTargetPath);
     2300             HWND_DESKTOP,
     2301             NullStr,
     2302             GetPString(IDS_DRIVESPACELIMITEDTMPSAVE),
     2303             pTargetPath);
    23042304      return 0;
    23052305    }
    23062306    else {
    23072307      if (ullFreeQty > ullSpaceNeeded) {
    2308         ret = saymsg(MB_YESNO,
    2309                      HWND_DESKTOP,
    2310                      NullStr,
    2311                      GetPString(IDS_DRIVESPACELIMITED),
    2312                      pTargetPath,
    2313                      szKB);
    2314         if (ret == MBID_YES)
    2315           return 0;
    2316         else
    2317           return 2;
     2308        ret = saymsg(MB_YESNO,
     2309                     HWND_DESKTOP,
     2310                     NullStr,
     2311                     GetPString(IDS_DRIVESPACELIMITED),
     2312                     pTargetPath,
     2313                     szKB);
     2314        if (ret == MBID_YES)
     2315          return 0;
     2316        else
     2317          return 2;
    23182318      }
    23192319      else {
    2320         saymsg(MB_OK,
    2321                HWND_DESKTOP,
    2322                NullStr,
    2323                GetPString(IDS_DRIVESPACEEXCEEDED),
    2324                pTargetPath);
    2325         return 2;
     2320        saymsg(MB_OK,
     2321               HWND_DESKTOP,
     2322               NullStr,
     2323               GetPString(IDS_DRIVESPACEEXCEEDED),
     2324               pTargetPath);
     2325        return 2;
    23262326      }
    23272327    }
Note: See TracChangeset for help on using the changeset viewer.