summaryrefslogtreecommitdiff
path: root/Build/source/libs/luafontforge/src/luafflib.c
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/libs/luafontforge/src/luafflib.c')
-rw-r--r--Build/source/libs/luafontforge/src/luafflib.c22
1 files changed, 21 insertions, 1 deletions
diff --git a/Build/source/libs/luafontforge/src/luafflib.c b/Build/source/libs/luafontforge/src/luafflib.c
index cf252e682ea..8c67e0b2697 100644
--- a/Build/source/libs/luafontforge/src/luafflib.c
+++ b/Build/source/libs/luafontforge/src/luafflib.c
@@ -255,6 +255,14 @@ static char *make_tag_string (unsigned int field) {
return (char *)tag_string;
}
+static char featbuf[32] = {0};
+
+static char *make_mactag_string (unsigned int field) {
+ sprintf( featbuf, "<%d,%d>", field>>16, field&0xffff );
+ return (char *)featbuf;
+}
+
+
static void
dump_tag (lua_State *L, char *name, unsigned int field) {
lua_checkstack(L,2);
@@ -263,6 +271,14 @@ dump_tag (lua_State *L, char *name, unsigned int field) {
lua_rawset(L,-3);
}
+static void
+dump_mactag (lua_State *L, char *name, unsigned int field) {
+ lua_checkstack(L,2);
+ lua_pushstring(L,name);
+ lua_pushstring(L,make_mactag_string(field));
+ lua_rawset(L,-3);
+}
+
#define NESTED_TABLE(a,b,c) { \
int k = 1; \
next = b; \
@@ -308,7 +324,11 @@ handle_scriptlanglist (lua_State *L, struct scriptlanglist *sll) {
void
do_handle_featurescriptlanglist (lua_State *L, struct featurescriptlanglist *features) {
- dump_tag (L,"tag",features->featuretag);
+ if (features->ismac) {
+ dump_mactag (L,"tag",features->featuretag);
+ } else {
+ dump_tag (L,"tag",features->featuretag);
+ }
lua_newtable(L);
handle_scriptlanglist(L, features->scripts);
lua_setfield(L,-2,"scripts");