From a4b7162916b999d00b21c8747df097e631bd8a39 Mon Sep 17 00:00:00 2001 From: Luigi Scarso Date: Tue, 10 Mar 2020 22:30:01 +0000 Subject: sync with upstream luatex rev. 7304. git-svn-id: svn://tug.org/texlive/trunk@54228 c570f23f-e606-0410-a88d-b1316a301751 --- .../texk/web2c/luatexdir/luaharfbuzz/spec/buffer_spec.lua | 9 +++++++++ .../web2c/luatexdir/luaharfbuzz/src/luaharfbuzz/buffer.c | 12 ++++++++++++ 2 files changed, 21 insertions(+) (limited to 'Build/source/texk/web2c/luatexdir/luaharfbuzz') 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 }, -- cgit v1.2.3