aboutsummaryrefslogtreecommitdiffstats
path: root/vms
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2010-07-16 12:41:09 +0300
committerArnold D. Robbins <arnold@skeeve.com>2010-07-16 12:41:09 +0300
commit8c042f99cc7465c86351d21331a129111b75345d (patch)
tree9656e653be0e42e5469cec77635c20356de152c2 /vms
parent8ceb5f934787eb7be5fb452fb39179df66119954 (diff)
downloadegawk-8c042f99cc7465c86351d21331a129111b75345d.tar.gz
egawk-8c042f99cc7465c86351d21331a129111b75345d.tar.bz2
egawk-8c042f99cc7465c86351d21331a129111b75345d.zip
Move to gawk-3.0.0.
Diffstat (limited to 'vms')
-rw-r--r--vms/ChangeLog3
-rw-r--r--vms/descrip.mms54
-rw-r--r--vms/gawkmisc.vms121
-rwxr-xr-xvms/posix-cc.sh16
-rw-r--r--vms/redirect.h78
-rw-r--r--vms/vms-conf.h168
-rw-r--r--vms/vms_args.c6
-rw-r--r--vms/vms_fwrite.c6
-rw-r--r--vms/vms_gawk.c6
-rw-r--r--vms/vms_misc.c18
-rw-r--r--vms/vms_popen.c6
-rw-r--r--vms/vmsbuild.com35
12 files changed, 468 insertions, 49 deletions
diff --git a/vms/ChangeLog b/vms/ChangeLog
new file mode 100644
index 00000000..570c031b
--- /dev/null
+++ b/vms/ChangeLog
@@ -0,0 +1,3 @@
+Wed Jan 10 22:58:55 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
+
+ * ChangeLog created.
diff --git a/vms/descrip.mms b/vms/descrip.mms
index 6c7910b9..6d01aa75 100644
--- a/vms/descrip.mms
+++ b/vms/descrip.mms
@@ -1,4 +1,4 @@
-# Descrip.MMS -- Makefile for building GNU Awk on VMS with VAXC and MMS.
+# Descrip.MMS -- Makefile for building GNU awk on VMS.
#
# usage:
# $ MMS /Description=[.vms]Descrip.MMS gawk
@@ -31,8 +31,9 @@
# specific post-processor on gawk.dvi in order to get printable data.
#
-# location of the VMS-specific files, relative to the 'main' directory
+# location of various source files, relative to the 'main' directory
VMSDIR = [.vms]
+DOCDIR = [.doc]
MAKEFILE = $(VMSDIR)Descrip.MMS
# debugging &c !'ccflags' is an escape to allow external compile flags
@@ -80,19 +81,21 @@ HELPLIB = sys$help:helplib.hlb
######## nothing below this line should need to be changed ########
#
+ECHO = write sys$output
+NOOP = continue
+
# ALLOCA
ALLOCA = alloca.obj
# object files
-AWKOBJS = main.obj,eval.obj,builtin.obj,msg.obj,iop.obj,io.obj,\
- field.obj,array.obj,node.obj,version.obj,missing.obj,re.obj,\
- getopt.obj,getopt1.obj
+AWKOBJS = array.obj,builtin.obj,eval.obj,field.obj,gawkmisc.obj,\
+ io.obj,main.obj,missing.obj,msg.obj,node.obj,re.obj,version.obj
ALLOBJS = $(AWKOBJS),awktab.obj
# GNUOBJS
# GNU stuff that gawk uses as library routines.
-GNUOBJS = regex.obj,dfa.obj,$(ALLOCA)
+GNUOBJS = getopt.obj,getopt1.obj,regex.obj,dfa.obj,$(ALLOCA)
# VMSOBJS
# VMS specific stuff
@@ -101,19 +104,37 @@ VMSCODE = vms_misc.obj,vms_popen.obj,vms_fwrite.obj,vms_args.obj,\
VMSCMD = gawk_cmd.obj # built from .cld file
VMSOBJS = $(VMSCODE),$(VMSCMD)
-VMSSRCS = $(VMSDIR)vms_misc.c,$(VMSDIR)vms_popen.c,$(VMSDIR)vms_fwrite.c,\
- $(VMSDIR)vms_args.c,$(VMSDIR)vms_gawk.c,$(VMSDIR)vms_cli.c
-VMSHDRS = $(VMSDIR)vms.h,$(VMSDIR)fcntl.h,$(VMSDIR)varargs.h,$(VMSDIR)unixlib.h
+# source and documentation files
+SRC = array.c,builtin.c,eval.c,field.c,gawkmisc.c,io.c,main.c,\
+ missing.c,msg.c,node.c,re.c,version.c
+
+ALLSRC= $(SRC),awktab.c
+
+AWKSRC= awk.h,awk.y,$(ALLSRC),patchlevel.h,protos.h
+
+GNUSRC = alloca.c,dfa.c,dfa.h,regex.c,regex.h,getopt.h,getopt.c,getopt1.c
+
+VMSSRCS = $(VMSDIR)gawkmisc.vms,$(VMSDIR)vms_misc.c,$(VMSDIR)vms_popen.c,\
+ $(VMSDIR)vms_fwrite.c,$(VMSDIR)vms_args.c,$(VMSDIR)vms_gawk.c,\
+ $(VMSDIR)vms_cli.c
+VMSHDRS = $(VMSDIR)redirect.h,$(VMSDIR)vms.h,$(VMSDIR)fcntl.h,\
+ $(VMSDIR)varargs.h,$(VMSDIR)unixlib.h
VMSOTHR = $(VMSDIR)Descrip.MMS,$(VMSDIR)vmsbuild.com,$(VMSDIR)version.com,\
$(VMSDIR)gawk.hlp
+DOCS= $(DOCDIR)gawk.1,$(DOCDIR)gawk.texi,$(DOCDIR)texinfo.tex
+
# Release of gawk
-REL=2.15
-PATCHLVL=6
+REL=3.0
+PATCHLVL=0
+
+# generic target
+all : gawk
+ $(NOOP)
# dummy target to allow building "gawk" in addition to explicit "gawk.exe"
gawk : gawk.exe
- write sys$output " GAWK "
+ $(ECHO) " GAWK "
# rules to build gawk
gawk.exe : $(ALLOBJS) $(GNUOBJS) $(VMSOBJS) gawk.opt
@@ -140,12 +161,13 @@ vms_gawk.obj : $(VMSDIR)vms_gawk.c
vms_cli.obj : $(VMSDIR)vms_cli.c
$(VMSCODE) : awk.h config.h $(VMSDIR)vms.h
-dfa.obj : awk.h config.h dfa.h
-regex.obj : awk.h config.h regex.h
+gawkmisc.obj : gawkmisc.c $(VMSDIR)gawkmisc.vms
+
+$(ALLOBJS) : awk.h dfa.h regex.h config.h
getopt.obj : getopt.h
+getopt1.obj : getopt.h
main.obj : patchlevel.h
awktab.obj : awk.h awktab.c
-$(AWKOBJS) : awk.h config.h
# bison or yacc required
awktab.c : awk.y # foo.y :: yacc => y[_]tab.c, bison => foo_tab.c
@@ -158,7 +180,7 @@ awktab.c : awk.y # foo.y :: yacc => y[_]tab.c, bison => foo_tab.c
@- if f$search("y_tab.c") .nes."" then rename/new_vers y_tab.c $@
@- if f$search("awk_tab.c").nes."" then rename/new_vers awk_tab.c $@
-config.h : [.config]vms-conf.h
+config.h : $(VMSDIR)vms-conf.h
copy $< $@
# Alloca - C simulation
diff --git a/vms/gawkmisc.vms b/vms/gawkmisc.vms
new file mode 100644
index 00000000..9d58b51e
--- /dev/null
+++ b/vms/gawkmisc.vms
@@ -0,0 +1,121 @@
+/*
+ * gawkmisc.vms --- miscellanious gawk routines that are OS specific.
+ */
+
+/*
+ * Copyright (C) 1986, 1988, 1989, 1991-1995 the Free Software Foundation, Inc.
+ *
+ * This file is part of GAWK, the GNU implementation of the
+ * AWK Progamming Language.
+ *
+ * GAWK is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * GAWK is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+char quote = '\'';
+char *defpath = DEFPATH;
+char envsep = ':';
+
+/* gawk_name --- pull out the "gawk" part from how the OS called us */
+
+char *
+gawk_name(filespec)
+const char *filespec;
+{
+ char *p, *q;
+
+ /* "device:[root.][directory.subdir]GAWK.EXE;n" -> "GAWK" */
+ p = strrchr(filespec, ']'); /* directory punctuation */
+ q = strrchr(filespec, '>'); /* alternate <international> punct */
+
+ if (p == NULL || q > p)
+ p = q;
+ p = strdup(p == NULL ? filespec : (p + 1));
+ if ((q = strrchr(p, '.')) != NULL)
+ *q = '\0'; /* strip .typ;vers */
+
+ return p;
+}
+
+/* os_arg_fixup --- fixup the command line */
+
+void
+os_arg_fixup(argcp, argvp)
+int *argcp;
+char ***argvp;
+{
+ (void) vms_arg_fixup(argcp, argvp);
+}
+
+/* os_devopen --- open special per-OS devices */
+
+int
+os_devopen(name, flag)
+const char *name;
+int flag;
+{
+ return vms_devopen(name, flag);
+}
+
+/* optimal_bufsize --- determine optimal buffer size */
+
+int
+optimal_bufsize(fd, stb)
+int fd;
+struct stat *stb;
+{
+
+ /* force all members to zero in case OS doesn't use all of them. */
+ memset(stb, '\0', sizeof(struct stat));
+
+ /*
+ * These values correspond with the RMS multi-block count used by
+ * vms_open() in vms/vms_misc.c.
+ */
+ if (isatty(fd) > 0)
+ return BUFSIZ;
+ else if (fstat(fd, stb) < 0)
+ return 8*512; /* conservative in case of DECnet access */
+ else
+ return 32*512;
+}
+
+/* ispath --- return true if path has directory components */
+
+int
+ispath(file)
+const char *file;
+{
+ for (; *file; file++) {
+ switch (*file) {
+ case ':':
+ case ']':
+ case '>':
+ case '/':
+ return 1;
+ }
+ }
+ return 0;
+}
+
+/* isdirpunct --- return true if char is a directory separator */
+
+int
+isdirpunct(c)
+int c;
+{
+ return (strchr(":]>/", c) != NULL);
+}
+
+
diff --git a/vms/posix-cc.sh b/vms/posix-cc.sh
new file mode 100755
index 00000000..6ac70990
--- /dev/null
+++ b/vms/posix-cc.sh
@@ -0,0 +1,16 @@
+# The VMS POSIX `c89' command writes any/all diagnostic info to stdout
+# rather than stderr, confusing configure tests which capture error output.
+#
+# Also, the VMS linker issues a warning for any undefined symbol, but that
+# does not inhibit creation of the final executable file, again confusing
+# configure. As an added complication, there's not enough control of the
+# linker to put the map file with chosen name into the current directory.
+#
+if [ -f ~/_posix-cc.map ] ; then rm -f ~/_posix-cc.map* ; fi
+c89 -Wc,nowarn -Wl,nodebug -Wl,map=_posix-cc.map $* ; x=$?
+if [ -f ~/_posix-cc.map ] ; then
+ if [ -n "`fgrep LINK-W-USEUNDEF ~/_posix-cc.map`" ] ; then x=1 ; fi
+ rm -f ~/_posix-cc.map*
+fi
+if [ x -ne 0 ] ; then echo "c89 reports failure" 1>&2 && exit 1 ; fi
+exit 0
diff --git a/vms/redirect.h b/vms/redirect.h
new file mode 100644
index 00000000..74fe622e
--- /dev/null
+++ b/vms/redirect.h
@@ -0,0 +1,78 @@
+/*
+ * redirect.h --- definitions for functions that are OS specific.
+ */
+
+/*
+ * Copyright (C) 1986, 88, 89, 91-93, 1995 the Free Software Foundation, Inc.
+ *
+ * This file is part of GAWK, the GNU implementation of the
+ * AWK Programming Language.
+ *
+ * GAWK is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * GAWK is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+/* This file is included by custom.h for VMS-POSIX, or first
+ by config.h (vms-conf.h) then again by awk.h for normal VMS. */
+
+#if defined(VMS_POSIX) || defined(IN_CONFIG_H)
+
+#define DEFAULT_FILETYPE ".awk"
+
+/* some macros to redirect some non-VMS-specific code */
+#define getopt gnu_getopt
+#define opterr gnu_opterr
+#define optarg gnu_optarg
+#define optind gnu_optind
+#define optopt gnu_optopt
+#define regcomp gnu_regcomp
+#define regexec gnu_regexec
+#define regfree gnu_regfree
+#define regerror gnu_regerror
+
+#else /* awk.h, not POSIX */
+
+/* some macros to redirect to code in vms/vms_misc.c */
+#define exit vms_exit
+#define open vms_open
+#define strerror vms_strerror
+#define strdup vms_strdup
+extern void exit P((int));
+extern int open P((const char *,int,...));
+extern char *strerror P((int));
+extern char *strdup P((const char *str));
+extern int vms_devopen P((const char *,int));
+# ifndef NO_TTY_FWRITE
+#define fwrite tty_fwrite
+#define fclose tty_fclose
+extern size_t fwrite P((const void *,size_t,size_t,FILE *));
+extern int fclose P((FILE *));
+# endif
+extern FILE *popen P((const char *,const char *));
+extern int pclose P((FILE *));
+extern void vms_arg_fixup P((int *,char ***));
+/* some things not in STDC_HEADERS */
+extern size_t gnu_strftime P((char *,size_t,const char *,const struct tm *));
+extern int unlink P((const char *));
+extern int getopt P((int,char **,char *));
+extern int isatty P((int));
+#ifndef fileno
+extern int fileno P((FILE *));
+#endif
+extern int close(), dup(), dup2(), fstat(), read(), stat();
+extern int getpgrp P((void));
+
+#endif /* not VMS_POSIX and not IN_CONFIG_H */
+
+/*vms/redirect.h*/
diff --git a/vms/vms-conf.h b/vms/vms-conf.h
new file mode 100644
index 00000000..d1593e6a
--- /dev/null
+++ b/vms/vms-conf.h
@@ -0,0 +1,168 @@
+/*
+ * config.h -- configuration definitions for gawk.
+ *
+ * For VMS (assumes V4.6 or later; tested on V5.5-2)
+ */
+
+/*
+ * Copyright (C) 1991, 1992, 1995 the Free Software Foundation, Inc.
+ *
+ * This file is part of GAWK, the GNU implementation of the
+ * AWK Programming Language.
+ *
+ * GAWK is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * GAWK is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+/* Define if using alloca.c. */
+#define C_ALLOCA
+#define STACK_DIRECTION (-1)
+#define REGEX_MALLOC /* use malloc instead of alloca in regex.c */
+
+/* Define as the return type of signal handlers (int or void). */
+#define RETSIGTYPE void
+
+#define SPRINTF_RET int
+
+/* Define if the `getpgrp' function takes no argument. */
+#define GETPGRP_VOID 1
+
+#define HAVE_STRING_H 1 /* the <string.h> header file */
+
+/* Define if you have the memcmp function. */
+#define HAVE_MEMCMP 1
+/* Define if you have the memcpy function. */
+#define HAVE_MEMCPY 1
+/* Define if you have the memset function. */
+#define HAVE_MEMSET 1
+
+/* Define if you have the strchr function. */
+#define HAVE_STRCHR 1
+
+/* Define if you have the strerror function. */
+#define HAVE_STRERROR 1
+
+/* Define if you have the strtod function. */
+#define HAVE_STRTOD 1
+
+/* Define if you have the system function. */
+#define HAVE_SYSTEM 1
+
+/* Define if you have the fmod function. */
+#define HAVE_FMOD 1
+
+/* Define if you have the tzset function. */
+/* [Fake it in vms/vms_misc.c since missing/tzset.c won't compile.] */
+#define HAVE_TZSET 1
+#define HAVE_TZNAME 1
+
+#define STDC_HEADERS 1
+
+#define HAVE_VPRINTF 1
+
+
+/*******************************/
+/* Gawk configuration options. */
+/*******************************/
+
+/*
+ * DEFPATH
+ * VMS: "/AWK_LIBRARY" => "AWK_LIBRARY:"
+ * The default search path for the -f option of gawk. It is used
+ * if the AWKPATH environment variable is undefined.
+ *
+ * Note: OK even if no AWK_LIBRARY logical name has been defined.
+ */
+
+#define DEFPATH ".,/AWK_LIBRARY"
+#define ENVSEP ','
+
+/*
+ * Extended source file access.
+ */
+#define DEFAULT_FILETYPE ".awk"
+
+/*
+ * Pipe handling.
+ */
+#define PIPES_SIMULATED 1
+
+/*
+ * %g format in VAXCRTL is broken (chooses %e format when should use %f).
+ */
+#define GFMT_WORKAROUND 1
+
+/*
+ * VAX C
+ *
+ * As of V3.2, VAX C is not yet ANSI-compliant. But it's close enough
+ * for GAWK's purposes. Comment this out for VAX C V2.4 and earlier.
+ * Value of 0 should mean "not ANSI-C", but GAWK uses def/not-def tests.
+ * YYDEBUG definition is needed for combination of VAX C V2.x and Bison.
+ */
+#if defined(VAXC) && !defined(__STDC__)
+#define __STDC__ 0
+#define NO_TOKEN_PASTING
+#ifndef __DECC /* DEC C does not support #pragma builtins even in VAXC mode */
+#define VAXC_BUILTINS
+#endif
+/* #define YYDEBUG 0 */
+#endif
+
+/*
+ * DEC C
+ *
+ * Digital's ANSI complier.
+ */
+#ifdef __DECC
+ /* DEC C implies DECC$SHR, which doesn't have the %g problem of VAXCRTL */
+#undef GFMT_WORKAROUND
+#endif
+
+/*
+ * GNU C
+ *
+ * Versions of GCC (actually GAS) earlier than 1.38 don't produce the
+ * right code for ``extern const'' constructs, and other usages of
+ * const might not be right either. The old set of include files from
+ * the gcc-vms distribution did not contain prototypes, and this could
+ * provoke some const-related compiler warnings. If you've got an old
+ * version of gcc for VMS, define 'const' out of existance, and by all
+ * means obtain the most recent version!
+ *
+ * Note: old versions of GCC should also avoid defining STDC_HEADERS,
+ * because most of the ANSI-C required header files are missing.
+ */
+#ifdef __GNUC__
+/* #define const */
+/* #undef STDC_HEADERS */
+#ifndef STDC_HEADERS
+#define alloca __builtin_alloca
+#define environ $$PsectAttributes_NOSHR$$environ /* awful GAS kludge */
+#endif
+#undef REGEX_MALLOC /* use true alloca() in regex.c */
+#endif
+
+#ifndef HAVE_STRFTIME
+/*
+ * Always use the version of strftime() in missing/strftime.c instead of
+ * the [as yet undocumented/unsupported] one in VAXCRTL. Renaming it here
+ * guarantees that it won't clash with the library routine.
+ */
+#define strftime gnu_strftime
+#endif
+
+#define IN_CONFIG_H
+#include "vms/redirect.h"
+#undef IN_CONFIG_H
diff --git a/vms/vms_args.c b/vms/vms_args.c
index a32e5d0f..945d7bf6 100644
--- a/vms/vms_args.c
+++ b/vms/vms_args.c
@@ -7,7 +7,7 @@
* Copyright (C) 1991-1995 the Free Software Foundation, Inc.
*
* This file is part of GAWK, the GNU implementation of the
- * AWK Progamming Language.
+ * AWK Programming Language.
*
* GAWK is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -20,8 +20,8 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GAWK; see the file COPYING. If not, write to
- * the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
/*
diff --git a/vms/vms_fwrite.c b/vms/vms_fwrite.c
index 7ca8f5c4..ab9bbbd0 100644
--- a/vms/vms_fwrite.c
+++ b/vms/vms_fwrite.c
@@ -6,7 +6,7 @@
* Copyright (C) 1991-1995 the Free Software Foundation, Inc.
*
* This file is part of GAWK, the GNU implementation of the
- * AWK Progamming Language.
+ * AWK Programming Language.
*
* GAWK is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -19,8 +19,8 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GAWK; see the file COPYING. If not, write to
- * the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
#include "awk.h" /* really "../awk.h" */
diff --git a/vms/vms_gawk.c b/vms/vms_gawk.c
index 69c91134..f65b9cbd 100644
--- a/vms/vms_gawk.c
+++ b/vms/vms_gawk.c
@@ -6,7 +6,7 @@
* Copyright (C) 1991-1993 the Free Software Foundation, Inc.
*
* This file is part of GAWK, the GNU implementation of the
- * AWK Progamming Language.
+ * AWK Programming Language.
*
* GAWK is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -19,8 +19,8 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GAWK; see the file COPYING. If not, write to
- * the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
/*
diff --git a/vms/vms_misc.c b/vms/vms_misc.c
index 31c24ed7..748b3b94 100644
--- a/vms/vms_misc.c
+++ b/vms/vms_misc.c
@@ -6,7 +6,7 @@
* Copyright (C) 1991-1993 the Free Software Foundation, Inc.
*
* This file is part of GAWK, the GNU implementation of the
- * AWK Progamming Language.
+ * AWK Programming Language.
*
* GAWK is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -19,8 +19,8 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GAWK; see the file COPYING. If not, write to
- * the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
#define creat creat_dummy /* one of gcc-vms's headers has bad prototype */
@@ -173,7 +173,7 @@ vms_devopen( const char *name, int mode )
*/
/* these are global for use by missing/strftime.c */
char *tzname[2] = { "local", "" };
-int daylight = 0;
+int daylight = 0, timezone = 0, altzone = 0;
/* dummy to satisfy linker */
void tzset()
@@ -189,6 +189,16 @@ int getpgrp()
return 0;
}
+#ifndef __GNUC__
+# ifdef bcopy
+# undef bcopy
+# endif
+void bcopy( const char *src, char *dst, int len )
+{
+ (void) memcpy(dst, src, len);
+}
+#endif /*!__GNUC__*/
+
/*----------------------------------------------------------------------*/
#ifdef NO_VMS_ARGS /* real code is in "vms/vms_args.c" */
void vms_arg_fixup( int *argc, char ***argv ) { return; } /* dummy */
diff --git a/vms/vms_popen.c b/vms/vms_popen.c
index 5c9c1a05..dcd8425b 100644
--- a/vms/vms_popen.c
+++ b/vms/vms_popen.c
@@ -6,7 +6,7 @@
* Copyright (C) 1991-1993 the Free Software Foundation, Inc.
*
* This file is part of GAWK, the GNU implementation of the
- * AWK Progamming Language.
+ * AWK Programming Language.
*
* GAWK is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -19,8 +19,8 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GAWK; see the file COPYING. If not, write to
- * the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
#ifndef NO_VMS_PIPES
diff --git a/vms/vmsbuild.com b/vms/vmsbuild.com
index 50d2b5a0..40a9307c 100644
--- a/vms/vmsbuild.com
+++ b/vms/vmsbuild.com
@@ -3,9 +3,10 @@ $! revised, Mar'90
$! gawk 2.13 revised, Jun'91
$! gawk 2.14 revised, Sep'92
$! gawk 2.15 revised, Oct'93
+$! gawk 3.0 revised, Dec'95
$!
-$ REL = "2.15" !release version number
-$ PATCHLVL = "6"
+$ REL = "3.0" !release version number
+$ PATCHLVL = "0"
$!
$! [ remove "/optimize=noinline" for VAX C V2.x or DEC C ]
$! [ add "/standard=VAXC" for DEC C and "/g_float" for Alpha ]
@@ -27,7 +28,7 @@ $! uncomment next two lines for GNU C
$ ! cc := gcc/Include=([],[.vms])/Define="(""GAWK"",""HAVE_CONFIG_H"")"
$ ! libs = "gnu_cc:[000000]gcclib.olb/Library,sys$library:vaxcrtl.olb/Library"
$!
-$ if f$search("config.h").eqs."" then copy [.config]vms-conf.h []config.h
+$ if f$search("config.h").eqs."" then copy [.vms]vms-conf.h []config.h
$ if f$search("awktab.c").nes."" then goto awktab_ok
$ write sys$output " You must process `awk.y' with ""yacc"" or ""bison"""
$ if f$search("awk_tab.c").nes."" then - !bison was run manually
@@ -36,21 +37,21 @@ $ if f$search("ytab.c").nes."" .or. f$search("y_tab.c").nes."" then - !yacc
write sys$output " or else rename `ytab.c' or `y_tab.c' to `awktab.c'."
$ exit
$awktab_ok:
-$ cc main.c
-$ cc eval.c
+$ cc array.c
$ cc builtin.c
-$ cc msg.c
-$ cc iop.c
-$ cc io.c
+$ cc eval.c
$ cc field.c
-$ cc array.c
-$ cc node.c
-$ cc version.c
+$ cc gawkmisc.c
+$ cc io.c
+$ cc main.c
$ cc missing.c
+$ cc msg.c
+$ cc node.c
$ cc re.c
+$ cc version.c
+$ cc awktab.c
$ cc getopt.c
$ cc getopt1.c
-$ cc awktab.c
$ cc regex.c
$ cc dfa.c
$ cc/define=("STACK_DIRECTION=(-1)","exit=vms_exit") alloca.c
@@ -64,11 +65,11 @@ $ set_command/object=[]gawk_cmd.obj [.vms]gawk.cld
$!
$ create gawk.opt
! GAWK -- Gnu AWK
-main.obj,eval.obj,builtin.obj,msg.obj,iop.obj,io.obj
-field.obj,array.obj,node.obj,version.obj,missing.obj
-re.obj,getopt.obj,getopt1.obj,awktab.obj,regex.obj,dfa.obj,[]alloca.obj
-[]vms_misc.obj,vms_popen.obj,vms_fwrite.obj
-[]vms_args.obj,vms_gawk.obj,vms_cli.obj,gawk_cmd.obj
+array.obj,builtin.obj,eval.obj,field.obj,gawkmisc.obj
+io.obj,main.obj,missing.obj,msg.obj,node.obj,re.obj,version.obj,awktab.obj
+getopt.obj,getopt1.obj,regex.obj,dfa.obj,alloca.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)