PD Terminfo/Curses (part 5 of 11)
sources at genrad.UUCP
sources at genrad.UUCP
Tue Dec 18 23:29:38 AEST 1984
This is part of a distribution of a public domain version of terminfo/curses
It is a rather large distribution, so I have broken it up into 11 modules
(each less than 64K long.) Each shar format module should end with the line
"exit". This code is completely public domain, originally written by Pavel
Curtis of Cornell University. This version has some small improvements and
bug fixes.
This unit contains:
The Makefile, the rest of the header files, and awk scripts for
when the Caps file is modified.
Part 6 will be
the Caps file, dump.c, and the first installation of the library
modules.
----------------- cut here ----------------
: Run this shell script with "sh" not "csh"
PATH=:/bin:/usr/bin:/usr/ucb
export PATH
if test ! -d =src
then
echo 'Making directory "=src"'
mkdir =src
fi
echo 'x - =src/MKcaptab.awk'
sed 's/^X//' <<'//go.sysin dd *' >=src/MKcaptab.awk
#*********************************************************************
# COPYRIGHT NOTICE *
#*********************************************************************
# This software is copyright (C) 1982 by Pavel Curtis *
# *
# Permission is granted to reproduce and distribute *
# this file by any means so long as no fee is charged *
# above a nominal handling fee and so long as this *
# notice is always included in the copies. *
# *
# Other rights are reserved except as explicitly granted *
# by written permission of the author. *
# Pavel Curtis *
# Computer Science Dept. *
# 405 Upson Hall *
# Cornell University *
# Ithaca, NY 14853 *
# *
# Ph- (607) 256-4934 *
# *
# Pavel.Cornell at Udel-Relay (ARPAnet) *
# decvax!cornell!pavel (UUCPnet) *
#********************************************************************/
#
# $Header: RCS/MKcaptab.v Revision 2.1 82/10/25 14:45:02 pavel Exp$
#
BEGIN {
print "/*"
print " * comp_captab.c -- The names of the capabilities in a form ready for"
print " * the making of a hash table for the compiler."
print " *"
print " */"
print ""
print ""
print "#include \"compiler.h\""
print "#include \"term.h\""
print ""
print ""
print "struct name_table_entry cap_table[] ="
print "{"
}
$3 == "bool" {
printf "\t0,%15s,\tBOOLEAN,\t%3d,\n", $2, BoolCount++
}
$3 == "number" {
printf "\t0,%15s,\tNUMBER,\t\t%3d,\n", $2, NumCount++
}
$3 == "str" {
printf "\t0,%15s,\tSTRING,\t\t%3d,\n", $2, StrCount++
}
END {
print "};"
print ""
printf "struct name_table_entry *cap_hash_table[%d];\n",\
(BoolCount + NumCount + StrCount) * 2
print ""
printf "int Hashtabsize = %d;\n",\
(BoolCount + NumCount + StrCount) * 2
printf "int Captabsize = %d;\n", BoolCount + NumCount + StrCount
print ""
print ""
printf "#if (BOOLCOUNT!=%d)||(NUMCOUNT!=%d)||(STRCOUNT!=%d)\n",\
BoolCount, NumCount, StrCount
print " --> term.h and comp_captab.c disagree about the <--"
print " --> numbers of booleans, numbers and/or strings <--"
print "#endif"
}
//go.sysin dd *
echo 'x - =src/MKnames.awk'
sed 's/^X//' <<'//go.sysin dd *' >=src/MKnames.awk
#*********************************************************************
# COPYRIGHT NOTICE *
#*********************************************************************
# This software is copyright (C) 1982 by Pavel Curtis *
# *
# Permission is granted to reproduce and distribute *
# this file by any means so long as no fee is charged *
# above a nominal handling fee and so long as this *
# notice is always included in the copies. *
# *
# Other rights are reserved except as explicitly granted *
# by written permission of the author. *
# Pavel Curtis *
# Computer Science Dept. *
# 405 Upson Hall *
# Cornell University *
# Ithaca, NY 14853 *
# *
# Ph- (607) 256-4934 *
# *
# Pavel.Cornell at Udel-Relay (ARPAnet) *
# decvax!cornell!pavel (UUCPnet) *
#********************************************************************/
#
# $Header: RCS/MKnames.v Revision 2.1 82/10/25 14:45:06 pavel Exp$
#
BEGIN {
print "/*" > "boolnames"
print " * dump_names.c - Arrays of capability names for use by the" > "boolnames"
print " * dump program." > "boolnames"
print " *" > "boolnames"
print " */" > "boolnames"
print "" > "boolnames"
print "" > "boolnames"
print "char *BoolNames[] = {" > "boolnames"
print "char *NumNames[] = {" > "numnames"
print "char *StrNames[] = {" > "strnames"
}
$3 == "bool" {
printf "\t\t%s,\n", $2 > "boolnames"
}
$3 == "number" {
printf "\t\t%s,\n", $2 > "numnames"
}
$3 == "str" {
printf "\t\t%s,\n", $2 > "strnames"
}
END {
print "};" > "boolnames"
print "" > "boolnames"
print "};" > "numnames"
print "" > "numnames"
print "};" > "strnames"
}
//go.sysin dd *
echo 'x - =src/MKterm.h.awk'
sed 's/^X//' <<'//go.sysin dd *' >=src/MKterm.h.awk
#*********************************************************************
# COPYRIGHT NOTICE *
#*********************************************************************
# This software is copyright (C) 1982 by Pavel Curtis *
# *
# Permission is granted to reproduce and distribute *
# this file by any means so long as no fee is charged *
# above a nominal handling fee and so long as this *
# notice is always included in the copies. *
# *
# Other rights are reserved except as explicitly granted *
# by written permission of the author. *
# Pavel Curtis *
# Computer Science Dept. *
# 405 Upson Hall *
# Cornell University *
# Ithaca, NY 14853 *
# *
# Ph- (607) 256-4934 *
# *
# Pavel.Cornell at Udel-Relay (ARPAnet) *
# decvax!cornell!pavel (UUCPnet) *
#********************************************************************/
#
# $Header: RCS/MKterm.h.v Revision 2.1 82/10/25 14:45:11 pavel Exp$
#
BEGIN {
print "/*"
print "** term.h -- Definition of struct term"
print "*/"
print ""
print "#ifndef SGTTY"
print "# include \"curses.h\""
print "#endif"
print ""
print "#ifdef SINGLE"
print "# define CUR _first_term."
print "#else"
print "# define CUR cur_term->"
print "#endif"
print ""
print ""
}
$3 == "bool" {
printf "#define %-30s CUR Booleans[%d]\n", $1, BoolCount++
}
$3 == "number" {
printf "#define %-30s CUR Numbers[%d]\n", $1, NumberCount++
}
$3 == "str" {
printf "#define %-30s CUR Strings[%d]\n", $1, StringCount++
}
END {
print ""
print ""
print "struct term"
print "{"
print " char *term_names; /* offset in str_table of terminal names */"
print " char *str_table; /* pointer to string table */"
print " short Filedes; /* file description being written to */"
print " SGTTY Ottyb, /* original state of the terminal */"
print " Nttyb; /* current state of the terminal */"
print ""
printf " char Booleans[%d];\n", BoolCount
printf " short Numbers[%d];\n", NumberCount
printf " char *Strings[%d];\n", StringCount
print "};"
print ""
print "struct term _first_term;"
print "struct term *cur_term;"
print ""
printf "#define BOOLCOUNT %d\n", BoolCount
printf "#define NUMCOUNT %d\n", NumberCount
printf "#define STRCOUNT %d\n", StringCount
}
//go.sysin dd *
echo 'x - =src/Makefile'
sed 's/^X//' <<'//go.sysin dd *' >=src/Makefile
#*********************************************************************
# COPYRIGHT NOTICE *
#*********************************************************************
# This software is copyright (C) 1982 by Pavel Curtis *
# *
# Permission is granted to reproduce and distribute *
# this file by any means so long as no fee is charged *
# above a nominal handling fee and so long as this *
# notice is always included in the copies. *
# *
# Other rights are reserved except as explicitly granted *
# by written permission of the author. *
# Pavel Curtis *
# Computer Science Dept. *
# 405 Upson Hall *
# Cornell University *
# Ithaca, NY 14853 *
# *
# Ph- (607) 256-4934 *
# *
# Pavel.Cornell at Udel-Relay (ARPAnet) *
# decvax!cornell!pavel (UUCPnet) *
#********************************************************************/
# RCSid: $Header: RCS/Makefile.v Revision 2.2 82/10/25 15:28:23 pavel Exp$
SRCDIR= /etc/term
CFLAGS= -O -DSRCDIR='"$(SRCDIR)"'
DFLAGS= -g -DTRACE -DSRCDIR='"$(SRCDIR)"'
SRCS= comp_main.c comp_hash.c comp_captab.c comp_scan.c comp_error.c \
comp_parse.c read_entry.c \
dump.c dump_names.c \
lib_setup.c lib_fixterm.c lib_tparm.c lib_tputs.c \
lib_unctrl.c lib_raw.c lib_vidattr.c lib_trace.c lib_data.c \
lib_beep.c lib_doupdate.c lib_refresh.c lib_initscr.c lib_newwin.c \
lib_addch.c lib_addstr.c lib_scroll.c lib_clreol.c lib_touchwin.c \
lib_mvcur.c lib_delwin.c lib_endwin.c lib_clrbot.c lib_move.c \
lib_printw.c lib_scanw.c lib_erase.c lib_getch.c lib_options.c \
lib_box.c lib_clear.c lib_delch.c lib_deleteln.c lib_insch.c \
lib_insertln.c lib_getstr.c lib_mvwin.c lib_longname.c lib_tstp.c \
lib_newterm.c lib_set_term.c lib_overlay.c lib_scrreg.c
#
# Normal, optimised object files
#
LIBOBJS= lib_setup.o lib_fixterm.o lib_tparm.o read_entry.o lib_tputs.o \
lib_unctrl.o lib_raw.o lib_vidattr.o lib_trace.o lib_data.o lib_beep.o \
lib_doupdate.o lib_refresh.o lib_initscr.o lib_newwin.o lib_addch.o \
lib_addstr.o lib_scroll.o lib_clreol.o lib_touchwin.o lib_mvcur.o \
lib_delwin.o lib_endwin.o lib_clrbot.o lib_move.o lib_printw.o \
lib_scanw.o lib_erase.o lib_getch.o lib_options.o \
lib_box.o lib_clear.o lib_delch.o lib_deleteln.o lib_insch.o \
lib_insertln.o lib_getstr.o lib_mvwin.o lib_longname.o lib_tstp.o \
lib_newterm.o lib_set_term.o lib_overlay.o lib_scrreg.o
#
# Debugging (tracing) object files
#
DLIBOBJS= lib_setup.d lib_fixterm.d lib_tparm.d read_entry.d lib_tputs.d \
lib_unctrl.d lib_raw.d lib_vidattr.d lib_trace.d lib_data.d lib_beep.d \
lib_doupdate.d lib_refresh.d lib_initscr.d lib_newwin.d lib_addch.d \
lib_addstr.d lib_scroll.d lib_clreol.d lib_touchwin.d lib_mvcur.d \
lib_delwin.d lib_endwin.d lib_clrbot.d lib_move.d lib_printw.d \
lib_scanw.d lib_erase.d lib_getch.d lib_options.d \
lib_box.d lib_clear.d lib_delch.d lib_deleteln.d lib_insch.d \
lib_insertln.d lib_getstr.d lib_mvwin.d lib_longname.d lib_tstp.d \
lib_newterm.d lib_set_term.d lib_overlay.d lib_scrreg.d
#
# Profiled Optimised object files
#
PLIBOBJS= lib_setup.p lib_fixterm.p lib_tparm.p read_entry.p lib_tputs.p \
lib_unctrl.p lib_raw.p lib_vidattr.p lib_trace.p lib_data.p lib_beep.p \
lib_doupdate.p lib_refresh.p lib_initscr.p lib_newwin.p lib_addch.p \
lib_addstr.p lib_scroll.p lib_clreol.p lib_touchwin.p lib_mvcur.p \
lib_delwin.p lib_endwin.p lib_clrbot.p lib_move.p lib_printw.p \
lib_scanw.p lib_erase.p lib_getch.p lib_options.p \
lib_box.p lib_clear.p lib_delch.p lib_deleteln.p lib_insch.p \
lib_insertln.p lib_getstr.p lib_mvwin.p lib_longname.p lib_tstp.p \
lib_newterm.p lib_set_term.p lib_overlay.p lib_scrreg.p
COMPOBJS= comp_main.o comp_hash.o comp_captab.o comp_scan.o comp_error.o \
comp_parse.o read_entry.o
X.SUFFIXES: .d .p
X.c.d:
-mv $*.o $*.O
cc -c $(DFLAGS) $*.c
mv $*.o $*.d
-mv $*.O $*.o
X.c.p:
-mv $*.o $*.O
cc -pg -c $(CFLAGS) $*.c
mv $*.o $*.p
-mv $*.O $*.o
all: compile dump lib dlib
install: all
sed -e 's/clude *"curses.h" *$$/clude <ncurses.h>/' term.h > /usr/include/term.h
sed -e 's/^#include *"terminfo.h" *$$/#include <terminfo.h>/' curses.h > /usr/include/ncurses.h
cp terminfo.h /usr/include/terminfo.h
cp unctrl.h /usr/include/unctrl.h
cp compile $(SRCDIR)/compile
cp dump $(SRCDIR)/dump
cp libcurses.a /usr/lib/libncurses.a
cp libdcurses.a /usr/lib/libdcurses.a
ranlib /usr/lib/libncurses.a
ranlib /usr/lib/libdcurses.a
lib: libcurses.a
libcurses.a: ${LIBOBJS}
ar rv libcurses.a ${LIBOBJS}
ranlib libcurses.a
dlib: libdcurses.a
libdcurses.a: ${DLIBOBJS}
ar rv libdcurses.a ${DLIBOBJS}
ranlib libdcurses.a
plib: libpcurses.a
libpcurses.a: ${PLIBOBJS}
ar rv libpcurses.a ${PLIBOBJS}
ranlib libpcurses.a
compile: ${COMPOBJS}
cc -o compile ${COMPOBJS}
dump: dump.o dump_names.o read_entry.o
cc -o dump dump.o dump_names.o read_entry.o
lint: ${SRCS}
lint ${DFLAGS} ${SRCS} > lint.out
term.h: Caps MKterm.h.awk
awk -f MKterm.h.awk Caps > term.h
comp_captab.c: Caps MKcaptab.awk
awk -f MKcaptab.awk Caps > comp_captab.c
dump.o: dump.c term.h compiler.h
dump_names.c: Caps MKnames.awk
awk -f MKnames.awk Caps
cat boolnames numnames strnames > dump_names.c
-rm -f boolnames numnames strnames
clean:
-rm -f *.[od] term.h comp_captab.c tags dump_names.c
tags: *.c *.h
ctags *.c *.h
depend: ${SRCS}
grep "^#include" ${SRCS} \
| sed 's/\([^:]*\).c:[^"]*"\([^"]*\)".*/\1.o: \2/' \
| sed '/#include/d' > makedep
echo '/^# DO NOT DELETE THIS LINE/+2,$$d' > eddep
echo '$$r makedep' >> eddep
echo '/^# DO NOT DELETE THIS LINE/+2,$$s/\.o/.d/' >> eddep
echo '$$r makedep' >> eddep
echo 'w' >> eddep
cp Makefile Makefile.bak
ex - Makefile < eddep
rm makedep eddep
echo >> Makefile
echo "# DEPENDENCIES MUST END AT END OF FILE" >> Makefile
echo "# IF YOU PUT STUFF HERE, IT WILL GO AWAY" >> Makefile
echo "# See make depend, above" >> Makefile
# DO NOT DELETE THIS LINE - make depend needs it
comp_main.d: compiler.h
comp_hash.d: compiler.h
comp_hash.d: term.h
comp_captab.d: compiler.h
comp_captab.d: term.h
comp_scan.d: compiler.h
comp_error.d: compiler.h
comp_parse.d: compiler.h
comp_parse.d: term.h
comp_parse.d: object.h
read_entry.d: term.h
read_entry.d: object.h
dump.d: compiler.h
dump.d: term.h
lib_setup.d: curses.h
lib_setup.d: curses.priv.h
lib_setup.d: term.h
lib_fixterm.d: curses.h
lib_fixterm.d: curses.priv.h
lib_fixterm.d: term.h
lib_tparm.d: curses.h
lib_tparm.d: curses.priv.h
lib_tparm.d: term.h
lib_tputs.d: curses.h
lib_tputs.d: curses.priv.h
lib_tputs.d: term.h
lib_raw.d: curses.h
lib_raw.d: curses.priv.h
lib_raw.d: term.h
lib_vidattr.d: curses.h
lib_vidattr.d: curses.priv.h
lib_vidattr.d: term.h
lib_trace.d: term.h
lib_trace.d: curses.h
lib_trace.d: curses.priv.h
lib_data.d: curses.priv.h
lib_data.d: curses.h
lib_data.d: term.h
lib_beep.d: curses.h
lib_beep.d: curses.priv.h
lib_beep.d: term.h
lib_doupdate.d: curses.h
lib_doupdate.d: curses.priv.h
lib_doupdate.d: term.h
lib_refresh.d: curses.h
lib_refresh.d: curses.priv.h
lib_initscr.d: curses.h
lib_initscr.d: curses.priv.h
lib_newwin.d: term.h
lib_newwin.d: curses.h
lib_newwin.d: curses.priv.h
lib_addch.d: curses.h
lib_addch.d: curses.priv.h
lib_addch.d: unctrl.h
lib_addstr.d: curses.h
lib_addstr.d: curses.priv.h
lib_scroll.d: curses.h
lib_scroll.d: curses.priv.h
lib_clreol.d: curses.h
lib_clreol.d: curses.priv.h
lib_touchwin.d: curses.h
lib_touchwin.d: curses.priv.h
lib_mvcur.d: term.h
lib_mvcur.d: curses.h
lib_mvcur.d: curses.priv.h
lib_delwin.d: curses.h
lib_delwin.d: curses.priv.h
lib_endwin.d: term.h
lib_endwin.d: curses.h
lib_endwin.d: curses.priv.h
lib_clrbot.d: curses.h
lib_clrbot.d: curses.priv.h
lib_move.d: curses.h
lib_move.d: curses.priv.h
lib_printw.d: curses.h
lib_printw.d: curses.priv.h
lib_scanw.d: curses.h
lib_scanw.d: curses.priv.h
lib_erase.d: curses.h
lib_erase.d: curses.priv.h
lib_getch.d: curses.h
lib_getch.d: curses.priv.h
lib_options.d: term.h
lib_options.d: curses.h
lib_options.d: curses.priv.h
lib_box.d: curses.h
lib_box.d: curses.priv.h
lib_clear.d: curses.h
lib_clear.d: curses.priv.h
lib_delch.d: curses.h
lib_delch.d: curses.priv.h
lib_delch.d: term.h
lib_deleteln.d: curses.h
lib_deleteln.d: curses.priv.h
lib_insch.d: curses.h
lib_insch.d: curses.priv.h
lib_insertln.d: curses.h
lib_insertln.d: curses.priv.h
lib_getstr.d: curses.h
lib_getstr.d: curses.priv.h
lib_getstr.d: unctrl.h
lib_mvwin.d: curses.h
lib_mvwin.d: curses.priv.h
lib_longname.d: curses.h
lib_longname.d: curses.priv.h
lib_tstp.d: term.h
lib_tstp.d: curses.h
lib_tstp.d: curses.priv.h
lib_newterm.d: curses.h
lib_newterm.d: term.h
lib_newterm.d: curses.priv.h
lib_set_term.d: curses.h
lib_set_term.d: curses.priv.h
lib_set_term.d: term.h
lib_overlay.d: curses.h
lib_overlay.d: curses.priv.h
lib_scrreg.d: curses.h
lib_scrreg.d: curses.priv.h
comp_main.o: compiler.h
comp_hash.o: compiler.h
comp_hash.o: term.h
comp_captab.o: compiler.h
comp_captab.o: term.h
comp_scan.o: compiler.h
comp_error.o: compiler.h
comp_parse.o: compiler.h
comp_parse.o: term.h
comp_parse.o: object.h
read_entry.o: term.h
read_entry.o: object.h
dump.o: compiler.h
dump.o: term.h
lib_setup.o: curses.h
lib_setup.o: curses.priv.h
lib_setup.o: term.h
lib_fixterm.o: curses.h
lib_fixterm.o: curses.priv.h
lib_fixterm.o: term.h
lib_tparm.o: curses.h
lib_tparm.o: curses.priv.h
lib_tparm.o: term.h
lib_tputs.o: curses.h
lib_tputs.o: curses.priv.h
lib_tputs.o: term.h
lib_raw.o: curses.h
lib_raw.o: curses.priv.h
lib_raw.o: term.h
lib_vidattr.o: curses.h
lib_vidattr.o: curses.priv.h
lib_vidattr.o: term.h
lib_trace.o: term.h
lib_trace.o: curses.h
lib_trace.o: curses.priv.h
lib_data.o: curses.priv.h
lib_data.o: curses.h
lib_data.o: term.h
lib_beep.o: curses.h
lib_beep.o: curses.priv.h
lib_beep.o: term.h
lib_doupdate.o: curses.h
lib_doupdate.o: curses.priv.h
lib_doupdate.o: term.h
lib_refresh.o: curses.h
lib_refresh.o: curses.priv.h
lib_initscr.o: curses.h
lib_initscr.o: curses.priv.h
lib_newwin.o: term.h
lib_newwin.o: curses.h
lib_newwin.o: curses.priv.h
lib_addch.o: curses.h
lib_addch.o: curses.priv.h
lib_addch.o: unctrl.h
lib_addstr.o: curses.h
lib_addstr.o: curses.priv.h
lib_scroll.o: curses.h
lib_scroll.o: curses.priv.h
lib_clreol.o: curses.h
lib_clreol.o: curses.priv.h
lib_touchwin.o: curses.h
lib_touchwin.o: curses.priv.h
lib_mvcur.o: term.h
lib_mvcur.o: curses.h
lib_mvcur.o: curses.priv.h
lib_delwin.o: curses.h
lib_delwin.o: curses.priv.h
lib_endwin.o: term.h
lib_endwin.o: curses.h
lib_endwin.o: curses.priv.h
lib_clrbot.o: curses.h
lib_clrbot.o: curses.priv.h
lib_move.o: curses.h
lib_move.o: curses.priv.h
lib_printw.o: curses.h
lib_printw.o: curses.priv.h
lib_scanw.o: curses.h
lib_scanw.o: curses.priv.h
lib_erase.o: curses.h
lib_erase.o: curses.priv.h
lib_getch.o: curses.h
lib_getch.o: curses.priv.h
lib_options.o: term.h
lib_options.o: curses.h
lib_options.o: curses.priv.h
lib_box.o: curses.h
lib_box.o: curses.priv.h
lib_clear.o: curses.h
lib_clear.o: curses.priv.h
lib_delch.o: curses.h
lib_delch.o: curses.priv.h
lib_delch.o: term.h
lib_deleteln.o: curses.h
lib_deleteln.o: curses.priv.h
lib_insch.o: curses.h
lib_insch.o: curses.priv.h
lib_insertln.o: curses.h
lib_insertln.o: curses.priv.h
lib_getstr.o: curses.h
lib_getstr.o: curses.priv.h
lib_getstr.o: unctrl.h
lib_mvwin.o: curses.h
lib_mvwin.o: curses.priv.h
lib_longname.o: curses.h
lib_longname.o: curses.priv.h
lib_tstp.o: term.h
lib_tstp.o: curses.h
lib_tstp.o: curses.priv.h
lib_newterm.o: curses.h
lib_newterm.o: term.h
lib_newterm.o: curses.priv.h
lib_set_term.o: curses.h
lib_set_term.o: curses.priv.h
lib_set_term.o: term.h
lib_overlay.o: curses.h
lib_overlay.o: curses.priv.h
lib_scrreg.o: curses.h
lib_scrreg.o: curses.priv.h
# DEPENDENCIES MUST END AT END OF FILE
# IF YOU PUT STUFF HERE, IT WILL GO AWAY
# See make depend, above
//go.sysin dd *
echo 'x - =src/curses.h'
sed 's/^X//' <<'//go.sysin dd *' >=src/curses.h
X/*********************************************************************
* COPYRIGHT NOTICE *
**********************************************************************
* This software is copyright (C) 1982 by Pavel Curtis *
* *
* Permission is granted to reproduce and distribute *
* this file by any means so long as no fee is charged *
* above a nominal handling fee and so long as this *
* notice is always included in the copies. *
* *
* Other rights are reserved except as explicitly granted *
* by written permission of the author. *
* Pavel Curtis *
* Computer Science Dept. *
* 405 Upson Hall *
* Cornell University *
* Ithaca, NY 14853 *
* *
* Ph- (607) 256-4934 *
* *
* Pavel.Cornell at Udel-Relay (ARPAnet) *
* decvax!cornell!pavel (UUCPnet) *
*********************************************************************/
X/*
* curses.h - Main header file for the curses package
*
* $Header: RCS/curses.v Revision 2.1 82/10/25 14:46:08 pavel Exp$
*
* $Log: RCS/curses.v $
Revision 2.1 82/10/25 14:46:08 pavel
Added Copyright Notice
Revision 2.0 82/10/24 15:17:22 pavel
Beta-one Test Release
Revision 1.4 82/08/23 22:30:13 pavel
The REAL Alpha-one Release Version
Revision 1.3 82/08/20 16:52:46 pavel
XFixed <terminfo.h> bug
Revision 1.2 82/08/19 19:10:13 pavel
Alpha Test Release One
Revision 1.1 82/08/12 18:38:57 pavel
Initial revision
*
*/
#ifndef WINDOW
#include "terminfo.h"
#define bool char
#ifndef MINICURSES
typedef unsigned short chtype;
#else
typedef unsigned char chtype;
#endif MINICURSES
#ifndef TRUE
# define TRUE (1)
# define FALSE (0)
#endif
#define ERR (0)
#define OK (1)
#define _SUBWIN 01
#define _ENDLINE 02
#define _FULLWIN 04
#define _SCROLLWIN 010
#define _NOCHANGE -1
struct _win_st {
short _cury, _curx;
short _maxy, _maxx;
short _begy, _begx;
short _flags;
chtype _attrs;
bool _clear;
bool _leave;
bool _scroll;
bool _idlok;
bool _use_keypad; /* 0=no, 1=yes, 2=yes/timeout */
bool _use_meta; /* T=use the meta key */
bool _nodelay; /* T=don't wait for tty input */
chtype **_line;
short *_firstchar; /* First changed character in the line */
short *_lastchar; /* Last changed character in the line */
short *_numchngd; /* Number of changes made in the line */
short _regtop; /* Top and bottom of scrolling region */
short _regbottom;
};
#define WINDOW struct _win_st
WINDOW *stdscr, *curscr;
int LINES, COLS;
WINDOW *initscr(), *newwin(), *subwin();
char *longname();
struct screen *newterm(), *set_term();
X/*
* psuedo functions
*/
#define getyx(win,y,x) (y = (win)->_cury, x = (win)->_curx)
#define inch() winch(stdscr)
#define standout() wstandout(stdscr)
#define standend() wstandend(stdscr)
#define attron(at) wattron(stdscr,at)
#define attroff(at) wattroff(stdscr,at)
#define attrset(at) wattrset(stdscr,at)
#define winch(win) ((win)->_line[(win)->_cury][(win)->_curx])
#define wstandout(win) (wattrset(win,A_STANDOUT))
#define wstandend(win) (wattrset(win,A_NORMAL))
#define wattron(win,at) ((win)->_attrs |= (at))
#define wattroff(win,at) ((win)->_attrs &= ~(at))
#define wattrset(win,at) ((win)->_attrs = (at))
#ifndef MINICURSES
/*
* psuedo functions for standard screen
*/
# define addch(ch) waddch(stdscr, ch)
# define getch() wgetch(stdscr)
# define addstr(str) waddstr(stdscr, str)
# define getstr(str) wgetstr(stdscr, str)
# define move(y, x) wmove(stdscr, y, x)
# define clear() wclear(stdscr)
# define erase() werase(stdscr)
# define clrtobot() wclrtobot(stdscr)
# define clrtoeol() wclrtoeol(stdscr)
# define insertln() winsertln(stdscr)
# define deleteln() wdeleteln(stdscr)
# define refresh() wrefresh(stdscr)
# define insch(c) winsch(stdscr,c)
# define delch() wdelch(stdscr)
# define setscrreg(t,b) wsetscrreg(stdscr,t,b)
/*
* mv functions
*/
# define mvwaddch(win,y,x,ch) (wmove(win,y,x) == ERR ? ERR : waddch(win,ch))
# define mvwgetch(win,y,x) (wmove(win,y,x) == ERR ? ERR : wgetch(win))
# define mvwaddstr(win,y,x,str) (wmove(win,y,x) == ERR ? ERR \
: waddstr(win,str))
# define mvwgetstr(win,y,x) (wmove(win,y,x) == ERR ? ERR : wgetstr(win))
# define mvwinch(win,y,x) (wmove(win,y,x) == ERR ? ERR : winch(win))
# define mvwdelch(win,y,x) (wmove(win,y,x) == ERR ? ERR : wdelch(win))
# define mvwinsch(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : winsch(win,c))
# define mvaddch(y,x,ch) mvwaddch(stdscr,y,x,ch)
# define mvgetch(y,x) mvwgetch(stdscr,y,x)
# define mvaddstr(y,x,str) mvwaddstr(stdscr,y,x,str)
# define mvgetstr(y,x) mvwgetstr(stdscr,y,x)
# define mvinch(y,x) mvwinch(stdscr,y,x)
# define mvdelch(y,x) mvwdelch(stdscr,y,x)
# define mvinsch(y,x,c) mvwinsch(stdscr,y,x,c)
#else MINICURSES
# define addch m_addch
# define addstr m_addstr
# define erase m_erase
# define clear m_clear
# define refresh m_refresh
# define initscr m_initscr
# define newterm m_newterm
# define mvaddch(y,x,ch) (move(y,x) == ERR ? ERR : addch(ch))
# define mvaddstr(y,x,str) (move(y,x) == ERR ? ERR : addstr(str))
X/*
* These functions don't exist in minicurses, so we define them
* to nonexistent functions to help the user catch the error.
*/
# define box no_box
# define clrtobot no_clrtobot
# define clrtoeol no_clrtoeol
# define delch no_delch
# define deleteln no_deleteln
# define delwin no_delwin
# define getch no_getch
# define getstr no_getstr
# define insch no_insch
# define insertln no_insertln
# define longname no_longname
# define mvprintw no_mvprintw
# define mvscanw no_mvscanw
# define mvwin no_mvwin
# define mvwprintw no_mvwprintw
# define mvwscanw no_mvwscanw
# define newwin no_newwin
# define overlay no_overlay
# define overwrite no_overwrite
# define printw no_printw
# define putp no_putp
# define scanw no_scanw
# define scroll no_scroll
# define setscrreg no_setscrreg
# define subwin no_subwin
# define touchwin no_touchwin
# define tstp no_tstp
# define vidattr no_vidattr
# define waddch no_waddch
# define waddstr no_waddstr
# define wclear no_wclear
# define wclrtobot no_wclrtobot
# define wclrtoeol no_wclrtoeol
# define wdelch no_wdelch
# define wdeleteln no_wdeleteln
# define werase no_werase
# define wgetch no_wgetch
# define wgetstr no_wgetstr
# define winsch no_winsch
# define winsertln no_winsertln
# define wmove no_wmove
# define wprintw no_wprintw
# define wrefresh no_wrefresh
# define wscanw no_wscanw
# define wsetscrreg no_wsetscrreg
X/* mv functions that aren't valid */
# define mvdelch no_mvwdelch
# define mvgetch no_mvwgetch
# define mvgetstr no_mvwgetstr
# define mvinch no_mvwinch
# define mvinsch no_mvwinsch
# define mvwaddch no_mvwaddch
# define mvwaddstr no_mvaddstr
# define mvwdelch no_mvwdelch
# define mvwgetch no_mvwgetch
# define mvwgetstr no_mvwgetstr
# define mvwinch no_mvwinch
# define mvwinsch no_mvwinsch
#endif MINICURSES
#ifndef MINICURSES
X/* Funny "characters" enabled for various special function keys for input */
#define KEY_BREAK 0401 /* break key (unreliable) */
#define KEY_DOWN 0402 /* The four arrow keys ... */
#define KEY_UP 0403
#define KEY_LEFT 0404
#define KEY_RIGHT 0405 /* ... */
#define KEY_HOME 0406 /* Home key (upward+left arrow) */
#define KEY_BACKSPACE 0407 /* backspace (unreliable) */
#define KEY_F0 0410 /* Function keys. Space for 64 */
#define KEY_F(n) (KEY_F0+(n)) /* keys is reserved. */
#define KEY_DL 0510 /* Delete line */
#define KEY_IL 0511 /* Insert line */
#define KEY_DC 0512 /* Delete character */
#define KEY_IC 0513 /* Insert char or enter insert mode */
#define KEY_EIC 0514 /* Exit insert char mode */
#define KEY_CLEAR 0515 /* Clear screen */
#define KEY_EOS 0516 /* Clear to end of screen */
#define KEY_EOL 0517 /* Clear to end of line */
#define KEY_SF 0520 /* Scroll 1 line forward */
#define KEY_SR 0521 /* Scroll 1 line backwards (reverse) */
#define KEY_NPAGE 0522 /* Next page */
#define KEY_PPAGE 0523 /* Previous page */
#define KEY_STAB 0524 /* Set tab */
#define KEY_CTAB 0525 /* Clear tab */
#define KEY_CATAB 0526 /* Clear all tabs */
#define KEY_ENTER 0527 /* Enter or send (unreliable) */
#define KEY_SRESET 0530 /* soft (partial) reset (unreliable) */
#define KEY_RESET 0531 /* reset or hard reset (unreliable) */
#define KEY_PRINT 0532 /* print or copy */
#define KEY_LL 0533 /* home down or bottom (lower left) */
#endif MINICURSES
#endif WINDOW
//go.sysin dd *
echo 'x - =src/curses.priv.h'
sed 's/^X//' <<'//go.sysin dd *' >=src/curses.priv.h
X/*********************************************************************
* COPYRIGHT NOTICE *
**********************************************************************
* This software is copyright (C) 1982 by Pavel Curtis *
* *
* Permission is granted to reproduce and distribute *
* this file by any means so long as no fee is charged *
* above a nominal handling fee and so long as this *
* notice is always included in the copies. *
* *
* Other rights are reserved except as explicitly granted *
* by written permission of the author. *
* Pavel Curtis *
* Computer Science Dept. *
* 405 Upson Hall *
* Cornell University *
* Ithaca, NY 14853 *
* *
* Ph- (607) 256-4934 *
* *
* Pavel.Cornell at Udel-Relay (ARPAnet) *
* decvax!cornell!pavel (UUCPnet) *
*********************************************************************/
X/*
* curses.priv.h
*
* Header file for curses library objects which are private to
* the library.
*
* $Log: RCS/curses.priv.v $
Revision 2.1 82/10/25 14:46:17 pavel
Added Copyright Notice
Revision 2.0 82/10/25 13:50:25 pavel
Beta-one Test Release
*
*/
#include <stdio.h>
#include "curses.h"
#define min(a,b) ((a) > (b) ? (b) : (a))
#define max(a,b) ((a) < (b) ? (b) : (a))
#define CHANGED -1
WINDOW *newscr;
extern int _tracing;
struct try
{
struct try *child; /* ptr to child. NULL if none */
struct try *sibling; /* ptr to sibling. NULL if none */
char ch; /* character at this node */
short value; /* code of string so far. NULL if none */
};
struct screen
{
FILE *_ifp; /* input file ptr for this terminal */
FILE *_ofp; /* output file ptr for this terminal */
struct term *_term; /* used by terminfo stuff */
WINDOW *_curscr; /* windows specific to a given terminal */
WINDOW *_newscr;
struct try *_keytry; /* "Try" for use with keypad mode */
char _backbuf[10]; /* Buffer for pushed back characters */
int _backcnt; /* How many characters in _backbuf? */
int _cursrow; /* Row and column of physical cursor */
int _curscol;
bool _nl; /* True if terminal has CRMOD bit on */
bool _raw; /* True if in raw mode */
bool _cbreak; /* True if in cbreak mode */
bool _echo; /* True if echo on */
bool _nlmapping; /* True if terminal is really doing */
/* NL mapping (fn of raw and nl) */
int _costs[9]; /* costs of cursor movements for mvcur */
int _costinit; /* set if _costs[] is initialized */
};
struct screen *SP;
#define MAXCOLUMNS 135
#define MAXLINES 66
#define UNINITIALISED ((struct try * ) -1)
//go.sysin dd *
echo 'x - =src/object.h'
sed 's/^X//' <<'//go.sysin dd *' >=src/object.h
X/*********************************************************************
* COPYRIGHT NOTICE *
**********************************************************************
* This software is copyright (C) 1982 by Pavel Curtis *
* *
* Permission is granted to reproduce and distribute *
* this file by any means so long as no fee is charged *
* above a nominal handling fee and so long as this *
* notice is always included in the copies. *
* *
* Other rights are reserved except as explicitly granted *
* by written permission of the author. *
* Pavel Curtis *
* Computer Science Dept. *
* 405 Upson Hall *
* Cornell University *
* Ithaca, NY 14853 *
* *
* Ph- (607) 256-4934 *
* *
* Pavel.Cornell at Udel-Relay (ARPAnet) *
* decvax!cornell!pavel (UUCPnet) *
*********************************************************************/
X/*
** $Header: RCS/object.v Revision 2.1 82/10/25 14:49:50 pavel Exp$
**
** object.h - Format of compiled terminfo files
**
** Header (12 bytes), containing information given below
** Names Section, containing the names of the terminal
** Boolean Section, containing the values of all of the
** boolean capabilities
** A null byte may be inserted here to make
** sure that the Number Section begins on an
** even word boundary.
** Number Section, containing the values of all of the numeric
** capabilities, each as a short integer
** String Section, containing short integer offsets into the
** String Table, one per string capability
** String Table, containing the actual characters of the string
** capabilities.
**
** NOTE that all short integers in the file are stored using VAX/PDP-style
** byte-swapping, i.e., least-significant byte first. The code in
** read_entry() automatically fixes this up on machines which don't use
** this system (I hope).
**
** $Log: RCS/object.v $
Revision 2.1 82/10/25 14:49:50 pavel
Added Copyright Notice
Revision 2.0 82/10/24 15:18:19 pavel
Beta-one Test Release
Revision 1.3 82/08/23 22:31:12 pavel
The REAL Alpha-one Release Version
Revision 1.2 82/08/19 19:10:18 pavel
Alpha Test Release One
Revision 1.1 82/08/12 18:48:55 pavel
Initial revision
**
*/
#define MAGIC 0432
struct header
{
short magic; /* Magic Number (0432) */
short name_size; /* Size of names section */
short bool_count; /* Number of booleans */
short num_count; /* Number of numbers */
short str_count; /* Number of strings */
short str_size; /* Size of string table */
};
//go.sysin dd *
echo 'x - =src/term.h'
sed 's/^X//' <<'//go.sysin dd *' >=src/term.h
X/*
** term.h -- Definition of struct term
*/
#ifndef SGTTY
# include "curses.h"
#endif
#ifdef SINGLE
# define CUR _first_term.
#else
# define CUR cur_term->
#endif
#define auto_left_margin CUR Booleans[0]
#define auto_right_margin CUR Booleans[1]
#define beehive_glitch CUR Booleans[2]
#define ceol_standout_glitch CUR Booleans[3]
#define eat_newline_glitch CUR Booleans[4]
#define erase_overstrike CUR Booleans[5]
#define generic_type CUR Booleans[6]
#define hard_copy CUR Booleans[7]
#define has_meta_key CUR Booleans[8]
#define has_status_line CUR Booleans[9]
#define insert_null_glitch CUR Booleans[10]
#define memory_above CUR Booleans[11]
#define memory_below CUR Booleans[12]
#define move_insert_mode CUR Booleans[13]
#define move_standout_mode CUR Booleans[14]
#define over_strike CUR Booleans[15]
#define status_line_esc_ok CUR Booleans[16]
#define teleray_glitch CUR Booleans[17]
#define tilde_glitch CUR Booleans[18]
#define transparent_underline CUR Booleans[19]
#define xon_xoff CUR Booleans[20]
#define columns CUR Numbers[0]
#define init_tabs CUR Numbers[1]
#define lines CUR Numbers[2]
#define lines_of_memory CUR Numbers[3]
#define magic_cookie_glitch CUR Numbers[4]
#define padding_baud_rate CUR Numbers[5]
#define virtual_terminal CUR Numbers[6]
#define width_status_line CUR Numbers[7]
#define num_labels CUR Numbers[8]
#define label_height CUR Numbers[9]
#define label_width CUR Numbers[10]
#define back_tab CUR Strings[0]
#define bell CUR Strings[1]
#define carriage_return CUR Strings[2]
#define change_scroll_region CUR Strings[3]
#define clear_all_tabs CUR Strings[4]
#define clear_screen CUR Strings[5]
#define clr_eol CUR Strings[6]
#define clr_eos CUR Strings[7]
#define column_address CUR Strings[8]
#define command_character CUR Strings[9]
#define cursor_address CUR Strings[10]
#define cursor_down CUR Strings[11]
#define cursor_home CUR Strings[12]
#define cursor_invisible CUR Strings[13]
#define cursor_left CUR Strings[14]
#define cursor_mem_address CUR Strings[15]
#define cursor_normal CUR Strings[16]
#define cursor_right CUR Strings[17]
#define cursor_to_ll CUR Strings[18]
#define cursor_up CUR Strings[19]
#define cursor_visible CUR Strings[20]
#define delete_character CUR Strings[21]
#define delete_line CUR Strings[22]
#define dis_status_line CUR Strings[23]
#define down_half_line CUR Strings[24]
#define enter_alt_charset_mode CUR Strings[25]
#define enter_blink_mode CUR Strings[26]
#define enter_bold_mode CUR Strings[27]
#define enter_ca_mode CUR Strings[28]
#define enter_delete_mode CUR Strings[29]
#define enter_dim_mode CUR Strings[30]
#define enter_insert_mode CUR Strings[31]
#define enter_secure_mode CUR Strings[32]
#define enter_protected_mode CUR Strings[33]
#define enter_reverse_mode CUR Strings[34]
#define enter_standout_mode CUR Strings[35]
#define enter_underline_mode CUR Strings[36]
#define erase_chars CUR Strings[37]
#define exit_alt_charset_mode CUR Strings[38]
#define exit_attribute_mode CUR Strings[39]
#define exit_ca_mode CUR Strings[40]
#define exit_delete_mode CUR Strings[41]
#define exit_insert_mode CUR Strings[42]
#define exit_standout_mode CUR Strings[43]
#define exit_underline_mode CUR Strings[44]
#define flash_screen CUR Strings[45]
#define form_feed CUR Strings[46]
#define from_status_line CUR Strings[47]
#define init_1string CUR Strings[48]
#define init_2string CUR Strings[49]
#define init_3string CUR Strings[50]
#define init_file CUR Strings[51]
#define insert_character CUR Strings[52]
#define insert_line CUR Strings[53]
#define insert_padding CUR Strings[54]
#define key_backspace CUR Strings[55]
#define key_catab CUR Strings[56]
#define key_clear CUR Strings[57]
#define key_ctab CUR Strings[58]
#define key_dc CUR Strings[59]
#define key_dl CUR Strings[60]
#define key_down CUR Strings[61]
#define key_eic CUR Strings[62]
#define key_eol CUR Strings[63]
#define key_eos CUR Strings[64]
#define key_f0 CUR Strings[65]
#define key_f1 CUR Strings[66]
#define key_f10 CUR Strings[67]
#define key_f2 CUR Strings[68]
#define key_f3 CUR Strings[69]
#define key_f4 CUR Strings[70]
#define key_f5 CUR Strings[71]
#define key_f6 CUR Strings[72]
#define key_f7 CUR Strings[73]
#define key_f8 CUR Strings[74]
#define key_f9 CUR Strings[75]
#define key_home CUR Strings[76]
#define key_ic CUR Strings[77]
#define key_il CUR Strings[78]
#define key_left CUR Strings[79]
#define key_ll CUR Strings[80]
#define key_npage CUR Strings[81]
#define key_ppage CUR Strings[82]
#define key_right CUR Strings[83]
#define key_sf CUR Strings[84]
#define key_sr CUR Strings[85]
#define key_stab CUR Strings[86]
#define key_up CUR Strings[87]
#define keypad_local CUR Strings[88]
#define keypad_xmit CUR Strings[89]
#define lab_f0 CUR Strings[90]
#define lab_f1 CUR Strings[91]
#define lab_f10 CUR Strings[92]
#define lab_f2 CUR Strings[93]
#define lab_f3 CUR Strings[94]
#define lab_f4 CUR Strings[95]
#define lab_f5 CUR Strings[96]
#define lab_f6 CUR Strings[97]
#define lab_f7 CUR Strings[98]
#define lab_f8 CUR Strings[99]
#define lab_f9 CUR Strings[100]
#define meta_off CUR Strings[101]
#define meta_on CUR Strings[102]
#define newline CUR Strings[103]
#define pad_char CUR Strings[104]
#define parm_dch CUR Strings[105]
#define parm_delete_line CUR Strings[106]
#define parm_down_cursor CUR Strings[107]
#define parm_ich CUR Strings[108]
#define parm_index CUR Strings[109]
#define parm_insert_line CUR Strings[110]
#define parm_left_cursor CUR Strings[111]
#define parm_right_cursor CUR Strings[112]
#define parm_rindex CUR Strings[113]
#define parm_up_cursor CUR Strings[114]
#define pkey_key CUR Strings[115]
#define pkey_local CUR Strings[116]
#define pkey_xmit CUR Strings[117]
#define print_screen CUR Strings[118]
#define prtr_off CUR Strings[119]
#define prtr_on CUR Strings[120]
#define repeat_char CUR Strings[121]
#define reset_1string CUR Strings[122]
#define reset_2string CUR Strings[123]
#define reset_3string CUR Strings[124]
#define reset_file CUR Strings[125]
#define restore_cursor CUR Strings[126]
#define row_address CUR Strings[127]
#define save_cursor CUR Strings[128]
#define scroll_forward CUR Strings[129]
#define scroll_reverse CUR Strings[130]
#define set_attributes CUR Strings[131]
#define set_tab CUR Strings[132]
#define set_window CUR Strings[133]
#define tab CUR Strings[134]
#define to_status_line CUR Strings[135]
#define underline_char CUR Strings[136]
#define up_half_line CUR Strings[137]
#define init_prog CUR Strings[138]
#define key_a1 CUR Strings[139]
#define key_a3 CUR Strings[140]
#define key_b2 CUR Strings[141]
#define key_c1 CUR Strings[142]
#define key_c3 CUR Strings[143]
#define prtr_non CUR Strings[144]
#define char_padding CUR Strings[145]
#define acs_chars CUR Strings[146]
#define plab_norm CUR Strings[147]
struct term
{
char *term_names; /* offset in str_table of terminal names */
char *str_table; /* pointer to string table */
short Filedes; /* file description being written to */
SGTTY Ottyb, /* original state of the terminal */
Nttyb; /* current state of the terminal */
char Booleans[21];
short Numbers[11];
char *Strings[148];
};
struct term _first_term;
struct term *cur_term;
#define BOOLCOUNT 21
#define NUMCOUNT 11
#define STRCOUNT 148
//go.sysin dd *
echo 'x - =src/terminfo.h'
sed 's/^X//' <<'//go.sysin dd *' >=src/terminfo.h
X/*********************************************************************
* COPYRIGHT NOTICE *
**********************************************************************
* This software is copyright (C) 1982 by Pavel Curtis *
* *
* Permission is granted to reproduce and distribute *
* this file by any means so long as no fee is charged *
* above a nominal handling fee and so long as this *
* notice is always included in the copies. *
* *
* Other rights are reserved except as explicitly granted *
* by written permission of the author. *
* Pavel Curtis *
* Computer Science Dept. *
* 405 Upson Hall *
* Cornell University *
* Ithaca, NY 14853 *
* *
* Ph- (607) 256-4934 *
* *
* Pavel.Cornell at Udel-Relay (ARPAnet) *
* decvax!cornell!pavel (UUCPnet) *
*********************************************************************/
X/*
* $Header: RCS/terminfo.v Revision 2.1 82/10/25 14:49:59 pavel Exp$
*
* terminfo.h - those things needed for programs runnning at the
* terminfo level.
*
* $Log: RCS/terminfo.v $
Revision 2.1 82/10/25 14:49:59 pavel
Added Copyright Notice
Revision 2.0 82/10/24 15:18:26 pavel
Beta-one Test Release
Revision 1.4 82/08/23 22:31:21 pavel
The REAL Alpha-one Release Version
Revision 1.3 82/08/19 19:24:11 pavel
Alpha Test Release One
Revision 1.2 82/08/19 19:10:56 pavel
Alpha Test Release One
Revision 1.1 82/08/15 16:42:20 pavel
Initial revision
*
*/
#ifndef A_STANDOUT
#include <stdio.h>
#include <sgtty.h>
#define SGTTY struct sgttyb
/* Video attributes */
#define A_NORMAL 0000000
#define A_ATTRIBUTES 0377600
#define A_CHARTEXT 0000177
#define A_STANDOUT 0000200
#define A_UNDERLINE 0000400
#ifndef MINICURSES
# define A_REVERSE 0001000
# define A_BLINK 0002000
# define A_DIM 0004000
# define A_BOLD 0010000
# define A_INVIS 0020000
# define A_PROTECT 0040000
# define A_ALTCHARSET 0100000
#endif MINICURSES
extern char ttytype[];
#define NAMESIZE 256
#endif
//go.sysin dd *
echo 'x - =src/unctrl.h'
sed 's/^X//' <<'//go.sysin dd *' >=src/unctrl.h
X/*********************************************************************
* COPYRIGHT NOTICE *
**********************************************************************
* This software is copyright (C) 1982 by Pavel Curtis *
* *
* Permission is granted to reproduce and distribute *
* this file by any means so long as no fee is charged *
* above a nominal handling fee and so long as this *
* notice is always included in the copies. *
* *
* Other rights are reserved except as explicitly granted *
* by written permission of the author. *
* Pavel Curtis *
* Computer Science Dept. *
* 405 Upson Hall *
* Cornell University *
* Ithaca, NY 14853 *
* *
* Ph- (607) 256-4934 *
* *
* Pavel.Cornell at Udel-Relay (ARPAnet) *
* decvax!cornell!pavel (UUCPnet) *
*********************************************************************/
X/*
* unctrl.h
*
* $Header: RCS/unctrl.v Revision 2.1 82/10/25 14:50:04 pavel Exp$
*
* $Log: RCS/unctrl.v $
Revision 2.1 82/10/25 14:50:04 pavel
Added Copyright Notice
Revision 2.0 82/10/24 15:18:28 pavel
Beta-one Test Release
Revision 1.3 82/08/23 22:31:24 pavel
The REAL Alpha-one Release Version
Revision 1.2 82/08/19 19:10:59 pavel
Alpha Test Release One
Revision 1.1 82/08/19 19:04:26 pavel
Initial revision
*/
extern char *_unctrl[];
# define unctrl(ch) (_unctrl[(unsigned) ch])
//go.sysin dd *
exit
More information about the Mod.sources
mailing list