summaryrefslogtreecommitdiff
path: root/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/glyphfilter.hh
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/glyphfilter.hh')
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/glyphfilter.hh110
1 files changed, 0 insertions, 110 deletions
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/glyphfilter.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/glyphfilter.hh
deleted file mode 100644
index 4fc25ddadff..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/glyphfilter.hh
+++ /dev/null
@@ -1,110 +0,0 @@
-#ifndef OTFTOTFM_GLYPHFILTER_HH
-#define OTFTOTFM_GLYPHFILTER_HH
-#include <efont/otf.hh>
-#include <lcdf/vector.hh>
-class Metrics;
-
-class GlyphFilter { public:
-
- GlyphFilter() : _sorted(true) { }
-
- operator bool() const { return _patterns.size() != 0; }
-
- inline bool allow_substitution(Efont::OpenType::Glyph glyph, const Vector<PermString>& glyph_names, uint32_t unicode) const;
- inline bool allow_alternate(Efont::OpenType::Glyph glyph, const Vector<PermString>& glyph_names, uint32_t unicode) const;
-
- void add_substitution_filter(const String&, bool is_exclude, ErrorHandler*);
- void add_alternate_filter(const String&, bool is_exclude, ErrorHandler*);
-
- friend bool operator==(const GlyphFilter&, const GlyphFilter&);
- inline bool check_eq(GlyphFilter&); // may alter both GlyphFilters
-
- GlyphFilter& operator+=(const GlyphFilter&);
-
- void unparse(StringAccum&) const;
-
- struct Pattern {
- uint16_t type;
- uint16_t data;
- union {
- struct {
- int mask;
- int value;
- } uniprop;
- struct {
- uint32_t low;
- uint32_t high;
- } unirange;
- } u;
- String pattern;
- Pattern(uint16_t type);
- static int compare(const Pattern&, const Pattern&);
- };
-
- private:
-
- enum { T_EXCLUDE = 1, T_NEGATE = 2, T_TYPEMASK = 3,
- T_SRC = 0, T_DST = 4 };
- enum { D_NAME, D_UNIPROP, D_UNIRANGE };
-
- Vector<Pattern> _patterns;
- bool _sorted;
-
- bool allow(Efont::OpenType::Glyph glyph, const Vector<PermString>& glyph_names, uint32_t unicode, int ptype) const;
- void add_pattern(const String&, int ptype, ErrorHandler*);
- void sort();
-
-};
-
-inline bool
-GlyphFilter::allow_substitution(Efont::OpenType::Glyph glyph, const Vector<PermString>& glyph_names, uint32_t unicode) const
-{
- return (!_patterns.size() || allow(glyph, glyph_names, unicode, T_SRC));
-}
-
-inline bool
-GlyphFilter::allow_alternate(Efont::OpenType::Glyph glyph, const Vector<PermString>& glyph_names, uint32_t unicode) const
-{
- return (!_patterns.size() || allow(glyph, glyph_names, unicode, T_DST));
-}
-
-inline bool operator==(const GlyphFilter::Pattern& a, const GlyphFilter::Pattern& b)
-{
- return a.type == b.type && a.data == b.data && a.u.unirange.low == b.u.unirange.low && a.u.unirange.high == b.u.unirange.high && a.pattern == b.pattern;
-}
-
-inline bool operator<(const GlyphFilter::Pattern& a, const GlyphFilter::Pattern& b)
-{
- return GlyphFilter::Pattern::compare(a, b) < 0;
-}
-
-inline bool operator!=(const GlyphFilter::Pattern& a, const GlyphFilter::Pattern& b)
-{
- return !(a == b);
-}
-
-bool operator==(const GlyphFilter&, const GlyphFilter&);
-
-inline bool operator!=(const GlyphFilter& a, const GlyphFilter& b)
-{
- return !(a == b);
-}
-
-inline bool
-GlyphFilter::check_eq(GlyphFilter& o)
-{
- sort();
- o.sort();
- return *this == o;
-}
-
-GlyphFilter operator+(const GlyphFilter&, const GlyphFilter&);
-
-inline StringAccum&
-operator<<(StringAccum& sa, const GlyphFilter& gf)
-{
- gf.unparse(sa);
- return sa;
-}
-
-#endif