diff options
Diffstat (limited to 'vms')
-rw-r--r-- | vms/ChangeLog | 44 | ||||
-rw-r--r-- | vms/gawkmisc.vms | 26 | ||||
-rw-r--r-- | vms/vms-conf.h | 9 | ||||
-rw-r--r-- | vms/vms-notes | 8 | ||||
-rw-r--r-- | vms/vms_fwrite.c | 2 | ||||
-rw-r--r-- | vms/vms_gawk.c | 4 | ||||
-rw-r--r-- | vms/vmsbuild.com | 50 | ||||
-rw-r--r-- | vms/vmstest.com | 23 |
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 |