summaryrefslogtreecommitdiff
path: root/libguile/variable.h
diff options
context:
space:
mode:
authorGreg J. Badros <gjb@cs.washington.edu>1999-12-16 03:46:42 +0000
committerGreg J. Badros <gjb@cs.washington.edu>1999-12-16 03:46:42 +0000
commitd3a6bc94840464e1af8109de5dddd5859560c679 (patch)
tree87475ee6d125df4493b89e5e6a9a13933c8ab356 /libguile/variable.h
parentf353a9e2323b3957cd8475bcf10f7b489a8ce000 (diff)
downloadguile-d3a6bc94840464e1af8109de5dddd5859560c679.tar.gz
* *.h: Use SCM_NIMP(X) && in all the FOOP macros.
* *.[ch]: Use do { ... } while (0) idiom in macros that expanded to a bare block.
Diffstat (limited to 'libguile/variable.h')
-rw-r--r--libguile/variable.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/libguile/variable.h b/libguile/variable.h
index b63922b2e..21cc482c3 100644
--- a/libguile/variable.h
+++ b/libguile/variable.h
@@ -42,6 +42,9 @@
* If you write modifications of your own for GUILE, it is your choice
* whether to permit this exception to apply to your modifications.
* If you do not wish that, delete this exception notice. */
+
+/* Software engineering face-lift by Greg J. Badros, 11-Dec-1999,
+ gjb@cs.washington.edu, http://www.cs.washington.edu/homes/gjb */
#include "libguile/__scm.h"
@@ -53,7 +56,7 @@
extern int scm_tc16_variable;
#define SCM_VARVCELL(V) SCM_CDR(V)
-#define SCM_VARIABLEP(X) (scm_tc16_variable == SCM_CAR(X))
+#define SCM_VARIABLEP(X) (SCM_NIMP(X) && (scm_tc16_variable == SCM_CAR(X)))
#define SCM_UDVARIABLEP(X) (SCM_VARIABLEP(X) && SCM_UNBNDP (SCM_CDR (SCM_VARVCELL (X))))
#define SCM_DEFVARIABLEP(X) (SCM_VARIABLEP(X) && !SCM_UNBNDP (SCM_CDR (SCM_VARVCELL (X))))