diff options
author | Luigi Scarso <luigi.scarso@gmail.com> | 2020-03-10 22:30:01 +0000 |
---|---|---|
committer | Luigi Scarso <luigi.scarso@gmail.com> | 2020-03-10 22:30:01 +0000 |
commit | a4b7162916b999d00b21c8747df097e631bd8a39 (patch) | |
tree | b9450bd0b17763f5ee120d33ebbe31e0beed8f81 /Build/source/texk/web2c/luatexdir/luaharfbuzz | |
parent | a39e46a1ed753c64aaa6d8ef30076c58d332686a (diff) |
sync with upstream luatex rev. 7304.
git-svn-id: svn://tug.org/texlive/trunk@54228 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/web2c/luatexdir/luaharfbuzz')
-rw-r--r-- | Build/source/texk/web2c/luatexdir/luaharfbuzz/spec/buffer_spec.lua | 9 | ||||
-rw-r--r-- | Build/source/texk/web2c/luatexdir/luaharfbuzz/src/luaharfbuzz/buffer.c | 12 |
2 files changed, 21 insertions, 0 deletions
diff --git a/Build/source/texk/web2c/luatexdir/luaharfbuzz/spec/buffer_spec.lua b/Build/source/texk/web2c/luatexdir/luaharfbuzz/spec/buffer_spec.lua index d0a7757e3bf..503b902c9dc 100644 --- a/Build/source/texk/web2c/luatexdir/luaharfbuzz/spec/buffer_spec.lua +++ b/Build/source/texk/web2c/luatexdir/luaharfbuzz/spec/buffer_spec.lua @@ -5,6 +5,15 @@ describe("harfbuzz.Buffer", function() harfbuzz.Buffer.new() end) + it("can add a single codepoints with explicit cluster value", function() + local b = harfbuzz.Buffer.new() + b:add(0x06CC, 42) + local glyphs = b:get_glyphs() + assert.are_equal(#glyphs, 1) + assert.are_equal(glyphs[1].cluster, 42) + assert.are_equal(glyphs[1].codepoint, 0x06CC) + end) + it("can add a UTF8 string", function() local b = harfbuzz.Buffer.new() local s = "Some String" diff --git a/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/luaharfbuzz/buffer.c b/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/luaharfbuzz/buffer.c index 4eb78ec7a9a..67921ba293a 100644 --- a/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/luaharfbuzz/buffer.c +++ b/Build/source/texk/web2c/luatexdir/luaharfbuzz/src/luaharfbuzz/buffer.c @@ -138,6 +138,17 @@ static int buffer_set_replacement_codepoint(lua_State *L) { return 0; } +static int buffer_add(lua_State *L) { + Buffer *b = (Buffer *)luaL_checkudata(L, 1, "harfbuzz.Buffer"); + + hb_codepoint_t c = (hb_codepoint_t) luaL_checkinteger(L, 2); + unsigned int cluster = luaL_checkinteger(L, 3); + + hb_buffer_add(*b, c, cluster); + + return 0; +} + static int buffer_add_codepoints(lua_State *L) { Buffer *b = (Buffer *)luaL_checkudata(L, 1, "harfbuzz.Buffer"); unsigned int item_offset; @@ -290,6 +301,7 @@ static int buffer_pre_allocate(lua_State *L) { static const struct luaL_Reg buffer_methods[] = { { "__gc", buffer_destroy }, + { "add", buffer_add }, { "add_utf8", buffer_add_utf8 }, { "add_codepoints", buffer_add_codepoints }, { "clear_contents", buffer_clear_contents }, |