handle file creation flags
authorD Herring <dherring@at.tentpost.dot.com>
Wed, 6 Apr 2011 02:08:34 +0000 (22:08 -0400)
committerD Herring <dherring@at.tentpost.dot.com>
Wed, 6 Apr 2011 02:08:34 +0000 (22:08 -0400)
Makefile
check-macros.txt [new file with mode: 0644]
read-check-macros.lisp [new file with mode: 0644]

index 5c595d3..6e6134e 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -10,3 +10,7 @@ enums.txt:
 open-macros.txt:
        grep '^#define' $(INCLUDEDIR)/H*public.h | sed -e '/\\$$/ d' -e '/_H$$/ d' -e '/define [^ \t]*(/ d' -e 's,.*#define ,,' | cpp | grep '(H5OPEN' | sed -e 's/(H5OPEN //' -e 's/)//' > $@.tmp
        mv $@.tmp $@
+
+check-macros.txt:
+       grep '^#define' $(INCLUDEDIR)/H*public.h | sed -e '/\\$$/ d' -e '/_H$$/ d' -e '/define [^ \t]*(/ d' -e 's,.*#define ,,' | cpp | grep '(H5CHECK' | sed -e 's/(H5CHECK //' -e 's/)//' -e 's/0x/#x/' -e 's/u//' > $@.tmp
+       mv $@.tmp $@
diff --git a/check-macros.txt b/check-macros.txt
new file mode 100644 (file)
index 0000000..e743fbd
--- /dev/null
@@ -0,0 +1,7 @@
+H5F_ACC_RDONLY #x0000
+H5F_ACC_RDWR #x0001
+H5F_ACC_TRUNC #x0002
+H5F_ACC_EXCL #x0004
+H5F_ACC_DEBUG #x0008
+H5F_ACC_CREAT #x0010
+H5F_ACC_DEFAULT #xffff
diff --git a/read-check-macros.lisp b/read-check-macros.lisp
new file mode 100644 (file)
index 0000000..8d11dbe
--- /dev/null
@@ -0,0 +1,12 @@
+(defun read-check-macros (&optional (filename "check-macros.txt"))
+  (with-open-file (file filename)
+    (do (code
+         (line (read-line file nil)
+               (read-line file nil)))
+        ((not line)
+         (cons 'progn (reverse code)))
+      (let* ((pos (position #\Space line))
+             (macro (read-from-string (normalize-name (subseq line 0 pos))))
+             (value (read-from-string (subseq line (1+ pos)))))
+        (push `(define-symbol-macro ,macro (progn (h5check) ,value))
+              code)))))