summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c/luatexdir/luaharfbuzz
diff options
context:
space:
mode:
authorLuigi Scarso <luigi.scarso@gmail.com>2020-03-10 22:30:01 +0000
committerLuigi Scarso <luigi.scarso@gmail.com>2020-03-10 22:30:01 +0000
commita4b7162916b999d00b21c8747df097e631bd8a39 (patch)
treeb9450bd0b17763f5ee120d33ebbe31e0beed8f81 /Build/source/texk/web2c/luatexdir/luaharfbuzz
parenta39e46a1ed753c64aaa6d8ef30076c58d332686a (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.lua9
-rw-r--r--Build/source/texk/web2c/luatexdir/luaharfbuzz/src/luaharfbuzz/buffer.c12
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 },