From 3a73f615932aaa12854ade5d8a5c35a801822838 Mon Sep 17 00:00:00 2001 From: Jan Lelis Date: Thu, 16 Jan 2020 13:44:40 +0100 Subject: [PATCH 1/8] Fix that ambiguous and overwrite options where ignored for emoji-measuring Problem was that emoji display widths would return wrong widths when ambiguous width was not 1 --- CHANGELOG.md | 4 ++++ lib/unicode/display_width.rb | 2 +- spec/display_width_spec.rb | 4 ++++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fd7600a..afa0578 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # CHANGELOG +## 1.6.1 (unreleased) + +- Fix that ambiguous and overwrite options where ignored for emoji-measuring + ## 1.6.0 - Unicode 12.1 diff --git a/lib/unicode/display_width.rb b/lib/unicode/display_width.rb index 998d323..532223d 100644 --- a/lib/unicode/display_width.rb +++ b/lib/unicode/display_width.rb @@ -19,7 +19,7 @@ def self.of(string, ambiguous = 1, overwrite = {}, options = {}) total_width + (overwrite[codepoint] || width || 1) } - res -= emoji_extra_width_of(string) if options[:emoji] + res -= emoji_extra_width_of(string, ambiguous, overwrite) if options[:emoji] res < 0 ? 0 : res end diff --git a/spec/display_width_spec.rb b/spec/display_width_spec.rb index 217973c..b32a678 100644 --- a/spec/display_width_spec.rb +++ b/spec/display_width_spec.rb @@ -149,6 +149,10 @@ expect( "πŸ€ΎπŸ½β€β™€οΈ".display_width(1, {}, emoji: true) ).to eq 2 end + it 'respects different ambiguous values' do + expect( "πŸ€ΎπŸ½β€β™€οΈ".display_width(2, {}, emoji: true) ).to eq 2 + end + it 'works with flags' do expect( "πŸ‡΅πŸ‡Ή".display_width(1, {}, emoji: true) ).to eq 2 end From 4d3d214fc240428541bb76950a7519602f3a961a Mon Sep 17 00:00:00 2001 From: Jan Lelis Date: Thu, 16 Jan 2020 13:48:16 +0100 Subject: [PATCH 2/8] Release v1.6.1 --- CHANGELOG.md | 2 +- lib/unicode/display_width/constants.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index afa0578..61d88d2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # CHANGELOG -## 1.6.1 (unreleased) +## 1.6.1 - Fix that ambiguous and overwrite options where ignored for emoji-measuring diff --git a/lib/unicode/display_width/constants.rb b/lib/unicode/display_width/constants.rb index 95c5256..f8aed54 100644 --- a/lib/unicode/display_width/constants.rb +++ b/lib/unicode/display_width/constants.rb @@ -1,6 +1,6 @@ module Unicode module DisplayWidth - VERSION = '1.6.0' + VERSION = '1.6.1' UNICODE_VERSION = "12.1.0".freeze DATA_DIRECTORY = File.expand_path(File.dirname(__FILE__) + '/../../../data/').freeze INDEX_FILENAME = (DATA_DIRECTORY + '/display_width.marshal.gz').freeze From a40c191de15cb06b7492226fae75df31b3431040 Mon Sep 17 00:00:00 2001 From: Jan Lelis Date: Wed, 4 Mar 2020 22:35:17 +0100 Subject: [PATCH 3/8] Unicode 13 --- CHANGELOG.md | 4 ++++ README.md | 2 +- data/display_width.marshal.gz | Bin 1606 -> 1632 bytes lib/unicode/display_width/constants.rb | 2 +- 4 files changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 61d88d2..257238d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # CHANGELOG +## 1.7.0 (unreleased) + +- Unicode 13 + ## 1.6.1 - Fix that ambiguous and overwrite options where ignored for emoji-measuring diff --git a/README.md b/README.md index c0613f8..deee0f2 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ Determines the monospace display width of a string in Ruby. Implementation based on [EastAsianWidth.txt](https://www.unicode.org/Public/UNIDATA/EastAsianWidth.txt) and other data, 100% in Ruby. Other than [wcwidth()](https://github.com/janlelis/wcswidth-ruby), which fulfills a similar purpose, it does not rely on the OS vendor to provide an up-to-date method for measuring string width. -Unicode version: **12.1.0** (May 2019) +Unicode version: **13.0.0** (March 2020) Supported Rubies: **2.7**, **2.6**, **2.5**, **2.4** diff --git a/data/display_width.marshal.gz b/data/display_width.marshal.gz index ed74f455cc342c98f5958b0c78163f77a9f2dc5a..37514fe3c56cbc194a21109402c545529b7bc283 100644 GIT binary patch literal 1632 zcmV-m2A}yKiwFP}A7EYp1EpF?mfJ=Q?S-G!gSw;f9<{bsIR{Um`|rF8S%u+aDychS z%t#~(`1n8#fc@)rxh&Ul-Cx@JS?~9k``_&*SL4reZGV3M+uH4A`?KD+FZbW;eYtMG z$JLUr>&X7Op)&r_CHc$HM6#fT2GC0|(7O560O)441QARt5Yi)(V3s7I1>%>84_pl+T<>Kr(oR1>SkP4;=B0H6lLLTI7ZF++GjCi*w41<^E z^^vil6KEj09`XmCv7K{MXE=RU4VM6O*^^*T((kE<;5E?@9Wlh)NIk{cmM{rzGCl47 zl?ErXbGFZ9Rxukjs9{4CxEx*%2G{?|m+rZuBSnSAk@r)jvUa3d_zkFjHld?DxkU7= zT9PRxnu_JA$3C0&jk)nl?HSOaB3aHY!Ux-jS@TsN=Wq~@3(`b4F1<+Z_SEH^YHPtB z`x*U~F(G_D1DZ}0eQcFFpsU^;Tse0(#^{O%w7kokWe-Bj8|VESW-vSH8AU=}By`(B zXI8dxsrBiXtTK(JIMUH0cGRH^^r#}y?d4?CAJ}C~!9&V`biS1PBPkx^lRX<;wYza} z0ywdJt(s3kZ@MPwLg5ZJM!8P5yPk%kBEM+*Ntdi>3M`qfj%G*jNSFhE)AiUx$Y(t= z+eT5AGkN6#45}lok<3XO$3X=p1sByRykFu;`?ehj!dcyOdb0~&f2k!Cj1XJ$%oIva z7Hh-)3oFc6M&xfv;r_-` z+f_+iNUH+4YyFDBCCxE*R(U8bq>45$wq@Um^COGXye5%t_t+j}l6i3%BAScL^T8?26n>1*eZ0n7{FPk-m`$VLcsZ2o^YLxmwa(ue3gIlpemMAcs*`Wf5|a@~Y*eoW`aNc*yxH>q;-sYZ+?hjc#Uha{>G#16czI$o2CkxsjNWXd>n7VQ!klS7}+{6J?i2Mbu zZ`+JEs^H*n9YRCZtn3NVfC!IP!sk<9KR88A`{V+CEOFVEzKFbKwfS)UA~I^~0b7T}_L>Rb=y#rj%ctBW?o|d7nZu@eU1G+TkX>*& z*SC!cwkeFSZH|Z&c^A(lMhAGx>;mP>dj*`}EnflgI`Q&e`Hpj7R#RP_g{yh z(h;H}=1$cX>pS3slt2d3-74Q ziO&G7*DGVknQYgp?NB)>NqmsLu3M<#;p0eqnPAcqM{IpqTb77Jk+%WQbAO#-w)3NT zQnoy&NxtnI%jo9TZ zN6xlqt^28{Y{hX|GP;V(5LBdeYS7w)7cTUW{GaM;7d-iZo~!}U=>JUxbW{VXNnR8P epO025I%%vJF)hMU+T1X3?d3nUO}>~8C;$M$Iy%Y# literal 1606 zcmV-M2D$kkiwFSFg3??71D#q+cH24(&7h}FVkeP*`{1}9bsbuP_dn~X6iEOVKiY}Z zr^*xvT>MA^eZOAU%X;ni{iW2aKJPF0f7^raLf3jNe}4Zh<@U1uSD)L<{daw?*X?(| zOYmA}w(Ew>=trZZm(FR>0+%sid;|fdiLU~HH=!L6L9_rFe3%l%4hmALIFXGF!xnj- zwfaKWFj(<_fI8L4UwuaRN>M05du6b)`CI##jgZ~LGkOq!{cvuZ9%u%k2^b2sG9JGkB!>$#7So}SP;~DF>(yfN1i4~iKPcbQYtda&>*(f#>cUb3~v^NF7Q$; zzah-=1Tze}=JE%ck(_f8Whi_qhl_)`9tL3x((kbc=N0DQ6;X!Qo_fk^TfhWnlK@k5 zBi}?~&U%cKij0wC>N1#t3E_3&(HW$t6-OP%QWA3PVLxTcOGg-lF=NZ*E?XEYj-+Q% zFUTL}l&nR~(NT&QvV>h%&wvgY@!G8sKG-YN0x$e1U>&(%eI~qdoz_L3ETHwBzpMu!THh$j-!NWDNo!FwsPTmCF{n(n zHm<8S{H{C-XcuRW=CPwpC7?$k@oLwvD*VB^gvn_*A|T9{bTb@`aW8bM{?&;qP6e=t zwpQhQa(u(}N0te5hEdEV)$Vfe@r>*OX;Us;y&!p_+oc(t0v39cwbw$3b6y{5uI9Lg z!l~ARLP*LXb*RR9P%Lq6HA)iN8u3tl+xC8UEVnkj>E*6{lhR zg#kRJR7K|w&fa&LxvL_$U{)};Mc{nfwXujppLBpM0($Ie{F`&)lXNxxGjgp(BMVc_dj9h72^#tF=l1vjUw z%#tZKn-GiMJa`^W5_OBYtP{hgL3Tcf>FMvW&8XsFcYl?4b7b7HouWG?hDq%(lM~X$ z_>fii+MFT-HMYitRyj5%c~WkU!|UcV>8HHE^UW(d!>H#`#H6v9oYjIUa+Lf~$9S&! zQIL^8Uw3Jfl%-q>6DuOU%-=R>ci1u?_-?n^?SY>(F zLh>u{Hn`1c0SPW7;hckTO@Rd}-?71_x*|by zs_A`Ur9{pHQ!Rnu>gaDYF3(QiQ>+iQA)N)ufJMSK#f;q^y`EAiZ@UicLFioF`CujD z2AztE2JjTg1(UDu8Snvb{d9jih7Yp)$uJU8KNJ5=H3r=ngu_8q0y?w_i(VX$&GH{m^4TbjL#=xDDa6 z;F`O2V*8rw$o{9LdlrDGN`-(Jex= zO?h768cVyQ&>k%iuwNG{>(Y~2&?RXL+9_*H&DvJdVX9Oihw_*K^-`j2aE&d>CVLi* zj^O!8c~mj!HpzFyxbJ5J(nEgK)pt Date: Wed, 11 Mar 2020 14:33:34 +0100 Subject: [PATCH 4/8] Release v1.7.0 --- CHANGELOG.md | 2 +- lib/unicode/display_width/constants.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 257238d..021744b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # CHANGELOG -## 1.7.0 (unreleased) +## 1.7.0 - Unicode 13 diff --git a/lib/unicode/display_width/constants.rb b/lib/unicode/display_width/constants.rb index 7ad22ee..7bbdd01 100644 --- a/lib/unicode/display_width/constants.rb +++ b/lib/unicode/display_width/constants.rb @@ -1,6 +1,6 @@ module Unicode module DisplayWidth - VERSION = '1.6.1' + VERSION = '1.7.0' UNICODE_VERSION = "13.0.0".freeze DATA_DIRECTORY = File.expand_path(File.dirname(__FILE__) + '/../../../data/').freeze INDEX_FILENAME = (DATA_DIRECTORY + '/display_width.marshal.gz').freeze From 0d8cc1d03c9989d3adb5631c8b44ce23a418bc2a Mon Sep 17 00:00:00 2001 From: Jan Lelis Date: Sat, 11 Sep 2021 20:28:57 +0200 Subject: [PATCH 5/8] Unicode 14.0 --- data/display_width.marshal.gz | Bin 1632 -> 1646 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/data/display_width.marshal.gz b/data/display_width.marshal.gz index 37514fe3c56cbc194a21109402c545529b7bc283..7d573cb6f137e031611cf42a0728212395291b08 100644 GIT binary patch literal 1646 zcmV-!29fz6iwFQ|^*mt!1EpC>mg6=ItwmnD23NPodvG1Eat@uq_upj|k;L#Z$#%s` zE4Bmz9}@|n{(4_7%XMD&x3+%P`~B_yZ@scOm_UJh!{6BnJ`!-k-ii<5(-d;b~V&5A6&$7L-ZTud526WC5jq~5eO=OPzaDx_p9LIq?Zb}=xaZg6$_NQ*+ zS8grHV?CqZvL?9CM?lkL(Z_zzH9%LsJGgS&Ss$Y+9uUM2zSt|C<%2We17n%h^|nRR zI-lstglf6NHilxd>$K$%Of$T9)TIpds3eJ^Cz}djX+92ujuZ`P?j)5JzoT6a56o~h zT!TQ`BTjCEtSW{}8emZp_+4TT7J?J$*n!bTJfr5o-*kJ9 z5N33hYGnX-ZDi58#5wxTG7mk5w9^Jg-{u`TKe9N@Ya;2VMSqY{=3Qp+Xil;nN0!3s z$TqWYw%cQ8WK2@kL<2(KSgnIt9j%~cWygTnBfi%99L+qAK;!eJ=e0!x>bgBBfEo^* zCkrqkK>8>N6n>1*y}#yL{FPk-m_;Mud^wrx^Z9Mwwc+0x6GH98dN}wtRf$sVF*t!) zs^FG%)m6I0XA@$vhli}=MXGLdAMeC;q)^oWIX(ZMjv3Pq?C$US-4%&Du~T;C#IR@- zEHxn?j1O5&uWeIQpy+5UXpLiYk|*WXIHGPblYYwkm3L9mEsS;@M@$)uMKP8v(OU7_ z6zkIaYpvF10gH>=1R)fNX>QE0FQE^L<^64`5TyfE@S2bE8`N<6L%Mr0dG7;j+4Ns!%x zIsE%s1t%8vpV?Y&LIL2Mk ziSqzUr%yg-I$k~^i}5b5_ePTVQrOp&DB945%0o?$O=nMu88yf-CbBCTL|ZI-mOp+S zCQD}!C7G3!1F`%@y2QQ9@76%cHD=n}#shg=`UTyXyzv?Ql sXwAv{_GD!#a|?~U;m3=Qjb6ch-kEHiQ)-1mB7l7R4{G0lU41A300)&5Z~y=R literal 1632 zcmV-m2A}yKiwFP}A7EYp1EpF?mfJ=Q?S-G!gSw;f9<{bsIR{Um`|rF8S%u+aDychS z%t#~(`1n8#fc@)rxh&Ul-Cx@JS?~9k``_&*SL4reZGV3M+uH4A`?KD+FZbW;eYtMG z$JLUr>&X7Op)&r_CHc$HM6#fT2GC0|(7O560O)441QARt5Yi)(V3s7I1>%>84_pl+T<>Kr(oR1>SkP4;=B0H6lLLTI7ZF++GjCi*w41<^E z^^vil6KEj09`XmCv7K{MXE=RU4VM6O*^^*T((kE<;5E?@9Wlh)NIk{cmM{rzGCl47 zl?ErXbGFZ9Rxukjs9{4CxEx*%2G{?|m+rZuBSnSAk@r)jvUa3d_zkFjHld?DxkU7= zT9PRxnu_JA$3C0&jk)nl?HSOaB3aHY!Ux-jS@TsN=Wq~@3(`b4F1<+Z_SEH^YHPtB z`x*U~F(G_D1DZ}0eQcFFpsU^;Tse0(#^{O%w7kokWe-Bj8|VESW-vSH8AU=}By`(B zXI8dxsrBiXtTK(JIMUH0cGRH^^r#}y?d4?CAJ}C~!9&V`biS1PBPkx^lRX<;wYza} z0ywdJt(s3kZ@MPwLg5ZJM!8P5yPk%kBEM+*Ntdi>3M`qfj%G*jNSFhE)AiUx$Y(t= z+eT5AGkN6#45}lok<3XO$3X=p1sByRykFu;`?ehj!dcyOdb0~&f2k!Cj1XJ$%oIva z7Hh-)3oFc6M&xfv;r_-` z+f_+iNUH+4YyFDBCCxE*R(U8bq>45$wq@Um^COGXye5%t_t+j}l6i3%BAScL^T8?26n>1*eZ0n7{FPk-m`$VLcsZ2o^YLxmwa(ue3gIlpemMAcs*`Wf5|a@~Y*eoW`aNc*yxH>q;-sYZ+?hjc#Uha{>G#16czI$o2CkxsjNWXd>n7VQ!klS7}+{6J?i2Mbu zZ`+JEs^H*n9YRCZtn3NVfC!IP!sk<9KR88A`{V+CEOFVEzKFbKwfS)UA~I^~0b7T}_L>Rb=y#rj%ctBW?o|d7nZu@eU1G+TkX>*& z*SC!cwkeFSZH|Z&c^A(lMhAGx>;mP>dj*`}EnflgI`Q&e`Hpj7R#RP_g{yh z(h;H}=1$cX>pS3slt2d3-74Q ziO&G7*DGVknQYgp?NB)>NqmsLu3M<#;p0eqnPAcqM{IpqTb77Jk+%WQbAO#-w)3NT zQnoy&NxtnI%jo9TZ zN6xlqt^28{Y{hX|GP;V(5LBdeYS7w)7cTUW{GaM;7d-iZo~!}U=>JUxbW{VXNnR8P epO025I%%vJF)hMU+T1X3?d3nUO}>~8C;$M$Iy%Y# From d08d0435762f669778479920f764c1ab6940ee4a Mon Sep 17 00:00:00 2001 From: Jan Lelis Date: Sat, 11 Sep 2021 20:28:57 +0200 Subject: [PATCH 6/8] Update Unicode version number --- README.md | 2 +- lib/unicode/display_width/constants.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index deee0f2..dd45b8f 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ Determines the monospace display width of a string in Ruby. Implementation based on [EastAsianWidth.txt](https://www.unicode.org/Public/UNIDATA/EastAsianWidth.txt) and other data, 100% in Ruby. Other than [wcwidth()](https://github.com/janlelis/wcswidth-ruby), which fulfills a similar purpose, it does not rely on the OS vendor to provide an up-to-date method for measuring string width. -Unicode version: **13.0.0** (March 2020) +Unicode version: **14.0.0** (September 2021) Supported Rubies: **2.7**, **2.6**, **2.5**, **2.4** diff --git a/lib/unicode/display_width/constants.rb b/lib/unicode/display_width/constants.rb index 7bbdd01..28ec801 100644 --- a/lib/unicode/display_width/constants.rb +++ b/lib/unicode/display_width/constants.rb @@ -1,7 +1,7 @@ module Unicode module DisplayWidth VERSION = '1.7.0' - UNICODE_VERSION = "13.0.0".freeze + UNICODE_VERSION = "14.0.0" DATA_DIRECTORY = File.expand_path(File.dirname(__FILE__) + '/../../../data/').freeze INDEX_FILENAME = (DATA_DIRECTORY + '/display_width.marshal.gz').freeze end From 426a77f108d07dc41a10e2b471263d527d60eb16 Mon Sep 17 00:00:00 2001 From: Jan Lelis Date: Sat, 11 Sep 2021 20:30:49 +0200 Subject: [PATCH 7/8] Update CHANGELOG --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 021744b..7987146 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # CHANGELOG +## 1.8.0 (unreleased) + +- Unicode 14.0 (last release of 1.x) + ## 1.7.0 - Unicode 13 From 354a228a5e39b238a3d109225de8ae555cfa4ec4 Mon Sep 17 00:00:00 2001 From: Jan Lelis Date: Wed, 15 Sep 2021 15:55:29 +0200 Subject: [PATCH 8/8] Release v1.8.0 --- CHANGELOG.md | 2 +- lib/unicode/display_width/constants.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7987146..7b0fe3f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # CHANGELOG -## 1.8.0 (unreleased) +## 1.8.0 - Unicode 14.0 (last release of 1.x) diff --git a/lib/unicode/display_width/constants.rb b/lib/unicode/display_width/constants.rb index 28ec801..dec3848 100644 --- a/lib/unicode/display_width/constants.rb +++ b/lib/unicode/display_width/constants.rb @@ -1,6 +1,6 @@ module Unicode module DisplayWidth - VERSION = '1.7.0' + VERSION = '1.8.0' UNICODE_VERSION = "14.0.0" DATA_DIRECTORY = File.expand_path(File.dirname(__FILE__) + '/../../../data/').freeze INDEX_FILENAME = (DATA_DIRECTORY + '/display_width.marshal.gz').freeze pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy