summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2014-02-27 06:01:30 +0200
committerArnold D. Robbins <arnold@skeeve.com>2014-02-27 06:01:30 +0200
commitd80438ac6fef9137ab0450f02cd507d422aa9c32 (patch)
tree284a17657812e9322dc5ca4ec95b970d5b2e28f9
parent6994c5d1fc086915699a04bba84596c6fbf488da (diff)
downloadgawk-d80438ac6fef9137ab0450f02cd507d422aa9c32.tar.gz
Lots of enum/int fixes.
-rw-r--r--ChangeLog10
-rw-r--r--array.c2
-rw-r--r--awk.h1
-rw-r--r--builtin.c4
-rw-r--r--gawkapi.c117
5 files changed, 72 insertions, 62 deletions
diff --git a/ChangeLog b/ChangeLog
index 3edd067d..507cd3e7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2014-02-27 Arnold D. Robbins <arnold@skeeve.com>
+
+ Fixes for enum/int mismatches as warned by some compilers.
+
+ * awk.h (ANONE): New enum for array sorting.
+ * array.c (assoc_list): Use it.
+ * builtin.c (format_tree): New MP_NONE value.
+ * gawkapi.c: Use awk_false and awk_true everywhere instead of
+ false and true.
+
2014-02-26 Arnold D. Robbins <arnold@skeeve.com>
* configure.ac: Set up do-nothing extension/Makefile on
diff --git a/array.c b/array.c
index 37894da5..840808e4 100644
--- a/array.c
+++ b/array.c
@@ -1279,7 +1279,7 @@ assoc_list(NODE *symbol, const char *sort_str, sort_context_t sort_ctxt)
INSTRUCTION *code = NULL;
extern int currule;
int save_rule = 0;
- assoc_kind_t assoc_kind = 0;
+ assoc_kind_t assoc_kind = ANONE;
elem_size = 1;
diff --git a/awk.h b/awk.h
index 1414358c..a846483a 100644
--- a/awk.h
+++ b/awk.h
@@ -1327,6 +1327,7 @@ if (--val) \
/* array.c */
typedef enum { SORTED_IN = 1, ASORT, ASORTI } sort_context_t;
typedef enum {
+ ANONE = 0x00, /* "unused" value */
AINDEX = 0x001, /* list of indices */
AVALUE = 0x002, /* list of values */
AINUM = 0x004, /* numeric index */
diff --git a/builtin.c b/builtin.c
index 7a969cbc..72aea3b0 100644
--- a/builtin.c
+++ b/builtin.c
@@ -719,7 +719,7 @@ format_tree(
mpz_ptr zi;
mpfr_ptr mf;
#endif
- enum { MP_INT_WITH_PREC = 1, MP_INT_WITHOUT_PREC, MP_FLOAT } fmt_type;
+ enum { MP_NONE = 0, MP_INT_WITH_PREC = 1, MP_INT_WITHOUT_PREC, MP_FLOAT } fmt_type;
static const char sp[] = " ";
static const char zero_string[] = "0";
@@ -817,7 +817,7 @@ format_tree(
mf = NULL;
zi = NULL;
#endif
- fmt_type = 0;
+ fmt_type = MP_NONE;
lj = alt = big_flag = bigbig_flag = small_flag = false;
fill = sp;
diff --git a/gawkapi.c b/gawkapi.c
index 9936d530..fb456ce7 100644
--- a/gawkapi.c
+++ b/gawkapi.c
@@ -43,7 +43,7 @@ api_get_argument(awk_ext_id_t id, size_t count,
NODE *arg;
if (result == NULL)
- return false;
+ return awk_false;
(void) id;
@@ -59,7 +59,7 @@ api_get_argument(awk_ext_id_t id, size_t count,
*/
arg = get_argument(count);
if (arg == NULL)
- return false;
+ return awk_false;
/* if type is undefined */
if (arg->type == Node_var_new) {
@@ -84,7 +84,7 @@ array:
/* get the array here */
arg = get_array_argument(count, false);
if (arg == NULL)
- return false;
+ return awk_false;
return node_to_awk_value(arg, result, wanted);
@@ -92,11 +92,11 @@ scalar:
/* at this point we have a real type that is not an array */
arg = get_scalar_argument(count, false);
if (arg == NULL)
- return false;
+ return awk_false;
return node_to_awk_value(arg, result, wanted);
#else
- return false;
+ return awk_false;
#endif
}
@@ -114,23 +114,23 @@ api_set_argument(awk_ext_id_t id,
(void) id;
if (array == NULL || array->type != Node_var_array)
- return false;
+ return awk_false;
if ( (arg = get_argument(count)) == NULL
|| arg->type != Node_var_new)
- return false;
+ return awk_false;
arg = get_array_argument(count, false);
if (arg == NULL)
- return false;
+ return awk_false;
array->vname = arg->vname;
*arg = *array;
freenode(array);
- return true;
+ return awk_true;
#else
- return false;
+ return awk_false;
#endif
}
@@ -314,12 +314,12 @@ api_add_ext_func(awk_ext_id_t id,
(void) namespace;
if (func == NULL)
- return false;
+ return awk_false;
#ifdef DYNAMIC
return make_builtin(func);
#else
- return false;
+ return awk_false;
#endif
}
@@ -378,7 +378,7 @@ api_awk_atexit(awk_ext_id_t id,
static awk_bool_t
node_to_awk_value(NODE *node, awk_value_t *val, awk_valtype_t wanted)
{
- awk_bool_t ret = false;
+ awk_bool_t ret = awk_false;
if (node == NULL)
fatal(_("node_to_awk_value: received null node"));
@@ -390,7 +390,7 @@ node_to_awk_value(NODE *node, awk_value_t *val, awk_valtype_t wanted)
case Node_var_new: /* undefined variable */
val->val_type = AWK_UNDEFINED;
if (wanted == AWK_UNDEFINED) {
- ret = true;
+ ret = awk_true;
}
break;
@@ -399,7 +399,7 @@ node_to_awk_value(NODE *node, awk_value_t *val, awk_valtype_t wanted)
if (wanted == AWK_SCALAR) {
val->val_type = AWK_SCALAR;
val->scalar_cookie = (void *) node;
- ret = true;
+ ret = awk_true;
break;
}
@@ -414,7 +414,7 @@ node_to_awk_value(NODE *node, awk_value_t *val, awk_valtype_t wanted)
(void) force_number(node);
if ((node->flags & NUMCUR) != 0) {
val->num_value = get_number_d(node);
- ret = true;
+ ret = awk_true;
}
break;
@@ -425,7 +425,7 @@ node_to_awk_value(NODE *node, awk_value_t *val, awk_valtype_t wanted)
if ((node->flags & STRCUR) != 0) {
val->str_value.str = node->stptr;
val->str_value.len = node->stlen;
- ret = true;
+ ret = awk_true;
}
break;
@@ -436,7 +436,7 @@ node_to_awk_value(NODE *node, awk_value_t *val, awk_valtype_t wanted)
val->val_type = AWK_STRING;
} else
val->val_type = AWK_UNDEFINED;
- ret = false;
+ ret = awk_false;
break;
case AWK_UNDEFINED:
@@ -444,12 +444,12 @@ node_to_awk_value(NODE *node, awk_value_t *val, awk_valtype_t wanted)
if ((node->flags & NUMBER) != 0) {
val->val_type = AWK_NUMBER;
val->num_value = get_number_d(node);
- ret = true;
+ ret = awk_true;
} else if ((node->flags & STRING) != 0) {
val->val_type = AWK_STRING;
val->str_value.str = node->stptr;
val->str_value.len = node->stlen;
- ret = true;
+ ret = awk_true;
} else
val->val_type = AWK_UNDEFINED;
break;
@@ -464,15 +464,14 @@ node_to_awk_value(NODE *node, awk_value_t *val, awk_valtype_t wanted)
val->val_type = AWK_ARRAY;
if (wanted == AWK_ARRAY || wanted == AWK_UNDEFINED) {
val->array_cookie = node;
- ret = true;
- } else {
- ret = false;
- }
+ ret = awk_true;
+ } else
+ ret = awk_false;
break;
default:
val->val_type = AWK_UNDEFINED;
- ret = false;
+ ret = awk_false;
break;
}
@@ -510,7 +509,7 @@ api_sym_lookup(awk_ext_id_t id,
|| *name == '\0'
|| result == NULL
|| (node = lookup(name)) == NULL)
- return false;
+ return awk_false;
if (is_off_limits_var(name)) /* a built-in variable */
node->flags |= NO_EXT_SET;
@@ -531,7 +530,7 @@ api_sym_lookup_scalar(awk_ext_id_t id,
if (node == NULL
|| result == NULL
|| node->type != Node_var)
- return false;
+ return awk_false;
update_global_values(); /* make sure stuff like NF, NR, are up to date */
@@ -551,7 +550,7 @@ api_sym_update(awk_ext_id_t id,
if ( name == NULL
|| *name == '\0'
|| value == NULL)
- return false;
+ return awk_false;
switch (value->val_type) {
case AWK_NUMBER:
@@ -564,7 +563,7 @@ api_sym_update(awk_ext_id_t id,
default:
/* fatal(_("api_sym_update: invalid value for type of new value (%d)"), value->val_type); */
- return false;
+ return awk_false;
}
node = lookup(name);
@@ -586,7 +585,7 @@ api_sym_update(awk_ext_id_t id,
node->var_value = awk_value_to_node(value);
}
- return true;
+ return awk_true;
}
/*
@@ -596,7 +595,7 @@ api_sym_update(awk_ext_id_t id,
if ( (node->flags & NO_EXT_SET) != 0
|| is_off_limits_var(name)) { /* most built-in vars not allowed */
node->flags |= NO_EXT_SET;
- return false;
+ return awk_false;
}
if ( value->val_type != AWK_ARRAY
@@ -606,10 +605,10 @@ api_sym_update(awk_ext_id_t id,
if (node->type == Node_var_new && value->val_type != AWK_UNDEFINED)
node->type = Node_var;
- return true;
+ return awk_true;
}
- return false;
+ return awk_false;
}
/* api_sym_update_scalar --- update a scalar cookie */
@@ -625,7 +624,7 @@ api_sym_update_scalar(awk_ext_id_t id,
|| node == NULL
|| node->type != Node_var
|| (node->flags & NO_EXT_SET) != 0)
- return false;
+ return awk_false;
/*
* Optimization: if valref is 1, and the new value is a string or
@@ -650,7 +649,7 @@ api_sym_update_scalar(awk_ext_id_t id,
r->flags = MALLOC|NUMBER|NUMCUR;
r->stptr = NULL;
r->stlen = 0;
- return true;
+ return awk_true;
}
break;
case AWK_STRING:
@@ -670,7 +669,7 @@ api_sym_update_scalar(awk_ext_id_t id,
r->stfmt = -1;
r->stptr = value->str_value.str;
r->stlen = value->str_value.len;
- return true;
+ return awk_true;
}
break;
case AWK_UNDEFINED:
@@ -679,13 +678,13 @@ api_sym_update_scalar(awk_ext_id_t id,
break;
default: /* AWK_ARRAY or invalid type */
- return false;
+ return awk_false;
}
/* do it the hard (slow) way */
unref(node->var_value);
node->var_value = awk_value_to_node(value);
- return true;
+ return awk_true;
}
/*
@@ -694,7 +693,7 @@ api_sym_update_scalar(awk_ext_id_t id,
* Any scalar value is fine, so only AWK_ARRAY (or an invalid type) is illegal.
*/
-static inline int
+static inline bool
valid_subscript_type(awk_valtype_t valtype)
{
switch (valtype) {
@@ -733,21 +732,21 @@ api_get_array_element(awk_ext_id_t id,
|| result == NULL
|| index == NULL
|| ! valid_subscript_type(index->val_type))
- return false;
+ return awk_false;
subscript = awk_value_to_node(index);
/* if it doesn't exist, return false */
if (in_array(array, subscript) == NULL) {
unref(subscript);
- return false;
+ return awk_false;
}
aptr = assoc_lookup(array, subscript);
if (aptr == NULL) { /* can't happen */
unref(subscript);
- return false;
+ return awk_false;
}
unref(subscript);
@@ -777,7 +776,7 @@ api_set_array_element(awk_ext_id_t id, awk_array_t a_cookie,
|| index == NULL
|| value == NULL
|| ! valid_subscript_type(index->val_type))
- return false;
+ return awk_false;
tmp = awk_value_to_node(index);
aptr = assoc_lookup(array, tmp);
@@ -791,7 +790,7 @@ api_set_array_element(awk_ext_id_t id, awk_array_t a_cookie,
make_aname(elem);
}
- return true;
+ return awk_true;
}
/*
@@ -843,13 +842,13 @@ api_del_array_element(awk_ext_id_t id,
|| (array->flags & NO_EXT_SET) != 0
|| index == NULL
|| ! valid_subscript_type(index->val_type))
- return false;
+ return awk_false;
sub = awk_value_to_node(index);
remove_element(array, sub);
unref(sub);
- return true;
+ return awk_true;
}
/*
@@ -864,10 +863,10 @@ api_get_element_count(awk_ext_id_t id,
NODE *node = (NODE *) a_cookie;
if (count == NULL || node == NULL || node->type != Node_var_array)
- return false;
+ return awk_false;
*count = node->table_size;
- return true;
+ return awk_true;
}
/* api_create_array --- create a new array cookie to which elements may be added */
@@ -894,10 +893,10 @@ api_clear_array(awk_ext_id_t id, awk_array_t a_cookie)
if ( node == NULL
|| node->type != Node_var_array
|| (node->flags & NO_EXT_SET) != 0)
- return false;
+ return awk_false;
assoc_clear(node);
- return true;
+ return awk_true;
}
/* api_flatten_array --- flatten out an array so that it can be looped over easily. */
@@ -916,7 +915,7 @@ api_flatten_array(awk_ext_id_t id,
|| array->type != Node_var_array
|| array->table_size == 0
|| data == NULL)
- return false;
+ return awk_false;
alloc_size = sizeof(awk_flat_array_t) +
(array->table_size - 1) * sizeof(awk_element_t);
@@ -954,7 +953,7 @@ api_flatten_array(awk_ext_id_t id,
(int) i);
}
}
- return true;
+ return awk_true;
}
/*
@@ -978,7 +977,7 @@ api_release_flattened_array(awk_ext_id_t id,
|| array != (NODE *) data->opaque1
|| data->count != array->table_size
|| data->opaque2 == NULL)
- return false;
+ return awk_false;
list = (NODE **) data->opaque2;
@@ -995,7 +994,7 @@ api_release_flattened_array(awk_ext_id_t id,
efree(list);
efree(data);
- return true;
+ return awk_true;
}
/* api_create_value --- create a cached value */
@@ -1005,7 +1004,7 @@ api_create_value(awk_ext_id_t id, awk_value_t *value,
awk_value_cookie_t *result)
{
if (value == NULL || result == NULL)
- return false;
+ return awk_false;
switch (value->val_type) {
case AWK_NUMBER:
@@ -1013,10 +1012,10 @@ api_create_value(awk_ext_id_t id, awk_value_t *value,
break;
default:
/* reject anything other than a simple scalar */
- return false;
+ return awk_false;
}
- return (*result = awk_value_to_node(value)) != NULL;
+ return (awk_bool_t) ((*result = awk_value_to_node(value)) != NULL);
}
/* api_release_value --- release a cached value */
@@ -1027,10 +1026,10 @@ api_release_value(awk_ext_id_t id, awk_value_cookie_t value)
NODE *val = (NODE *) value;
if (val == NULL)
- return false;
+ return awk_false;
unref(val);
- return true;
+ return awk_true;
}
/*