Skip to content
This repository was archived by the owner on Sep 7, 2021. It is now read-only.

Commit 52a6a03

Browse files
author
Fraser J. Gordon
committed
Remove GetEP() calls from the MCServerExecPut* and MCServerExecEcho methods
Only the desktop version of MCS_put has been updated; the others are pending.
1 parent 764007d commit 52a6a03

7 files changed

Lines changed: 35 additions & 26 deletions

File tree

engine/src/cmds.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1562,15 +1562,15 @@ Exec_stat MCPut::exec(MCExecPoint &ep)
15621562
MCServerExecPutCookie(ctxt, *t_name, *t_string, t_expires, *t_path, *t_domain, is_secure, is_httponly);
15631563
}
15641564
else if (prep == PT_UNDEFINED)
1565-
MCEngineExecPutOutput(ctxt, *t_string, is_unicode);
1565+
MCEngineExecPutOutput(ctxt, *t_string);
15661566
else if (prep == PT_INTO || prep == PT_AFTER || prep == PT_BEFORE)
15671567
MCIdeExecPutIntoMessage(ctxt, *t_string, prep);
15681568
else if (prep == PT_HEADER || prep == PT_NEW_HEADER)
15691569
MCServerExecPutHeader(ctxt, *t_string, prep == PT_NEW_HEADER);
15701570
else if (prep == PT_CONTENT)
1571-
MCServerExecPutContent(ctxt, *t_string, is_unicode);
1571+
MCServerExecPutContent(ctxt, *t_string);
15721572
else if (prep == PT_MARKUP)
1573-
MCServerExecPutMarkup(ctxt, *t_string, is_unicode);
1573+
MCServerExecPutMarkup(ctxt, *t_string);
15741574
else if (prep == PT_BINARY)
15751575
MCServerExecPutBinaryOutput(ctxt, *t_string);
15761576
}

engine/src/dskspec.cpp

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ along with LiveCode. If not see <http://www.gnu.org/licenses/>. */
2222
#include "parsedef.h"
2323

2424
#include "execpt.h"
25+
#include "exec.h"
2526
#include "object.h"
2627
#include "globals.h"
2728
#include "param.h"
@@ -97,23 +98,31 @@ MCSErrorMode MCS_get_errormode(void)
9798
return kMCSErrorModeNone;
9899
}
99100

100-
bool MCS_put(MCExecPoint& ep, MCSPutKind p_kind, MCStringRef p_data)
101+
bool MCS_put(MCExecContext &ctxt, MCSPutKind p_kind, MCStringRef p_data)
101102
{
102-
ep . setvalueref(p_data);
103-
104-
switch(p_kind)
103+
ctxt . SetTheResultToValue(p_data);
104+
105+
switch (p_kind)
105106
{
106-
case kMCSPutOutput:
107+
case kMCSPutOutput:
108+
case kMCSPutUnicodeOutput:
107109
case kMCSPutBeforeMessage:
108110
case kMCSPutIntoMessage:
109-
return MCmb -> set(ep, nil, 0) == ES_NORMAL;
111+
return MCmb -> set(ctxt, p_data);
110112
case kMCSPutAfterMessage:
111-
return MCmb -> append(ep, nil, 0) == ES_NORMAL;
112-
113+
{
114+
MCAutoStringRef t_existing;
115+
MCAutoStringRef t_new;
116+
MCValueRef t_val = MCmb -> getvalueref();
117+
if (ctxt . ConvertToString(t_val, &t_existing))
118+
if (MCStringFormat(&t_new, "%@%@", *t_existing, p_data))
119+
return MCmb -> set(ctxt, *t_new);
120+
break;
121+
}
113122
default:
114123
break;
115124
}
116-
125+
117126
// MW-2012-02-23: [[ PutUnicode ]] If we don't understand the kind
118127
// then return false (caller can then throw an error).
119128
return false;

engine/src/exec-engine.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -647,9 +647,9 @@ void MCEngineExecGet(MCExecContext& ctxt, MCValueRef p_value)
647647
ctxt . SetItToValue(p_value);
648648
}
649649

650-
void MCEngineExecPutOutput(MCExecContext& ctxt, MCStringRef p_value, bool p_is_unicode)
650+
void MCEngineExecPutOutput(MCExecContext& ctxt, MCStringRef p_value)
651651
{
652-
if (!MCS_put(ctxt . GetEP(), p_is_unicode ? kMCSPutUnicodeOutput : kMCSPutOutput, p_value))
652+
if (!MCS_put(ctxt, MCStringIsNative(p_value) ? kMCSPutOutput : kMCSPutUnicodeOutput, p_value))
653653
ctxt . LegacyThrow(EE_PUT_CANTSETINTO);
654654
}
655655

engine/src/exec-ide.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ void MCIdeExecEditScriptOfObject(MCExecContext &ctxt, MCObject *p_object)
5353

5454
void MCIdeExecPutIntoMessage(MCExecContext& ctxt, MCStringRef p_value, int p_where)
5555
{
56-
if (!MCS_put(ctxt . GetEP(), p_where == PT_INTO ? kMCSPutIntoMessage : (p_where == PT_BEFORE ? kMCSPutBeforeMessage : kMCSPutAfterMessage), p_value))
56+
if (!MCS_put(ctxt, p_where == PT_INTO ? kMCSPutIntoMessage : (p_where == PT_BEFORE ? kMCSPutBeforeMessage : kMCSPutAfterMessage), p_value))
5757
ctxt . LegacyThrow(EE_PUT_CANTSETINTO);
5858
}
5959

