Changeset 985 for trunk/dll/notebook.c


Ignore:
Timestamp:
Mar 1, 2008, 2:37:14 AM (17 years ago)
Author:
Gregg Young
Message:

Update sizes dialog (ticket 44); Make max command line length user settable (ticket 199); use xfree for free in most cases (ticket 212); initial code to check for valid ini file (ticket 102); Some additional refactoring and structure rework; Some documentation updates;

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/dll/notebook.c

    r972 r985  
    2929  16 Feb 08 SHL Restore SaveDirCnrState internal state save logic - accidentally removed
    3030  22 Feb 08 JBS Ticket 230: Fix/improve various code related to state or presparam values in the INI file.
     31  29 Feb 08 GKY Changes to enable user settable command line length
     32  29 Feb 08 GKY Use xfree where appropriate
    3133
    3234***********************************************************************/
     
    201203    PrfWriteProfileString(fmprof, appname, "DefArc", szDefArc);
    202204    {
    203       CHAR szCLBuf[MAXCOMLINESTRG], szPathBuf[CCHMAXPATH];
     205      CHAR *szCLBuf;
     206      CHAR szPathBuf[CCHMAXPATH];
    204207      PSZ pszWorkBuf;
    205208
    206       pszWorkBuf = xmalloc(MAXCOMLINESTRG, pszSrcFile, __LINE__);
    207       if (!pszWorkBuf)
     209      szCLBuf = xmalloc(MaxComLineStrg, pszSrcFile, __LINE__);
     210        if (!szCLBuf)
     211          return 0; //already complained
     212      pszWorkBuf = xmalloc(MaxComLineStrg, pszSrcFile, __LINE__);
     213      if (!pszWorkBuf) {
     214        xfree(szCLBuf);
    208215        return 0; //already complained
    209       WinQueryDlgItemText(hwnd, CFGA_VIRUS, MAXCOMLINESTRG, szCLBuf);
    210       szCLBuf[MAXCOMLINESTRG - 1] = 0;
     216      }
     217      WinQueryDlgItemText(hwnd, CFGA_VIRUS, MaxComLineStrg, szCLBuf);
     218      szCLBuf[MaxComLineStrg - 1] = 0;
    211219      if (strcmp(szCLBuf, virus)){
    212220        NormalizeCmdLine(pszWorkBuf, szCLBuf);
    213221        memcpy(virus, pszWorkBuf, strlen(pszWorkBuf) + 1);
    214         xfree(pszWorkBuf);
     222        xfree(pszWorkBuf);
     223        xfree(szCLBuf);
    215224        if (!strchr(virus, '%') && strlen(virus) > 3)
    216225          strcat(virus, " %p");
     
    376385  case WM_INITDLG:
    377386    WinSendDlgItemMsg(hwnd, CFGV_VIEWER, EM_SETTEXTLIMIT,
    378                       MPFROM2SHORT(MAXCOMLINESTRG, 0), MPVOID);
     387                      MPFROM2SHORT(MaxComLineStrg, 0), MPVOID);
    379388    WinSendDlgItemMsg(hwnd, CFGV_EDITOR, EM_SETTEXTLIMIT,
    380                       MPFROM2SHORT(MAXCOMLINESTRG, 0), MPVOID);
     389                      MPFROM2SHORT(MaxComLineStrg, 0), MPVOID);
    381390    WinSendDlgItemMsg(hwnd, CFGV_BINVIEW, EM_SETTEXTLIMIT,
    382                       MPFROM2SHORT(MAXCOMLINESTRG, 0), MPVOID);
     391                      MPFROM2SHORT(MaxComLineStrg, 0), MPVOID);
    383392    WinSendDlgItemMsg(hwnd, CFGV_BINED, EM_SETTEXTLIMIT,
    384                       MPFROM2SHORT(MAXCOMLINESTRG, 0), MPVOID);
     393                      MPFROM2SHORT(MaxComLineStrg, 0), MPVOID);
    385394    WinEnableWindow(WinWindowFromID(hwnd, CFGV_FIND), FALSE);
    386395    PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
     
    468477  case WM_CLOSE:
    469478    {
    470       CHAR szCLBuf[MAXCOMLINESTRG];
     479      CHAR *szCLBuf;
    471480      PSZ pszWorkBuf;
    472481
    473       pszWorkBuf = xmalloc(MAXCOMLINESTRG, pszSrcFile, __LINE__);
    474       if (!pszWorkBuf)
     482      szCLBuf = xmalloc(MaxComLineStrg, pszSrcFile, __LINE__);
     483        if (!szCLBuf)
     484          return 0; //already complained
     485      pszWorkBuf = xmalloc(MaxComLineStrg, pszSrcFile, __LINE__);
     486      if (!pszWorkBuf) {
     487        xfree(szCLBuf);
    475488        return 0; //already complained
    476       WinQueryDlgItemText(hwnd, CFGV_VIEWER, MAXCOMLINESTRG, szCLBuf);
    477       szCLBuf[MAXCOMLINESTRG - 1] = 0;
     489      }
     490      WinQueryDlgItemText(hwnd, CFGV_VIEWER, MaxComLineStrg, szCLBuf);
     491      szCLBuf[MaxComLineStrg - 1] = 0;
    478492      if (strcmp(szCLBuf, viewer)){
    479493        NormalizeCmdLine(pszWorkBuf, szCLBuf);
     
    482496          strcat(viewer, " %a");
    483497      }
    484       WinQueryDlgItemText(hwnd, CFGV_EDITOR, MAXCOMLINESTRG, szCLBuf);
    485       szCLBuf[MAXCOMLINESTRG - 1] = 0;
     498      WinQueryDlgItemText(hwnd, CFGV_EDITOR, MaxComLineStrg, szCLBuf);
     499      szCLBuf[MaxComLineStrg - 1] = 0;
    486500      if (strcmp(szCLBuf, editor)){
    487501        NormalizeCmdLine(pszWorkBuf, szCLBuf);
     
    490504          strcat(editor, " %a");
    491505      }
    492       WinQueryDlgItemText(hwnd, CFGV_BINVIEW, MAXCOMLINESTRG, szCLBuf);
    493       szCLBuf[MAXCOMLINESTRG - 1] = 0;
     506      WinQueryDlgItemText(hwnd, CFGV_BINVIEW, MaxComLineStrg, szCLBuf);
     507      szCLBuf[MaxComLineStrg - 1] = 0;
    494508      if (strcmp(szCLBuf, binview)){
    495509        NormalizeCmdLine(pszWorkBuf, szCLBuf);
     
    498512          strcat(binview, " %a");
    499513      }
    500       WinQueryDlgItemText(hwnd, CFGV_BINED, MAXCOMLINESTRG, szCLBuf);
    501       szCLBuf[MAXCOMLINESTRG - 1] = 0;
     514      WinQueryDlgItemText(hwnd, CFGV_BINED, MaxComLineStrg, szCLBuf);
     515      szCLBuf[MaxComLineStrg - 1] = 0;
    502516      if (strcmp(szCLBuf, bined)){
    503517        NormalizeCmdLine(pszWorkBuf, szCLBuf);
     
    507521      }
    508522      xfree(pszWorkBuf);
     523      xfree(szCLBuf);
    509524      PrfWriteProfileString(fmprof, appname, "Viewer", viewer);
    510525      PrfWriteProfileString(fmprof, appname, "Editor", editor);
     
    547562                      MPFROM2SHORT(CCHMAXPATH, 0), MPVOID);
    548563    WinSendDlgItemMsg(hwnd, CFGH_FTPRUN, EM_SETTEXTLIMIT,
    549                       MPFROM2SHORT(MAXCOMLINESTRG, 0), MPVOID);
     564                      MPFROM2SHORT(MaxComLineStrg, 0), MPVOID);
    550565    WinSendDlgItemMsg(hwnd, CFGH_HTTPRUN, EM_SETTEXTLIMIT,
    551                       MPFROM2SHORT(MAXCOMLINESTRG, 0), MPVOID);
     566                      MPFROM2SHORT(MaxComLineStrg, 0), MPVOID);
    552567    WinSendDlgItemMsg(hwnd, CFGH_MAILRUN, EM_SETTEXTLIMIT,
    553                       MPFROM2SHORT(MAXCOMLINESTRG, 0), MPVOID);
     568                      MPFROM2SHORT(MaxComLineStrg, 0), MPVOID);
    554569    WinSendDlgItemMsg(hwnd, CFGH_RUNMAILWORKDIR, EM_SETTEXTLIMIT,
    555570                      MPFROM2SHORT(CCHMAXPATH, 0), MPVOID);
     
    664679  case WM_CLOSE:
    665680    {
    666       CHAR szCLBuf[MAXCOMLINESTRG], szPathBuf[CCHMAXPATH];
     681      CHAR *szCLBuf;
     682      CHAR szPathBuf[CCHMAXPATH];
    667683      PSZ pszWorkBuf;
    668684
    669       pszWorkBuf = xmalloc(MAXCOMLINESTRG, pszSrcFile, __LINE__);
    670       if (!pszWorkBuf)
     685      szCLBuf = xmalloc(MaxComLineStrg, pszSrcFile, __LINE__);
     686        if (!szCLBuf)
     687          return 0; //already complained
     688      pszWorkBuf = xmalloc(MaxComLineStrg, pszSrcFile, __LINE__);
     689      if (!pszWorkBuf) {
     690        xfree(szCLBuf);
    671691        return 0; //already complained
     692      }
    672693      WinQueryDlgItemText(hwnd, CFGH_RUNHTTPWORKDIR, CCHMAXPATH, szPathBuf);
    673694      szPathBuf[CCHMAXPATH - 1] = 0;
     
    682703      bstrip(szPathBuf);
    683704      memcpy(mailrundir, szPathBuf, strlen(szPathBuf) + 1);
    684       WinQueryDlgItemText(hwnd, CFGH_FTPRUN, MAXCOMLINESTRG, szCLBuf);
    685       szCLBuf[MAXCOMLINESTRG - 1] = 0;
     705      WinQueryDlgItemText(hwnd, CFGH_FTPRUN, MaxComLineStrg, szCLBuf);
     706      szCLBuf[MaxComLineStrg - 1] = 0;
    686707      if (strcmp(szCLBuf, ftprun)){
    687708        NormalizeCmdLine(pszWorkBuf, szCLBuf);
    688709        memcpy(ftprun, pszWorkBuf, strlen(pszWorkBuf) + 1);
    689710      }
    690       WinQueryDlgItemText(hwnd, CFGH_HTTPRUN, MAXCOMLINESTRG, szCLBuf);
    691       szCLBuf[MAXCOMLINESTRG - 1] = 0;
     711      WinQueryDlgItemText(hwnd, CFGH_HTTPRUN, MaxComLineStrg, szCLBuf);
     712      szCLBuf[MaxComLineStrg - 1] = 0;
    692713      if (strcmp(szCLBuf, httprun)){
    693714        NormalizeCmdLine(pszWorkBuf, szCLBuf);
    694715        memcpy(httprun, pszWorkBuf, strlen(pszWorkBuf) + 1);
    695716      }
    696       WinQueryDlgItemText(hwnd, CFGH_MAILRUN, MAXCOMLINESTRG, szCLBuf);
    697       szCLBuf[MAXCOMLINESTRG - 1] = 0;
     717      WinQueryDlgItemText(hwnd, CFGH_MAILRUN, MaxComLineStrg, szCLBuf);
     718      szCLBuf[MaxComLineStrg - 1] = 0;
    698719      if (strcmp(szCLBuf, mailrun)){
    699720        NormalizeCmdLine(pszWorkBuf, szCLBuf);
     
    701722      }
    702723      xfree(pszWorkBuf);
     724      xfree(szCLBuf);
    703725      PrfWriteProfileString(fmprof, appname, "HttpRunDir", httprundir);
    704726      PrfWriteProfileString(fmprof, appname, "FtpRunDir", ftprundir);
     
    10651087  switch (msg) {
    10661088  case WM_INITDLG:
     1089    WinSendDlgItemMsg(hwnd, CFGG_CMDLNLNGTH, SPBM_SETTEXTLIMIT,
     1090                      MPFROMSHORT(8), MPVOID);
     1091    WinSendDlgItemMsg(hwnd, CFGG_CMDLNLNGTH, SPBM_OVERRIDESETLIMITS,
     1092                      MPFROMLONG(CMDLNLNGTH_MAX), MPFROMLONG(CMDLNLNGTH_MIN));
    10671093    PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
    10681094    break;
     
    10861112    WinCheckButton(hwnd, CFGG_CONFIRMTARGET, fConfirmTarget);
    10871113    WinSetDlgItemText(hwnd, CFGG_TARGETDIR, targetdir);
     1114    WinSendDlgItemMsg(hwnd, CFGG_CMDLNLNGTH, SPBM_SETCURRENTVALUE,
     1115                      MPFROMLONG(MaxComLineStrg), MPVOID);
    10881116    return 0;
    10891117
     
    11891217    fConfirmTarget = WinQueryButtonCheckstate(hwnd, CFGG_CONFIRMTARGET);
    11901218    PrfWriteProfileData(fmprof, appname, "ConfirmTarget",
    1191                         &fConfirmTarget, sizeof(BOOL));
     1219                        &fConfirmTarget, sizeof(BOOL));
     1220    {
     1221      WinSendDlgItemMsg(hwnd, CFGG_CMDLNLNGTH, SPBM_QUERYVALUE,
     1222                        MPFROMP(&MaxComLineStrg), MPFROM2SHORT(0, SPBQ_DONOTUPDATE));
     1223      if (MaxComLineStrg < CMDLNLNGTH_MIN)
     1224        MaxComLineStrg = CMDLNLNGTH_MIN;
     1225      else if (MaxComLineStrg > CMDLNLNGTH_MAX)
     1226        MaxComLineStrg = CMDLNLNGTH_MAX;
     1227      PrfWriteProfileData(fmprof,
     1228                          appname, "MaxComLineStrg", &MaxComLineStrg, sizeof(ULONG));
     1229    }
    11921230    break;
    11931231  }
     
    12001238  case WM_INITDLG:
    12011239    WinSendDlgItemMsg(hwnd, CFGC_COMPARE, EM_SETTEXTLIMIT,
    1202                       MPFROM2SHORT(MAXCOMLINESTRG, 0), MPVOID);
     1240                      MPFROM2SHORT(MaxComLineStrg, 0), MPVOID);
    12031241    WinSendDlgItemMsg(hwnd, CFGC_DIRCOMPARE, EM_SETTEXTLIMIT,
    1204                       MPFROM2SHORT(MAXCOMLINESTRG, 0), MPVOID);
     1242                      MPFROM2SHORT(MaxComLineStrg, 0), MPVOID);
    12051243    WinEnableWindow(WinWindowFromID(hwnd, CFGC_FIND), FALSE);
    12061244    PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
     
    12781316  case WM_CLOSE:
    12791317    {
    1280       CHAR szCLBuf[MAXCOMLINESTRG];
     1318      CHAR *szCLBuf;
    12811319      PSZ pszWorkBuf;
    12821320
    1283       pszWorkBuf = xmalloc(MAXCOMLINESTRG, pszSrcFile, __LINE__);
    1284       if (!pszWorkBuf)
     1321      szCLBuf = xmalloc(MaxComLineStrg, pszSrcFile, __LINE__);
     1322        if (!szCLBuf)
     1323          return 0; //already complained
     1324      pszWorkBuf = xmalloc(MaxComLineStrg, pszSrcFile, __LINE__);
     1325      if (!pszWorkBuf) {
     1326        xfree(szCLBuf);
    12851327        return 0; //already complained
    1286       WinQueryDlgItemText(hwnd, CFGC_DIRCOMPARE, MAXCOMLINESTRG, szCLBuf);
    1287         szCLBuf[MAXCOMLINESTRG - 1] = 0;
     1328      }
     1329      WinQueryDlgItemText(hwnd, CFGC_DIRCOMPARE, MaxComLineStrg, szCLBuf);
     1330        szCLBuf[MaxComLineStrg - 1] = 0;
    12881331        if (strcmp(szCLBuf, dircompare)){
    12891332          NormalizeCmdLine(pszWorkBuf, szCLBuf);
     
    12931336        }
    12941337      PrfWriteProfileString(fmprof, appname, "DirCompare", dircompare);
    1295       WinQueryDlgItemText(hwnd, CFGC_COMPARE, MAXCOMLINESTRG, szCLBuf);
    1296         szCLBuf[MAXCOMLINESTRG - 1] = 0;
    1297         if (strcmp(szCLBuf, compare)){
    1298           NormalizeCmdLine(pszWorkBuf, szCLBuf);
    1299           memcpy(compare, pszWorkBuf, strlen(pszWorkBuf) + 1);
    1300           if (!strchr(compare, '%') && strlen(compare) > 3)
    1301             strcat(compare, " %a");
    1302         }
     1338      WinQueryDlgItemText(hwnd, CFGC_COMPARE, MaxComLineStrg, szCLBuf);
     1339      szCLBuf[MaxComLineStrg - 1] = 0;
     1340      if (strcmp(szCLBuf, compare)){
     1341        NormalizeCmdLine(pszWorkBuf, szCLBuf);
     1342        memcpy(compare, pszWorkBuf, strlen(pszWorkBuf) + 1);
     1343        if (!strchr(compare, '%') && strlen(compare) > 3)
     1344          strcat(compare, " %a");
     1345      }
    13031346      xfree(pszWorkBuf);
     1347      xfree(szCLBuf);
    13041348      PrfWriteProfileString(fmprof, appname, "Compare", compare);
    13051349      break;
Note: See TracChangeset for help on using the changeset viewer.