summaryrefslogtreecommitdiff
path: root/pango/pango-utils.c
diff options
context:
space:
mode:
authorHavoc Pennington <hp@pobox.com>2000-11-01 06:46:29 +0000
committerHavoc Pennington <hp@src.gnome.org>2000-11-01 06:46:29 +0000
commitb00a32cc4f7b8783d673f31502b4ef3555486995 (patch)
tree2a035c680e76bdfa121585577de26a4796e46345 /pango/pango-utils.c
parent717a0b958c4616753798250985558cab328a6837 (diff)
downloadpango-b00a32cc4f7b8783d673f31502b4ef3555486995.tar.gz
Add a new attribute for scaling a font; also required adding
2000-11-01 Havoc Pennington <hp@pobox.com> * pango/pango-attributes.c (pango_attr_scale_new): Add a new attribute for scaling a font; also required adding PangoAttrFloat. (pango_attr_iterator_get_font): Add PANGO_ATTR_SCALE handling. * pango/pango-utils.c (pango_parse_stretch): Take a plain string not a GString (pango_parse_weight): ditto (pango_parse_variant): ditto (pango_parse_style): ditto * pango/pangox-fontmap.c (pango_x_font_map_read_alias_file): pass GString::str instead of the GString itself to pango_parse_* * pango/pangoft2-fontmap.c (pango_ft2_insert_face): ditto * pango/pangowin32-fontmap.c (pango_win32_font_map_read_alias_file): ditto * pango/pango-layout.c (get_tab_pos): adapt to new pango_itemize() signature (pango_layout_check_lines): Raise attr list copy/creation out of the loop over paragraphs. Adapt to pango_itemize() changes. * pango/pango-context.c (pango_itemize): pass in a starting index and a cached iterator (add_engines): Easy optimization, pass in n_chars instead of recomputing it. Also, pass on the start index and cached iterator. * docs/pango-sections.txt: Add new stuff docs/pango_markup.sgml: Docs on markup format * pango/pango-layout.c (pango_layout_get_attributes): New function to retrieve the AttrList from a layout (pango_layout_set_markup): Set layout from markup (pango_layout_set_markup_with_accel): Set layout from markup including accelerator parsing. * pango/pango-attributes.h (pango_parse_markup): New function to convert a tag string to an attribute list * pango/pango-markup.c (pango_parse_markup): implement * docs/Makefile.am, docs/pango-docs.sgml, docs/pango-sections.txt, docs/pango_markup.sgml: oooooh, documentation for the above patch! * docs/tmpl/pango-unused.sgml: Remove from CVS; just causes problems, and was full of checked-in conflict markers.
Diffstat (limited to 'pango/pango-utils.c')
-rw-r--r--pango/pango-utils.c89
1 files changed, 42 insertions, 47 deletions
diff --git a/pango/pango-utils.c b/pango/pango-utils.c
index e6d979c2..12c8d0a7 100644
--- a/pango/pango-utils.c
+++ b/pango/pango-utils.c
@@ -656,32 +656,32 @@ pango_get_lib_subdirectory (void)
}
gboolean
-pango_parse_style (GString *str,
+pango_parse_style (const char *str,
PangoFontDescription *desc,
gboolean warn)
{
- if (str->len == 0)
+ if (*str == '\0')
return FALSE;
- switch (str->str[0])
+ switch (str[0])
{
case 'n':
case 'N':
- if (g_strncasecmp (str->str, "normal", str->len) == 0)
+ if (g_strcasecmp (str, "normal") == 0)
{
desc->style = PANGO_STYLE_NORMAL;
return TRUE;
}
break;
case 'i':
- if (g_strncasecmp (str->str, "italic", str->len) == 0)
+ if (g_strcasecmp (str, "italic") == 0)
{
desc->style = PANGO_STYLE_ITALIC;
return TRUE;
}
break;
case 'o':
- if (g_strncasecmp (str->str, "oblique", str->len) == 0)
+ if (g_strcasecmp (str, "oblique") == 0)
{
desc->style = PANGO_STYLE_OBLIQUE;
return TRUE;
@@ -695,18 +695,18 @@ pango_parse_style (GString *str,
}
gboolean
-pango_parse_variant (GString *str,
+pango_parse_variant (const char *str,
PangoFontDescription *desc,
gboolean warn)
{
- if (str->len == 0)
+ if (*str == '\0')
return FALSE;
- switch (str->str[0])
+ switch (str[0])
{
case 'n':
case 'N':
- if (g_strncasecmp (str->str, "normal", str->len) == 0)
+ if (g_strcasecmp (str, "normal") == 0)
{
desc->variant = PANGO_VARIANT_NORMAL;
return TRUE;
@@ -714,8 +714,8 @@ pango_parse_variant (GString *str,
break;
case 's':
case 'S':
- if (g_strncasecmp (str->str, "small_caps", str->len) == 0 ||
- g_strncasecmp (str->str, "smallcaps", str->len) == 0)
+ if (g_strcasecmp (str, "small_caps") == 0 ||
+ g_strcasecmp (str, "smallcaps") == 0)
{
desc->variant = PANGO_VARIANT_SMALL_CAPS;
return TRUE;
@@ -729,18 +729,18 @@ pango_parse_variant (GString *str,
}
gboolean
-pango_parse_weight (GString *str,
+pango_parse_weight (const char *str,
PangoFontDescription *desc,
gboolean warn)
{
- if (str->len == 0)
+ if (*str == '\0')
return FALSE;
- switch (str->str[0])
+ switch (str[0])
{
case 'b':
case 'B':
- if (g_strncasecmp (str->str, "bold", str->len) == 0)
+ if (g_strcasecmp (str, "bold") == 0)
{
desc->weight = PANGO_WEIGHT_BOLD;
return TRUE;
@@ -748,7 +748,7 @@ pango_parse_weight (GString *str,
break;
case 'h':
case 'H':
- if (g_strncasecmp (str->str, "heavy", str->len) == 0)
+ if (g_strcasecmp (str, "heavy") == 0)
{
desc->weight = PANGO_WEIGHT_HEAVY;
return TRUE;
@@ -756,7 +756,7 @@ pango_parse_weight (GString *str,
break;
case 'l':
case 'L':
- if (g_strncasecmp (str->str, "light", str->len) == 0)
+ if (g_strcasecmp (str, "light") == 0)
{
desc->weight = PANGO_WEIGHT_LIGHT;
return TRUE;
@@ -764,7 +764,7 @@ pango_parse_weight (GString *str,
break;
case 'n':
case 'N':
- if (g_strncasecmp (str->str, "normal", str->len) == 0)
+ if (g_strcasecmp (str, "normal") == 0)
{
desc->weight = PANGO_WEIGHT_NORMAL;
return TRUE;
@@ -772,12 +772,12 @@ pango_parse_weight (GString *str,
break;
case 'u':
case 'U':
- if (g_strncasecmp (str->str, "ultralight", str->len) == 0)
+ if (g_strcasecmp (str, "ultralight") == 0)
{
desc->weight = PANGO_WEIGHT_ULTRALIGHT;
return TRUE;
}
- else if (g_strncasecmp (str->str, "ultrabold", str->len) == 0)
+ else if (g_strcasecmp (str, "ultrabold") == 0)
{
desc->weight = PANGO_WEIGHT_ULTRABOLD;
return TRUE;
@@ -794,20 +794,15 @@ pango_parse_weight (GString *str,
case '8':
case '9':
{
- char *numstr, *end;
+ char *end;
- numstr = g_strndup (str->str, str->len);
-
- desc->weight = strtol (numstr, &end, 0);
+ desc->weight = strtol (str, &end, 0);
if (*end != '\0')
{
if (warn)
- g_warning ("Cannot parse numerical weight '%s'", numstr);
- g_free (numstr);
+ g_warning ("Cannot parse numerical weight '%s'", str);
return FALSE;
}
-
- g_free (numstr);
return TRUE;
}
}
@@ -818,18 +813,18 @@ pango_parse_weight (GString *str,
}
gboolean
-pango_parse_stretch (GString *str,
+pango_parse_stretch (const char *str,
PangoFontDescription *desc,
gboolean warn)
{
- if (str->len == 0)
+ if (*str == '\0')
return FALSE;
- switch (str->str[0])
+ switch (str[0])
{
case 'c':
case 'C':
- if (g_strncasecmp (str->str, "condensed", str->len) == 0)
+ if (g_strcasecmp (str, "condensed") == 0)
{
desc->stretch = PANGO_STRETCH_CONDENSED;
return TRUE;
@@ -837,19 +832,19 @@ pango_parse_stretch (GString *str,
break;
case 'e':
case 'E':
- if (g_strncasecmp (str->str, "extra_condensed", str->len) == 0 ||
- g_strncasecmp (str->str, "extracondensed", str->len) == 0)
+ if (g_strcasecmp (str, "extra_condensed") == 0 ||
+ g_strcasecmp (str, "extracondensed") == 0)
{
desc->stretch = PANGO_STRETCH_EXTRA_CONDENSED;
return TRUE;
}
- if (g_strncasecmp (str->str, "extra_expanded", str->len) == 0 ||
- g_strncasecmp (str->str, "extraexpanded", str->len) == 0)
+ if (g_strcasecmp (str, "extra_expanded") == 0 ||
+ g_strcasecmp (str, "extraexpanded") == 0)
{
desc->stretch = PANGO_STRETCH_EXTRA_EXPANDED;
return TRUE;
}
- if (g_strncasecmp (str->str, "expanded", str->len) == 0)
+ if (g_strcasecmp (str, "expanded") == 0)
{
desc->stretch = PANGO_STRETCH_EXPANDED;
return TRUE;
@@ -857,7 +852,7 @@ pango_parse_stretch (GString *str,
break;
case 'n':
case 'N':
- if (g_strncasecmp (str->str, "normal", str->len) == 0)
+ if (g_strcasecmp (str, "normal") == 0)
{
desc->stretch = PANGO_STRETCH_NORMAL;
return TRUE;
@@ -865,14 +860,14 @@ pango_parse_stretch (GString *str,
break;
case 's':
case 'S':
- if (g_strncasecmp (str->str, "semi_condensed", str->len) == 0 ||
- g_strncasecmp (str->str, "semicondensed", str->len) == 0)
+ if (g_strcasecmp (str, "semi_condensed") == 0 ||
+ g_strcasecmp (str, "semicondensed") == 0)
{
desc->stretch = PANGO_STRETCH_SEMI_CONDENSED;
return TRUE;
}
- if (g_strncasecmp (str->str, "semi_expanded", str->len) == 0 ||
- g_strncasecmp (str->str, "semiexpanded", str->len) == 0)
+ if (g_strcasecmp (str, "semi_expanded") == 0 ||
+ g_strcasecmp (str, "semiexpanded") == 0)
{
desc->stretch = PANGO_STRETCH_SEMI_EXPANDED;
return TRUE;
@@ -880,14 +875,14 @@ pango_parse_stretch (GString *str,
break;
case 'u':
case 'U':
- if (g_strncasecmp (str->str, "ultra_condensed", str->len) == 0 ||
- g_strncasecmp (str->str, "ultracondensed", str->len) == 0)
+ if (g_strcasecmp (str, "ultra_condensed") == 0 ||
+ g_strcasecmp (str, "ultracondensed") == 0)
{
desc->stretch = PANGO_STRETCH_ULTRA_CONDENSED;
return TRUE;
}
- if (g_strncasecmp (str->str, "ultra_expanded", str->len) == 0 ||
- g_strncasecmp (str->str, "ultraexpanded", str->len) == 0)
+ if (g_strcasecmp (str, "ultra_expanded") == 0 ||
+ g_strcasecmp (str, "ultraexpanded") == 0)
{
desc->variant = PANGO_STRETCH_ULTRA_EXPANDED;
return TRUE;