|
|
/*===========================================================================*/ /* Copyright (c) 1987 - 1988, Future Soft Engineering, Inc. */ /* Houston, Texas */ /*===========================================================================*/
#define NOGDICAPMASKS TRUE
#define NOVIRTUALKEYCODES TRUE
#define NOICONS TRUE
#define NOKEYSTATES TRUE
#define NOSYSCOMMANDS TRUE
#define NOATOM TRUE
#define NOCLIPBOARD TRUE
#define NODRAWTEXT TRUE
#define NOMINMAX TRUE
#define NOOPENFILE TRUE
#define NOSCROLL TRUE
#define NOHELP TRUE
#define NOPROFILER TRUE
#define NODEFERWINDOWPOS TRUE
#define NOPEN TRUE
#define NO_TASK_DEFINES TRUE
#define NOLSTRING TRUE
#define WIN31
#include <windows.h>
#include <port1632.h>
#include "dcrc.h"
#include "dynacomm.h"
#include "task.h"
#include "video.h"
#include <stdlib.h> /* adding for _searchenv and exit crt -sdj*/
VOID NEAR PASCAL DestroyWindows() { if(hdbmyControls) DestroyWindow(hdbmyControls); if(hdbXferCtrls) DestroyWindow(hdbXferCtrls); if(hTermWnd) DestroyWindow(hTermWnd); }
/*---------------------------------------------------------------------------*/ /* WinMain() - entry point from Windows [mbb] */ /*---------------------------------------------------------------------------*/
int APIENTRY WinMain(HANDLE hInst, HANDLE hPrevInst, LPSTR lpCmdLine, INT nCmdShow) { CHAR errmsg[115],caption[18]; VOID (APIENTRY *lpfnRegisterPenApp)(WORD, BOOL) = NULL;
readDateTime(startTimer); trmParams.comDevRef = ITMNOCOM;
if(!initConnectors(TRUE)) return (FALSE);
/* Added 02/2591 w-dougw check that all windows are created. */ if(!initWindows(hInstance, hPrevInstance, cmdShow)) { LoadString(hInstance,STR_ERRCAPTION,caption,sizeof(caption)); LoadString(hInstance,STR_OUTOFMEMORY,errmsg,79); MessageBox(NULL,errmsg,caption,MB_ICONHAND|MB_SYSTEMMODAL); return(FALSE); } initDialogs(); if(!setup()) { LoadString(hInstance,STR_ERRCAPTION,caption,sizeof(caption)); LoadString(hInstance,STR_OUTOFMEMORY,errmsg,79); MessageBox(NULL,errmsg,caption,MB_ICONHAND|MB_SYSTEMMODAL); return(FALSE); } DEBOUT("Calling: %s\n","readCmdLine()"); readCmdLine(lpszCmdLine); DEBOUT("Outof: %s\n","readCmdLine()");
DEBOUT("Calling: %s\n","PrintFileInit()"); PrintFileInit(); /* jtfterm */ DEBOUT("Outof: %s\n","PrintFileInit()");
/* Register as a good little pen-windows app
*/ /* NOTE**** have to confirm that this is the way to go GetSystemMet RC-sdj*/ /* added typecasting of (HANDLE) to param 1 */ if (lpfnRegisterPenApp = GetProcAddress((HANDLE)GetSystemMetrics(SM_PENWINDOWS), "RegisterPenApp")) (*lpfnRegisterPenApp)(1, TRUE);
DEBOUT("Calling: %s\n","mainProcess()"); mainProcess(); /* now load _WINMAIN segment */ DEBOUT("Outof: %s\n","mainProcess()");
/* Make sure to de-register if you register
*/ if (lpfnRegisterPenApp) (*lpfnRegisterPenApp)(1, FALSE);
PrintFileShutDown(); /* jtfterm */
DestroyWindow(hdbXferCtrls); /* rjs swat */ DestroyWindow(hdbmyControls); /* jtf 3.33 */ DestroyWindow(hItWnd); /* rjs swat */
freeItResources();
exit(msg.wParam); // ExitProcess((DWORD)msg.wParam); should this be used instead of exit()?-sdj
}
/*---------------------------------------------------------------------------*/ /* initWndClass() - [mbb] */ /*---------------------------------------------------------------------------*/
BOOL initWndClass() { WNDCLASS wndClass;
wndClass.style = CS_HREDRAW | CS_VREDRAW; wndClass.lpfnWndProc = DC_WndProc; wndClass.cbClsExtra = 0; wndClass.cbWndExtra = 0; wndClass.hInstance = hInst; wndClass.hIcon = (HICON) NULL; wndClass.hCursor = LoadCursor(NULL, IDC_ARROW); wndClass.hbrBackground = (HBRUSH)(COLOR_BACKGROUND+1); wndClass.lpszMenuName = (LPSTR) szAppName_private; wndClass.lpszClassName = (LPSTR) szAppName_private;
if(!RegisterClass((LPWNDCLASS) &wndClass)) /* register DYNACOMM class */ return(FALSE);
wndClass.style = CS_DBLCLKS; /* jtf 3.21 | CS_HREDRAW | CS_VREDRAW; */ wndClass.lpfnWndProc = TF_WndProc; wndClass.hIcon = (HICON) NULL; wndClass.hCursor = LoadCursor(NULL, IDC_IBEAM); wndClass.hbrBackground = (HBRUSH) NULL; wndClass.lpszMenuName = (LPSTR) NULL; wndClass.lpszClassName = (LPSTR) DC_WNDCLASS;
if(!RegisterClass((LPWNDCLASS) &wndClass)) /* register TERMINAL class */ return(FALSE);
return(TRUE); }
/*---------------------------------------------------------------------------*/ /* initPort () - Initialize hTE text rectangles and init thePort */ /* thePort is always 0 or an active DC of hTermWnd */ /* portLocks is count of number of un'releasePort'ed getPort calls */
extern BOOL insertionPoint;
VOID initPort () { insertionPoint = TRUE; thePort = 0; portLocks = 0; hTE.active = TRUE; hTE.selStart = hTE.selEnd = MAXROWCOL;
/* Added 02/22/91 for win 3.1 common dialog interface */ hDevNames = NULL; hDevMode = NULL; }
/*---------------------------------------------------------------------------*/ /* initIcon() */ /*---------------------------------------------------------------------------*/
VOID APIENTRY nextFlash();
VOID initIcon() { CHAR temp[10];
icon.hIcon = LoadIcon(hInst, MAKEINTRESOURCE(ICO_DYNACOMM));
icon.flash = FALSE;
icon.dx = GetSystemMetrics(SM_CXICON)/16; icon.dy = GetSystemMetrics(SM_CYICON)/16;
}
/*---------------------------------------------------------------------------*/ /* createWindows() - Determine tube size and create all Windows. */ /*---------------------------------------------------------------------------*/
BOOL createWindows(cmdShow) INT cmdShow; { INT ndx; HMENU hSysMenu; BYTE work[80], work1[80], work2[80];
LoadString(hInst, STR_APPNAME, (LPSTR) work, MINRESSTR); strcpy(work+strlen(work), " - "); LoadString(hInst, STR_TERMINAL, (LPSTR) work+strlen(work), MINRESSTR);
if(!(hItWnd = CreateWindow((LPSTR) szAppName_private, (LPSTR) work, WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN, CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, (HWND) NULL, (HMENU) NULL, (HANDLE) hInst, (LPSTR) NULL))) return(FALSE);
LoadString(hInst, STR_INI_MAXIMIZED, (LPSTR) work, MINRESSTR); if(!GetProfileInt((LPSTR) szAppName_private, (LPSTR) work, 0) || (cmdShow == SW_SHOWMINNOACTIVE) || (cmdShow == SW_SHOWMINIMIZED) || (cmdShow == SW_MINIMIZE)) { ShowWindow(hItWnd, cmdShow); } else ShowWindow(hItWnd, SW_SHOWMAXIMIZED);
if(!(hdbmyControls = CreateDialog(hInst, getResId(IDDBMYCONTROLS), hItWnd, dbmyControls))) { return(FALSE); }
for(ndx = 0; ndx < DCS_NUMFKEYS; ndx += 1) /* mbbx 2.00: moved from hidemyControls... */ { fKeyHandles[ndx] = GetDlgItem(hdbmyControls, IDFK1 + ndx); DEBOUT("createWindows: fKeyHandles[]=%lx from GetDlgItem()\n",fKeyHandles[ndx]); } LoadString(hInst, STR_TERMINAL, (LPSTR) work, MINRESSTR); if(!(hTermWnd = CreateWindow((LPSTR) DC_WNDCLASS, (LPSTR) work, /* Removed WS_THICKFRAME jtf 3.21 */ WS_CHILD | WS_VSCROLL | WS_HSCROLL | WS_CLIPSIBLINGS | CS_BYTEALIGNWINDOW, 0, 0, 0, 0, hItWnd, (HMENU) NULL, (HANDLE) hInst, (LPSTR) NULL))) return(FALSE);
/* jtf 3.33 hSysMenu = GetSystemMenu(hTermWnd, FALSE);
for(ndx = GetMenuItemCount(hSysMenu)-1; ndx >= 0; ndx -= 1) { if(GetMenuString(hSysMenu, ndx, (LPSTR) work, 80, MF_BYPOSITION)) { sscanf(work, "%s %s", work1, work2); sprintf(work, "%s\t xxxxCtrl+%s", work1, work2+4); ChangeMenu(hSysMenu, ndx, (LPSTR) work, GetMenuItemID(hSysMenu, ndx), MF_CHANGE | MF_BYPOSITION | GetMenuState(hSysMenu, ndx, MF_BYPOSITION)); } } */
if(!(hdbXferCtrls = CreateDialog(hInst, getResId(IDDBXFERCTRLS), hTermWnd, dbmyControls))) return(FALSE); /* mbbx 1.04 */ xferCtlStop = GetDlgItem(hdbXferCtrls, IDSTOP); /* mbbx 2.00: moved from hidemyControls()... */ xferCtlPause = GetDlgItem(hdbXferCtrls, IDPAUSE); xferCtlScale = GetDlgItem(hdbXferCtrls, IDSCALE); showXferCtrls(NULL); }
/*---------------------------------------------------------------------------*/ /* sizeWindows() - */ /*---------------------------------------------------------------------------*/
VOID sizeWindows() { RECT fKeysRect; RECT ctrlsRect; RECT termRect;
setDefaultFonts();
GetWindowRect(hdbmyControls, (LPRECT) &fKeysRect); GetWindowRect(fKeyHandles[0], (LPRECT) &ctrlsRect); /* mbbx 2.00: fkeys... */ MoveWindow(hdbmyControls, 0, fKeysRect.top, fKeysRect.right, fKeysHeight = ((ctrlsRect.bottom - ctrlsRect.top) * 2), FALSE);
GetClientRect(hItWnd, (LPRECT) &fKeysRect); /* mbbx 2.00: may not init maximized... */ sizeFkeys(MAKELONG(fKeysRect.right, fKeysRect.bottom));
GetWindowRect(hdbXferCtrls, (LPRECT) &ctrlsRect); /* mbbx 1.04: fkeys... */ ctrlsHeight = ctrlsRect.bottom - ctrlsRect.top;
initChildSize(&termRect); MoveWindow(hTermWnd, 0, 0, termRect.right, termRect.bottom, FALSE); /* jtf 3.21 */ } /*---------------------------------------------------------------------------*/ /* initWindows() - */ /*---------------------------------------------------------------------------*/
BOOL initWindows(hInstance, hPrevInstance, cmdShow) HANDLE hInstance; HANDLE hPrevInstance; INT cmdShow; { hInst = hInstance;
/* Added 02/26/91 for window existence */ hItWnd = NULL; hdbmyControls = NULL; hTermWnd = NULL; hdbXferCtrls = NULL; hEdit = NULL; fKeyHdl = NULL;
LoadString(hInst, STR_APPNAME_PRIVATE, (LPSTR) szAppName_private, 20); LoadString(hInst, STR_APPNAME, (LPSTR) szAppName, 20); LoadString(hInst, STR_DEVELOPER, (LPSTR) szMessage, 80); LoadString(hInst, STR_NOMEMORY,(LPSTR)NoMemStr,sizeof(NoMemStr)); /* rjs msoft ??? */
setDefaultAttrib(TRUE); /* mbbx 1.04: ...szAppName loaded */
if(!hPrevInstance) { if(!initWndClass()) /* mbbx 1.04 ... */ return(FALSE); }
initPort(); initIcon();
theBrush = GetStockObject (WHITE_BRUSH); blackBrush = GetStockObject (BLACK_BRUSH);
if(!createWindows(cmdShow)) return(FALSE);
sizeWindows();
maxScreenLine = MAXSCREENLINE; /* rjs moved from size windows */
hMenu = GetMenu(hItWnd);
return(TRUE); }
/*---------------------------------------------------------------------------*/ /* initDialogs() - Do all dialogbox initialization. [scf] */ /*---------------------------------------------------------------------------*/
VOID initDialogs() /* mbbx: remove ALL of these... */ { }
/*---------------------------------------------------------------------------*/ /* dbPortInit() - [mbb] */ /*---------------------------------------------------------------------------*/
BOOL APIENTRY dbPortInit(hDlg, message, wParam, lParam) /* mbbx 2.01.10 ... */ HWND hDlg; UINT message; WPARAM wParam; LONG lParam; { #ifdef WIN32
WORD temp_wParam; #endif
switch(message) { case WM_INITDIALOG: initDlgPos(hDlg); initComDevSelect(hDlg, ITMCONNECTOR, TRUE); return(TRUE);
case WM_COMMAND: switch(GET_WM_COMMAND_ID(wParam, lParam)) { case IDOK: break;
case ITMCONNECTOR: if(GET_WM_COMMAND_CMD(wParam, lParam) == LBN_DBLCLK) break; return(TRUE); } break;
default: return(FALSE); }
trmParams.comPortRef = getComDevSelect(hDlg, ITMCONNECTOR, &trmParams.newDevRef); trmParams.fResetDevice = TRUE; #ifdef WIN32
/* code in next block passes address of wParam to function*/ /* so we pass temp variable instead, since we need extract ID from wParam under WIN32*/ temp_wParam = GET_WM_COMMAND_ID(wParam, lParam); #endif
#ifdef ORGCODE
trmParams.comPortRef = getComDevSelect(hDlg, ITMCONNECTOR, (BYTE *) &wParam); #else
trmParams.comPortRef = getComDevSelect(hDlg, ITMCONNECTOR, (BYTE *) &temp_wParam); #endif
resetSerial(&trmParams, TRUE, TRUE, NULL); /* slc swat */ if(trmParams.comDevRef != trmParams.newDevRef) { exitSerial(); return(TRUE); } exitSerial();
#ifdef ORGCODE
EndDialog(hDlg, (INT) getComDevSelect(hDlg, ITMCONNECTOR, (BYTE *) &wParam)); #else
EndDialog(hDlg, (INT) getComDevSelect(hDlg, ITMCONNECTOR, (BYTE *) &temp_wParam)); #endif
return(TRUE); }
/*---------------------------------------------------------------------------*/ /* setProfileExtent() - [mbb] */ /*---------------------------------------------------------------------------*/
/* mbbx: 1.01 - moved from itutil1.c */
BOOL NEAR setProfileExtent(section, extent) /* mbbx 2.00: NEAR call... */ BYTE *section; BYTE *extent; { BOOL setProfileExtent = FALSE; BYTE str[80]; BYTE temp[80];
if(!GetProfileString((LPSTR) section, (LPSTR) extent, (LPSTR) NULL_STR, (LPSTR) temp, 80)) { strcpy(temp, extent); AnsiLower((LPSTR) temp); sprintf(str, "%s.exe ^.%s", szAppName_private, temp); AnsiLower((LPSTR) str); WriteProfileString((LPSTR) section, (LPSTR) temp, (LPSTR) str); setProfileExtent = TRUE; }
return(setProfileExtent); }
/*---------------------------------------------------------------------------*/ /* initFileDocData() - [mbb] */ /*---------------------------------------------------------------------------*/
BOOL NEAR initFileDocData(fileType, strResID, fileExt, szSection) /* mbbx 2.00 ... */ FILEDOCTYPE fileType; WORD strResID; BYTE *fileExt; BYTE *szSection; { BYTE work1[MINRESSTR], work2[80];
LoadString(hInst, strResID, (LPSTR) work1, MINRESSTR); GetProfileString((LPSTR) szAppName_private, (LPSTR) work1, (LPSTR) NULL_STR, (LPSTR) work2, 80);
getDataPath(fileType, fileDocData[fileType].filePath, work2);
strcpy(fileDocData[fileType].fileExt, fileExt); if(!getFileType(work2, fileDocData[fileType].fileExt)) strcpy(work2, fileDocData[fileType].fileExt);
strcpy(fileDocData[fileType].fileName, fileDocData[fileType].fileExt+1);
if(work2[strlen(work2)-1] != '*') return(setProfileExtent(szSection, fileDocData[fileType].fileExt+3));
return(FALSE); }
/*---------------------------------------------------------------------------*/ /* initProfileData() - [mbb] */ /*---------------------------------------------------------------------------*/
#define DEFBUFFERLINES 100 /* mbbx 1.10... */
VOID initProfileData() /* mbbx: 1.01 ... */ { BYTE str[MINRESSTR], str2[MINRESSTR], portName[16]; INT ndx; FARPROC lpdbPortInit; BOOL notify;
LoadString(hInst, STR_INI_PORT, (LPSTR) str, MINRESSTR); if(!GetProfileString((LPSTR) szAppName_private, (LPSTR) str, (LPSTR) NULL_STR, (LPSTR) portName, 5)) { trmParams.comDevRef = ITMNOCOM; /* jtf 3.33 */ trmParams.speed = 1200; /* jtf 3.33 */ trmParams.dataBits = ITMDATA8; /* jtf 3.33 */ trmParams.stopBits = ITMSTOP1; /* jtf 3.33 */ trmParams.parity = ITMNOPARITY; /* jtf 3.33 */ if((ndx = doSettings(IDDBPORTINIT, dbPortInit)) != -1) /* mbbx 2.01.10 ... */ { LoadString(hInst, (ndx > 0) ? STR_COM : STR_COM_CONNECT, (LPSTR) str2, MINRESSTR); sprintf(portName, str2, ndx); WriteProfileString((LPSTR) szAppName_private, (LPSTR) str, (LPSTR) portName); } }
LoadString(hInst, STR_INI_SWAP, (LPSTR) str, MINRESSTR); if((ndx = GetProfileInt((LPSTR) szAppName_private, (LPSTR) str, 0)) > 0) *taskState.string = sprintf(taskState.string+1, "%d", SetSwapAreaSize(ndx));
LoadString(hInst, STR_INI_INTL, (LPSTR) str, MINRESSTR); LoadString(hInst, STR_INI_IDATE, (LPSTR) str2, MINRESSTR); intlData.iDate = GetProfileInt((LPSTR) str, (LPSTR) str2, 0); LoadString(hInst, STR_INI_SDATE, (LPSTR) str2, MINRESSTR); GetProfileString((LPSTR) str, (LPSTR) str2, (LPSTR) "/", (LPSTR) intlData.sDate, 2); LoadString(hInst, STR_INI_ITIME, (LPSTR) str2, MINRESSTR); intlData.iTime = GetProfileInt((LPSTR) str, (LPSTR) str2, 0); LoadString(hInst, STR_INI_STIME, (LPSTR) str2, MINRESSTR); GetProfileString((LPSTR) str, (LPSTR) str2, (LPSTR) ":", (LPSTR) intlData.sTime, 2); LoadString(hInst, STR_INI_S1159, (LPSTR) str2, MINRESSTR); GetProfileString((LPSTR) str, (LPSTR) str2, (LPSTR) "AM", (LPSTR) intlData.s1159, 4); LoadString(hInst, STR_INI_S2359, (LPSTR) str2, MINRESSTR); GetProfileString((LPSTR) str, (LPSTR) str2, (LPSTR) "PM", (LPSTR) intlData.s2359, 4);
LoadString(hInst, STR_INI_EXTENSIONS, (LPSTR) str, MINRESSTR); notify = initFileDocData(FILE_NDX_SETTINGS, STR_INI_SETTINGS, SETTINGS_FILE_TYPE, str); if(initFileDocData(FILE_NDX_TASK, STR_INI_TASK, TASK_FILE_TYPE, str)) notify = TRUE; if(initFileDocData(FILE_NDX_SCRIPT, STR_INI_SCRIPT, SCRIPT_FILE_TYPE, str)) notify = TRUE; if(initFileDocData(FILE_NDX_MEMO, STR_INI_MEMO, MEMO_FILE_TYPE, str)) notify = TRUE; if(initFileDocData(FILE_NDX_DATA, STR_INI_DATA, DATA_FILE_TYPE, str)) notify = TRUE; if(notify) #ifdef ORGCODE
SendMessage(0xFFFF, WM_WININICHANGE, 0, (LONG) ((LPSTR) str)); #else
SendMessage((HWND)0xFFFFFFFF, WM_WININICHANGE, 0, (LONG) ((LPSTR) str)); #endif
}
/*---------------------------------------------------------------------------*/ /* setup() - Reset all varibles, read settings file & emulation. [scf] */ /*---------------------------------------------------------------------------*/
BOOL setup() /* mbbx 2.00: no cmd line... */ { BYTE path[PATHLEN+1]; BYTE tmp1[TMPNSTR+1]; INT ndx; SetRect ((LPRECT) &cursorRect, 0, 0, 0, 0); vScrollShowing = TRUE; serNdx = 0; cursorTick = -1l; cursBlinkOn = FALSE; cursorOn = TRUE; activCursor = 1; prtFlag = FALSE; useScrap = FALSE; copiedTable = FALSE; *fKeyStr = 0; /* mbbx 2.00: fKeySeq... */ fKeyNdx = 1; scrapSeq = FALSE;
xferFlag = XFRNONE; xferPaused = FALSE; xferBreak = FALSE; /* mbbx 2.00: xfer ctrls */ xferEndTimer = 0; xferWaitEcho = FALSE; xferViewPause = 0; /* mbbx: auto line count */ xferViewLine = 0; xferPSChar = 0; /* mbbx 1.02: packet switching */ *strRXErrors = *strRXBytes = *strRXFname = *strRXFork = 0; taskInit(); keyMapInit(); /* mbbx 1.04: keymap */
debugFlg = FALSE; /* how does this get enabled??? */
mdmOnLine = FALSE; dialing = FALSE; answerMode = FALSE; protectMode = FALSE; /* mbbx: emulation state */ KER_getflag = FALSE; gotCommEvent = TRUE;
if((hemulKeyInfo = GlobalAlloc(GMEM_MOVEABLE | GMEM_ZEROINIT, (DWORD) SIZEOFEMULKEYINFO)) == NULL) return(FALSE);
initProfileData(); /* mbbx: 1.01 */
hTE.hText = NULL; setDefaults();
setFKeyLevel(1, FALSE); /* jtfterm */
termInitSetup(NULL);
strcpy(szMessage, szAppName); return(TRUE); }
/*---------------------------------------------------------------------------*/ /* readCmdLine() - [mbb] */ /*---------------------------------------------------------------------------*/
BOOL fileDocExist(fileType, filePath) /* mbbx 2.00: no forced extents... */ WORD fileType; BYTE *filePath; { BOOL fileDocExist; BYTE savePath[PATHLEN], testPath[PATHLEN]; BYTE OEMname[STR255]; /* jtf 3.20 */
strcpy(savePath, filePath); getDataPath(fileType, testPath, savePath); strcpy(testPath+strlen(testPath), savePath);
// JYF -- replace below two line with following if () to
// remove the use of AnsiToOem()
//
//AnsiToOem((LPSTR) testPath, (LPSTR) OEMname); /* jtf 3.20 */
//if(fileDocExist = fileExist(OEMname)) /* jtf 3.20 */
if (fileDocExist = fileExist(testPath)) strcpy(filePath, testPath);
return(fileDocExist); }
WORD NEAR getFileDocType(filePath) /* mbbx 2.00: no forced extents... */ BYTE *filePath; { BYTE fileExt[16]; WORD fileType;
*fileExt = 0; if(!getFileType(filePath, fileExt)) { forceExtension(filePath, NO_FILE_TYPE+2, FALSE); if(fileDocExist(FILE_NDX_DATA, filePath) || fileDocExist(FILE_NDX_SETTINGS, filePath)) return(FILE_NDX_SETTINGS); /* jtf 3.11 */ }
for(fileType = FILE_NDX_SETTINGS; fileType <= FILE_NDX_MEMO; fileType += 1) { if(*fileExt == 0) forceExtension(filePath, fileDocData[fileType].fileExt+2, TRUE); else if((fileType < FILE_NDX_MEMO) && (strcmp(fileDocData[fileType].fileExt+2, fileExt) != 0)) continue;
if(fileDocExist(FILE_NDX_DATA, filePath) || fileDocExist(fileType, filePath) || (*fileExt != 0)) return(fileType); }
return(FILE_NDX_DATA); }
BOOL NEAR initTermFile(filePath) /* mbbx 2.00 ... */ BYTE *filePath; { getDataPath(FILE_NDX_SETTINGS, fileDocData[FILE_NDX_SETTINGS].filePath, filePath);
LoadString(hInst, STR_TERMINAL, (LPSTR) termData.title, MINRESSTR); /* mbbx 2.00: no forced extents... */ return(termFile(fileDocData[FILE_NDX_SETTINGS].filePath, filePath, fileDocData[FILE_NDX_SETTINGS].fileExt, termData.title, TF_DEFTITLE)); }
VOID NEAR readCmdLine(lpszCmdLine) LPSTR lpszCmdLine; { INT ndx, ndx2; BYTE filePath[PATHLEN]; BYTE tmpFilePath[PATHLEN]; INT nEditWnd = 0; BYTE OEMname[STR255]; /* jtf 3.20 */ BYTE work[STR255]; /* jtf 3.28 */ BYTE work1[STR255]; /* jtf 3.28 */ INT testFlag; saveFileType = FILE_NDX_SETTINGS; /* jtf 3.11 */
AnsiUpper(lpszCmdLine); for(ndx = 0; lpszCmdLine[ndx] != 0; ) /* mbbx 2.00 ... */ { while(lpszCmdLine[ndx] == 0x20) ndx += 1; if(lpszCmdLine[ndx] == 0) break;
for(ndx2 = 0; (filePath[ndx2] = lpszCmdLine[ndx]) != 0; ndx2 += 1) { ndx += 1; if(filePath[ndx2] == 0x20) { filePath[ndx2] = 0; break; } } strcpy(work1,filePath); switch(ndx2 = getFileDocType(filePath)) /* mbbx 2.00: term init... */ { case FILE_NDX_SETTINGS: if(!activTerm) initTermFile(filePath); break; } }
if ((!activTerm) && (lstrlen((LPSTR)lpszCmdLine)>0) ) { LoadString(hInst, STRERRNOFILE, (LPSTR) work, STR255-1); /* jtf 3.15 */ strcpy(filePath,work1); forceExtension(filePath, SETTINGS_FILE_TYPE+2, FALSE); sprintf(work1, work, filePath); testFlag = MessageBox(GetActiveWindow(), (LPSTR) work1, (LPSTR) szAppName, MB_OKCANCEL); if (testFlag==IDOK) { if (filePath[1]==':') { filePath[0]='A'; } else { strcpy(work,filePath); strcpy(filePath,"A:"); strcpy(filePath+2,work); } initTermFile(filePath); } } if(!activTerm) /* mbbx 2.00: term init... */ { LoadString(hInst, STR_AUTOLOAD, (LPSTR) filePath, PATHLEN); /* jtf 3.17 */
// JYF -- replace below two lines with the following if() to
// remove the use of AnsiToOem()
//
//AnsiToOem((LPSTR) filePath, (LPSTR) OEMname); /* jtf 3.20 */
//if (fileExist(OEMname)) /* jtf 3.20 */
if (fileExist(filePath)) initTermFile(filePath); else { _searchenv( filePath, "PATH", tmpFilePath ); if(strlen(tmpFilePath)>0) initTermFile(tmpFilePath); }
if(!activTerm) { if((nEditWnd -= 1) >= 0) termData.flags |= TF_HIDE; else saveFileType = FILE_NDX_SETTINGS;
activTerm = TRUE; resetSerial(&trmParams, TRUE, TRUE,0);
if(!(termData.flags & TF_HIDE)) showTerminal(TRUE, TRUE); } } if(!IsIconic(hItWnd)) /* rjs bugs 015 */ sizeTerm(0L); /* jtf 3.21 */ }
/*---------------------------------------------------------------------------*/ /* freeItResources()- Free up all windows resource b/4 back to DOS executive.*/ /* Internal house keeping. Note: Close that serial port. */ /*---------------------------------------------------------------------------*/
VOID freeItResources() { INT ndx;
exitSerial(); keyMapCancel(); /* mbbx 1.04: keymap */
DeleteObject(hTE.hFont); clearFontCache(); /* mbbx 2.00: redundant code... */
GlobalFree(hTE.hText); GlobalFree(hemulKeyInfo); }
|