[gnumeric] xls: fix warnings.



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]