diff options
Diffstat (limited to 'vms/CONFIG_EXTRACT.COM')
-rw-r--r-- | vms/CONFIG_EXTRACT.COM | 76 |
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 |