engine/src/exec-server.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -180,33 +180,33 @@ void MCServerExecInclude(MCExecContext& ctxt, MCStringRef p_filename, bool p_is_
180180

181181
void MCServerExecEcho(MCExecContext& ctxt, MCStringRef p_data)
182182
{
183-
if (!MCS_put(ctxt . GetEP(), kMCSPutBinaryOutput, p_data) != IO_NORMAL)
183+
if (!MCS_put(ctxt, kMCSPutBinaryOutput, p_data))
184184
MCexitall = True;
185185
}
186186

187187
////////////////////////////////////////////////////////////////////////////////
188188

189189
void MCServerExecPutHeader(MCExecContext& ctxt, MCStringRef p_value, bool p_as_new)
190190
{
191-
if (!MCS_put(ctxt . GetEP(), p_as_new ? kMCSPutNewHeader : kMCSPutHeader, p_value))
191+
if (!MCS_put(ctxt, p_as_new ? kMCSPutNewHeader : kMCSPutHeader, p_value))
192192
ctxt . LegacyThrow(EE_PUT_CANTSETINTO);
193193
}
194194

195195
void MCServerExecPutBinaryOutput(MCExecContext& ctxt, MCStringRef p_value)
196196
{
197-
if (!MCS_put(ctxt . GetEP(), kMCSPutBinaryOutput, p_value))
197+
if (!MCS_put(ctxt, kMCSPutBinaryOutput, p_value))
198198
ctxt . LegacyThrow(EE_PUT_CANTSETINTO);
199199
}
200200

201-
void MCServerExecPutContent(MCExecContext& ctxt, MCStringRef p_value, bool is_unicode)
201+
void MCServerExecPutContent(MCExecContext& ctxt, MCStringRef p_value)
202202
{
203-
if (!MCS_put(ctxt . GetEP(), is_unicode ? kMCSPutUnicodeContent : kMCSPutContent, p_value))
203+
if (!MCS_put(ctxt, MCStringIsNative(p_value) ? kMCSPutContent : kMCSPutUnicodeContent, p_value))
204204
ctxt . LegacyThrow(EE_PUT_CANTSETINTO);
205205
}
206206

207-
void MCServerExecPutMarkup(MCExecContext& ctxt, MCStringRef p_value, bool is_unicode)
207+
void MCServerExecPutMarkup(MCExecContext& ctxt, MCStringRef p_value)
208208
{
209-
if (!MCS_put(ctxt . GetEP(), is_unicode ? kMCSPutUnicodeMarkup : kMCSPutMarkup, p_value))
209+
if (!MCS_put(ctxt, MCStringIsNative(p_value) ? kMCSPutMarkup : kMCSPutUnicodeMarkup, p_value))
210210
ctxt . LegacyThrow(EE_PUT_CANTSETINTO);
211211
}
212212

engine/src/exec.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2355,7 +2355,7 @@ void MCEngineEvalErrorObjectAsObject(MCExecContext& ctxt, MCObjectPtr& r_object)
23552355

23562356
void MCEngineExecGet(MCExecContext& ctxt, MCValueRef value);
23572357
void MCEngineExecPutIntoVariable(MCExecContext& ctxt, MCValueRef value, int where, MCVariableChunkPtr t_target);
2358-
void MCEngineExecPutOutput(MCExecContext& ctxt, MCStringRef value, bool unicode);
2358+
void MCEngineExecPutOutput(MCExecContext& ctxt, MCStringRef value);
23592359

23602360
void MCEngineExecDo(MCExecContext& ctxt, MCStringRef p_script, int p_line, int p_pos);
23612361
void MCEngineExecInsertScriptOfObjectInto(MCExecContext& ctxt, MCObject *p_script, bool p_in_front);
@@ -3449,8 +3449,8 @@ extern MCExecMethodInfo *kMCServerSetSessionIdMethodInfo;
34493449

34503450
void MCServerExecPutHeader(MCExecContext& ctxt, MCStringRef value, bool as_new);
34513451
void MCServerExecPutBinaryOutput(MCExecContext& ctxt, MCStringRef value);
3452-
void MCServerExecPutContent(MCExecContext& ctxt, MCStringRef value, bool is_unicode);
3453-
void MCServerExecPutMarkup(MCExecContext& ctxt, MCStringRef value, bool is_unicode);
3452+
void MCServerExecPutContent(MCExecContext& ctxt, MCStringRef value);
3453+
void MCServerExecPutMarkup(MCExecContext& ctxt, MCStringRef value);
34543454
void MCServerExecPutCookie(MCExecContext& ctxt, MCStringRef name, MCStringRef value, uinteger_t expires, MCStringRef path, MCStringRef domain, bool is_secure, bool http_only);
34553455

34563456
void MCServerExecDeleteSession(MCExecContext& ctxt);

engine/src/osspec.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ enum MCSPutKind
197197
kMCSPutUnicodeMarkup
198198
};
199199

200-
bool MCS_put(MCExecPoint& ep, MCSPutKind kind, MCStringRef data);
200+
bool MCS_put(MCExecContext &ctxt, MCSPutKind kind, MCStringRef data);
201201

202202
///////////////////////////////////////////////////////////////////////////////
203203

0 commit comments

Comments
 (0)