static int template_catalog_call(lua_State *L) { size_t inlen, outlen; lmo_catalog_t *cat = luaL_checkudata(L, 1, TEMPLATE_CATALOG); const char *in = luaL_checklstring(L, 2, &inlen), *out; if (!lmo_translate(cat, in, inlen, &out, &outlen)) return 0; lua_pushlstring(L, out, outlen); return 1; }
void luastr_translate(struct template_buffer *out, const char *s, unsigned int l, int escape_xml) { char *tr; int trlen; switch (lmo_translate(s, l, &tr, &trlen)) { case 0: luastr_escape(out, tr, trlen, escape_xml); break; case -1: luastr_escape(out, s, l, escape_xml); break; default: /* no catalog loaded */ break; } }