Just occurred to me that the previous patch didn't include the new files I'd 
created.  Let's try that again:

Attachment: font-face.diff.gz
Description: GNU Zip compressed data


On 1 Dec 2011, at 13:29, James Montgomerie wrote:

> As I've posted before, I'm using libCSS in an ebook/ePub rendering project 
> ('libEucalyptus'). I've recently come across the need to parse @font-face 
> rules.
> 
> Attached is a patch that does this, following (or attempting to :-) the CSS 3 
> spec.  It extends the parser to parse font-face rules (which use a slightly 
> different grammar to the regular CSS, of course...), and adds support to the 
> selection engine to query font-faces by family name.  The support is limited 
> - at the moment  it supports 'src:', 'font-family:', 'font-style', and 
> 'font-weight:' rules.  It should be fairly easily extensible to the other 
> font-face directives in the future (unicode-range etc.).
> 
> When parsing, it 'correctly' handles other unsupported directives by ignoring 
> them.  I've tried to keep the font-face handling well compartmentalised into 
> its own files, although I have extended a couple of the parsing util routines 
> where I thought that made sense.
> 
> On the selection side, for the client, the new css_select_font_faces function 
> will take a font family name and media and provide a list of font-face 
> results that specify the font-faces that match.  I've deliberately not tried 
> to filter this list further than by family name and doing some sorting by 
> specificity, so that the user agent can apply its own logic to the font 
> selection and fallback  This logic is - mostly - specified in the CSS spec, 
> of course, but it's rather vague places, but more importantly also depends so 
> much on installed fonts and OS capabilities in rendering that I thought it 
> best to leave it to the client.
> 
> I hope the patch meets with approval.  Criticism and changes are appreciated, 
> and I'm very happy to receive constructive feedback (or bug fixes :-).  While 
> I am using this in its current state in a product now, I would very much like 
> to keep my libCSS unforked - and I hope this will also be useful to others in 
> the future.
> 
> Thanks,
> Jamie.

Reply via email to