diff options
author | William Joye <wjoye@cfa.harvard.edu> | 2019-01-02 21:21:46 (GMT) |
---|---|---|
committer | William Joye <wjoye@cfa.harvard.edu> | 2019-01-02 21:21:46 (GMT) |
commit | 7417c0c39dc6049faf0dbb2ae2b90414895b2290 (patch) | |
tree | 9b2879ca596e2f31deef5c120c87fa2ca44d5767 /tclOpts.h | |
download | blt-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.h | 55 |
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 */ |