Changeset 789 for trunk/dll


Ignore:
Timestamp:
Aug 20, 2007, 1:39:25 AM (18 years ago)
Author:
Steven Levine
Message:

Rework SaveDirCnrState to return better error info
Make FILESTOGET_MIN/MAX to avoid hardcoded numbers
Ensure FilesToGet in valid range on init
Correct load_setups error reporting

Location:
trunk/dll
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/dll/fm3dll.h

    r787 r789  
    5858  16 Aug 07 SHL Update for ticket# 109 - status update
    5959  18 Aug 07 SHL Update for ticket# 31 - states length
     60  19 Aug 07 SHL Move FILESTOGET_MIN/MAX here
     61  19 Aug 07 SHL Update SaveDirCnrState return
    6062
    6163***********************************************************************/
     
    764766MRESULT EXPENTRY DriveProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2);
    765767MRESULT EXPENTRY BubbleProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2);
    766 BOOL SaveDirCnrState(HWND hwndClient, CHAR * name);
     768INT SaveDirCnrState(HWND hwndClient, CHAR * name);
    767769MRESULT EXPENTRY LEDProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2);
    768770MRESULT EXPENTRY StatusProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2);
     
    14211423DATADEF INT butxsize, butysize;
    14221424DATADEF FILE *LogFileHandle;
     1425
     1426#define FILESTOGET_MIN  256
     1427#define FILESTOGET_MAX  4096
     1428
    14231429DATADEF ULONG ulCnrType, FilesToGet, AutoviewHeight, TreeWidth, FM3UL;
    14241430DATADEF long prnwidth, prnlength, prntmargin, prnbmargin, prnlmargin,
  • trunk/dll/init.c

    r784 r789  
    3030  13 Aug 07 SHL Move #pragma alloc_text to end for OpenWatcom compat
    3131  18 Aug 07 JBS Added code to read Details* keys from the INI file (Ticket 118)
     32  19 Aug 07 SHL Ensure FilesToGet in valid range
    3233
    3334***********************************************************************/
     
    912913    fShowTarget = fDrivebarHelp = fCheckMM = TRUE;
    913914  ulCnrType = CCS_EXTENDSEL;
    914   FilesToGet = 10240;
     915  FilesToGet = FILESTOGET_MIN;
    915916  AutoviewHeight = 48;
    916917  strcpy(printer, "PRN");
     
    12711272                      &size);
    12721273  size = sizeof(ULONG);
    1273   PrfQueryProfileData(fmprof, appname, "FilesToGet", (PVOID) & FilesToGet,
    1274                       &size);
     1274  PrfQueryProfileData(fmprof, appname, "FilesToGet", (PVOID)&FilesToGet,
     1275                      &size);
     1276  if (FilesToGet < FILESTOGET_MIN)
     1277    FilesToGet = FILESTOGET_MIN;
     1278  else if (FilesToGet > FILESTOGET_MAX)
     1279    FilesToGet = FILESTOGET_MAX;
    12751280  size = sizeof(BOOL);
    12761281  PrfQueryProfileData(fmprof, FM3Str, "AutoView", (PVOID) & fAutoView, &size);
  • trunk/dll/mainwnd.c

    r787 r789  
    4040  18 Aug 07 SHL Rework UM_FILLSETUPLIST for new setups storage
    4141  19 Aug 07 SHL Move #pragma alloc_text to end of file for OpenWatcom
     42  19 Aug 07 SHL Rework SaveDirCnrState to return better error info
    4243
    4344***********************************************************************/
     
    26332634 * @param hwndClient Client window handle
    26342635 * @param pszStateName State name to save, NULL to save global state
    2635  * @returns TRUE if one or more directory container windows were saved
     2636 * @returns Number of directory container windows that were saved or -1 if error
    26362637 * @seealso RestoreDirCnrState
    26372638 */
     
    26392640#define STATE_NAME_MAX_BYTES    256
    26402641
    2641 BOOL SaveDirCnrState(HWND hwndClient, PSZ pszStateName)
     2642INT SaveDirCnrState(HWND hwndClient, PSZ pszStateName)
    26422643{
    26432644  HENUM henum;
     
    26482649  CHAR szDir[CCHMAXPATH];
    26492650  SWP swp;
    2650   BOOL fSaved = FALSE;
     2651  INT nSaved = 0;
    26512652  DIRCNRDATA *dcd;
    26522653
     
    26562657    if (strlen(pszStateName) > sizeof(szPrefix) - 2) {
    26572658      Runtime_Error(pszSrcFile, __LINE__, "SaveDirCnrState");
    2658       return fSaved;;
     2659      return -1;
    26592660    }
    26602661    sprintf(szPrefix, "%s.", pszStateName);
     
    27082709            sprintf(szKey, "%sDirCnrDir.%lu", szPrefix, numsaves++);
    27092710            PrfWriteProfileString(fmprof, FM3Str, szKey, szDir);
    2710             fSaved = TRUE;
     2711            nSaved++;
    27112712          }
    27122713        }
     
    27162717  WinEndEnumWindows(henum);
    27172718
    2718   if (fSaved) {
     2719  if (nSaved) {
    27192720    if (WinQueryWindowPos(hwndTree, &swp)) {
    27202721      sprintf(szKey, "%sLastTreePos", szPrefix);
     
    27282729  }
    27292730
    2730   return fSaved;
     2731  return nSaved;
    27312732}
    27322733
     
    41744175        if (SHORT1FROMMP(mp1) == IDM_SAVEDIRCNRSTATE) {
    41754176          // Save
    4176           if (SaveDirCnrState(hwnd, szStateName)) {
     4177          INT nSaved = SaveDirCnrState(hwnd, szStateName);
     4178          if (nSaved > 0) {
    41774179            INT ret = add_setup(szStateName);
    41784180            if (ret == 0) {
     
    41894191          }
    41904192          else {
    4191             saymsg(MB_ENTER | MB_ICONASTERISK, hwnd,
     4193            saymsg(MB_ENTER | MB_ICONASTERISK,
     4194                   hwnd,
    41924195                   GetPString(IDS_WARNINGTEXT),
    4193                    "\"%s\" state save failed", szStateName);    // 15 Apr 07 SHL failed
     4196                   nSaved == 0 ?
     4197                     "Nothing to save" :
     4198                     "State data save failed");
    41944199            WinSetWindowText(hwndStatelist, GetPString(IDS_STATETEXT));
    41954200          }
  • trunk/dll/notebook.c

    r783 r789  
    1717  03 Aug 07 GKY Enlarged and made setable everywhere Findbuf (speed file loading)
    1818  13 Aug 07 SHL Move #pragma alloc_text to end for OpenWatcom compat
    19   13 Aug 07 SHL Rework FileToGet min/max to match how DosFindFirst/Next works
     19  13 Aug 07 SHL Rework FilesToGet min/max to match how DosFindFirst/Next works
     20  19 Aug 07 SHL Sync with SaveDirCnrState mods
    2021
    2122***********************************************************************/
     
    3233#include "fm3dlg.h"
    3334#include "fm3str.h"
    34 
    35 #define FILESTOGET_MIN  256
    36 #define FILESTOGET_MAX  4096
    3735
    3836#pragma data_seg(DATA2)
     
    314312                        &fForceLower, sizeof(BOOL));
    315313    {
    316       ULONG temp = 0;
    317 
    318314      WinSendDlgItemMsg(hwnd, CFGS_FILESTOGET, SPBM_QUERYVALUE,
    319                         MPFROMP(&temp), MPFROM2SHORT(0, SPBQ_DONOTUPDATE));
    320       if (temp < FILESTOGET_MIN)
    321         temp = FILESTOGET_MIN;
    322       else if (temp > FILESTOGET_MAX)
    323         temp = FILESTOGET_MAX;
    324       FilesToGet = temp;
     315                        MPFROMP(&FilesToGet), MPFROM2SHORT(0, SPBQ_DONOTUPDATE));
     316      if (FilesToGet < FILESTOGET_MIN)
     317        FilesToGet = FILESTOGET_MIN;
     318      else if (FilesToGet > FILESTOGET_MAX)
     319        FilesToGet = FILESTOGET_MAX;
    325320      PrfWriteProfileData(fmprof,
    326321                          appname, "FilesToGet", &FilesToGet, sizeof(ULONG));
     
    11051100        fSyncUpdates = dummy;
    11061101        if (hwndMain && !strcmp(realappname, FM3Str)) {
    1107           if (SaveDirCnrState(hwndMain, GetPString(IDS_FM2TEMPTEXT))) {
    1108             PostMsg(MainObjectHwnd, UM_RESTORE, MPVOID, MPFROMLONG(2L));
     1102          if (SaveDirCnrState(hwndMain, GetPString(IDS_FM2TEMPTEXT)) > 0) {
     1103            PostMsg(MainObjectHwnd, UM_RESTORE, MPVOID, MPFROMLONG(2));
    11091104            PostMsg(hwndMain, UM_RESTORE, MPVOID, MPVOID);
    11101105          }
     
    26422637                        &detailsattr, sizeof(BOOL));
    26432638    if (hwndMain) {
    2644       if (SaveDirCnrState(hwndMain, GetPString(IDS_FM2TEMPTEXT))) {
    2645         PostMsg(MainObjectHwnd, UM_RESTORE, MPVOID, MPFROMLONG(2L));
     2639      if (SaveDirCnrState(hwndMain, GetPString(IDS_FM2TEMPTEXT)) > 0) {
     2640        PostMsg(MainObjectHwnd, UM_RESTORE, MPVOID, MPFROMLONG(2));
    26462641        PostMsg(hwndMain, UM_RESTORE, MPVOID, MPVOID);
    26472642      }
  • trunk/dll/walkem.c

    r787 r789  
    1919  20 Apr 07 SHL Avoid spurious add_udir error reports
    2020  16 Aug 07 SHL Update add_setups for ticket# 109
     21  19 Aug 07 SHL Correct load_setups error reporting
    2122
    2223***********************************************************************/
     
    171172    ERRORID eid = WinGetLastError((HAB)0);
    172173    if ((eid & 0xffff) != PMERR_NOT_IN_IDX) {
    173       Runtime_Error(pszSrcFile, __LINE__, "PrfQueryProfileSize returned %u", eid);
    174       return;
    175     }
     174      // Get error info back
     175      PrfQueryProfileSize(fmprof, FM3Str, pszLastSetups, &ulDataBytes);
     176      Win_Error(HWND_DESKTOP, HWND_DESKTOP, pszSrcFile, __LINE__, "PrfQueryProfileSize");
     177    }
     178    else
     179      fSetupsLoaded = TRUE;             // Nothing saved
     180    return;
    176181  }
    177182
Note: See TracChangeset for help on using the changeset viewer.