[gnumeric] Fix #610372
- From: Andreas J. Guelzow <guelzow src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnumeric] Fix #610372
- Date: Thu, 18 Feb 2010 21:38:28 +0000 (UTC)
commit dc8b2f690056c1df5767d656bafecfde67de074c
Author: Andreas J. Guelzow <aguelzow pyrshep ca>
Date: Thu Feb 18 14:37:54 2010 -0700
Fix #610372
2010-02-18 Andreas J. Guelzow <aguelzow pyrshep ca>
* xlsx-write.c (xlsx_write_cells): use value_get_as_gstring
rather than value_get_as_string. [#610372]
2010-02-18 Andreas J. Guelzow <aguelzow pyrshep ca>
* openoffice-write.c (odf_write_cell): use value_get_as_gstring
rather than value_get_as_float [#610372]
(odf_write_filter_cond): use value_get_as_gstring rather than
value_get_as_string [#610372]
plugins/excel/ChangeLog | 5 +++++
plugins/excel/xlsx-write.c | 7 ++++---
plugins/openoffice/ChangeLog | 11 +++++++++--
plugins/openoffice/openoffice-write.c | 30 ++++++++++++++++++------------
4 files changed, 36 insertions(+), 17 deletions(-)
---
diff --git a/plugins/excel/ChangeLog b/plugins/excel/ChangeLog
index 8966f40..cd35faa 100644
--- a/plugins/excel/ChangeLog
+++ b/plugins/excel/ChangeLog
@@ -1,3 +1,8 @@
+2010-02-18 Andreas J. Guelzow <aguelzow pyrshep ca>
+
+ * xlsx-write.c (xlsx_write_cells): use value_get_as_gstring
+ rather than value_get_as_string. [#610372]
+
2010-02-13 Morten Welinder <terra gnome org>
* Release 1.10.0
diff --git a/plugins/excel/xlsx-write.c b/plugins/excel/xlsx-write.c
index 9087bef..d1ccdad 100644
--- a/plugins/excel/xlsx-write.c
+++ b/plugins/excel/xlsx-write.c
@@ -433,9 +433,10 @@ xlsx_write_cells (XLSXWriteState *state, GsfXMLOut *xml, GnmRange const *extent)
gsf_xml_out_add_int (xml, NULL, str_id);
str_id = -1;
} else if (val->type != VALUE_BOOLEAN) {
- content = value_get_as_string (cell->value);
- gsf_xml_out_add_cstr (xml, NULL, content);
- g_free (content);
+ GString *str = g_string_new (NULL);
+ value_get_as_gstring (cell->value, str, state->convs);
+ gsf_xml_out_add_cstr (xml, NULL, str->str);
+ g_string_free (str, TRUE);
} else
xlsx_add_bool (xml, NULL, val->v_bool.val);
gsf_xml_out_end_element (xml); /* </v> */
diff --git a/plugins/openoffice/ChangeLog b/plugins/openoffice/ChangeLog
index 9901bf4..c3df528 100644
--- a/plugins/openoffice/ChangeLog
+++ b/plugins/openoffice/ChangeLog
@@ -1,7 +1,14 @@
2010-02-18 Andreas J. Guelzow <aguelzow pyrshep ca>
- * openoffice-write.c (odf_write_cell): Sore error literals
- as assignment. FIxes #610175.
+ * openoffice-write.c (odf_write_cell): use value_get_as_gstring
+ rather than value_get_as_float [#610372]
+ (odf_write_filter_cond): use value_get_as_gstring rather than
+ value_get_as_string [#610372]
+
+2010-02-18 Andreas J. Guelzow <aguelzow pyrshep ca>
+
+ * openoffice-write.c (odf_write_cell): Store error literals
+ as assignment. Fixes #610175.
2010-02-18 Morten Welinder <terra gnome org>
diff --git a/plugins/openoffice/openoffice-write.c b/plugins/openoffice/openoffice-write.c
index be28371..70185bf 100644
--- a/plugins/openoffice/openoffice-write.c
+++ b/plugins/openoffice/openoffice-write.c
@@ -2359,13 +2359,16 @@ odf_write_cell (GnmOOExport *state, GnmCell *cell, GnmRange const *merge_range,
odf_add_bool (state->xml, OFFICE "boolean-value",
value_get_as_bool (cell->value, NULL));
break;
- case VALUE_FLOAT:
+ case VALUE_FLOAT: {
+ GString *str = g_string_new (NULL);
+
gsf_xml_out_add_cstr_unchecked (state->xml,
OFFICE "value-type", "float");
- gsf_xml_out_add_float (state->xml, OFFICE "value",
- value_get_as_float
- (cell->value),
- -1);
+ value_get_as_gstring (cell->value, str, state->conv);
+ gsf_xml_out_add_cstr (state->xml, OFFICE "value", str->str);
+
+ g_string_free (str, TRUE);
+ }
break;
case VALUE_ERROR:
if (NULL == cell->base.texpr) {
@@ -2421,7 +2424,7 @@ odf_write_cell (GnmOOExport *state, GnmCell *cell, GnmRange const *merge_range,
GString *str = g_string_new (NULL);
const PangoAttrList * markup;
- value_get_as_gstring (cell->value, str, NULL);
+ value_get_as_gstring (cell->value, str, state->conv);
markup = go_format_get_markup (VALUE_FMT (cell->value));
gsf_xml_out_start_element (state->xml, TEXT "p");
@@ -2766,7 +2769,7 @@ odf_write_filter_cond (GnmOOExport *state, GnmFilter const *filter, int i)
{
GnmFilterCondition const *cond = gnm_filter_get_condition (filter, i);
char const *op, *type = NULL;
- char *val_str = NULL;
+ GString *val_str = NULL;
if (cond == NULL)
return;
@@ -2793,23 +2796,26 @@ odf_write_filter_cond (GnmOOExport *state, GnmFilter const *filter, int i)
}
if (GNM_FILTER_OP_TYPE_BUCKETS == (cond->op[0] & GNM_FILTER_OP_TYPE_MASK)) {
+ val_str = g_string_new (NULL);
type = "number";
- val_str = g_strdup_printf ("%g", cond->count);
+ g_string_printf (val_str, "%g", cond->count);
} else if (GNM_FILTER_OP_TYPE_BLANKS != (cond->op[0] & GNM_FILTER_OP_TYPE_MASK)) {
+ val_str = g_string_new (NULL);
type = VALUE_IS_FLOAT (cond->value[0]) ? "number" : "text";
- val_str = value_get_as_string (cond->value[0]);
+ value_get_as_gstring (cond->value[0], val_str, state->conv);
}
gsf_xml_out_start_element (state->xml, TABLE "filter-condition");
gsf_xml_out_add_int (state->xml, TABLE "field-number", i);
- if (NULL != type) {
+ if (NULL != type && val_str != NULL) {
gsf_xml_out_add_cstr_unchecked (state->xml, TABLE "data-type", type);
- gsf_xml_out_add_cstr (state->xml, TABLE "value", val_str);
+ gsf_xml_out_add_cstr (state->xml, TABLE "value", val_str->str);
}
gsf_xml_out_add_cstr_unchecked (state->xml, TABLE "operator", op);
gsf_xml_out_end_element (state->xml); /* </table:filter-condition> */
- g_free (val_str);
+ if (val_str)
+ g_string_free (val_str, TRUE);
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]