diff options
Diffstat (limited to 'pango/pango-markup.c')
-rw-r--r-- | pango/pango-markup.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/pango/pango-markup.c b/pango/pango-markup.c index a4bd108c..3b45cc73 100644 --- a/pango/pango-markup.c +++ b/pango/pango-markup.c @@ -857,6 +857,7 @@ span_parse_func (MarkupData *md, const char *underline = NULL; const char *strikethrough = NULL; const char *rise = NULL; + const char *letter_spacing = NULL; const char *lang = NULL; const char *fallback = NULL; @@ -928,6 +929,11 @@ span_parse_func (MarkupData *md, CHECK_DUPLICATE (rise); rise = values[i]; } + else if (strcmp (names[i], "letter_spacing") == 0) + { + CHECK_DUPLICATE (letter_spacing); + letter_spacing = values[i]; + } else if (strcmp (names[i], "lang") == 0) { CHECK_DUPLICATE (lang); @@ -1231,6 +1237,28 @@ span_parse_func (MarkupData *md, add_attribute (tag, pango_attr_rise_new (n)); } + if (letter_spacing) + { + char *end = NULL; + glong n; + + n = strtol (letter_spacing, &end, 10); + + if (*end != '\0') + { + g_set_error (error, + G_MARKUP_ERROR, + G_MARKUP_ERROR_INVALID_CONTENT, + _("Value of 'letter_spacing' attribute on <span> tag " + "on line %d could not be parsed; " + "should be an integer, not '%s'"), + line_number, letter_spacing); + goto error; + } + + add_attribute (tag, pango_attr_letter_spacing_new (n)); + } + if (lang) { add_attribute (tag, |