Changeset 562 for trunk/dll/arccnrs.c


Ignore:
Timestamp:
Mar 15, 2007, 1:13:12 AM (18 years ago)
Author:
Gregg Young
Message:

Fixed arc viewer hang

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/dll/arccnrs.c

    r551 r562  
    3131  23 Aug 06 SHL Integrate John Small's switch list title logic
    3232  03 Nov 06 SHL Renames
     33  14 Mar 07 SHL ArcObjWndProc/UM_ENTER: delay before starting viewer
    3334
    3435***********************************************************************/
     
    131132          if (*viewer) {
    132133            ExecOnList((HWND) 0, viewer, WINDOWED | SEPARATE |
    133                        ((fViewChild) ? CHILD : 0), NULL, list, NULL);
     134                         (fViewChild ? CHILD : 0),
     135                       NULL, list, NULL);
    134136          }
    135137          else
     
    143145      runemf2(SEPARATEKEEP | WINDOWED | MAXIMIZED,
    144146              hwnd, NULL, NULL, "%s %s%s%s", ad->info->test,
    145               ((needs_quoting(ad->arcname)) ? "\"" : NullStr),
    146               ad->arcname, ((needs_quoting(ad->arcname)) ? "\"" : NullStr));
     147              needs_quoting(ad->arcname) ? "\"" : NullStr,
     148              ad->arcname,
     149              needs_quoting(ad->arcname) ? "\"" : NullStr);
    147150      break;
    148151    }
     
    234237      ret = (SHORT) stricmp(pai1->szFileName, pai2->szFileName);
    235238    if (ret && (sortFlags & SORT_REVERSE))
    236       ret = (ret > 0) ? -1 : 1;
     239      ret = ret > 0 ? -1 : 1;
    237240    return ret;
    238241  }
     
    387390              p,
    388391              info->list,
    389               (needs_quoting(arcname)) ? "\"" : NullStr,
    390               arcname, (needs_quoting(arcname)) ? "\"" : NullStr, arctemp);
     392              needs_quoting(arcname) ? "\"" : NullStr,
     393              arcname,
     394              needs_quoting(arcname) ? "\"" : NullStr,
     395              arctemp);
    391396    }
    392397    else {
     
    415420            runemf2(SEPARATE | INVISIBLE | FULLSCREEN | BACKGROUND | WAIT,
    416421                    hwndCnr, NULL, NULL, "%s %s%s%s", info->list,
    417                     (needs_quoting(arcname)) ? "\"" : NullStr, arcname,
    418                     (needs_quoting(arcname)) ? "\"" : NullStr);
     422                    needs_quoting(arcname) ? "\"" : NullStr,
     423                    arcname,
     424                    needs_quoting(arcname) ? "\"" : NullStr);
    419425            oldstdout = fileno(stdout);
    420426            DosError(FERR_DISABLEHARDERR);
     
    545551            saymsg(MB_ENTER, hwndCnr, DEBUG_STRING,
    546552                   "fname: %s\r\rpp: %s\r\rp: %s\r\rlonename: %s\r\rhighest: %ld\r\rx: %ld\r\rfdate: %s",
    547                    (fname) ? fname : "NULL",
    548                    (pp) ? pp : "NULL",
    549                    (p) ? p : "NULL",
     553                   fname ? fname : "NULL",
     554                   pp ? pp : "NULL",
     555                   p ? p : "NULL",
    550556                   lonename, highest, x, (fdate) ? fdate : "NULL");
    551557#endif
     
    574580              pai->pszFileName = pai->szFileName;
    575581              pai->rc.pszIcon = pai->pszFileName;
    576               pai->rc.hptrIcon = ((pai->flags & ARCFLAGS_REALDIR) != 0) ?
     582              pai->rc.hptrIcon = (pai->flags & ARCFLAGS_REALDIR) != 0 ?
    577583                hptrDir : hptrFile;
    578584              pai->pszDate = pai->szDate;
     
    638644        sprintf(errstr, GetPString(IDS_ARCERRORINFOTEXT),
    639645                arcname,
    640                 (!gotstart) ? GetPString(IDS_NOGOTSTARTTEXT) : NullStr,
    641                 (!numarcfiles) ? GetPString(IDS_NOARCFILESFOUNDTEXT) :
     646                !gotstart ? GetPString(IDS_NOGOTSTARTTEXT) : NullStr,
     647                !numarcfiles ? GetPString(IDS_NOARCFILESFOUNDTEXT) :
    642648                NullStr,
    643                 (!gotend) ? GetPString(IDS_NOENDOFLISTTEXT) : NullStr);
     649                !gotend ? GetPString(IDS_NOENDOFLISTTEXT) : NullStr);
    644650        memset(&ad, 0, sizeof(ARCDUMP));
    645651        ad.info = info;
     
    943949        if (AcceptOneDrop(mp1, mp2))
    944950          return MRFROM2SHORT(DOR_DROP, DO_MOVE);
    945         return MRFROM2SHORT(DOR_NODROP, 0);     /* Drop not valid        */
     951        return MRFROM2SHORT(DOR_NODROP, 0);     /* Drop not valid */
    946952      case DM_DROPHELP:
    947953        DropHelp(mp1, mp2, hwnd, GetPString(IDS_ARCCNRFOLDERDROPHELPTEXT));
     
    12031209          // saymsg(MB_ENTER,HWND_DESKTOP,DEBUG_STRING,"%s %s %s\r[%s]",dcd->info->extract,dcd->arcname,membername,construct);
    12041210          runemf2(SEPARATE | WINDOWED | WAIT |
    1205                   ((fArcStuffVisible) ? 0 : (BACKGROUND | MINIMIZED)) |
    1206                   WAIT, dcd->hwndClient, construct, NULL, "%s %s%s%s %s%s%s",
     1211                    (fArcStuffVisible ? 0 : BACKGROUND | MINIMIZED) |
     1212                    WAIT,
     1213                  dcd->hwndClient, construct, NULL, "%s %s%s%s %s%s%s",
    12071214                  dcd->info->extract,
    1208                   (needs_quoting(dcd->arcname)) ? "\"" : NullStr,
     1215                  needs_quoting(dcd->arcname) ? "\"" : NullStr,
    12091216                  dcd->arcname,
    1210                   (needs_quoting(dcd->arcname)) ? "\"" : NullStr,
    1211                   (needs_quoting(membername)) ? "\"" : NullStr,
    1212                   membername, (needs_quoting(membername)) ? "\"" : NullStr);
     1217                  needs_quoting(dcd->arcname) ? "\"" : NullStr,
     1218                  needs_quoting(membername) ? "\"" : NullStr,
     1219                  membername,
     1220                  needs_quoting(membername) ? "\"" : NullStr);
    12131221          if (*construct && construct[strlen(construct) - 1] != '\\')
    12141222            strcat(construct, "\\");
     
    13291337        }
    13301338        runemf2(SEPARATE | WINDOWED |
    1331                 ((fArcStuffVisible) ? 0 : (BACKGROUND | MINIMIZED)) |
    1332                 WAIT, dcd->hwndClient, dcd->workdir, NULL, "%s %s%s%s %s%s%s",
    1333                 ((dcd->info->exwdirs) ? dcd->info->exwdirs :
    1334                  dcd->info->extract),
    1335                 (needs_quoting(dcd->arcname)) ? "\"" : NullStr,
     1339                  (fArcStuffVisible ? 0 : BACKGROUND | MINIMIZED) |
     1340                  WAIT,
     1341                dcd->hwndClient, dcd->workdir, NULL, "%s %s%s%s %s%s%s",
     1342                dcd->info->exwdirs ? dcd->info->exwdirs :
     1343                                     dcd->info->extract,
     1344                needs_quoting(dcd->arcname) ? "\"" : NullStr,
    13361345                dcd->arcname,
    1337                 (needs_quoting(dcd->arcname)) ? "\"" : NullStr,
    1338                 (needs_quoting(s)) ? "\"" : NullStr,
    1339                 s, (needs_quoting(s)) ? "\"" : NullStr);
    1340 
     1346                needs_quoting(dcd->arcname) ? "\"" : NullStr,
     1347                needs_quoting(s) ? "\"" : NullStr,
     1348                s,
     1349                needs_quoting(s) ? "\"" : NullStr);
     1350
     1351        // printf("%s %d runemf2 returned\n", __FILE__, __LINE__); fflush(stdout);      // 10 Mar 07 SHL
    13411352        if (!dcd->info->exwdirs) {
    13421353          p = s;
     
    13571368          p++;
    13581369        }
     1370        // printf("%s %d UM_ENTER %s %s\n",__FILE__, __LINE__,filename, s); fflush(stdout);     // 10 Mar 07 SHL hang
    13591371        free(s);
    1360         if (IsFile(filename) == 1)
     1372        if (IsFile(filename) == 1) {
     1373          if (fViewChild)
     1374            DosSleep(250);              // Allow unzip session to finish closing 14 Mar 07 SHL
    13611375          WinSendMsg(dcd->hwndCnr, UM_ENTER, MPFROMP(filename), MPVOID);
     1376        }
    13621377      }
    13631378    }
     
    14301445                  strlen(li->list[x]) + 5 > 1024) {
    14311446                runemf2(SEPARATE | WINDOWED |
    1432                         ((fArcStuffVisible) ? 0 :
    1433                          (BACKGROUND | MINIMIZED)) |
    1434                         WAIT, hwnd, NULL, NULL, "%s", szBuffer);
     1447                          (fArcStuffVisible ? 0 : BACKGROUND | MINIMIZED) |
     1448                          WAIT,
     1449                        hwnd, NULL, NULL, "%s", szBuffer);
    14351450                *p = 0;
    14361451              }
     
    15001515              z = x;
    15011516              runemf2(SEPARATE | WINDOWED |
    1502                       ((fArcStuffVisible) ? 0 : (BACKGROUND | MINIMIZED)) |
    1503                       WAIT, hwnd, NullStr, NULL, "%s", cl);
     1517                        (fArcStuffVisible ? 0 : BACKGROUND | MINIMIZED) |
     1518                        WAIT,
     1519                      hwnd, NullStr, NULL, "%s", cl);
    15041520              *endofit = 0;
    15051521            } while (li->list[x]);
     
    16011617                                       && !li->info->exwdirs)) ? li->info->
    16021618                    extract : li->info->exwdirs,
    1603                     (needs_quoting(li->arcname)) ? "\"" : NullStr,
     1619                    needs_quoting(li->arcname) ? "\"" : NullStr,
    16041620                    li->arcname,
    1605                     (needs_quoting(li->arcname)) ? "\"" : NullStr);
     1621                    needs_quoting(li->arcname) ? "\"" : NullStr);
    16061622            endofit = &cl[strlen(cl)];
    16071623            z = 0;
     
    16241640              z = x;
    16251641              runemf2(SEPARATE | WINDOWED |
    1626                       (fArcStuffVisible ? 0 : (BACKGROUND | MINIMIZED)) |
    1627                       WAIT, hwnd, li->targetpath, NULL, "%s", cl);
     1642                        (fArcStuffVisible ? 0 : BACKGROUND | MINIMIZED) |
     1643                        WAIT,
     1644                      hwnd, li->targetpath, NULL, "%s", cl);
    16281645              *endofit = 0;
    16291646            } while (li->list[x]);
     
    17511768                  runemf2(SEPARATE | WINDOWED, HWND_DESKTOP, NULL,
    17521769                          NULL, "%sFM2PLAY.EXE /@$FM2PLAY.$$$",
    1753                           (fAddUtils) ? "UTILS\\" : NullStr);
     1770                          fAddUtils ? "UTILS\\" : NullStr);
    17541771                }
    17551772              }
     
    18481865                    sprintf(fullname, "%s%s%s", dcd->directory,
    18491866                            (dcd->directory[strlen(dcd->directory) - 1] ==
    1850                              '\\') ? NullStr : "\\", p);
     1867                               '\\') ? NullStr : "\\",
     1868                            p);
    18511869                    if (IsFile(fullname) != -1)
    18521870                      if (AddToList(fullname, &list2, &numfiles, &numalloced))
     
    21092127                *tb ? " / " : NullStr,
    21102128                tb,
    2111                 (*dcd->mask.szMask) ? " (" : NullStr,
    2112                 (*dcd->mask.szMask) ? dcd->mask.szMask : NullStr,
    2113                 (*dcd->mask.szMask) ? ")" : NullStr, dcd->arcname);
     2129                *dcd->mask.szMask ? " (" : NullStr,
     2130                *dcd->mask.szMask ? dcd->mask.szMask : NullStr,
     2131                *dcd->mask.szMask ? ")" : NullStr, dcd->arcname);
    21142132        WinSetWindowText(hwndStatus, s);
    21152133        if (!ParentIsDesktop(hwnd, dcd->hwndParent)) {
     
    23762394          ULONG wmsg;
    23772395
    2378           wmsg = (SHORT1FROMMP(mp1) == 0) ? UM_FILESMENU : UM_VIEWSMENU;
     2396          wmsg = SHORT1FROMMP(mp1) == 0 ? UM_FILESMENU : UM_VIEWSMENU;
    23792397          PortholeInit((HWND) WinSendMsg(dcd->hwndClient,
    23802398                                         wmsg, MPVOID, MPVOID), mp1, mp2);
     
    24082426      case IDM_VIEWSMENU:
    24092427        WinCheckMenuItem((HWND) mp2,
    2410                          IDM_MINIICONS, ((dcd->flWindowAttr & CV_MINI) != 0));
     2428                         IDM_MINIICONS, (dcd->flWindowAttr & CV_MINI) != 0);
    24112429        WinEnableMenuItem((HWND) mp2,
    24122430                          IDM_RESELECT, (dcd->lastselection != NULL));
     
    24252443         * add switchlist entries to end of pulldown menu
    24262444         */
    2427         SetupWinList((HWND) mp2,
    2428                      (hwndMain) ? hwndMain : (HWND) 0, dcd->hwndFrame);
     2445        SetupWinList((HWND)mp2,
     2446                     hwndMain ? hwndMain : (HWND)0, dcd->hwndFrame);
    24292447        break;
    24302448      }
     
    25152533
    25162534      case IDM_FOLDERAFTEREXTRACT:
    2517         fFolderAfterExtract = (fFolderAfterExtract) ? FALSE : TRUE;
     2535        fFolderAfterExtract = fFolderAfterExtract ? FALSE : TRUE;
    25182536        PrfWriteProfileData(fmprof, appname, "FolderAfterExtract",
    25192537                            &fFolderAfterExtract, sizeof(BOOL));
     
    26852703        if (dcd->info->extract)
    26862704          runemf2(SEPARATE | WINDOWED |
    2687                   ((fArcStuffVisible) ? 0 : (BACKGROUND | MINIMIZED)),
     2705                    (fArcStuffVisible ? 0 : BACKGROUND | MINIMIZED),
    26882706                  hwnd, dcd->directory, NULL, "%s %s%s%s",
    26892707                  dcd->info->extract,
    2690                   (needs_quoting(dcd->arcname)) ? "\"" : NullStr,
     2708                  needs_quoting(dcd->arcname) ? "\"" : NullStr,
    26912709                  dcd->arcname,
    2692                   (needs_quoting(dcd->arcname)) ? "\"" : NullStr);
     2710                  needs_quoting(dcd->arcname) ? "\"" : NullStr);
    26932711        if (SHORT1FROMMP(mp1) == IDM_ARCEXTRACTEXIT)
    26942712          PostMsg(hwnd, WM_CLOSE, MPVOID, MPVOID);
     
    26992717        if (dcd->info->exwdirs)
    27002718          runemf2(SEPARATE | WINDOWED |
    2701                   ((fArcStuffVisible) ? 0 : (BACKGROUND | MINIMIZED)),
     2719                    (fArcStuffVisible ? 0 : BACKGROUND | MINIMIZED),
    27022720                  hwnd, dcd->directory, NULL, "%s %s%s%s",
    27032721                  dcd->info->exwdirs,
    2704                   (needs_quoting(dcd->arcname)) ? "\"" : NullStr,
     2722                  needs_quoting(dcd->arcname) ? "\"" : NullStr,
    27052723                  dcd->arcname,
    2706                   (needs_quoting(dcd->arcname)) ? "\"" : NullStr);
     2724                  needs_quoting(dcd->arcname) ? "\"" : NullStr);
    27072725        if (SHORT1FROMMP(mp1) == IDM_ARCEXTRACTWDIRSEXIT)
    27082726          PostMsg(hwnd, WM_CLOSE, MPVOID, MPVOID);
     
    27732791          runemf2(SEPARATEKEEP | WINDOWED | MAXIMIZED,
    27742792                  hwnd, NULL, NULL, "%s %s%s%s", dcd->info->test,
    2775                   (needs_quoting(dcd->arcname)) ? "\"" : NullStr,
     2793                  needs_quoting(dcd->arcname) ? "\"" : NullStr,
    27762794                  dcd->arcname,
    2777                   (needs_quoting(dcd->arcname)) ? "\"" : NullStr);
     2795                  needs_quoting(dcd->arcname) ? "\"" : NullStr);
    27782796        break;
    27792797
     
    29202938
    29212939          pDInfo = ((PCNRDRAGINFO) mp2)->pDragInfo;
    2922           DrgAccessDraginfo(pDInfo);    /* Access DRAGINFO       */
    2923           DrgFreeDraginfo(pDInfo);      /* Free DRAGINFO         */
     2940          DrgAccessDraginfo(pDInfo);    /* Access DRAGINFO */
     2941          DrgFreeDraginfo(pDInfo);      /* Free DRAGINFO */
    29242942        }
    29252943        return 0;
     
    29292947        if (mp2) {
    29302948
    2931           PDRAGITEM pDItem;     /* Pointer to DRAGITEM   */
    2932           PDRAGINFO pDInfo;     /* Pointer to DRAGINFO   */
     2949          PDRAGITEM pDItem;     /* Pointer to DRAGITEM */
     2950          PDRAGINFO pDInfo;     /* Pointer to DRAGINFO */
    29332951          PARCITEM pci;
    29342952
     
    29372955            pci = NULL;
    29382956          pDInfo = ((PCNRDRAGINFO) mp2)->pDragInfo;
    2939           DrgAccessDraginfo(pDInfo);    /* Access DRAGINFO       */
     2957          DrgAccessDraginfo(pDInfo);    /* Access DRAGINFO */
    29402958          if (*dcd->arcname) {
    29412959            if ((driveflags[toupper(*dcd->arcname) - 'A'] &
     
    29492967            return MRFROM2SHORT(DOR_NODROP, 0);
    29502968          }
    2951           pDItem = DrgQueryDragitemPtr(pDInfo,  /* Access DRAGITEM       */
    2952                                        0);      /* Index to DRAGITEM     */
     2969          pDItem = DrgQueryDragitemPtr(pDInfo,  /* Access DRAGITEM */
     2970                                       0);      /* Index to DRAGITEM */
    29532971          if (DrgVerifyRMF(pDItem,      /* Check valid rendering */
    2954                            DRM_OS2FILE, /* mechanisms and data   */
     2972                           DRM_OS2FILE, /* mechanisms and data */
    29552973                           NULL) && !(pDItem->fsControl & DC_PREPARE)) {
    29562974            DrgFreeDraginfo(pDInfo);    /* Free DRAGINFO         */
    2957             return (MRFROM2SHORT(DOR_DROP,      /* Return okay to drop  */
    2958                                  ((fCopyDefault) ? DO_COPY : DO_MOVE)));
    2959           }
    2960           DrgFreeDraginfo(pDInfo);      /* Free DRAGINFO         */
    2961         }
    2962         return (MRFROM2SHORT(DOR_NEVERDROP, 0));        /* Drop not valid        */
     2975            return MRFROM2SHORT(DOR_DROP,       /* Return okay to drop */
     2976                                fCopyDefault ? DO_COPY : DO_MOVE);
     2977          }
     2978          DrgFreeDraginfo(pDInfo);      /* Free DRAGINFO */
     2979        }
     2980        return (MRFROM2SHORT(DOR_NEVERDROP, 0));        /* Drop not valid */
    29632981
    29642982      case CN_INITDRAG:
     
    30113029          DosBeep(50, 100);             // fixme to know why beep?
    30123030          if (li) {
    3013             li->type = (li->type == DO_MOVE) ? IDM_ARCHIVEM : IDM_ARCHIVE;
     3031            li->type = li->type == DO_MOVE ? IDM_ARCHIVEM : IDM_ARCHIVE;
    30143032            strcpy(li->targetpath, dcd->arcname);
    30153033            if (!li->list ||
     
    30653083          CHAR s[CCHMAXPATHCOMP + 91], tf[81], tb[81];
    30663084
    3067           pci = (PARCITEM) ((pre) ? pre->pRecord : NULL);
     3085          pci = (PARCITEM)(pre ? pre->pRecord : NULL);
    30683086          if (!pci) {
    30693087            if (!ParentIsDesktop(hwnd, dcd->hwndParent)) {
     
    31883206    break;
    31893207  }
    3190   return (dcd && dcd->oldproc) ? dcd->oldproc(hwnd, msg, mp1, mp2) :
    3191     PFNWPCnr(hwnd, msg, mp1, mp2);
     3208  return dcd && dcd->oldproc ? dcd->oldproc(hwnd, msg, mp1, mp2) :
     3209                               PFNWPCnr(hwnd, msg, mp1, mp2);
    31923210}
    31933211
     
    33053323              DRIVE_NOTWRITEABLE)))
    33063324          save_dir2(dcd->directory);
    3307         dcd->hwndParent = (hwndParent) ? hwndParent : HWND_DESKTOP;
     3325        dcd->hwndParent = hwndParent ? hwndParent : HWND_DESKTOP;
    33083326        dcd->hwndFrame = hwndFrame;
    33093327        dcd->hwndClient = hwndClient;
    3310         dcd->amextracted = ((flags & 1) != 0);
    3311         dcd->dontclose = ((flags & 4) != 0);
     3328        dcd->amextracted = (flags & 1) != 0;
     3329        dcd->dontclose = (flags & 4) != 0;
    33123330        dcd->info = info;
    33133331        dcd->sortFlags = DefArcSortFlags;
Note: See TracChangeset for help on using the changeset viewer.