Commit 8d168628 authored by Jody Goldberg's avatar Jody Goldberg Committed by Jody Goldberg

ExprName -> NamedExpression ArrayRef -> ExprArray


2000-05-01  Jody Goldberg <jgoldberg@home.com>

	* ExprName -> NamedExpression
	  ArrayRef -> ExprArray

	change ExprTree to be a union of similar types and split
	the elements into discrete types.
	    ExprConstant
	    ExprFunction
	    ExprUnary
	    ExprBinary
	    ExprName
	    ExprVar
	    ExprArray

	    expr->oper -> expr->any.oper

2000-04-29  Jody Goldberg <jgoldberg@home.com>

	* src/value.c (value_new_empty) : Don't allocate any memory.
	(value_release) : Don't free any either.

	* src/sheet-style.c (border_check) : Init outer_style to remove a
	  warning.
parent dbf5bad1
2000-05-01 Jody Goldberg <jgoldberg@home.com>
* ExprName -> NamedExpression
ArrayRef -> ExprArray
change ExprTree to be a union of similar types and split
the elements into discrete types.
ExprConstant
ExprFunction
ExprUnary
ExprBinary
ExprName
ExprVar
ExprArray
expr->oper -> expr->any.oper
2000-04-29 Jody Goldberg <jgoldberg@home.com>
* src/value.c (value_new_empty) : Don't allocate any memory.
(value_release) : Don't free any either.
* src/sheet-style.c (border_check) : Init outer_style to remove a
warning.
2000-05-01 Jon K Hellan <hellan@acm.org>
* src/dialogs/dialog-analysis-tools.c (selection_made): Popup tool
......
2000-05-01 Jody Goldberg <jgoldberg@home.com>
* ExprName -> NamedExpression
ArrayRef -> ExprArray
change ExprTree to be a union of similar types and split
the elements into discrete types.
ExprConstant
ExprFunction
ExprUnary
ExprBinary
ExprName
ExprVar
ExprArray
expr->oper -> expr->any.oper
2000-04-29 Jody Goldberg <jgoldberg@home.com>
* src/value.c (value_new_empty) : Don't allocate any memory.
(value_release) : Don't free any either.
* src/sheet-style.c (border_check) : Init outer_style to remove a
warning.
2000-05-01 Jon K Hellan <hellan@acm.org>
* src/dialogs/dialog-analysis-tools.c (selection_made): Popup tool
......
2000-05-01 Jody Goldberg <jgoldberg@home.com>
* ExprName -> NamedExpression
ArrayRef -> ExprArray
change ExprTree to be a union of similar types and split
the elements into discrete types.
ExprConstant
ExprFunction
ExprUnary
ExprBinary
ExprName
ExprVar
ExprArray
expr->oper -> expr->any.oper
2000-04-29 Jody Goldberg <jgoldberg@home.com>
* src/value.c (value_new_empty) : Don't allocate any memory.
(value_release) : Don't free any either.
* src/sheet-style.c (border_check) : Init outer_style to remove a
warning.
2000-05-01 Jon K Hellan <hellan@acm.org>
* src/dialogs/dialog-analysis-tools.c (selection_made): Popup tool
......
2000-05-01 Jody Goldberg <jgoldberg@home.com>
* ExprName -> NamedExpression
ArrayRef -> ExprArray
change ExprTree to be a union of similar types and split
the elements into discrete types.
ExprConstant
ExprFunction
ExprUnary
ExprBinary
ExprName
ExprVar
ExprArray
expr->oper -> expr->any.oper
2000-04-29 Jody Goldberg <jgoldberg@home.com>
* src/value.c (value_new_empty) : Don't allocate any memory.
(value_release) : Don't free any either.
* src/sheet-style.c (border_check) : Init outer_style to remove a
warning.
2000-05-01 Jon K Hellan <hellan@acm.org>
* src/dialogs/dialog-analysis-tools.c (selection_made): Popup tool
......
2000-05-01 Jody Goldberg <jgoldberg@home.com>
* ExprName -> NamedExpression
ArrayRef -> ExprArray
change ExprTree to be a union of similar types and split
the elements into discrete types.
ExprConstant
ExprFunction
ExprUnary
ExprBinary
ExprName
ExprVar
ExprArray
expr->oper -> expr->any.oper
2000-04-29 Jody Goldberg <jgoldberg@home.com>
* src/value.c (value_new_empty) : Don't allocate any memory.
(value_release) : Don't free any either.
* src/sheet-style.c (border_check) : Init outer_style to remove a
warning.
2000-05-01 Jon K Hellan <hellan@acm.org>
* src/dialogs/dialog-analysis-tools.c (selection_made): Popup tool
......
2000-05-01 Jody Goldberg <jgoldberg@home.com>
* ExprName -> NamedExpression
ArrayRef -> ExprArray
change ExprTree to be a union of similar types and split
the elements into discrete types.
ExprConstant
ExprFunction
ExprUnary
ExprBinary
ExprName
ExprVar
ExprArray
expr->oper -> expr->any.oper
2000-04-29 Jody Goldberg <jgoldberg@home.com>
* src/value.c (value_new_empty) : Don't allocate any memory.
(value_release) : Don't free any either.
* src/sheet-style.c (border_check) : Init outer_style to remove a
warning.
2000-05-01 Jon K Hellan <hellan@acm.org>
* src/dialogs/dialog-analysis-tools.c (selection_made): Popup tool
......
2000-05-01 Jody Goldberg <jgoldberg@home.com>
* ExprName -> NamedExpression
ArrayRef -> ExprArray
change ExprTree to be a union of similar types and split
the elements into discrete types.
ExprConstant
ExprFunction
ExprUnary
ExprBinary
ExprName
ExprVar
ExprArray
expr->oper -> expr->any.oper
2000-04-29 Jody Goldberg <jgoldberg@home.com>
* src/value.c (value_new_empty) : Don't allocate any memory.
(value_release) : Don't free any either.
* src/sheet-style.c (border_check) : Init outer_style to remove a
warning.
2000-05-01 Jon K Hellan <hellan@acm.org>
* src/dialogs/dialog-analysis-tools.c (selection_made): Popup tool
......
......@@ -580,14 +580,14 @@ gnumeric_isblank (FunctionEvalInfo *ei, GList *expr_node_list)
return value_new_bool (FALSE);
/* Handle pointless arrays */
if (expr->oper == OPER_ARRAY) {
if (expr->u.array.rows != 1 || expr->u.array.cols != 1)
if (expr->any.oper == OPER_ARRAY) {
if (expr->array.rows != 1 || expr->array.cols != 1)
return value_new_bool (FALSE);
expr = expr->u.array.corner.func.expr;
expr = expr->array.corner.func.expr;
}
if (expr->oper == OPER_VAR) {
CellRef const *ref = &expr->u.ref;
if (expr->any.oper == OPER_VAR) {
CellRef const *ref = &expr->var.ref;
Sheet const *sheet = eval_sheet (ref->sheet, ei->pos->sheet);
int row, col;
cell_get_abs_col_row(ref, &ei->pos->eval, &col, &row);
......@@ -747,7 +747,7 @@ gnumeric_isref (FunctionEvalInfo *ei, GList *expr_node_list)
if (!t)
return NULL;
return value_new_bool (t->oper == OPER_VAR);
return value_new_bool (t->any.oper == OPER_VAR);
}
/***************************************************************************/
......
......@@ -808,13 +808,13 @@ gnumeric_column (FunctionEvalInfo *ei, GList *nodes)
expr = (ExprTree *)nodes->data;
if (expr->oper == OPER_VAR)
return value_new_int (cell_ref_get_abs_col (&expr->u.ref,
if (expr->any.oper == OPER_VAR)
return value_new_int (cell_ref_get_abs_col (&expr->var.ref,
ei->pos) + 1);
if (expr->oper == OPER_CONSTANT &&
expr->u.constant->type == VALUE_CELLRANGE) {
if (expr->any.oper == OPER_CONSTANT &&
expr->constant.value->type == VALUE_CELLRANGE) {
int i, j, col;
Value const * range = expr->u.constant;
Value const * range = expr->constant.value;
CellRef const * a = &range->v_range.cell_a;
CellRef const * b = &range->v_range.cell_b;
Value * res = value_new_array (b->col - a->col + 1,
......@@ -951,13 +951,13 @@ gnumeric_row (FunctionEvalInfo *ei, GList *nodes)
expr = (ExprTree *)nodes->data;
if (expr->oper == OPER_VAR)
return value_new_int (cell_ref_get_abs_row (&expr->u.ref,
if (expr->any.oper == OPER_VAR)
return value_new_int (cell_ref_get_abs_row (&expr->var.ref,
ei->pos) + 1);
if (expr->oper == OPER_CONSTANT &&
expr->u.constant->type == VALUE_CELLRANGE) {
if (expr->any.oper == OPER_CONSTANT &&
expr->constant.value->type == VALUE_CELLRANGE) {
int i, j, row;
Value const * range = expr->u.constant;
Value const * range = expr->constant.value;
CellRef const * a = &range->v_range.cell_a;
CellRef const * b = &range->v_range.cell_b;
Value * res = value_new_array (b->col - a->col + 1,
......
......@@ -109,7 +109,7 @@ cb_af_suggest (Sheet *sheet, int col, int row, Cell *cell, void *_data)
static AutoFormatTypes
do_af_suggest (const ExprTree *expr, EvalPosition *ppos, char **explicit)
{
switch (expr->oper) {
switch (expr->any.oper) {
case OPER_EQUAL:
case OPER_GT:
case OPER_LT:
......@@ -124,19 +124,19 @@ do_af_suggest (const ExprTree *expr, EvalPosition *ppos, char **explicit)
/* Return the first interesting type we see. */
AutoFormatTypes typ;
typ = do_af_suggest (expr->u.binary.value_a, ppos, explicit);
typ = do_af_suggest (expr->binary.value_a, ppos, explicit);
if (typ != AF_UNKNOWN && typ != AF_UNITLESS)
return typ;
return do_af_suggest (expr->u.binary.value_b, ppos, explicit);
return do_af_suggest (expr->binary.value_b, ppos, explicit);
}
case OPER_SUB: {
AutoFormatTypes typ1, typ2;
char *explicit1 = NULL, *explicit2 = NULL;
typ1 = do_af_suggest (expr->u.binary.value_a, ppos, &explicit1);
typ2 = do_af_suggest (expr->u.binary.value_b, ppos, &explicit2);
typ1 = do_af_suggest (expr->binary.value_a, ppos, &explicit1);
typ2 = do_af_suggest (expr->binary.value_b, ppos, &explicit2);
if (typ1 == AF_DATE && typ2 == AF_DATE)
return AF_UNITLESS;
......@@ -153,25 +153,25 @@ do_af_suggest (const ExprTree *expr, EvalPosition *ppos, char **explicit)
case OPER_DIV:
/* Check the left-hand side only. */
return do_af_suggest (expr->u.binary.value_a, ppos, explicit);
return do_af_suggest (expr->binary.value_a, ppos, explicit);
case OPER_FUNCALL: {
AutoFormatTypes typ;
const char *name;
name = expr->u.function.symbol->str;
name = expr->func.symbol->str;
typ = (AutoFormatTypes)
GPOINTER_TO_INT
(g_hash_table_lookup (auto_format_function_hash, name));
switch (typ) {
case AF_FIRST_ARG_FORMAT:
return do_af_suggest_list (expr->u.function.arg_list,
return do_af_suggest_list (expr->func.arg_list,
ppos, explicit);
case AF_FIRST_ARG_FORMAT2: {
GList *l;
l = expr->u.function.arg_list;
l = expr->func.arg_list;
if (l) l = l->next;
return do_af_suggest_list (l, ppos, explicit);
}
......@@ -182,7 +182,7 @@ do_af_suggest (const ExprTree *expr, EvalPosition *ppos, char **explicit)
}
case OPER_CONSTANT: {
const Value *v = expr->u.constant;
const Value *v = expr->constant.value;
switch (v->type) {
case VALUE_STRING:
......@@ -226,7 +226,7 @@ do_af_suggest (const ExprTree *expr, EvalPosition *ppos, char **explicit)
int col, row;
const Cell *cell;
ref = &expr->u.ref;
ref = &expr->var.ref;
sheet = eval_sheet (ref->sheet, ppos->sheet);
/* If we don't have a sheet, we cannot look up vars. */
if (sheet == NULL)
......@@ -243,7 +243,7 @@ do_af_suggest (const ExprTree *expr, EvalPosition *ppos, char **explicit)
case OPER_UNARY_NEG:
case OPER_UNARY_PLUS:
return do_af_suggest (expr->u.value, ppos, explicit);
return do_af_suggest (expr->unary.value, ppos, explicit);
case OPER_PERCENT:
return AF_PERCENT;
......
......@@ -41,7 +41,7 @@ cell_dirty (Cell *cell)
* INTERNAL.
*/
static void
cell_formula_changed (Cell *cell, gboolean const queue_recalc)
cell_formula_changed (Cell *cell, gboolean queue_recalc)
{
sheet_cell_formula_link (cell);
if (queue_recalc)
......@@ -106,7 +106,7 @@ cell_cleanout (Cell *cell)
* Returns a copy of the cell.
*/
Cell *
cell_copy (const Cell *cell)
cell_copy (Cell const *cell)
{
Cell *new_cell;
......@@ -184,7 +184,7 @@ cell_content_changed (Cell *cell)
* Auxiliary items canvas items attached to the cell are moved.
*/
void
cell_relocate (Cell *cell, gboolean const check_bounds)
cell_relocate (Cell *cell, gboolean check_bounds)
{
g_return_if_fail (cell != NULL);
......@@ -204,11 +204,11 @@ cell_relocate (Cell *cell, gboolean const check_bounds)
* WARNING WARNING WARNING
*/
/* If cell was part of an array, reset the corner pointer */
if (cell->u.expression->oper == OPER_ARRAY) {
int const x = cell->u.expression->u.array.x;
int const y = cell->u.expression->u.array.y;
if (cell->u.expression->any.oper == OPER_ARRAY) {
int const x = cell->u.expression->array.x;
int const y = cell->u.expression->array.y;
if (x != 0 || y != 0)
cell->u.expression->u.array.corner.cell =
cell->u.expression->array.corner.cell =
sheet_cell_get (cell->sheet,
cell->col_info->pos - x,
cell->row_info->pos - y);
......@@ -267,7 +267,7 @@ cell_relocate (Cell *cell, gboolean const check_bounds)
* NOTE : This DOES check for array partitioning.
*/
void
cell_set_text (Cell *cell, const char *text)
cell_set_text (Cell *cell, char const *text)
{
char const *format;
Value *val;
......@@ -520,7 +520,7 @@ void
cell_set_array_formula (Sheet *sheet,
int row_a, int col_a, int row_b, int col_b,
ExprTree *formula,
gboolean const queue_recalc)
gboolean queue_recalc)
{
int const num_rows = 1 + row_b - row_a;
int const num_cols = 1 + col_b - col_a;
......@@ -533,9 +533,9 @@ cell_set_array_formula (Sheet *sheet,
g_return_if_fail (formula != NULL);
g_return_if_fail (corner != NULL);
wrapper = expr_tree_array_formula (0, 0, num_rows, num_cols);
wrapper->u.array.corner.func.value = NULL;
wrapper->u.array.corner.func.expr = formula;
wrapper = expr_tree_new_array (0, 0, num_rows, num_cols);
wrapper->array.corner.func.value = NULL;
wrapper->array.corner.func.expr = formula;
expr_tree_ref (formula);
cell_set_expr_internal (corner, wrapper, NULL);
expr_tree_unref (wrapper);
......@@ -548,9 +548,8 @@ cell_set_array_formula (Sheet *sheet,
continue;
cell = sheet_cell_fetch (sheet, col_a + x, row_a + y);
wrapper = expr_tree_array_formula (x, y,
num_rows, num_cols);
wrapper->u.array.corner.cell = corner;
wrapper = expr_tree_new_array (x, y, num_rows, num_cols);
wrapper->array.corner.cell = corner;
cell_set_expr_internal (cell, wrapper, NULL);
cell_formula_changed (cell, queue_recalc);
expr_tree_unref (wrapper);
......@@ -563,14 +562,14 @@ cell_set_array_formula (Sheet *sheet,
/***************************************************************************/
gboolean
cell_is_blank (Cell const * const cell)
cell_is_blank (Cell const * cell)
{
return (cell == NULL || cell->value == NULL ||
cell->value->type == VALUE_EMPTY);
}
Value *
cell_is_error (Cell const * const cell)
cell_is_error (Cell const * cell)
{
g_return_val_if_fail (cell != NULL, NULL);
g_return_val_if_fail (cell->value != NULL, NULL);
......@@ -581,14 +580,14 @@ cell_is_error (Cell const * const cell)
}
inline gboolean
cell_is_number (const Cell *cell)
cell_is_number (Cell const *cell)
{
/* FIXME : This does not handle arrays or ranges */
return (cell->value && VALUE_IS_NUMBER (cell->value));
}
gboolean
cell_is_zero (const Cell *cell)
cell_is_zero (Cell const *cell)
{
Value const * const v = cell->value;
if (v == NULL)
......@@ -607,19 +606,19 @@ cell_is_zero (const Cell *cell)
}
}
inline ArrayRef const *
cell_is_array (Cell const * const cell)
inline ExprArray const *
cell_is_array (Cell const *cell)
{
if (cell != NULL && cell_has_expr (cell) &&
cell->u.expression->oper == OPER_ARRAY)
return &cell->u.expression->u.array;
cell->u.expression->any.oper == OPER_ARRAY)
return &cell->u.expression->array;
return NULL;
}
gboolean
cell_is_partial_array (Cell const * const cell)
cell_is_partial_array (Cell const *cell)
{
ArrayRef const * ref = cell_is_array (cell);
ExprArray const *ref = cell_is_array (cell);
return ref != NULL && (ref->cols > 1 || ref->rows > 1);
}
......@@ -649,7 +648,7 @@ cell_render_value (Cell *cell)
MStyle *
cell_get_mstyle (const Cell *cell)
cell_get_mstyle (Cell const *cell)
{
return sheet_style_compute (cell->sheet,
cell->col_info->pos,
......@@ -657,7 +656,7 @@ cell_get_mstyle (const Cell *cell)
}
void
cell_set_mstyle (const Cell *cell, MStyle *mstyle)
cell_set_mstyle (Cell const *cell, MStyle *mstyle)
{
Range range;
......@@ -669,14 +668,14 @@ cell_set_mstyle (const Cell *cell, MStyle *mstyle)
}
char *
cell_get_format (const Cell *cell)
cell_get_format (Cell const *cell)
{
MStyle *mstyle;
char *result;
mstyle = cell_get_mstyle (cell);
if (mstyle_is_element_set (mstyle, MSTYLE_FORMAT)) {
const char *format;
char const *format;
format = mstyle_get_format (mstyle)->format;
/* FIXME: we really should distinguish between "not assigned"
and "assigned General". */
......@@ -700,7 +699,7 @@ cell_get_format (const Cell *cell)
* Does not render, redraw, or respan.
*/
void
cell_set_format (Cell *cell, const char *format)
cell_set_format (Cell *cell, char const *format)
{
MStyle * mstyle = cell_get_mstyle (cell);
......
......@@ -43,20 +43,20 @@ struct _Cell {
/**
* Manage cells
*/
Cell *cell_copy (const Cell *cell);
Cell *cell_copy (Cell const *cell);
void cell_destroy (Cell *cell);
void cell_content_changed (Cell *cell);
void cell_relocate (Cell *cell, gboolean const check_bounds);
void cell_relocate (Cell *cell, gboolean check_bounds);
/**
* Cell state checking
*/
gboolean cell_is_blank (Cell const * const cell);
Value * cell_is_error (Cell const * const cell);
gboolean cell_is_number (Cell const * const cell);
gboolean cell_is_zero (Cell const * const cell);
ArrayRef const * cell_is_array (Cell const * const cell);
gboolean cell_is_partial_array (Cell const * const cell);
gboolean cell_is_blank (Cell const * cell);
Value * cell_is_error (Cell const * cell);
gboolean cell_is_number (Cell const * cell);
gboolean cell_is_zero (Cell const * cell);
ExprArray const * cell_is_array (Cell const * cell);
gboolean cell_is_partial_array (Cell const * cell);
#define cell_needs_recalc(cell) ((cell)->cell_flags & CELL_QUEUED_FOR_RECALC)
#define cell_has_expr(cell) ((cell)->cell_flags & CELL_HAS_EXPRESSION)
#define cell_has_comment(cell) ((cell)->comment != NULL)
......@@ -64,7 +64,7 @@ gboolean cell_is_partial_array (Cell const * const cell);
/**
* Utilities to assign the contents of a cell
*/
void cell_set_text (Cell *cell, const char *text);
void cell_set_text (Cell *cell, char const *text);
void cell_set_text_and_value (Cell *cell, String *text,
Value *v, char const * optional_format);
void cell_assign_value (Cell *cell, Value *v, char const * optional_format);
......@@ -76,16 +76,16 @@ void cell_set_expr (Cell *cell, ExprTree *formula,
void cell_set_array_formula (Sheet *sheet, int rowa, int cola,
int rowb, int colb,
ExprTree *formula,
gboolean const queue_recalc);
gboolean queue_recalc);
/**
* Manipulate Cell attributes
*/
MStyle *cell_get_mstyle (const Cell *cell);
void cell_set_mstyle (const Cell *cell, MStyle *mstyle);
MStyle *cell_get_mstyle (Cell const *cell);
void cell_set_mstyle (Cell const *cell, MStyle *mstyle);
char * cell_get_format (const Cell *cell);
void cell_set_format (Cell *cell, const char *format);
char * cell_get_format (Cell const *cell);
void cell_set_format (Cell *cell, char const *format);
void cell_make_value (Cell *cell); /* FIXME : This is crap ?! */
void cell_render_value (Cell *cell);
......
......@@ -527,26 +527,26 @@ handle_tree_deps (Cell *cell, ExprTree *tree, DepOperation operation)
{
GList *l;
switch (tree->oper) {
switch (tree->any.oper) {
case OPER_ANY_BINARY:
handle_tree_deps (cell, tree->u.binary.value_a, operation);
handle_tree_deps (cell, tree->u.binary.value_b, operation);
handle_tree_deps (cell, tree->binary.value_a, operation);
handle_tree_deps (cell, tree->binary.value_b, operation);
return;
case OPER_ANY_UNARY:
handle_tree_deps (cell, tree->u.value, operation);
handle_tree_deps (cell, tree->unary.value, operation);
return;
case OPER_VAR:
handle_cell_range_deps (
cell,
&tree->u.ref,
&tree->u.ref,
&tree->var.ref,
&tree->var.ref,
operation);
return;
case OPER_CONSTANT:
handle_value_deps (cell, tree->u.constant, operation);
handle_value_deps (cell, tree->constant.value, operation);
return;
/*
......@@ -554,31 +554,31 @@ handle_tree_deps (Cell *cell, ExprTree *tree, DepOperation operation)
* more cunning handling of argument type matching.
*/
case OPER_FUNCALL:
for (l = tree->u.function.arg_list; l; l = l->next)
for (l = tree->func.arg_list; l; l = l->next)
handle_tree_deps (cell, l->data, operation);
return;
case OPER_NAME:
if (tree->u.name->builtin) {
if (tree->name.name->builtin) {
/* FIXME: insufficiently flexible dependancy code (?) */
} else
handle_tree_deps (cell, tree->u.name->t.expr_tree, operation);
handle_tree_deps (cell, tree->name.name->t.expr_tree, operation);
return;
case OPER_ARRAY:
if (tree->u.array.x != 0 || tree->u.array.y != 0) {
if (tree->array.x != 0 || tree->array.y != 0) {
/* Non-corner cells depend on the corner */
CellRef a;
a.col_relative = a.row_relative = 0;
a.sheet = cell->sheet;
a.col = cell->col_info->pos - tree->u.array.x;
a.row = cell->row_info->pos - tree->u.array.y;
a.col = cell->col_info->pos - tree->array.x;
a.row = cell->row_info->pos - tree->array.y;
handle_cell_range_deps (cell, &a, &a, operation);
} else
/* Corner cell depends on the contents of the expr */
handle_tree_deps (cell, tree->u.array.corner.func.expr,
handle_tree_deps (cell, tree->array.corner.func.expr,
operation);
return;
default:
......
......@@ -33,7 +33,7 @@ update_edit (state_t *state)
/* ICK! parse names as if we are in A1 ?? Why ? */
static CellPos const pos = {0,0};
gint i = state->selected;
ExprName *expr_name;
NamedExpression *expr_name;
Sheet *sheet;
EvalPosition ep;
char *txt;
......@@ -60,7 +60,7 @@ select_name (GtkWidget *w, state_t *state)
guint i = 0;
GList *sel = GTK_LIST(w)->selection;
GList *p = state->expr_names;
ExprName *name;
NamedExpression *name;
if (sel == NULL)
return;
......@@ -95,7 +95,7 @@ fill_list (state_t *state)
state->expr_names = names = expr_name_list (state->wb, NULL, FALSE);
while (names) {
ExprName *expr_name = names->data;
NamedExpression *expr_name = names->data;
GtkWidget *li = gtk_list_item_new_with_label (expr_name->name->str);
gtk_object_set_data (GTK_OBJECT (li), LIST_KEY, expr_name);
gtk_widget_show (GTK_WIDGET (li));
......@@ -158,7 +158,7 @@ grab_text_ok (state_t *state, gboolean update_list)
{
gchar *name;
gchar *value;
ExprName *expr_name;
NamedExpression *expr_name;
char *error;
g_return_val_if_fail (state != NULL, FALSE);
......
......@@ -527,26 +527,26 @@ handle_tree_deps (Cell *cell, ExprTree *tree, DepOperation operation)
{
GList *l;
switch (tree->oper) {
switch (tree->any.oper) {
case OPER_ANY_BINARY:
handle_tree_deps (cell, tree->u.binary.value_a, operation);
handle_tree_deps (cell, tree->u.binary.value_b, operation);
handle_tree_deps (cell, tree->binary.value_a, operation);
handle_tree_deps (cell, tree->binary.value_b, operation);
return;
case OPER_ANY_UNARY:
handle_tree_deps (cell, tree->u.value, operation);
handle_tree_deps (cell, tree->unary.value, operation);
return;
case OPER_VAR:
handle_cell_range_deps (
cell,
&