Skip to content

Commit cdaad9f

Browse files
[[ ExternalV0, interface V3 ]] Add NULL in the 6.7, external V0 interface for the V2 (7-specific, Unicode functions)
1 parent b135758 commit cdaad9f

File tree

2 files changed

+64
-12
lines changed

2 files changed

+64
-12
lines changed

engine/src/externalv0.cpp

Lines changed: 32 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,8 @@ extern MCExecPoint *MCEPptr;
6262

6363
// IM-2014-03-06: [[ revBrowserCEF ]] Add revision number to v0 external interface
6464
// AL-2015-02-06: [[ SB Inclusions ]] Increment revision number of v0 external interface
65-
#define EXTERNAL_INTERFACE_VERSION 2
65+
// following the updates for Unicode functions, in LC 7.0
66+
#define EXTERNAL_INTERFACE_VERSION 3
6667

6768
typedef struct _Xternal
6869
{
@@ -887,10 +888,36 @@ XCB MCcbs[] =
887888
stack_to_window_rect,
888889
window_to_stack_rect,
889890

890-
// AL-2015-02-10: [[ SB Inclusions ]] Externals interface V2 functions
891-
load_module,
892-
unload_module,
893-
resolve_symbol_in_module,
891+
// SN-2015-02-23: [[ ExternalsInterface V2 ]] Add the version 2 (LC 7.0 Unicode
892+
// definitions), which are not implemented in 6.7
893+
NULL, /* V2 OPERATION_SEND_CARD_MESSAGE_UTF8 */
894+
NULL, /* V2 OPERATION_EVAL_EXP_UTF8 */
895+
NULL, /* V2 OPERATION_GET_GLOBAL_UTF8 */
896+
NULL, /* V2 OPERATION_SET_GLOBAL_UTF8 */
897+
NULL, /* V2 OPERATION_GET_FIELD_BY_NAME_UTF8 */
898+
NULL, /* V2 OPERATION_GET_FIELD_BY_NUM_UTF8 */
899+
NULL, /* V2 OPERATION_GET_FIELD_BY_ID_UTF8 */
900+
NULL, /* V2 OPERATION_SET_FIELD_BY_NAME_UTF8 */
901+
NULL, /* V2 OPERATION_SET_FIELD_BY_NUM_UTF8 */
902+
NULL, /* V2 OPERATION_SET_FIELD_BY_ID_UTF8 */
903+
NULL, /* V2 OPERATION_SHOW_IMAGE_BY_NAME_UTF8 */
904+
NULL, /* V2 OPERATION_SHOW_IMAGE_BY_NUM_UTF8 */
905+
NULL, /* V2 OPERATION_SHOW_IMAGE_BY_ID_UTF8 */
906+
NULL, /* V2 OPERATION_GET_VARIABLE_UTF8 */
907+
NULL, /* V2 OPERATION_SET_VARIABLE_UTF8 */
908+
NULL, /* V2 OPERATION_GET_VARIABLE_EX_UTF8_TEXT */
909+
NULL, /* V2 OPERATION_GET_VARIABLE_EX_UTF8_BINARY */
910+
NULL, /* V2 OPERATION_SET_VARIABLE_EX_UTF8_TEXT */
911+
NULL, /* V2 OPERATION_SET_VARIABLE_EX_UTF8_BINARY */
912+
NULL, /* V2 OPERATION_GET_ARRAY_UTF8_TEXT */
913+
NULL, /* V2 OPERATION_GET_ARRAY_UTF8_BINARY */
914+
NULL, /* V2 OPERATION_SET_ARRAY_UTF8_TEXT */
915+
NULL, /* V2 OPERATION_SET_ARRAY_UTF8_BINARY */
916+
917+
// AL-2015-02-10: [[ SB Inclusions ]] Externals interface V3 functions
918+
/* V3 */ load_module,
919+
/* V3 */ unload_module,
920+
/* V3 */ resolve_symbol_in_module,
894921

895922
NULL
896923
};

libexternal/src/external.c

Lines changed: 32 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -40,16 +40,41 @@ enum
4040
// V1
4141
OPERATION_ADD_RUNLOOP_ACTION,
4242
OPERATION_REMOVE_RUNLOOP_ACTION,
43-
OPERATION_RUNLOOP_WAIT,
43+
OPERATION_RUNLOOP_WAIT,
4444

