Just occurred to me that the previous patch didn't include the new files I'd created. Let's try that again:
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.
