X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Fsp-glyph.cpp;h=8af78a0aaf55111113cd1f056e2a98ac5036b454;hb=78e23de1b966743b030c38b1c654768736bae72b;hp=5b2cc2decfca5d2bcbaee735fe964adcdca5bd99;hpb=d1d38b5e9e4ca0810cc364e9aca7a1a8577776e6;p=inkscape.git diff --git a/src/sp-glyph.cpp b/src/sp-glyph.cpp index 5b2cc2dec..8af78a0aa 100644 --- a/src/sp-glyph.cpp +++ b/src/sp-glyph.cpp @@ -72,8 +72,9 @@ static void sp_glyph_class_init(SPGlyphClass *gc) static void sp_glyph_init(SPGlyph *glyph) { //TODO: correct these values: - glyph->unicode = NULL; - glyph->glyph_name = NULL; + + new (&glyph->unicode) Glib::ustring(); + new (&glyph->glyph_name) Glib::ustring(); glyph->d = NULL; glyph->orientation = GLYPH_ORIENTATION_BOTH; glyph->arabic_form = GLYPH_ARABIC_FORM_INITIAL; @@ -151,22 +152,19 @@ static void sp_glyph_set(SPObject *object, unsigned int key, const gchar *value) switch (key) { case SP_ATTR_UNICODE: - if (glyph->unicode) g_free(glyph->unicode); - glyph->unicode = g_strdup(value); + glyph->unicode.clear(); + if (value) glyph->unicode.append(value); object->requestModified(SP_OBJECT_MODIFIED_FLAG); -g_warning(": SP_ATTR_UNICODE: %s", value); - break; + break; case SP_ATTR_GLYPH_NAME: - if (glyph->glyph_name) g_free(glyph->glyph_name); - glyph->glyph_name = g_strdup(value); + glyph->glyph_name.clear(); + if (value) glyph->glyph_name.append(value); object->requestModified(SP_OBJECT_MODIFIED_FLAG); -g_warning(": SP_ATTR_GLYPH_NAME: %s", value); - break; + break; case SP_ATTR_D: if (glyph->d) g_free(glyph->d); glyph->d = g_strdup(value); object->requestModified(SP_OBJECT_MODIFIED_FLAG); -g_warning(": SP_ATTR_D: %s", value); break; case SP_ATTR_ORIENTATION: orient = sp_glyph_read_orientation(value); @@ -174,7 +172,6 @@ g_warning(": SP_ATTR_D: %s", value); glyph->orientation = orient; object->requestModified(SP_OBJECT_MODIFIED_FLAG); } -g_warning(": SP_ATTR_ORIENTATION: %d", orient); break; case SP_ATTR_ARABIC_FORM: form = sp_glyph_read_arabic_form(value); @@ -182,19 +179,16 @@ g_warning(": SP_ATTR_ORIENTATION: %d", orient); glyph->arabic_form = form; object->requestModified(SP_OBJECT_MODIFIED_FLAG); } -g_warning(": SP_ATTR_ARABIC_FORM: %d", glyph->arabic_form); break; case SP_ATTR_LANG: if (glyph->lang) g_free(glyph->lang); glyph->lang = g_strdup(value); -g_warning(": SP_ATTR_LANG: %s", value); object->requestModified(SP_OBJECT_MODIFIED_FLAG); break; case SP_ATTR_HORIZ_ADV_X: number = helperfns_read_number(value); if (number != glyph->horiz_adv_x){ glyph->horiz_adv_x = number; -g_warning(": SP_ATTR_HORIZ_ADV_X: %f", number); object->requestModified(SP_OBJECT_MODIFIED_FLAG); } break; @@ -202,7 +196,6 @@ g_warning(": SP_ATTR_HORIZ_ADV_X: %f", number); number = helperfns_read_number(value); if (number != glyph->vert_origin_x){ glyph->vert_origin_x = number; -g_warning(": SP_ATTR_VERT_ORIGIN_X: %f", number); object->requestModified(SP_OBJECT_MODIFIED_FLAG); } break; @@ -210,7 +203,6 @@ g_warning(": SP_ATTR_VERT_ORIGIN_X: %f", number); number = helperfns_read_number(value); if (number != glyph->vert_origin_y){ glyph->vert_origin_y = number; -g_warning(": SP_ATTR_VERT_ORIGIN_Y: %f", number); object->requestModified(SP_OBJECT_MODIFIED_FLAG); } break; @@ -218,7 +210,6 @@ g_warning(": SP_ATTR_VERT_ORIGIN_Y: %f", number); number = helperfns_read_number(value); if (number != glyph->vert_adv_y){ glyph->vert_adv_y = number; -g_warning(": SP_ATTR_VERT_ADV_Y: %f", number); object->requestModified(SP_OBJECT_MODIFIED_FLAG); } break;