summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Corbett <corbett.dav@husky.neu.edu>2019-02-18 22:30:40 -0500
committerBehdad Esfahbod <behdad@behdad.org>2019-02-25 17:48:16 -0500
commit45adc185260f0fa1fa86472aafb7f91f942c567e (patch)
tree6f3facdcc2745af55a278bea996d7c3bc56251f6
parentd66f7e14a0097d8ca54ad9824f7aa7daee6c7f72 (diff)
downloadharfbuzz-45adc185260f0fa1fa86472aafb7f91f942c567e.tar.gz
Fix or document unsupported font-feature-settings
-rw-r--r--src/hb-common.cc18
-rw-r--r--util/options.cc3
2 files changed, 14 insertions, 7 deletions
diff --git a/src/hb-common.cc b/src/hb-common.cc
index fb8c7b72..ab93bf42 100644
--- a/src/hb-common.cc
+++ b/src/hb-common.cc
@@ -731,7 +731,7 @@ parse_uint (const char **pp, const char *end, unsigned int *pv)
/* Intentionally use strtol instead of strtoul, such that
* -1 turns into "big number"... */
errno = 0;
- v = strtol (p, &pend, 0);
+ v = strtol (p, &pend, 10);
if (errno || p == pend)
return false;
@@ -755,7 +755,7 @@ parse_uint32 (const char **pp, const char *end, uint32_t *pv)
/* Intentionally use strtol instead of strtoul, such that
* -1 turns into "big number"... */
errno = 0;
- v = strtol (p, &pend, 0);
+ v = strtol (p, &pend, 10);
if (errno || p == pend)
return false;
@@ -857,9 +857,14 @@ parse_bool (const char **pp, const char *end, uint32_t *pv)
(*pp)++;
/* CSS allows on/off as aliases 1/0. */
- if (*pp - p == 2 && 0 == strncmp (p, "on", 2))
+ if (*pp - p == 2
+ && TOLOWER (p[0]) == 'o'
+ && TOLOWER (p[1]) == 'n')
*pv = 1;
- else if (*pp - p == 3 && 0 == strncmp (p, "off", 3))
+ else if (*pp - p == 3
+ && TOLOWER (p[0]) == 'o'
+ && TOLOWER (p[1]) == 'f'
+ && TOLOWER (p[2]) == 'f')
*pv = 0;
else
return false;
@@ -975,8 +980,9 @@ parse_one_feature (const char **pp, const char *end, hb_feature_t *feature)
* Parses a string into a #hb_feature_t.
*
* The format for specifying feature strings follows. All valid CSS
- * font-feature-settings values other than 'normal' and 'inherited' are also
- * accepted, though, not documented below.
+ * font-feature-settings values other than 'normal' and the global values are
+ * also accepted, though not documented below. CSS string escapes are not
+ * supported.
*
* The range indices refer to the positions between Unicode characters. The
* position before the first character is always 0.
diff --git a/util/options.cc b/util/options.cc
index b315c6a7..c5a4f0f0 100644
--- a/util/options.cc
+++ b/util/options.cc
@@ -432,7 +432,8 @@ shape_options_t::add_options (option_parser_t *parser)
" Features can be enabled or disabled, either globally or limited to\n"
" specific character ranges. The format for specifying feature settings\n"
" follows. All valid CSS font-feature-settings values other than 'normal'\n"
- " and 'inherited' are also accepted, though, not documented below.\n"
+ " and the global values are also accepted, though not documented below.\n"
+ " CSS string escapes are not supported."
"\n"
" The range indices refer to the positions between Unicode characters,\n"
" unless the --utf8-clusters is provided, in which case range indices\n"