Changeset 1160 for trunk/dll/uudecode.c


Ignore:
Timestamp:
Sep 5, 2008, 11:41:43 PM (17 years ago)
Author:
John Small
Message:

Ticket 187: Draft 1: Functions only

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/dll/uudecode.c

    r907 r1160  
    2525#define INCL_DOS
    2626#define INCL_WIN
    27 #define INCL_LONGLONG                   // dircnrs.h
     27#define INCL_LONGLONG                   // dircnrs.h
    2828
    2929#include "fm3dlg.h"
    3030#include "fm3str.h"
    31 #include "makelist.h"                   // AddToList
    32 #include "errutil.h"                    // Dos_Error...
    33 #include "strutil.h"                    // GetPString
     31#include "makelist.h"                   // AddToList
     32#include "errutil.h"                    // Dos_Error...
     33#include "strutil.h"                    // GetPString
     34#include "defview.h"
     35#include "uudecode.h"
    3436#include "fm3dll.h"
    3537
     
    4143
    4244/* single character decode */
    43 #define DEC(c)  (((c) - ' ') & 077)
     45#define DEC(c)  (((c) - ' ') & 077)
    4446
    4547int UUD(char *filename, CHAR * dest)
     
    5557  if (!in) {
    5658    saymsg(MB_CANCEL,
    57            HWND_DESKTOP,
    58            GetPString(IDS_ERRORTEXT),
    59            GetPString(IDS_COMPCANTOPENTEXT), filename);
     59           HWND_DESKTOP,
     60           GetPString(IDS_ERRORTEXT),
     61           GetPString(IDS_COMPCANTOPENTEXT), filename);
    6062    return ret;
    6163  }
     
    6668      fclose(in);
    6769      saymsg(MB_CANCEL,
    68              HWND_DESKTOP,
    69              GetPString(IDS_ERRORTEXT),
    70              GetPString(IDS_UUDNOBEGINTEXT), filename);
     70             HWND_DESKTOP,
     71             GetPString(IDS_ERRORTEXT),
     72             GetPString(IDS_UUDNOBEGINTEXT), filename);
    7173      return ret;
    7274    }
    7375    if (!strncmp(buf, "begin ", 6))
    7476      break;
    75   }                                     // for
     77  }                                     // for
    7678  *dest = 0;
    7779  sscanf(buf, "begin %o %259s", &mode, dest);
     
    103105    fclose(in);
    104106    saymsg(MB_CANCEL,
    105            HWND_DESKTOP,
    106            GetPString(IDS_ERRORTEXT),
    107            GetPString(IDS_UUDCANTOPENFORTEXT), dest, filename);
     107           HWND_DESKTOP,
     108           GetPString(IDS_ERRORTEXT),
     109           GetPString(IDS_UUDCANTOPENFORTEXT), dest, filename);
    108110    return ret;
    109111  }
     
    176178      wk = (WORKER *) mp2;
    177179      if (wk->li && wk->li->list && wk->li->list[0]) {
    178         WinSendDlgItemMsg(hwnd, MRG_TARGETNAME, EM_SETTEXTLIMIT,
    179                           MPFROM2SHORT(CCHMAXPATH, 0), MPVOID);
    180         PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
     180        WinSendDlgItemMsg(hwnd, MRG_TARGETNAME, EM_SETTEXTLIMIT,
     181                          MPFROM2SHORT(CCHMAXPATH, 0), MPVOID);
     182        PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
    181183      }
    182184      else
    183         WinDismissDlg(hwnd, 0);
     185        WinDismissDlg(hwnd, 0);
    184186    }
    185187    else
     
    199201      p = strrchr(wk->li->targetpath, '\\');
    200202      if (p)
    201         start = (p + 1) - wk->li->targetpath;
     203        start = (p + 1) - wk->li->targetpath;
    202204      WinSendDlgItemMsg(hwnd, MRG_TARGETNAME, EM_SETSEL,
    203                         MPFROM2SHORT(start, CCHMAXPATH), MPVOID);
     205                        MPFROM2SHORT(start, CCHMAXPATH), MPVOID);
    204206      for (x = 0; wk->li->list[x]; x++) {
    205         if (IsFile(wk->li->list[x]) == 1) {
    206           numfiles++;
    207           WinSendDlgItemMsg(hwnd, MRG_LISTBOX, LM_INSERTITEM,
    208                             MPFROM2SHORT(LIT_END, 0),
    209                             MPFROMP(wk->li->list[x]));
    210         }
     207        if (IsFile(wk->li->list[x]) == 1) {
     208          numfiles++;
     209          WinSendDlgItemMsg(hwnd, MRG_LISTBOX, LM_INSERTITEM,
     210                            MPFROM2SHORT(LIT_END, 0),
     211                            MPFROMP(wk->li->list[x]));
     212        }
    211213      }
    212214      WinCheckButton(hwnd, MRG_BINARY, (wk->li->type == IDM_MERGEBINARY));
    213215      if (!numfiles) {
    214         saymsg(MB_CANCEL | MB_ICONEXCLAMATION,
    215                hwnd,
    216                GetPString(IDS_SILLYERRORTEXT),
    217                GetPString(IDS_MERGEWASTETEXT));
    218         WinDismissDlg(hwnd, 0);
     216        saymsg(MB_CANCEL | MB_ICONEXCLAMATION,
     217               hwnd,
     218               GetPString(IDS_SILLYERRORTEXT),
     219               GetPString(IDS_MERGEWASTETEXT));
     220        WinDismissDlg(hwnd, 0);
    219221      }
    220222    }
     
    226228      switch (SHORT2FROMMP(mp1)) {
    227229      case LN_ENTER:
    228         {
    229           SHORT x;
    230           CHAR szBuffer[CCHMAXPATH];
    231 
    232           x = (SHORT) WinSendDlgItemMsg(hwnd, MRG_LISTBOX, LM_QUERYSELECTION,
    233                                         MPFROMSHORT(LIT_FIRST), MPVOID);
    234           if (x >= 0) {
    235             *szBuffer = 0;
    236             WinSendDlgItemMsg(hwnd, MRG_LISTBOX, LM_QUERYITEMTEXT,
    237                               MPFROM2SHORT(x, CCHMAXPATH), MPFROMP(szBuffer));
    238             if (*szBuffer)
    239               QuickEdit(hwnd, szBuffer);
    240           }
    241         }
    242         break;
     230        {
     231          SHORT x;
     232          CHAR szBuffer[CCHMAXPATH];
     233
     234          x = (SHORT) WinSendDlgItemMsg(hwnd, MRG_LISTBOX, LM_QUERYSELECTION,
     235                                        MPFROMSHORT(LIT_FIRST), MPVOID);
     236          if (x >= 0) {
     237            *szBuffer = 0;
     238            WinSendDlgItemMsg(hwnd, MRG_LISTBOX, LM_QUERYITEMTEXT,
     239                              MPFROM2SHORT(x, CCHMAXPATH), MPFROMP(szBuffer));
     240            if (*szBuffer)
     241              QuickEdit(hwnd, szBuffer);
     242          }
     243        }
     244        break;
    243245      }
    244246      break;
     
    252254  case UM_SETDIR:
    253255    PaintRecessedWindow(WinWindowFromID(hwnd, MRG_HELP), (HPS) 0, FALSE,
    254                         TRUE);
     256                        TRUE);
    255257    return 0;
    256258
     
    264266      wk = WinQueryWindowPtr(hwnd, QWL_USER);
    265267      if (wk) {
    266         CHAR filename[CCHMAXPATH];
    267 
    268         strcpy(filename, wk->li->targetpath);
    269         if (export_filename(HWND_DESKTOP, filename, FALSE) && *filename) {
    270           strcpy(wk->li->targetpath, filename);
    271           WinSetDlgItemText(hwnd, MRG_TARGETNAME, wk->li->targetpath);
    272         }
     268        CHAR filename[CCHMAXPATH];
     269
     270        strcpy(filename, wk->li->targetpath);
     271        if (export_filename(HWND_DESKTOP, filename, FALSE) && *filename) {
     272          strcpy(wk->li->targetpath, filename);
     273          WinSetDlgItemText(hwnd, MRG_TARGETNAME, wk->li->targetpath);
     274        }
    273275      }
    274276      break;
     
    276278    case MRG_REMOVE:
    277279      {
    278         SHORT x;
    279 
    280         x = (SHORT) WinSendDlgItemMsg(hwnd, MRG_LISTBOX, LM_QUERYSELECTION,
    281                                       MPFROMSHORT(LIT_FIRST), MPVOID);
    282         if (x >= 0)
    283           WinSendDlgItemMsg(hwnd, MRG_LISTBOX, LM_DELETEITEM,
    284                             MPFROMSHORT(x), MPVOID);
     280        SHORT x;
     281
     282        x = (SHORT) WinSendDlgItemMsg(hwnd, MRG_LISTBOX, LM_QUERYSELECTION,
     283                                      MPFROMSHORT(LIT_FIRST), MPVOID);
     284        if (x >= 0)
     285          WinSendDlgItemMsg(hwnd, MRG_LISTBOX, LM_DELETEITEM,
     286                            MPFROMSHORT(x), MPVOID);
    285287      }
    286288      break;
     
    289291    case MRG_TOP:
    290292      {
    291         SHORT x;
    292         CHAR szBuffer[CCHMAXPATH];
    293 
    294         x = (SHORT) WinSendDlgItemMsg(hwnd, MRG_LISTBOX, LM_QUERYSELECTION,
    295                                       MPFROMSHORT(LIT_FIRST), MPVOID);
    296         if (x >= 0) {
    297           *szBuffer = 0;
    298           WinSendDlgItemMsg(hwnd, MRG_LISTBOX, LM_QUERYITEMTEXT,
    299                             MPFROM2SHORT(x, CCHMAXPATH), MPFROMP(szBuffer));
    300           if (*szBuffer) {
    301             WinSendDlgItemMsg(hwnd, MRG_LISTBOX, LM_DELETEITEM,
    302                               MPFROMSHORT(x), MPVOID);
    303             if (SHORT1FROMMP(mp1) == MRG_TOP)
    304               WinSendDlgItemMsg(hwnd, MRG_LISTBOX, LM_INSERTITEM,
    305                                 MPFROM2SHORT(0, 0), MPFROMP(szBuffer));
    306             else
    307               WinSendDlgItemMsg(hwnd, MRG_LISTBOX, LM_INSERTITEM,
    308                                 MPFROM2SHORT(LIT_END, 0), MPFROMP(szBuffer));
    309           }
    310         }
     293        SHORT x;
     294        CHAR szBuffer[CCHMAXPATH];
     295
     296        x = (SHORT) WinSendDlgItemMsg(hwnd, MRG_LISTBOX, LM_QUERYSELECTION,
     297                                      MPFROMSHORT(LIT_FIRST), MPVOID);
     298        if (x >= 0) {
     299          *szBuffer = 0;
     300          WinSendDlgItemMsg(hwnd, MRG_LISTBOX, LM_QUERYITEMTEXT,
     301                            MPFROM2SHORT(x, CCHMAXPATH), MPFROMP(szBuffer));
     302          if (*szBuffer) {
     303            WinSendDlgItemMsg(hwnd, MRG_LISTBOX, LM_DELETEITEM,
     304                              MPFROMSHORT(x), MPVOID);
     305            if (SHORT1FROMMP(mp1) == MRG_TOP)
     306              WinSendDlgItemMsg(hwnd, MRG_LISTBOX, LM_INSERTITEM,
     307                                MPFROM2SHORT(0, 0), MPFROMP(szBuffer));
     308            else
     309              WinSendDlgItemMsg(hwnd, MRG_LISTBOX, LM_INSERTITEM,
     310                                MPFROM2SHORT(LIT_END, 0), MPFROMP(szBuffer));
     311          }
     312        }
    311313      }
    312314      break;
     
    318320    case IDM_HELP:
    319321      if (hwndHelp)
    320         WinSendMsg(hwndHelp, HM_DISPLAY_HELP,
    321                    MPFROM2SHORT(HELP_MERGE, 0), MPFROMSHORT(HM_RESOURCEID));
     322        WinSendMsg(hwndHelp, HM_DISPLAY_HELP,
     323                   MPFROM2SHORT(HELP_MERGE, 0), MPFROMSHORT(HM_RESOURCEID));
    322324      break;
    323325
     
    325327      wk = WinQueryWindowPtr(hwnd, QWL_USER);
    326328      if (wk) {
    327         BOOL append, binary;
    328         CHAR **list = NULL, **test, szBuffer[CCHMAXPATH];
    329         UINT numfiles = 0, numalloc = 0;
    330         INT error;
    331         SHORT x, y;
    332 
    333         *szBuffer = 0;
    334         WinQueryDlgItemText(hwnd, MRG_TARGETNAME, CCHMAXPATH, szBuffer);
    335         if (!*szBuffer) {
    336           DosBeep(50, 100);
    337           WinSetFocus(HWND_DESKTOP, WinWindowFromID(hwnd, MRG_TARGETNAME));
    338           break;
    339         }
    340         if (DosQueryPathInfo(szBuffer,
    341                              FIL_QUERYFULLNAME,
    342                              wk->li->targetpath, CCHMAXPATH)) {
    343           DosBeep(50, 100);
    344           WinSetFocus(HWND_DESKTOP, WinWindowFromID(hwnd, MRG_TARGETNAME));
    345           break;
    346         }
    347         WinSetDlgItemText(hwnd, MRG_TARGETNAME, szBuffer);
    348         append = WinQueryButtonCheckstate(hwnd, MRG_APPEND);
    349         binary = WinQueryButtonCheckstate(hwnd, MRG_BINARY);
    350         wk->li->type = (append && binary) ? IDM_MERGEBINARYAPPEND :
    351           (append) ? IDM_MERGETEXTAPPEND :
    352           (binary) ? IDM_MERGEBINARY : IDM_MERGETEXT;
    353         x = (SHORT) WinSendDlgItemMsg(hwnd,
    354                                       MRG_LISTBOX,
    355                                       LM_QUERYITEMCOUNT, MPVOID, MPVOID);
    356         for (y = 0; y < x; y++) {
    357           *szBuffer = 0;
    358           WinSendDlgItemMsg(hwnd,
    359                             MRG_LISTBOX,
    360                             LM_QUERYITEMTEXT,
    361                             MPFROM2SHORT(y, CCHMAXPATH), MPFROMP(szBuffer));
    362           if (*szBuffer) {
    363             error = AddToList(szBuffer, &list, &numfiles, &numalloc);
    364             if (error) {
    365               Runtime_Error(pszSrcFile, __LINE__, "AddToList");
    366               break;
    367             }
    368           }
    369         }
    370         if (numfiles && list && numfiles + 1 < numalloc) {
    371           test =
    372             xrealloc(list, sizeof(CHAR *) * (numfiles + 1), pszSrcFile,
    373                      __LINE__);
    374           if (test)
    375             list = test;
    376         }
    377         if (!list || !list[0]) {
    378           Runtime_Error2(pszSrcFile, __LINE__, IDS_NODATATEXT);
    379           break;
    380         }
    381         else {
    382           FreeList(wk->li->list);
    383           wk->li->list = list;
    384         }
     329        BOOL append, binary;
     330        CHAR **list = NULL, **test, szBuffer[CCHMAXPATH];
     331        UINT numfiles = 0, numalloc = 0;
     332        INT error;
     333        SHORT x, y;
     334
     335        *szBuffer = 0;
     336        WinQueryDlgItemText(hwnd, MRG_TARGETNAME, CCHMAXPATH, szBuffer);
     337        if (!*szBuffer) {
     338          DosBeep(50, 100);
     339          WinSetFocus(HWND_DESKTOP, WinWindowFromID(hwnd, MRG_TARGETNAME));
     340          break;
     341        }
     342        if (DosQueryPathInfo(szBuffer,
     343                             FIL_QUERYFULLNAME,
     344                             wk->li->targetpath, CCHMAXPATH)) {
     345          DosBeep(50, 100);
     346          WinSetFocus(HWND_DESKTOP, WinWindowFromID(hwnd, MRG_TARGETNAME));
     347          break;
     348        }
     349        WinSetDlgItemText(hwnd, MRG_TARGETNAME, szBuffer);
     350        append = WinQueryButtonCheckstate(hwnd, MRG_APPEND);
     351        binary = WinQueryButtonCheckstate(hwnd, MRG_BINARY);
     352        wk->li->type = (append && binary) ? IDM_MERGEBINARYAPPEND :
     353          (append) ? IDM_MERGETEXTAPPEND :
     354          (binary) ? IDM_MERGEBINARY : IDM_MERGETEXT;
     355        x = (SHORT) WinSendDlgItemMsg(hwnd,
     356                                      MRG_LISTBOX,
     357                                      LM_QUERYITEMCOUNT, MPVOID, MPVOID);
     358        for (y = 0; y < x; y++) {
     359          *szBuffer = 0;
     360          WinSendDlgItemMsg(hwnd,
     361                            MRG_LISTBOX,
     362                            LM_QUERYITEMTEXT,
     363                            MPFROM2SHORT(y, CCHMAXPATH), MPFROMP(szBuffer));
     364          if (*szBuffer) {
     365            error = AddToList(szBuffer, &list, &numfiles, &numalloc);
     366            if (error) {
     367              Runtime_Error(pszSrcFile, __LINE__, "AddToList");
     368              break;
     369            }
     370          }
     371        }
     372        if (numfiles && list && numfiles + 1 < numalloc) {
     373          test =
     374            xrealloc(list, sizeof(CHAR *) * (numfiles + 1), pszSrcFile,
     375                     __LINE__);
     376          if (test)
     377            list = test;
     378        }
     379        if (!list || !list[0]) {
     380          Runtime_Error2(pszSrcFile, __LINE__, IDS_NODATATEXT);
     381          break;
     382        }
     383        else {
     384          FreeList(wk->li->list);
     385          wk->li->list = list;
     386        }
    385387      }
    386388      WinDismissDlg(hwnd, 1);
    387389      break;
    388     }                                   // switch WM_COMMAND mp1
     390    }                                   // switch WM_COMMAND mp1
    389391    return 0;
    390   }                                     // switch msg
     392  }                                     // switch msg
    391393  return WinDefDlgProc(hwnd, msg, mp1, mp2);
    392394}
Note: See TracChangeset for help on using the changeset viewer.