profile
viewpoint
If you are wondering where the data of this site comes from, please visit https://api.github.com/users/khaledhosny/events. GitMemory does not store any data, but only uses NGINX to cache data for a period of time. The idea behind GitMemory is simply to give users a better reading experience.
Khaled Hosny khaledhosny Alif Type Cairo Type designer and software engineer.

fonttools/fonttools 2794

A library to manipulate font files from Python.

harfbuzz/harfbuzz 2036

HarfBuzz text shaping engine

adobe-type-tools/afdko 669

Adobe Font Development Kit for OpenType

aliftype/xits 271

XITS - OpenType implementation of STIX fonts with math support

aliftype/amiri 243

Amiri (أميري) is a body text Naskh typeface

fribidi/fribidi 218

GNU FriBidi

HOST-Oman/libraqm 147

A library for complex text layout

aliftype/aref-ruqaa 74

Aref Ruqaa (رقعة عارف) is a Ruqaa typeface

aliftype/quran-data 59

Unicode-encoded Quran data

aliftype/reem-kufi 45

Reem Kufi (كوفي ريم) is a modern kufic typeface

created tagharfbuzz/uharfbuzz

tagv0.17.0

An opinionated HarfBuzz Python binding

created time in 9 hours

issue openedharfbuzz/harfbuzz

Amalgam builds are broken when both DirectWrite and Uniscribe are enabled

Both files define structs with similar names since #3034. Need to move that code to a shared place and templatize it after all.

created time in 10 hours

issue commentharfbuzz/uharfbuzz

message callback API should respect return value

OK, lets leave it as it is for now (I think we can handle the extra arguments in a backward-compatible way, but lets worry about this when we have to).

justvanrossum

comment created time in 15 hours

delete branch harfbuzz/uharfbuzz

delete branch : issue-89

delete time in 15 hours

push eventharfbuzz/uharfbuzz

Khaled Hosny

commit sha dda9ab01139979e73d9f3148b6ebecb55e97d51b

hb_language_to_string can return NULL Return empty string in this case (for consistency with Buffer.script), but may be we should return None instead. Fixes https://github.com/harfbuzz/uharfbuzz/issues/89

view details

Khaled Hosny

commit sha a46799b3813bfd604c2b4d78167805f25b1b0ae4

Return None for invalid script/language

view details

push time in 15 hours

PR merged harfbuzz/uharfbuzz

hb_language_to_string can return NULL

Return empty string in this case (for consistency with Buffer.script), but may be we should return None instead.

Fixes https://github.com/harfbuzz/uharfbuzz/issues/89

+10 -0

1 comment

2 changed files

khaledhosny

pr closed time in 15 hours

issue closedharfbuzz/uharfbuzz

Reading `Buffer.language` without setting it causes segmentation fault

>>> import uharfbuzz as hb
>>> buffer = hb.Buffer()
>>> buffer.script
''
>>> buffer.language
zsh: segmentation fault  python3

This works when reading language after setting a value to it.

closed time in 15 hours

kojiishi

delete branch harfbuzz/uharfbuzz

delete branch : shape-return

delete time in 15 hours

push eventharfbuzz/uharfbuzz

Khaled Hosny

commit sha fca46216ad6fe4aefd46409aebffa22dfdcc480f

Raise when hb_shape_full fails

view details

push time in 15 hours

PR merged harfbuzz/uharfbuzz

Raise when hb_shape_full fails
+5 -2

0 comment

2 changed files

khaledhosny

pr closed time in 15 hours

delete branch harfbuzz/uharfbuzz

delete branch : issue-51

delete time in 15 hours

push eventharfbuzz/uharfbuzz

Khaled Hosny

commit sha dffaea5e83903eb8f4c9c55138cffb3fa6e4071a

Respect return value from message callback function For backward compatibility we treat None as True. Fixes https://github.com/harfbuzz/uharfbuzz/issues/51

view details

push time in 15 hours

PR merged harfbuzz/uharfbuzz

Respect return value from message callback function

For backward compatibility we treat None as True. Fixes https://github.com/harfbuzz/uharfbuzz/issues/51

+39 -2

0 comment

2 changed files

khaledhosny

pr closed time in 15 hours

issue closedharfbuzz/uharfbuzz

message callback API should respect return value

https://twitter.com/simoncozens/status/1275806808104370176

We currently always return 1: https://github.com/harfbuzz/uharfbuzz/blob/0a584e6aa7dad90b229a20e4daaaa4a4b153c379/src/uharfbuzz/_harfbuzz.pyx#L25-L27

closed time in 15 hours

justvanrossum

issue closedharfbuzz/harfbuzz

Completely move Google Fonts subsetting off fonttools.

Was on roadmap for 2019, curious to know what will be needed so lets turn into a file

closed time in 15 hours

ebraminio

issue commentharfbuzz/harfbuzz

Completely move Google Fonts subsetting off fonttools.

OTL subsetting is done and instantiation is tracked in #2112.

ebraminio

comment created time in 15 hours

pull request commentlinebender/skribo

Variable shaper

(I wish HarfBuzz never made hb_buffer_guess_segment_properties() public and kept it only for the command line test utilities).

simoncozens

comment created time in 18 hours

pull request commentlinebender/skribo

