[gnumeric] xls: code cleanup.



commit aeed032e05c9385b1774669667950134e634e3a2
Author: Morten Welinder <terra gnome org>
Date:   Wed Apr 10 11:17:06 2013 -0400

    xls: code cleanup.

 plugins/excel/ChangeLog          |    3 +++
 plugins/excel/ms-excel-write.c   |   15 +++++----------
 plugins/excel/ms-formula-write.c |    3 ++-
 3 files changed, 10 insertions(+), 11 deletions(-)
---
diff --git a/plugins/excel/ChangeLog b/plugins/excel/ChangeLog
index 7bf8e71..4b77619 100644
--- a/plugins/excel/ChangeLog
+++ b/plugins/excel/ChangeLog
@@ -1,5 +1,8 @@
 2013-04-10  Morten Welinder  <terra gnome org>
 
+       * ms-excel-write.h (struct _XLSExporter): Change externnames
+       member to a GPtrArray of char*.
+
        * formula-types.h (ExcelFuncDesc): Add explicit index.
 
        * ms-formula-read.c (make_function): Fix importing of GAMMA (and
diff --git a/plugins/excel/ms-excel-write.c b/plugins/excel/ms-excel-write.c
index b59c96c..d555ec7 100644
--- a/plugins/excel/ms-excel-write.c
+++ b/plugins/excel/ms-excel-write.c
@@ -579,17 +579,14 @@ excel_write_externsheets_v7 (ExcelWriteState *ewb)
        ms_biff_put_commit (ewb->bp);
 
        for (i = 0; i < ewb->externnames->len ; i++) {
-               GnmFunc *func;
-               char *func_name;
+               const char *func_name;
 
                ms_biff_put_var_next (ewb->bp, BIFF_EXTERNNAME_v0); /* yes v0 */
                ms_biff_put_var_write (ewb->bp, zeros, 6);
 
                /* write the name and the 1 byte length */
-               func = g_ptr_array_index (ewb->externnames, i);
-               func_name = g_utf8_strup (func->name, -1);
+               func_name = g_ptr_array_index (ewb->externnames, i);
                excel_write_string (ewb->bp, STR_ONE_BYTE_LENGTH, func_name);
-               g_free (func_name);
 
                ms_biff_put_var_write (ewb->bp, expr_ref, sizeof (expr_ref));
                ms_biff_put_commit (ewb->bp);
@@ -630,17 +627,14 @@ excel_write_externsheets_v8 (ExcelWriteState *ewb)
                ms_biff_put_commit (ewb->bp);
 
                for (i = 0; i < ewb->externnames->len ; i++) {
-                       GnmFunc *func;
-                       char *func_name;
+                       const char *func_name;
 
                        ms_biff_put_var_next (ewb->bp, BIFF_EXTERNNAME_v0); /* yes v0 */
                        ms_biff_put_var_write (ewb->bp, zeros, 6);
 
                        /* write the name and the 1 byte length */
-                       func = g_ptr_array_index (ewb->externnames, i);
-                       func_name = g_utf8_strup (func->name, -1);
+                       func_name = g_ptr_array_index (ewb->externnames, i);
                        excel_write_string (ewb->bp, STR_ONE_BYTE_LENGTH, func_name);
-                       g_free (func_name);
                        ms_biff_put_var_write (ewb->bp, expr_ref, sizeof (expr_ref));
                        ms_biff_put_commit (ewb->bp);
                }
@@ -6524,6 +6518,7 @@ excel_write_state_free (ExcelWriteState *ewb)
        g_ptr_array_free (ewb->esheets, TRUE);
 
        g_hash_table_destroy (ewb->names);
+       g_ptr_array_foreach (ewb->externnames, (GFunc)g_free, NULL);
        g_ptr_array_free (ewb->externnames, TRUE);
        g_hash_table_destroy (ewb->function_map);
        g_hash_table_destroy (ewb->sheet_pairs);
diff --git a/plugins/excel/ms-formula-write.c b/plugins/excel/ms-formula-write.c
index b21168c..555b788 100644
--- a/plugins/excel/ms-formula-write.c
+++ b/plugins/excel/ms-formula-write.c
@@ -121,7 +121,8 @@ do_excel_write_prep_expr (ExcelWriteState *ewb, GnmExpr const *expr)
                        ef->macro_name = g_strdup (func->name);
                        ef->idx = -1;
                } else {
-                       g_ptr_array_add (ewb->externnames, func);
+                       g_ptr_array_add (ewb->externnames,
+                                        g_utf8_strup (gnm_func_get_name (func, FALSE), -1));
                        ef->macro_name = NULL;
                        ef->idx = ewb->externnames->len;
                }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]