diff options
author | Matthias Clasen <mclasen@redhat.com> | 2022-06-24 23:00:58 -0400 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2022-07-04 11:17:21 -0400 |
commit | 778df432eb9bba4441d4c47cdbfbcd385b1e9d42 (patch) | |
tree | 39b66234cc325aafdddcebd76ec888d0cc099aaa /pango/pango-markup.c | |
parent | 249ce63ebb3d5666d5559184dd7c2c65e32695c2 (diff) | |
download | pango-778df432eb9bba4441d4c47cdbfbcd385b1e9d42.tar.gz |
Convert to the pango2 prefix
This makes pango 2 not just parallel-installable
with pango 1.x, but parallel-usable in the same
process.
Diffstat (limited to 'pango/pango-markup.c')
-rw-r--r-- | pango/pango-markup.c | 642 |
1 files changed, 321 insertions, 321 deletions
diff --git a/pango/pango-markup.c b/pango/pango-markup.c index 6b1a3398..c03196e8 100644 --- a/pango/pango-markup.c +++ b/pango/pango-markup.c @@ -1,4 +1,4 @@ -/* Pango +/* Pango2 * pango-markup.c: Parse markup into attributed text * * Copyright (C) 2000 Red Hat Software @@ -33,9 +33,6 @@ #include "pango-impl-utils.h" #include "pango-font-description-private.h" -/* FIXME */ -#define _(x) x - /* CSS size levels */ typedef enum { @@ -52,7 +49,7 @@ typedef struct _MarkupData MarkupData; struct _MarkupData { - PangoAttrList *attr_list; + Pango2AttrList *attr_list; GString *text; GSList *tag_stack; gsize index; @@ -160,7 +157,7 @@ static gboolean u_parse_func (MarkupData *md, GError **error); static gboolean -_pango_scan_int (const char **pos, int *out) +_pango2_scan_int (const char **pos, int *out) { char *end; long temp; @@ -210,7 +207,7 @@ parse_int (const char *word, } static gboolean -_pango_parse_enum (GType type, +_pango2_parse_enum (GType type, const char *str, int *value, gboolean warn, @@ -264,10 +261,10 @@ _pango_parse_enum (GType type, } static gboolean -pango_parse_flags (GType type, - const char *str, - int *value, - char **possible_values) +pango2_parse_flags (GType type, + const char *str, + int *value, + char **possible_values) { GFlagsClass *class = NULL; gboolean ret = TRUE; @@ -360,7 +357,7 @@ scale_factor (int scale_level, double base) static void open_tag_free (OpenTag *ot) { - g_slist_foreach (ot->attrs, (GFunc) pango_attribute_destroy, NULL); + g_slist_foreach (ot->attrs, (GFunc) pango2_attribute_destroy, NULL); g_slist_free (ot->attrs); g_slice_free (OpenTag, ot); } @@ -444,7 +441,7 @@ markup_data_close_tag (MarkupData *md) tmp_list = ot->attrs; while (tmp_list != NULL) { - PangoAttribute *a = tmp_list->data; + Pango2Attribute *a = tmp_list->data; a->start_index = ot->start_index; a->end_index = md->index; @@ -459,7 +456,7 @@ markup_data_close_tag (MarkupData *md) /* We affected relative font size; create an appropriate * attribute and reverse our effects on the current level */ - PangoAttribute *a; + Pango2Attribute *a; if (ot->has_base_font_size) { @@ -472,14 +469,14 @@ markup_data_close_tag (MarkupData *md) volatile double size; size = scale_factor (ot->scale_level, 1.0) * ot->base_font_size; - a = pango_attr_size_new (size); + a = pango2_attr_size_new (size); } else { /* Create a font using the current scale factor * as the base size to be scaled from */ - a = pango_attr_scale_new (scale_factor (ot->scale_level, + a = pango2_attr_scale_new (scale_factor (ot->scale_level, ot->base_scale_factor)); } @@ -560,7 +557,7 @@ start_element_handler (GMarkupParseContext *context, g_set_error (error, G_MARKUP_ERROR, G_MARKUP_ERROR_UNKNOWN_ELEMENT, - _("Unknown tag '%s' on line %d char %d"), + "Unknown tag '%s' on line %d char %d", element_name, line_number, char_number); @@ -665,9 +662,9 @@ text_handler (GMarkupParseContext *context G_GNUC_UNUSED, if (md->attr_list != NULL) { /* Add the underline indicating the accelerator */ - PangoAttribute *attr; + Pango2Attribute *attr; - attr = pango_attr_underline_new (PANGO_LINE_STYLE_SOLID); + attr = pango2_attr_underline_new (PANGO2_LINE_STYLE_SOLID); uline_index = md->index; uline_len = g_utf8_next_char (p) - p; @@ -675,14 +672,14 @@ text_handler (GMarkupParseContext *context G_GNUC_UNUSED, attr->start_index = uline_index; attr->end_index = uline_index + uline_len; - pango_attr_list_change (md->attr_list, attr); + pango2_attr_list_change (md->attr_list, attr); - attr = pango_attr_underline_position_new (PANGO_UNDERLINE_POSITION_UNDER); + attr = pango2_attr_underline_position_new (PANGO2_UNDERLINE_POSITION_UNDER); attr->start_index = uline_index; attr->end_index = uline_index + uline_len; - pango_attr_list_change (md->attr_list, attr); + pango2_attr_list_change (md->attr_list, attr); } /* set next range_start to include this char */ @@ -713,7 +710,7 @@ xml_isspace (char c) return c == ' ' || c == '\t' || c == '\n' || c == '\r'; } -static const GMarkupParser pango_markup_parser = { +static const GMarkupParser pango2_markup_parser = { start_element_handler, end_element_handler, text_handler, @@ -725,20 +722,20 @@ static void destroy_markup_data (MarkupData *md) { g_slist_free_full (md->tag_stack, (GDestroyNotify) open_tag_free); - g_slist_free_full (md->to_apply, (GDestroyNotify) pango_attribute_destroy); + g_slist_free_full (md->to_apply, (GDestroyNotify) pango2_attribute_destroy); if (md->text) g_string_free (md->text, TRUE); if (md->attr_list) - pango_attr_list_unref (md->attr_list); + pango2_attr_list_unref (md->attr_list); g_slice_free (MarkupData, md); } static GMarkupParseContext * -pango_markup_parser_new_internal (char accel_marker, - GError **error, - gboolean want_attr_list) +pango2_markup_parser_new_internal (char accel_marker, + GError **error, + gboolean want_attr_list) { MarkupData *md; GMarkupParseContext *context; @@ -750,7 +747,7 @@ pango_markup_parser_new_internal (char accel_marker, * some markup. */ if (want_attr_list) - md->attr_list = pango_attr_list_new (); + md->attr_list = pango2_attr_list_new (); else md->attr_list = NULL; @@ -763,7 +760,7 @@ pango_markup_parser_new_internal (char accel_marker, md->tag_stack = NULL; md->to_apply = NULL; - context = g_markup_parse_context_new (&pango_markup_parser, + context = g_markup_parse_context_new (&pango2_markup_parser, 0, md, (GDestroyNotify)destroy_markup_data); @@ -774,24 +771,24 @@ pango_markup_parser_new_internal (char accel_marker, } /** - * pango_parse_markup: - * @markup_text: markup to parse (see the [Pango Markup](pango_markup.html) docs) + * pango2_parse_markup: + * @markup_text: markup to parse (see the [Pango2 Markup](pango2_markup.html) docs) * @length: length of @markup_text, or -1 if nul-terminated * @accel_marker: character that precedes an accelerator, or 0 for none - * @attr_list: (out) (optional): address of return location for a `PangoAttrList` + * @attr_list: (out) (optional): address of return location for a `Pango2AttrList` * @text: (out) (optional): address of return location for text with tags stripped * @accel_char: (out) (optional): address of return location for accelerator char * @error: address of return location for errors * * Parses marked-up text to create a plain-text string and an attribute list. * - * See the [Pango Markup](pango_markup.html) docs for details about the + * See the [Pango2 Markup](pango2_markup.html) docs for details about the * supported markup. * * If @accel_marker is nonzero, the given character will mark the * character following it as an accelerator. For example, @accel_marker * might be an ampersand or underscore. All characters marked - * as an accelerator will receive a %PANGO_UNDERLINE_LOW attribute, + * as an accelerator will receive a %PANGO2_UNDERLINE_LOW attribute, * and the first character so marked will be returned in @accel_char. * Two @accel_marker characters following each other produce a single * literal @accel_marker character. @@ -804,13 +801,13 @@ pango_markup_parser_new_internal (char accel_marker, * Return value: %FALSE if @error is set, otherwise %TRUE **/ gboolean -pango_parse_markup (const char *markup_text, - int length, - gunichar accel_marker, - PangoAttrList **attr_list, - char **text, - gunichar *accel_char, - GError **error) +pango2_parse_markup (const char *markup_text, + int length, + gunichar accel_marker, + Pango2AttrList **attr_list, + char **text, + gunichar *accel_char, + GError **error) { GMarkupParseContext *context = NULL; gboolean ret = FALSE; @@ -827,9 +824,9 @@ pango_parse_markup (const char *markup_text, while (p != end && xml_isspace (*p)) ++p; - context = pango_markup_parser_new_internal (accel_marker, - error, - (attr_list != NULL)); + context = pango2_markup_parser_new_internal (accel_marker, + error, + (attr_list != NULL)); if (!g_markup_parse_context_parse (context, markup_text, @@ -837,11 +834,11 @@ pango_parse_markup (const char *markup_text, error)) goto out; - if (!pango_markup_parser_finish (context, - attr_list, - text, - accel_char, - error)) + if (!pango2_markup_parser_finish (context, + attr_list, + text, + accel_char, + error)) goto out; ret = TRUE; @@ -853,19 +850,19 @@ pango_parse_markup (const char *markup_text, } /** - * pango_markup_parser_new: + * pango2_markup_parser_new: * @accel_marker: character that precedes an accelerator, or 0 for none * * Incrementally parses marked-up text to create a plain-text string * and an attribute list. * - * See the [Pango Markup](pango_markup.html) docs for details about the + * See the [Pango2 Markup](pango2_markup.html) docs for details about the * supported markup. * * If @accel_marker is nonzero, the given character will mark the * character following it as an accelerator. For example, @accel_marker * might be an ampersand or underscore. All characters marked - * as an accelerator will receive a %PANGO_UNDERLINE_LOW attribute, + * as an accelerator will receive a %PANGO2_UNDERLINE_LOW attribute, * and the first character so marked will be returned in @accel_char, * when calling [func@markup_parser_finish]. Two @accel_marker characters * following each other produce a single literal @accel_marker character. @@ -875,30 +872,30 @@ pango_parse_markup (const char *markup_text, * to the parser, use [func@markup_parser_finish] to get the data out * of it, and then use [method@GLib.MarkupParseContext.free] to free it. * - * This function is designed for applications that read Pango markup - * from streams. To simply parse a string containing Pango markup, - * the [func@Pango.parse_markup] API is recommended instead. + * This function is designed for applications that read Pango2 markup + * from streams. To simply parse a string containing Pango2 markup, + * the [func@Pango2.parse_markup] API is recommended instead. * * Return value: (transfer none): a `GMarkupParseContext` that should be * destroyed with [method@GLib.MarkupParseContext.free]. **/ GMarkupParseContext * -pango_markup_parser_new (gunichar accel_marker) +pango2_markup_parser_new (gunichar accel_marker) { - return pango_markup_parser_new_internal (accel_marker, NULL, TRUE); + return pango2_markup_parser_new_internal (accel_marker, NULL, TRUE); } /** - * pango_markup_parser_finish: + * pango2_markup_parser_finish: * @context: A valid parse context that was returned from [func@markup_parser_new] - * @attr_list: (out) (optional): address of return location for a `PangoAttrList` + * @attr_list: (out) (optional): address of return location for a `Pango2AttrList` * @text: (out) (optional): address of return location for text with tags stripped * @accel_char: (out) (optional): address of return location for accelerator char * @error: address of return location for errors * * Finishes parsing markup. * - * After feeding a Pango markup parser some data with [method@GLib.MarkupParseContext.parse], + * After feeding a Pango2 markup parser some data with [method@GLib.MarkupParseContext.parse], * use this function to get the list of attributes and text out of the * markup. This function will not free @context, use [method@GLib.MarkupParseContext.free] * to do so. @@ -906,11 +903,11 @@ pango_markup_parser_new (gunichar accel_marker) * Return value: %FALSE if @error is set, otherwise %TRUE */ gboolean -pango_markup_parser_finish (GMarkupParseContext *context, - PangoAttrList **attr_list, - char **text, - gunichar *accel_char, - GError **error) +pango2_markup_parser_finish (GMarkupParseContext *context, + Pango2AttrList **attr_list, + char **text, + gunichar *accel_char, + GError **error) { gboolean ret = FALSE; MarkupData *md = g_markup_parse_context_get_user_data (context); @@ -933,10 +930,10 @@ pango_markup_parser_finish (GMarkupParseContext *context, tmp_list = md->to_apply; while (tmp_list != NULL) { - PangoAttribute *attr = tmp_list->data; + Pango2Attribute *attr = tmp_list->data; /* Innermost tags before outermost */ - pango_attr_list_insert (md->attr_list, attr); + pango2_attr_list_insert (md->attr_list, attr); tmp_list = g_slist_next (tmp_list); } @@ -967,10 +964,10 @@ pango_markup_parser_finish (GMarkupParseContext *context, } static void -set_bad_attribute (GError **error, - GMarkupParseContext *context, - const char *element_name, - const char *attribute_name) +set_bad_attribute (GError **error, + GMarkupParseContext *context, + const char *element_name, + const char *attribute_name) { int line_number, char_number; @@ -980,18 +977,18 @@ set_bad_attribute (GError **error, g_set_error (error, G_MARKUP_ERROR, G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE, - _("Tag '%s' does not support attribute '%s' on line %d char %d"), + "Tag '%s' does not support attribute '%s' on line %d char %d", element_name, attribute_name, line_number, char_number); } static void -add_attribute (OpenTag *ot, - PangoAttribute *attr) +add_attribute (OpenTag *ot, + Pango2Attribute *attr) { if (ot == NULL) - pango_attribute_destroy (attr); + pango2_attribute_destroy (attr); else ot->attrs = g_slist_prepend (ot->attrs, attr); } @@ -1003,25 +1000,25 @@ add_attribute (OpenTag *ot, } }G_STMT_END static gboolean -b_parse_func (MarkupData *md G_GNUC_UNUSED, - OpenTag *tag, - const char **names, - const char **values G_GNUC_UNUSED, - GMarkupParseContext *context, - GError **error) +b_parse_func (MarkupData *md G_GNUC_UNUSED, + OpenTag *tag, + const char **names, + const char **values G_GNUC_UNUSED, + GMarkupParseContext *context, + GError **error) { CHECK_NO_ATTRS("b"); - add_attribute (tag, pango_attr_weight_new (PANGO_WEIGHT_BOLD)); + add_attribute (tag, pango2_attr_weight_new (PANGO2_WEIGHT_BOLD)); return TRUE; } static gboolean -big_parse_func (MarkupData *md G_GNUC_UNUSED, - OpenTag *tag, - const char **names, - const char **values G_GNUC_UNUSED, - GMarkupParseContext *context, - GError **error) +big_parse_func (MarkupData *md G_GNUC_UNUSED, + OpenTag *tag, + const char **names, + const char **values G_GNUC_UNUSED, + GMarkupParseContext *context, + GError **error) { CHECK_NO_ATTRS("big"); @@ -1053,8 +1050,8 @@ parse_percentage (const char *input, } static gboolean -parse_absolute_size (OpenTag *tag, - const char *size) +parse_absolute_size (OpenTag *tag, + const char *size) { SizeLevel level = Medium; double val; @@ -1088,7 +1085,7 @@ parse_absolute_size (OpenTag *tag, factor = scale_factor (level, 1.0); done: - add_attribute (tag, pango_attr_scale_new (factor)); + add_attribute (tag, pango2_attr_scale_new (factor)); if (tag) open_tag_set_absolute_font_scale (tag, factor); @@ -1128,22 +1125,22 @@ attr_strcmp (gconstpointer pa, } static gboolean -span_parse_int (const char *attr_name, - const char *attr_val, - int *val, - int line_number, - GError **error) +span_parse_int (const char *attr_name, + const char *attr_val, + int *val, + int line_number, + GError **error) { const char *end = attr_val; - if (!_pango_scan_int (&end, val) || *end != '\0') + if (!_pango2_scan_int (&end, val) || *end != '\0') { g_set_error (error, G_MARKUP_ERROR, G_MARKUP_ERROR_INVALID_CONTENT, - _("Value of '%s' attribute on <span> tag " - "on line %d could not be parsed; " - "should be an integer, not '%s'"), + "Value of '%s' attribute on <span> tag " + "on line %d could not be parsed; " + "should be an integer, not '%s'", attr_name, line_number, attr_val); return FALSE; } @@ -1164,9 +1161,9 @@ span_parse_float (const char *attr_name, g_set_error (error, G_MARKUP_ERROR, G_MARKUP_ERROR_INVALID_CONTENT, - _("Value of '%s' attribute on <span> tag " - "on line %d could not be parsed; " - "should be a number, not '%s'"), + "Value of '%s' attribute on <span> tag " + "on line %d could not be parsed; " + "should be a number, not '%s'", attr_name, line_number, attr_val); return FALSE; } @@ -1175,11 +1172,11 @@ span_parse_float (const char *attr_name, } static gboolean -span_parse_boolean (const char *attr_name, - const char *attr_val, - gboolean *val, - int line_number, - GError **error) +span_parse_boolean (const char *attr_name, + const char *attr_val, + gboolean *val, + int line_number, + GError **error) { if (strcmp (attr_val, "true") == 0 || strcmp (attr_val, "yes") == 0 || @@ -1196,9 +1193,9 @@ span_parse_boolean (const char *attr_name, g_set_error (error, G_MARKUP_ERROR, G_MARKUP_ERROR_INVALID_CONTENT, - _("Value of '%s' attribute on <span> tag " - "line %d should have one of " - "'true/yes/t/y' or 'false/no/f/n': '%s' is not valid"), + "Value of '%s' attribute on <span> tag " + "line %d should have one of " + "'true/yes/t/y' or 'false/no/f/n': '%s' is not valid", attr_name, line_number, attr_val); return FALSE; } @@ -1207,20 +1204,20 @@ span_parse_boolean (const char *attr_name, } static gboolean -span_parse_color (const char *attr_name, - const char *attr_val, - PangoColor *color, - int line_number, - GError **error) +span_parse_color (const char *attr_name, + const char *attr_val, + Pango2Color *color, + int line_number, + GError **error) { - if (!pango_color_parse (color, attr_val)) + if (!pango2_color_parse (color, attr_val)) { g_set_error (error, G_MARKUP_ERROR, G_MARKUP_ERROR_INVALID_CONTENT, - _("Value of '%s' attribute on <span> tag " - "on line %d could not be parsed; " - "should be a color specification, not '%s'"), + "Value of '%s' attribute on <span> tag " + "on line %d could not be parsed; " + "should be a color specification, not '%s'", attr_name, line_number, attr_val); return FALSE; } @@ -1229,23 +1226,23 @@ span_parse_color (const char *attr_name, } static gboolean -span_parse_enum (const char *attr_name, - const char *attr_val, - GType type, - int *val, - int line_number, - GError **error) +span_parse_enum (const char *attr_name, + const char *attr_val, + GType type, + int *val, + int line_number, + GError **error) { char *possible_values = NULL; - if (!_pango_parse_enum (type, attr_val, val, FALSE, &possible_values)) + if (!_pango2_parse_enum (type, attr_val, val, FALSE, &possible_values)) { g_set_error (error, G_MARKUP_ERROR, G_MARKUP_ERROR_INVALID_CONTENT, - _("'%s' is not a valid value for the '%s' " - "attribute on <span> tag, line %d; valid " - "values are %s"), + "'%s' is not a valid value for the '%s' " + "attribute on <span> tag, line %d; valid " + "values are %s", attr_val, attr_name, line_number, possible_values); g_free (possible_values); return FALSE; @@ -1264,14 +1261,14 @@ span_parse_flags (const char *attr_name, { char *possible_values = NULL; - if (!pango_parse_flags (type, attr_val, val, &possible_values)) + if (!pango2_parse_flags (type, attr_val, val, &possible_values)) { g_set_error (error, G_MARKUP_ERROR, G_MARKUP_ERROR_INVALID_CONTENT, - _("'%s' is not a valid value for the '%s' " - "attribute on <span> tag, line %d; valid " - "values are %s or combinations with |"), + "'%s' is not a valid value for the '%s' " + "attribute on <span> tag, line %d; valid " + "values are %s or combinations with |", attr_val, attr_name, line_number, possible_values); g_free (possible_values); return FALSE; @@ -1288,7 +1285,7 @@ parse_length (const char *attr_val, int n; attr = attr_val; - if (_pango_scan_int (&attr, &n) && *attr == '\0') + if (_pango2_scan_int (&attr, &n) && *attr == '\0') { *result = n; return TRUE; @@ -1301,7 +1298,7 @@ parse_length (const char *attr_val, val = g_ascii_strtod (attr_val, &end); if (errno == 0 && strcmp (end, "pt") == 0) { - *result = val * PANGO_SCALE; + *result = val * PANGO2_SCALE; return TRUE; } } @@ -1310,12 +1307,12 @@ parse_length (const char *attr_val, } static gboolean -span_parse_func (MarkupData *md G_GNUC_UNUSED, - OpenTag *tag, - const char **names, - const char **values, - GMarkupParseContext *context, - GError **error) +span_parse_func (MarkupData *md G_GNUC_UNUSED, + OpenTag *tag, + const char **names, + const char **values, + GMarkupParseContext *context, + GError **error) { int line_number, char_number; int i; @@ -1359,8 +1356,8 @@ span_parse_func (MarkupData *md G_GNUC_UNUSED, if ((var) != NULL) { \ g_set_error (error, G_MARKUP_ERROR, \ G_MARKUP_ERROR_INVALID_CONTENT, \ - _("Attribute '%s' occurs twice on <span> tag " \ - "on line %d char %d, may only occur once"), \ + "Attribute '%s' occurs twice on <span> tag " \ + "on line %d char %d, may only occur once", \ names[i], line_number, char_number); \ return FALSE; \ }}G_STMT_END @@ -1384,28 +1381,28 @@ span_parse_func (MarkupData *md G_GNUC_UNUSED, break; case 'b': CHECK_ATTRIBUTE (background); - CHECK_ATTRIBUTE2(background, "bgcolor"); - CHECK_ATTRIBUTE(baseline_shift); + CHECK_ATTRIBUTE2 (background, "bgcolor"); + CHECK_ATTRIBUTE (baseline_shift); break; case 'c': - CHECK_ATTRIBUTE2(foreground, "color"); + CHECK_ATTRIBUTE2 (foreground, "color"); break; case 'f': CHECK_ATTRIBUTE (fallback); - CHECK_ATTRIBUTE2(desc, "font"); - CHECK_ATTRIBUTE2(desc, "font_desc"); - CHECK_ATTRIBUTE2(family, "face"); - - CHECK_ATTRIBUTE2(family, "font_family"); - CHECK_ATTRIBUTE2(size, "font_size"); - CHECK_ATTRIBUTE2(stretch, "font_stretch"); - CHECK_ATTRIBUTE2(style, "font_style"); - CHECK_ATTRIBUTE2(variant, "font_variant"); - CHECK_ATTRIBUTE2(weight, "font_weight"); - CHECK_ATTRIBUTE(font_scale); + CHECK_ATTRIBUTE2 (desc, "font"); + CHECK_ATTRIBUTE2 (desc, "font_desc"); + CHECK_ATTRIBUTE2 (family, "face"); + + CHECK_ATTRIBUTE2 (family, "font_family"); + CHECK_ATTRIBUTE2 (size, "font_size"); + CHECK_ATTRIBUTE2 (stretch, "font_stretch"); + CHECK_ATTRIBUTE2 (style, "font_style"); + CHECK_ATTRIBUTE2 (variant, "font_variant"); + CHECK_ATTRIBUTE2 (weight, "font_weight"); + CHECK_ATTRIBUTE (font_scale); CHECK_ATTRIBUTE (foreground); - CHECK_ATTRIBUTE2(foreground, "fgcolor"); + CHECK_ATTRIBUTE2 (foreground, "fgcolor"); CHECK_ATTRIBUTE (font_features); break; @@ -1458,8 +1455,8 @@ span_parse_func (MarkupData *md G_GNUC_UNUSED, { g_set_error (error, G_MARKUP_ERROR, G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE, - _("Attribute '%s' is not allowed on the <span> tag " - "on line %d char %d"), + "Attribute '%s' is not allowed on the <span> tag " + "on line %d char %d", names[i], line_number, char_number); return FALSE; } @@ -1470,21 +1467,21 @@ span_parse_func (MarkupData *md G_GNUC_UNUSED, /* Parse desc first, then modify it with other font-related attributes. */ if (G_UNLIKELY (desc)) { - PangoFontDescription *parsed; + Pango2FontDescription *parsed; - parsed = pango_font_description_from_string (desc); + parsed = pango2_font_description_from_string (desc); if (parsed) { - add_attribute (tag, pango_attr_font_desc_new (parsed)); + add_attribute (tag, pango2_attr_font_desc_new (parsed)); if (tag) - open_tag_set_absolute_font_size (tag, pango_font_description_get_size (parsed)); - pango_font_description_free (parsed); + open_tag_set_absolute_font_size (tag, pango2_font_description_get_size (parsed)); + pango2_font_description_free (parsed); } } if (G_UNLIKELY (family)) { - add_attribute (tag, pango_attr_family_new (family)); + add_attribute (tag, pango2_attr_family_new (family)); } if (G_UNLIKELY (size)) @@ -1493,7 +1490,7 @@ span_parse_func (MarkupData *md G_GNUC_UNUSED, if (parse_length (size, &n) && n > 0) { - add_attribute (tag, pango_attr_size_new (n)); + add_attribute (tag, pango2_attr_size_new (n)); if (tag) open_tag_set_absolute_font_size (tag, n); } @@ -1520,9 +1517,9 @@ span_parse_func (MarkupData *md G_GNUC_UNUSED, g_set_error (error, G_MARKUP_ERROR, G_MARKUP_ERROR_INVALID_CONTENT, - _("Value of 'size' attribute on <span> tag on line %d " - "could not be parsed; should be an integer, or a " - "string such as 'small', not '%s'"), + "Value of 'size' attribute on <span> tag on line %d " + "could not be parsed; should be an integer, or a " + "string such as 'small', not '%s'", line_number, size); goto error; } @@ -1530,18 +1527,18 @@ span_parse_func (MarkupData *md G_GNUC_UNUSED, if (G_UNLIKELY (style)) { - PangoStyle pango_style; + Pango2Style pango2_style; - if (pango_parse_style (style, &pango_style, FALSE)) - add_attribute (tag, pango_attr_style_new (pango_style)); + if (pango2_parse_style (style, &pango2_style, FALSE)) + add_attribute (tag, pango2_attr_style_new (pango2_style)); else { g_set_error (error, G_MARKUP_ERROR, G_MARKUP_ERROR_INVALID_CONTENT, - _("'%s' is not a valid value for the 'style' attribute " - "on <span> tag, line %d; valid values are " - "'normal', 'oblique', 'italic'"), + "'%s' is not a valid value for the 'style' attribute " + "on <span> tag, line %d; valid values are " + "'normal', 'oblique', 'italic'", style, line_number); goto error; } @@ -1549,19 +1546,19 @@ span_parse_func (MarkupData *md G_GNUC_UNUSED, if (G_UNLIKELY (weight)) { - PangoWeight pango_weight; + Pango2Weight pango2_weight; - if (pango_parse_weight (weight, &pango_weight, FALSE)) + if (pango2_parse_weight (weight, &pango2_weight, FALSE)) add_attribute (tag, - pango_attr_weight_new (pango_weight)); + pango2_attr_weight_new (pango2_weight)); else { g_set_error (error, G_MARKUP_ERROR, G_MARKUP_ERROR_INVALID_CONTENT, - _("'%s' is not a valid value for the 'weight' " - "attribute on <span> tag, line %d; valid " - "values are for example 'light', 'ultrabold' or a number"), + "'%s' is not a valid value for the 'weight' " + "attribute on <span> tag, line %d; valid " + "values are for example 'light', 'ultrabold' or a number", weight, line_number); goto error; } @@ -1569,18 +1566,18 @@ span_parse_func (MarkupData *md G_GNUC_UNUSED, if (G_UNLIKELY (variant)) { - PangoVariant pango_variant; + Pango2Variant pango2_variant; - if (pango_parse_variant (variant, &pango_variant, FALSE)) - add_attribute (tag, pango_attr_variant_new (pango_variant)); + if (pango2_parse_variant (variant, &pango2_variant, FALSE)) + add_attribute (tag, pango2_attr_variant_new (pango2_variant)); else { g_set_error (error, G_MARKUP_ERROR, G_MARKUP_ERROR_INVALID_CONTENT, - _("'%s' is not a valid value for the 'variant' " - "attribute on <span> tag, line %d; valid values are " - "'normal', 'smallcaps'"), + "'%s' is not a valid value for the 'variant' " + "attribute on <span> tag, line %d; valid values are " + "'normal', 'smallcaps'", variant, line_number); goto error; } @@ -1588,19 +1585,19 @@ span_parse_func (MarkupData *md G_GNUC_UNUSED, if (G_UNLIKELY (stretch)) { - PangoStretch pango_stretch; + Pango2Stretch pango2_stretch; - if (pango_parse_stretch (stretch, &pango_stretch, FALSE)) - add_attribute (tag, pango_attr_stretch_new (pango_stretch)); + if (pango2_parse_stretch (stretch, &pango2_stretch, FALSE)) + add_attribute (tag, pango2_attr_stretch_new (pango2_stretch)); else { g_set_error (error, G_MARKUP_ERROR, G_MARKUP_ERROR_INVALID_CONTENT, - _("'%s' is not a valid value for the 'stretch' " - "attribute on <span> tag, line %d; valid " - "values are for example 'condensed', " - "'ultraexpanded', 'normal'"), + "'%s' is not a valid value for the 'stretch' " + "attribute on <span> tag, line %d; valid " + "values are for example 'condensed', " + "'ultraexpanded', 'normal'", stretch, line_number); goto error; } @@ -1608,125 +1605,125 @@ span_parse_func (MarkupData *md G_GNUC_UNUSED, if (G_UNLIKELY (foreground)) { - PangoColor color; + Pango2Color color; if (!span_parse_color ("foreground", foreground, &color, line_number, error)) goto error; - add_attribute (tag, pango_attr_foreground_new (&color)); + add_attribute (tag, pango2_attr_foreground_new (&color)); } if (G_UNLIKELY (background)) { - PangoColor color; + Pango2Color color; if (!span_parse_color ("background", background, &color, line_number, error)) goto error; - add_attribute (tag, pango_attr_background_new (&color)); + add_attribute (tag, pango2_attr_background_new (&color)); } if (G_UNLIKELY (underline)) { - PangoLineStyle style = PANGO_LINE_STYLE_NONE; + Pango2LineStyle style = PANGO2_LINE_STYLE_NONE; - if (!span_parse_enum ("underline", underline, PANGO_TYPE_LINE_STYLE, (int*)(void*)&style, line_number, error)) + if (!span_parse_enum ("underline", underline, PANGO2_TYPE_LINE_STYLE, (int*)(void*)&style, line_number, error)) goto error; - add_attribute (tag, pango_attr_underline_new (style)); + add_attribute (tag, pango2_attr_underline_new (style)); } if (G_UNLIKELY (underline_position)) { - PangoUnderlinePosition pos = PANGO_UNDERLINE_POSITION_NORMAL; + Pango2UnderlinePosition pos = PANGO2_UNDERLINE_POSITION_NORMAL; - if (!span_parse_enum ("underline_position", underline_position, PANGO_TYPE_UNDERLINE_POSITION, (int*)(void*)&pos, line_number, error)) + if (!span_parse_enum ("underline_position", underline_position, PANGO2_TYPE_UNDERLINE_POSITION, (int*)(void*)&pos, line_number, error)) goto error; - add_attribute (tag, pango_attr_underline_position_new (pos)); + add_attribute (tag, pango2_attr_underline_position_new (pos)); } if (G_UNLIKELY (underline_color)) { - PangoColor color; + Pango2Color color; if (!span_parse_color ("underline_color", underline_color, &color, line_number, error)) goto error; - add_attribute (tag, pango_attr_underline_color_new (&color)); + add_attribute (tag, pango2_attr_underline_color_new (&color)); } if (G_UNLIKELY (overline)) { - PangoLineStyle style = PANGO_LINE_STYLE_NONE; + Pango2LineStyle style = PANGO2_LINE_STYLE_NONE; - if (!span_parse_enum ("overline", overline, PANGO_TYPE_LINE_STYLE, (int*)(void*)&style, line_number, error)) + if (!span_parse_enum ("overline", overline, PANGO2_TYPE_LINE_STYLE, (int*)(void*)&style, line_number, error)) goto error; - add_attribute (tag, pango_attr_overline_new (style)); + add_attribute (tag, pango2_attr_overline_new (style)); } if (G_UNLIKELY (overline_color)) { - PangoColor color; + Pango2Color color; if (!span_parse_color ("overline_color", overline_color, &color, line_number, error)) goto error; - add_attribute (tag, pango_attr_overline_color_new (&color)); + add_attribute (tag, pango2_attr_overline_color_new (&color)); } if (G_UNLIKELY (gravity)) { - PangoGravity gr = PANGO_GRAVITY_SOUTH; + Pango2Gravity gr = PANGO2_GRAVITY_SOUTH; - if (!span_parse_enum ("gravity", gravity, PANGO_TYPE_GRAVITY, (int*)(void*)&gr, line_number, error)) + if (!span_parse_enum ("gravity", gravity, PANGO2_TYPE_GRAVITY, (int*)(void*)&gr, line_number, error)) goto error; - if (gr == PANGO_GRAVITY_AUTO) + if (gr == PANGO2_GRAVITY_AUTO) { g_set_error (error, G_MARKUP_ERROR, G_MARKUP_ERROR_INVALID_CONTENT, - _("'%s' is not a valid value for the 'gravity' " - "attribute on <span> tag, line %d; valid " - "values are for example 'south', 'east', " - "'north', 'west'"), + "'%s' is not a valid value for the 'gravity' " + "attribute on <span> tag, line %d; valid " + "values are for example 'south', 'east', " + "'north', 'west'", gravity, line_number); goto error; } - add_attribute (tag, pango_attr_gravity_new (gr)); + add_attribute (tag, pango2_attr_gravity_new (gr)); } if (G_UNLIKELY (gravity_hint)) { - PangoGravityHint hint = PANGO_GRAVITY_HINT_NATURAL; + Pango2GravityHint hint = PANGO2_GRAVITY_HINT_NATURAL; - if (!span_parse_enum ("gravity_hint", gravity_hint, PANGO_TYPE_GRAVITY_HINT, (int*)(void*)&hint, line_number, error)) + if (!span_parse_enum ("gravity_hint", gravity_hint, PANGO2_TYPE_GRAVITY_HINT, (int*)(void*)&hint, line_number, error)) goto error; - add_attribute (tag, pango_attr_gravity_hint_new (hint)); + add_attribute (tag, pango2_attr_gravity_hint_new (hint)); } if (G_UNLIKELY (strikethrough)) { - PangoLineStyle style = PANGO_LINE_STYLE_NONE; + Pango2LineStyle style = PANGO2_LINE_STYLE_NONE; - if (!span_parse_enum ("strikethrough", strikethrough, PANGO_TYPE_LINE_STYLE, (int*)(void*)&style, line_number, error)) + if (!span_parse_enum ("strikethrough", strikethrough, PANGO2_TYPE_LINE_STYLE, (int*)(void*)&style, line_number, error)) goto error; - add_attribute (tag, pango_attr_strikethrough_new (style)); + add_attribute (tag, pango2_attr_strikethrough_new (style)); } if (G_UNLIKELY (strikethrough_color)) { - PangoColor color; + Pango2Color color; if (!span_parse_color ("strikethrough_color", strikethrough_color, &color, line_number, error)) goto error; - add_attribute (tag, pango_attr_strikethrough_color_new (&color)); + add_attribute (tag, pango2_attr_strikethrough_color_new (&color)); } if (G_UNLIKELY (fallback)) @@ -1736,27 +1733,27 @@ span_parse_func (MarkupData *md G_GNUC_UNUSED, if (!span_parse_boolean ("fallback", fallback, &b, line_number, error)) goto error; - add_attribute (tag, pango_attr_fallback_new (b)); + add_attribute (tag, pango2_attr_fallback_new (b)); } if (G_UNLIKELY (show)) { - PangoShowFlags flags; + Pango2ShowFlags flags; - if (!span_parse_flags ("show", show, PANGO_TYPE_SHOW_FLAGS, (int*)(void*)&flags, line_number, error)) + if (!span_parse_flags ("show", show, PANGO2_TYPE_SHOW_FLAGS, (int*)(void*)&flags, line_number, error)) goto error; - add_attribute (tag, pango_attr_show_new (flags)); + add_attribute (tag, pango2_attr_show_new (flags)); } if (G_UNLIKELY (text_transform)) { - PangoTextTransform tf; + Pango2TextTransform tf; - if (!span_parse_enum ("text_transform", text_transform, PANGO_TYPE_TEXT_TRANSFORM, (int*)(void*)&tf, line_number, error)) + if (!span_parse_enum ("text_transform", text_transform, PANGO2_TYPE_TEXT_TRANSFORM, (int*)(void*)&tf, line_number, error)) goto error; - add_attribute (tag, pango_attr_text_transform_new (tf)); + add_attribute (tag, pango2_attr_text_transform_new (tf)); } if (G_UNLIKELY (rise)) @@ -1768,32 +1765,32 @@ span_parse_func (MarkupData *md G_GNUC_UNUSED, g_set_error (error, G_MARKUP_ERROR, G_MARKUP_ERROR_INVALID_CONTENT, - _("Value of 'rise' attribute on <span> tag on line %d " - "could not be parsed; should be an integer, or a " - "string such as '5.5pt', not '%s'"), + "Value of 'rise' attribute on <span> tag on line %d " + "could not be parsed; should be an integer, or a " + "string such as '5.5pt', not '%s'", line_number, rise); goto error; } - add_attribute (tag, pango_attr_rise_new (n)); + add_attribute (tag, pango2_attr_rise_new (n)); } if (G_UNLIKELY (baseline_shift)) { int shift = 0; - if (span_parse_enum ("baseline_shift", baseline_shift, PANGO_TYPE_BASELINE_SHIFT, (int*)(void*)&shift, line_number, NULL)) - add_attribute (tag, pango_attr_baseline_shift_new (shift)); + if (span_parse_enum ("baseline_shift", baseline_shift, PANGO2_TYPE_BASELINE_SHIFT, (int*)(void*)&shift, line_number, NULL)) + add_attribute (tag, pango2_attr_baseline_shift_new (shift)); else if (parse_length (baseline_shift, &shift) && (shift > 1024 || shift < -1024)) - add_attribute (tag, pango_attr_baseline_shift_new (shift)); + add_attribute (tag, pango2_attr_baseline_shift_new (shift)); else { g_set_error (error, G_MARKUP_ERROR, G_MARKUP_ERROR_INVALID_CONTENT, - _("Value of 'baseline_shift' attribute on <span> tag on line %d " - "could not be parsed; should be 'superscript' or 'subscript' or " - "an integer, or a string such as '5.5pt', not '%s'"), + "Value of 'baseline_shift' attribute on <span> tag on line %d " + "could not be parsed; should be 'superscript' or 'subscript' or " + "an integer, or a string such as '5.5pt', not '%s'", line_number, baseline_shift); goto error; } @@ -1802,12 +1799,12 @@ span_parse_func (MarkupData *md G_GNUC_UNUSED, if (G_UNLIKELY (font_scale)) { - PangoFontScale scale; + Pango2FontScale scale; - if (!span_parse_enum ("font_scale", font_scale, PANGO_TYPE_FONT_SCALE, (int*)(void*)&scale, line_number, error)) + if (!span_parse_enum ("font_scale", font_scale, PANGO2_TYPE_FONT_SCALE, (int*)(void*)&scale, line_number, error)) goto error; - add_attribute (tag, pango_attr_font_scale_new (scale)); + add_attribute (tag, pango2_attr_font_scale_new (scale)); } if (G_UNLIKELY (letter_spacing)) @@ -1817,7 +1814,7 @@ span_parse_func (MarkupData *md G_GNUC_UNUSED, if (!span_parse_int ("letter_spacing", letter_spacing, &n, line_number, error)) goto error; - add_attribute (tag, pango_attr_letter_spacing_new (n)); + add_attribute (tag, pango2_attr_letter_spacing_new (n)); } if (G_UNLIKELY (line_height)) @@ -1828,20 +1825,20 @@ span_parse_func (MarkupData *md G_GNUC_UNUSED, goto error; if (f > 1024.0 && strchr (line_height, '.') == 0) - add_attribute (tag, pango_attr_line_height_new_absolute ((int)f)); + add_attribute (tag, pango2_attr_line_height_new_absolute ((int)f)); else - add_attribute (tag, pango_attr_line_height_new (f)); + add_attribute (tag, pango2_attr_line_height_new (f)); } if (G_UNLIKELY (lang)) { add_attribute (tag, - pango_attr_language_new (pango_language_from_string (lang))); + pango2_attr_language_new (pango2_language_from_string (lang))); } if (G_UNLIKELY (font_features)) { - add_attribute (tag, pango_attr_font_features_new (font_features)); + add_attribute (tag, pango2_attr_font_features_new (font_features)); } if (G_UNLIKELY (allow_breaks)) @@ -1851,7 +1848,7 @@ span_parse_func (MarkupData *md G_GNUC_UNUSED, if (!span_parse_boolean ("allow_breaks", allow_breaks, &b, line_number, error)) goto error; - add_attribute (tag, pango_attr_allow_breaks_new (b)); + add_attribute (tag, pango2_attr_allow_breaks_new (b)); } if (G_UNLIKELY (insert_hyphens)) @@ -1861,25 +1858,25 @@ span_parse_func (MarkupData *md G_GNUC_UNUSED, if (!span_parse_boolean ("insert_hyphens", insert_hyphens, &b, line_number, error)) goto error; - add_attribute (tag, pango_attr_insert_hyphens_new (b)); + add_attribute (tag, pango2_attr_insert_hyphens_new (b)); } if (G_UNLIKELY (segment)) { if (strcmp (segment, "word") == 0) - add_attribute (tag, pango_attr_word_new ()); + add_attribute (tag, pango2_attr_word_new ()); else if (strcmp (segment, "sentence") == 0) - add_attribute (tag, pango_attr_sentence_new ()); + add_attribute (tag, pango2_attr_sentence_new ()); else if (strcmp (segment, "paragraph") == 0) - add_attribute (tag, pango_attr_paragraph_new ()); + add_attribute (tag, pango2_attr_paragraph_new ()); else { g_set_error (error, G_MARKUP_ERROR, G_MARKUP_ERROR_INVALID_CONTENT, - _("Value of 'segment' attribute on <span> tag on line %d " - "could not be parsed; should be one of 'word' or " - "'sentence', not '%s'"), + "Value of 'segment' attribute on <span> tag on line %d " + "could not be parsed; should be one of 'word', 'sentence' " + "or 'paragraph', not '%s'", line_number, segment); goto error; } @@ -1893,15 +1890,16 @@ span_parse_func (MarkupData *md G_GNUC_UNUSED, } static gboolean -i_parse_func (MarkupData *md G_GNUC_UNUSED, - OpenTag *tag, - const char **names, - const char **values G_GNUC_UNUSED, - GMarkupParseContext *context, - GError **error) +i_parse_func (MarkupData *md G_GNUC_UNUSED, + OpenTag *tag, + const char **names, + const char **values G_GNUC_UNUSED, + GMarkupParseContext *context, + GError **error) { - CHECK_NO_ATTRS("i"); - add_attribute (tag, pango_attr_style_new (PANGO_STYLE_ITALIC)); + CHECK_NO_ATTRS ("i"); + + add_attribute (tag, pango2_attr_style_new (PANGO2_STYLE_ITALIC)); return TRUE; } @@ -1915,66 +1913,67 @@ markup_parse_func (MarkupData *md G_GNUC_UNUSED, GError **error G_GNUC_UNUSED) { /* We don't do anything with this tag at the moment. */ - CHECK_NO_ATTRS("markup"); + CHECK_NO_ATTRS ("markup"); return TRUE; } static gboolean -s_parse_func (MarkupData *md G_GNUC_UNUSED, - OpenTag *tag, - const char **names, - const char **values G_GNUC_UNUSED, - GMarkupParseContext *context, - GError **error) +s_parse_func (MarkupData *md G_GNUC_UNUSED, + OpenTag *tag, + const char **names, + const char **values G_GNUC_UNUSED, + GMarkupParseContext *context, + GError **error) { - CHECK_NO_ATTRS("s"); - add_attribute (tag, pango_attr_strikethrough_new (TRUE)); + CHECK_NO_ATTRS ("s"); + + add_attribute (tag, pango2_attr_strikethrough_new (TRUE)); return TRUE; } static gboolean -sub_parse_func (MarkupData *md G_GNUC_UNUSED, - OpenTag *tag, - const char **names, - const char **values G_GNUC_UNUSED, - GMarkupParseContext *context, - GError **error) +sub_parse_func (MarkupData *md G_GNUC_UNUSED, + OpenTag *tag, + const char **names, + const char **values G_GNUC_UNUSED, + GMarkupParseContext *context, + GError **error) { - CHECK_NO_ATTRS("sub"); + CHECK_NO_ATTRS ("sub"); - add_attribute (tag, pango_attr_font_scale_new (PANGO_FONT_SCALE_SUBSCRIPT)); - add_attribute (tag, pango_attr_baseline_shift_new (PANGO_BASELINE_SHIFT_SUBSCRIPT)); + add_attribute (tag, pango2_attr_font_scale_new (PANGO2_FONT_SCALE_SUBSCRIPT)); + add_attribute (tag, pango2_attr_baseline_shift_new (PANGO2_BASELINE_SHIFT_SUBSCRIPT)); return TRUE; } static gboolean -sup_parse_func (MarkupData *md G_GNUC_UNUSED, - OpenTag *tag, - const char **names, - const char **values G_GNUC_UNUSED, - GMarkupParseContext *context, - GError **error) +sup_parse_func (MarkupData *md G_GNUC_UNUSED, + OpenTag *tag, + const char **names, + const char **values G_GNUC_UNUSED, + GMarkupParseContext *context, + GError **error) { - CHECK_NO_ATTRS("sup"); + CHECK_NO_ATTRS ("sup"); - add_attribute (tag, pango_attr_font_scale_new (PANGO_FONT_SCALE_SUPERSCRIPT)); - add_attribute (tag, pango_attr_baseline_shift_new (PANGO_BASELINE_SHIFT_SUPERSCRIPT)); + add_attribute (tag, pango2_attr_font_scale_new (PANGO2_FONT_SCALE_SUPERSCRIPT)); + add_attribute (tag, pango2_attr_baseline_shift_new (PANGO2_BASELINE_SHIFT_SUPERSCRIPT)); return TRUE; } static gboolean -small_parse_func (MarkupData *md G_GNUC_UNUSED, - OpenTag *tag, - const char **names, - const char **values G_GNUC_UNUSED, - GMarkupParseContext *context, - GError **error) +small_parse_func (MarkupData *md G_GNUC_UNUSED, + OpenTag *tag, + const char **names, + const char **values G_GNUC_UNUSED, + GMarkupParseContext *context, + GError **error) { - CHECK_NO_ATTRS("small"); + CHECK_NO_ATTRS ("small"); /* Shrink text one level */ if (tag) @@ -1987,30 +1986,31 @@ small_parse_func (MarkupData *md G_GNUC_UNUSED, } static gboolean -tt_parse_func (MarkupData *md G_GNUC_UNUSED, - OpenTag *tag, - const char **names, - const char **values G_GNUC_UNUSED, - GMarkupParseContext *context, - GError **error) +tt_parse_func (MarkupData *md G_GNUC_UNUSED, + OpenTag *tag, + const char **names, + const char **values G_GNUC_UNUSED, + GMarkupParseContext *context, + GError **error) { - CHECK_NO_ATTRS("tt"); + CHECK_NO_ATTRS ("tt"); - add_attribute (tag, pango_attr_family_new ("Monospace")); + add_attribute (tag, pango2_attr_family_new ("Monospace")); return TRUE; } static gboolean -u_parse_func (MarkupData *md G_GNUC_UNUSED, - OpenTag *tag, - const char **names, - const char **values G_GNUC_UNUSED, - GMarkupParseContext *context, - GError **error) +u_parse_func (MarkupData *md G_GNUC_UNUSED, + OpenTag *tag, + const char **names, + const char **values G_GNUC_UNUSED, + GMarkupParseContext *context, + GError **error) { - CHECK_NO_ATTRS("u"); - add_attribute (tag, pango_attr_underline_new (PANGO_LINE_STYLE_SOLID)); + CHECK_NO_ATTRS ("u"); + + add_attribute (tag, pango2_attr_underline_new (PANGO2_LINE_STYLE_SOLID)); return TRUE; } |