summaryrefslogtreecommitdiff
path: root/vms/CONFIG_EXTRACT.COM
diff options
context:
space:
mode:
Diffstat (limited to 'vms/CONFIG_EXTRACT.COM')
-rw-r--r--vms/CONFIG_EXTRACT.COM76
1 files changed, 76 insertions, 0 deletions
diff --git a/vms/CONFIG_EXTRACT.COM b/vms/CONFIG_EXTRACT.COM
new file mode 100644
index 00000000..94aaa384
--- /dev/null
+++ b/vms/CONFIG_EXTRACT.COM
@@ -0,0 +1,76 @@
+$! 22 September 2009. SMS.
+$!
+$! Extract the AC_INIT strings from the "configure.ac" file.
+$!
+$! P1 = input file spec.
+$! P2, P3, P4 = logical names to be defined with the extracted text.
+$!
+$! We're expecting to extract the bracketed text from the "[text]"
+$! tokens from a block of text like:
+$!
+$! AC_INIT([wget],
+$! [1.12-devel],
+$! [bug-wget@gnu.org])
+$!
+$! That is, starting with "AC_INIT", and ending with ")".
+$!
+$ file_in_open = 0
+$ ac_init = ""
+$!
+$ on error then goto tidy
+$!
+$ open /error = tidy /read file_in 'p1'
+$ file_in_open = 1
+$ state = 0 ! Looking for "AC_INIT".
+$!
+$ loop_read:
+$!
+$ read /error = tidy file_in line
+$ line_len = f$length( line)
+$ if (state .eq. 0)
+$ then
+$ if (f$locate( "AC_INIT", line) .lt line_len)
+$ then
+$ ac_init = line
+$ state = 1 ! Looking for ")".
+$ endif
+$ else
+$ if (f$locate( ")", line) .lt line_len)
+$ then
+$ state = 2 ! Found ")". (Done.)
+$ endif
+$ ac_init = ac_init+ line
+$ endif
+$!
+$ if (state .ne. 2) then goto loop_read
+$!
+$ t1 = f$element( 0, "]", f$element( 1, "[", ac_init))
+$ t2 = f$element( 0, "]", f$element( 2, "[", ac_init))
+$ t3 = f$element( 0, "]", f$element( 3, "[", ac_init))
+$!
+$ if (p2 .nes. "")
+$ then
+$ define 'p2' "''t1'"
+$ else
+$ write sys$output " 1: >''t1'<"
+$ endif
+$!
+$ if (p3 .nes. "")
+$ then
+$ define 'p3' "''t2'"
+$ else
+$ write sys$output " 2: >''t2'<"
+$ endif
+$!
+$ if (p4 .nes. "")
+$ then
+$ define 'p4' "''t3'"
+$ else
+$ write sys$output " 3: >''t3'<"
+$ endif
+$!
+$ tidy:
+$ if (file_in_open)
+$ then
+$ close file_in
+$ endif