diff options
author | Denis Bitouzé <dbitouze@wanadoo.fr> | 2021-02-25 18:23:07 +0000 |
---|---|---|
committer | Denis Bitouzé <dbitouze@wanadoo.fr> | 2021-02-25 18:23:07 +0000 |
commit | c6101f91d071883b48b1b4b51e5eba0f36d9a78d (patch) | |
tree | 1bf7f5a881d7a4f5c5bf59d0b2821943dd822372 /Build/source/texk/web2c/luatexdir/lua/llanglib.c | |
parent | 07ee7222e389b0777456b427a55c22d0e6ffd267 (diff) |
French translation for tlmgr updated
git-svn-id: svn://tug.org/texlive/trunk@57912 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/web2c/luatexdir/lua/llanglib.c')
-rw-r--r-- | Build/source/texk/web2c/luatexdir/lua/llanglib.c | 311 |
1 files changed, 0 insertions, 311 deletions
diff --git a/Build/source/texk/web2c/luatexdir/lua/llanglib.c b/Build/source/texk/web2c/luatexdir/lua/llanglib.c deleted file mode 100644 index 8f4e35f46e2..00000000000 --- a/Build/source/texk/web2c/luatexdir/lua/llanglib.c +++ /dev/null @@ -1,311 +0,0 @@ -/* llanglib.c - - Copyright 2006-2008 Taco Hoekwater <taco@luatex.org> - - This file is part of LuaTeX. - - LuaTeX is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - LuaTeX is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public - License for more details. - - You should have received a copy of the GNU General Public License along - with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ - -#include "ptexlib.h" -#include "lua/luatex-api.h" - -#define LANG_METATABLE "luatex.lang" - -#define check_islang(L,b) (struct tex_language **)luaL_checkudata(L,b,LANG_METATABLE) - -static int lang_new(lua_State * L) -{ - struct tex_language **lang; - if (lua_gettop(L) == 0) { - lang = lua_newuserdata(L, sizeof(struct tex_language *)); - *lang = new_language(-1); - if (!*lang) { - return luaL_error(L, "lang.new(): no room for a new language"); - } - } else { - int lualang; - lang = lua_newuserdata(L, sizeof(struct tex_language *)); - lualang = lua_tointeger(L, 1); - *lang = get_language(lualang); - if (!*lang) { - return luaL_error(L, "lang.new(%d): undefined language", lualang); - } - } - luaL_getmetatable(L, LANG_METATABLE); - lua_setmetatable(L, -2); - return 1; -} - -static int lang_id(lua_State * L) -{ - struct tex_language **lang_ptr; - lang_ptr = check_islang(L, 1); - lua_pushinteger(L, (*lang_ptr)->id); - return 1; -} - -static int lang_patterns(lua_State * L) -{ - struct tex_language **lang_ptr; - lang_ptr = check_islang(L, 1); - if (lua_gettop(L) != 1) { - if (lua_type(L, 2) != LUA_TSTRING) { - return luaL_error(L, "lang.patterns(): argument should be a string"); - } - load_patterns(*lang_ptr, (const unsigned char *) lua_tostring(L, 2)); - return 0; - } else { - if ((*lang_ptr)->patterns != NULL) { - lua_pushstring(L, (char *) hnj_serialize((*lang_ptr)->patterns)); - } else { - lua_pushnil(L); - } - return 1; - } -} - -static int lang_clear_patterns(lua_State * L) -{ - struct tex_language **lang_ptr; - lang_ptr = check_islang(L, 1); - clear_patterns(*lang_ptr); - return 0; -} - -static int lang_hyphenation(lua_State * L) -{ - struct tex_language **lang_ptr; - lang_ptr = check_islang(L, 1); - if (lua_gettop(L) != 1) { - if (lua_type(L, 2) != LUA_TSTRING) { - return luaL_error(L, "lang.hyphenation(): argument should be a string"); - } - load_hyphenation(*lang_ptr, (const unsigned char *) lua_tostring(L, 2)); - return 0; - } else { - if ((*lang_ptr)->exceptions != 0) { - lua_pushstring(L, exception_strings(*lang_ptr)); - } else { - lua_pushnil(L); - } - return 1; - } -} - -static int lang_pre_hyphen_char(lua_State * L) -{ - struct tex_language **lang_ptr; - lang_ptr = check_islang(L, 1); - if (lua_gettop(L) != 1) { - if (lua_type(L, 2) != LUA_TNUMBER) { - return luaL_error(L, "lang.prehyphenchar(): argument should be a character number"); - } - (*lang_ptr)->pre_hyphen_char = (int) lua_tointeger(L, 2); - return 0; - } else { - lua_pushinteger(L, (*lang_ptr)->pre_hyphen_char); - return 1; - } -} - -static int lang_post_hyphen_char(lua_State * L) -{ - struct tex_language **lang_ptr; - lang_ptr = check_islang(L, 1); - if (lua_gettop(L) != 1) { - if (lua_type(L, 2) != LUA_TNUMBER) { - return luaL_error(L, "lang.posthyphenchar(): argument should be a character number"); - } - (*lang_ptr)->post_hyphen_char = (int) lua_tointeger(L, 2); - return 0; - } else { - lua_pushinteger(L, (*lang_ptr)->post_hyphen_char); - return 1; - } -} - -static int lang_pre_exhyphen_char(lua_State * L) -{ - struct tex_language **lang_ptr; - lang_ptr = check_islang(L, 1); - if (lua_gettop(L) != 1) { - if (lua_type(L, 2) != LUA_TNUMBER) { - return luaL_error(L, "lang.preexhyphenchar(): argument should be a character number"); - } - (*lang_ptr)->pre_exhyphen_char = (int) lua_tointeger(L, 2); - return 0; - } else { - lua_pushinteger(L, (*lang_ptr)->pre_exhyphen_char); - return 1; - } -} - -static int lang_sethjcode(lua_State * L) -{ - struct tex_language **lang_ptr; - lang_ptr = check_islang(L, 1); - if (lua_type(L, 2) != LUA_TNUMBER) { - return luaL_error(L, "lang.sethjcode(): argument should be a character number"); - } else { - int i = (int) lua_tointeger(L, 2) ; - if (lua_type(L, 3) == LUA_TNUMBER) { - set_hj_code((*lang_ptr)->id,i,(int) lua_tointeger(L, 3),-1); - } else { - set_hj_code((*lang_ptr)->id,i,i,-1); - } - } - return 0; -} - -static int lang_gethjcode(lua_State * L) -{ - struct tex_language **lang_ptr; - lang_ptr = check_islang(L, 1); - if (lua_type(L, 2) != LUA_TNUMBER) { - return luaL_error(L, "lang.gethjcode(): argument should be a character number"); - } else { - lua_pushinteger(L, get_hj_code((*lang_ptr)->id,lua_tointeger(L, 2))); - } - return 1; -} - -static int lang_post_exhyphen_char(lua_State * L) -{ - struct tex_language **lang_ptr; - lang_ptr = check_islang(L, 1); - if (lua_gettop(L) != 1) { - if (lua_type(L, 2) != LUA_TNUMBER) { - return luaL_error(L, "lang.postexhyphenchar(): argument should be a character number"); - } - (*lang_ptr)->post_exhyphen_char = (int) lua_tointeger(L, 2); - return 0; - } else { - lua_pushinteger(L, (*lang_ptr)->post_exhyphen_char); - return 1; - } -} - -static int lang_hyphenation_min(lua_State * L) -{ - struct tex_language **lang_ptr; - lang_ptr = check_islang(L, 1); - if (lua_gettop(L) != 1) { - if (lua_type(L, 2) != LUA_TNUMBER) { - return luaL_error(L, "lang.hyphenationmin(): argument should be a number"); - } - (*lang_ptr)->hyphenation_min = (int) lua_tointeger(L, 2); - return 0; - } else { - lua_pushinteger(L, (*lang_ptr)->hyphenation_min); - return 1; - } -} - -static int lang_clear_hyphenation(lua_State * L) -{ - struct tex_language **lang_ptr; - lang_ptr = check_islang(L, 1); - clear_hyphenation(*lang_ptr); - return 0; -} - -static int do_lang_clean(lua_State * L) -{ - char *cleaned; - if (lua_type(L, 1) == LUA_TSTRING) { - (void) clean_hyphenation(cur_lang_par, lua_tostring(L, 1), &cleaned); - } else { - struct tex_language **lang_ptr; - lang_ptr = check_islang(L, 1); - if (lang_ptr == NULL) { - return luaL_error(L, "lang.clean(): first argument should be a string or language"); - } else if (lua_type(L, 2) != LUA_TSTRING) { - return luaL_error(L, "lang.clean(): second argument should be a string"); - } else { - (void) clean_hyphenation((*lang_ptr)->id,lua_tostring(L, 2), &cleaned); - } - } - lua_pushstring(L, cleaned); - return 1; -} - -static int do_lang_hyphenate(lua_State * L) -{ - halfword t = null; - halfword h = *check_isnode(L, 1); - if (lua_isuserdata(L, 2)) { - t = *check_isnode(L, 2); - } - if (t == null) { - t = h; - while (vlink(t) != null) { - t = vlink(t); - } - } - hnj_hyphenation(h, t); - lua_nodelib_push_fast(L, h); - lua_nodelib_push_fast(L, t); - lua_pushboolean(L, 1); - return 3; -} - -static const struct luaL_Reg langlib_d[] = { - {"clear_patterns", lang_clear_patterns}, - {"clear_hyphenation", lang_clear_hyphenation}, - {"patterns", lang_patterns}, - {"hyphenation", lang_hyphenation}, - {"prehyphenchar", lang_pre_hyphen_char}, - {"posthyphenchar", lang_post_hyphen_char}, - {"preexhyphenchar", lang_pre_exhyphen_char}, - {"postexhyphenchar", lang_post_exhyphen_char}, - {"hyphenationmin", lang_hyphenation_min}, - {"sethjcode", lang_sethjcode}, - {"gethjcode", lang_gethjcode}, - {"id", lang_id}, - /*tex sentinel */ - {NULL, NULL} -}; - -static const struct luaL_Reg langlib[] = { - {"clear_patterns", lang_clear_patterns}, - {"clear_hyphenation", lang_clear_hyphenation}, - {"patterns", lang_patterns}, - {"hyphenation", lang_hyphenation}, - {"prehyphenchar", lang_pre_hyphen_char}, - {"posthyphenchar", lang_post_hyphen_char}, - {"preexhyphenchar", lang_pre_exhyphen_char}, - {"postexhyphenchar", lang_post_exhyphen_char}, - {"hyphenationmin", lang_hyphenation_min}, - {"sethjcode", lang_sethjcode}, - {"gethjcode", lang_gethjcode}, - {"id", lang_id}, - {"clean", do_lang_clean}, - {"hyphenate", do_lang_hyphenate}, - {"new", lang_new}, - /*tex sentinel */ - {NULL, NULL} -}; - -int luaopen_lang(lua_State * L) -{ - luaL_newmetatable(L, LANG_METATABLE); - /*tex push metatable */ - lua_pushvalue(L, -1); - /*tex metatable.__index = metatable */ - lua_setfield(L, -2, "__index"); - /*tex set dict methods */ - luaL_openlib(L, NULL, langlib_d, 0); - luaL_openlib(L, "lang", langlib, 0); - return 1; -} |