Fix typos.
This commit is contained in:
parent
b7cef8cb1d
commit
257d0e5aa3
2
BUILD.md
2
BUILD.md
|
@ -26,7 +26,7 @@ as with any other standard package. That should leave you with a shared
|
||||||
library in `src/`, and a few utility programs including `hb-view` and `hb-shape`
|
library in `src/`, and a few utility programs including `hb-view` and `hb-shape`
|
||||||
under `util/`.
|
under `util/`.
|
||||||
|
|
||||||
If you are bootstraping from git, you need a few more tools before you can
|
If you are bootstrapping from git, you need a few more tools before you can
|
||||||
run `autogen.sh` for the first time. Namely, `pkg-config` and `ragel`.
|
run `autogen.sh` for the first time. Namely, `pkg-config` and `ragel`.
|
||||||
|
|
||||||
Again, on Ubuntu / Debian:
|
Again, on Ubuntu / Debian:
|
||||||
|
|
|
@ -107,10 +107,10 @@ include (CheckFunctionExists)
|
||||||
include (CheckIncludeFile)
|
include (CheckIncludeFile)
|
||||||
macro (check_funcs) # Similar to AC_CHECK_FUNCS of autotools
|
macro (check_funcs) # Similar to AC_CHECK_FUNCS of autotools
|
||||||
foreach (func_name ${ARGN})
|
foreach (func_name ${ARGN})
|
||||||
string(TOUPPER ${func_name} definiton_to_add)
|
string(TOUPPER ${func_name} definition_to_add)
|
||||||
check_function_exists(${func_name} HAVE_${definiton_to_add})
|
check_function_exists(${func_name} HAVE_${definition_to_add})
|
||||||
if (${HAVE_${definiton_to_add}})
|
if (${HAVE_${definition_to_add}})
|
||||||
add_definitions(-DHAVE_${definiton_to_add})
|
add_definitions(-DHAVE_${definition_to_add})
|
||||||
endif ()
|
endif ()
|
||||||
endforeach ()
|
endforeach ()
|
||||||
endmacro ()
|
endmacro ()
|
||||||
|
|
|
@ -23,7 +23,7 @@ Then make sure you also have GI_TYPELIB_PATH pointing to the resulting
|
||||||
$prefix/lib/girepository-* directory.
|
$prefix/lib/girepository-* directory.
|
||||||
|
|
||||||
Make sure you have pygobject installed. Then check that the following
|
Make sure you have pygobject installed. Then check that the following
|
||||||
import works in your Python interpretter:
|
import works in your Python interpreter:
|
||||||
|
|
||||||
```python
|
```python
|
||||||
from gi.repository import HarfBuzz
|
from gi.repository import HarfBuzz
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
For the development of HarfBuzz, the Microsoft shaping technology, Uniscribe,
|
For the development of HarfBuzz, the Microsoft shaping technology, Uniscribe,
|
||||||
as a widely used and tested shaper is used as more-or-less OpenType reference
|
as a widely used and tested shaper is used as more-or-less OpenType reference
|
||||||
implemenetation and that specially is important where OpenType specification
|
implementation and that specially is important where OpenType specification
|
||||||
is or wasn't that clear. For having access to Uniscribe on Linux/macOS these
|
is or wasn't that clear. For having access to Uniscribe on Linux/macOS these
|
||||||
steps are recommended:
|
steps are recommended:
|
||||||
|
|
||||||
|
@ -27,8 +27,8 @@ steps are recommended:
|
||||||
Now you can use hb-shape using `wine winbuild/util/hb-shape.exe` but if you like to
|
Now you can use hb-shape using `wine winbuild/util/hb-shape.exe` but if you like to
|
||||||
to use the original Uniscribe,
|
to use the original Uniscribe,
|
||||||
|
|
||||||
8. Bring a 32bit version of `usp10.dll` for youself from `C:\Windows\SysWOW64\usp10.dll` of your
|
8. Bring a 32bit version of `usp10.dll` for yourself from `C:\Windows\SysWOW64\usp10.dll` of your
|
||||||
Windows installation (asuming you have a 64-bit installation, otherwise `C:\Windows\System32\usp10.dll`)
|
Windows installation (assuming you have a 64-bit installation, otherwise `C:\Windows\System32\usp10.dll`)
|
||||||
that it is not a DirectWrite proxy ([for more info](https://en.wikipedia.org/wiki/Uniscribe)).
|
that it is not a DirectWrite proxy ([for more info](https://en.wikipedia.org/wiki/Uniscribe)).
|
||||||
Rule of thumb, your `usp10.dll` should have a size more than 500kb, otherwise
|
Rule of thumb, your `usp10.dll` should have a size more than 500kb, otherwise
|
||||||
it is designed to work with DirectWrite which Wine can't work with its original one.
|
it is designed to work with DirectWrite which Wine can't work with its original one.
|
||||||
|
|
|
@ -204,7 +204,7 @@ struct hb_dispatch_context_t
|
||||||
* The same argument can be made re GSUB/GPOS/GDEF, but there, the table
|
* The same argument can be made re GSUB/GPOS/GDEF, but there, the table
|
||||||
* structure is so complicated that by checking all offsets at sanitize() time,
|
* structure is so complicated that by checking all offsets at sanitize() time,
|
||||||
* we make the code much simpler in other methods, as offsets and referenced
|
* we make the code much simpler in other methods, as offsets and referenced
|
||||||
* objectes do not need to be validated at each use site.
|
* objects do not need to be validated at each use site.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* This limits sanitizing time on really broken fonts. */
|
/* This limits sanitizing time on really broken fonts. */
|
||||||
|
|
|
@ -49,7 +49,7 @@ static inline Type const & Null (void) {
|
||||||
}
|
}
|
||||||
#define Null(Type) Null<Type>()
|
#define Null(Type) Null<Type>()
|
||||||
|
|
||||||
/* Specializaitons for arbitrary-content Null objects expressed in bytes. */
|
/* Specializations for arbitrary-content Null objects expressed in bytes. */
|
||||||
#define DECLARE_NULL_NAMESPACE_BYTES(Namespace, Type) \
|
#define DECLARE_NULL_NAMESPACE_BYTES(Namespace, Type) \
|
||||||
} /* Close namespace. */ \
|
} /* Close namespace. */ \
|
||||||
extern HB_INTERNAL const unsigned char _hb_Null_##Namespace##_##Type[Namespace::Type::min_size]; \
|
extern HB_INTERNAL const unsigned char _hb_Null_##Namespace##_##Type[Namespace::Type::min_size]; \
|
||||||
|
@ -62,7 +62,7 @@ static inline Type const & Null (void) {
|
||||||
#define DEFINE_NULL_NAMESPACE_BYTES(Namespace, Type) \
|
#define DEFINE_NULL_NAMESPACE_BYTES(Namespace, Type) \
|
||||||
const unsigned char _hb_Null_##Namespace##_##Type[Namespace::Type::min_size]
|
const unsigned char _hb_Null_##Namespace##_##Type[Namespace::Type::min_size]
|
||||||
|
|
||||||
/* Specializaitons for arbitrary-content Null objects expressed as struct initializer. */
|
/* Specializations for arbitrary-content Null objects expressed as struct initializer. */
|
||||||
#define DECLARE_NULL_INSTANCE(Type) \
|
#define DECLARE_NULL_INSTANCE(Type) \
|
||||||
extern HB_INTERNAL const Type _hb_Null_##Type; \
|
extern HB_INTERNAL const Type _hb_Null_##Type; \
|
||||||
template <> \
|
template <> \
|
||||||
|
|
|
@ -160,7 +160,7 @@ typedef struct OffsetTable
|
||||||
|
|
||||||
memcpy (start, hb_blob_get_data (blob, nullptr), rec.length);
|
memcpy (start, hb_blob_get_data (blob, nullptr), rec.length);
|
||||||
|
|
||||||
/* 4-byte allignment. */
|
/* 4-byte alignment. */
|
||||||
c->align (4);
|
c->align (4);
|
||||||
const char *end = (const char *) c->head;
|
const char *end = (const char *) c->head;
|
||||||
|
|
||||||
|
|
|
@ -718,7 +718,7 @@ struct Lookup
|
||||||
return_trace (true);
|
return_trace (true);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Older compileres need this to NOT be locally defined in a function. */
|
/* Older compilers need this to NOT be locally defined in a function. */
|
||||||
template <typename TSubTable>
|
template <typename TSubTable>
|
||||||
struct SubTableSubsetWrapper
|
struct SubTableSubsetWrapper
|
||||||
{
|
{
|
||||||
|
|
|
@ -388,7 +388,7 @@ struct GDEF
|
||||||
{ return version.to_int () >= 0x00010003u ? this+varStore : Null(VariationStore); }
|
{ return version.to_int () >= 0x00010003u ? this+varStore : Null(VariationStore); }
|
||||||
|
|
||||||
/* glyph_props is a 16-bit integer where the lower 8-bit have bits representing
|
/* glyph_props is a 16-bit integer where the lower 8-bit have bits representing
|
||||||
* glyph class and other bits, and high 8-bit gthe mark attachment type (if any).
|
* glyph class and other bits, and high 8-bit the mark attachment type (if any).
|
||||||
* Not to be confused with lookup_props which is very similar. */
|
* Not to be confused with lookup_props which is very similar. */
|
||||||
inline unsigned int get_glyph_props (hb_codepoint_t glyph) const
|
inline unsigned int get_glyph_props (hb_codepoint_t glyph) const
|
||||||
{
|
{
|
||||||
|
|
|
@ -103,7 +103,7 @@ struct SingleSubstFormat1
|
||||||
TRACE_SERIALIZE (this);
|
TRACE_SERIALIZE (this);
|
||||||
if (unlikely (!c->extend_min (*this))) return_trace (false);
|
if (unlikely (!c->extend_min (*this))) return_trace (false);
|
||||||
if (unlikely (!coverage.serialize (c, this).serialize (c, glyphs, num_glyphs))) return_trace (false);
|
if (unlikely (!coverage.serialize (c, this).serialize (c, glyphs, num_glyphs))) return_trace (false);
|
||||||
deltaGlyphID.set (delta); /* TODO(serilaize) overflow? */
|
deltaGlyphID.set (delta); /* TODO(serialize) overflow? */
|
||||||
return_trace (true);
|
return_trace (true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -582,7 +582,7 @@ struct hb_ot_apply_context_t :
|
||||||
add_in |= HB_OT_LAYOUT_GLYPH_PROPS_LIGATED;
|
add_in |= HB_OT_LAYOUT_GLYPH_PROPS_LIGATED;
|
||||||
/* In the only place that the MULTIPLIED bit is used, Uniscribe
|
/* In the only place that the MULTIPLIED bit is used, Uniscribe
|
||||||
* seems to only care about the "last" transformation between
|
* seems to only care about the "last" transformation between
|
||||||
* Ligature and Multiple substitions. Ie. if you ligate, expand,
|
* Ligature and Multiple substitutions. Ie. if you ligate, expand,
|
||||||
* and ligate again, it forgives the multiplication and acts as
|
* and ligate again, it forgives the multiplication and acts as
|
||||||
* if only ligation happened. As such, clear MULTIPLIED bit.
|
* if only ligation happened. As such, clear MULTIPLIED bit.
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in New Issue