aboutsummaryrefslogtreecommitdiffstats
path: root/vms
diff options
context:
space:
mode:
Diffstat (limited to 'vms')
-rw-r--r--vms/ChangeLog44
-rw-r--r--vms/gawkmisc.vms26
-rw-r--r--vms/vms-conf.h9
-rw-r--r--vms/vms-notes8
-rw-r--r--vms/vms_fwrite.c2
-rw-r--r--vms/vms_gawk.c4
-rw-r--r--vms/vmsbuild.com50
-rw-r--r--vms/vmstest.com23
8 files changed, 119 insertions, 47 deletions
diff --git a/vms/ChangeLog b/vms/ChangeLog
index fa1fbd16..ca65788f 100644
--- a/vms/ChangeLog
+++ b/vms/ChangeLog
@@ -1,7 +1,51 @@
+2012-11-24 Arnold D. Robbins <arnold@skeeve.com>
+
+ * vmstest.com: Fix typo in applying previous patch.
+
+2012-11-22 Anders Wallin <anders_s_wallin@yahoo.se>
+
+ * vmstest.com: Updated to match main test/Makefile.
+
+2012-11-14 Arnold D. Robbins <arnold@skeeve.com>
+
+ * vmsbuild.com: Updated. Thanks to Anders Wallin.
+ * vms-conf.h: Ditto, ditto.
+
+2012-11-12 Arnold D. Robbins <arnold@skeeve.com>
+
+ * gawkmisc.vms (os_isreadable): Change first argument type to
+ awk_input_buf_t.
+ * vms-conf.h (HAVE_STDINT_H): Define.
+ (SHLIBEXT, DEFLIBPATH): Add definitions.
+ * vms_fwrite.c (tty_fwrite): Check do_debug instead of no-longer-
+ extant which_gawk variable.
+ * vms_gawk.c (vms_gawk): Check do_debug and do_profiling instead
+ of which_gawk.
+
+ Thanks to Anders Wallin.
+
+2012-08-08 Arnold D. Robbins <arnold@skeeve.com>
+
+ * gawkmisc.vms (os_isreadable): Take IOBUF_PUBLIC instead of fd and
+ use passed in info.
+
+2012-07-29 Arnold D. Robbins <arnold@skeeve.com>
+
+ * gawkmisc.vms (os_isreadable): Add isdir pointer parameter to be
+ set to true if fd is for a directory.
+
+2012-07-26 Arnold D. Robbins <arnold@skeeve.com>
+
+ * gawkmisc.vms (os_isreadable): New function.
+
2012-03-29 Arnold D. Robbins <arnold@skeeve.com>
* config.h: Add definition for _Noreturn.
+2012-03-20 Andrew J. Schorr <aschorr@telemetry-investments.com>
+
+ * gawkmisc.vms (deflibpath): New global variable.
+
2012-03-28 Arnold D. Robbins <arnold@skeeve.com>
* 4.0.1: Release tar ball made.
diff --git a/vms/gawkmisc.vms b/vms/gawkmisc.vms
index 346a1e88..08c8fb5e 100644
--- a/vms/gawkmisc.vms
+++ b/vms/gawkmisc.vms
@@ -25,6 +25,7 @@
char quote = '\'';
char *defpath = DEFPATH;
+char *deflibpath = DEFLIBPATH;
char envsep = ',';
/* gawk_name --- pull out the "gawk" part from how the OS called us */
@@ -143,6 +144,31 @@ int fd;
return (fstat(fd, &sbuf) == 0 && S_ISDIR(sbuf.st_mode));
}
+/* os_isreadable --- fd can be read from */
+
+int
+os_isreadable(const awk_input_buf_t *iobuf, bool *isdir)
+{
+ *isdir = false;
+
+ switch (iobuf->sbuf.st_mode & S_IFMT) {
+ case S_IFREG:
+ case S_IFCHR: /* ttys, /dev/null, .. */
+#ifdef S_IFSOCK
+ case S_IFSOCK:
+#endif
+#ifdef S_IFIFO
+ case S_IFIFO:
+#endif
+ return true;
+ case S_IFDIR:
+ *isdir = true;
+ /* fall through */
+ default:
+ return false;
+ }
+}
+
/* os_is_setuid --- true if running setuid root */
int
diff --git a/vms/vms-conf.h b/vms/vms-conf.h
index 59abd5de..fbd611f2 100644
--- a/vms/vms-conf.h
+++ b/vms/vms-conf.h
@@ -45,6 +45,10 @@
#define STACK_DIRECTION (-1)
#endif /*0*/
+#include <bitypes.h>
+#define INT32_MAX __INT32_MAX
+#define INT32_MIN __INT32_MIN
+
/* dynamic loading is possible */
#undef DYNAMIC
@@ -545,6 +549,10 @@
/* Whether `time_t' is an unsigned type. */
#define TIME_T_UNSIGNED 1
+/* Extension for shared libraries */
+#define SHLIBEXT "exe"
+
+
/*******************************/
/* Gawk configuration options. */
/*******************************/
@@ -561,6 +569,7 @@
*/
#define DEFPATH ".,/AWK_LIBRARY"
+#define DEFLIBPATH ".,/AWK_LIBRARY"
#define ENVSEP ','
/*
diff --git a/vms/vms-notes b/vms/vms-notes
new file mode 100644
index 00000000..23943bb9
--- /dev/null
+++ b/vms/vms-notes
@@ -0,0 +1,8 @@
+Thu Nov 22 18:18:47 IST 2012
+============================
+
+Per Anders Wallin, the HP VMS porting guide is available at
+
+ http://h71000.www7.hp.com/portability/portingguidelines.html
+
+This file documents this fact, and anything else of interest.
diff --git a/vms/vms_fwrite.c b/vms/vms_fwrite.c
index 921ac2d4..1a16f58c 100644
--- a/vms/vms_fwrite.c
+++ b/vms/vms_fwrite.c
@@ -77,7 +77,7 @@ tty_fwrite( const void *buf, size_t size, size_t number, FILE *file )
chan = file_num < _NFILE ? channel[file_num] : -1;
if (chan == 0) { /* if not initialized, need to assign a channel */
if (isatty(file_num) > 0 /* isatty: 1=yes, 0=no, -1=problem */
- && which_gawk != exe_debugging) {
+ && ! do_debug) {
Dsc device;
char devnam[255+1];
diff --git a/vms/vms_gawk.c b/vms/vms_gawk.c
index 222d803d..8b20c377 100644
--- a/vms/vms_gawk.c
+++ b/vms/vms_gawk.c
@@ -80,8 +80,8 @@ vms_gawk()
int native_dcl = 1, /* assume true until we know otherwise */
short_circ; /* some options make P1, /commands, /input superfluous */
- CmdName = (which_gawk == exe_profiling) ? "PGAWK"
- : (which_gawk == exe_debugging) ? "DGAWK"
+ CmdName = do_profile ? "PGAWK"
+ : do_debug ? "DGAWK"
: "GAWK";
/* check "GAWK_P1"--it's required; its presence will tip us off */
diff --git a/vms/vmsbuild.com b/vms/vmsbuild.com
index 047e49a2..95c6aeb3 100644
--- a/vms/vmsbuild.com
+++ b/vms/vmsbuild.com
@@ -10,9 +10,10 @@ $! gawk 3.1.1 revised, Apr'02
$! gawk 3.1.6 revised, Mar'07
$! gawk-bytecode revd, Jan'10
$! gawk 4.0.0 revd, May'11
+$! gawk 4.1.0 revd, Nov'12
$!
-$ REL = "4.0" !release version number
-$ PATCHLVL = "1"
+$ REL = "4.1" !release version number
+$ PATCHLVL = "0"
$!
$!
$ CCFLAGS = "/noList" ! "/noOpt/Debug"
@@ -90,12 +91,15 @@ $ cc regex.c
$ cc replace.c
$ cc version.c
$ cc eval.c
-$ cc eval_p.c
-$ cc eval_d.c
$ cc profile.c
-$ cc profile_p.c
$ cc command.c
$ cc debug.c
+$ cc int_array.c
+$ cc cint_array.c
+$ cc gawkapi.c
+$ cc mpfr.c
+$ cc str_array.c
+$ cc symbol.c
$ cc [.vms]vms_misc.c
$ cc [.vms]vms_popen.c
$ cc [.vms]vms_fwrite.c
@@ -112,6 +116,7 @@ array.obj,awkgram.obj,builtin.obj,dfa.obj,ext.obj,field.obj,floatcomp.obj
gawkmisc.obj,getopt.obj,getopt1.obj,io.obj
main.obj,msg.obj,node.obj
random.obj,re.obj,regex.obj,replace.obj,version.obj,eval.obj,profile.obj
+command.obj,debug.obj,int_array.obj,cint_array.obj,gawkapi.obj,mpfr.obj,str_array.obj,symbol.obj
[]vms_misc.obj,vms_popen.obj,vms_fwrite.obj,vms_args.obj
[]vms_gawk.obj,vms_cli.obj,gawk_cmd.obj
psect_attr=environ,noshr !extern [noshare] char **
@@ -122,42 +127,7 @@ $ write Fopt libs
$ write Fopt "identification=""V''REL'.''PATCHLVL'"""
$ close Fopt
$!
-$ create pgawk.opt
-! PGAWK -- GNU awk w/ run-time profiling
-array.obj,awkgram.obj,builtin.obj,dfa.obj,ext.obj,field.obj,floatcomp.obj
-gawkmisc.obj,getopt.obj,getopt1.obj,io.obj
-main.obj,msg.obj,node.obj
-random.obj,re.obj,regex.obj,replace.obj,version.obj,eval_p.obj,profile_p.obj
-[]vms_misc.obj,vms_popen.obj,vms_fwrite.obj,vms_args.obj
-[]vms_gawk.obj,vms_cli.obj,gawk_cmd.obj
-psect_attr=environ,noshr !extern [noshare] char **
-stack=48 !preallocate more pages (default is 20)
-iosegment=128 !ditto (default is 32)
-$ open/append Fopt pgawk.opt
-$ write Fopt libs
-$ write Fopt "identification=""V''REL'.''PATCHLVL'"""
-$ close Fopt
-$!
-$ create dgawk.opt
-! DGAWK -- GNU awk w/ debugging
-array.obj,awkgram.obj,builtin.obj,dfa.obj,ext.obj,field.obj,floatcomp.obj
-gawkmisc.obj,getopt.obj,getopt1.obj,io.obj
-main.obj,msg.obj,node.obj
-random.obj,re.obj,regex.obj,replace.obj,version.obj
-eval_d.obj,profile.obj,command.obj,debug.obj
-[]vms_misc.obj,vms_popen.obj,vms_fwrite.obj,vms_args.obj
-[]vms_gawk.obj,vms_cli.obj,gawk_cmd.obj
-psect_attr=environ,noshr !extern [noshare] char **
-stack=48 !preallocate more pages (default is 20)
-iosegment=128 !ditto (default is 32)
-$ open/append Fopt dgawk.opt
-$ write Fopt libs
-$ write Fopt "identification=""V''REL'.''PATCHLVL'"""
-$ close Fopt
-$!
$ v = f$verify(1)
$ link/exe=gawk.exe gawk.opt/options
-$ link/exe=pgawk.exe pgawk.opt/options
-$ link/exe=dgawk.exe dgawk.opt/options
$! 'f$verify(v)'
$ exit
diff --git a/vms/vmstest.com b/vms/vmstest.com
index ccea8717..179ad679 100644
--- a/vms/vmstest.com
+++ b/vms/vmstest.com
@@ -53,7 +53,7 @@ $ list = "concat2 concat3 concat4 convfmt datanonl defref" -
+ " fnamedat fnarray fnarray2 fnaryscl fnasgnm fnmisc" -
+ " fordel forref forsimp fsbs fsspcoln fsrs fstabplus" -
+ " funsemnl funsmnam funstack getline getline2 getline3" -
- + " getline4"
+ + " getline4 getline5"
$ gosub list_of_tests
$ list = "getlnbuf getnr2tb getnr2tm gsubasgn gsubtest" -
+ " gsubtst2 gsubtst3 gsubtst4 gsubtst5 gsubtst6" -
@@ -67,12 +67,12 @@ $ gosub list_of_tests
$ list = "nfset nlfldsep nlinstr nlstrina noeffect nofile" -
+ " nofmtch noloop1 noloop2 nonl noparms nors nulrsend" -
+ " numindex numsubstr octsub ofmt ofmtbig ofmtfidl" -
- + " ofmta ofmts onlynl opasnidx opasnslf paramdup" -
+ + " ofmta ofmts ofs1 onlynl opasnidx opasnslf paramdup" -
+ " paramres paramtyp parse1 parsefld parseme pcntplus" -
+ " posix2008sub prdupval prec printf0 printf1 prmarscl"
$ gosub list_of_tests
$ list = "prmreuse prt1eval prtoeval rand range1 rebt8b1" -
- + " redfilnm regeq regrange reindops reparse resplit rs rsnul1nl" -
+ + " redfilnm regeq regexprange regrange reindops reparse resplit rs rsnul1nl" -
+ " rsnulbig rsnulbig2 rstest1 rstest2 rstest3 rstest4" -
+ " rstest5 rswhite scalar sclforin sclifin sortempty" -
+ " splitargv splitarr splitdef splitvar splitwht" -
@@ -97,7 +97,7 @@ $gnu:
$gawk_ext: echo "gawk_ext... (gawk.extensions)"
$ list = "aadelete1 aadelete2 aarray1 aasort aasorti" -
+ " argtest arraysort backw badargs beginfile1 binmode1" -
- + " clos1way delsub devfd devfd1 devfd2 dumpvars exit" -
+ + " clos1way charasbytes delsub devfd devfd1 devfd2 dumpvars exit" -
+ " fieldwdth fpat1 fpat2 fpat3 fpatnull funlen fsfwfs" -
+ " fwtest fwtest2 fwtest3" -
+ " gensub gensub2 getlndir gnuops2 gnuops3 gnureops" -
@@ -237,6 +237,7 @@ $nulrsend:
$ofmt:
$ofmtfidl:
$ofmts:
+$ofs1:
$onlynl:
$parse1:
$parsefld:
@@ -325,6 +326,7 @@ $procinfs:
$prt1eval:
$rebt8b1:
$rebt8b2:
+$regexprange:
$regrange:
$regx8bit:
$sort1:
@@ -346,6 +348,7 @@ $ return
$
$double1:
$double2:
+$getline5:
$lc_num1:
$mbprintf1:
$ echo "''test' skipped"
@@ -1318,6 +1321,18 @@ $ cmp devfd2.ok _devfd2.tmp
$ if $status then rm _devfd2.tmp;
$ return
$
+$charasbytes:
+$! This test used "od" on Unix to verify the result. As this is not available
+$! we must try as best as possible using DUMP and SEARCH, instead of comparing
+$! to charasbytes.ok
+$!
+$ echo "''test'"
+$ gawk -b -f 'test'.awk 'test'.in >_'test'.tmp
+$ pipe dump/byte/block=count:1 _charasbytes.tmp | -
+ search sys$pipe /noout " 00 00 00 00 00 00 00 00 00 00 00 00 0A 5A 5A 5A"
+$ if $severity .eq. 1 then rm _'test'.tmp;*
+$ return
+$
$mixed1: echo "mixed1"
$ set noOn
$ gawk -f /dev/null --source "BEGIN {return junk}" >_mixed1.tmp 2>&1