diff options
author | Arnold D. Robbins <arnold@skeeve.com> | 2010-07-16 13:09:56 +0300 |
---|---|---|
committer | Arnold D. Robbins <arnold@skeeve.com> | 2010-07-16 13:09:56 +0300 |
commit | bc70de7b3302d5a81515b901cae376b8b51d2004 (patch) | |
tree | d36d6743e65697f6923b79d0ea8f9f9bf4ef7398 /unsupported | |
parent | b9e4a1fd4c8c8753ab8a9887bab55f03efe1e3e2 (diff) | |
download | egawk-bc70de7b3302d5a81515b901cae376b8b51d2004.tar.gz egawk-bc70de7b3302d5a81515b901cae376b8b51d2004.tar.bz2 egawk-bc70de7b3302d5a81515b901cae376b8b51d2004.zip |
Move to gawk-3.1.0.
Diffstat (limited to 'unsupported')
-rw-r--r-- | unsupported/atari/ChangeLog | 62 | ||||
-rw-r--r-- | unsupported/atari/Makefile.awklib | 109 | ||||
-rw-r--r-- | unsupported/atari/Makefile.st | 282 | ||||
-rw-r--r-- | unsupported/atari/README.1st | 5 | ||||
-rw-r--r-- | unsupported/atari/config.h | 190 | ||||
-rw-r--r-- | unsupported/atari/gawkmisc.atr | 178 | ||||
-rw-r--r-- | unsupported/atari/redirect.h | 32 | ||||
-rw-r--r-- | unsupported/atari/stack.c | 6 | ||||
-rw-r--r-- | unsupported/atari/system.c | 112 | ||||
-rw-r--r-- | unsupported/atari/tmpnam.c | 47 | ||||
-rw-r--r-- | unsupported/tandem/ChangeLog | 31 | ||||
-rwxr-xr-x | unsupported/tandem/compit | 1 | ||||
-rw-r--r-- | unsupported/tandem/config.h | 209 | ||||
-rw-r--r-- | unsupported/tandem/getid.c | 120 | ||||
-rw-r--r-- | unsupported/tandem/isatty.c | 22 | ||||
-rw-r--r-- | unsupported/tandem/popen.c | 128 | ||||
-rw-r--r-- | unsupported/tandem/popen.h | 20 | ||||
-rw-r--r-- | unsupported/tandem/ptchlvl.h | 1 | ||||
-rw-r--r-- | unsupported/tandem/strdup.c | 15 | ||||
-rw-r--r-- | unsupported/tandem/strnchk.c | 95 | ||||
-rw-r--r-- | unsupported/tandem/tmisc.c | 196 |
21 files changed, 1861 insertions, 0 deletions
diff --git a/unsupported/atari/ChangeLog b/unsupported/atari/ChangeLog new file mode 100644 index 00000000..3e13117e --- /dev/null +++ b/unsupported/atari/ChangeLog @@ -0,0 +1,62 @@ +Sun Jun 3 13:04:44 2001 Arnold D. Robbins <arnold@skeeve.com> + + * Release 3.1.0: Release tar file made. And there was + rejoicing. + +Sun Jan 28 15:50:02 2001 Eli Zaretskii <eliz@is.elta.co.il> + + * gawkmisc.atr (os_restore_mode): New function + +Sun Dec 3 16:53:37 2000 Arnold D. Robbins <arnold@skeeve.com> + + * gawkmisc.atr (os_setbinmode): new function. + +Tue Nov 7 14:09:14 2000 Arnold D. Robbins <arnold@skeeve.com> + + * gawkmisc.atr (os_is_setuid): new function. + +Wed Jul 30 19:53:52 1997 Arnold D. Robbins <arnold@gnu.ai.mit.edu> + + * Close-on-exec changes: + gawkmisc.atr: (os_close_on_exec, os_isdir): new functions. + +Mon Aug 7 15:23:00 2000 Arnold D. Robbins <arnold@skeeve.com> + + * Release 3.0.6: Release tar file made. + +Sun Jun 25 15:08:19 2000 Arnold D. Robbins <arnold@skeeve.com> + + * Release 3.0.5: Release tar file made. + +Wed Jun 30 16:14:36 1999 Arnold D. Robbins <arnold@gnu.org> + + * Release 3.0.4: Release tar file made. This time for sure. + +Thu May 15 12:49:08 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us> + + * Release 3.0.3: Release tar file made. + +Fri Apr 18 07:55:47 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us> + + * BETA Release 3.0.34: Release tar file made. + +Wed Dec 25 11:25:22 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> + + * Release 3.0.2: Release tar file made. + +Tue Dec 10 23:09:26 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> + + * Release 3.0.1: Release tar file made. + +Thu Nov 21 13:11:20 1996 Michal Jaegermann <michal@phys.ualberta.ca> + + * Makefile.st: Once again Makefile.st and config.h chase + moving targets from the main directory. + +Thu Nov 7 21:02:01 1996 Michal Jaegermann <michal@phys.ualberta.ca> + + * Makefile.st, Makefile.awklib: sync'ed with ones in main tree. + +Wed Jan 10 22:58:55 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> + + * ChangeLog created. diff --git a/unsupported/atari/Makefile.awklib b/unsupported/atari/Makefile.awklib new file mode 100644 index 00000000..abdc1649 --- /dev/null +++ b/unsupported/atari/Makefile.awklib @@ -0,0 +1,109 @@ +# Makefile for GNU Awk support library +# Copy this file to 'awklib' subdirectory of main directory +# and execute via relevant targets in your top Makefile +# +# This Makefile actually will work for awklib even when NOT +# compiling with Atari Makefile!!! +# +# Copyright (C) 1995, 96 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 + +SHELL = /bin/sh + +srcdir = . + +INSTALL = /usr/bin/install -c +INSTALL_PROGRAM = ${INSTALL} +INSTALL_DATA = ${INSTALL} -m 644 + +CC = gcc +CFLAGS = -g -O + +prefix = /usr/local +exec_prefix = ${prefix} +binprefix = +manprefix = + +bindir = ${exec_prefix}/bin +libdir = ${exec_prefix}/lib +mandir = ${prefix}/man/man1 +manext = .1 +infodir = ${prefix}/info +datadir = ${prefix}/share/awk +libexecdir = ${exec_prefix}/libexec/awk + +# default names of library utilities; on some systems they may require +# names with extenstions +PWCAT = pwcat +GRCAT = grcat +# the following command used, when necessary, for edits when +# creating igawk from igawk.sh +GCOM = '{print}' +GAWK = gawk +# $(AWK) is a by default freshly compiled gawk or installed awk when +# cross-compiling; it is used for edits, since we may compile not on +# Unix machine and an utility like 'sed' may NOT exist there +AWK = $(srcdir)/../$(GAWK) +AUXPROGS = $(PWCAT) $(GRCAT) +AUXAWK = passwd.awk group.awk + +all: stamp-eg $(AUXPROGS) igawk $(AUXAWK) + +stamp-eg: $(srcdir)/../doc/gawk.texi + rm -fr eg stamp-eg + $(AWK) -f $(srcdir)/extract.awk $(srcdir)/../doc/gawk.texi + @echo 'some makes are stupid and will not check a directory' > stamp-eg + @echo 'against a file, so this file is a place holder. gack.' >> stamp-eg + +$(PWCAT): $(srcdir)/eg/lib/pwcat.c + $(CC) $(CFLAGS) $(srcdir)/eg/lib/pwcat.c $(LDFLAGS) -o $@ + +$(GRCAT): $(srcdir)/eg/lib/grcat.c + $(CC) $(CFLAGS) $(srcdir)/eg/lib/grcat.c $(LDFLAGS) -o $@ + +igawk: $(srcdir)/eg/prog/igawk.sh + $(AWK) $(GCOM) $(srcdir)/eg/prog/igawk.sh > $@ ; chmod 755 $@ + +passwd.awk: $(srcdir)/eg/lib/passwdawk.in + $(AWK) '{gsub(/\/usr\/local\/libexec\/awk/, "$(libexecdir)"); print}' \ + $? > $@ + +group.awk: $(srcdir)/eg/lib/groupawk.in + $(AWK) '{gsub(/\/usr\/local\/libexec\/awk/, "$(libexecdir)"); print}' \ + $? > $@ + +install: igawk $(AUXPROGS) $(AUXAWK) + $(INSTALL_PROGRAM) igawk $(bindir)/igawk && chmod 755 $(bindir)/igawk + for i in $(AUXPROGS) ; do \ + $(INSTALL_PROGRAM) $$i $(libexecdir)/$$i ; \ + done + for i in $(AUXAWK) $(srcdir)/eg/lib/*.awk ; do \ + $(INSTALL_DATA) $$i $(datadir)/$$i ; \ + done + +# libexecdir and bindir are removed in the top level Makefile's uninstall +uninstall: + rm -fr $(libexecdir)/* $(datadir)/* + rm -f $(bindir)/igawk + +clean: + rm -f $(AUXPROGS) $(AUXAWK) igawk *~ + +distclean: clean + rm -f Makefile diff --git a/unsupported/atari/Makefile.st b/unsupported/atari/Makefile.st new file mode 100644 index 00000000..20664a48 --- /dev/null +++ b/unsupported/atari/Makefile.st @@ -0,0 +1,282 @@ +# Makefile for GNU Awk - ST version. +# +# This makefile hand edited from Makefile automatically generated +# by configure - gcc 2.x.x compiler with TOS version of libraries +# and modified system(). +# Check comments in this Makefile and adjust to your needs!! +# +# This Makefile assumes that you are using Bourne compatible shell +# (like bash). If this is not the case you will have to edit various +# targets or perform some actions by hand. +# +# Copyright (C) 1986, 1988-1996 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 + + +MAKEINFO = makeinfo --no-split + +srcdir = . + +# native compiler with freshly compiled gawk.ttp to fix awklib +GAWK = gawk.ttp +CC = gcc + +# cross-compiler and gawk already installed on the system (any awk will do) +# GAWK = gawk +# CC = cgcc + +# WIDTH and EXT have to be both defined or both undefined +# WIDTH = -mshort -DINT_IS_16BIT +# EXT = 16 + +OFLAGS = -O2 -Wall -fomit-frame-pointer $(WIDTH) +LDFLAGS = $(WIDTH) +YACC = bison -y + +# xstrip -k in target gawk.ttp removes all symbols but _stksize +# allowing for stack size manipulations without recompiling (with fixstk) +INSTALL = xstrip -k ; cp -p +INSTALL_PROGRAM = ${INSTALL} +#INSTALL_DATA = ${INSTALL} -m 644 +INSTALL_DATA = ${INSTALL} + +LIBS = -lpml$(EXT) + +ALLOCA = + +#all these definitions likely require changes +exec_prefix = ${prefix} +prefix = /usr/local +binprefix = +manprefix = + +bindir = ${exec_prefix}/bin +libdir = ${exec_prefix}/lib +manexta = l +mandir = ${prefix}/man/man$(manexta) +manext = .$(manexta) +infodir = ${prefix}/info +#datadir = ${prefix}/share/awk +datadir = ${prefix}/lib/awk +libexecdir = ${exec_prefix}/lib/awk + +#DEFPATH = ".:$(datadir)" +# datadir is passed to the next Makefile level and through sed +# you may need many more backslashes than that if you have to use +# them at all - sigh... +DEFPATH = ".,c:\\lib\\awk,c:\\gnu\\lib\\awk" + +SHELL = /bin/sh + +SHELL = /bin/sh +#CFLAGS = -g -O +CFLAGS = $(OFLAGS) +COMPFLAGS = $(CFLAGS) -DGAWK -I. -I$(srcdir) -DHAVE_CONFIG_H + +MFLAGS = "CC=$(CC)" \ + "CFLAGS=$(CFLAGS)" \ + GAWK=../$(GAWK) \ + AWK=awk \ + PWCAT=pwcat.ttp GRCAT=grcat.ttp \ + "GCOM='{sub(/\":\"/, \"\\\",\\\"\"); print}'" \ + "COMPFLAGS=$(COMPFLAGS)" \ + "LDFLAGS=$(LDFLAGS)" \ + "INSTALL=$(INSTALL)" \ + "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \ + "INSTALL_DATA=$(INSTALL_DATA)" \ + "bindir=$(bindir)" \ + "libdir=$(libdir)" \ + "mandir=$(mandir)" \ + "manext=$(manext)" \ + "infodir=$(infodir)" \ + "datadir=$(datadir)" \ + "libexecdir=$(libexecdir)" + +MMAKE = $(MAKE) $(MFLAGS) + +# object files +AWKOBJS = array.o builtin.o eval.o field.o gawkmisc.o io.o main.o \ + missing.o msg.o node.o re.o version.o + +ALLOBJS = $(AWKOBJS) awktab.o + +# LIBOBJS +# GNU and other stuff that gawk uses as library routines. +LIBOBJS= getopt.o getopt1.o regex.o dfa.o random.o $(ALLOCA) + +# 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 custom.h $(ALLSRC) patchlevel.h protos.h random.h + +LIBSRC = alloca.c dfa.c dfa.h regex.c regex.h getopt.h getopt.c getopt1.c random.c + +COPIES = missing/system.c missing/tzset.c \ + missing/memcmp.c missing/memcpy.c missing/memset.c \ + missing/strncasecmp.c missing/strchr.c \ + missing/strerror.c missing/strtod.c \ + missing/strftime.c missing/strftime.3 + +DOCS= doc/gawk.1 doc/gawk.texi doc/texinfo.tex + +TEXFILES= doc/gawk.aux doc/gawk.cp doc/gawk.cps doc/gawk.fn doc/gawk.fns \ + doc/gawk.ky doc/gawk.kys doc/gawk.pg doc/gawk.pgs doc/gawk.toc \ + doc/gawk.tp doc/gawk.tps doc/gawk.vr doc/gawk.vrs + +MISC = NEWS COPYING FUTURES Makefile.in PROBLEMS README PORTS POSIX.STD \ + configure configure.in acconfig.h configh.in ACKNOWLEDGMENT \ + ChangeLog INSTALL LIMITATIONS install-sh mkinstalldirs aclocal.m4 \ + stamp-h.in + +OTHERS= amiga doc pc atari vms README_d posix awklib + +ALLDOC= doc/gawk.dvi $(TEXFILES) doc/gawk.info* + +MAKEFILEIN = Makefile.in awklib/Makefile.in doc/Makefile.in test/Makefile.in + +# Release of gawk. There can be no leading or trailing white space here! +REL=3.0 + +# clear out suffixes list +.SUFFIXES: +.SUFFIXES: .c .o + +.c.o: + $(CC) -c $(COMPFLAGS) $< + +# rules to build gawk +all: $(GAWK) awklib/all + +alldoc: all doc/all + +$(GAWK): $(ALLOBJS) $(LIBOBJS) $(REOBJS) + $(CC) -o $(GAWK) $(COMPFLAGS) $(LDFLAGS) $(ALLOBJS) $(LIBOBJS) \ + $(REOBJS) $(LIBS) + +$(ALLOBJS): awk.h dfa.h regex.h config.h custom.h + +$(LIBOBJS): config.h custom.h + +gawkmisc.o: $(srcdir)/atari/gawkmisc.atr + $(CC) -c $(COMPFLAGS) -DDEFPATH='$(DEFPATH)' $(srcdir)/gawkmisc.c + +# this rule needed or not - depending on your library +missing.o io.o: + $(CC) -c $(COMPFLAGS) -DPIPES_SIMULATED $(srcdir)/$< + +# cheat with defines to force an inclusion of a proper code +getopt.o: getopt.h + $(CC) $(CFLAGS) -D_LIBC -D__alloca=__builtin_alloca -c getopt.c + +getopt.o: getopt.h + +getopt1.o: getopt.h + +random.o: random.h + +main.o: patchlevel.h + +awktab.c: awk.y + $(YACC) -v $(srcdir)/awk.y && \ + if test -f y.tab.c ; then mv y.tab.c ytab.c ; else true ; fi && \ + sed '/^extern char .malloc(), .realloc();$$/d' ytab.c >awktab.c && \ + rm ytab.c + +# VMS POSIX make won't apply the default .c.o rule to awktab.o for some reason +awktab.o: awktab.c awk.h + $(CC) -c $(COMPFLAGS) $(srcdir)/awktab.c + +alloca.o: alloca.c + +install: $(GAWK) info installdirs + $(INSTALL_PROGRAM) $(GAWK) $(bindir) && chmod 755 $(bindir)/$(GAWK) + cd awklib && $(MMAKE) install + +installdirs: mkinstalldirs + $(srcdir)/mkinstalldirs $(bindir) $(datadir) \ + $(libdir) $(infodir) $(mandir) $(libexecdir) + +installdoc: info + cd doc && $(MMAKE) install + +# +#installtotal: installdirs install installdoc + +uninstall: + rm -f $(bindir)/$(GAWK) + cd awklib && $(MMAKE) uninstall + -rmdir $(datadir) $(libexecdir) +# cd doc && $(MMAKE) uninstall + +clean: + rm -rf $(GAWK) *.o core y.output + cd awklib && $(MMAKE) clean +# the following does not always make sense (when crosscompiling) +# cd test && $(MAKE) $(MFLAGS) clean +# cd doc && $(MAKE) $(MFLAGS) clean + +local-distclean: + rm -f Makefile *.orig *.rej */*.orig */*.rej awk.output \ + gmon.out make.out config.h config.status config.cache \ + config.log stamp-h *~ + +distclean: clean local-distclean + cd doc && $(MMAKE) distclean + cd awklib && $(MMAKE) distclean + cd test && $(MMAKE) distclean + +maintainer-clean: clean local-distclean + @echo "This command is intended for maintainers to use; it" + @echo "deletes files that may require special tools to rebuild." + rm -f awktab.c TAGS tags + cd doc && $(MMAKE) maintainer-clean +# cd test && $(MMAKE) maintainer-clean +# cd awklib && $(MMAKE) maintainer-clean + +clobber: maintainer-clean + +TAGS: + etags $(AWKSRC) + +tags: + ctags $(AWKSRC) + +dvi: $(srcdir)/doc/gawk.texi + cd doc && $(MMAKE) dvi + +info: $(srcdir)/doc/gawk.texi + cd doc && $(MMAKE) info + +doc/all: + cd doc && $(MMAKE) all + +awklib/all: + cd awklib && $(MMAKE) all + +# to run this target you have to adjust test/Makefile quite a bit +# in order to make it palatable to your shell +# +check: $(GAWK) + cd test; $(MMAKE) -k + +test: check + diff --git a/unsupported/atari/README.1st b/unsupported/atari/README.1st new file mode 100644 index 00000000..a158cda1 --- /dev/null +++ b/unsupported/atari/README.1st @@ -0,0 +1,5 @@ +Tue Nov 7 14:19:41 2000 + +The atari port is no longer supported. If you have an atari, +you are welcome to try and use the port here, but we no longer have +the hardware to test gawk on. diff --git a/unsupported/atari/config.h b/unsupported/atari/config.h new file mode 100644 index 00000000..1e40b132 --- /dev/null +++ b/unsupported/atari/config.h @@ -0,0 +1,190 @@ +/* + * Sample configuration file for ST - works with gcc and TOS libraries; + * revise for your configuration if configure script does not work + */ +/* + * config.h -- configuration definitions for gawk. + */ + +/* + * Copyright (C) 1995, 96 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. */ +/* #undef C_ALLOCA */ + +/* Define if type char is unsigned and you are not using gcc. */ +#ifndef __CHAR_UNSIGNED__ +/* #undef __CHAR_UNSIGNED__ */ +#endif + +/* Define to empty if the keyword does not work. */ +/* #undef const */ + +/* Define to the type of elements in the array set by `getgroups'. + Usually this is either `int' or `gid_t'. */ +#define GETGROUPS_T gid_t + +/* Define if the `getpgrp' function takes no argument. */ +#define GETPGRP_VOID 1 + +/* Define to `int' if <sys/types.h> doesn't define. */ +/* #undef gid_t */ + +/* Define if you have alloca, as a function or macro. */ +#define HAVE_ALLOCA 1 + +/* Define if you have <alloca.h> and it should be used (not on Ultrix). */ +/* #undef HAVE_ALLOCA_H */ + +/* Define if you don't have vprintf but do have _doprnt. */ +/* #undef HAVE_DOPRNT */ + +/* Define if you have a working `mmap' system call. */ +/* #undef HAVE_MMAP */ + +/* Define if your struct stat has st_blksize. */ +#define HAVE_ST_BLKSIZE 1 + +/* Define if you have <sys/wait.h> that is POSIX.1 compatible. */ +#define HAVE_SYS_WAIT_H 1 + +/* Define if your struct tm has tm_zone. */ +/* #undef HAVE_TM_ZONE */ + +/* Define if you don't have tm_zone but do have the external array + tzname. */ +/* #undef HAVE_TZNAME */ + +/* Define if you have the vprintf function. */ +#define HAVE_VPRINTF 1 + +/* Define if on MINIX. */ +/* #undef _MINIX */ + +/* Define to `int' if <sys/types.h> doesn't define. */ +/* #undef pid_t */ + +/* Define if the system does not provide POSIX.1 features except + with this defined. */ +/* #undef _POSIX_1_SOURCE */ + +/* Define if you need to in order for stat and other things to work. */ +/* #undef _POSIX_SOURCE */ + +/* Define as the return type of signal handlers (int or void). */ +#define RETSIGTYPE void + +/* Define to `unsigned' if <sys/types.h> doesn't define. */ +/* #undef size_t */ + +/* If using the C implementation of alloca, define if you know the + direction of stack growth for your system; otherwise it will be + automatically deduced at run-time. + STACK_DIRECTION > 0 => grows toward higher addresses + STACK_DIRECTION < 0 => grows toward lower addresses + STACK_DIRECTION = 0 => direction of growth unknown + */ +/* #undef STACK_DIRECTION */ + +/* Define if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* Define if you can safely include both <sys/time.h> and <time.h>. */ +#define TIME_WITH_SYS_TIME 1 + +/* Define if your <sys/time.h> declares struct tm. */ +#define TM_IN_SYS_TIME 1 + +/* Define to `int' if <sys/types.h> doesn't define. */ +/* #undef uid_t */ + +#define HAVE_STRINGIZE 1 /* can use ANSI # operator in cpp */ +/* #undef REGEX_MALLOC */ /* use malloc instead of alloca in regex.c */ +#define SPRINTF_RET int /* return type of sprintf */ + +/* Define if you have the fmod function. */ +#define HAVE_FMOD 1 + +/* Define if you have the getpagesize function. */ +#define HAVE_GETPAGESIZE 1 + +/* Define if you have the madvise function. */ +/* #undef HAVE_MADVISE */ + +/* 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 strftime function. */ +#define HAVE_STRFTIME 1 + +/* Define if you have the strncasecmp function. */ +/* #undef HAVE_STRNCASECMP */ + +/* Define if you have the strtod function. */ +#define HAVE_STRTOD 1 + +/* Define if you have the system function. */ +/* This is a white lie - but you may or may not prefer this way */ +/* #define HAVE_SYSTEM 1 */ + +/* Define if you have the tzset function. */ +#define HAVE_TZSET 1 + +/* Define if you have the valloc function. */ +/* #undef HAVE_VALLOC */ + +/* Define if you have the <limits.h> header file. */ +#define HAVE_LIMITS_H 1 + +/* Define if you have the <memory.h> header file. */ +#define HAVE_MEMORY_H 1 + +/* Define if you have the <signum.h> header file. */ +/* #undef HAVE_SIGNUM_H */ + +/* Define if you have the <stdarg.h> header file. */ +#define HAVE_STDARG_H 1 + +/* Define if you have the <string.h> header file. */ +#define HAVE_STRING_H 1 + +/* Define if you have the <strings.h> header file. */ +/* #undef HAVE_STRINGS_H */ + +/* Define if you have the <sys/param.h> header file. */ +#define HAVE_SYS_PARAM_H 1 + +/* Define if you have the <unistd.h> header file. */ +#define HAVE_UNISTD_H 1 + +#include <custom.h> /* overrides for stuff autoconf can't deal with */ diff --git a/unsupported/atari/gawkmisc.atr b/unsupported/atari/gawkmisc.atr new file mode 100644 index 00000000..85bfa29d --- /dev/null +++ b/unsupported/atari/gawkmisc.atr @@ -0,0 +1,178 @@ +/* + * gawkmisc.atr --- miscellanious gawk routines that are OS specific. + */ + +/* + * Copyright (C) 1986, 1988, 1989, 1991-1996 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 + */ + +#include <string.h> + +char quote = '\''; +#ifndef DEFPATH +char *defpath = ".,c:\\lib\\awk,c:\\gnu\\lib\\awk"; +#else +char *defpath = DEFPATH; +#endif +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; + + p = (char *)filespec; + + if ((q = strrchr(p, '\\')) != NULL) + p = q + 1; + if ((q = strrchr(p, '/')) != NULL) + p = q + 1; + if ((q = strchr(p, '.')) != NULL) + *q = '\0'; + strlwr(p); + + return (p == NULL ? (char *)filespec : (char *)p); +} + +/* os_arg_fixup --- fixup the command line */ + +void +os_arg_fixup(argcp, argvp) +int *argcp; +char ***argvp; +{ + /* no-op */ + return; +} + +/* os_devopen --- open special per-OS devices */ + +int +os_devopen(name, flag) +const char *name; +int flag; +{ + /* no-op */ + return INVALID_HANDLE; +} + +/* 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)); + + /* The atari has the st_blksize structure, so we just use it. */ +#define DEFBLKSIZE (stb->st_blksize ? stb->st_blksize : BUFSIZ) + + /* + * On ST redirected stdin does not have a name attached + * (this could be hard to do to) and fstat would fail + */ + if (fd == 0 || isatty(fd)) + return BUFSIZ; + if (fstat(fd, stb) == -1) + fatal("can't stat fd %d (%s)", fd, strerror(errno)); + if (lseek(fd, (off_t)0, 0) == -1) /* not a regular file */ + return DEFBLKSIZE; + if (stb->st_size > 0 && stb->st_size < DEFBLKSIZE) /* small file */ + return stb->st_size; + return DEFBLKSIZE; +} + +/* ispath --- return true if path has directory components */ + +int +ispath(file) +const char *file; +{ + return (strchr(file, '/') != NULL || strchr(file, '\\') != NULL); +} + +/* isdirpunct --- return true if char is a directory separator */ + +int +isdirpunct(c) +int c; +{ + return (c == '/' || c == '\\'); +} + +/* os_close_on_exec --- set close on exec flag, print warning if fails */ + +void +os_close_on_exec(fd, name, what, dir) +int fd; +const char *name, *what, *dir; +{ + if (fcntl(fd, F_SETFD, 1) < 0) + warning("%s %s `%s': could not set close-on-exec: %s", + what, dir, name, strerror(errno)); +} + +/* os_isdir --- is this an fd on a directory? */ + +#if ! defined(S_ISDIR) && defined(S_IFDIR) +#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) +#endif + +int +os_isdir(fd) +int fd; +{ + struct stat sbuf; + + return (fstat(fd, &sbuf) == 0 && S_ISDIR(sbuf.st_mode)); +} + +/* os_is_setuid --- true if running setuid root */ + +int +os_is_setuid() +{ + return 0; +} + +/* os_setbinmode --- set binary mode on file */ + +int +os_setbinmode (fd, mode) +int fd, mode; +{ + return 0; +} + +/* os_restore_mode --- restore the original mode of the console device */ + +void +os_restore_mode (fd) +int fd; +{ + /* no-op */ + return; +} diff --git a/unsupported/atari/redirect.h b/unsupported/atari/redirect.h new file mode 100644 index 00000000..6452778f --- /dev/null +++ b/unsupported/atari/redirect.h @@ -0,0 +1,32 @@ +/* + * redirect.h --- definitions for functions that are OS specific. + */ + +/* + * Copyright (C) 1986, 1988, 1989, 1991-1993 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 already conditioned on atarist in awk.h */ + +#define read _text_read /* we do not want all these CR's to mess our input */ +extern int _text_read(int, char *, int); +#ifndef __MINT__ +#undef NGROUPS_MAX +#endif /* __MINT__ */ diff --git a/unsupported/atari/stack.c b/unsupported/atari/stack.c new file mode 100644 index 00000000..c57880da --- /dev/null +++ b/unsupported/atari/stack.c @@ -0,0 +1,6 @@ +/* + * This value indicates an amount of reserved memory for a stack + * in executables - see source of a startup code for details. + * It can be changed without recompilation with fixstk.ttp utility. + */ +long _stksize = 2L; /* keep half of memory */ diff --git a/unsupported/atari/system.c b/unsupported/atari/system.c new file mode 100644 index 00000000..b74ae92f --- /dev/null +++ b/unsupported/atari/system.c @@ -0,0 +1,112 @@ +/* + * function system() - slightly modified from sources dLibs 1.2 + * - a freely distributable C library for Atari ST. + * Authors: Dale Schumacher and John Stanley, I believe. + * Changes for gcc compiler and gnulib.olb - Michal Jaegermann + */ + +#include <osbind.h> +#include <stdio.h> +#include <string.h> +#include <basepage.h> +#ifdef __GNUC__ +#include <process.h> +#define ERROR 2 +#endif + +/* #define DEBUG */ +#ifdef DEBUG +#define _COOKIE(x) puts(x);putchar('\n') +#endif + +static void +parse_args(char *cmdln, register char **argv) +{ + register char *p; + static char delim[] = " \t\r\n"; + + if(NULL != (p = strtok(cmdln, delim))) { + do { + *argv++ = p; + } while(NULL != (p = strtok(NULL, delim))); + } +} + +#ifdef __GNUC__ +/* this is used by assembler statement to keep a copy of registers */ +static volatile long savearea[16]; +#endif + +int +system(const char *command) +{ + register char *p; + register int (*shell)(); +#ifndef __GNUC__ + char rv[2]; +#endif + char cmdln[1024]; + char *args[64]; + char *getenv(const char *); + + if(!command) + return(ERROR); + + /* get _shell_p value */ + p = (char *) Super(0L); /* supervisor mode */ + shell = (int (*)()) *((long *) 0x4F6L); + (void) Super(p); /* restore user mode */ + + /* validate _shell_p */ + if((shell) && /* Shell available. */ + (((long) shell) < ((long) _base)) && /* Reasonable shell pointer. */ + (strncmp((char *)shell, "PATH", 4))) /* Not corrupted */ + { +#ifdef __GNUC__ + int ret; +#endif + /* execute the command */ +#ifdef DEBUG +_COOKIE("system: using _shell_p"); +printf("'shell' got value 0x%08lx\n", (long)shell); +#endif +/* a bit of paranoia caused by some misbehaving programs */ +#ifdef __GNUC__ +asm("moveml d1-d7/a0-a7,_savearea"); + ret = (*shell)(command); +asm("moveml _savearea,d1-d7/a0-a7"); + return (ret); +#else + return ((*shell)(command)); +#endif + } + + strcpy(cmdln, command); /* copy the command line for parsing */ + + if((p = getenv("SHELL")) && (*p)) /* SHELL= variable? */ + { + args[0] = p; + parse_args(cmdln, (args + 1)); +#ifdef DEBUG +_COOKIE("system: executing SHELL"); +_COOKIE(p); +#endif + } + else /* attempt to find first token as a program on the path */ + { + parse_args(cmdln, args); + p = args[0]; +#ifdef DEBUG +_COOKIE("system: directly executing program"); +_COOKIE(p); +#endif + } + +#ifdef __GNUC__ + return(spawnvp(0, p, args)); +#else /* original from dLibs */ + forkvpe(p, args, NULL); + wait(rv); + return((rv[1] == 0) ? rv[0] : rv[1]); +#endif +} diff --git a/unsupported/atari/tmpnam.c b/unsupported/atari/tmpnam.c new file mode 100644 index 00000000..92bf751b --- /dev/null +++ b/unsupported/atari/tmpnam.c @@ -0,0 +1,47 @@ +#ifdef PIPES_SIMULATED +/* tmpnam.c : return a temporary file name */ +/* written by Eric R. Smith and placed in the public domain */ +/** + * - modified for gawk needs - pattern /$$XXXXXX from the original + * code creates names which are hard to remove when somethig + * goes wrong + * - returned name can be passed outside via system(); other programs + * may not dig '/' as a path separator + * - somehow more frugal in a memory use + * (mj - October 1990) + **/ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +extern char * getenv(const char *); +extern char * mktemp(char *); +char * tempnam(const char *path, const char *base); +static char pattern[] = "\\gwkXXXXX"; + +char *tmpnam(buf) + char *buf; +{ + char *tmpdir; + + if (!(tmpdir = getenv("TEMP")) && !(tmpdir = getenv("TMPDIR"))) + tmpdir = "."; + + if (!buf) { + size_t blen; + + blen = strlen (tmpdir) + sizeof(pattern); + if (NULL == (buf = malloc(blen))) + return NULL; + } + (void) strcat(strcpy(buf, tmpdir), pattern); + return(mktemp(buf)); +} + +/* used by gawk_popen() */ +char *tempnam(path, base) +const char *path, *base; /* ignored */ +{ + return tmpnam(NULL); +} +#endif /* PIPES_SIMULATED */ diff --git a/unsupported/tandem/ChangeLog b/unsupported/tandem/ChangeLog new file mode 100644 index 00000000..9447e874 --- /dev/null +++ b/unsupported/tandem/ChangeLog @@ -0,0 +1,31 @@ +Sun Jun 3 13:04:44 2001 Arnold D. Robbins <arnold@skeeve.com> + + * Release 3.1.0: Release tar file made. And there was + rejoicing. + +Sun Jan 28 15:50:02 2001 Eli Zaretskii <eliz@is.elta.co.il> + + * tmisc.c (os_restore_mode): New function + +Sun Dec 3 16:53:37 2000 Arnold D. Robbins <arnold@skeeve.com> + + * tmisc.c (os_setbinmode): new function. + +Tue Nov 7 14:09:14 2000 Arnold D. Robbins <arnold@skeeve.com> + + * tmisc.c (os_is_setuid): new function. + +Tue Jun 1 14:09:36 1999 Arnold D. Robbins <arnold@gnu.org> + + Sync with changes in 3.0.4 for non-Unix popen/pclose + * popen.h: add defines for popen and pclose. + * config.h: add define for HAVE_POPEN_H. + +Wed Jul 30 19:53:52 1997 Arnold D. Robbins <arnold@gnu.org> + + * Close-on-exec changes: + tmisc.c: (os_close_on_exec, os_isdir): new functions. + +Mon Jul 27 11:40:00 1997 Arnold D. Robbins <arnold@gnu.org> + + * Initial integration of Tandem stuff into gawk source tree. diff --git a/unsupported/tandem/compit b/unsupported/tandem/compit new file mode 100755 index 00000000..3bf1aea5 --- /dev/null +++ b/unsupported/tandem/compit @@ -0,0 +1 @@ +?TACL MACRO
#FRAME
#PUSH #INLINEPREFIX
#SET #INLINEPREFIX +
==
== Compile the bits
==
c /in allocac, out allocax/allocao; symbols,WIDE,define TANDEM,define HAVE_CONFIG_H,SSV0 "$system.system",SSV1 "[#defaults]"
c /in arrayc, out arrayx/arrayo; symbols,WIDE,define TANDEM,define HAVE_CONFIG_H,SSV0 "$system.system",SSV1 "[#defaults]"
c /in builtinc, out builtinx/builtino; symbols,WIDE,define TANDEM,define HAVE_CONFIG_H,SSV0 "$system.system",SSV1 "[#defaults]"
c /in dfac, out dfax/dfao; symbols,WIDE,define TANDEM,define HAVE_CONFIG_H,SSV0 "$system.system",SSV1 "[#defaults]"
c /in evalc, out evalx/evalo; symbols,WIDE,define TANDEM,define HAVE_CONFIG_H,SSV0 "$system.system",SSV1 "[#defaults]"
c /in fieldc, out fieldx/fieldo; symbols,WIDE,define TANDEM,define HAVE_CONFIG_H,SSV0 "$system.system",SSV1 "[#defaults]"
c /in gawkmisc, out gawkmisx/gawkmiso; symbols,WIDE,define TANDEM,define HAVE_CONFIG_H,SSV0 "$system.system",SSV1 "[#defaults]"
c /in getoptc, out getoptx/getopto; symbols,WIDE,define TANDEM,define HAVE_CONFIG_H,SSV0 "$system.system",SSV1 "[#defaults]"
c /in getopt1c, out getopt1x/getopt1o;symbols,WIDE,define TANDEM,define HAVE_CONFIG_H,SSV0 "$system.system",SSV1 "[#defaults]"
c /in ioc, out iox/ioo; symbols,WIDE,define TANDEM,define HAVE_CONFIG_H,SSV0 "$system.system",SSV1 "[#defaults]"
c /in isattyc, out isattyx/isattyo; symbols,WIDE,define TANDEM,define HAVE_CONFIG_H,SSV0 "$system.system",SSV1 "[#defaults]"
c /in mainc, out mainx/maino; symbols,WIDE,define TANDEM,define HAVE_CONFIG_H,SSV0 "$system.system",SSV1 "[#defaults]"
c /in missingc, out missingx/missingo; symbols,WIDE,define TANDEM,define HAVE_CONFIG_H,SSV0 "$system.system",SSV1 "[#defaults]"
c /in msgc, out msgx/msgo; symbols,WIDE,define TANDEM,define HAVE_CONFIG_H,SSV0 "$system.system",SSV1 "[#defaults]"
c /in nodec, out nodex/nodeo; symbols,WIDE,define TANDEM,define HAVE_CONFIG_H,SSV0 "$system.system",SSV1 "[#defaults]"
c /in popenc, out popenx/popeno; symbols,WIDE,define TANDEM,define HAVE_CONFIG_H,SSV0 "$system.system",SSV1 "[#defaults]"
c /in rec, out rex/reo; symbols,WIDE,define TANDEM,define HAVE_CONFIG_H,SSV0 "$system.system",SSV1 "[#defaults]"
c /in regexc, out regexx/regexo; symbols,WIDE,define TANDEM,define HAVE_CONFIG_H,SSV0 "$system.system",SSV1 "[#defaults]"
c /in awktabc, out tawktabx/tawktabo; symbols,WIDE,define TANDEM,define HAVE_CONFIG_H,SSV0 "$system.system",SSV1 "[#defaults]"
c /in versionc, out versionx/versiono; symbols,WIDE,define TANDEM,define HAVE_CONFIG_H,SSV0 "$system.system",SSV1 "[#defaults]"
==
== then bind them
==
bind/inline,out bindout/
+ select runnable object on
+ select check parameter off
+ select list * off
+ select fixups on
+ select search $system.system.cwide
+ add * from arrayo
+ add * from allocao
+ add * from builtino
+ add * from dfao
+ add * from evalo
+ add * from fieldo
+ add * from gawkmiso
+ add * from getopto
+ add * from getopt1o
+ add * from ioo
+ add * from isattyo
+ add * from maino
+ add * from missingo
+ add * from msgo
+ add * from nodeo
+ add * from popeno
+ add * from reo
+ add * from regexo
+ add * from tawktabo
+ add * from versiono
+ set heap 5000 pages
+ build awk
+ file awk
+ info unresolved *
+ list *
INLEOF
#UNFRAME
\ No newline at end of file diff --git a/unsupported/tandem/config.h b/unsupported/tandem/config.h new file mode 100644 index 00000000..c18ae485 --- /dev/null +++ b/unsupported/tandem/config.h @@ -0,0 +1,209 @@ +/* config.h. Generated automatically by configure. */ +/* configh.in. Generated automatically from configure.in by autoheader. */ +/* + * acconfig.h -- configuration definitions for gawk. + */ + +/* + * Copyright (C) 1995-1997 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 + */ + + +/* Define if on AIX 3. + System headers sometimes define this. + We just want to avoid a redefinition error message. */ +#ifndef _ALL_SOURCE +/* #undef _ALL_SOURCE */ +#endif + +/* Define if using alloca.c. */ +#define C_ALLOCA + +/* Define if type char is unsigned and you are not using gcc. */ +#ifndef __CHAR_UNSIGNED__ +#define __CHAR_UNSIGNED__ +#endif + +/* Define to empty if the keyword does not work. */ +/* #undef const */ + +/* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems. + This function is required for alloca.c support on those systems. */ +/* #undef CRAY_STACKSEG_END */ + +/* Define to the type of elements in the array set by `getgroups'. + Usually this is either `int' or `gid_t'. */ +#define GETGROUPS_T gid_t + +/* Define if the `getpgrp' function takes no argument. */ +#define GETPGRP_VOID 1 + +/* Define to `int' if <sys/types.h> doesn't define. */ +/* #undef gid_t */ + +/* Define if you have alloca, as a function or macro. */ +#undef HAVE_ALLOCA + +/* Define if you have <alloca.h> and it should be used (not on Ultrix). */ +#undef HAVE_ALLOCA_H + +/* Define if you don't have vprintf but do have _doprnt. */ +/* #undef HAVE_DOPRNT */ + +/* Define if your struct stat has st_blksize. */ +/* #define HAVE_ST_BLKSIZE 1 */ + +/* Define if you have <sys/wait.h> that is POSIX.1 compatible. */ +#define HAVE_SYS_WAIT_H 1 + +/* Define if your struct tm has tm_zone. */ +/* #undef HAVE_TM_ZONE */ + +/* Define if you don't have tm_zone but do have the external array + tzname. */ +#define HAVE_TZNAME 1 + +/* Define if you have the vprintf function. */ +#define HAVE_VPRINTF 1 + +/* Define if on MINIX. */ +/* #undef _MINIX */ + +/* Define to `int' if <sys/types.h> doesn't define. */ +/* #undef pid_t */ + +/* Define if the system does not provide POSIX.1 features except + with this defined. */ +/* #undef _POSIX_1_SOURCE */ + +/* Define if you need to in order for stat and other things to work. */ +/* #undef _POSIX_SOURCE */ + +/* Define as the return type of signal handlers (int or void). */ +#define RETSIGTYPE void + +/* Define to `unsigned' if <sys/types.h> doesn't define. */ +/* #undef size_t */ + +/* If using the C implementation of alloca, define if you know the + direction of stack growth for your system; otherwise it will be + automatically deduced at run-time. + STACK_DIRECTION > 0 => grows toward higher addresses + STACK_DIRECTION < 0 => grows toward lower addresses + STACK_DIRECTION = 0 => direction of growth unknown + */ +/* #undef STACK_DIRECTION */ + +/* Define if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* Define if you can safely include both <sys/time.h> and <time.h>. */ +#define TIME_WITH_SYS_TIME 1 + +/* Define if your <sys/time.h> declares struct tm. */ +/* #undef TM_IN_SYS_TIME */ + +/* Define to `int' if <sys/types.h> doesn't define. */ +/* #undef uid_t */ + +#define HAVE_STRINGIZE 1 /* can use ANSI # operator in cpp */ +#define REGEX_MALLOC 1 /* use malloc instead of alloca in regex.c */ +#define SPRINTF_RET int /* return type of sprintf */ +/* #undef BITOPS */ /* bitwise ops (undocumented feature) */ +/* #undef NONDECDATA */ /* non-decimal input data (undocumented feature) */ +/* #undef HAVE_MKTIME */ /* we have the mktime function */ + +/* Define if you have the fmod function. */ +#define HAVE_FMOD + +/* 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 setlocale function. */ +#define HAVE_SETLOCALE 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 strftime function. */ +#define HAVE_STRFTIME 1 + +/* Define if you have the strncasecmp function. */ +/* Tandem doesn't have it but the file name is too long, so pretend here + and do it properly at the end of this file */ +#define HAVE_STRNCASECMP 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 tzset function. */ +#define HAVE_TZSET 1 + +/* Define if you have the <fcntl.h> header file. */ +/* #undef HAVE_FCNTL_H */ + +/* Define if you have the <limits.h> header file. */ +/* #undef HAVE_LIMITS_H */ + +/* Define if you have the <locale.h> header file. */ +/* #undef HAVE_LOCALE_H */ + +/* Define if you have the <memory.h> header file. */ +#define HAVE_MEMORY_H 1 + +/* Define if you have the <signum.h> header file. */ +/* #undef HAVE_SIGNUM_H */ + +/* Define if you have the <stdarg.h> header file. */ +#define HAVE_STDARG_H 1 + +/* Define if you have the <string.h> header file. */ +#define HAVE_STRING_H 1 + +/* Define if you have the <strings.h> header file. */ +/* #undef HAVE_STRINGS_H */ + +/* Define if you have the <sys/param.h> header file. */ +#undef HAVE_SYS_PARAM_H 1 + +/* Define if you have the <sys/time.h> header file. */ +/* #undef HAVE_SYS_TIME_H */ + +/* Define if you have the <unistd.h> header file. */ +#undef HAVE_UNISTD_H 1 + +/* Define if you have the m library (-lm). */ +/* #undef HAVE_LIBM */ + +#define HAVE_POPEN_H 1 + +#include <custom.h> /* overrides for stuff autoconf can't deal with */ diff --git a/unsupported/tandem/getid.c b/unsupported/tandem/getid.c new file mode 100644 index 00000000..f933ac62 --- /dev/null +++ b/unsupported/tandem/getid.c @@ -0,0 +1,120 @@ +#if defined _MSC_VER || defined TANDEM + +#ifndef TANDEM +#ifdef OS2 +# define INCL_DOSPROCESS +# include <os2.h> +# if _MSC_VER == 510 +# define DosGetPID DosGetPid +# endif +#else +# include <process.h> +#endif + +#ifdef OS2 +int getpid(void) +{ + PIDINFO PidInfo; + + DosGetPID(&PidInfo); + return(PidInfo.pid); +} +#endif + +int getppid(void) +{ +#ifdef OS2 + PIDINFO PidInfo; + + DosGetPID(&PidInfo); + return(PidInfo.pidParent); +#else + return(0); +#endif +} + +#endif /* TANDEM */ +#ifdef TANDEM +unsigned int getuid (void) +{ + short cret; + short cwd,pwd; + + cret = PROCESS_GETINFO_(,,,,,,,,,,&cwd,&pwd); + return ((unsigned int) (cwd & 255)); +} + +unsigned int geteuid (void) +{ + short cret; + short cwd,pwd; + + cret = PROCESS_GETINFO_(,,,,,,,,,,&cwd,&pwd); + return ((unsigned int) (pwd & 255)); +} + +unsigned int getgid (void) +{ + short cret; + short cwd,pwd; + + cret = PROCESS_GETINFO_(,,,,,,,,,,&cwd,&pwd); + return ((unsigned int) ((cwd >> 8) & 255)); +} + +unsigned int getegid (void) +{ + short cret; + short cwd,pwd; + + cret = PROCESS_GETINFO_(,,,,,,,,,,&cwd,&pwd); + return ((unsigned int) ((pwd >> 8) & 255)); +} + +int getpid(void) +{ + return (0); +} + +int getppid(void) +{ + return (0); +} + +#else +unsigned int getuid (void) +{ + return (0); /* root! */ +} + + +unsigned int geteuid (void) +{ + return (0); +} + + +unsigned int getgid (void) +{ + return (0); +} + + +unsigned int getegid (void) +{ + return (0); +} + + +char *getlogin (void) +{ + return ("root"); +} + +#endif /* TANDEM */ +#endif + +int getpgrp(void) +{ + return (0); +} diff --git a/unsupported/tandem/isatty.c b/unsupported/tandem/isatty.c new file mode 100644 index 00000000..d73d7a34 --- /dev/null +++ b/unsupported/tandem/isatty.c @@ -0,0 +1,22 @@ +#include <cextdecs(FILE_GETINFO_)> +#include <stdioh> +#include <talh> + +int isatty(int fd) +{ + short cret,sfd,typ[5]; + sfd = (short) fd; + cret = FILE_GETINFO_(sfd,,,,,&typ[0]); + if(typ[0] == 6) + return (1); + else + return (0); +} +int dup(int fd) +{ + return (fd); +} +int dup2(int fd, int fd2) +{ + return (0); +} diff --git a/unsupported/tandem/popen.c b/unsupported/tandem/popen.c new file mode 100644 index 00000000..310225d3 --- /dev/null +++ b/unsupported/tandem/popen.c @@ -0,0 +1,128 @@ +#include "popen.h" +#include <stdlib.h> +#if !defined(TANDEM) +#include <io.h> +#else +#include "config.h" +#include <fcntl.h> +#endif +#include <string.h> +#if !defined(TANDEM) +#include <process.h> +#endif + +#ifdef OS2 +#ifdef _MSC_VER +#define popen(c,m) _popen(c,m) +#define pclose(f) _pclose(f) +#endif +#endif + +#ifndef _NFILE +#define _NFILE 40 +#endif + +static char template[] = "piXXXXXX"; +typedef enum { unopened = 0, reading, writing } pipemode; +static +struct { + char *command; + char *name; + pipemode pmode; +} pipes[_NFILE]; + +FILE * +os_popen( char *command, char *mode ) { + FILE *current; + char *name; + int cur; + pipemode curmode; + +#if defined(OS2) && (_MSC_VER != 510) + if (_osmode == OS2_MODE) + return(popen(command, mode)); +#endif + + /* + ** decide on mode. + */ + if(strcmp(mode,"r") == 0) + curmode = reading; + else if(strcmp(mode,"w") == 0) + curmode = writing; + else + return NULL; + /* + ** get a name to use. + */ + if((name = tempnam(".","pip"))==NULL) + return NULL; + /* + ** If we're reading, just call system to get a file filled with + ** output. + */ + if(curmode == reading) { + if ((cur = dup(fileno(stdout))) == -1) + return NULL; + if ((current = freopen(name, "w", stdout)) == NULL) + return NULL; + system(command); + if (dup2(cur, fileno(stdout)) == -1) + return NULL; + close(cur); + if((current = fopen(name,"r")) == NULL) + return NULL; + } else { + if((current = fopen(name,"w")) == NULL) + return NULL; + } + cur = fileno(current); + pipes[cur].name = name; + pipes[cur].pmode = curmode; + pipes[cur].command = strdup(command); + return current; +} + +int +os_pclose( FILE * current) { + int cur = fileno(current),rval; + +#if defined(OS2) && (_MSC_VER != 510) + if (_osmode == OS2_MODE) + return(pclose(current)); +#endif + + /* + ** check for an open file. + */ + if(pipes[cur].pmode == unopened) + return -1; + if(pipes[cur].pmode == reading) { + /* + ** input pipes are just files we're done with. + */ + rval = fclose(current); + unlink(pipes[cur].name); + } else { + /* + ** output pipes are temporary files we have + ** to cram down the throats of programs. + */ + char command[256]; + fclose(current); +#if defined(TANDEM) + sprintf(command,"%s /IN %s/",pipes[cur].command,pipes[cur].name); +#else + sprintf(command,"%s < %s",pipes[cur].command,pipes[cur].name); +#endif + rval = system(command); + unlink(pipes[cur].name); + } + /* + ** clean up current pipe. + */ + pipes[cur].pmode = unopened; + free(pipes[cur].name); + free(pipes[cur].command); + return rval; +} diff --git a/unsupported/tandem/popen.h b/unsupported/tandem/popen.h new file mode 100644 index 00000000..18605867 --- /dev/null +++ b/unsupported/tandem/popen.h @@ -0,0 +1,20 @@ +/* + +** popen.h -- prototypes for pipe functions + +*/ + +#if !defined(FILE) + +#include <stdio.h> + +#endif + + + +extern FILE *os_popen( char *, char * ); + +extern int os_pclose( FILE * ); + +#define popen os_popen +#define pclose os_close diff --git a/unsupported/tandem/ptchlvl.h b/unsupported/tandem/ptchlvl.h new file mode 100644 index 00000000..026f4a72 --- /dev/null +++ b/unsupported/tandem/ptchlvl.h @@ -0,0 +1 @@ +#define PATCHLEVEL 0 diff --git a/unsupported/tandem/strdup.c b/unsupported/tandem/strdup.c new file mode 100644 index 00000000..45f7676c --- /dev/null +++ b/unsupported/tandem/strdup.c @@ -0,0 +1,15 @@ +/* + * strdup --- duplicate a string + * + * We supply this routine for those systems that aren't standard yet. + */ + +char * +strdup (str) +register const char *str; +{ + char *p; + + p=(char *)malloc(strlen(str)+1); + return strcpy(p,str); +} diff --git a/unsupported/tandem/strnchk.c b/unsupported/tandem/strnchk.c new file mode 100644 index 00000000..faa79c4c --- /dev/null +++ b/unsupported/tandem/strnchk.c @@ -0,0 +1,95 @@ +/* + * Copyright (c) 1987 Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that the above copyright notice and this paragraph are + * duplicated in all such forms and that any documentation, + * advertising materials, and other materials related to such + * distribution and use acknowledge that the software was developed + * by the University of California, Berkeley. The name of the + * University may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + +#if defined(LIBC_SCCS) && !defined(lint) +static char sccsid[] = "@(#)strcasecmp.c 5.6 (Berkeley) 6/27/88"; +#endif /* LIBC_SCCS and not lint */ + +#ifdef atarist +#include <sys/types.h> +#else +#define u_char unsigned char +#endif + +/* + * This array is designed for mapping upper and lower case letter + * together for a case independent comparison. The mappings are + * based upon ascii character sequences. + */ +static u_char charmap[] = { + '\000', '\001', '\002', '\003', '\004', '\005', '\006', '\007', + '\010', '\011', '\012', '\013', '\014', '\015', '\016', '\017', + '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027', + '\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037', + '\040', '\041', '\042', '\043', '\044', '\045', '\046', '\047', + '\050', '\051', '\052', '\053', '\054', '\055', '\056', '\057', + '\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067', + '\070', '\071', '\072', '\073', '\074', '\075', '\076', '\077', + '\100', '\141', '\142', '\143', '\144', '\145', '\146', '\147', + '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157', + '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167', + '\170', '\171', '\172', '\133', '\134', '\135', '\136', '\137', + '\140', '\141', '\142', '\143', '\144', '\145', '\146', '\147', + '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157', + '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167', + '\170', '\171', '\172', '\173', '\174', '\175', '\176', '\177', + '\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207', + '\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217', + '\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227', + '\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237', + '\240', '\241', '\242', '\243', '\244', '\245', '\246', '\247', + '\250', '\251', '\252', '\253', '\254', '\255', '\256', '\257', + '\260', '\261', '\262', '\263', '\264', '\265', '\266', '\267', + '\270', '\271', '\272', '\273', '\274', '\275', '\276', '\277', + '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347', + '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357', + '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\327', + '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\337', + '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347', + '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357', + '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367', + '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\377', +}; + +int +strcasecmp(s1, s2) + const char *s1, *s2; +{ + register u_char *cm = charmap, + *us1 = (u_char *)s1, + *us2 = (u_char *)s2; + + while (cm[*us1] == cm[*us2++]) + if (*us1++ == '\0') + return(0); + return(cm[*us1] - cm[*--us2]); +} + +int +strncasecmp(s1, s2, n) + const char *s1, *s2; + register size_t n; +{ + register u_char *cm = charmap, + *us1 = (u_char *)s1, + *us2 = (u_char *)s2; + + while ((long)(--n) >= 0 && cm[*us1] == cm[*us2++]) + if (*us1++ == '\0') + return(0); + return((long)n < 0 ? 0 : cm[*us1] - cm[*--us2]); +} diff --git a/unsupported/tandem/tmisc.c b/unsupported/tandem/tmisc.c new file mode 100644 index 00000000..a8db4da5 --- /dev/null +++ b/unsupported/tandem/tmisc.c @@ -0,0 +1,196 @@ + +/* os_close_on_exec --- set close on exec flag, print warning if fails */ + +void +os_close_on_exec(fd, name, what, dir) +int fd; +char *name, *what, *dir; +{ + /* no-op */ +} + +/* os_isdir --- is this an fd on a directory? */ + +#if ! defined(S_ISDIR) && defined(S_IFDIR) +#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) +#endif + +int +os_isdir(fd) +int fd; +{ + struct stat sbuf; + + return (fstat(fd, &sbuf) == 0 && S_ISDIR(sbuf.st_mode)); +} +/* + * gawkmisc.c --- miscellanious gawk routines that are OS specific. + */ + +/* + * Copyright (C) 1986, 1988, 1989, 1991 - 95 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 envsep = ';'; +char *defpath = ""; + +/* gawk_name --- pull out the "gawk" part from how the OS called us */ + +char * +gawk_name(filespec) +const char *filespec; +{ + char *p, *q; + + p = (char *) filespec; /* Sloppy... */ + + if ((q = strrchr(p, '.')) != NULL) + p = q + 1; + return p; +} + +/* os_arg_fixup --- fixup the command line */ + +void +os_arg_fixup(argcp, argvp) +int *argcp; +char ***argvp; +{ + return; +} + +/* os_devopen --- open special per-OS devices */ + +int +os_devopen(name, flag) +const char *name; +int flag; +{ + /* no-op */ + return -1; +} + +/* optimal_bufsize --- determine optimal buffer size */ + +int +optimal_bufsize(fd, stb) +int fd; +struct stat *stb; +{ + /* + * TANDEM doesn't have a stat function. + * So we just return 4096 which is the Tandem disk block size. + */ + + /* set all members to zero. */ + + memset(stb, '\0', sizeof(struct stat)); + + /* set file size to arbitrary non-zero value. */ + stb->st_size = 1; + + return 4096; +} + +/* ispath --- return true if path has directory components */ + +int +ispath(file) +const char *file; +{ + for (; *file; file++) { + switch (*file) { + case '.': + return 1; + } + } + return 0; +} + +/* isdirpunct --- return true if char is a directory separator */ + +int +isdirpunct(c) +int c; +{ + return (strchr(".\\", c) != NULL); +} + +void +initstate(i, j, k) +unsigned i; +char * j; +int k; +{ +} + +void setstate(i) +char * i; +{ +} + +/* os_close_on_exec --- set close on exec flag, print warning if fails */ + +void +os_close_on_exec(fd, name, what, dir) +int fd; +char *name, *what, *dir; +{ + /* no-op */ +} + +/* os_isdir --- is this an fd on a directory? */ + +/* can't do this on tandem, so just assume it's not a directory */ + +int +os_isdir(fd) +int fd; +{ + return 0; +} + +/* os_is_setuid --- true if running setuid root */ + +int +os_is_setuid() +{ + return 0; +} + +/* os_setbinmode --- set binary mode on file */ + +int +os_setbinmode (fd, mode) +int fd, mode; +{ + return 0; +} + +/* os_restore_mode --- restore the original mode of the console device */ + +void +os_restore_mode (fd) +int fd; +{ + /* no-op */ + return; +} |