[gnumeric] xls: fix warnings.
- From: Morten Welinder <mortenw src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gnumeric] xls: fix warnings.
- Date: Mon, 12 Oct 2009 17:02:41 +0000 (UTC)
commit 6fe69c63bb00614965774a66716e80bec28cf55f
Author: Morten Welinder <terra gnome org>
Date: Mon Oct 12 13:02:06 2009 -0400
xls: fix warnings.
plugins/excel/ChangeLog | 6 ++++++
plugins/excel/ms-formula-write.c | 18 +++++++++++++-----
plugins/excel/ms-formula-write.h | 3 ++-
plugins/excel/ms-obj.c | 6 ++----
4 files changed, 23 insertions(+), 10 deletions(-)
---
diff --git a/plugins/excel/ChangeLog b/plugins/excel/ChangeLog
index 901b7a4..5699583 100644
--- a/plugins/excel/ChangeLog
+++ b/plugins/excel/ChangeLog
@@ -1,5 +1,11 @@
2009-10-12 Morten Welinder <terra gnome org>
+ * ms-formula-write.c (excel_write_formula): Handle new
+ EXCEL_CALLED_FROM_OBJ.
+ (CTXT_NAME_OBJ): Rename from CTXT_NAME.
+
+ * ms-obj.c (ms_objv8_write_macro_fmla): Use EXCEL_CALLED_FROM_OBJ.
+
* ms-excel-write.c (excel_write_textbox_v8): Don't write macro
records yet.
diff --git a/plugins/excel/ms-formula-write.c b/plugins/excel/ms-formula-write.c
index d70b175..73322a3 100644
--- a/plugins/excel/ms-formula-write.c
+++ b/plugins/excel/ms-formula-write.c
@@ -198,9 +198,9 @@ typedef enum {
NUM_XL_TYPES = 3
} XLOpType;
typedef enum {
- CTXT_CELL = 0,
+ CTXT_CELL = 0,
CTXT_ARRAY = 1,
- CTXT_NAME = 2,
+ CTXT_NAME_OBJ = 2,
NUM_CTXTS
} XLContextType;
@@ -209,6 +209,7 @@ typedef struct {
Sheet *sheet;
int col, row;
gboolean use_name_variant;
+ gboolean allow_sheetless_ref;
XLContextType context;
/* Accumulator for storing arrays after the expression */
@@ -366,7 +367,7 @@ excel_formula_write_CELLREF (PolishData *pd, GnmCellRef const *ref,
g_return_if_fail (sheet_b == NULL);
- if (pd->context == CTXT_NAME) {
+ if (!pd->allow_sheetless_ref) {
g_warning ("XL does not support unqualified references in global names");
}
@@ -419,7 +420,7 @@ excel_formula_write_AREA (PolishData *pd, GnmCellRef const *a, GnmCellRef const
if (a->sheet == NULL && b->sheet == NULL) {
- if (pd->context == CTXT_NAME) {
+ if (pd->context == CTXT_NAME_OBJ) {
g_warning ("XL does not support unqualified references in global names");
}
@@ -950,6 +951,8 @@ excel_write_formula (ExcelWriteState *ewb, GnmExprTop const *texpr,
pd.sheet = sheet;
pd.ewb = ewb;
pd.arrays = NULL;
+ pd.allow_sheetless_ref = TRUE;
+
switch (context) {
case EXCEL_CALLED_FROM_CELL:
pd.context = CTXT_CELL;
@@ -960,7 +963,12 @@ excel_write_formula (ExcelWriteState *ewb, GnmExprTop const *texpr,
pd.use_name_variant = TRUE;
break;
case EXCEL_CALLED_FROM_NAME:
- pd.context = CTXT_NAME;
+ pd.context = CTXT_NAME_OBJ;
+ pd.use_name_variant = TRUE;
+ pd.allow_sheetless_ref = FALSE;
+ break;
+ case EXCEL_CALLED_FROM_OBJ:
+ pd.context = CTXT_NAME_OBJ;
pd.use_name_variant = TRUE;
break;
case EXCEL_CALLED_FROM_CONDITION:
diff --git a/plugins/excel/ms-formula-write.h b/plugins/excel/ms-formula-write.h
index 1f6341c..847ed34 100644
--- a/plugins/excel/ms-formula-write.h
+++ b/plugins/excel/ms-formula-write.h
@@ -19,7 +19,8 @@ typedef enum {
EXCEL_CALLED_FROM_SHARED,
EXCEL_CALLED_FROM_CONDITION,
EXCEL_CALLED_FROM_VALIDATION,
- EXCEL_CALLED_FROM_NAME
+ EXCEL_CALLED_FROM_NAME,
+ EXCEL_CALLED_FROM_OBJ
} ExcelFuncContext;
guint32 excel_write_formula (ExcelWriteState *ewb,
diff --git a/plugins/excel/ms-obj.c b/plugins/excel/ms-obj.c
index e3b8d8e..12d20f6 100644
--- a/plugins/excel/ms-obj.c
+++ b/plugins/excel/ms-obj.c
@@ -1435,8 +1435,7 @@ ms_objv8_write_checkbox_fmla (BiffPut *bp,
fmla_len = excel_write_formula (esheet->ewb,
texpr,
esheet->gnum_sheet, 0, 0,
- /* eh? */
- EXCEL_CALLED_FROM_NAME);
+ EXCEL_CALLED_FROM_OBJ);
if (fmla_len & 1)
ms_biff_put_var_write (bp, "", 1);
end_pos = bp->curpos;
@@ -1465,8 +1464,7 @@ ms_objv8_write_macro_fmla (BiffPut *bp,
fmla_len = excel_write_formula (esheet->ewb,
texpr,
esheet->gnum_sheet, 0, 0,
- /* eh? */
- EXCEL_CALLED_FROM_NAME);
+ EXCEL_CALLED_FROM_OBJ);
if (fmla_len & 1)
ms_biff_put_var_write (bp, "", 1);
end_pos = bp->curpos;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]