1 /*
   2  * Copyright © 2010,2012  Google, Inc.
   3  *
   4  *  This is part of HarfBuzz, a text shaping library.
   5  *
   6  * Permission is hereby granted, without written agreement and without
   7  * license or royalty fees, to use, copy, modify, and distribute this
   8  * software and its documentation for any purpose, provided that the
   9  * above copyright notice and the following two paragraphs appear in
  10  * all copies of this software.
  11  *
  12  * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
  13  * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
  14  * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
  15  * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
  16  * DAMAGE.
  17  *
  18  * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
  19  * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
  20  * FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS
  21  * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
  22  * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
  23  *
  24  * Google Author(s): Behdad Esfahbod
  25  */
  26 
  27 #include "hb-ot-shape-complex-private.hh"
  28 
  29 
  30 static const hb_tag_t tibetan_features[] =
  31 {
  32   HB_TAG('a','b','v','s'),
  33   HB_TAG('b','l','w','s'),
  34   HB_TAG('a','b','v','m'),
  35   HB_TAG('b','l','w','m'),
  36   HB_TAG_NONE
  37 };
  38 
  39 static void
  40 collect_features_tibetan (hb_ot_shape_planner_t *plan)
  41 {
  42   for (const hb_tag_t *script_features = tibetan_features; script_features && *script_features; script_features++)
  43     plan->map.add_global_bool_feature (*script_features);
  44 }
  45 
  46 
  47 const hb_ot_complex_shaper_t _hb_ot_complex_shaper_tibetan =
  48 {
  49   "default",
  50   collect_features_tibetan,
  51   NULL, /* override_features */
  52   NULL, /* data_create */
  53   NULL, /* data_destroy */
  54   NULL, /* preprocess_text */
  55   NULL, /* postprocess_glyphs */
  56   HB_OT_SHAPE_NORMALIZATION_MODE_DEFAULT,
  57   NULL, /* decompose */
  58   NULL, /* compose */
  59   NULL, /* setup_masks */
  60   NULL, /* disable_otl */
  61   HB_OT_SHAPE_ZERO_WIDTH_MARKS_BY_GDEF_LATE,
  62   true, /* fallback_position */
  63 };