From a2f0723148e8bdca7a024929cb8dba6961f26485 Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Wed, 13 Jul 2022 16:02:39 -0600 Subject: [PATCH] [GPOS] Adjust mark attachment on multiple substitution some more Fixes https://github.com/harfbuzz/harfbuzz/issues/1545 --- src/OT/Layout/GPOS/MarkBasePosFormat1.hh | 1 + .../7c24183f26d60df414578a0a9f5e79ab9d32a22b.ttf | Bin 0 -> 2544 bytes test/shape/data/in-house/tests/use.tests | 1 + 3 files changed, 2 insertions(+) create mode 100644 test/shape/data/in-house/fonts/7c24183f26d60df414578a0a9f5e79ab9d32a22b.ttf diff --git a/src/OT/Layout/GPOS/MarkBasePosFormat1.hh b/src/OT/Layout/GPOS/MarkBasePosFormat1.hh index c25de4314..ebb8c31c6 100644 --- a/src/OT/Layout/GPOS/MarkBasePosFormat1.hh +++ b/src/OT/Layout/GPOS/MarkBasePosFormat1.hh @@ -118,6 +118,7 @@ struct MarkBasePosFormat1_2 0 == _hb_glyph_info_get_lig_comp (&buffer->info[skippy_iter.idx]) || (skippy_iter.idx == 0 || _hb_glyph_info_is_mark (&buffer->info[skippy_iter.idx - 1]) || + !_hb_glyph_info_multiplied (&buffer->info[skippy_iter.idx - 1]) || _hb_glyph_info_get_lig_id (&buffer->info[skippy_iter.idx]) != _hb_glyph_info_get_lig_id (&buffer->info[skippy_iter.idx - 1]) || _hb_glyph_info_get_lig_comp (&buffer->info[skippy_iter.idx]) != diff --git a/test/shape/data/in-house/fonts/7c24183f26d60df414578a0a9f5e79ab9d32a22b.ttf b/test/shape/data/in-house/fonts/7c24183f26d60df414578a0a9f5e79ab9d32a22b.ttf new file mode 100644 index 0000000000000000000000000000000000000000..af8052d636fd195b9c434abe6d5a6ef953c7bee6 GIT binary patch literal 2544 zcmai0ZA_b06h8NT`vDXRg|{s&gO;}REfh-W7ay%afvwExfU%ivMpy@IO!-P-j5)K- z#27U?KYlD(GP4+s@rTj4f6o2TXyRu4p~+dH(Y0?9v=L=nMFlar;bm zdZOlZTOW}=1>Kps+4+Sl7jK_KJ>#%1VGyP0EPYKkn94@jo3QMq5viLb`hNL5(aH%{ zK@nM{2;@<^zH)^)9|iO|@eBwm=6fe-bj2&cr0>6ba=BIC_<&D=&^X1RV#qS-@;(eJ zBcqt*^;ydT)IHB#{c5x{^%u$VZ~XMN^ZS3{>rdU+-oJZtWl`U#Gh%B%^=l88IQI&& z6p6K1m||iE>BN*WF?bfHq{RRYSbN3bJ~~NaZ;&49SHKU^4sB&46k$Ekn)H%R4=0}K zp5#QCfq@L`Ud5wvqAO;v!bPwqRZ26E-5W<%&vTw1@)Y2R#AK#pdS+loRv=}v`t+XB z@kLW_c4j=6J$Phh{Aj^eC_>q(g+gKClKCEUXnxu(45M?|+yb|XI*L$1C$X7{V_Dp* zK(M+hKroWVj^^e`na<{(Av5aYcg6YOk_6wg=%EAPRR=%}rx|S{KjttM!%M*#=vL3k z^_V}FTZpmeftg3)=Zzu@@1r7OE4QUZc!l{4y^LFwMMNI88$)=p_i%ngk8`3A^Ifz0 z5xey-R(P;}!M7I4L;Vk6Uc)744=&D=dyF&WoXbrd0uqjoKTI&h^BL$@Iz!LW2zh{$ zTQvrF-P|sd9!jp0sF9okEAMt4B#w}wpZIDJvj`4}Yu1?2;&J>uKKJLG^S5JjE<{12 zYq|RHMmL})-udWkoZx4*Gor6y(KK3ao>{YMT0YD0(Ib;#9YGjgevFN%T;{tqG#cu) zotBXhV?XCZR|wA$`XMhf+CrD|vIKM==4Bb3$nTf?>%dx1Ue<%ZKwdULBHBr_w16>8 zS)7>1eu9ocZlYa~4%1PZ!Y)ToV3&ja2z+PAjrS{r?&P1f2=4V5?)50{O;I*ZB`HG# z_+%)#9^wCLxWA(R%G--7=jb>pJ^~DrK*%c&Qwz00%D_4c{S+{{X*=+Y0gao|&`e?7 zwSEfSD-g^J^oy9s;mPlrx5+KM2P)R6#cT2Vy&i+HMzSgfgV*C%TWz*zBoU86-zh~S zHaoj8G~{@su4%8u*WcXqc%&-rs?u4uyhI+s=J{3%+m}|1F`{aCnRQZ$|FdL2CU5&ow3sShqs3=y4QsFQM1NI8V>MeJal+;#NRu-Cz<4N@O$_eR% z)tmBFvXBc^qo8<9jYq90TTo>bRJGbQ;_g@!UuS!}zuD?Hby?Fbk+c%3-J9yz=aI+E zPKVrCV~RRkl+rEE`ao4vW1v2W+lb&^Zb&cU{{^-B{qb0WN3$w6`)iHOZQDb!pxZSb zKC}I?v+c=-rOu9=iu=Pag!HBSJZfqps>KE3&g_;Lr%n*rxF1*{5YEA~M zc}7y}T<%)_W<4XbH|+5T6A6}fRd6cm1Z_Rt%Y&P1Ss4XGFUv2HmAts*wbt=+lGa#K z?_+7@nxV{SHrXqK%9h%?GFL&fCFyY|%7Rrpg2AC`x!IsM8%?G0N?n!1rk0mTm0q9S ySFhHAE&TT&It}D*qKb#(<^9ZC*xvjwj6<=f>f%+sUg`2?V63odBoK4;A@V;WWM;7d literal 0 HcmV?d00001 diff --git a/test/shape/data/in-house/tests/use.tests b/test/shape/data/in-house/tests/use.tests index 3c43f8782..acbd59dc9 100644 --- a/test/shape/data/in-house/tests/use.tests +++ b/test/shape/data/in-house/tests/use.tests @@ -14,3 +14,4 @@ ../fonts/4afb0e8b9a86bb9bd73a1247de4e33fbe3c1fd93.ttf;;U+0D4E,U+0D15,U+0D4D,U+0D15,U+0D46;[uni0D15=0+500|uni0D4E=0+500|uni0D4D=0+500|uni0D46=3+500|uni0D15=3+500] ../fonts/4afb0e8b9a86bb9bd73a1247de4e33fbe3c1fd93.ttf;;U+1102D,U+11046,U+11013,U+11046,U+11013,U+11046;[u11013=0+500|u11046_u11013=0+500|u1102D_u11046=0+500|u11046=0+500] ../fonts/4afb0e8b9a86bb9bd73a1247de4e33fbe3c1fd93.ttf;;U+11083;[.notdef=0+500] +../fonts/7c24183f26d60df414578a0a9f5e79ab9d32a22b.ttf;;U+11410,U+11441,U+11443;[E_dv.alt=0+275|Ga=0+576|AU_dv_part.alt=0+213|Candrabindu.sm=0@-52,179+0]