4545
// IM-2014-07-09: [[ Bug 12225 ]] Add coordinate conversion functions
4646
OPERATION_STACK_TO_WINDOW_RECT,
4747
OPERATION_WINDOW_TO_STACK_RECT,
48+
49+
// SN-2014-07-04: [[ UnicodeExternalsV0 ]] Add externals extensions to allow utf8-encoded arguments
50+
/* V2 */ OPERATION_SEND_CARD_MESSAGE_UTF8,
51+
/* V2 */ OPERATION_EVAL_EXP_UTF8,
52+
/* V2 */ OPERATION_GET_GLOBAL_UTF8,
53+
/* V2 */ OPERATION_SET_GLOBAL_UTF8,
54+
/* V2 */ OPERATION_GET_FIELD_BY_NAME_UTF8,
55+
/* V2 */ OPERATION_GET_FIELD_BY_NUM_UTF8,
56+
/* V2 */ OPERATION_GET_FIELD_BY_ID_UTF8,
57+
/* V2 */ OPERATION_SET_FIELD_BY_NAME_UTF8,
58+
/* V2 */ OPERATION_SET_FIELD_BY_NUM_UTF8,
59+
/* V2 */ OPERATION_SET_FIELD_BY_ID_UTF8,
60+
/* V2 */ OPERATION_SHOW_IMAGE_BY_NAME_UTF8,
61+
/* V2 */ OPERATION_SHOW_IMAGE_BY_NUM_UTF8,
62+
/* V2 */ OPERATION_SHOW_IMAGE_BY_ID_UTF8,
63+
/* V2 */ OPERATION_GET_VARIABLE_UTF8,
64+
/* V2 */ OPERATION_SET_VARIABLE_UTF8,
65+
/* V2 */ OPERATION_GET_VARIABLE_EX_UTF8_TEXT,
66+
/* V2 */ OPERATION_GET_VARIABLE_EX_UTF8_BINARY,
67+
/* V2 */ OPERATION_SET_VARIABLE_EX_UTF8_TEXT,
68+
/* V2 */ OPERATION_SET_VARIABLE_EX_UTF8_BINARY,
69+
/* V2 */ OPERATION_GET_ARRAY_UTF8_TEXT,
70+
/* V2 */ OPERATION_GET_ARRAY_UTF8_BINARY,
71+
/* V2 */ OPERATION_SET_ARRAY_UTF8_TEXT,
72+
/* V2 */ OPERATION_SET_ARRAY_UTF8_BINARY,
4873

4974
// AL-2015-02-06: [[ SB Inclusions ]] Add new callbacks for resource loading.
50-
OPERATION_LOAD_MODULE,
51-
OPERATION_UNLOAD_MODULE,
52-
OPERATION_RESOLVE_SYMBOL_IN_MODULE,
75+
/* V3 */ OPERATION_LOAD_MODULE,
76+
/* V3 */ OPERATION_UNLOAD_MODULE,
77+
/* V3 */ OPERATION_RESOLVE_SYMBOL_IN_MODULE,
5378
};
5479

5580
enum
@@ -418,7 +443,7 @@ void LoadModuleByName(const char *p_module, void **r_handle, int *r_success)
418443
{
419444
char *t_result;
420445

421-
if (s_external_interface_version < 2)
446+
if (s_external_interface_version < 3)
422447
{
423448
*r_success = EXTERNAL_FAILURE;
424449
return;
@@ -434,7 +459,7 @@ void UnloadModule(void *p_handle, int *r_success)
434459
{
435460
char *t_result;
436461

437-
if (s_external_interface_version < 2)
462+
if (s_external_interface_version < 3)
438463
{
439464
*r_success = EXTERNAL_FAILURE;
440465
return;
@@ -450,7 +475,7 @@ void ResolveSymbolInModule(void *p_handle, const char *p_symbol, void **r_resolv
450475
{
451476
char *t_result;
452477

453-
if (s_external_interface_version < 2)
478+
if (s_external_interface_version < 3)
454479
{
455480
*r_success = EXTERNAL_FAILURE;
456481
return;

0 commit comments

Comments
 (0)