summaryrefslogtreecommitdiffstats
path: root/tclOpts.h
diff options
context:
space:
mode:
authorWilliam Joye <wjoye@cfa.harvard.edu>2019-01-02 21:21:46 (GMT)
committerWilliam Joye <wjoye@cfa.harvard.edu>2019-01-02 21:21:46 (GMT)
commit7417c0c39dc6049faf0dbb2ae2b90414895b2290 (patch)
tree9b2879ca596e2f31deef5c120c87fa2ca44d5767 /tclOpts.h
downloadblt-7417c0c39dc6049faf0dbb2ae2b90414895b2290.zip
blt-7417c0c39dc6049faf0dbb2ae2b90414895b2290.tar.gz
blt-7417c0c39dc6049faf0dbb2ae2b90414895b2290.tar.bz2
Squashed 'tls/' content from commit bda2e0b1
git-subtree-dir: tls git-subtree-split: bda2e0b122d23f2d612c58b2b4f900fb92ab7a3f
Diffstat (limited to 'tclOpts.h')
-rw-r--r--tclOpts.h55
1 files changed, 55 insertions, 0 deletions
diff --git a/tclOpts.h b/tclOpts.h
new file mode 100644
index 0000000..4a0b3b7
--- /dev/null
+++ b/tclOpts.h
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 1997-2000 Matt Newman <matt@novadigm.com>
+ *
+ * $Header: /cvsroot/tls/tls/tclOpts.h,v 1.2 2000/01/20 01:49:31 aborr Exp $
+ *
+ * Stylized option processing - requires consitent
+ * external vars: opt, idx, objc, objv
+ */
+#ifndef _TCL_OPTS_H
+#define _TCL_OPTS_H
+
+#define OPT_PROLOG(option) \
+ if (strcmp(opt, (option)) == 0) { \
+ if (++idx >= objc) { \
+ Tcl_AppendResult(interp, \
+ "no argument given for ", \
+ (option), " option", \
+ (char *) NULL); \
+ return TCL_ERROR; \
+ }
+#define OPT_POSTLOG() \
+ continue; \
+ }
+#define OPTOBJ(option, var) \
+ OPT_PROLOG(option) \
+ var = objv[idx]; \
+ OPT_POSTLOG()
+
+#define OPTSTR(option, var) \
+ OPT_PROLOG(option) \
+ var = Tcl_GetStringFromObj(objv[idx], NULL);\
+ OPT_POSTLOG()
+
+#define OPTINT(option, var) \
+ OPT_PROLOG(option) \
+ if (Tcl_GetIntFromObj(interp, objv[idx], \
+ &(var)) != TCL_OK) { \
+ return TCL_ERROR; \
+ } \
+ OPT_POSTLOG()
+
+#define OPTBOOL(option, var) \
+ OPT_PROLOG(option) \
+ if (Tcl_GetBooleanFromObj(interp, objv[idx],\
+ &(var)) != TCL_OK) { \
+ return TCL_ERROR; \
+ } \
+ OPT_POSTLOG()
+
+#define OPTBAD(type, list) \
+ Tcl_AppendResult(interp, "bad ", (type), \
+ " \"", opt, "\": must be ", \
+ (list), (char *) NULL)
+
+#endif /* _TCL_OPTS_H */