#!/bin/sh # This is a shell archive (produced by GNU sharutils 4.1). # To extract the files from this archive, save it to some FILE, remove # everything before the `!/bin/sh' line above, then type `sh FILE'. # # Made on 1995-06-28 11:25 MDT by . # Source directory was `/ymir/dt/vx'. # # Existing files will *not* be overwritten unless `-c' is specified. # # This is part 1 of a multipart archive. # Do not concatenate these parts, unpack them in order with `/bin/sh'. # # This shar contains: # length mode name # ------ ---------- ------------------------------------------ # 969 -rw-r--r-- vw_curses/curses/Makefile # 1075 -rw-r--r-- vw_curses/curses/README # 1087 -rw-r--r-- vw_curses/curses/addch.c # 1170 -rw-r--r-- vw_curses/curses/addstr.c # 1155 -rw-r--r-- vw_curses/curses/clear.c # 885 -rw-r--r-- vw_curses/curses/curses.ext # 1456 -rw-r--r-- vw_curses/curses/delch.c # 1198 -rw-r--r-- vw_curses/curses/endwin.c # 1460 -rw-r--r-- vw_curses/curses/fullname.c # 1322 -rw-r--r-- vw_curses/curses/getstr.c # 1514 -rw-r--r-- vw_curses/curses/id_subwins.c # 1158 -rw-r--r-- vw_curses/curses/idlok.c # 1263 -rw-r--r-- vw_curses/curses/longname.c # 1398 -rw-r--r-- vw_curses/curses/move.c # 1500 -rw-r--r-- vw_curses/curses/printw.c # 1092 -rw-r--r-- vw_curses/curses/putchar.c # 1504 -rw-r--r-- vw_curses/curses/scroll.c # 842 -rw-r--r-- vw_curses/curses/semaphore.c # 1478 -rw-r--r-- vw_curses/curses/standout.c # 1856 -rw-r--r-- vw_curses/curses/ChangeLog # 1631 -rw-r--r-- vw_curses/curses/box.c # 1580 -rw-r--r-- vw_curses/curses/clrtobot.c # 1721 -rw-r--r-- vw_curses/curses/clrtoeol.c # 1823 -rw-r--r-- vw_curses/curses/deleteln.c # 1615 -rw-r--r-- vw_curses/curses/erase.c # 1912 -rw-r--r-- vw_curses/curses/getch.c # 1636 -rw-r--r-- vw_curses/curses/insch.c # 1789 -rw-r--r-- vw_curses/curses/insertln.c # 1631 -rw-r--r-- vw_curses/curses/mvprintw.c # 1614 -rw-r--r-- vw_curses/curses/mvscanw.c # 1828 -rw-r--r-- vw_curses/curses/mvwin.c # 2164 -rw-r--r-- vw_curses/curses/overlay.c # 2067 -rw-r--r-- vw_curses/curses/touchwin.c # 1545 -rw-r--r-- vw_curses/curses/tstp.c # 1740 -rw-r--r-- vw_curses/curses/unctrl.c # 3450 -rw-r--r-- vw_curses/curses/addbytes.c # 2236 -rw-r--r-- vw_curses/curses/curses.c # 2170 -rw-r--r-- vw_curses/curses/delwin.c # 2299 -rw-r--r-- vw_curses/curses/initscr.c # 2164 -rw-r--r-- vw_curses/curses/overwrite.c # 2770 -rw-r--r-- vw_curses/curses/scanw.c # 2261 -rw-r--r-- vw_curses/curses/toucholap.c # 5313 -rw-r--r-- vw_curses/curses/cr_tty.c # 6268 -rw-r--r-- vw_curses/curses/newwin.c # 7088 -rw-r--r-- vw_curses/curses/refresh.c # 8811 -rw-r--r-- vw_curses/curses/cr_put.c # 9692 -rw-r--r-- vw_curses/curses/curses.h # 9692 -rw-r--r-- vw_curses/h/curses.h # 37380 -rw-r--r-- vw_curses/lib/libcurses.a # 6550 -rw-r--r-- vw_curses/lib/libtermlib.a # 545 -rw-r--r-- vw_curses/termlib/Makefile # 1613 -rw-r--r-- vw_curses/termlib/README # 4365 -rw-r--r-- vw_curses/termlib/tgoto.c # 2253 -rw-r--r-- vw_curses/termlib/tputs.c # 16021 -rw-r--r-- vw_curses/termlib/termcap.c # 22333 -rw-r--r-- vw_curses/termlib/termcap # 617 -rw-r--r-- vw_curses/test/Makefile # 389 -rw-r--r-- vw_curses/test/README # 3350 -rw-r--r-- vw_curses/test/twinkle.c # 12804 -rw-r--r-- vw_curses/test/random.c # 4226 -rw-r--r-- vw_curses/README # 640 -rw-r--r-- vw_curses/README.2nd # touch -am 1231235999 $$.touch >/dev/null 2>&1 if test ! -f 1231235999 && test -f $$.touch; then shar_touch=touch else shar_touch=: echo echo 'WARNING: not restoring timestamps. Consider getting and' echo "installing GNU \`touch', distributed in GNU File Utilities..." echo fi rm -f 1231235999 $$.touch # if test -r _sharseq.tmp; then echo 'Must unpack archives in sequence!' echo Please unpack part `cat _sharseq.tmp` next exit 1 fi # ============= vw_curses/curses/Makefile ============== if test ! -d 'vw_curses'; then echo 'x - creating directory vw_curses' mkdir 'vw_curses' fi if test ! -d 'vw_curses/curses'; then echo 'x - creating directory vw_curses/curses' mkdir 'vw_curses/curses' fi if test -f 'vw_curses/curses/Makefile' && test X"$1" != X"-c"; then echo 'x - skipping vw_curses/curses/Makefile (file already exists)' rm -f _sharnew.tmp else > _sharnew.tmp echo 'x - extracting vw_curses/curses/Makefile (text)' sed 's/^X//' << 'SHAR_EOF' > 'vw_curses/curses/Makefile' && SRCS= addbytes.c addch.c addstr.c box.c clear.c clrtobot.c clrtoeol.c \ X cr_put.c cr_tty.c curses.c delch.c deleteln.c delwin.c endwin.c \ X erase.c fullname.c getch.c getstr.c idlok.c id_subwins.c initscr.c \ X insch.c insertln.c longname.c move.c mvprintw.c mvscanw.c mvwin.c \ X newwin.c overlay.c overwrite.c printw.c putchar.c refresh.c scanw.c \ X scroll.c toucholap.c standout.c touchwin.c \ X tstp.c unctrl.c semaphore.c X OBJS = $(SRCS:.c=.o) X CC= gcc68k AR= ar68k LD= ld68k INSTALL= cp -p CPPFLAGS= -DVxWorks -I$(VWDIR)/h -I../h CFLAGS= -O2 X # Root directory for VxWorks VWDIR=/vx X # Where to install things DESTDIR=../lib X X X.c.o: X $(CC) $(CFLAGS) $(CPPFLAGS) -c $*.c X @$(LD) -x -r $*.o X @mv a.out $*.o X ${AR} ruv libcurses.a $*.o X all: $(OBJS) X install: all X ranlib68k libcurses.a X $(INSTALL) libcurses.a ${DESTDIR} X $(INSTALL) curses.h ../h/curses.h X clean: force X rm -f ${OBJS} libcurses.a X depend: force X makedepend -- ${CPPFLAGS} ${CFLAGS} -- ${SRCS} X force: X SHAR_EOF $shar_touch -am 0627105695 'vw_curses/curses/Makefile' && chmod 0644 'vw_curses/curses/Makefile' || echo 'restore of vw_curses/curses/Makefile failed' shar_count="`wc -c < 'vw_curses/curses/Makefile'`" test 969 -eq "$shar_count" || echo "vw_curses/curses/Makefile: original size 969, current size $shar_count" rm -f _sharnew.tmp fi # ============= vw_curses/curses/README ============== if test -f 'vw_curses/curses/README' && test X"$1" != X"-c"; then echo 'x - skipping vw_curses/curses/README (file already exists)' rm -f _sharnew.tmp else > _sharnew.tmp echo 'x - extracting vw_curses/curses/README (text)' sed 's/^X//' << 'SHAR_EOF' > 'vw_curses/curses/README' && This is curses for VxWorks 4.0.2. X Curses allows you to manage text windows nicely, including scrolling of arbitrary rectangular text regions, overlapping windows, etc. X For the VxWorks version, I added semaphore locking to curses so that multiple processes can use it. X Usual disclaimer: This software is provided ``as is'' and without any express or implied warranties. My employer (ISTS) is in no way responsible for its contents. Any bugs you encounter you will have to fix yourself. X Caution: The curses.h include file defines the preprocessor macros OK and ERR. Unfortunately, VxWorks also defines OK, and does so differently. My solution has been to use VX_OK for VxWorks instead (see h/stdio.h), and let curses have OK. You may want to do things the other way around, so I also define CURSES_OK. Your code must then fix the OK macro after #including curses.h. X Good luck. If you have any questions, improvements, bug fixes, etc. send them to georg@sgl.ists.ca. X Georg Feil Space Geodynamics Laboratory ISTS, 2700 Steeles Ave West Concord, Ontario (416) 665-5458 SHAR_EOF $shar_touch -am 0627091195 'vw_curses/curses/README' && chmod 0644 'vw_curses/curses/README' || echo 'restore of vw_curses/curses/README failed' shar_count="`wc -c < 'vw_curses/curses/README'`" test 1075 -eq "$shar_count" || echo "vw_curses/curses/README: original size 1075, current size $shar_count" rm -f _sharnew.tmp fi # ============= vw_curses/curses/addch.c ============== if test -f 'vw_curses/curses/addch.c' && test X"$1" != X"-c"; then echo 'x - skipping vw_curses/curses/addch.c (file already exists)' rm -f _sharnew.tmp else > _sharnew.tmp echo 'x - extracting vw_curses/curses/addch.c (text)' sed 's/^X//' << 'SHAR_EOF' > 'vw_curses/curses/addch.c' && /* X * Copyright (c) 1981 Regents of the University of California. X * All rights reserved. X * X * Redistribution and use in source and binary forms are permitted X * provided that the above copyright notice and this paragraph are X * duplicated in all such forms and that any documentation, X * advertising materials, and other materials related to such X * distribution and use acknowledge that the software was developed X * by the University of California, Berkeley. The name of the X * University may not be used to endorse or promote products derived X * from this software without specific prior written permission. X * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR X * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED X * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. X */ X #ifndef lint static char sccsid[] = "@(#)addch.c 5.4 (Berkeley) 6/30/88"; #endif /* not lint */ X # include "curses.ext" X /* X * This routine adds the character to the current position X * X */ waddch(win, c) WINDOW *win; char c; { X return waddbytes(win, &c, 1); } SHAR_EOF $shar_touch -am 0627091195 'vw_curses/curses/addch.c' && chmod 0644 'vw_curses/curses/addch.c' || echo 'restore of vw_curses/curses/addch.c failed' shar_count="`wc -c < 'vw_curses/curses/addch.c'`" test 1087 -eq "$shar_count" || echo "vw_curses/curses/addch.c: original size 1087, current size $shar_count" rm -f _sharnew.tmp fi # ============= vw_curses/curses/addstr.c ============== if test -f 'vw_curses/curses/addstr.c' && test X"$1" != X"-c"; then echo 'x - skipping vw_curses/curses/addstr.c (file already exists)' rm -f _sharnew.tmp else > _sharnew.tmp echo 'x - extracting vw_curses/curses/addstr.c (text)' sed 's/^X//' << 'SHAR_EOF' > 'vw_curses/curses/addstr.c' && /* X * Copyright (c) 1981 Regents of the University of California. X * All rights reserved. X * X * Redistribution and use in source and binary forms are permitted X * provided that the above copyright notice and this paragraph are X * duplicated in all such forms and that any documentation, X * advertising materials, and other materials related to such X * distribution and use acknowledge that the software was developed X * by the University of California, Berkeley. The name of the X * University may not be used to endorse or promote products derived X * from this software without specific prior written permission. X * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR X * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED X * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. X */ X #ifndef lint static char sccsid[] = "@(#)addstr.c 5.4 (Berkeley) 6/30/88"; #endif /* not lint */ X # include "curses.ext" X /* X * This routine adds a string starting at (_cury,_curx) X * X */ waddstr(win,str) reg WINDOW *win; reg char *str; { # ifdef DEBUG X fprintf(outf, "WADDSTR(\"%s\")\n", str); # endif X return waddbytes(win, str, strlen(str)); } SHAR_EOF $shar_touch -am 0627091195 'vw_curses/curses/addstr.c' && chmod 0644 'vw_curses/curses/addstr.c' || echo 'restore of vw_curses/curses/addstr.c failed' shar_count="`wc -c < 'vw_curses/curses/addstr.c'`" test 1170 -eq "$shar_count" || echo "vw_curses/curses/addstr.c: original size 1170, current size $shar_count" rm -f _sharnew.tmp fi # ============= vw_curses/curses/clear.c ============== if test -f 'vw_curses/curses/clear.c' && test X"$1" != X"-c"; then echo 'x - skipping vw_curses/curses/clear.c (file already exists)' rm -f _sharnew.tmp else > _sharnew.tmp echo 'x - extracting vw_curses/curses/clear.c (text)' sed 's/^X//' << 'SHAR_EOF' > 'vw_curses/curses/clear.c' && /* X * Copyright (c) 1981 Regents of the University of California. X * All rights reserved. X * X * Redistribution and use in source and binary forms are permitted X * provided that the above copyright notice and this paragraph are X * duplicated in all such forms and that any documentation, X * advertising materials, and other materials related to such X * distribution and use acknowledge that the software was developed X * by the University of California, Berkeley. The name of the X * University may not be used to endorse or promote products derived X * from this software without specific prior written permission. X * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR X * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED X * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. X */ X #ifndef lint static char sccsid[] = "@(#)clear.c 5.3 (Berkeley) 6/30/88"; #endif /* not lint */ X # include "curses.ext" X /* X * This routine clears the window. X * X */ wclear(win) reg WINDOW *win; { X X curses_P(); X X if (win == NULL) { X curses_V(); X return ERR; X } X X werase(win); X win->_clear = TRUE; X X curses_V(); X return OK; } SHAR_EOF $shar_touch -am 0627091195 'vw_curses/curses/clear.c' && chmod 0644 'vw_curses/curses/clear.c' || echo 'restore of vw_curses/curses/clear.c failed' shar_count="`wc -c < 'vw_curses/curses/clear.c'`" test 1155 -eq "$shar_count" || echo "vw_curses/curses/clear.c: original size 1155, current size $shar_count" rm -f _sharnew.tmp fi # ============= vw_curses/curses/curses.ext ============== if test -f 'vw_curses/curses/curses.ext' && test X"$1" != X"-c"; then echo 'x - skipping vw_curses/curses/curses.ext (file already exists)' rm -f _sharnew.tmp else > _sharnew.tmp echo 'x - extracting vw_curses/curses/curses.ext (text)' sed 's/^X//' << 'SHAR_EOF' > 'vw_curses/curses/curses.ext' && /* X * Copyright (c) 1981 Regents of the University of California. X * All rights reserved. X * X * Redistribution and use in source and binary forms are permitted X * provided that this notice is preserved and that due credit is given X * to the University of California at Berkeley. The name of the University X * may not be used to endorse or promote products derived from this X * software without specific prior written permission. This software X * is provided ``as is'' without express or implied warranty. X * X * @(#)curses.ext 5.4 (Berkeley) 6/8/88 X */ X /* X * External variables for the curses library X */ X /* LINTLIBRARY */ X # include "curses.h" X extern bool _echoit, _rawmode, My_term, _endwin; X extern char ttytype[50], *_unctrl[]; X extern int _tty_ch, LINES, COLS; X #ifndef VxWorks extern SGTTY _tty; #endif X char _putchar(); X #ifdef DEBUG # define outf _outf X FILE *outf; #endif SHAR_EOF $shar_touch -am 0627091195 'vw_curses/curses/curses.ext' && chmod 0644 'vw_curses/curses/curses.ext' || echo 'restore of vw_curses/curses/curses.ext failed' shar_count="`wc -c < 'vw_curses/curses/curses.ext'`" test 885 -eq "$shar_count" || echo "vw_curses/curses/curses.ext: original size 885, current size $shar_count" rm -f _sharnew.tmp fi # ============= vw_curses/curses/delch.c ============== if test -f 'vw_curses/curses/delch.c' && test X"$1" != X"-c"; then echo 'x - skipping vw_curses/curses/delch.c (file already exists)' rm -f _sharnew.tmp else > _sharnew.tmp echo 'x - extracting vw_curses/curses/delch.c (text)' sed 's/^X//' << 'SHAR_EOF' > 'vw_curses/curses/delch.c' && /* X * Copyright (c) 1981 Regents of the University of California. X * All rights reserved. X * X * Redistribution and use in source and binary forms are permitted X * provided that the above copyright notice and this paragraph are X * duplicated in all such forms and that any documentation, X * advertising materials, and other materials related to such X * distribution and use acknowledge that the software was developed X * by the University of California, Berkeley. The name of the X * University may not be used to endorse or promote products derived X * from this software without specific prior written permission. X * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR X * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED X * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. X */ X #ifndef lint static char sccsid[] = "@(#)delch.c 5.3 (Berkeley) 6/30/88"; #endif /* not lint */ X # include "curses.ext" X /* X * This routine performs an insert-char on the line, leaving X * (_cury,_curx) unchanged. X * X */ wdelch(win) reg WINDOW *win; { X X reg char *temp1, *temp2; X reg char *end; X reg int lch; X X curses_P(); X X if (win == NULL) { X curses_V(); X return ERR; X } X X end = &win->_y[win->_cury][win->_maxx - 1]; X temp1 = &win->_y[win->_cury][win->_curx]; X temp2 = temp1 + 1; X while (temp1 < end) X *temp1++ = *temp2++; X *temp1 = ' '; X touchline(win, win->_cury, win->_curx, win->_maxx - 1); X X curses_V(); X return OK; } SHAR_EOF $shar_touch -am 0627091195 'vw_curses/curses/delch.c' && chmod 0644 'vw_curses/curses/delch.c' || echo 'restore of vw_curses/curses/delch.c failed' shar_count="`wc -c < 'vw_curses/curses/delch.c'`" test 1456 -eq "$shar_count" || echo "vw_curses/curses/delch.c: original size 1456, current size $shar_count" rm -f _sharnew.tmp fi # ============= vw_curses/curses/endwin.c ============== if test -f 'vw_curses/curses/endwin.c' && test X"$1" != X"-c"; then echo 'x - skipping vw_curses/curses/endwin.c (file already exists)' rm -f _sharnew.tmp else > _sharnew.tmp echo 'x - extracting vw_curses/curses/endwin.c (text)' sed 's/^X//' << 'SHAR_EOF' > 'vw_curses/curses/endwin.c' && /* X * Copyright (c) 1981 Regents of the University of California. X * All rights reserved. X * X * Redistribution and use in source and binary forms are permitted X * provided that the above copyright notice and this paragraph are X * duplicated in all such forms and that any documentation, X * advertising materials, and other materials related to such X * distribution and use acknowledge that the software was developed X * by the University of California, Berkeley. The name of the X * University may not be used to endorse or promote products derived X * from this software without specific prior written permission. X * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR X * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED X * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. X */ X #ifndef lint static char sccsid[] = "@(#)endwin.c 5.3 (Berkeley) 6/30/88"; #endif /* not lint */ X /* X * Clean things up before exiting X * X */ X # include "curses.ext" X endwin() { X curses_P(); X X resetty(); X _puts(VE); X _puts(TE); X if (curscr) { X if (curscr->_flags & _STANDOUT) { X _puts(SE); X curscr->_flags &= ~_STANDOUT; X } X _endwin = TRUE; X } X curses_semshutdown(); } SHAR_EOF $shar_touch -am 0627091195 'vw_curses/curses/endwin.c' && chmod 0644 'vw_curses/curses/endwin.c' || echo 'restore of vw_curses/curses/endwin.c failed' shar_count="`wc -c < 'vw_curses/curses/endwin.c'`" test 1198 -eq "$shar_count" || echo "vw_curses/curses/endwin.c: original size 1198, current size $shar_count" rm -f _sharnew.tmp fi # ============= vw_curses/curses/fullname.c ============== if test -f 'vw_curses/curses/fullname.c' && test X"$1" != X"-c"; then echo 'x - skipping vw_curses/curses/fullname.c (file already exists)' rm -f _sharnew.tmp else > _sharnew.tmp echo 'x - extracting vw_curses/curses/fullname.c (text)' sed 's/^X//' << 'SHAR_EOF' > 'vw_curses/curses/fullname.c' && /* X * Copyright (c) 1981 Regents of the University of California. X * All rights reserved. X * X * Redistribution and use in source and binary forms are permitted X * provided that the above copyright notice and this paragraph are X * duplicated in all such forms and that any documentation, X * advertising materials, and other materials related to such X * distribution and use acknowledge that the software was developed X * by the University of California, Berkeley. The name of the X * University may not be used to endorse or promote products derived X * from this software without specific prior written permission. X * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR X * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED X * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. X */ X #ifndef lint static char sccsid[] = "@(#)fullname.c 5.3 (Berkeley) 6/30/88"; #endif /* not lint */ X # define reg register X /* X * This routine fills in "def" with the full name of the terminal. X * This is assumed to be the last name in the list of aliases. X * X */ char * fullname(bp, def) reg char *bp, *def; { X X reg char *cp; X X *def = 0; /* in case no name */ X X while (*bp && *bp != ':') { X cp = def; /* start of answer */ X while (*bp && *bp != ':' && *bp != '|') { X *cp++ = *bp++; /* copy name over */ X } X *cp = 0; /* zero end of name */ X if (*bp == '|') { X bp++; /* skip over '|' if that is case */ X } X } X return(def); } SHAR_EOF $shar_touch -am 0627091195 'vw_curses/curses/fullname.c' && chmod 0644 'vw_curses/curses/fullname.c' || echo 'restore of vw_curses/curses/fullname.c failed' shar_count="`wc -c < 'vw_curses/curses/fullname.c'`" test 1460 -eq "$shar_count" || echo "vw_curses/curses/fullname.c: original size 1460, current size $shar_count" rm -f _sharnew.tmp fi # ============= vw_curses/curses/getstr.c ============== if test -f 'vw_curses/curses/getstr.c' && test X"$1" != X"-c"; then echo 'x - skipping vw_curses/curses/getstr.c (file already exists)' rm -f _sharnew.tmp else > _sharnew.tmp echo 'x - extracting vw_curses/curses/getstr.c (text)' sed 's/^X//' << 'SHAR_EOF' > 'vw_curses/curses/getstr.c' && /* X * Copyright (c) 1981 Regents of the University of California. X * All rights reserved. X * X * Redistribution and use in source and binary forms are permitted X * provided that the above copyright notice and this paragraph are X * duplicated in all such forms and that any documentation, X * advertising materials, and other materials related to such X * distribution and use acknowledge that the software was developed X * by the University of California, Berkeley. The name of the X * University may not be used to endorse or promote products derived X * from this software without specific prior written permission. X * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR X * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED X * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. X */ X #ifndef lint static char sccsid[] = "@(#)getstr.c 5.3 (Berkeley) 6/30/88"; #endif /* not lint */ X # include "curses.ext" X /* X * This routine gets a string starting at (_cury,_curx) X * Note: do not add semaphore locking here! wgetch() must be able X * to release semaphore for blocking read. X */ wgetstr(win,str) reg WINDOW *win; reg char *str; { X X while ((*str = wgetch(win)) != ERR && *str != '\n') X str++; X if (*str == ERR) { X *str = '\0'; X return ERR; X } X *str = '\0'; X return OK; } SHAR_EOF $shar_touch -am 0627091195 'vw_curses/curses/getstr.c' && chmod 0644 'vw_curses/curses/getstr.c' || echo 'restore of vw_curses/curses/getstr.c failed' shar_count="`wc -c < 'vw_curses/curses/getstr.c'`" test 1322 -eq "$shar_count" || echo "vw_curses/curses/getstr.c: original size 1322, current size $shar_count" rm -f _sharnew.tmp fi # ============= vw_curses/curses/id_subwins.c ============== if test -f 'vw_curses/curses/id_subwins.c' && test X"$1" != X"-c"; then echo 'x - skipping vw_curses/curses/id_subwins.c (file already exists)' rm -f _sharnew.tmp else > _sharnew.tmp echo 'x - extracting vw_curses/curses/id_subwins.c (text)' sed 's/^X//' << 'SHAR_EOF' > 'vw_curses/curses/id_subwins.c' && /* X * Copyright (c) 1981 Regents of the University of California. X * All rights reserved. X * X * Redistribution and use in source and binary forms are permitted X * provided that the above copyright notice and this paragraph are X * duplicated in all such forms and that any documentation, X * advertising materials, and other materials related to such X * distribution and use acknowledge that the software was developed X * by the University of California, Berkeley. The name of the X * University may not be used to endorse or promote products derived X * from this software without specific prior written permission. X * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR X * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED X * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. X */ X #ifndef lint static char sccsid[] = "@(#)id_subwins.c 5.3 (Berkeley) 6/30/88"; #endif /* not lint */ X # include "curses.ext" X /* X * _id_subwins: X * Re-sync the pointers to _y for all the subwindows. X * X */ _id_subwins(orig) register WINDOW *orig; { X register WINDOW *win; X register int realy; X register int y, oy, x; X X realy = orig->_begy + orig->_cury; X for (win = orig->_nextp; win != orig; win = win->_nextp) { X /* X * If the window ends before our current position, X * don't need to do anything. X */ X if (win->_begy + win->_maxy <= realy) X continue; X X oy = orig->_cury; X for (y = realy - win->_begy; y < win->_maxy; y++, oy++) X win->_y[y] = &orig->_y[oy][win->_ch_off]; X } } SHAR_EOF $shar_touch -am 0627091195 'vw_curses/curses/id_subwins.c' && chmod 0644 'vw_curses/curses/id_subwins.c' || echo 'restore of vw_curses/curses/id_subwins.c failed' shar_count="`wc -c < 'vw_curses/curses/id_subwins.c'`" test 1514 -eq "$shar_count" || echo "vw_curses/curses/id_subwins.c: original size 1514, current size $shar_count" rm -f _sharnew.tmp fi # ============= vw_curses/curses/idlok.c ============== if test -f 'vw_curses/curses/idlok.c' && test X"$1" != X"-c"; then echo 'x - skipping vw_curses/curses/idlok.c (file already exists)' rm -f _sharnew.tmp else > _sharnew.tmp echo 'x - extracting vw_curses/curses/idlok.c (text)' sed 's/^X//' << 'SHAR_EOF' > 'vw_curses/curses/idlok.c' && /* X * Copyright (c) 1981 Regents of the University of California. X * All rights reserved. X * X * Redistribution and use in source and binary forms are permitted X * provided that the above copyright notice and this paragraph are X * duplicated in all such forms and that any documentation, X * advertising materials, and other materials related to such X * distribution and use acknowledge that the software was developed X * by the University of California, Berkeley. The name of the X * University may not be used to endorse or promote products derived X * from this software without specific prior written permission. X * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR X * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED X * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. X */ X #ifndef lint static char sccsid[] = "@(#)idlok.c 5.3 (Berkeley) 6/30/88"; #endif /* not lint */ X # include "curses.ext" X /* X * idlok: X * Turn on and off using insert/deleteln sequences for the given X * window. X * X */ idlok(win, bf) register WINDOW *win; bool bf; { X if (bf) X win->_flags |= _IDLINE; X else X win->_flags &= ~_IDLINE; } SHAR_EOF $shar_touch -am 0627091195 'vw_curses/curses/idlok.c' && chmod 0644 'vw_curses/curses/idlok.c' || echo 'restore of vw_curses/curses/idlok.c failed' shar_count="`wc -c < 'vw_curses/curses/idlok.c'`" test 1158 -eq "$shar_count" || echo "vw_curses/curses/idlok.c: original size 1158, current size $shar_count" rm -f _sharnew.tmp fi # ============= vw_curses/curses/longname.c ============== if test -f 'vw_curses/curses/longname.c' && test X"$1" != X"-c"; then echo 'x - skipping vw_curses/curses/longname.c (file already exists)' rm -f _sharnew.tmp else > _sharnew.tmp echo 'x - extracting vw_curses/curses/longname.c (text)' sed 's/^X//' << 'SHAR_EOF' > 'vw_curses/curses/longname.c' && /* X * Copyright (c) 1981 Regents of the University of California. X * All rights reserved. X * X * Redistribution and use in source and binary forms are permitted X * provided that the above copyright notice and this paragraph are X * duplicated in all such forms and that any documentation, X * advertising materials, and other materials related to such X * distribution and use acknowledge that the software was developed X * by the University of California, Berkeley. The name of the X * University may not be used to endorse or promote products derived X * from this software without specific prior written permission. X * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR X * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED X * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. X */ X #ifndef lint static char sccsid[] = "@(#)longname.c 5.3 (Berkeley) 6/30/88"; #endif /* not lint */ X # define reg register X /* X * This routine fills in "def" with the long name of the terminal. X * X */ char * longname(bp, def) reg char *bp, *def; { X X reg char *cp; X X while (*bp && *bp != ':' && *bp != '|') X bp++; X if (*bp == '|') { X bp++; X cp = def; X while (*bp && *bp != ':' && *bp != '|') X *cp++ = *bp++; X *cp = 0; X } X return def; } SHAR_EOF $shar_touch -am 0627091195 'vw_curses/curses/longname.c' && chmod 0644 'vw_curses/curses/longname.c' || echo 'restore of vw_curses/curses/longname.c failed' shar_count="`wc -c < 'vw_curses/curses/longname.c'`" test 1263 -eq "$shar_count" || echo "vw_curses/curses/longname.c: original size 1263, current size $shar_count" rm -f _sharnew.tmp fi # ============= vw_curses/curses/move.c ============== if test -f 'vw_curses/curses/move.c' && test X"$1" != X"-c"; then echo 'x - skipping vw_curses/curses/move.c (file already exists)' rm -f _sharnew.tmp else > _sharnew.tmp echo 'x - extracting vw_curses/curses/move.c (text)' sed 's/^X//' << 'SHAR_EOF' > 'vw_curses/curses/move.c' && /* X * Copyright (c) 1981 Regents of the University of California. X * All rights reserved. X * X * Redistribution and use in source and binary forms are permitted X * provided that the above copyright notice and this paragraph are X * duplicated in all such forms and that any documentation, X * advertising materials, and other materials related to such X * distribution and use acknowledge that the software was developed X * by the University of California, Berkeley. The name of the X * University may not be used to endorse or promote products derived X * from this software without specific prior written permission. X * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR X * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED X * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. X */ X #ifndef lint static char sccsid[] = "@(#)move.c 5.4 (Berkeley) 6/30/88"; #endif /* not lint */ X # include "curses.ext" X /* X * This routine moves the cursor to the given point X * X */ wmove(win, y, x) reg WINDOW *win; reg int y, x; { X X curses_P(); X X if (win == NULL) { X curses_V(); X return ERR; X } X # ifdef DEBUG X fprintf(outf, "MOVE to (%d, %d)\n", y, x); # endif X if (x < 0 || y < 0) { X curses_V(); X return ERR; X } X if (x >= win->_maxx || y >= win->_maxy) { X curses_V(); X return ERR; X } X win->_curx = x; X win->_cury = y; X X curses_V(); X return OK; } SHAR_EOF $shar_touch -am 0627091195 'vw_curses/curses/move.c' && chmod 0644 'vw_curses/curses/move.c' || echo 'restore of vw_curses/curses/move.c failed' shar_count="`wc -c < 'vw_curses/curses/move.c'`" test 1398 -eq "$shar_count" || echo "vw_curses/curses/move.c: original size 1398, current size $shar_count" rm -f _sharnew.tmp fi # ============= vw_curses/curses/printw.c ============== if test -f 'vw_curses/curses/printw.c' && test X"$1" != X"-c"; then echo 'x - skipping vw_curses/curses/printw.c (file already exists)' rm -f _sharnew.tmp else > _sharnew.tmp echo 'x - extracting vw_curses/curses/printw.c (text)' sed 's/^X//' << 'SHAR_EOF' > 'vw_curses/curses/printw.c' && /* X * Copyright (c) 1981 Regents of the University of California. X * All rights reserved. X * X * Redistribution and use in source and binary forms are permitted X * provided that the above copyright notice and this paragraph are X * duplicated in all such forms and that any documentation, X * advertising materials, and other materials related to such X * distribution and use acknowledge that the software was developed X * by the University of California, Berkeley. The name of the X * University may not be used to endorse or promote products derived X * from this software without specific prior written permission. X * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR X * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED X * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. X */ X #ifndef lint static char sccsid[] = "@(#)printw.c 5.4 (Berkeley) 6/30/88"; #endif /* not lint */ X /* X * printw and friends X * X */ X # include "curses.ext" X /* X * This routine implements a printf on the standard screen. X * Locking not needed at this level. X */ printw(fmt, args) char *fmt; int args; { X X char buf[512]; X X (void) vsprintf(buf, fmt, &args); X return waddstr(stdscr, buf); } X /* X * This routine implements a printf on the given window. X * Locking not needed at this level. X */ wprintw(win, fmt, args) WINDOW *win; char *fmt; int args; { X X char buf[512]; X X if (win == NULL) X return ERR; X X (void) vsprintf(buf, fmt, &args); X return waddstr(win, buf); } SHAR_EOF $shar_touch -am 0627091195 'vw_curses/curses/printw.c' && chmod 0644 'vw_curses/curses/printw.c' || echo 'restore of vw_curses/curses/printw.c failed' shar_count="`wc -c < 'vw_curses/curses/printw.c'`" test 1500 -eq "$shar_count" || echo "vw_curses/curses/printw.c: original size 1500, current size $shar_count" rm -f _sharnew.tmp fi # ============= vw_curses/curses/putchar.c ============== if test -f 'vw_curses/curses/putchar.c' && test X"$1" != X"-c"; then echo 'x - skipping vw_curses/curses/putchar.c (file already exists)' rm -f _sharnew.tmp else > _sharnew.tmp echo 'x - extracting vw_curses/curses/putchar.c (text)' sed 's/^X//' << 'SHAR_EOF' > 'vw_curses/curses/putchar.c' && /* X * Copyright (c) 1981 Regents of the University of California. X * All rights reserved. X * X * Redistribution and use in source and binary forms are permitted X * provided that the above copyright notice and this paragraph are X * duplicated in all such forms and that any documentation, X * advertising materials, and other materials related to such X * distribution and use acknowledge that the software was developed X * by the University of California, Berkeley. The name of the X * University may not be used to endorse or promote products derived X * from this software without specific prior written permission. X * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR X * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED X * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. X */ X #ifndef lint static char sccsid[] = "@(#)putchar.c 5.3 (Berkeley) 6/30/88"; #endif /* not lint */ X # include "curses.ext" X char _putchar(c) reg char c; { X putchar(c); /* X printf("_P(%s)", unctrl(c)); */ #ifdef DEBUG X fprintf(outf, "_PUTCHAR(%s)\n", unctrl(c)); #endif } SHAR_EOF $shar_touch -am 0627091195 'vw_curses/curses/putchar.c' && chmod 0644 'vw_curses/curses/putchar.c' || echo 'restore of vw_curses/curses/putchar.c failed' shar_count="`wc -c < 'vw_curses/curses/putchar.c'`" test 1092 -eq "$shar_count" || echo "vw_curses/curses/putchar.c: original size 1092, current size $shar_count" rm -f _sharnew.tmp fi # ============= vw_curses/curses/scroll.c ============== if test -f 'vw_curses/curses/scroll.c' && test X"$1" != X"-c"; then echo 'x - skipping vw_curses/curses/scroll.c (file already exists)' rm -f _sharnew.tmp else > _sharnew.tmp echo 'x - extracting vw_curses/curses/scroll.c (text)' sed 's/^X//' << 'SHAR_EOF' > 'vw_curses/curses/scroll.c' && /* X * Copyright (c) 1981 Regents of the University of California. X * All rights reserved. X * X * Redistribution and use in source and binary forms are permitted X * provided that the above copyright notice and this paragraph are X * duplicated in all such forms and that any documentation, X * advertising materials, and other materials related to such X * distribution and use acknowledge that the software was developed X * by the University of California, Berkeley. The name of the X * University may not be used to endorse or promote products derived X * from this software without specific prior written permission. X * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR X * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED X * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. X */ X #ifndef lint static char sccsid[] = "@(#)scroll.c 5.3 (Berkeley) 6/30/88"; #endif /* not lint */ X # include "curses.ext" X /* X * This routine scrolls the window up a line. X * X */ scroll(win) register WINDOW *win; { X register int oy, ox; X # ifdef DEBUG X fprintf(outf, "SCROLL(%0.2o)\n", win); # endif X X curses_P(); X X if (win == NULL) { X curses_V(); X return ERR; X } X X if (!win->_scroll) { X curses_V(); X return ERR; X } X X getyx(win, oy, ox); X wmove(win, 0, 0); X wdeleteln(win); X wmove(win, oy, ox); X X if (win == curscr) { X _putchar('\n'); X if (!NONL) X win->_curx = 0; # ifdef DEBUG X fprintf(outf, "SCROLL: win == curscr\n"); # endif X } X X curses_V(); X return OK; } SHAR_EOF $shar_touch -am 0627091195 'vw_curses/curses/scroll.c' && chmod 0644 'vw_curses/curses/scroll.c' || echo 'restore of vw_curses/curses/scroll.c failed' shar_count="`wc -c < 'vw_curses/curses/scroll.c'`" test 1504 -eq "$shar_count" || echo "vw_curses/curses/scroll.c: original size 1504, current size $shar_count" rm -f _sharnew.tmp fi # ============= vw_curses/curses/semaphore.c ============== if test -f 'vw_curses/curses/semaphore.c' && test X"$1" != X"-c"; then echo 'x - skipping vw_curses/curses/semaphore.c (file already exists)' rm -f _sharnew.tmp else > _sharnew.tmp echo 'x - extracting vw_curses/curses/semaphore.c (text)' sed 's/^X//' << 'SHAR_EOF' > 'vw_curses/curses/semaphore.c' && #ifndef lint static char sccsid[] = "@(#)semaphore.c (ISTS) 8/27/90"; #endif /* not lint */ X # include # include # include # include X # include "curses.ext" X /* X * These are the semaphore P (take) and V (give) routines.vxman semClear X The extra handling X * of lock_id and lock_skp allows "locked" routines to be called from X * within other "locked" routines, even recursive calls. X */ X static SEM_ID curses_lock; /* Curses global locking semaphore */ X int curses_seminit() { X curses_lock=semMCreate(SEM_Q_FIFO|SEM_DELETE_SAFE); X if (curses_lock==NULL) X return(ERR); X X return(OK); } X int curses_semshutdown() { X semDelete(curses_lock); X return(OK); } X STATUS curses_P() { X return(semTake(curses_lock,WAIT_FOREVER)); } X STATUS curses_V() { X return(semGive(curses_lock)); } SHAR_EOF $shar_touch -am 0627093695 'vw_curses/curses/semaphore.c' && chmod 0644 'vw_curses/curses/semaphore.c' || echo 'restore of vw_curses/curses/semaphore.c failed' shar_count="`wc -c < 'vw_curses/curses/semaphore.c'`" test 842 -eq "$shar_count" || echo "vw_curses/curses/semaphore.c: original size 842, current size $shar_count" rm -f _sharnew.tmp fi # ============= vw_curses/curses/standout.c ============== if test -f 'vw_curses/curses/standout.c' && test X"$1" != X"-c"; then echo 'x - skipping vw_curses/curses/standout.c (file already exists)' rm -f _sharnew.tmp else > _sharnew.tmp echo 'x - extracting vw_curses/curses/standout.c (text)' sed 's/^X//' << 'SHAR_EOF' > 'vw_curses/curses/standout.c' && /* X * Copyright (c) 1981 Regents of the University of California. X * All rights reserved. X * X * Redistribution and use in source and binary forms are permitted X * provided that the above copyright notice and this paragraph are X * duplicated in all such forms and that any documentation, X * advertising materials, and other materials related to such X * distribution and use acknowledge that the software was developed X * by the University of California, Berkeley. The name of the X * University may not be used to endorse or promote products derived X * from this software without specific prior written permission. X * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR X * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED X * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. X */ X #ifndef lint static char sccsid[] = "@(#)standout.c 5.3 (Berkeley) 6/30/88"; #endif /* not lint */ X /* X * routines dealing with entering and exiting standout mode X * X */ X # include "curses.ext" X /* X * enter standout mode X */ int wstandout(win) reg WINDOW *win; { X if (!SO && !UC) X return FALSE; X X curses_P(); X X if (win == NULL) { X curses_V(); X return FALSE; X } X X win->_flags |= _STANDOUT; X X curses_V(); X return 1; } X /* X * exit standout mode X */ int wstandend(win) reg WINDOW *win; { X if (!SO && !UC) X return FALSE; X X curses_P(); X X if (win == NULL) { X curses_V(); X return FALSE; X } X X win->_flags &= ~_STANDOUT; X X curses_V(); X return 1; } SHAR_EOF $shar_touch -am 0627105295 'vw_curses/curses/standout.c' && chmod 0644 'vw_curses/curses/standout.c' || echo 'restore of vw_curses/curses/standout.c failed' shar_count="`wc -c < 'vw_curses/curses/standout.c'`" test 1478 -eq "$shar_count" || echo "vw_curses/curses/standout.c: original size 1478, current size $shar_count" rm -f _sharnew.tmp fi # ============= vw_curses/curses/ChangeLog ============== if test -f 'vw_curses/curses/ChangeLog' && test X"$1" != X"-c"; then echo 'x - skipping vw_curses/curses/ChangeLog (file already exists)' rm -f _sharnew.tmp else > _sharnew.tmp echo 'x - extracting vw_curses/curses/ChangeLog (text)' sed 's/^X//' << 'SHAR_EOF' > 'vw_curses/curses/ChangeLog' && [Started with Berkeley 4.3 Tahoe curses 5.5 distribution] X 90/02/07 Georg Feil X -Bug fixed in scrolling of windows: X Excess call to macro SYNCH_IN() removed at line 91 of addbytes.c. X Caused y to get set to -1 after scroll! X 90/02/08 Georg Feil X -Behaviour of wrefresh() changed to not abort awkwardly on error from X makech(), i.e. always cleans up (repositions cursor and flushes). X -Added initialization and checking of _FLUSH flag in _flags word X (set by flushok()). X 90/02/08 Georg Feil X -Fixed mvwprintw() bug in mvprintw.c (move acted on wrong screen). X 90/06/13 Georg Feil X -Ported to VxWorks X 90/06/27 Georg Feil X -Fixed bug in scrolling (deleteln.c). X 90/08/27 Georg Feil X -Added semaphores to lock all major routines (new file semaphore.c). X 90/10/02 Georg Feil X -Fixed bug in touchoverlap(), overlay(), and overwrite() X overlap range check. 'x' was used in place of 'y'! X -Added (apparently) missing braces in if statement in wrefresh(). X uses 'automatic' clrtoeol()'s. X 90/10/03 Georg Feil X -Fixed bugs in overwrite(). X -Fixed bug in newwin(), someone forgot to initialize win->_orig to NULL! X 90/10/04 Georg Feil X -Improved min() and max() routines in toucholap.c etc. (parens around args). X 90/12/20 Georg Feil X -Added checks for null window parameter to addbytes.c, others. X 91/02/13 Georg Feil X -Added renewwin() function to create a new window at an existing window's X address. Also wrote associated redelwin() and remakewin(), not for user X access. X 91/04/25 Georg Feil X -Changed declaration of Def_term in curses.c to reserve more space X (80 chars). Used to have room for only 7! X 91/07/24 Georg Feil X -Cleaned up for VxWorks archives submission. X 91/08/01 Georg Feil X -TAR'd and submitted as vw_curses, with termlib and twinkle test program. SHAR_EOF $shar_touch -am 0627091195 'vw_curses/curses/ChangeLog' && chmod 0644 'vw_curses/curses/ChangeLog' || echo 'restore of vw_curses/curses/ChangeLog failed' shar_count="`wc -c < 'vw_curses/curses/ChangeLog'`" test 1856 -eq "$shar_count" || echo "vw_curses/curses/ChangeLog: original size 1856, current size $shar_count" rm -f _sharnew.tmp fi # ============= vw_curses/curses/box.c ============== if test -f 'vw_curses/curses/box.c' && test X"$1" != X"-c"; then echo 'x - skipping vw_curses/curses/box.c (file already exists)' rm -f _sharnew.tmp else > _sharnew.tmp echo 'x - extracting vw_curses/curses/box.c (text)' sed 's/^X//' << 'SHAR_EOF' > 'vw_curses/curses/box.c' && /* X * Copyright (c) 1981 Regents of the University of California. X * All rights reserved. X * X * Redistribution and use in source and binary forms are permitted X * provided that the above copyright notice and this paragraph are X * duplicated in all such forms and that any documentation, X * advertising materials, and other materials related to such X * distribution and use acknowledge that the software was developed X * by the University of California, Berkeley. The name of the SHAR_EOF : || echo 'restore of vw_curses/curses/box.c failed' fi echo 'End of archive part 1' echo 'File vw_curses/curses/box.c is continued in part 2' echo 2 > _sharseq.tmp exit 0