gawk-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gawk-diffs] [SCM] gawk branch, new-vms, updated. gawk-4.1.0-157-gdad5f2


From: Arnold Robbins
Subject: [gawk-diffs] [SCM] gawk branch, new-vms, updated. gawk-4.1.0-157-gdad5f25
Date: Mon, 30 Dec 2013 19:53:28 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "gawk".

The branch, new-vms has been updated
       via  dad5f25058c4ecf69ebe4543a13281d3f28c69bc (commit)
      from  cbd2cf7f926f960fab1b5004e42c35515c1c8d9f (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://git.sv.gnu.org/cgit/gawk.git/commit/?id=dad5f25058c4ecf69ebe4543a13281d3f28c69bc

commit dad5f25058c4ecf69ebe4543a13281d3f28c69bc
Author: Arnold D. Robbins <address@hidden>
Date:   Mon Dec 30 21:52:45 2013 +0200

    Build and test dynamic extensions on VMS. Documented too.

diff --git a/README_d/ChangeLog b/README_d/ChangeLog
index ed2a86b..392ce0e 100644
--- a/README_d/ChangeLog
+++ b/README_d/ChangeLog
@@ -1,12 +1,17 @@
-2013-12-23         John E. Malmberg    <address@hidden>
+2013-12-23         John E. Malmberg      <address@hidden>
+
+       * README.VMS: Add documentation about building dynamic
+       extensions.
+
+2013-12-23         John E. Malmberg      <address@hidden>
 
        * README.VMS: Document decoding Gawk VMS exit codes.
 
-2013-12-16         John E. Malmberg    <address@hidden>
+2013-12-16         John E. Malmberg      <address@hidden>
 
        * README.VMS: Further updates.
 
-2013-12-05         John E. Malmberg    <address@hidden>
+2013-12-05         John E. Malmberg      <address@hidden>
 
        * README.VMS: updated with current build information.
 
diff --git a/README_d/README.VMS b/README_d/README.VMS
index d689aa3..ef15a04 100644
--- a/README_d/README.VMS
+++ b/README_d/README.VMS
@@ -15,6 +15,8 @@ MMS has had problems on ODS-5 volumes.  MMK does not have 
these issues.
 MMK is available free from https://github.com/endlesssoftware/mmk.
 The most recent builds of gawk on VMS used MMK.
 
+Support of the vmsbuild.com may get dropped in a future release.
+
 DEC C  -- use either vmsbuild.com or descrip.mms as is.
        DEC C is also known as Compaq C and HP C.
 
@@ -42,23 +44,28 @@ with a release that old for some time.
 
 Compiling dynamic extensions on VMS:
 
+GAWK comes with some dynamic extensions.  The extensions that have been
+ported to VMS can be built using one of the following commands.
+
+ |$ MMS/DESCRIPTION=[.VMS]DESCRIP.MMS extensions
+or
+ |$ MMK/DESCRIPTION=[.VMS]DESCRIP.MMS extensions
+
+GAWK uses AWKLIBPATH as either an environment variable or a logical name
+to find the dynamic extensions.
+
 Dynamic extensions need to be compiled with the same compiler options for
 floating point, pointer size, and symbol name handling as gawk.
 Alpha and Itanium should use IEEE floating point.  The pointer size is 32 bits,
 and the symbol name handling is to be exact case with CRC shortening for
 symbols longer than 32 bits.
 
-Alpha and Itanium:
+Currently dynamic extensions have only been tested to work on VMS 8.3 and later
+on both Alpha and Itanium.  Dynamic extensions are not currently working on
+VAX/VMS 7.3.
 
-/name=(as_is,short)
-/float=ieee/ieee_mode=denorm_results
-
-VAX:
-
-/name=(as_is,short)
-
-Compile time macros needed to be defined before the first VMS supplied
-header file is included.
+Compile time are macros needed to be defined before the first VMS supplied
+header file is included.  Usually this will be done with a config.h file.
 
 #if (__CRTL_VER >= 70200000) && !defined (__VAX)
 #define _LARGEFILE 1
@@ -72,6 +79,40 @@ header file is included.
 #endif
 #endif
 
+Alpha and Itanium:
+
+/name=(as_is,short)
+/float=ieee/ieee_mode=denorm_results
+
+VAX:
+
+/name=(as_is,short)
+
+The linker option files are [.vms]gawk_plugin.opt for Alpha and Itanium.
+
+As the VAX dynamic plug-in feature is not yet working, the files potentially
+needed for a future VAX plugin are in [.vms.vax] directory of the source.
+
+
+Testing GAWK on VMS:
+
+After you build gawk, you can test it with the [.vms]vmstest.com procedure.
+The procedure takes a parameter that is either for a list of tests or
+a specific test.  The parameter clean cleans up files left over from running
+the tests.
+
+  $ set def [.test]
+  $ @[-.vms]vmstest.com bigtest
+  $ @[-.vms]vmstest.com clean
+  $ set def [-]
+
+To test the dynamic extensions on VMS 8.3 and later, use:
+
+  $ set def [.test]
+  $ @[-.vms]vmstest.com extension
+  $ @[-.vms]vmstest.com clean
+  $ set def [-]
+
 
 Installing GAWK on VMS:
 
@@ -85,7 +126,8 @@ user logs on.
 
 If your gawk was installed by a PCSI kit into the GNV$GNU: directory tree,
 the program will be known as GNV$GNU:[bin]gnv$gawk.exe and the help file
-will be GNV$GNU:[vms_help]gawk.hlp.
+will be GNV$GNU:[vms_help]gawk.hlp.  The GNV$GNU:[vms_bin]gawk_verb.cld can be
+used to add GAWK and the alias AWK to a DCL command table.
 
      Optionally, the help entry can be loaded into a VMS help library.
  |$ LIBRARY/HELP SYS$HELP:HELPLIB [.VMS]GAWK.HLP
@@ -168,3 +210,14 @@ will output times in GMT.
 The vmstest.com script needs SYS$TIMEZONE_NAME to be defined to match
 the SYS$TIMEZONE_RULE.  Older versions of VMS do not define these logical
 names.
+
+TO DO Items (not in order of priority)
+
+1. Implement dynamic plug-ins on VAX.
+
+2. With the system() function, the status for DCL commands are not being
+   returned.
+
+3. Need gawk to accept logical names GNV$AWKPATH, GNV$AWKLIB, and
+   GNV$AWK_LIBARARY in addtion to the unprefixed names.  This will allow
+   system wide default values to be set by an installation kit.
diff --git a/doc/ChangeLog b/doc/ChangeLog
index 78b781b..5ff9bc4 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,3 +1,7 @@
+2013-12-29         John E. Malmberg      <address@hidden>
+
+       * gawktexi.in: VMS dynamic extensions.
+
 2013-12-26         Arnold D. Robbins     <address@hidden>
 
        * gawktexi.in: More minor additions / fixes.
diff --git a/doc/gawk.info b/doc/gawk.info
index 3be9287..4196f31 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -26309,12 +26309,24 @@ File: gawk.info,  Node: VMS Dynamic Extensions,  
Next: VMS Installation Details,
 B.3.2.2 Compiling `gawk' Dynamic Extensions on VMS
 ..................................................
 
-Dynamic extensions need to be compiled with the same compiler options
-for floating point, pointer size, and symbol name handling as were used
-to compile `gawk' itself.  Alpha and Itanium should use IEEE floating
-point.  The pointer size is 32 bits, and the symbol name handling
-should be exact case with CRC shortening for symbols longer than 32
-bits.
+The extensions that have been ported to VMS can be built using one of
+the following commands.
+
+     $ MMS/DESCRIPTION=[.vms]descrip.mms extensions
+
+or:
+
+     $ MMK/DESCRIPTION=[.vms]descrip.mms extensions
+
+   `gawk' uses `AWKLIBPATH' as either an environment variable or a
+logical name to find the dynamic extensions.
+
+   Dynamic extensions need to be compiled with the same compiler
+options for floating point, pointer size, and symbol name handling as
+were used to compile `gawk' itself.  Alpha and Itanium should use IEEE
+floating point.  The pointer size is 32 bits, and the symbol name
+handling should be exact case with CRC shortening for symbols longer
+than 32 bits.
 
    For Alpha and Itanium:
 
@@ -32793,41 +32805,41 @@ Node: VMS Installation1054419
 Node: VMS Compilation1055183
 Ref: VMS Compilation-Footnote-11056798
 Node: VMS Dynamic Extensions1056856
-Node: VMS Installation Details1057907
-Node: VMS Running1059741
-Node: VMS GNV1062575
-Node: VMS Old Gawk1063284
-Node: Bugs1063754
-Node: Other Versions1067674
-Node: Notes1073758
-Node: Compatibility Mode1074558
-Node: Additions1075341
-Node: Accessing The Source1076268
-Node: Adding Code1077708
-Node: New Ports1083753
-Node: Derived Files1087888
-Ref: Derived Files-Footnote-11093209
-Ref: Derived Files-Footnote-21093243
-Ref: Derived Files-Footnote-31093843
-Node: Future Extensions1093941
-Node: Implementation Limitations1094524
-Node: Extension Design1095776
-Node: Old Extension Problems1096930
-Ref: Old Extension Problems-Footnote-11098438
-Node: Extension New Mechanism Goals1098495
-Ref: Extension New Mechanism Goals-Footnote-11101860
-Node: Extension Other Design Decisions1102046
-Node: Extension Future Growth1104152
-Node: Old Extension Mechanism1104988
-Node: Basic Concepts1106728
-Node: Basic High Level1107409
-Ref: figure-general-flow1107680
-Ref: figure-process-flow1108279
-Ref: Basic High Level-Footnote-11111508
-Node: Basic Data Typing1111693
-Node: Glossary1115048
-Node: Copying1140510
-Node: GNU Free Documentation License1178067
-Node: Index1203204
+Node: VMS Installation Details1058229
+Node: VMS Running1060063
+Node: VMS GNV1062897
+Node: VMS Old Gawk1063606
+Node: Bugs1064076
+Node: Other Versions1067996
+Node: Notes1074080
+Node: Compatibility Mode1074880
+Node: Additions1075663
+Node: Accessing The Source1076590
+Node: Adding Code1078030
+Node: New Ports1084075
+Node: Derived Files1088210
+Ref: Derived Files-Footnote-11093531
+Ref: Derived Files-Footnote-21093565
+Ref: Derived Files-Footnote-31094165
+Node: Future Extensions1094263
+Node: Implementation Limitations1094846
+Node: Extension Design1096098
+Node: Old Extension Problems1097252
+Ref: Old Extension Problems-Footnote-11098760
+Node: Extension New Mechanism Goals1098817
+Ref: Extension New Mechanism Goals-Footnote-11102182
+Node: Extension Other Design Decisions1102368
+Node: Extension Future Growth1104474
+Node: Old Extension Mechanism1105310
+Node: Basic Concepts1107050
+Node: Basic High Level1107731
+Ref: figure-general-flow1108002
+Ref: figure-process-flow1108601
+Ref: Basic High Level-Footnote-11111830
+Node: Basic Data Typing1112015
+Node: Glossary1115370
+Node: Copying1140832
+Node: GNU Free Documentation License1178389
+Node: Index1203526
 
 End Tag Table
diff --git a/doc/gawk.texi b/doc/gawk.texi
index 3692547..24879b7 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -34920,6 +34920,23 @@ a PCSI kit for compatible with the GNV product.
 @node VMS Dynamic Extensions
 @appendixsubsubsec Compiling @command{gawk} Dynamic Extensions on VMS
 
+The extensions that have been ported to VMS can be built using one of
+the following commands.
+
address@hidden
+$ @kbd{MMS/DESCRIPTION=[.vms]descrip.mms extensions}
address@hidden example
+
address@hidden
+or:
+
address@hidden
+$ @kbd{MMK/DESCRIPTION=[.vms]descrip.mms extensions}
address@hidden example
+
address@hidden uses @code{AWKLIBPATH} as either an environment variable
+or a logical name to find the dynamic extensions.
+
 Dynamic extensions need to be compiled with the same compiler options for
 floating point, pointer size, and symbol name handling as were used
 to compile @command{gawk} itself.
diff --git a/doc/gawktexi.in b/doc/gawktexi.in
index 2219dc4..9a853e1 100644
--- a/doc/gawktexi.in
+++ b/doc/gawktexi.in
@@ -34069,6 +34069,23 @@ a PCSI kit for compatible with the GNV product.
 @node VMS Dynamic Extensions
 @appendixsubsubsec Compiling @command{gawk} Dynamic Extensions on VMS
 
+The extensions that have been ported to VMS can be built using one of
+the following commands.
+
address@hidden
+$ @kbd{MMS/DESCRIPTION=[.vms]descrip.mms extensions}
address@hidden example
+
address@hidden
+or:
+
address@hidden
+$ @kbd{MMK/DESCRIPTION=[.vms]descrip.mms extensions}
address@hidden example
+
address@hidden uses @code{AWKLIBPATH} as either an environment variable
+or a logical name to find the dynamic extensions.
+
 Dynamic extensions need to be compiled with the same compiler options for
 floating point, pointer size, and symbol name handling as were used
 to compile @command{gawk} itself.
diff --git a/extension/ChangeLog b/extension/ChangeLog
index ad455cf..965e0c6 100644
--- a/extension/ChangeLog
+++ b/extension/ChangeLog
@@ -1,3 +1,8 @@
+2013-12-29         John E. Malmberg      <address@hidden>
+
+       * filefuncs.c: Fix compile on VMS.
+       * time.c: Fix compile on VMS.
+
 2013-12-29         Arnold D. Robbins     <address@hidden>
 
        * gawkfts.c: Wrap include of <sys/param.h> in HAVE_SYS_PARAM_H,
diff --git a/extension/filefuncs.c b/extension/filefuncs.c
index a6e99e8..3eb2a6b 100644
--- a/extension/filefuncs.c
+++ b/extension/filefuncs.c
@@ -60,6 +60,7 @@
 #ifndef minor
 #define minor(s) (0)
 #endif
+#include <unixlib.h>
 #endif
 
 
diff --git a/extension/time.c b/extension/time.c
index 9fadfe5..b1e9a40 100644
--- a/extension/time.c
+++ b/extension/time.c
@@ -39,6 +39,30 @@
 #include <sys/types.h>
 #include <sys/stat.h>
 
+#ifdef __VMS
+#define HAVE_NANOSLEEP
+#define HAVE_GETTIMEOFDAY
+#ifdef gettimeofday
+#undef gettimeofday
+#endif
+#ifdef __ia64__
+/* nanosleep not working on IA64 */
+static int
+vms_fake_nanosleep(const struct timespec *rqdly, struct timespec *rmdly)
+{
+       int result;
+
+       result = sleep(rqdly->tv_sec);
+       if (result == 0) {
+               return 0;
+       } else {
+               return -1;
+       }
+}
+#define nanosleep(x,y) vms_fake_nanosleep(x, y)
+#endif
+#endif
+
 #include "gawkapi.h"
 
 #include "gettext.h"
diff --git a/test/ChangeLog b/test/ChangeLog
index dd73cbc..cc81d9a 100644
--- a/test/ChangeLog
+++ b/test/ChangeLog
@@ -1,6 +1,7 @@
 2013-12-29         John E. Malmberg      <address@hidden>
 
        * fts.awk: Adjust for VMS.
+       * rwarray.awk: Adjust for VMS.
 
 2013-12-10         Arnold D. Robbins     <address@hidden>
 
diff --git a/test/fts.awk b/test/fts.awk
index d2e55ca..70af560 100644
--- a/test/fts.awk
+++ b/test/fts.awk
@@ -114,6 +114,13 @@ function process(pathname, data_array,
        for (i in stat_data)
                data_array[pathname]["."]["stat"][i] = stat_data[i]
 
+       os = ""
+       if (ENVIRON["AWKLIBPATH"] == "sys$disk:[-]") {
+               os = "VMS"
+               # Command in next section not valid on VMS.
+               return
+       }
+
        command = ("ls -f " pathname)
        while ((command | getline direntry) > 0) {
                if (direntry == "." || direntry == "..")
diff --git a/test/rwarray.awk b/test/rwarray.awk
index 5d1b7e9..0cb214e 100644
--- a/test/rwarray.awk
+++ b/test/rwarray.awk
@@ -21,13 +21,20 @@ BEGIN {
                printf("dict[%s] = %s\n", dictindices[i], dict[dictindices[i]]) 
> "new.out"
        close("new.out");
 
-       ret = system("cmp orig.out new.out")
-
-       if (ret == 0)
-               print "old and new are equal - GOOD"
-       else
-               print "old and new are not equal - BAD"
-
-       if (ret == 0 && !("KEEPIT" in ENVIRON))
-               system("rm -f orig.bin orig.out new.out")
+       os = ""
+       if (ENVIRON["AWKLIBPATH"] == "sys$disk:[-]") {
+               os = "VMS"
+               # return status from system() on VMS can not be used here
+       }
+       if (os != "VMS") {
+               ret = system("cmp orig.out new.out")
+
+               if (ret == 0)
+                       print "old and new are equal - GOOD"
+               else
+                       print "old and new are not equal - BAD"
+
+               if (ret == 0 && !("KEEPIT" in ENVIRON))
+                       system("rm -f orig.bin orig.out new.out")
+       }
 }
diff --git a/vms/ChangeLog b/vms/ChangeLog
index 7e6c731..ba017d6 100644
--- a/vms/ChangeLog
+++ b/vms/ChangeLog
@@ -1,7 +1,11 @@
 2013-12-29         John E. Malmberg      <address@hidden>
 
-       * descrip.mms: Build the dynamic extensions that will work.
-       Alpha and Itanium only.
+       * gawk_plugin.opt: New file. Needed to build plugins on IA64
+       and ALPHA.
+       * generate_config_vms_h_gawk.com: Document which version
+       of VMS the mkstemp issue was seen.
+       * vms_popen: (pclose): Tolerate invalid file pointer.
+       * vmstest.com: Add tests for extensions ported to VMS.
 
 2013-12-23         John E. Malmberg      <address@hidden>
 
diff --git a/vms/gawk_plugin.opt b/vms/gawk_plugin.opt
new file mode 100644
index 0000000..b0523d0
--- /dev/null
+++ b/vms/gawk_plugin.opt
@@ -0,0 +1,5 @@
+CASE_SENSITIVE=YES
+SYMBOL_VECTOR=(plugin_is_GPL_compatible=DATA)
+SYMBOL_VECTOR=(PLUGIN_IS_GPL_COMPATIBLE/plugin_is_GPL_compatible=DATA)
+SYMBOL_VECTOR=(dl_load=PROCEDURE)
+SYMBOL_VECTOR=(DL_LOAD/dl_load=PROCEDURE)
diff --git a/vms/generate_config_vms_h_gawk.com 
b/vms/generate_config_vms_h_gawk.com
index 03ad201..3a02fdf 100644
--- a/vms/generate_config_vms_h_gawk.com
+++ b/vms/generate_config_vms_h_gawk.com
@@ -135,7 +135,9 @@ $ write cvh "#pragma message disable (LONGDOUBLENYI)"
 $ write cvh "#endif"
 $!
 $! This stuff seems needed for VMS 7.3 and earlier, but not VMS 8.2+
+$! Need some more data as to which versions these issues are fixed in.
 $ write cvh "#if __VMS_VER <= 80200000"
+$! mkstemp goes into an infinte loop in gawk in VAX/VMS 7.3
 $ write cvh "#ifdef HAVE_MKSTEMP"
 $ write cvh "#undef HAVE_MKSTEMP"
 $ write cvh "#endif"
diff --git a/vms/vax/ChangeLog b/vms/vax/ChangeLog
new file mode 100644
index 0000000..526bc42
--- /dev/null
+++ b/vms/vax/ChangeLog
@@ -0,0 +1,7 @@
+2013-12-29         John Malmberg         <address@hidden>
+
+       * ChangeLog: New directory.
+       * gawk_plugin_xfer.mar_exact, gawk_plugin_xfer.opt,
+         macro32_exactcase.com, macro32_exactcase.patch:
+         These are experimental files for future support of
+         dynamic extensions on VAX/VMS.
diff --git a/vms/vax/gawk_plugin_xfer.mar_exact 
b/vms/vax/gawk_plugin_xfer.mar_exact
new file mode 100644
index 0000000..e90babb
--- /dev/null
+++ b/vms/vax/gawk_plugin_xfer.mar_exact
@@ -0,0 +1,13 @@
+       .PSECT GAWK_PLUGIN_XFERVECTORS -
+                       PIC,USR,CON,REL,GBL,SHR,EXE,RD,NOWRT,QUAD
+
+;      Exact case transfer vector and universal symbols
+;
+       .ALIGN QUAD
+       .EXTERNAL plugin_is_GPL_compatible
+
+       .TRANSFER dl_load
+       .MASK dl_load
+       JMP L^dl_load+2
+
+       .END
diff --git a/vms/vax/gawk_plugin_xfer.opt b/vms/vax/gawk_plugin_xfer.opt
new file mode 100644
index 0000000..75c134f
--- /dev/null
+++ b/vms/vax/gawk_plugin_xfer.opt
@@ -0,0 +1,5 @@
+CASE_SENSITIVE=YES
+UNIVERSAL=plugin_is_GPL_compatible
+UNIVERSAL=dl_load
+!CLUSTER=GAWK_PLUGIN_XFER
+!COLLECT=GAWK_GLOBAL, GAWK_PLUGIN_XFERVECTORS
diff --git a/vms/vax/macro32_exactcase.com b/vms/vax/macro32_exactcase.com
new file mode 100644
index 0000000..79194e2
--- /dev/null
+++ b/vms/vax/macro32_exactcase.com
@@ -0,0 +1,16 @@
+$!
+$! Patch the Macro32 compiler and optional assemble
+$!-----------------------------------------------------
+$ patched_macro = "sys$disk:[]macro32_exactcase.exe"
+$ if f$search(patched_macro) .eqs. ""
+$ then
+$   copy sys$system:macro32.exe 'patched_macro'
+$   patch @[.vms]macro32_exactcase.patch
+$ endif
+$! Usage:
+$ xfer_file_source = p1
+$ if f$search(p1) .nes. ""
+$ then
+$    define/user macro32 'patched_macro'
+$    macro/lis 'p1'
+$ endif
diff --git a/vms/vax/macro32_exactcase.patch b/vms/vax/macro32_exactcase.patch
new file mode 100644
index 0000000..eda5cac
--- /dev/null
+++ b/vms/vax/macro32_exactcase.patch
@@ -0,0 +1,11 @@
+macro32_exactcase.exe
+SE EC
+^X00000001
+RE /I
+^X00012B1D
+'BICB2 #^X00000020,R3'
+EXIT
+'BICB2 #^X00000000,R3'
+EXI
+U
+EXI
diff --git a/vms/vms_popen.c b/vms/vms_popen.c
index 6c5c508..d956811 100644
--- a/vms/vms_popen.c
+++ b/vms/vms_popen.c
@@ -133,8 +133,8 @@ pclose( FILE *current )
     int rval, cur = fileno(current);
 
  /* assert( cur >= 0 && cur < pipes_lim ); */
-    if (pipes[cur].pmode == unopened)
-       return -1;      /* should never happen */
+    if ((cur < 0) || (pipes[cur].pmode == unopened))
+       return -1;      /* should never happen, but does with two-way */
 
     rval = fclose(current);    /* close temp file; if reading, we're done */
     if (pipes[cur].pmode == writing) {
diff --git a/vms/vmstest.com b/vms/vmstest.com
index 75a6b46..f5c815b 100644
--- a/vms/vmstest.com
+++ b/vms/vmstest.com
@@ -25,6 +25,7 @@ $     rm      = "delete/noConfirm/noLog"
 $      mv      = "rename/New_Vers"
 $      gawk = "$sys$disk:[-]gawk"
 $      AWKPATH_srcdir = "define/User AWKPATH sys$disk:[]"
+$      AWKLIBPATH_dir = "define/User AWKLIBPATH sys$disk:[-]"
 $
 $      listdepth = 0
 $      pipeok = 0
@@ -159,6 +160,13 @@ $          type sys$input:
 $              list = "inetechu inetecht inetdayu inetdayt"
 $              gosub list_of_tests
 $              return
+$!
+$extension:    echo "extension...."
+$              list = "inplace1 filefuncs fnmatch fts functab4 ordchr" -
+               + " readdir revout revtwoway rwarray time"
+               gosub list_of_tests
+               return
+
 $
 $! list_of_tests: process 'list', a space-separated list of tests.
 $! Some tests assign their own 'list' and call us recursively,
@@ -1805,6 +1813,86 @@ $        if $status then  rm _vms_io2.tmp;
 $      cmp vms_io2.ok sys$disk:[]_vms_io2.vfc
 $      if $status then  rm _vms_io2.vfc;*
 $      return
+$!
+$!
+$inplace1:
+$      set process/parse=extended ! ODS-5 only
+$      echo "''test'"
+$      filefunc_file = "[-]gawkapi.o"
+$      open/write awkfile _'test'.awk
+$      write awkfile "@load ""inplace"""
+$!     write awkfile "BEGIN {print ""before""}"
+$      write awkfile "   {gsub(/foo/, ""bar""); print}"
+$!     write awkfile "END {print ""after""}"
+$      close awkfile
+$      copy inplace^.1.in _'test'.1
+$      copy inplace^.2.in _'test'.2
+$      set noOn
+$      AWKLIBPATH_dir
+$      gawk -f _'test'.awk _'test'.1 <inplace.in >_'test'.1.tmp 2>&1
+$      if .not. $status then call exit_code '$status' _'test'.1.tmp
+$      AWKLIBPATH_dir
+$      gawk -f _'test'.awk _'test'.2 <inplace.in >_'test'.2.tmp 2>&1
+$      if .not. $status then call exit_code '$status' _'test'.2.tmp
+$      set On
+$      cmp 'test'.1.ok sys$disk:[]_'test'.1.tmp
+$      if $status then rm _'test'.1.tmp;,_'test'.1;
+$      cmp 'test'.2.ok sys$disk:[]_'test'.2.tmp
+$      if $status then rm _'test'.2.tmp;,_'test'.2;,_'test'.awk;
+$      return
+$!
+$filefuncs:
+$fnmatch:
+$functab4:
+$ordchr:
+$revout:
+$revtwoway:
+$time:
+$      echo "''test'"
+$      filefunc_file = "[-]gawkapi.o"
+$      open/write gapi 'filefunc_file'
+$      close gapi
+$      set noOn
+$      AWKLIBPATH_dir
+$      gawk -f 'test'.awk 'test'.in >_'test'.tmp 2>&1
+$      if .not. $status then call exit_code '$status' _'test'.tmp
+$      set On
+$      cmp 'test'.ok sys$disk:[]_'test'.tmp
+$      if $status then rm _'test'.tmp;
+$      if f$search(filefunc_file) .nes. "" then rm 'filefunc_file';
+$      return
+$!
+$rwarray:
+$      echo "''test'"
+$      set noOn
+$      AWKLIBPATH_dir
+$      gawk -f 'test'.awk 'test'.in >_'test'.tmp 2>&1
+$      if .not. $status then call exit_code '$status' _'test'.tmp
+$      set On
+$      cmp orig.out new.out
+$      if $status
+$      then
+$          open/append tout _'test'.tmp
+$          write tout "old and new are equal - GOOD"
+$          close tout
+$      endif
+$      cmp 'test'.ok sys$disk:[]_'test'.tmp
+$      if $status then rm _'test'.tmp;,orig.out;,new.out;
+$      return
+$!
+$readdir:
+$fts:
+$      echo "''test'"
+$      set noOn
+$      AWKLIBPATH_dir
+$      gawk -f 'test'.awk >_'test'.tmp 2>&1
+$      if .not. $status
+$      then
+$          call exit_code '$status' _'test'.tmp
+$          write sys$output _'test'.tmp
+$      endif
+$      set On
+$      return
 $
 $clean:
 $      if f$search("_*.*")      .nes."" then  rm _*.tmp;*

-----------------------------------------------------------------------

Summary of changes:
 README_d/ChangeLog                 |   11 +++-
 README_d/README.VMS                |   75 ++++++++++++++++++++++++----
 doc/ChangeLog                      |    4 ++
 doc/gawk.info                      |   96 ++++++++++++++++++++----------------
 doc/gawk.texi                      |   17 ++++++
 doc/gawktexi.in                    |   17 ++++++
 extension/ChangeLog                |    5 ++
 extension/filefuncs.c              |    1 +
 extension/time.c                   |   24 +++++++++
 test/ChangeLog                     |    1 +
 test/fts.awk                       |    7 +++
 test/rwarray.awk                   |   25 ++++++---
 vms/ChangeLog                      |    8 ++-
 vms/gawk_plugin.opt                |    5 ++
 vms/generate_config_vms_h_gawk.com |    2 +
 vms/vax/ChangeLog                  |    7 +++
 vms/vax/gawk_plugin_xfer.mar_exact |   13 +++++
 vms/vax/gawk_plugin_xfer.opt       |    5 ++
 vms/vax/macro32_exactcase.com      |   16 ++++++
 vms/vax/macro32_exactcase.patch    |   11 ++++
 vms/vms_popen.c                    |    4 +-
 vms/vmstest.com                    |   88 +++++++++++++++++++++++++++++++++
 22 files changed, 373 insertions(+), 69 deletions(-)
 create mode 100644 vms/gawk_plugin.opt
 create mode 100644 vms/vax/ChangeLog
 create mode 100644 vms/vax/gawk_plugin_xfer.mar_exact
 create mode 100644 vms/vax/gawk_plugin_xfer.opt
 create mode 100644 vms/vax/macro32_exactcase.com
 create mode 100644 vms/vax/macro32_exactcase.patch


hooks/post-receive
-- 
gawk



reply via email to

[Prev in Thread] Current Thread [Next in Thread]