poole@forty2.UUCP (Simon Poole) (01/08/89)
The following shar archive contains nearly (see the README) everything you need to get the recent posting of BSD more running with ST-Minix 1.1. You will need something like 300kB of space on /tmp to apply the patch to more.c with `patch'. --------------------- cut here -------------------------------- echo x - README gres '^X' '' > README << '/' X XBSD more for ST-Minix X===================== X XS.Poole 7.1.88 X XThe changes I made to the BSD more posting to get it running on XST-Minix using the ACK compiler fall into two categories: X X - ATARI-ST specific changes (all #ifdef'd with ATARI_ST) X I changed everything with respect to ST-Minix 1.1 X and not to my own version (I'm busy bringing it up to X PC 1.3 standard and fixing a LOT of bugs on the way), X even so it will not run on a stock ST-Minix 1.1 distribution X due to two problems: X - `more' reads from file descriptor 2 (stderr), but X the standard ST-Minix `init' opens stdout and stdin X only for writing: X Fix: change the modes in the open calls in X /usr/src/sttools/init.c to 2. X - the `execv' libary call doesn't pass the enviroment X of the current process to `execve' (this breaks the X `v' and `!' commands): X Fix: use the 1.3 (PC) /usr/src/lib/exec.c or fix X the standard one. X X - other bugs, mainly generous int - pointer confusion X on the behalf of the original authors X X X Have fun.... X Simon X XPS: and thanks to Bruce D. Szablak for the ST-Minix debugger! X / echo x - Makefile.cdiff gres '^X' '' > Makefile.cdiff << '/' X*** /usr/tmp/Makefile Thu Jan 7 17:31:40 1989 X--- Makefile Thu Jan 7 18:12:46 1989 X*************** X*** 16,31 **** X # X # @(#)Makefile 5.5 (Berkeley) 6/29/88 X # X! CFLAGS= -DMINIX X! LIBC= /usr/lib/libc.a X! SRCS= more.c regcompat.c tcvars.c X! OBJS= more.s regcompat.s tcvars.s X X all: more X X more: ${OBJS} ${LIBC} X! ${CC} -o $@ ${CFLAGS} ${OBJS} -ltermcap X! chmem =4096 $@ X X clean: FRC X rm -f ${OBJS} core more X--- 16,31 ---- X # X # @(#)Makefile 5.5 (Berkeley) 6/29/88 X # X! CFLAGS= -O -DATARI_ST -DACK -DMINIX X! LIBC= /usr/lib/libc.a X! SRCS= more.c regcompat.c tcvars.c X! OBJS= more.o regcompat.o tcvars.o X X all: more X X more: ${OBJS} ${LIBC} X! ${CC} -o $@ ${CFLAGS} ${OBJS} X! chmem =5000 $@ X X clean: FRC X rm -f ${OBJS} core more X*************** X*** 33,43 **** X depend: FRC X mkdep ${CFLAGS} ${SRCS} X X! install: FRC X! install -s -o bin -g bin -m 755 more ${DESTDIR}/usr/ucb/more X! rm -f ${DESTDIR}/usr/ucb/page X! ln ${DESTDIR}/usr/ucb/more ${DESTDIR}/usr/ucb/page X! install -c -o bin -g bin -m 644 more.help ${DESTDIR}/usr/lib/more.help X X lint: FRC X lint ${CFLAGS} ${SRCS} X--- 33,43 ---- X depend: FRC X mkdep ${CFLAGS} ${SRCS} X X! #install: FRC X! # install -s -o bin -g bin -m 755 more ${DESTDIR}/usr/ucb/more X! # rm -f ${DESTDIR}/usr/ucb/page X! # ln ${DESTDIR}/usr/ucb/more ${DESTDIR}/usr/ucb/page X! # install -c -o bin -g bin -m 644 more.help ${DESTDIR}/usr/lib/more.help X X lint: FRC X lint ${CFLAGS} ${SRCS} X*************** X*** 50,56 **** X # DO NOT DELETE THIS LINE -- mkdep uses it. X # DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. X X- more.s: /usr/include/a.out.h X more.s: /usr/include/ctype.h X more.s: /usr/include/errno.h X more.s: /usr/include/limits.h X--- 50,55 ---- / echo x - more.cdiff gres '^X' '' > more.cdiff << '/' X*** /usr/tmp/more.c Thu Jan 7 17:31:52 1989 X--- more.c Thu Jan 7 17:37:25 1989 X*************** X*** 45,51 **** X #include <sys/param.h> X #include <sys/file.h> X #endif X! #include <a.out.h> X #include <varargs.h> X X #ifdef MINIX X--- 45,56 ---- X #include <sys/param.h> X #include <sys/file.h> X #endif X! #ifndef ATARI_ST X! /* currently ST-Minix doesn't come with a.out.h, but X! since the check for magic numbers is disabled any- X! way, we don't need it */ X! #include <a.out.h> X! #endif X #include <varargs.h> X X #ifdef MINIX X*************** X*** 69,76 **** X #endif X X #define MBIT CBREAK X! #define stty(fd,argp) ioctl(fd,TIOCSETN,argp) X! X #define TBUFSIZ 1024 X #define LINSIZ 256 X #define ctrl(letter) (letter & 077) X--- 74,83 ---- X #endif X X #define MBIT CBREAK X! #ifndef ATARI_ST X! /* ST-Minix doesn't have TIOCSETN (yet) */ X! #define stty(fd,argp) ioctl(fd,TIOCSETN,argp) X! #endif X #define TBUFSIZ 1024 X #define LINSIZ 256 X #define ctrl(letter) (letter & 077) X*************** X*** 120,125 **** X--- 127,133 ---- X char cursorhome[40]; /* contains cursor movement to home */ X char *EodClr; /* clear rest of screen */ X char *tgetstr(); X+ char *tgoto(); X int Mcol = 80; /* number of columns */ X int Wrap = 1; /* set if automargins */ X int soglitch; /* terminal has standout mode glitch */ X*************** X*** 504,510 **** X Ungetc (c, f); X setjmp (restore); X Pause = 0; startup = 0; X! if ((num_lines = command (NULL, f)) == 0) X return; X if (hard && promptlen > 0) X erase (0); X--- 512,518 ---- X Ungetc (c, f); X setjmp (restore); X Pause = 0; startup = 0; X! if ((num_lines = command ((char *)NULL, f)) == 0) X return; X if (hard && promptlen > 0) X erase (0); X*************** X*** 588,594 **** X } X else X write (2, "\n", 1); X! _exit(0); X } X X copy_file(f) X--- 596,606 ---- X } X else X write (2, "\n", 1); X! #ifndef ATARI_ST X! _exit(0); X! #else X! exit(0); X! #endif X } X X copy_file(f) X*************** X*** 1150,1156 **** X fflush (stdout); X if (lastp) { X write (2,"\r", 1); X! search (NULL, f, nlines); /* Use previous r.e. */ X } X else { X ttyin (cmdbuf, 78, '/'); X--- 1162,1168 ---- X fflush (stdout); X if (lastp) { X write (2,"\r", 1); X! search ((char *)NULL, f, nlines);/* Use previous r.e. */ X } X else { X ttyin (cmdbuf, 78, '/'); X*************** X*** 1177,1183 **** X scanstr (Currline - dlines < 0 ? 0 X : Currline - (dlines + 1) / 2, &cmdbuf[1]); X pr ("vi "); pr (cmdbuf); putchar (' '); pr (fnames[fnum]); X! execute (filename, VI, "vi", cmdbuf, fnames[fnum], 0); X break; X } X default: X--- 1189,1195 ---- X scanstr (Currline - dlines < 0 ? 0 X : Currline - (dlines + 1) / 2, &cmdbuf[1]); X pr ("vi "); pr (cmdbuf); putchar (' '); pr (fnames[fnum]); X! execute (filename, VI, "vi", cmdbuf, fnames[fnum], (char *)0); X break; X } X default: X*************** X*** 1316,1322 **** X write (2, "\n", 1); X promptlen = 0; X shellp = 1; X! execute (filename, shell, shell, "-c", shell_line, 0); X } X X /* X--- 1328,1334 ---- X write (2, "\n", 1); X promptlen = 0; X shellp = 1; X! execute (filename, shell, shell, "-c", shell_line, (char *)0); X } X X /* X*************** X*** 1618,1624 **** X gtty(fileno(stderr), &otty); X savetty = otty; X ospeed = otty.sg_ospeed; X! slow_tty = ospeed < B1200; X hardtabs = (otty.sg_flags & TBDELAY) != XTABS; X if (!no_tty) { X otty.sg_flags &= ~ECHO; X--- 1630,1640 ---- X gtty(fileno(stderr), &otty); X savetty = otty; X ospeed = otty.sg_ospeed; X! #ifndef ATARI_ST X! slow_tty = ospeed < B1200; X! #else X! slow_tty = 0; /* FALSE */ X! #endif X hardtabs = (otty.sg_flags & TBDELAY) != XTABS; X if (!no_tty) { X otty.sg_flags &= ~ECHO; / -- ---------------------------------------------------------------------------- UUCP: ...mcvax!cernvax!forty2!poole Simon Poole BITNET: K538915@CZHRZU1A ----------------------------------------------------------------------------