未验证 提交 7c6937e7 编写于 作者: E ebraminio 提交者: GitHub

Move all references of old url to the new address (#622)

上级 baf7779d
...@@ -30,7 +30,7 @@ script: ...@@ -30,7 +30,7 @@ script:
- ./configure $CONFIGURE_OPTS - ./configure $CONFIGURE_OPTS
- make - make
- make check || (cat */test-suite.log test/*/test-suite.log && false) - make check || (cat */test-suite.log test/*/test-suite.log && false)
- if [ "$TRAVIS_OS_NAME" == "linux" -a "$CC" == "gcc" -a "$TRAVIS_SLUG" == "behdad/harfbuzz" ]; then rm -f src/.libs/NONE.gcov; touch src/NONE; coveralls -e docs; fi - if [ "$TRAVIS_OS_NAME" == "linux" -a "$CC" == "gcc" -a "$TRAVIS_SLUG" == "harfbuzz/harfbuzz" ]; then rm -f src/.libs/NONE.gcov; touch src/NONE; coveralls -e docs; fi
after_success: after_success:
- if [ "$TRAVIS_OS_NAME" == "linux" -a "$CC" == "gcc" -a "$TRAVIS_SECURE_ENV_VARS" == "true" ]; then bash .ci/deploy-docs.sh; fi - if [ "$TRAVIS_OS_NAME" == "linux" -a "$CC" == "gcc" -a "$TRAVIS_SECURE_ENV_VARS" == "true" ]; then bash .ci/deploy-docs.sh; fi
notifications: notifications:
......
...@@ -9,7 +9,7 @@ on Windows, consider using [vcpkg](https://github.com/Microsoft/vcpkg), ...@@ -9,7 +9,7 @@ on Windows, consider using [vcpkg](https://github.com/Microsoft/vcpkg),
provided by Microsoft, for building HarfBuzz and other open-source libraries provided by Microsoft, for building HarfBuzz and other open-source libraries
but if you need to build harfbuzz from source, put ragel binary on your but if you need to build harfbuzz from source, put ragel binary on your
PATH and follow appveyor CI's cmake PATH and follow appveyor CI's cmake
[build steps](https://github.com/behdad/harfbuzz/blob/master/appveyor.yml). [build steps](https://github.com/harfbuzz/harfbuzz/blob/master/appveyor.yml).
on macOS, using MacPorts: on macOS, using MacPorts:
* sudo port install freetype glib2 cairo * sudo port install freetype glib2 cairo
......
...@@ -146,7 +146,7 @@ if (NOT IN_HB_DIST) ...@@ -146,7 +146,7 @@ if (NOT IN_HB_DIST)
if (RAGEL) if (RAGEL)
message(STATUS "ragel found at: ${RAGEL}") message(STATUS "ragel found at: ${RAGEL}")
else () else ()
message(FATAL_ERROR "ragel not found, get it here -- http://www.complang.org/ragel/ or, use harfbuzz releases https://github.com/behdad/harfbuzz/releases") message(FATAL_ERROR "ragel not found, get it here -- http://www.complang.org/ragel/ or, use harfbuzz releases https://github.com/harfbuzz/harfbuzz/releases")
endif () endif ()
foreach (ragel_output IN ITEMS ${HB_BASE_RAGEL_GENERATED_sources} ${HB_OT_RAGEL_GENERATED_sources}) foreach (ragel_output IN ITEMS ${HB_BASE_RAGEL_GENERATED_sources} ${HB_OT_RAGEL_GENERATED_sources})
......
...@@ -33,7 +33,7 @@ Monday, October 23nd, 2017 ...@@ -33,7 +33,7 @@ Monday, October 23nd, 2017
- Yesterday's release had a bad crasher; don't use it. That's what - Yesterday's release had a bad crasher; don't use it. That's what
happens when one works on Sunday... happens when one works on Sunday...
https://github.com/behdad/harfbuzz/issues/578 https://github.com/harfbuzz/harfbuzz/issues/578
- Build fixes for FreeBSD and Chrome Android. - Build fixes for FreeBSD and Chrome Android.
...@@ -42,7 +42,7 @@ Sunday, October 22nd, 2017 ...@@ -42,7 +42,7 @@ Sunday, October 22nd, 2017
==================================== ====================================
- Don't skip over COMBINING GRAPHEME JOINER when ligating, etc. - Don't skip over COMBINING GRAPHEME JOINER when ligating, etc.
To be refined: https://github.com/behdad/harfbuzz/issues/554 To be refined: https://github.com/harfbuzz/harfbuzz/issues/554
- Faster hb_set_t implementation. - Faster hb_set_t implementation.
- Don't use deprecated ICU API. - Don't use deprecated ICU API.
- Fix undefined-behavior in Myanmar shaper, introduced in 1.6.0 - Fix undefined-behavior in Myanmar shaper, introduced in 1.6.0
...@@ -443,7 +443,7 @@ Tuesday, February 23, 2016 ...@@ -443,7 +443,7 @@ Tuesday, February 23, 2016
- CoreText: Drastically speed up font initialization. - CoreText: Drastically speed up font initialization.
- CoreText: Fix tiny leak. - CoreText: Fix tiny leak.
- Group ZWJ/ZWNJ with previous syllable under cluster-level=0. - Group ZWJ/ZWNJ with previous syllable under cluster-level=0.
https://github.com/behdad/harfbuzz/issues/217 https://github.com/harfbuzz/harfbuzz/issues/217
- Add test/shaping/README.md about how to add tests to the suite. - Add test/shaping/README.md about how to add tests to the suite.
...@@ -459,8 +459,8 @@ Friday, February 19, 2016 ...@@ -459,8 +459,8 @@ Friday, February 19, 2016
- Allow GPOS cursive connection on marks, and fix the interaction with - Allow GPOS cursive connection on marks, and fix the interaction with
mark attachment. This work resulted in some changes to how mark mark attachment. This work resulted in some changes to how mark
attachments work. See: attachments work. See:
https://github.com/behdad/harfbuzz/issues/211 https://github.com/harfbuzz/harfbuzz/issues/211
https://github.com/behdad/harfbuzz/commit/86c68c7a2c971efe8e35b1f1bd99401dc8b688d2 https://github.com/harfbuzz/harfbuzz/commit/86c68c7a2c971efe8e35b1f1bd99401dc8b688d2
- Graphite2 shaper: improved negative advance handling (eg. Nastaliq). - Graphite2 shaper: improved negative advance handling (eg. Nastaliq).
- Add nmake-based build system for Windows. - Add nmake-based build system for Windows.
- Minor speedup. - Minor speedup.
...@@ -501,7 +501,7 @@ Wednesday, November 26, 2015 ...@@ -501,7 +501,7 @@ Wednesday, November 26, 2015
==================================== ====================================
- Fix badly-broken fallback shaper that affected terminology. - Fix badly-broken fallback shaper that affected terminology.
https://github.com/behdad/harfbuzz/issues/187 https://github.com/harfbuzz/harfbuzz/issues/187
- Fix y_scaling in Graphite shaper. - Fix y_scaling in Graphite shaper.
- API changes: - API changes:
* An unset glyph_h_origin() function in font-funcs now (sensibly) * An unset glyph_h_origin() function in font-funcs now (sensibly)
...@@ -523,11 +523,11 @@ Wednesday, November 18, 2015 ...@@ -523,11 +523,11 @@ Wednesday, November 18, 2015
==================================== ====================================
- Implement 'stch' stretch feature for Syriac Abbreviation Mark. - Implement 'stch' stretch feature for Syriac Abbreviation Mark.
https://github.com/behdad/harfbuzz/issues/141 https://github.com/harfbuzz/harfbuzz/issues/141
- Disable use of decompose_compatibility() callback. - Disable use of decompose_compatibility() callback.
- Implement "shaping" of various Unicode space characters, even - Implement "shaping" of various Unicode space characters, even
if the font does not support them. if the font does not support them.
https://github.com/behdad/harfbuzz/issues/153 https://github.com/harfbuzz/harfbuzz/issues/153
- If font does not support U+2011 NO-BREAK HYPHEN, fallback to - If font does not support U+2011 NO-BREAK HYPHEN, fallback to
U+2010 HYPHEN. U+2010 HYPHEN.
- Changes resulting from libFuzzer continuous fuzzing: - Changes resulting from libFuzzer continuous fuzzing:
...@@ -550,7 +550,7 @@ Thursday, October 15, 2015 ...@@ -550,7 +550,7 @@ Thursday, October 15, 2015
- Revert default load-flags of fonts created using hb_ft_font_create() - Revert default load-flags of fonts created using hb_ft_font_create()
back to FT_LOAD_DEFAULT|FT_LOAD_NO_HINTING. This was changed in back to FT_LOAD_DEFAULT|FT_LOAD_NO_HINTING. This was changed in
last release (1.0.5), but caused major issues, so revert. last release (1.0.5), but caused major issues, so revert.
https://github.com/behdad/harfbuzz/issues/143 https://github.com/harfbuzz/harfbuzz/issues/143
Overview of changes leading to 1.0.5 Overview of changes leading to 1.0.5
...@@ -558,7 +558,7 @@ Tuesday, October 13, 2015 ...@@ -558,7 +558,7 @@ Tuesday, October 13, 2015
==================================== ====================================
- Fix multiple memory access bugs discovered using libFuzzer. - Fix multiple memory access bugs discovered using libFuzzer.
https://github.com/behdad/harfbuzz/issues/139 https://github.com/harfbuzz/harfbuzz/issues/139
Everyone should upgrade to this version as soon as possible. Everyone should upgrade to this version as soon as possible.
We now have continuous fuzzing set up, to avoid issues like We now have continuous fuzzing set up, to avoid issues like
these creeping in again. these creeping in again.
......
[![Build Status](https://travis-ci.org/behdad/harfbuzz.svg)](https://travis-ci.org/behdad/harfbuzz) [![Build Status](https://travis-ci.org/harfbuzz/harfbuzz.svg)](https://travis-ci.org/harfbuzz/harfbuzz)
[![Build Status](https://ci.appveyor.com/api/projects/status/4oaq58ns2h0m2soa?svg=true)](https://ci.appveyor.com/project/behdad/harfbuzz) [![Build Status](https://ci.appveyor.com/api/projects/status/4oaq58ns2h0m2soa?svg=true)](https://ci.appveyor.com/project/harfbuzz/harfbuzz)
[![CircleCI](https://circleci.com/gh/behdad/harfbuzz.svg?style=svg)](https://circleci.com/gh/behdad/harfbuzz) [![CircleCI](https://circleci.com/gh/harfbuzz/harfbuzz.svg?style=svg)](https://circleci.com/gh/harfbuzz/harfbuzz)
[![Coverage Status](https://img.shields.io/coveralls/behdad/harfbuzz.svg)](https://coveralls.io/r/behdad/harfbuzz) [![Coverage Status](https://img.shields.io/coveralls/harfbuzz/harfbuzz.svg)](https://coveralls.io/r/harfbuzz/harfbuzz)
[ABI Tracker](http://abi-laboratory.pro/tracker/timeline/harfbuzz/) [ABI Tracker](http://abi-laboratory.pro/tracker/timeline/harfbuzz/)
This is HarfBuzz, a text shaping library. This is HarfBuzz, a text shaping library.
......
...@@ -59,7 +59,7 @@ HarfBuzz release walk-through checklist: ...@@ -59,7 +59,7 @@ HarfBuzz release walk-through checklist:
12. Push the commit and tag out: "git push --follow-tags". Make sure it's 12. Push the commit and tag out: "git push --follow-tags". Make sure it's
pushed both to freedesktop repo and github. pushed both to freedesktop repo and github.
13. Go to GitHub release page [here](https://github.com/behdad/harfbuzz/releases), 13. Go to GitHub release page [here](https://github.com/harfbuzz/harfbuzz/releases),
edit the tag, upload artefacts and NEWS entry and save. edit the tag, upload artefacts and NEWS entry and save.
......
AC_PREREQ([2.64]) AC_PREREQ([2.64])
AC_INIT([HarfBuzz], AC_INIT([HarfBuzz],
[1.7.1], [1.7.1],
[https://github.com/behdad/harfbuzz/issues/new], [https://github.com/harfbuzz/harfbuzz/issues/new],
[harfbuzz], [harfbuzz],
[http://harfbuzz.org/]) [http://harfbuzz.org/])
......
docs/HarfBuzz.png

3.3 KB | W: | H:

docs/HarfBuzz.png

12.4 KB | W: | H:

docs/HarfBuzz.png
docs/HarfBuzz.png
docs/HarfBuzz.png
docs/HarfBuzz.png
  • 2-up
  • Swipe
  • Onion skin
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
source tree is available source tree is available
<ulink url="http://cgit.freedesktop.org/harfbuzz/">here</ulink>. <ulink url="http://cgit.freedesktop.org/harfbuzz/">here</ulink>.
Also available on Also available on
<ulink url="https://github.com/behdad/harfbuzz">github</ulink>. <ulink url="https://github.com/harfbuzz/harfbuzz">github</ulink>.
See <xref linkend="download" endterm="download.title"/> for release tarballs. See <xref linkend="download" endterm="download.title"/> for release tarballs.
</para> </para>
<para> <para>
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
<para> <para>
The canonical source tree is available The canonical source tree is available
<ulink url="http://cgit.freedesktop.org/harfbuzz/">here</ulink>. <ulink url="http://cgit.freedesktop.org/harfbuzz/">here</ulink>.
Also available on <ulink url="https://github.com/behdad/harfbuzz">github</ulink>. Also available on <ulink url="https://github.com/harfbuzz/harfbuzz">github</ulink>.
</para> </para>
<para> <para>
The API that comes with <filename class='headerfile'>hb.h</filename> will The API that comes with <filename class='headerfile'>hb.h</filename> will
......
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
<!--download-page <!--download-page
rdf:resource=""/--> rdf:resource=""/-->
<bug-database <bug-database
rdf:resource="https://github.com/behdad/harfbuzz/issues" /> rdf:resource="https://github.com/harfbuzz/harfbuzz/issues" />
<maintainer> <maintainer>
<foaf:Person> <foaf:Person>
......
...@@ -301,10 +301,10 @@ def map_to_use(data): ...@@ -301,10 +301,10 @@ def map_to_use(data):
# the nasalization marks, maybe only for U+1CE9..U+1CF1. # the nasalization marks, maybe only for U+1CE9..U+1CF1.
if U == 0x1CED: UISC = Tone_Mark if U == 0x1CED: UISC = Tone_Mark
# TODO: https://github.com/behdad/harfbuzz/issues/525 # TODO: https://github.com/harfbuzz/harfbuzz/issues/525
if U == 0x1A7F: UISC = Consonant_Final; UIPC = Bottom if U == 0x1A7F: UISC = Consonant_Final; UIPC = Bottom
# TODO: https://github.com/behdad/harfbuzz/pull/609 # TODO: https://github.com/harfbuzz/harfbuzz/pull/609
if U == 0x20F0: UISC = Cantillation_Mark; UIPC = Top if U == 0x20F0: UISC = Cantillation_Mark; UIPC = Top
values = [k for k,v in items if v(U,UISC,UGC)] values = [k for k,v in items if v(U,UISC,UGC)]
......
...@@ -1000,7 +1000,7 @@ resize_and_retry: ...@@ -1000,7 +1000,7 @@ resize_and_retry:
* However, even that wouldn't work if we were passed in the CGFont to * However, even that wouldn't work if we were passed in the CGFont to
* construct a hb_face to begin with. * construct a hb_face to begin with.
* *
* See: http://github.com/behdad/harfbuzz/pull/36 * See: http://github.com/harfbuzz/harfbuzz/pull/36
* *
* Also see: https://bugs.chromium.org/p/chromium/issues/detail?id=597098 * Also see: https://bugs.chromium.org/p/chromium/issues/detail?id=597098
*/ */
......
...@@ -272,7 +272,7 @@ template <typename ret_t> /* Make sure we don't use hb_auto_trace_t when not tra ...@@ -272,7 +272,7 @@ template <typename ret_t> /* Make sure we don't use hb_auto_trace_t when not tra
struct hb_auto_trace_t<0, ret_t>; struct hb_auto_trace_t<0, ret_t>;
/* For disabled tracing; optimize out everything. /* For disabled tracing; optimize out everything.
* https://github.com/behdad/harfbuzz/pull/605 */ * https://github.com/harfbuzz/harfbuzz/pull/605 */
template <typename ret_t> template <typename ret_t>
struct hb_no_trace_t { struct hb_no_trace_t {
inline ret_t ret (ret_t v, unsigned int line HB_UNUSED = 0) { return v; } inline ret_t ret (ret_t v, unsigned int line HB_UNUSED = 0) { return v; }
......
...@@ -44,7 +44,7 @@ struct SingleSubstFormat1 ...@@ -44,7 +44,7 @@ struct SingleSubstFormat1
for (iter.init (this+coverage); iter.more (); iter.next ()) for (iter.init (this+coverage); iter.more (); iter.next ())
{ {
/* TODO Switch to range-based API to work around malicious fonts. /* TODO Switch to range-based API to work around malicious fonts.
* https://github.com/behdad/harfbuzz/issues/363 */ * https://github.com/harfbuzz/harfbuzz/issues/363 */
hb_codepoint_t glyph_id = iter.get_glyph (); hb_codepoint_t glyph_id = iter.get_glyph ();
if (c->glyphs->has (glyph_id)) if (c->glyphs->has (glyph_id))
c->glyphs->add ((glyph_id + deltaGlyphID) & 0xFFFFu); c->glyphs->add ((glyph_id + deltaGlyphID) & 0xFFFFu);
...@@ -58,7 +58,7 @@ struct SingleSubstFormat1 ...@@ -58,7 +58,7 @@ struct SingleSubstFormat1
for (iter.init (this+coverage); iter.more (); iter.next ()) for (iter.init (this+coverage); iter.more (); iter.next ())
{ {
/* TODO Switch to range-based API to work around malicious fonts. /* TODO Switch to range-based API to work around malicious fonts.
* https://github.com/behdad/harfbuzz/issues/363 */ * https://github.com/harfbuzz/harfbuzz/issues/363 */
hb_codepoint_t glyph_id = iter.get_glyph (); hb_codepoint_t glyph_id = iter.get_glyph ();
c->input->add (glyph_id); c->input->add (glyph_id);
c->output->add ((glyph_id + deltaGlyphID) & 0xFFFFu); c->output->add ((glyph_id + deltaGlyphID) & 0xFFFFu);
...@@ -130,7 +130,7 @@ struct SingleSubstFormat2 ...@@ -130,7 +130,7 @@ struct SingleSubstFormat2
for (iter.init (this+coverage); iter.more (); iter.next ()) for (iter.init (this+coverage); iter.more (); iter.next ())
{ {
if (unlikely (iter.get_coverage () >= count)) if (unlikely (iter.get_coverage () >= count))
break; /* Work around malicious fonts. https://github.com/behdad/harfbuzz/issues/363 */ break; /* Work around malicious fonts. https://github.com/harfbuzz/harfbuzz/issues/363 */
if (c->glyphs->has (iter.get_glyph ())) if (c->glyphs->has (iter.get_glyph ()))
c->glyphs->add (substitute[iter.get_coverage ()]); c->glyphs->add (substitute[iter.get_coverage ()]);
} }
...@@ -144,7 +144,7 @@ struct SingleSubstFormat2 ...@@ -144,7 +144,7 @@ struct SingleSubstFormat2
for (iter.init (this+coverage); iter.more (); iter.next ()) for (iter.init (this+coverage); iter.more (); iter.next ())
{ {
if (unlikely (iter.get_coverage () >= count)) if (unlikely (iter.get_coverage () >= count))
break; /* Work around malicious fonts. https://github.com/behdad/harfbuzz/issues/363 */ break; /* Work around malicious fonts. https://github.com/harfbuzz/harfbuzz/issues/363 */
c->input->add (iter.get_glyph ()); c->input->add (iter.get_glyph ());
c->output->add (substitute[iter.get_coverage ()]); c->output->add (substitute[iter.get_coverage ()]);
} }
...@@ -287,7 +287,7 @@ struct Sequence ...@@ -287,7 +287,7 @@ struct Sequence
return_trace (true); return_trace (true);
} }
/* Spec disallows this, but Uniscribe allows it. /* Spec disallows this, but Uniscribe allows it.
* https://github.com/behdad/harfbuzz/issues/253 */ * https://github.com/harfbuzz/harfbuzz/issues/253 */
else if (unlikely (count == 0)) else if (unlikely (count == 0))
{ {
c->buffer->delete_glyph (); c->buffer->delete_glyph ();
...@@ -339,7 +339,7 @@ struct MultipleSubstFormat1 ...@@ -339,7 +339,7 @@ struct MultipleSubstFormat1
for (iter.init (this+coverage); iter.more (); iter.next ()) for (iter.init (this+coverage); iter.more (); iter.next ())
{ {
if (unlikely (iter.get_coverage () >= count)) if (unlikely (iter.get_coverage () >= count))
break; /* Work around malicious fonts. https://github.com/behdad/harfbuzz/issues/363 */ break; /* Work around malicious fonts. https://github.com/harfbuzz/harfbuzz/issues/363 */
if (c->glyphs->has (iter.get_glyph ())) if (c->glyphs->has (iter.get_glyph ()))
(this+sequence[iter.get_coverage ()]).closure (c); (this+sequence[iter.get_coverage ()]).closure (c);
} }
...@@ -461,7 +461,7 @@ struct AlternateSubstFormat1 ...@@ -461,7 +461,7 @@ struct AlternateSubstFormat1
for (iter.init (this+coverage); iter.more (); iter.next ()) for (iter.init (this+coverage); iter.more (); iter.next ())
{ {
if (unlikely (iter.get_coverage () >= count)) if (unlikely (iter.get_coverage () >= count))
break; /* Work around malicious fonts. https://github.com/behdad/harfbuzz/issues/363 */ break; /* Work around malicious fonts. https://github.com/harfbuzz/harfbuzz/issues/363 */
if (c->glyphs->has (iter.get_glyph ())) { if (c->glyphs->has (iter.get_glyph ())) {
const AlternateSet &alt_set = this+alternateSet[iter.get_coverage ()]; const AlternateSet &alt_set = this+alternateSet[iter.get_coverage ()];
unsigned int count = alt_set.len; unsigned int count = alt_set.len;
...@@ -479,7 +479,7 @@ struct AlternateSubstFormat1 ...@@ -479,7 +479,7 @@ struct AlternateSubstFormat1
for (iter.init (this+coverage); iter.more (); iter.next ()) for (iter.init (this+coverage); iter.more (); iter.next ())
{ {
if (unlikely (iter.get_coverage () >= count)) if (unlikely (iter.get_coverage () >= count))
break; /* Work around malicious fonts. https://github.com/behdad/harfbuzz/issues/363 */ break; /* Work around malicious fonts. https://github.com/harfbuzz/harfbuzz/issues/363 */
c->input->add (iter.get_glyph ()); c->input->add (iter.get_glyph ());
const AlternateSet &alt_set = this+alternateSet[iter.get_coverage ()]; const AlternateSet &alt_set = this+alternateSet[iter.get_coverage ()];
unsigned int count = alt_set.len; unsigned int count = alt_set.len;
...@@ -792,7 +792,7 @@ struct LigatureSubstFormat1 ...@@ -792,7 +792,7 @@ struct LigatureSubstFormat1
for (iter.init (this+coverage); iter.more (); iter.next ()) for (iter.init (this+coverage); iter.more (); iter.next ())
{ {
if (unlikely (iter.get_coverage () >= count)) if (unlikely (iter.get_coverage () >= count))
break; /* Work around malicious fonts. https://github.com/behdad/harfbuzz/issues/363 */ break; /* Work around malicious fonts. https://github.com/harfbuzz/harfbuzz/issues/363 */
if (c->glyphs->has (iter.get_glyph ())) if (c->glyphs->has (iter.get_glyph ()))
(this+ligatureSet[iter.get_coverage ()]).closure (c); (this+ligatureSet[iter.get_coverage ()]).closure (c);
} }
...@@ -806,7 +806,7 @@ struct LigatureSubstFormat1 ...@@ -806,7 +806,7 @@ struct LigatureSubstFormat1
for (iter.init (this+coverage); iter.more (); iter.next ()) for (iter.init (this+coverage); iter.more (); iter.next ())
{ {
if (unlikely (iter.get_coverage () >= count)) if (unlikely (iter.get_coverage () >= count))
break; /* Work around malicious fonts. https://github.com/behdad/harfbuzz/issues/363 */ break; /* Work around malicious fonts. https://github.com/harfbuzz/harfbuzz/issues/363 */
c->input->add (iter.get_glyph ()); c->input->add (iter.get_glyph ());
(this+ligatureSet[iter.get_coverage ()]).collect_glyphs (c); (this+ligatureSet[iter.get_coverage ()]).collect_glyphs (c);
} }
...@@ -961,7 +961,7 @@ struct ReverseChainSingleSubstFormat1 ...@@ -961,7 +961,7 @@ struct ReverseChainSingleSubstFormat1
for (iter.init (this+coverage); iter.more (); iter.next ()) for (iter.init (this+coverage); iter.more (); iter.next ())
{ {
if (unlikely (iter.get_coverage () >= count)) if (unlikely (iter.get_coverage () >= count))
break; /* Work around malicious fonts. https://github.com/behdad/harfbuzz/issues/363 */ break; /* Work around malicious fonts. https://github.com/harfbuzz/harfbuzz/issues/363 */
if (c->glyphs->has (iter.get_glyph ())) if (c->glyphs->has (iter.get_glyph ()))
c->glyphs->add (substitute[iter.get_coverage ()]); c->glyphs->add (substitute[iter.get_coverage ()]);
} }
......
...@@ -711,7 +711,7 @@ static inline bool match_input (hb_apply_context_t *c, ...@@ -711,7 +711,7 @@ static inline bool match_input (hb_apply_context_t *c,
* o If two marks want to ligate and they belong to different components of the * o If two marks want to ligate and they belong to different components of the
* same ligature glyph, and said ligature glyph is to be ignored according to * same ligature glyph, and said ligature glyph is to be ignored according to
* mark-filtering rules, then allow. * mark-filtering rules, then allow.
* https://github.com/behdad/harfbuzz/issues/545 * https://github.com/harfbuzz/harfbuzz/issues/545
*/ */
bool is_mark_ligature = _hb_glyph_info_is_mark (&buffer->cur()); bool is_mark_ligature = _hb_glyph_info_is_mark (&buffer->cur());
......
...@@ -273,13 +273,13 @@ _hb_glyph_info_set_unicode_props (hb_glyph_info_t *info, hb_buffer_t *buffer) ...@@ -273,13 +273,13 @@ _hb_glyph_info_set_unicode_props (hb_glyph_info_t *info, hb_buffer_t *buffer)
* what we do for joiners in Indic-like shapers, but since the * what we do for joiners in Indic-like shapers, but since the
* FVSes are GC=Mn, we have use a separate bit to remember them. * FVSes are GC=Mn, we have use a separate bit to remember them.
* Fixes: * Fixes:
* https://github.com/behdad/harfbuzz/issues/234 */ * https://github.com/harfbuzz/harfbuzz/issues/234 */
else if (unlikely (hb_in_range (u, 0x180Bu, 0x180Du))) props |= UPROPS_MASK_HIDDEN; else if (unlikely (hb_in_range (u, 0x180Bu, 0x180Du))) props |= UPROPS_MASK_HIDDEN;
/* TAG characters need similar treatment. Fixes: /* TAG characters need similar treatment. Fixes:
* https://github.com/behdad/harfbuzz/issues/463 */ * https://github.com/harfbuzz/harfbuzz/issues/463 */
else if (unlikely (hb_in_range (u, 0xE0020u, 0xE007Fu))) props |= UPROPS_MASK_HIDDEN; else if (unlikely (hb_in_range (u, 0xE0020u, 0xE007Fu))) props |= UPROPS_MASK_HIDDEN;
/* COMBINING GRAPHEME JOINER should not be skipped; at least some times. /* COMBINING GRAPHEME JOINER should not be skipped; at least some times.
* https://github.com/behdad/harfbuzz/issues/554 */ * https://github.com/harfbuzz/harfbuzz/issues/554 */
else if (unlikely (u == 0x034Fu)) props |= UPROPS_MASK_HIDDEN; else if (unlikely (u == 0x034Fu)) props |= UPROPS_MASK_HIDDEN;
} }
else if (unlikely (HB_UNICODE_GENERAL_CATEGORY_IS_NON_ENCLOSING_MARK_OR_MODIFIER_SYMBOL (gen_cat))) else if (unlikely (HB_UNICODE_GENERAL_CATEGORY_IS_NON_ENCLOSING_MARK_OR_MODIFIER_SYMBOL (gen_cat)))
...@@ -305,7 +305,7 @@ _hb_glyph_info_set_unicode_props (hb_glyph_info_t *info, hb_buffer_t *buffer) ...@@ -305,7 +305,7 @@ _hb_glyph_info_set_unicode_props (hb_glyph_info_t *info, hb_buffer_t *buffer)
/* Recategorize emoji skin-tone modifiers as Unicode mark, so they /* Recategorize emoji skin-tone modifiers as Unicode mark, so they
* behave correctly in non-native directionality. They originally * behave correctly in non-native directionality. They originally
* are MODIFIER_SYMBOL. Fixes: * are MODIFIER_SYMBOL. Fixes:
* https://github.com/behdad/harfbuzz/issues/169 * https://github.com/harfbuzz/harfbuzz/issues/169
*/ */
if (unlikely (hb_in_range (u, 0x1F3FBu, 0x1F3FFu))) if (unlikely (hb_in_range (u, 0x1F3FBu, 0x1F3FFu)))
{ {
......
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
#define HB_BUFFER_SCRATCH_FLAG_ARABIC_HAS_STCH HB_BUFFER_SCRATCH_FLAG_COMPLEX0 #define HB_BUFFER_SCRATCH_FLAG_ARABIC_HAS_STCH HB_BUFFER_SCRATCH_FLAG_COMPLEX0
/* See: /* See:
* https://github.com/behdad/harfbuzz/commit/6e6f82b6f3dde0fc6c3c7d991d9ec6cfff57823d#commitcomment-14248516 */ * https://github.com/harfbuzz/harfbuzz/commit/6e6f82b6f3dde0fc6c3c7d991d9ec6cfff57823d#commitcomment-14248516 */
#define HB_ARABIC_GENERAL_CATEGORY_IS_WORD(gen_cat) \ #define HB_ARABIC_GENERAL_CATEGORY_IS_WORD(gen_cat) \
(FLAG_UNSAFE (gen_cat) & \ (FLAG_UNSAFE (gen_cat) & \
(FLAG (HB_UNICODE_GENERAL_CATEGORY_UNASSIGNED) | \ (FLAG (HB_UNICODE_GENERAL_CATEGORY_UNASSIGNED) | \
...@@ -198,7 +198,7 @@ collect_features_arabic (hb_ot_shape_planner_t *plan) ...@@ -198,7 +198,7 @@ collect_features_arabic (hb_ot_shape_planner_t *plan)
* pause for Arabic, not other scripts. * pause for Arabic, not other scripts.
* *
* A pause after calt is required to make KFGQPC Uthmanic Script HAFS * A pause after calt is required to make KFGQPC Uthmanic Script HAFS
* work correctly. See https://github.com/behdad/harfbuzz/issues/505 * work correctly. See https://github.com/harfbuzz/harfbuzz/issues/505
*/ */
map->add_gsub_pause (nuke_joiners); map->add_gsub_pause (nuke_joiners);
......
...@@ -161,7 +161,7 @@ disable_otl_hebrew (const hb_ot_shape_plan_t *plan) ...@@ -161,7 +161,7 @@ disable_otl_hebrew (const hb_ot_shape_plan_t *plan)
* script. This matches Uniscribe better, and makes fonts like * script. This matches Uniscribe better, and makes fonts like
* Arial that have GSUB/GPOS/GDEF but no data for Hebrew work. * Arial that have GSUB/GPOS/GDEF but no data for Hebrew work.
* See: * See:
* https://github.com/behdad/harfbuzz/issues/347#issuecomment-267838368 * https://github.com/harfbuzz/harfbuzz/issues/347#issuecomment-267838368
*/ */
return plan->map.chosen_script[1] != HB_TAG ('h','e','b','r'); return plan->map.chosen_script[1] != HB_TAG ('h','e','b','r');
} }
......
...@@ -123,7 +123,7 @@ enum indic_syllabic_category_t { ...@@ -123,7 +123,7 @@ enum indic_syllabic_category_t {
INDIC_SYLLABIC_CATEGORY_CONSONANT_SUBJOINED = OT_CM, INDIC_SYLLABIC_CATEGORY_CONSONANT_SUBJOINED = OT_CM,
INDIC_SYLLABIC_CATEGORY_CONSONANT_SUCCEEDING_REPHA = OT_N, INDIC_SYLLABIC_CATEGORY_CONSONANT_SUCCEEDING_REPHA = OT_N,
INDIC_SYLLABIC_CATEGORY_CONSONANT_WITH_STACKER = OT_CS, INDIC_SYLLABIC_CATEGORY_CONSONANT_WITH_STACKER = OT_CS,
INDIC_SYLLABIC_CATEGORY_GEMINATION_MARK = OT_SM, /* https://github.com/behdad/harfbuzz/issues/552 */ INDIC_SYLLABIC_CATEGORY_GEMINATION_MARK = OT_SM, /* https://github.com/harfbuzz/harfbuzz/issues/552 */
INDIC_SYLLABIC_CATEGORY_INVISIBLE_STACKER = OT_Coeng, INDIC_SYLLABIC_CATEGORY_INVISIBLE_STACKER = OT_Coeng,
INDIC_SYLLABIC_CATEGORY_JOINER = OT_ZWJ, INDIC_SYLLABIC_CATEGORY_JOINER = OT_ZWJ,
INDIC_SYLLABIC_CATEGORY_MODIFYING_LETTER = OT_X, INDIC_SYLLABIC_CATEGORY_MODIFYING_LETTER = OT_X,
......
...@@ -210,7 +210,7 @@ set_indic_properties (hb_glyph_info_t &info) ...@@ -210,7 +210,7 @@ set_indic_properties (hb_glyph_info_t &info)
} }
else if (unlikely (u == 0x0A51u)) else if (unlikely (u == 0x0A51u))
{ {
/* https://github.com/behdad/harfbuzz/issues/524 */ /* https://github.com/harfbuzz/harfbuzz/issues/524 */
cat = OT_M; cat = OT_M;
pos = POS_BELOW_C; pos = POS_BELOW_C;
} }
...@@ -220,9 +220,9 @@ set_indic_properties (hb_glyph_info_t &info) ...@@ -220,9 +220,9 @@ set_indic_properties (hb_glyph_info_t &info)
else if (unlikely (u == 0x11301u || u == 0x11303u)) cat = OT_SM; else if (unlikely (u == 0x11301u || u == 0x11303u)) cat = OT_SM;
else if (unlikely (u == 0x1133cu)) cat = OT_N; else if (unlikely (u == 0x1133cu)) cat = OT_N;
else if (unlikely (u == 0x0AFBu)) cat = OT_N; /* https://github.com/behdad/harfbuzz/issues/552 */ else if (unlikely (u == 0x0AFBu)) cat = OT_N; /* https://github.com/harfbuzz/harfbuzz/issues/552 */
else if (unlikely (u == 0x0980u)) cat = OT_PLACEHOLDER; /* https://github.com/behdad/harfbuzz/issues/538 */ else if (unlikely (u == 0x0980u)) cat = OT_PLACEHOLDER; /* https://github.com/harfbuzz/harfbuzz/issues/538 */
else if (unlikely (u == 0x17C6u)) cat = OT_N; /* Khmer Bindu doesn't like to be repositioned. */ else if (unlikely (u == 0x17C6u)) cat = OT_N; /* Khmer Bindu doesn't like to be repositioned. */
else if (unlikely (hb_in_range<hb_codepoint_t> (u, 0x2010u, 0x2011u))) else if (unlikely (hb_in_range<hb_codepoint_t> (u, 0x2010u, 0x2011u)))
cat = OT_PLACEHOLDER; cat = OT_PLACEHOLDER;
...@@ -691,7 +691,7 @@ initial_reordering_consonant_syllable (const hb_ot_shape_plan_t *plan, ...@@ -691,7 +691,7 @@ initial_reordering_consonant_syllable (const hb_ot_shape_plan_t *plan,
const indic_shape_plan_t *indic_plan = (const indic_shape_plan_t *) plan->data; const indic_shape_plan_t *indic_plan = (const indic_shape_plan_t *) plan->data;
hb_glyph_info_t *info = buffer->info; hb_glyph_info_t *info = buffer->info;
/* https://github.com/behdad/harfbuzz/issues/435#issuecomment-335560167 /* https://github.com/harfbuzz/harfbuzz/issues/435#issuecomment-335560167
* // For compatibility with legacy usage in Kannada, * // For compatibility with legacy usage in Kannada,
* // Ra+h+ZWJ must behave like Ra+ZWJ+h... * // Ra+h+ZWJ must behave like Ra+ZWJ+h...
*/ */
......
...@@ -90,7 +90,7 @@ CS = 43; # CONS_WITH_STACKER ...@@ -90,7 +90,7 @@ CS = 43; # CONS_WITH_STACKER
consonant_modifiers = CMAbv* CMBlw* ((H B | SUB) VS? CMAbv? CMBlw*)*; consonant_modifiers = CMAbv* CMBlw* ((H B | SUB) VS? CMAbv? CMBlw*)*;
# Override: Allow two MBlw. https://github.com/behdad/harfbuzz/issues/376 # Override: Allow two MBlw. https://github.com/harfbuzz/harfbuzz/issues/376
medial_consonants = MPre? MAbv? MBlw?.MBlw? MPst?; medial_consonants = MPre? MAbv? MBlw?.MBlw? MPst?;
dependent_vowels = VPre* VAbv* VBlw* VPst*; dependent_vowels = VPre* VAbv* VBlw* VPst*;
vowel_modifiers = VMPre* VMAbv* VMBlw* VMPst*; vowel_modifiers = VMPre* VMAbv* VMBlw* VMPst*;
......
...@@ -108,7 +108,7 @@ hb_ot_shape_collect_features (hb_ot_shape_planner_t *planner, ...@@ -108,7 +108,7 @@ hb_ot_shape_collect_features (hb_ot_shape_planner_t *planner,
/* We really want to find a 'vert' feature if there's any in the font, no /* We really want to find a 'vert' feature if there's any in the font, no
* matter which script/langsys it is listed (or not) under. * matter which script/langsys it is listed (or not) under.
* See various bugs referenced from: * See various bugs referenced from:
* https://github.com/behdad/harfbuzz/issues/63 */ * https://github.com/harfbuzz/harfbuzz/issues/63 */
map->add_feature (HB_TAG ('v','e','r','t'), 1, F_GLOBAL | F_GLOBAL_SEARCH); map->add_feature (HB_TAG ('v','e','r','t'), 1, F_GLOBAL | F_GLOBAL_SEARCH);
} }
......
...@@ -692,7 +692,7 @@ hb_in_ranges (T u, T lo1, T hi1, T lo2, T hi2, T lo3, T hi3) ...@@ -692,7 +692,7 @@ hb_in_ranges (T u, T lo1, T hi1, T lo2, T hi2, T lo3, T hi3)
* one enum to another... So this doesn't provide the type-checking that I * one enum to another... So this doesn't provide the type-checking that I
* originally had in mind... :(. * originally had in mind... :(.
* *
* For MSVC warnings, see: https://github.com/behdad/harfbuzz/pull/163 * For MSVC warnings, see: https://github.com/harfbuzz/harfbuzz/pull/163
*/ */
#ifdef _MSC_VER #ifdef _MSC_VER
# pragma warning(disable:4200) # pragma warning(disable:4200)
......
...@@ -137,7 +137,7 @@ HB_UNICODE_FUNCS_IMPLEMENT_CALLBACKS_SIMPLE ...@@ -137,7 +137,7 @@ HB_UNICODE_FUNCS_IMPLEMENT_CALLBACKS_SIMPLE
* we do NOT want to hide them, as the way Uniscribe has implemented them * we do NOT want to hide them, as the way Uniscribe has implemented them
* is with regular spacing glyphs, and that's the way fonts are made to work. * is with regular spacing glyphs, and that's the way fonts are made to work.
* As such, we make exceptions for those four. * As such, we make exceptions for those four.
* Also ignoring U+1BCA0..1BCA3. https://github.com/behdad/harfbuzz/issues/503 * Also ignoring U+1BCA0..1BCA3. https://github.com/harfbuzz/harfbuzz/issues/503
* *
* Unicode 7.0: * Unicode 7.0:
* $ grep '; Default_Ignorable_Code_Point ' DerivedCoreProperties.txt | sed 's/;.*#/#/' * $ grep '; Default_Ignorable_Code_Point ' DerivedCoreProperties.txt | sed 's/;.*#/#/'
......
...@@ -45,7 +45,7 @@ hb.buffer_set_message_func (buf, debugger.message, 1, 0) ...@@ -45,7 +45,7 @@ hb.buffer_set_message_func (buf, debugger.message, 1, 0)
## Add text to buffer ## Add text to buffer
## ##
# #
# See https://github.com/behdad/harfbuzz/pull/271 # See https://github.com/harfbuzz/harfbuzz/pull/271
# #
if False: if False:
# If you do not care about cluster values reflecting Python # If you do not care about cluster values reflecting Python
......
...@@ -159,7 +159,7 @@ test_set_algebra (void) ...@@ -159,7 +159,7 @@ test_set_algebra (void)
g_assert (!hb_set_has (s, 13)); g_assert (!hb_set_has (s, 13));
g_assert (hb_set_has (s, 19)); g_assert (hb_set_has (s, 19));
/* https://github.com/behdad/harfbuzz/issues/579 */ /* https://github.com/harfbuzz/harfbuzz/issues/579 */
hb_set_clear (s); hb_set_clear (s);
test_empty (s); test_empty (s);
hb_set_add_range (s, 886, 895); hb_set_add_range (s, 886, 895);
......
...@@ -18,4 +18,4 @@ The smaller the faster. ...@@ -18,4 +18,4 @@ The smaller the faster.
For more details consult the following locations: For more details consult the following locations:
- http://llvm.org/docs/LibFuzzer.html or - http://llvm.org/docs/LibFuzzer.html or
- https://github.com/google/libfuzzer-bot/tree/master/harfbuzz - https://github.com/google/libfuzzer-bot/tree/master/harfbuzz
- https://github.com/behdad/harfbuzz/issues/139 - https://github.com/harfbuzz/harfbuzz/issues/139
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册