Variable shaper

  • Makes the direction/script/language optional in layout_fragment, allowing the user to set explicit values if they want them but using Harfbuzz's guess_segment_properties for a decent default fallback.

This is really bad and should not be happen in production code. hb_buffer_guess_segment_properties() can easily be wrong and the user will be none the wiser. For example it guesses the direction from the script, so an sequence of digits from an RTL script will be set to RTL even though it should almost always be LTR.

simoncozens

comment created time in 18 hours

issue commentharfbuzz/harfbuzz

[subset] API (and ABI) stability of subset

Any thing else to be tracked here?

mapreri

comment created time in 18 hours

PR opened harfbuzz/uharfbuzz

Respect return value from message callback function

For backward compatibility we treat None as True. Fixes https://github.com/harfbuzz/uharfbuzz/issues/51

+39 -2

0 comment

2 changed files

pr created time in 19 hours

create barnchharfbuzz/uharfbuzz

branch : issue-51

created branch time in 19 hours

PR opened harfbuzz/uharfbuzz

Raise when hb_shape_full fails
+5 -2

0 comment

2 changed files

pr created time in 19 hours

create barnchharfbuzz/uharfbuzz

branch : shape-return

created branch time in 19 hours

push eventharfbuzz/uharfbuzz

Khaled Hosny

commit sha 9988e4f051b4be1bf68a3ef0bf13f94ecfee98dd

hb_buffer_get_glyph_positions can return NULL During shaping tracing before applying GPOS (at least in HarfBuzz 2.8.2).

view details

Khaled Hosny

commit sha 1dd063b80b7153607b8fd24d6cfa10c088d7102c

Update to HarfBuzz 2.8.2

view details

Khaled Hosny

commit sha 6ed06da65b3be88f7f7d28db6eef08ad5bbbe255

Enable Uniscribe and DirectWrite shapers on Windows Fixes https://github.com/harfbuzz/uharfbuzz/issues/77

view details

justvanrossum

commit sha a6096d72b9e6e99d5d8e286c945b479a64cfa9b1

add test reproducing #83

view details

justvanrossum

commit sha 2b90a5a4c307b5e48f2b59b8466e08bc69076df3

add buf.guess_segment_properties()

view details

Khaled Hosny

commit sha 3f2560d6fcfeb22cbf0956ec72a0a4039056a603

NULL-terminate shapers list hb_shape_full() takes a NULL-terminated array (the length of the array is not passed separately) and would otherwise try to access random memory and crash if all shapers failed. Fixes https://github.com/harfbuzz/uharfbuzz/issues/83

view details

Khaled Hosny

commit sha 87851e66d52f0c026698e0c2f4457ed69380f280

9 shapers ought to be enough for everyone Simplify this code by dropping the dynamic allocation, the PyUnicode_AsUTF8 call and the separate to_cstring_array that is only used once.

view details

Khaled Hosny

commit sha 459893a8d8c52782adcf5c7e8578208a9c87903f

Merge pull request #91 from harfbuzz/harfbuzz-2.8.2 Update to HarfBuzz 2.8.2

view details

Khaled Hosny

commit sha 19297b5118d5ebf3ebf9a9d5ae04902032df76c3

Add tests for various platform shapers

view details

Khaled Hosny

commit sha b9b4c14c6e9fafc2b11b43b2d9f5267d5981f894

Disable uniscribe shaper for now Can’t build both uniscribe and directwrite in 2.8.2 with the unified build we are using. Caused by my laziness in https://github.com/harfbuzz/harfbuzz/pull/3034.

view details

Khaled Hosny

commit sha fc273449c36c1ff4b12b0c4423d32756cfd9e1a3

hb_language_to_string can return NULL Return empty string in this case (for consistency with Buffer.script), but may be we should return None instead. Fixes https://github.com/harfbuzz/uharfbuzz/issues/89

view details

Khaled Hosny

commit sha 545a495f7af8339d6d443c08e17afaba7258b95c

Return None for invalid script/language

view details

push time in 20 hours

delete branch harfbuzz/uharfbuzz

delete branch : windows-debug

delete time in 20 hours

push eventharfbuzz/uharfbuzz

Khaled Hosny

commit sha 19297b5118d5ebf3ebf9a9d5ae04902032df76c3

Add tests for various platform shapers

view details

Khaled Hosny

commit sha b9b4c14c6e9fafc2b11b43b2d9f5267d5981f894

Disable uniscribe shaper for now Can’t build both uniscribe and directwrite in 2.8.2 with the unified build we are using. Caused by my laziness in https://github.com/harfbuzz/harfbuzz/pull/3034.

view details

push time in 20 hours

push eventharfbuzz/uharfbuzz

Khaled Hosny

commit sha 6ee872d4bbcdc8f28704b011c6d884f1f12ab6dc

Disable uniscribe shaper for now Can’t build both uniscribe and directwrite in 2.8.2 with the unified build we are using. Caused by my laziness in https://github.com/harfbuzz/harfbuzz/pull/3034.

view details

push time in 21 hours

PR opened harfbuzz/uharfbuzz

Add tests for various platform shapers
+36 -0

0 comment

1 changed file

pr created time in 21 hours

create barnchharfbuzz/uharfbuzz

branch : windows-debug

created branch time in a day