summaryrefslogtreecommitdiffstats
path: root/lib.h
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2014-02-22 01:21:46 -0800
committerKaz Kylheku <kaz@kylheku.com>2014-02-22 01:21:46 -0800
commitdebcf6f76029eec890192e8ee5b040b47120f91b (patch)
tree5b6b5d72e43c3c342bf4d8fecdcc2631ff06c492 /lib.h
parentaded325cb48f684b3a0849acde7ec31db48733ce (diff)
downloadtxr-debcf6f76029eec890192e8ee5b040b47120f91b.tar.gz
txr-debcf6f76029eec890192e8ee5b040b47120f91b.tar.bz2
txr-debcf6f76029eec890192e8ee5b040b47120f91b.zip
Replacing uses of the eq function which are used only as C booleans,
with just using the == operator. Removing cobj_equal_op since it's indistinguishable from eq. Streamlining missingp and null_or_missing_p. * eval.c (transform_op): eq to ==. (c_var_ops): cobj_equal_op to eq. * filter.c (trie_compress, trie_lookup_feed_char, filter_string_tree, html_hex_continue, html_dec_continue): eq to ==. * hash.c (hash_iter_ops): cobj_equal to eq. * lib.c (countq, getplist, getplist_f, search_str_tree, posq): eq to ==. (cobj_equal_op): Function removed. * lib.h (cobj_equal_op): Declaration removed. (missingp): Becomes a simple macro that yields a C boolean instead of t/nil val, because it's only used that way. (null_or_missing_p): Becomes inline function returning int. * match.c (v_output): eq to ==. * rand.c (random_state_ops): cobj_equal_op to eq. * regex.c (char_set_obj_ops, regex_obj_ops): cobj_equal_op to eq. (reg_derivative): Silly if3 expression replaced by null. (regexp): Redundant if2 expression wrapped around eq removed. * stream.c (null_ops, stdio_ops, tail_ops, pipe_ops, string_in_ops, byte_in_ops, string_out_ops, strlist_out_ops, dir_ops, cat_stream_ops): cobj_equal_op to eq. * syslog.c (syslog_strm_ops): cobj_equal_op to eq.
Diffstat (limited to 'lib.h')
-rw-r--r--lib.h10
1 files changed, 6 insertions, 4 deletions
diff --git a/lib.h b/lib.h
index d817857d..d3f251fc 100644
--- a/lib.h
+++ b/lib.h
@@ -193,8 +193,10 @@ struct cobj_ops {
cnum (*hash)(val self);
};
-/* Default operations for above structure. */
-val cobj_equal_op(val, val);
+/* Default operations for above structure.
+ * Default equal is eq
+ */
+
void cobj_print_op(val, val);
void cobj_destroy_stub_op(val);
void cobj_destroy_free_op(val);
@@ -725,9 +727,9 @@ INLINE val null(val v) { return v ? nil : t; }
#define nao ((obj_t *) (1 << TAG_SHIFT)) /* "not an object" sentinel value. */
-INLINE val missingp(val v) { return v == colon_k ? t : nil; }
+#define missingp(v) ((v) == colon_k)
-INLINE val null_or_missing_p(val v) { return (!v || v == colon_k) ? t : nil; }
+INLINE int null_or_missing_p(val v) { return (nilp(v) || missingp(v)); }
#define if2(a, b) ((a) ? (b) : nil)