{"action":"created","issue":{"url":"https://api.github.com/repos/behdad/harfbuzz/issues/376","repository_url":"https://api.github.com/repos/behdad/harfbuzz","labels_url":"https://api.github.com/repos/behdad/harfbuzz/issues/376/labels{/name}","comments_url":"https://api.github.com/repos/behdad/harfbuzz/issues/376/comments","events_url":"https://api.github.com/repos/behdad/harfbuzz/issues/376/events","html_url":"https://github.com/behdad/harfbuzz/issues/376","id":194553365,"number":376,"title":"Shaping bugs for Cham?","user":{"login":"ohbendy","id":12471463,"avatar_url":"https://avatars.githubusercontent.com/u/12471463?v=3","gravatar_id":"","url":"https://api.github.com/users/ohbendy","html_url":"https://github.com/ohbendy","followers_url":"https://api.github.com/users/ohbendy/followers","following_url":"https://api.github.com/users/ohbendy/following{/other_user}","gists_url":"https://api.github.com/users/ohbendy/gists{/gist_id}","starred_url":"https://api.github.com/users/ohbendy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ohbendy/subscriptions","organizations_url":"https://api.github.com/users/ohbendy/orgs","repos_url":"https://api.github.com/users/ohbendy/repos","events_url":"https://api.github.com/users/ohbendy/events{/privacy}","received_events_url":"https://api.github.com/users/ohbendy/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2016-12-09T09:48:21Z","updated_at":"2016-12-10T03:39:33Z","closed_at":null,"body":"- **Zero consonant ꨀ (u+AA00)**\r\nThis behaves in the same way as Burmese အ or Thai อ in that it can stand alone as a glottal stop consonant, or take diacritic marks as a vowel carrier (functioning like an independent vowel). In my tests, typing any diacritic mark after it is an invalid combination and dotted circles are inserted to carry the mark. The consonant ꨀ can also appear with medial ya ꨳ (AA33) or medial wa (AA36) with a diacritic, but these combinations generate dotted circles.\r\n\r\nUnicode Cham proposal N3120 suggests \"that applications permit ꨀ to bear any of the vowel signs”.\r\n\r\n\r\n- **Independent vowels ꨄ, ꨃ** \r\nIn one text, the independent vowel ꨄ (u+AA04) is modified by a preceding ꨰ vowel (u+AA30). \r\nIn several manuscripts, ꨃ (u+AA03) is modified with vowel lengthener ◌ꨩ  (u+AA29).\r\n\r\nN3120 mentions “Four of the other independent vowels are also attested bearing matras”, so generalising this means any combination of independent vowel plus diacritic should be allowed.\r\n\r\n\r\n- **Combination of vowel ◌ꨭ (AA2D) with vowel lengthener  ◌ꨩ  (u+AA29)**\r\nThis generates a dotted circle, though N3120 notes this combination is a long -uu- vowel, with AA29 typed/stored last.\r\n\r\n\r\n- **Numerals with diacritics**\r\nI’ve found evidence of this in a number of manuscripts, but numeral + mark has created shaping errors in my tests with dotted circles being inserted.\r\n\r\n\r\nInitially I thought the four issues above were USE bugs, but Andrew Glass advised me it's Firefox/Harfbuzz as \"on Windows, independent vowels, consonants and digits are all given the same base class and will permit the standard clusters to form\".\r\n\r\n\r\n- **Combined medials below**\r\nA consonant can carry medial La (AA35) and medial Wa (AA36) together, but USE disallows this combination. Andrew Glass mentions this can be remedied, so Harfbuzz will also need to allow for this combination. \r\n\r\nN3120 mentions \"Three medial clusters occur: ◌ꨴꨶ -rwa,  ◌ꨵꨳ -lya, and ◌ꨵꨶ -lwa”"},"comment":{"url":"https://api.github.com/repos/behdad/harfbuzz/issues/comments/266176346","html_url":"https://github.com/behdad/harfbuzz/issues/376#issuecomment-266176346","issue_url":"https://api.github.com/repos/behdad/harfbuzz/issues/376","id":266176346,"user":{"login":"lianghai","id":343259,"avatar_url":"https://avatars.githubusercontent.com/u/343259?v=3","gravatar_id":"","url":"https://api.github.com/users/lianghai","html_url":"https://github.com/lianghai","followers_url":"https://api.github.com/users/lianghai/followers","following_url":"https://api.github.com/users/lianghai/following{/other_user}","gists_url":"https://api.github.com/users/lianghai/gists{/gist_id}","starred_url":"https://api.github.com/users/lianghai/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lianghai/subscriptions","organizations_url":"https://api.github.com/users/lianghai/orgs","repos_url":"https://api.github.com/users/lianghai/repos","events_url":"https://api.github.com/users/lianghai/events{/privacy}","received_events_url":"https://api.github.com/users/lianghai/received_events","type":"User","site_admin":false},"created_at":"2016-12-10T03:39:33Z","updated_at":"2016-12-10T03:39:33Z","body":"I can't reproduce any non-USE issue, leaving only the already-confirmed 2 issues of USE confirmed again.\r\n\r\nFrom a developer's point of view I see there're 3 issues reported:\r\n\r\n1. Invalid `<vowel letter / digit, vowel sign / medial consonant sign>`: can't reproduce. This report says HarfBuzz doesn't allow vowel letter or digit to be the base of vowel sign, medial consonant sign, or other combining marks. But HarfBuzz does allow this, conforming to the USE spec of how vowel letters and digits are classified to the \"BASE\" class just like consonant letters.\r\n\r\n2. Invalid `<base, U sign, AA sign>` and other multiple vowel sign combinations: reproducible, confirmed USE issue. \r\n\r\n3. Invalid `<base, medial LA sign, medial WA sign>` and other multiple medial consonant sign combination: reproducible, confirmed USE issue.\r\n\r\n---\r\n\r\nMore about issue 2 and 3:\r\n\r\nThese issues have been discussed also on Twitter: https://twitter.com/lianghai/status/794637250361368576\r\n\r\nBasically, the USE expects medial consonant signs and vowel signs stored in the standard visual order and only 1 medial consonant sign is allowed on each side: `[MPre] [MAbv] [MBlw] [MPst]`, `(VPre)* (VAbv)* (VBlw)* (VPst)*`. These are problems.\r\n\r\nThe requirement of vowel sign order is debatable (don't vowel sign need logic order at all?) but does conform to the Unicode Standard — see the core spec 9.0, section 12.3 Gurmukhi, the last paragraph of \"Encoding Principles\" on page 474:\r\n> More generally, when a consonant or independent vowel is modified by multiple vowel signs, the sequence of the vowel signs in the underlying representation of the text should be: left, top, bottom, right.\r\nHowever, actually, the Unicode Standard is not self-consistent. See table 16-15 \"Cham Syllabic Structure\" on page 645, which shows AA sign (U+AA29), an above-base mark, is expected to follow any other vowel signs (including U sign, a below-base mark).\r\n\r\nAbout medial consonant signs though, the Unicode Standard clearly specifies multiple medial consonant signs on the same side is valid (`<base, medial LA sign, medial WA sign>`), and implies it might be necessary to store medial consonant signs logically.\r\n\r\n---\r\n\r\nMy test string is \"ꨀꨀꨩꨀꨳꨀꨳꨩꨀꨶꨩꨄꨰꨃꨩꨆꨭꨩꨆꨩꨭ꩑ꨩꨆꨵꨶ\" (`⟨[A], [A, AA sign], [A, medial YA sign], [A, medial YA sign, AA sign], [A, medial WA sign, AA sign], [AI, AI sign], [E, AA sign], *[KA, U sign, AA sign], [KA, AA sign, U sign], [One, AA sign], *[KA, medial LA sign, medial WA sign]⟩`). Only the 2 asterisk-marked syllables appear invalid (with a dotted circle).\r\n\r\nTested in Chrome 55.0.2883.87, macOS Sierra 10.12.1, with a modified Noto Sans Cham (added the correct script tag \"cham\" as the USE requests, mapping U+25CC to \"@\" so the dotted circle (missing in Noto Sans Cham) is available and visible)."}}
{"actor":{"display_login":"lianghai"}}