10b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod/* 20b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod * Copyright © 2012 Google, Inc. 30b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod * 40b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod * This is part of HarfBuzz, a text shaping library. 50b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod * 60b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod * Permission is hereby granted, without written agreement and without 70b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod * license or royalty fees, to use, copy, modify, and distribute this 80b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod * software and its documentation for any purpose, provided that the 90b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod * above copyright notice and the following two paragraphs appear in 100b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod * all copies of this software. 110b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod * 120b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR 130b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES 140b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN 150b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH 160b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod * DAMAGE. 170b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod * 180b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, 190b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 200b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS 210b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO 220b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. 230b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod * 240b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod * Google Author(s): Behdad Esfahbod 250b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod */ 260b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod 270b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod#include "hb-set-private.hh" 280b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod 290b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod 306c6ccaf575392f6e6bb9a15534026e4ea462705bBehdad Esfahbod/* Public API */ 316c6ccaf575392f6e6bb9a15534026e4ea462705bBehdad Esfahbod 320b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod 3320cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod/** 34085d4291a9f253a4b8e2eec8003ac11d02a9394fBehdad Esfahbod * hb_set_create: (Xconstructor) 3520cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 3620cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * Return value: (transfer full): 3720cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 3801c3a88543850c87483fd8671044df53b368c520Sascha Brawer * Since: 0.9.2 3920cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod **/ 400b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbodhb_set_t * 41aec89de5641fbe1c3031d63dd5f40ec99bf2a538Behdad Esfahbodhb_set_create (void) 420b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod{ 430b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod hb_set_t *set; 440b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod 450b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod if (!(set = hb_object_create<hb_set_t> ())) 46f06ab8a4262c759b4723614fd28f55ee77aa8466Behdad Esfahbod return hb_set_get_empty (); 470b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod 480b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod set->clear (); 490b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod 500b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod return set; 510b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod} 520b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod 5320cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod/** 5420cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * hb_set_get_empty: 5520cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 56288f2899979bcc9e68f8115cb76e3271ed0e17bcBehdad Esfahbod * Return value: (transfer full): 5720cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 5801c3a88543850c87483fd8671044df53b368c520Sascha Brawer * Since: 0.9.2 5920cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod **/ 600b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbodhb_set_t * 610b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbodhb_set_get_empty (void) 620b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod{ 63f06ab8a4262c759b4723614fd28f55ee77aa8466Behdad Esfahbod static const hb_set_t _hb_set_nil = { 64f06ab8a4262c759b4723614fd28f55ee77aa8466Behdad Esfahbod HB_OBJECT_HEADER_STATIC, 658165f2765b93e99577ecc79b7956ae38c614bc78Behdad Esfahbod true, /* in_error */ 66f06ab8a4262c759b4723614fd28f55ee77aa8466Behdad Esfahbod 67f06ab8a4262c759b4723614fd28f55ee77aa8466Behdad Esfahbod {0} /* elts */ 68f06ab8a4262c759b4723614fd28f55ee77aa8466Behdad Esfahbod }; 69f06ab8a4262c759b4723614fd28f55ee77aa8466Behdad Esfahbod 70f06ab8a4262c759b4723614fd28f55ee77aa8466Behdad Esfahbod return const_cast<hb_set_t *> (&_hb_set_nil); 710b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod} 720b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod 7320cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod/** 7420cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * hb_set_reference: (skip) 7520cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * @set: a set. 7620cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 7720cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * Return value: (transfer full): 7820cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 7901c3a88543850c87483fd8671044df53b368c520Sascha Brawer * Since: 0.9.2 8020cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod **/ 810b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbodhb_set_t * 820b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbodhb_set_reference (hb_set_t *set) 830b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod{ 840b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod return hb_object_reference (set); 850b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod} 860b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod 8720cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod/** 8820cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * hb_set_destroy: (skip) 8920cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * @set: a set. 9020cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 9101c3a88543850c87483fd8671044df53b368c520Sascha Brawer * Since: 0.9.2 9220cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod **/ 930b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbodvoid 940b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbodhb_set_destroy (hb_set_t *set) 950b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod{ 960b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod if (!hb_object_destroy (set)) return; 970b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod 98a5e39fed85e069ba1afbf90408349ad99ceb0e1dBehdad Esfahbod set->fini (); 99a5e39fed85e069ba1afbf90408349ad99ceb0e1dBehdad Esfahbod 1000b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod free (set); 1010b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod} 1020b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod 10320cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod/** 10420cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * hb_set_set_user_data: (skip) 10520cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * @set: a set. 10620cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * @key: 10720cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * @data: 10820cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * @destroy (closure data): 10920cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * @replace: 11020cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 11120cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * Return value: 11220cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 11301c3a88543850c87483fd8671044df53b368c520Sascha Brawer * Since: 0.9.2 11420cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod **/ 1150b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbodhb_bool_t 116aec89de5641fbe1c3031d63dd5f40ec99bf2a538Behdad Esfahbodhb_set_set_user_data (hb_set_t *set, 117aec89de5641fbe1c3031d63dd5f40ec99bf2a538Behdad Esfahbod hb_user_data_key_t *key, 118aec89de5641fbe1c3031d63dd5f40ec99bf2a538Behdad Esfahbod void * data, 119aec89de5641fbe1c3031d63dd5f40ec99bf2a538Behdad Esfahbod hb_destroy_func_t destroy, 120aec89de5641fbe1c3031d63dd5f40ec99bf2a538Behdad Esfahbod hb_bool_t replace) 1210b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod{ 1220b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod return hb_object_set_user_data (set, key, data, destroy, replace); 1230b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod} 1240b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod 12520cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod/** 12620cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * hb_set_get_user_data: (skip) 12720cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * @set: a set. 12820cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * @key: 12920cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 13020cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * Return value: (transfer none): 13120cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 13201c3a88543850c87483fd8671044df53b368c520Sascha Brawer * Since: 0.9.2 13320cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod **/ 1340b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbodvoid * 135aec89de5641fbe1c3031d63dd5f40ec99bf2a538Behdad Esfahbodhb_set_get_user_data (hb_set_t *set, 136aec89de5641fbe1c3031d63dd5f40ec99bf2a538Behdad Esfahbod hb_user_data_key_t *key) 1370b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod{ 1380b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod return hb_object_get_user_data (set, key); 1390b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod} 1400b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod 1410b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod 14220cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod/** 14320cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * hb_set_allocation_successful: 14420cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * @set: a set. 14520cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 14620cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 14720cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 14820cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * Return value: 14920cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 15001c3a88543850c87483fd8671044df53b368c520Sascha Brawer * Since: 0.9.2 15120cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod **/ 1520b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbodhb_bool_t 153aec89de5641fbe1c3031d63dd5f40ec99bf2a538Behdad Esfahbodhb_set_allocation_successful (const hb_set_t *set HB_UNUSED) 1540b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod{ 1558165f2765b93e99577ecc79b7956ae38c614bc78Behdad Esfahbod return !set->in_error; 1560b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod} 1570b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod 15820cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod/** 15920cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * hb_set_clear: 16020cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * @set: a set. 16120cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 16220cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 16320cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 16401c3a88543850c87483fd8671044df53b368c520Sascha Brawer * Since: 0.9.2 16520cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod **/ 1660b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbodvoid 1670b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbodhb_set_clear (hb_set_t *set) 1680b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod{ 1690b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod set->clear (); 1700b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod} 1710b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod 17220cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod/** 17320cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * hb_set_is_empty: 17420cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * @set: a set. 17520cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 17620cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 17720cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 17820cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * Return value: 17920cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 18001c3a88543850c87483fd8671044df53b368c520Sascha Brawer * Since: 0.9.7 18120cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod **/ 1820b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbodhb_bool_t 183aec89de5641fbe1c3031d63dd5f40ec99bf2a538Behdad Esfahbodhb_set_is_empty (const hb_set_t *set) 1846c6ccaf575392f6e6bb9a15534026e4ea462705bBehdad Esfahbod{ 185aec89de5641fbe1c3031d63dd5f40ec99bf2a538Behdad Esfahbod return set->is_empty (); 1866c6ccaf575392f6e6bb9a15534026e4ea462705bBehdad Esfahbod} 1876c6ccaf575392f6e6bb9a15534026e4ea462705bBehdad Esfahbod 18820cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod/** 18920cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * hb_set_has: 19020cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * @set: a set. 19120cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * @codepoint: 19220cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 19320cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 19420cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 19520cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * Return value: 19620cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 19701c3a88543850c87483fd8671044df53b368c520Sascha Brawer * Since: 0.9.2 19820cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod **/ 1996c6ccaf575392f6e6bb9a15534026e4ea462705bBehdad Esfahbodhb_bool_t 200aec89de5641fbe1c3031d63dd5f40ec99bf2a538Behdad Esfahbodhb_set_has (const hb_set_t *set, 2010b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod hb_codepoint_t codepoint) 2020b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod{ 2030b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod return set->has (codepoint); 2040b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod} 2050b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod 20620cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod/** 20720cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * hb_set_add: 20820cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * @set: a set. 20920cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * @codepoint: 21020cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 21120cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 21220cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 21301c3a88543850c87483fd8671044df53b368c520Sascha Brawer * Since: 0.9.2 21420cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod **/ 2150b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbodvoid 2160b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbodhb_set_add (hb_set_t *set, 2170b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod hb_codepoint_t codepoint) 2180b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod{ 2190b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod set->add (codepoint); 2200b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod} 2210b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod 22220cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod/** 22320cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * hb_set_add_range: 22420cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * @set: a set. 22520cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * @first: 22620cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * @last: 22720cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 22820cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 22920cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 23001c3a88543850c87483fd8671044df53b368c520Sascha Brawer * Since: 0.9.7 23120cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod **/ 2320b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbodvoid 233aec89de5641fbe1c3031d63dd5f40ec99bf2a538Behdad Esfahbodhb_set_add_range (hb_set_t *set, 234aec89de5641fbe1c3031d63dd5f40ec99bf2a538Behdad Esfahbod hb_codepoint_t first, 235aec89de5641fbe1c3031d63dd5f40ec99bf2a538Behdad Esfahbod hb_codepoint_t last) 236aec89de5641fbe1c3031d63dd5f40ec99bf2a538Behdad Esfahbod{ 237aec89de5641fbe1c3031d63dd5f40ec99bf2a538Behdad Esfahbod set->add_range (first, last); 238aec89de5641fbe1c3031d63dd5f40ec99bf2a538Behdad Esfahbod} 239aec89de5641fbe1c3031d63dd5f40ec99bf2a538Behdad Esfahbod 24020cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod/** 24120cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * hb_set_del: 24220cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * @set: a set. 24320cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * @codepoint: 24420cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 24520cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 24620cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 24701c3a88543850c87483fd8671044df53b368c520Sascha Brawer * Since: 0.9.2 24820cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod **/ 249aec89de5641fbe1c3031d63dd5f40ec99bf2a538Behdad Esfahbodvoid 2500b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbodhb_set_del (hb_set_t *set, 2510b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod hb_codepoint_t codepoint) 2520b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod{ 2530b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod set->del (codepoint); 2540b08adb3539f2ec29682456b89c69e89ff5e9c03Behdad Esfahbod} 2556c6ccaf575392f6e6bb9a15534026e4ea462705bBehdad Esfahbod 25620cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod/** 25720cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * hb_set_del_range: 25820cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * @set: a set. 25920cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * @first: 26020cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * @last: 26120cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 26220cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 26320cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 26401c3a88543850c87483fd8671044df53b368c520Sascha Brawer * Since: 0.9.7 26520cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod **/ 266aec89de5641fbe1c3031d63dd5f40ec99bf2a538Behdad Esfahbodvoid 267aec89de5641fbe1c3031d63dd5f40ec99bf2a538Behdad Esfahbodhb_set_del_range (hb_set_t *set, 268aec89de5641fbe1c3031d63dd5f40ec99bf2a538Behdad Esfahbod hb_codepoint_t first, 269aec89de5641fbe1c3031d63dd5f40ec99bf2a538Behdad Esfahbod hb_codepoint_t last) 270aec89de5641fbe1c3031d63dd5f40ec99bf2a538Behdad Esfahbod{ 271aec89de5641fbe1c3031d63dd5f40ec99bf2a538Behdad Esfahbod set->del_range (first, last); 272aec89de5641fbe1c3031d63dd5f40ec99bf2a538Behdad Esfahbod} 273aec89de5641fbe1c3031d63dd5f40ec99bf2a538Behdad Esfahbod 27420cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod/** 27520cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * hb_set_is_equal: 27620cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * @set: a set. 27720cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * @other: 27820cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 27920cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 28020cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 28120cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * Return value: 28220cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 28301c3a88543850c87483fd8671044df53b368c520Sascha Brawer * Since: 0.9.7 28420cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod **/ 2856c6ccaf575392f6e6bb9a15534026e4ea462705bBehdad Esfahbodhb_bool_t 286aec89de5641fbe1c3031d63dd5f40ec99bf2a538Behdad Esfahbodhb_set_is_equal (const hb_set_t *set, 287aec89de5641fbe1c3031d63dd5f40ec99bf2a538Behdad Esfahbod const hb_set_t *other) 2886c6ccaf575392f6e6bb9a15534026e4ea462705bBehdad Esfahbod{ 289aec89de5641fbe1c3031d63dd5f40ec99bf2a538Behdad Esfahbod return set->is_equal (other); 2906c6ccaf575392f6e6bb9a15534026e4ea462705bBehdad Esfahbod} 2916c6ccaf575392f6e6bb9a15534026e4ea462705bBehdad Esfahbod 29220cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod/** 29320cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * hb_set_set: 29420cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * @set: a set. 29520cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * @other: 29620cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 29720cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 29820cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 29901c3a88543850c87483fd8671044df53b368c520Sascha Brawer * Since: 0.9.2 30020cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod **/ 3016c6ccaf575392f6e6bb9a15534026e4ea462705bBehdad Esfahbodvoid 302aec89de5641fbe1c3031d63dd5f40ec99bf2a538Behdad Esfahbodhb_set_set (hb_set_t *set, 303aec89de5641fbe1c3031d63dd5f40ec99bf2a538Behdad Esfahbod const hb_set_t *other) 3046c6ccaf575392f6e6bb9a15534026e4ea462705bBehdad Esfahbod{ 3056c6ccaf575392f6e6bb9a15534026e4ea462705bBehdad Esfahbod set->set (other); 3066c6ccaf575392f6e6bb9a15534026e4ea462705bBehdad Esfahbod} 3076c6ccaf575392f6e6bb9a15534026e4ea462705bBehdad Esfahbod 30820cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod/** 30920cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * hb_set_union: 31020cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * @set: a set. 31120cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * @other: 31220cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 31320cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 31420cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 31501c3a88543850c87483fd8671044df53b368c520Sascha Brawer * Since: 0.9.2 31620cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod **/ 3176c6ccaf575392f6e6bb9a15534026e4ea462705bBehdad Esfahbodvoid 318aec89de5641fbe1c3031d63dd5f40ec99bf2a538Behdad Esfahbodhb_set_union (hb_set_t *set, 319aec89de5641fbe1c3031d63dd5f40ec99bf2a538Behdad Esfahbod const hb_set_t *other) 3206c6ccaf575392f6e6bb9a15534026e4ea462705bBehdad Esfahbod{ 3216c6ccaf575392f6e6bb9a15534026e4ea462705bBehdad Esfahbod set->union_ (other); 3226c6ccaf575392f6e6bb9a15534026e4ea462705bBehdad Esfahbod} 3236c6ccaf575392f6e6bb9a15534026e4ea462705bBehdad Esfahbod 32420cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod/** 32520cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * hb_set_intersect: 32620cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * @set: a set. 32720cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * @other: 32820cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 32920cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 33020cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 33101c3a88543850c87483fd8671044df53b368c520Sascha Brawer * Since: 0.9.2 33220cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod **/ 3336c6ccaf575392f6e6bb9a15534026e4ea462705bBehdad Esfahbodvoid 334aec89de5641fbe1c3031d63dd5f40ec99bf2a538Behdad Esfahbodhb_set_intersect (hb_set_t *set, 335aec89de5641fbe1c3031d63dd5f40ec99bf2a538Behdad Esfahbod const hb_set_t *other) 3366c6ccaf575392f6e6bb9a15534026e4ea462705bBehdad Esfahbod{ 3376c6ccaf575392f6e6bb9a15534026e4ea462705bBehdad Esfahbod set->intersect (other); 3386c6ccaf575392f6e6bb9a15534026e4ea462705bBehdad Esfahbod} 3396c6ccaf575392f6e6bb9a15534026e4ea462705bBehdad Esfahbod 34020cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod/** 34120cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * hb_set_subtract: 34220cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * @set: a set. 34320cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * @other: 34420cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 34520cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 34620cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 34701c3a88543850c87483fd8671044df53b368c520Sascha Brawer * Since: 0.9.2 34820cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod **/ 3496c6ccaf575392f6e6bb9a15534026e4ea462705bBehdad Esfahbodvoid 350aec89de5641fbe1c3031d63dd5f40ec99bf2a538Behdad Esfahbodhb_set_subtract (hb_set_t *set, 351aec89de5641fbe1c3031d63dd5f40ec99bf2a538Behdad Esfahbod const hb_set_t *other) 3526c6ccaf575392f6e6bb9a15534026e4ea462705bBehdad Esfahbod{ 3536c6ccaf575392f6e6bb9a15534026e4ea462705bBehdad Esfahbod set->subtract (other); 3546c6ccaf575392f6e6bb9a15534026e4ea462705bBehdad Esfahbod} 3556c6ccaf575392f6e6bb9a15534026e4ea462705bBehdad Esfahbod 35620cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod/** 35720cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * hb_set_symmetric_difference: 35820cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * @set: a set. 35920cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * @other: 36020cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 36120cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 36220cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 36301c3a88543850c87483fd8671044df53b368c520Sascha Brawer * Since: 0.9.2 36420cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod **/ 36562c3e111fce0ad34960871134c2eb6da572df303Behdad Esfahbodvoid 366aec89de5641fbe1c3031d63dd5f40ec99bf2a538Behdad Esfahbodhb_set_symmetric_difference (hb_set_t *set, 367aec89de5641fbe1c3031d63dd5f40ec99bf2a538Behdad Esfahbod const hb_set_t *other) 36862c3e111fce0ad34960871134c2eb6da572df303Behdad Esfahbod{ 36962c3e111fce0ad34960871134c2eb6da572df303Behdad Esfahbod set->symmetric_difference (other); 37062c3e111fce0ad34960871134c2eb6da572df303Behdad Esfahbod} 37162c3e111fce0ad34960871134c2eb6da572df303Behdad Esfahbod 37220cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod/** 37320cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * hb_set_invert: 37420cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * @set: a set. 37520cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 37620cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 37720cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 37801c3a88543850c87483fd8671044df53b368c520Sascha Brawer * Since: 0.9.10 37920cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod **/ 3808165f2765b93e99577ecc79b7956ae38c614bc78Behdad Esfahbodvoid 3818165f2765b93e99577ecc79b7956ae38c614bc78Behdad Esfahbodhb_set_invert (hb_set_t *set) 3828165f2765b93e99577ecc79b7956ae38c614bc78Behdad Esfahbod{ 3838165f2765b93e99577ecc79b7956ae38c614bc78Behdad Esfahbod set->invert (); 3848165f2765b93e99577ecc79b7956ae38c614bc78Behdad Esfahbod} 3858165f2765b93e99577ecc79b7956ae38c614bc78Behdad Esfahbod 38620cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod/** 38720cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * hb_set_get_population: 38820cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * @set: a set. 38920cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 39020cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * Returns the number of numbers in the set. 39120cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 39220cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * Return value: set population. 39320cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 39401c3a88543850c87483fd8671044df53b368c520Sascha Brawer * Since: 0.9.7 39520cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod **/ 396aec89de5641fbe1c3031d63dd5f40ec99bf2a538Behdad Esfahbodunsigned int 397ac064a2db2b7a010d99527e183145286215aea81Behdad Esfahbodhb_set_get_population (const hb_set_t *set) 398aec89de5641fbe1c3031d63dd5f40ec99bf2a538Behdad Esfahbod{ 399aec89de5641fbe1c3031d63dd5f40ec99bf2a538Behdad Esfahbod return set->get_population (); 400aec89de5641fbe1c3031d63dd5f40ec99bf2a538Behdad Esfahbod} 401aec89de5641fbe1c3031d63dd5f40ec99bf2a538Behdad Esfahbod 40220cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod/** 40320cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * hb_set_get_min: 40420cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * @set: a set. 40520cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 40620cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * Finds the minimum number in the set. 40720cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 40820cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * Return value: minimum of the set, or %HB_SET_VALUE_INVALID if set is empty. 40920cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 41001c3a88543850c87483fd8671044df53b368c520Sascha Brawer * Since: 0.9.7 41120cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod **/ 4126c6ccaf575392f6e6bb9a15534026e4ea462705bBehdad Esfahbodhb_codepoint_t 413aec89de5641fbe1c3031d63dd5f40ec99bf2a538Behdad Esfahbodhb_set_get_min (const hb_set_t *set) 4146c6ccaf575392f6e6bb9a15534026e4ea462705bBehdad Esfahbod{ 415f039e79d5438a8fc4a3ec11a387bbfc0f6b83024Behdad Esfahbod return set->get_min (); 4166c6ccaf575392f6e6bb9a15534026e4ea462705bBehdad Esfahbod} 4176c6ccaf575392f6e6bb9a15534026e4ea462705bBehdad Esfahbod 41820cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod/** 41920cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * hb_set_get_max: 42020cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * @set: a set. 42120cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 42220cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * Finds the maximum number in the set. 42320cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 42420cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * Return value: minimum of the set, or %HB_SET_VALUE_INVALID if set is empty. 42520cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 42601c3a88543850c87483fd8671044df53b368c520Sascha Brawer * Since: 0.9.7 42720cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod **/ 4286c6ccaf575392f6e6bb9a15534026e4ea462705bBehdad Esfahbodhb_codepoint_t 429aec89de5641fbe1c3031d63dd5f40ec99bf2a538Behdad Esfahbodhb_set_get_max (const hb_set_t *set) 4306c6ccaf575392f6e6bb9a15534026e4ea462705bBehdad Esfahbod{ 431f039e79d5438a8fc4a3ec11a387bbfc0f6b83024Behdad Esfahbod return set->get_max (); 4326c6ccaf575392f6e6bb9a15534026e4ea462705bBehdad Esfahbod} 43329ce446d3161b7ea5874352e5f8eb33cd59338c3Behdad Esfahbod 43420cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod/** 43520cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * hb_set_next: 43620cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * @set: a set. 43720cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * @codepoint: (inout): 43820cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 43920cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 44020cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 44120cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * Return value: whether there was a next value. 44220cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 44301c3a88543850c87483fd8671044df53b368c520Sascha Brawer * Since: 0.9.2 44420cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod **/ 44529ce446d3161b7ea5874352e5f8eb33cd59338c3Behdad Esfahbodhb_bool_t 446aec89de5641fbe1c3031d63dd5f40ec99bf2a538Behdad Esfahbodhb_set_next (const hb_set_t *set, 44729ce446d3161b7ea5874352e5f8eb33cd59338c3Behdad Esfahbod hb_codepoint_t *codepoint) 44829ce446d3161b7ea5874352e5f8eb33cd59338c3Behdad Esfahbod{ 44929ce446d3161b7ea5874352e5f8eb33cd59338c3Behdad Esfahbod return set->next (codepoint); 45029ce446d3161b7ea5874352e5f8eb33cd59338c3Behdad Esfahbod} 451aec89de5641fbe1c3031d63dd5f40ec99bf2a538Behdad Esfahbod 45220cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod/** 45320cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * hb_set_next_range: 45420cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * @set: a set. 45520cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * @first: (out): output first codepoint in the range. 45620cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * @last: (inout): input current last and output last codepoint in the range. 45720cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 45820cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * Gets the next consecutive range of numbers in @set that 45920cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * are greater than current value of @last. 46020cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 46120cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * Return value: whether there was a next range. 46220cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod * 46301c3a88543850c87483fd8671044df53b368c520Sascha Brawer * Since: 0.9.7 46420cbc1f8eb0811e6cefa3be3550e80df9c372782Behdad Esfahbod **/ 465aec89de5641fbe1c3031d63dd5f40ec99bf2a538Behdad Esfahbodhb_bool_t 466aec89de5641fbe1c3031d63dd5f40ec99bf2a538Behdad Esfahbodhb_set_next_range (const hb_set_t *set, 467aec89de5641fbe1c3031d63dd5f40ec99bf2a538Behdad Esfahbod hb_codepoint_t *first, 468aec89de5641fbe1c3031d63dd5f40ec99bf2a538Behdad Esfahbod hb_codepoint_t *last) 469aec89de5641fbe1c3031d63dd5f40ec99bf2a538Behdad Esfahbod{ 470aec89de5641fbe1c3031d63dd5f40ec99bf2a538Behdad Esfahbod return set->next_range (first, last); 471aec89de5641fbe1c3031d63dd5f40ec99bf2a538Behdad Esfahbod} 472