Skip to content

Commit a586ed2

Browse files
committed
Added plugin callback Handle_IAC_GA
1 parent a2a7b11 commit a586ed2

File tree

7 files changed

+35
-4
lines changed

7 files changed

+35
-4
lines changed

OtherTypes.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -982,6 +982,7 @@ class CPlugin :public CObject
982982
DISPID m_dispid_plugin_telnet_option; // "OnPluginTelnetOption"
983983
DISPID m_dispid_plugin_telnet_request; // "OnPluginTelnetRequest"
984984
DISPID m_dispid_plugin_telnet_subnegotiation; // "OnPluginTelnetSubnegotiation"
985+
DISPID m_dispid_plugin_IAC_GA; // "OnPlugin_IAC_GA"
985986
DISPID m_dispid_plugin_on_world_output_resized; // "OnPluginWorldOutputResized"
986987
DISPID m_dispid_plugin_on_command_changed; // "OnPluginCommandChanged"
987988

doc.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1292,6 +1292,7 @@ class CMUSHclientDoc : public CDocument
12921292
void Phase_COMPRESS (const unsigned char c);
12931293
void Phase_COMPRESS_WILL (const unsigned char c);
12941294
bool Handle_Telnet_Request (const int iNumber, const string sType);
1295+
void Handle_IAC_GA ();
12951296

12961297
void Handle_TELOPT_COMPRESS2 ();
12971298
void Handle_TELOPT_MUD_SPECIFIC ();

mushview.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -69,11 +69,11 @@ static char BASED_CODE THIS_FILE[] = __FILE__;
6969
TTM_SETTITLEA, TTM_SETTITLEW,
7070
TTM_POPUP, TTM_GETTITLE
7171
*/
72-
//#define TTM_SETTITLEA (WM_USER+32)
73-
//#define TTM_SETTITLEW (WM_USER+33)
72+
#ifndef TTM_SETTITLEA
73+
#define TTM_SETTITLEA (WM_USER+32)
74+
#endif
75+
7476
#define TTM_SETTITLE TTM_SETTITLEA
75-
//#define TTM_POPUP (WM_USER+34)
76-
//#define TTM_GETTITLE (WM_USER+35)
7777
#define TTM_SETWINDOWTHEME CCM_SETWINDOWTHEME
7878

7979

plugins.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ CPlugin::CPlugin (CMUSHclientDoc * pDoc)
5555
m_dispid_plugin_telnet_option = DISPID_UNKNOWN;
5656
m_dispid_plugin_telnet_request = DISPID_UNKNOWN;
5757
m_dispid_plugin_telnet_subnegotiation = DISPID_UNKNOWN;
58+
m_dispid_plugin_IAC_GA = DISPID_UNKNOWN;
5859
m_dispid_plugin_partial_line = DISPID_UNKNOWN;
5960
m_dispid_plugin_on_world_output_resized = DISPID_UNKNOWN;
6061
m_dispid_plugin_on_command_changed = DISPID_UNKNOWN;

stdafx.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -515,6 +515,7 @@ void DeleteStyle (CStyle * pStyle, const char * filename, const long linenumber)
515515
#define ON_PLUGIN_TELNET_OPTION "OnPluginTelnetOption"
516516
#define ON_PLUGIN_TELNET_REQUEST "OnPluginTelnetRequest"
517517
#define ON_PLUGIN_TELNET_SUBNEGOTIATION "OnPluginTelnetSubnegotiation"
518+
#define ON_PLUGIN_IAC_GA "OnPlugin_IAC_GA"
518519
#define ON_PLUGIN_WORLD_OUTPUT_RESIZED "OnPluginWorldOutputResized"
519520
#define ON_PLUGIN_TICK "OnPluginTick"
520521
#define ON_PLUGIN_MOUSE_MOVED "OnPluginMouseMoved"

telnet_phases.cpp

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,29 @@ void CMUSHclientDoc::Phase_ANSI (const unsigned char c)
8888

8989
// IAC - we have IAC x
9090

91+
void CMUSHclientDoc::Handle_IAC_GA ()
92+
{
93+
CPlugin * pSavedPlugin = m_CurrentPlugin;
94+
95+
// tell each plugin what we have received
96+
for (POSITION pluginpos = m_PluginList.GetHeadPosition(); pluginpos; )
97+
{
98+
CPlugin * pPlugin = m_PluginList.GetNext (pluginpos);
99+
100+
101+
if (!(pPlugin->m_bEnabled)) // ignore disabled plugins
102+
continue;
103+
104+
// see what the plugin makes of this,
105+
pPlugin->ExecutePluginScript (ON_PLUGIN_IAC_GA,
106+
pPlugin->m_dispid_plugin_IAC_GA);
107+
108+
} // end of doing each plugin
109+
110+
m_CurrentPlugin = pSavedPlugin;
111+
112+
} // end of CMUSHclientDoc::Handle_IAC_GA
113+
91114
void CMUSHclientDoc::Phase_IAC (unsigned char & c)
92115
{
93116
char * p;
@@ -100,12 +123,14 @@ void CMUSHclientDoc::Phase_IAC (unsigned char & c)
100123
p = "EOR";
101124
if (m_bConvertGAtoNewline)
102125
new_c = '\n';
126+
Handle_IAC_GA ();
103127
break;
104128
case GO_AHEAD :
105129
m_phase = NONE;
106130
p = "GA";
107131
if (m_bConvertGAtoNewline)
108132
new_c = '\n';
133+
Handle_IAC_GA ();
109134
break;
110135

111136
case SE : m_phase = NONE; p = "SE"; break;

xml/xml_load_world.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -474,6 +474,8 @@ LONGLONG iCounterFrequency = large_int_frequency.QuadPart;
474474
= m_CurrentPlugin->GetPluginDispid (ON_PLUGIN_TELNET_REQUEST);
475475
m_CurrentPlugin->m_dispid_plugin_telnet_subnegotiation
476476
= m_CurrentPlugin->GetPluginDispid (ON_PLUGIN_TELNET_SUBNEGOTIATION);
477+
m_CurrentPlugin->m_dispid_plugin_IAC_GA
478+
= m_CurrentPlugin->GetPluginDispid (ON_PLUGIN_IAC_GA);
477479
m_CurrentPlugin->m_dispid_plugin_on_world_output_resized
478480
= m_CurrentPlugin->GetPluginDispid (ON_PLUGIN_WORLD_OUTPUT_RESIZED);
479481
m_CurrentPlugin->m_dispid_plugin_on_command_changed

0 commit comments

Comments
 (0)