Develop and Download Open Source Software

Browse Subversion Repository

Annotation of /branches/ttcomtester/teraterm/teraterm/teraterm.cpp

Parent Directory Parent Directory | Revision Log Revision Log


Revision 4357 - (hide annotations) (download) (as text)
Thu Mar 3 12:57:20 2011 UTC (13 years, 1 month ago) by maya
Original Path: trunk/teraterm/teraterm/teraterm.cpp
File MIME type: text/x-c++src
File size: 3768 byte(s)
インストーラでアプリケーションが起動中かどうかチェックするのに Mutex を使用するのをやめた
1 maya 3227 /* Tera Term
2     Copyright(C) 1994-1998 T. Teranishi
3     All rights reserved. */
4    
5     /* TERATERM.EXE, main */
6    
7     #include "stdafx.h"
8     #include "teraterm.h"
9     #include "tttypes.h"
10     #include "commlib.h"
11     #include "ttwinman.h"
12     #include "buffer.h"
13     #include "vtterm.h"
14     #include "vtwin.h"
15     #include "clipboar.h"
16     #include "ttftypes.h"
17     #include "filesys.h"
18     #include "telnet.h"
19     #include "tektypes.h"
20     #include "tekwin.h"
21     #include "ttdde.h"
22    
23     #include "teraapp.h"
24    
25     #include "compat_w95.h"
26    
27     #ifdef _DEBUG
28     #define new DEBUG_NEW
29     #undef THIS_FILE
30     static char THIS_FILE[] = __FILE__;
31     #endif
32    
33     BEGIN_MESSAGE_MAP(CTeraApp, CWinApp)
34     //{{AFX_MSG_MAP(CTeraApp)
35     //}}AFX_MSG_MAP
36     END_MESSAGE_MAP()
37    
38     CTeraApp::CTeraApp()
39     {
40     }
41    
42     // CTeraApp instance
43     CTeraApp theApp;
44    
45    
46    
47    
48    
49     // CTeraApp initialization
50     BOOL CTeraApp::InitInstance()
51     {
52 maya 3392 hInst = m_hInstance;
53     m_pMainWnd = new CVTWindow();
54     pVTWin = m_pMainWnd;
55     return TRUE;
56 maya 3227 }
57    
58     int CTeraApp::ExitInstance()
59     {
60 maya 3392 return CWinApp::ExitInstance();
61 maya 3227 }
62    
63     // Tera Term main engine
64     BOOL CTeraApp::OnIdle(LONG lCount)
65     {
66     static int Busy = 2;
67     int Change, nx, ny;
68     BOOL Size;
69    
70     if (lCount==0) Busy = 2;
71    
72     if (cv.Ready)
73     {
74     /* Sender */
75     CommSend(&cv);
76    
77     /* Parser */
78     if ((cv.HLogBuf!=NULL) && (cv.LogBuf==NULL))
79     cv.LogBuf = (PCHAR)GlobalLock(cv.HLogBuf);
80    
81     if ((cv.HBinBuf!=NULL) && (cv.BinBuf==NULL))
82     cv.BinBuf = (PCHAR)GlobalLock(cv.HBinBuf);
83    
84     if ((TelStatus==TelIdle) && cv.TelMode)
85     TelStatus = TelIAC;
86    
87     if (TelStatus != TelIdle)
88     {
89     ParseTel(&Size,&nx,&ny);
90     if (Size) {
91     LockBuffer();
92     ChangeTerminalSize(nx,ny);
93     UnlockBuffer();
94     }
95     }
96     else {
97     if (cv.ProtoFlag) Change = ProtoDlgParse();
98     else {
99     switch (ActiveWin) {
100     case IdVT:
101     Change = ((CVTWindow*)pVTWin)->Parse();
102     // TEK window���A�N�e�B�u���� pause ���g�����ACPU�g�p��100%������
103     // ���������b�������B(2006.2.6 yutaka)
104     // �����������������A�R���e�L�X�g�X�C�b�`�����������B(2006.3.20 yutaka)
105     Sleep(0);
106     break;
107    
108     case IdTEK:
109     if (pTEKWin != NULL) {
110     Change = ((CTEKWindow*)pTEKWin)->Parse();
111     // TEK window���A�N�e�B�u���� pause ���g�����ACPU�g�p��100%������
112     // ���������b�������B(2006.2.6 yutaka)
113     Sleep(1);
114     }
115 maya 3392 else {
116 maya 3227 Change = IdVT;
117 maya 3392 }
118 maya 3227 break;
119    
120     default:
121     Change = 0;
122     }
123    
124     switch (Change) {
125 maya 3392 case IdVT:
126     VTActivate();
127     break;
128     case IdTEK:
129     ((CVTWindow*)pVTWin)->OpenTEK();
130     break;
131 maya 3227 }
132     }
133     }
134    
135     if (cv.LogBuf!=NULL)
136     {
137 maya 3392 if (FileLog) {
138     LogToFile();
139     }
140     if (DDELog && AdvFlag) {
141     DDEAdv();
142     }
143 maya 3227 GlobalUnlock(cv.HLogBuf);
144     cv.LogBuf = NULL;
145     }
146    
147     if (cv.BinBuf!=NULL)
148     {
149 maya 3392 if (BinLog) {
150     LogToFile();
151     }
152 maya 3227 GlobalUnlock(cv.HBinBuf);
153     cv.BinBuf = NULL;
154     }
155    
156     /* Talker */
157     switch (TalkStatus) {
158 maya 3392 case IdTalkCB:
159     CBSend();
160     break; /* clip board */
161     case IdTalkFile:
162     FileSend();
163     break; /* file */
164 maya 3227 }
165    
166     /* Receiver */
167     if (DDELog && cv.DCount >0) {
168     // ���O�o�b�t�@������DDE�N���C�A���g�����������������������A
169     // TCP�p�P�b�g�����M���s�������B
170     // �A���������M���s�����A���O�o�b�t�@�����E���h���r�������������M���f�[�^��
171     // �������������������\���������B(2007.6.14 yutaka)
172    
173     } else {
174     CommReceive(&cv);
175     }
176    
177     }
178    
179     if (cv.Ready &&
180 doda 3494 (cv.RRQ || (cv.OutBuffCount>0) || (cv.InBuffCount>0) || (cv.FlushLen>0) || (cv.LCount>0) || (cv.BCount>0) || (cv.DCount>0)) ) {
181 maya 3227 Busy = 2;
182 maya 3392 }
183     else {
184 maya 3227 Busy--;
185 maya 3392 }
186 maya 3227
187     return (Busy>0);
188     }
189    
190     BOOL CTeraApp::PreTranslateMessage(MSG* pMsg)
191     {
192 maya 3392 if (ts.MetaKey>0) {
193     return FALSE; /* ignore accelerator keys */
194     }
195     else {
196     return CWinApp::PreTranslateMessage(pMsg);
197     }
198 maya 3227 }

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26