Vile 10/17 - vi feel-alike (multi-window)

Paul Fox pgf at cayman.COM
Sat Jun 8 08:09:52 AEST 1991


#!/bin/sh
# this is vileshar.10 (part 10 of Vile)
# do not concatenate these parts, unpack them in order with /bin/sh
# file nefunc.h continued
#
if test ! -r _shar_seq_.tmp; then
	echo 'Please unpack part 1 first!'
	exit 1
fi
(read Scheck
 if test "$Scheck" != 10; then
	echo Please unpack part "$Scheck" next!
	exit 1
 else
	exit 0
 fi
) < _shar_seq_.tmp || exit 1
echo 'x - continuing file nefunc.h'
sed 's/^X//' << 'SHAR_EOF' >> 'nefunc.h' &&
#endif
#if !SMALLER
extern int cbuf40();
X	CMDFUNC f_cbuf40 = { cbuf40,	REDO };
#endif
extern int delwind();
X	CMDFUNC f_delwind = { delwind,	NONE };
#if AEDIT
extern int deblank();
X	CMDFUNC f_deblank = { deblank,	REDO|UNDO };
#endif
extern int delgmode();
X	CMDFUNC f_delgmode = { delgmode,	NONE };
extern int delmode();
X	CMDFUNC f_delmode = { delmode,	NONE|(EXRCOK|EXTRA) };
extern int deltoeol();
X	CMDFUNC f_deltoeol = { deltoeol,	REDO|UNDO };
#if REBIND
extern int desbind();
X	CMDFUNC f_desbind = { desbind,	NONE };
#endif
#if REBIND
extern int deskey();
X	CMDFUNC f_deskey = { deskey,	NONE };
#endif
#if AEDIT
extern int detab();
X	CMDFUNC f_detab = { detab,	REDO|UNDO };
#endif
extern int dotcmdplay();
X	CMDFUNC f_dotcmdplay = { dotcmdplay,	NONE };
#if !SMALLER
extern int execbuf();
X	CMDFUNC f_execbuf = { execbuf,	NONE };
#endif
#if NEVER
extern int execcmd();
X	CMDFUNC f_execcmd = { execcmd,	NONE };
#endif
#if !SMALLER
extern int execfile();
X	CMDFUNC f_execfile = { execfile,	NONE };
#endif
#if PROC
extern int execproc();
X	CMDFUNC f_execproc = { execproc,	REDO };
#endif
extern int enlargewind();
X	CMDFUNC f_enlargewind = { enlargewind,	NONE };
#if AEDIT
extern int entab();
X	CMDFUNC f_entab = { entab,	REDO|UNDO };
#endif
extern int esc();
X	CMDFUNC f_esc = { esc,	NONE };
extern int fcsrch();
X	CMDFUNC f_fcsrch = { fcsrch,	MOTION };
extern int fcsrch_to();
X	CMDFUNC f_fcsrch_to = { fcsrch_to,	MOTION };
extern int filefind();
X	CMDFUNC f_filefind = { filefind,	NONE|(BANG|FILE1|PLUS) };
extern int filename();
X	CMDFUNC f_filename = { filename,	NONE|(NAMEDF) };
extern int fileread();
X	CMDFUNC f_fileread = { fileread,	NONE };
#if !SMALLER
extern int filesave();
X	CMDFUNC f_filesave = { filesave,	NONE };
#endif
extern int filewrite();
X	CMDFUNC f_filewrite = { filewrite,	NONE };
extern int filter();
X	CMDFUNC f_filter = { filter,	REDO|UNDO };
#if FINDERR
extern int finderr();
X	CMDFUNC f_finderr = { finderr,	NONE };
#endif
extern int firstnonwhite();
X	CMDFUNC f_firstnonwhite = { firstnonwhite,	MOTION };
#if ISRCH
extern int fisearch();
X	CMDFUNC f_fisearch = { fisearch,	NONE };
#endif
extern int flipchar();
X	CMDFUNC f_flipchar = { flipchar,	REDO|UNDO };
#if FLABEL
extern int fnclabel();
X	CMDFUNC f_fnclabel = { fnclabel,	NONE };
#endif
extern int forwdelchar();
X	CMDFUNC f_forwdelchar = { forwdelchar,	REDO|UNDO };
extern int forwhpage();
X	CMDFUNC f_forwhpage = { forwhpage,	NONE };
extern int forwchar();
X	CMDFUNC f_forwchar = { forwchar,	MOTION };
extern int forwpage();
X	CMDFUNC f_forwpage = { forwpage,	MOTION };
extern int forwline();
X	CMDFUNC f_forwline = { forwline,	GOAL|MOTION|FL };
extern int forwbline();
X	CMDFUNC f_forwbline = { forwbline,	MOTION|FL };
extern int forwword();
X	CMDFUNC f_forwword = { forwword,	MOTION };
extern int forwviword();
X	CMDFUNC f_forwviword = { forwviword,	MOTION };
extern int forwendw();
X	CMDFUNC f_forwendw = { forwendw,	MOTION };
extern int forwviendw();
X	CMDFUNC f_forwviendw = { forwviendw,	MOTION };
#if !SMALLER
extern int forwhunt();
X	CMDFUNC f_forwhunt = { forwhunt,	ABS|MOTION };
#endif
extern int forwsearch();
X	CMDFUNC f_forwsearch = { forwsearch,	ABS|MOTION };
#if CFENCE
extern int getfence();
X	CMDFUNC f_getfence = { getfence,	ABS|MOTION };
#endif
#if GLOBALS
extern int globals();
X	CMDFUNC f_globals = { globals,	NONE };
#endif
extern int godotplus();
X	CMDFUNC f_godotplus = { godotplus,	MOTION|FL };
extern int gomark();
X	CMDFUNC f_gomark = { gomark,	MOTION|FL|(RANGE) };
#if WORDPRO
extern int gotobop();
X	CMDFUNC f_gotobop = { gotobop,	ABS|MOTION };
#endif
#if WORDPRO
extern int gotoeop();
X	CMDFUNC f_gotoeop = { gotoeop,	ABS|MOTION };
#endif
#if !SMALLER
extern int gotobob();
X	CMDFUNC f_gotobob = { gotobob,	ABS|MOTION };
#endif
#if !SMALLER
extern int gotoeob();
X	CMDFUNC f_gotoeob = { gotoeob,	ABS|MOTION };
#endif
extern int gotobol();
X	CMDFUNC f_gotobol = { gotobol,	MOTION };
extern int gotoeol();
X	CMDFUNC f_gotoeol = { gotoeol,	MOTION|GOAL };
extern int gotobos();
X	CMDFUNC f_gotobos = { gotobos,	MOTION|FL };
extern int gotomos();
X	CMDFUNC f_gotomos = { gotomos,	MOTION|FL };
extern int gotoeos();
X	CMDFUNC f_gotoeos = { gotoeos,	MOTION|FL };
#if WORDPRO
extern int gotobosec();
X	CMDFUNC f_gotobosec = { gotobosec,	ABS|MOTION };
#endif
#if WORDPRO
extern int gotoeosec();
X	CMDFUNC f_gotoeosec = { gotoeosec,	ABS|MOTION };
#endif
#if TAGS
extern int gototag();
X	CMDFUNC f_gototag = { gototag,	NONE|(BANG|WORD1) };
#endif
extern int gotocol();
X	CMDFUNC f_gotocol = { gotocol,	MOTION };
extern int gotoline();
X	CMDFUNC f_gotoline = { gotoline,	ABS|MOTION|FL|(RANGE) };
extern int golinenmmark();
X	CMDFUNC f_golinenmmark = { golinenmmark,	MOTION|FL };
extern int goexactnmmark();
X	CMDFUNC f_goexactnmmark = { goexactnmmark,	MOTION };
extern int help();
X	CMDFUNC f_help = { help,	NONE };
extern int histbuff();
X	CMDFUNC f_histbuff = { histbuff,	NONE };
extern int insert();
X	CMDFUNC f_insert = { insert,	REDO|UNDO };
extern int insertbol();
X	CMDFUNC f_insertbol = { insertbol,	REDO|UNDO };
#if BEFORE
extern int insfiletop();
X	CMDFUNC f_insfiletop = { insfiletop,	REDO|UNDO };
#endif
extern int insfile();
X	CMDFUNC f_insfile = { insfile,	REDO|UNDO|GLOBOK|(FROM|ZERO|NAMEDF) };
#if !SMALLER
extern int insspace();
X	CMDFUNC f_insspace = { insspace,	REDO|UNDO };
#endif
#if !SMALLER
extern int istring();
X	CMDFUNC f_istring = { istring,	REDO|UNDO };
#endif
extern int join();
X	CMDFUNC f_join = { join,	REDO|UNDO };
extern int killbuffer();
X	CMDFUNC f_killbuffer = { killbuffer,	NONE };
extern int showlength();
X	CMDFUNC f_showlength = { showlength,	NONE };
#if !SMALLER
extern int lastnonwhite();
X	CMDFUNC f_lastnonwhite = { lastnonwhite,	MOTION };
#endif
extern int listbuffers();
X	CMDFUNC f_listbuffers = { listbuffers,	NONE };
extern int lineputafter();
X	CMDFUNC f_lineputafter = { lineputafter,	REDO|UNDO|GLOBOK|(FROM|ZERO|WORD1) };
extern int lineputbefore();
X	CMDFUNC f_lineputbefore = { lineputbefore,	REDO|UNDO|GLOBOK|(FROM|WORD1) };
extern int lineundo();
X	CMDFUNC f_lineundo = { lineundo,	NONE };
extern int map();
X	CMDFUNC f_map = { map,	NONE|(EXRCOK|BANG|EXTRA) };
extern int cntl_af();
X	CMDFUNC f_cntl_af = { cntl_af,	NONE };
extern int opermove();
X	CMDFUNC f_opermove = { opermove,	OPER|(RANGE|EXTRA) };
extern int mvdnnxtwind();
X	CMDFUNC f_mvdnnxtwind = { mvdnnxtwind,	NONE };
extern int mvupnxtwind();
X	CMDFUNC f_mvupnxtwind = { mvupnxtwind,	NONE };
extern int mvdnwind();
X	CMDFUNC f_mvdnwind = { mvdnwind,	GOAL };
extern int mvupwind();
X	CMDFUNC f_mvupwind = { mvupwind,	GOAL };
extern int mvrightwind();
X	CMDFUNC f_mvrightwind = { mvrightwind,	GOAL };
extern int mvleftwind();
X	CMDFUNC f_mvleftwind = { mvleftwind,	GOAL };
extern int nextbuffer();
X	CMDFUNC f_nextbuffer = { nextbuffer,	NONE|(BANG|NAMEDFS) };
extern int namebuffer();
X	CMDFUNC f_namebuffer = { namebuffer,	NONE };
#if !SMALLER
extern int newline();
X	CMDFUNC f_newline = { newline,	REDO|UNDO };
#endif
extern int newlength();
X	CMDFUNC f_newlength = { newlength,	NONE };
extern int newwidth();
X	CMDFUNC f_newwidth = { newwidth,	NONE };
extern int nextwind();
X	CMDFUNC f_nextwind = { nextwind,	NONE };
extern int nullproc();
X	CMDFUNC f_nullproc = { nullproc,	NONE };
extern int onamedcmd();
X	CMDFUNC f_onamedcmd = { onamedcmd,	NONE };
extern int namedcmd();
X	CMDFUNC f_namedcmd = { namedcmd,	NONE };
extern int ex();
X	CMDFUNC f_ex = { ex,	NONE|(BANG|FILE1) };
extern int operchg();
X	CMDFUNC f_operchg = { operchg,	OPER|REDO|UNDO };
extern int operlinechg();
X	CMDFUNC f_operlinechg = { operlinechg,	OPER|REDO|UNDO|(RANGE) };
extern int operdel();
X	CMDFUNC f_operdel = { operdel,	OPER|REDO|UNDO };
extern int operlinedel();
X	CMDFUNC f_operlinedel = { operlinedel,	OPER|REDO|UNDO|GLOBOK|(RANGE+WORD1) };
extern int operfilter();
X	CMDFUNC f_operfilter = { operfilter,	OPER|REDO|UNDO|(EXRCOK|RANGE|NAMEDFS|DFLNONE|NL) };
#if WORDPRO
extern int operformat();
X	CMDFUNC f_operformat = { operformat,	OPER|REDO|UNDO|(RANGE) };
#endif
extern int operflip();
X	CMDFUNC f_operflip = { operflip,	OPER|REDO|UNDO|GLOBOK|(RANGE) };
#if GLOBALS
extern int operglobals();
X	CMDFUNC f_operglobals = { operglobals,	OPER|(/*RANGE|*/BANG|EXTRA|DFLALL) };
#endif
#if GLOBALS
extern int opervglobals();
X	CMDFUNC f_opervglobals = { opervglobals,	OPER|(RANGE|BANG|EXTRA|DFLALL) };
#endif
extern int operlower();
X	CMDFUNC f_operlower = { operlower,	OPER|REDO|UNDO|GLOBOK|(RANGE) };
#if GLOBALS
extern int operlist();
X	CMDFUNC f_operlist = { operlist,	OPER|GLOBOK|(RANGE) };
#endif
#if GLOBALS
extern int operprint();
X	CMDFUNC f_operprint = { operprint,	OPER|GLOBOK|(RANGE) };
#endif
extern int operupper();
X	CMDFUNC f_operupper = { operupper,	OPER|REDO|UNDO|GLOBOK|(RANGE) };
extern int operlshift();
X	CMDFUNC f_operlshift = { operlshift,	OPER|REDO|UNDO|GLOBOK|(RANGE) };
extern int operrshift();
X	CMDFUNC f_operrshift = { operrshift,	OPER|REDO|UNDO|GLOBOK|(RANGE) };
extern int opersubst();
X	CMDFUNC f_opersubst = { opersubst,	OPER|REDO|UNDO|GLOBOK|(RANGE|EXTRA) };
extern int operyank();
X	CMDFUNC f_operyank = { operyank,	OPER };
extern int operlineyank();
X	CMDFUNC f_operlineyank = { operlineyank,	OPER|(RANGE|WORD1) };
extern int openup();
X	CMDFUNC f_openup = { openup,	REDO|UNDO|(FROM) };
extern int opendown();
X	CMDFUNC f_opendown = { opendown,	REDO|UNDO|(FROM|ZERO) };
extern int operwrite();
X	CMDFUNC f_operwrite = { operwrite,	OPER|(RANGE|BANG|FILE1|DFLALL) };
extern int overwrite();
X	CMDFUNC f_overwrite = { overwrite,	REDO|UNDO };
extern int onlywind();
X	CMDFUNC f_onlywind = { onlywind,	NONE };
extern int poswind();
X	CMDFUNC f_poswind = { poswind,	NONE };
extern int prevwind();
X	CMDFUNC f_prevwind = { prevwind,	NONE };
extern int pipecmd();
X	CMDFUNC f_pipecmd = { pipecmd,	NONE };
extern int putafter();
X	CMDFUNC f_putafter = { putafter,	REDO|UNDO };
extern int putbefore();
X	CMDFUNC f_putbefore = { putbefore,	REDO|UNDO };
extern int quit();
X	CMDFUNC f_quit = { quit,	NONE|(BANG) };
extern int quithard();
X	CMDFUNC f_quithard = { quithard,	NONE };
extern int quickexit();
X	CMDFUNC f_quickexit = { quickexit,	NONE|(BANG|NL) };
extern int quote();
X	CMDFUNC f_quote = { quote,	REDO|UNDO };
extern int refresh();
X	CMDFUNC f_refresh = { refresh,	NONE };
#if !SMALLER
extern int reposition();
X	CMDFUNC f_reposition = { reposition,	NONE };
#endif
extern int rep_csrch();
X	CMDFUNC f_rep_csrch = { rep_csrch,	MOTION };
extern int replacechar();
X	CMDFUNC f_replacechar = { replacechar,	REDO|UNDO };
extern int respawn();
X	CMDFUNC f_respawn = { respawn,	NONE };
#if !SMALLER
extern int resize();
X	CMDFUNC f_resize = { resize,	NONE };
#endif
#if !SMALLER
extern int restwnd();
X	CMDFUNC f_restwnd = { restwnd,	NONE };
#endif
extern int rev_csrch();
X	CMDFUNC f_rev_csrch = { rev_csrch,	MOTION };
#if ISRCH
extern int risearch();
X	CMDFUNC f_risearch = { risearch,	NONE };
#endif
extern int revsearch();
X	CMDFUNC f_revsearch = { revsearch,	ABS|MOTION };
extern int scrforwsearch();
X	CMDFUNC f_scrforwsearch = { scrforwsearch,	ABS|MOTION };
extern int scrbacksearch();
X	CMDFUNC f_scrbacksearch = { scrbacksearch,	ABS|MOTION };
extern int scrsearchpat();
X	CMDFUNC f_scrsearchpat = { scrsearchpat,	NONE };
extern int settab();
X	CMDFUNC f_settab = { settab,	NONE };
extern int spawncli();
X	CMDFUNC f_spawncli = { spawncli,	NONE };
#if !SMALLER
extern int savewnd();
X	CMDFUNC f_savewnd = { savewnd,	NONE };
#endif
extern int scrnextup();
X	CMDFUNC f_scrnextup = { scrnextup,	NONE };
extern int scrnextdw();
X	CMDFUNC f_scrnextdw = { scrnextdw,	NONE };
extern int setfillcol();
X	CMDFUNC f_setfillcol = { setfillcol,	NONE };
#if CRYPT
extern int setkey();
X	CMDFUNC f_setkey = { setkey,	NONE };
#endif
extern int setmode();
X	CMDFUNC f_setmode = { setmode,	NONE|(EXRCOK|EXTRA) };
extern int setgmode();
X	CMDFUNC f_setgmode = { setgmode,	NONE };
extern int setnmmark();
X	CMDFUNC f_setnmmark = { setnmmark,	NONE|(FROM+WORD1) };
#if !SMALLER
extern int setvar();
X	CMDFUNC f_setvar = { setvar,	NONE };
#endif
#if VMALLOC
extern int setvmalloc();
X	CMDFUNC f_setvmalloc = { setvmalloc,	NONE };
#endif
extern int showcpos();
X	CMDFUNC f_showcpos = { showcpos,	NONE };
extern int showmodes();
X	CMDFUNC f_showmodes = { showmodes,	NONE };
extern int showgmodes();
X	CMDFUNC f_showgmodes = { showgmodes,	NONE };
extern int showversion();
X	CMDFUNC f_showversion = { showversion,	NONE|(EXRCOK) };
extern int shrinkwind();
X	CMDFUNC f_shrinkwind = { shrinkwind,	NONE };
extern int source();
X	CMDFUNC f_source = { source,	NONE|(EXRCOK|NAMEDF) };
extern int spawn();
X	CMDFUNC f_spawn = { spawn,	NONE };
extern int splitwind();
X	CMDFUNC f_splitwind = { splitwind,	NONE };
extern int storemac();
X	CMDFUNC f_storemac = { storemac,	NONE };
#if PROC
extern int storeproc();
X	CMDFUNC f_storeproc = { storeproc,	NONE };
#endif
extern int subst_again();
X	CMDFUNC f_subst_again = { subst_again,	REDO|UNDO|GLOBOK|(RANGE|EXTRA) };
extern int opertransf();
X	CMDFUNC f_opertransf = { opertransf,	OPER|(RANGE+EXTRA) };
extern int togglelistbuffers();
X	CMDFUNC f_togglelistbuffers = { togglelistbuffers,	NONE };
extern int trimline();
X	CMDFUNC f_trimline = { trimline,	REDO|UNDO|GLOBOK };
#if !SMALLER
extern int twiddle();
X	CMDFUNC f_twiddle = { twiddle,	REDO|UNDO };
#endif
#if REBIND
extern int unbindkey();
X	CMDFUNC f_unbindkey = { unbindkey,	NONE };
#endif
extern int undo();
X	CMDFUNC f_undo = { undo,	NONE };
extern int unarg();
X	CMDFUNC f_unarg = { unarg,	NONE };
extern int unimpl();
X	CMDFUNC f_unimpl = { unimpl,	NONE };
extern int unmark();
X	CMDFUNC f_unmark = { unmark,	NONE };
extern int unmap();
X	CMDFUNC f_unmap = { unmap,	NONE|(EXRCOK|BANG|EXTRA) };
#if TAGS
extern int untagpop();
X	CMDFUNC f_untagpop = { untagpop,	NONE };
#endif
#if !SMALLER
extern int upscreen();
X	CMDFUNC f_upscreen = { upscreen,	NONE };
#endif
extern int usebuffer();
X	CMDFUNC f_usebuffer = { usebuffer,	NONE };
extern int usekreg();
X	CMDFUNC f_usekreg = { usekreg,	REDO };
extern int visual();
X	CMDFUNC f_visual = { visual,	NONE };
#if GLOBALS
extern int vglobals();
X	CMDFUNC f_vglobals = { vglobals,	NONE };
#endif
extern int viewfile();
X	CMDFUNC f_viewfile = { viewfile,	NONE };
extern int writequit();
X	CMDFUNC f_writequit = { writequit,	NONE|(NL) };
#if !SMALLER
extern int wrapword();
X	CMDFUNC f_wrapword = { wrapword,	REDO|UNDO };
#endif
#if !SMALLER
extern int writemsg();
X	CMDFUNC f_writemsg = { writemsg,	NONE };
#endif
extern int yankline();
X	CMDFUNC f_yankline = { yankline,	NONE };
SHAR_EOF
echo 'File nefunc.h is complete' &&
chmod 0664 nefunc.h ||
echo 'restore of nefunc.h failed'
Wc_c="`wc -c < 'nefunc.h'`"
test 19211 -eq "$Wc_c" ||
	echo 'nefunc.h: original size 19211, current size' "$Wc_c"
# ============= nename.h ==============
echo 'x - extracting nename.h (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'nename.h' &&
/* nename.h: this header file was produced automatically by
X * the ./mktbls program, based on input from the file cmdtbl
X */
X
/* if you maintain this by hand, keep it in */
/* alphabetical order!!!! */
X
NTAB nametbl[] = {
X	{ "!",	&f_operfilter },
X	{ "!!",	&f_respawn },
X	{ "&",	&f_subst_again },
X	{ "*",	&f_togglelistbuffers },
X	{ ":",	&f_namedcmd },
X	{ "<",	&f_operlshift },
X	{ "=",	&f_showlength },
X	{ ">",	&f_operrshift },
X	{ "E",	&f_filefind },
X	{ "L",	&f_operlower },
X	{ "Put",	&f_lineputbefore },
X	{ "Q",	&f_quit },
#if (BEFORE)
X	{ "R",	&f_insfiletop },
#endif
X	{ "U",	&f_operupper },
X	{ "W",	&f_operwrite },
X	{ "WQ",	&f_writequit },
X	{ "Wq",	&f_writequit },
X	{ "_",	&f_histbuff },
X	{ "a",	&f_opendown },
#if (!FEWNAMES)
X	{ "abort-command",	&f_esc },
#endif
#if (!FEWNAMES)
X	{ "alternate-buffer",	&f_altbuff },
#endif
X	{ "append",	&f_opendown },
#if (!FEWNAMES)
X	{ "append-eol",	&f_appendeol },
#endif
#if (!FEWNAMES)
X	{ "appendchar",	&f_append },
#endif
#if (APROP|REBIND)
X	{ "apropos",	&f_apro },
#endif
X	{ "b",	&f_usebuffer },
#if (!FEWNAMES)
X	{ "backward-char-scan",	&f_bcsrch },
#endif
#if (!FEWNAMES)
X	{ "backward-char-scan-to",	&f_bcsrch_to },
#endif
#if (!FEWNAMES)
X	{ "backward-character",	&f_backchar },
#endif
#if (!FEWNAMES)
X	{ "begin-macro",	&f_ctlxlp },
#endif
#if (!SMALLER) & (!FEWNAMES)
X	{ "beginning-of-file",	&f_gotobob },
#endif
#if (!FEWNAMES)
X	{ "beginning-of-line",	&f_gotobol },
#endif
#if (!FEWNAMES)
X	{ "beginning-of-screen",	&f_gotobos },
#endif
#if (REBIND)
X	{ "bind-key",	&f_bindkey },
#endif
X	{ "buffer",	&f_usebuffer },
#if (!FEWNAMES)
X	{ "buffer-length",	&f_showlength },
#endif
X	{ "c",	&f_opercopy },
X	{ "ch",	&f_operlinechg },
#if (!FEWNAMES)
X	{ "change-char",	&f_chgchar },
#endif
#if (!FEWNAMES)
X	{ "change-file-name",	&f_filename },
#endif
#if (!FEWNAMES)
X	{ "change-line",	&f_chgline },
#endif
#if (!FEWNAMES)
X	{ "change-lines-til",	&f_operlinechg },
#endif
#if (!FEWNAMES)
X	{ "change-til",	&f_operchg },
#endif
#if (!FEWNAMES)
X	{ "change-to-end-of-line",	&f_chgtoeol },
#endif
#if (!FEWNAMES)
X	{ "clear-and-redraw",	&f_refresh },
#endif
#if (!FEWNAMES)
X	{ "clear-message-line",	&f_clrmes },
#endif
X	{ "cntl_a-prefix",	&f_cntl_af },
#if (!FEWNAMES)
X	{ "cntl_x-prefix",	&f_cntl_xf },
#endif
#if (!FEWNAMES)
X	{ "continue-search",	&f_consearch },
#endif
X	{ "copy",	&f_opercopy },
X	{ "d",	&f_operlinedel },
#if (AEDIT) & (!FEWNAMES)
X	{ "delete-blank-lines",	&f_deblank },
#endif
#if (!FEWNAMES)
X	{ "delete-buffer",	&f_killbuffer },
#endif
#if (!FEWNAMES)
X	{ "delete-global-mode",	&f_delgmode },
#endif
#if (!FEWNAMES)
X	{ "delete-lines-til",	&f_operlinedel },
#endif
#if (!FEWNAMES)
X	{ "delete-mode",	&f_delmode },
#endif
#if (!FEWNAMES)
X	{ "delete-next-character",	&f_forwdelchar },
#endif
#if (!FEWNAMES)
X	{ "delete-other-windows",	&f_onlywind },
#endif
#if (!FEWNAMES)
X	{ "delete-previous-character",	&f_backdelchar },
#endif
#if (!FEWNAMES)
X	{ "delete-til",	&f_operdel },
#endif
#if (!FEWNAMES)
X	{ "delete-to-end-of-line",	&f_deltoeol },
#endif
#if (!FEWNAMES)
X	{ "delete-window",	&f_delwind },
#endif
#if (REBIND)
X	{ "describe-bindings",	&f_desbind },
#endif
#if (REBIND)
X	{ "describe-key",	&f_deskey },
#endif
#if (AEDIT) & (!FEWNAMES)
X	{ "detab-line",	&f_detab },
#endif
X	{ "e",	&f_filefind },
X	{ "e!",	&f_fileread },
#if (!FEWNAMES)
X	{ "edit-file",	&f_filefind },
#endif
#if (!FEWNAMES)
X	{ "end-macro",	&f_ctlxrp },
#endif
#if (!SMALLER) & (!FEWNAMES)
X	{ "end-of-file",	&f_gotoeob },
#endif
#if (!FEWNAMES)
X	{ "end-of-line",	&f_gotoeol },
#endif
#if (!FEWNAMES)
X	{ "end-of-screen",	&f_gotoeos },
#endif
#if (AEDIT) & (!FEWNAMES)
X	{ "entab-line",	&f_entab },
#endif
X	{ "ex",	&f_ex },
#if (!SMALLER) & (!FEWNAMES)
X	{ "execute-buffer",	&f_execbuf },
#endif
#if (NEVER) & (!FEWNAMES)
X	{ "execute-command-line",	&f_execcmd },
#endif
#if (!SMALLER) & (!FEWNAMES)
X	{ "execute-file",	&f_execfile },
#endif
#if (!FEWNAMES)
X	{ "execute-macro",	&f_ctlxe },
#endif
#if (!FEWNAMES)
X	{ "execute-macro-1",	&f_cbuf1 },
#endif
#if (!FEWNAMES)
X	{ "execute-macro-10",	&f_cbuf10 },
#endif
#if (!SMALLER) & (!FEWNAMES)
X	{ "execute-macro-11",	&f_cbuf11 },
#endif
#if (!SMALLER) & (!FEWNAMES)
X	{ "execute-macro-12",	&f_cbuf12 },
#endif
#if (!SMALLER) & (!FEWNAMES)
X	{ "execute-macro-13",	&f_cbuf13 },
#endif
#if (!SMALLER) & (!FEWNAMES)
X	{ "execute-macro-14",	&f_cbuf14 },
#endif
#if (!SMALLER) & (!FEWNAMES)
X	{ "execute-macro-15",	&f_cbuf15 },
#endif
#if (!SMALLER) & (!FEWNAMES)
X	{ "execute-macro-16",	&f_cbuf16 },
#endif
#if (!SMALLER) & (!FEWNAMES)
X	{ "execute-macro-17",	&f_cbuf17 },
#endif
#if (!SMALLER) & (!FEWNAMES)
X	{ "execute-macro-18",	&f_cbuf18 },
#endif
#if (!SMALLER) & (!FEWNAMES)
X	{ "execute-macro-19",	&f_cbuf19 },
#endif
#if (!FEWNAMES)
X	{ "execute-macro-2",	&f_cbuf2 },
#endif
#if (!SMALLER) & (!FEWNAMES)
X	{ "execute-macro-20",	&f_cbuf20 },
#endif
#if (!SMALLER) & (!FEWNAMES)
X	{ "execute-macro-21",	&f_cbuf21 },
#endif
#if (!SMALLER) & (!FEWNAMES)
X	{ "execute-macro-22",	&f_cbuf22 },
#endif
#if (!SMALLER) & (!FEWNAMES)
X	{ "execute-macro-23",	&f_cbuf23 },
#endif
#if (!SMALLER) & (!FEWNAMES)
X	{ "execute-macro-24",	&f_cbuf24 },
#endif
#if (!SMALLER) & (!FEWNAMES)
X	{ "execute-macro-25",	&f_cbuf25 },
#endif
#if (!SMALLER) & (!FEWNAMES)
X	{ "execute-macro-26",	&f_cbuf26 },
#endif
#if (!SMALLER) & (!FEWNAMES)
X	{ "execute-macro-27",	&f_cbuf27 },
#endif
#if (!SMALLER) & (!FEWNAMES)
X	{ "execute-macro-28",	&f_cbuf28 },
#endif
#if (!SMALLER) & (!FEWNAMES)
X	{ "execute-macro-29",	&f_cbuf29 },
#endif
#if (!FEWNAMES)
X	{ "execute-macro-3",	&f_cbuf3 },
#endif
#if (!SMALLER) & (!FEWNAMES)
X	{ "execute-macro-30",	&f_cbuf30 },
#endif
#if (!SMALLER) & (!FEWNAMES)
X	{ "execute-macro-31",	&f_cbuf31 },
#endif
#if (!SMALLER) & (!FEWNAMES)
X	{ "execute-macro-32",	&f_cbuf32 },
#endif
#if (!SMALLER) & (!FEWNAMES)
X	{ "execute-macro-33",	&f_cbuf33 },
#endif
#if (!SMALLER) & (!FEWNAMES)
X	{ "execute-macro-34",	&f_cbuf34 },
#endif
#if (!SMALLER) & (!FEWNAMES)
X	{ "execute-macro-35",	&f_cbuf35 },
#endif
#if (!SMALLER) & (!FEWNAMES)
X	{ "execute-macro-36",	&f_cbuf36 },
#endif
#if (!SMALLER) & (!FEWNAMES)
X	{ "execute-macro-37",	&f_cbuf37 },
#endif
#if (!SMALLER) & (!FEWNAMES)
X	{ "execute-macro-38",	&f_cbuf38 },
#endif
#if (!SMALLER) & (!FEWNAMES)
X	{ "execute-macro-39",	&f_cbuf39 },
#endif
#if (!FEWNAMES)
X	{ "execute-macro-4",	&f_cbuf4 },
#endif
#if (!SMALLER) & (!FEWNAMES)
X	{ "execute-macro-40",	&f_cbuf40 },
#endif
#if (!FEWNAMES)
X	{ "execute-macro-5",	&f_cbuf5 },
#endif
#if (!FEWNAMES)
X	{ "execute-macro-6",	&f_cbuf6 },
#endif
#if (!FEWNAMES)
X	{ "execute-macro-7",	&f_cbuf7 },
#endif
#if (!FEWNAMES)
X	{ "execute-macro-8",	&f_cbuf8 },
#endif
#if (!FEWNAMES)
X	{ "execute-macro-9",	&f_cbuf9 },
#endif
#if (!FEWNAMES)
X	{ "execute-named-command",	&f_namedcmd },
#endif
#if (!FEWNAMES)
X	{ "execute-named-command-old",	&f_onamedcmd },
#endif
#if (PROC) & (!FEWNAMES)
X	{ "execute-procedure",	&f_execproc },
#endif
X	{ "exit",	&f_quit },
X	{ "f",	&f_filename },
X	{ "file",	&f_filename },
X	{ "filename",	&f_filename },
#if (!FEWNAMES)
X	{ "filter-buffer",	&f_filter },
#endif
#if (!FEWNAMES)
X	{ "filter-til",	&f_operfilter },
#endif
#if (!FEWNAMES)
X	{ "find-file",	&f_filefind },
#endif
#if (FINDERR) & (!FEWNAMES)
X	{ "find-next-error",	&f_finderr },
#endif
#if (TAGS) & (!FEWNAMES)
X	{ "find-tag",	&f_gototag },
#endif
#if (!FEWNAMES)
X	{ "first-nonwhite",	&f_firstnonwhite },
#endif
#if (!FEWNAMES)
X	{ "flip-character",	&f_flipchar },
#endif
#if (!FEWNAMES)
X	{ "flip-til",	&f_operflip },
#endif
#if (WORDPRO) & (!FEWNAMES)
X	{ "format-til",	&f_operformat },
#endif
#if (!FEWNAMES)
X	{ "forward-char-scan",	&f_fcsrch },
#endif
#if (!FEWNAMES)
X	{ "forward-char-scan-to",	&f_fcsrch_to },
#endif
#if (!FEWNAMES)
X	{ "forward-character",	&f_forwchar },
#endif
#if (GLOBALS)
X	{ "g",	&f_operglobals },
#endif
#if (GLOBALS)
X	{ "global",	&f_operglobals },
#endif
X	{ "gmodes",	&f_showgmodes },
#if (!FEWNAMES)
X	{ "goto-column",	&f_gotocol },
#endif
#if (!FEWNAMES)
X	{ "goto-line",	&f_gotoline },
#endif
#if (CFENCE) & (!FEWNAMES)
X	{ "goto-matching-fence",	&f_getfence },
#endif
#if (!FEWNAMES)
X	{ "goto-named-mark",	&f_golinenmmark },
#endif
#if (!FEWNAMES)
X	{ "goto-named-mark-exact",	&f_goexactnmmark },
#endif
#if (!FEWNAMES)
X	{ "grow-window",	&f_enlargewind },
#endif
X	{ "h",	&f_help },
#if (!FEWNAMES)
X	{ "handle-tab",	&f_settab },
#endif
X	{ "help",	&f_help },
#if (!FEWNAMES)
X	{ "historical-buffer",	&f_histbuff },
#endif
#if (!SMALLER)
X	{ "hunt-backward",	&f_backhunt },
#endif
#if (!SMALLER) & (!FEWNAMES)
X	{ "hunt-forward",	&f_forwhunt },
#endif
X	{ "i",	&f_openup },
#if (!FEWNAMES)
X	{ "i-shell",	&f_spawncli },
#endif
#if (ISRCH) & (!FEWNAMES)
X	{ "incremental-search",	&f_fisearch },
#endif
X	{ "insert",	&f_openup },
#if (!FEWNAMES)
X	{ "insert-bol",	&f_insertbol },
#endif
#if (!FEWNAMES)
X	{ "insert-file",	&f_insfile },
#endif
#if (BEFORE) & (!FEWNAMES)
X	{ "insert-file-at-top",	&f_insfiletop },
#endif
#if (!SMALLER) & (!FEWNAMES)
X	{ "insert-space",	&f_insspace },
#endif
#if (!SMALLER)
X	{ "insert-string",	&f_istring },
#endif
#if (!FEWNAMES)
X	{ "insertchar",	&f_insert },
#endif
#if (!FEWNAMES)
X	{ "join-lines",	&f_join },
#endif
X	{ "k",	&f_setnmmark },
X	{ "ki",	&f_killbuffer },
#if (!FEWNAMES)
X	{ "kill-buffer",	&f_killbuffer },
#endif
#if (GLOBALS)
X	{ "l",	&f_operlist },
#endif
#if (FLABEL)
X	{ "label-fkey",	&f_fnclabel },
#endif
#if (FLABEL) & (!FEWNAMES)
X	{ "label-function-key",	&f_fnclabel },
#endif
#if (!SMALLER) & (!FEWNAMES)
X	{ "last-nonwhite",	&f_lastnonwhite },
#endif
#if (!FEWNAMES)
X	{ "list-buffers",	&f_listbuffers },
#endif
#if (GLOBALS) & (!FEWNAMES)
X	{ "list-lines-til",	&f_operlist },
#endif
#if (!FEWNAMES)
X	{ "lower-til",	&f_operlower },
#endif
X	{ "m",	&f_opermove },
X	{ "map",	&f_map },
#if (!FEWNAMES)
X	{ "middle-of-screen",	&f_gotomos },
#endif
X	{ "modes",	&f_showmodes },
X	{ "move",	&f_opermove },
#if (!FEWNAMES)
X	{ "move-next-window-down",	&f_mvdnnxtwind },
#endif
#if (!FEWNAMES)
X	{ "move-next-window-up",	&f_mvupnxtwind },
#endif
#if (!FEWNAMES)
X	{ "move-window-down",	&f_mvdnwind },
#endif
#if (!FEWNAMES)
X	{ "move-window-left",	&f_mvleftwind },
#endif
#if (!FEWNAMES)
X	{ "move-window-right",	&f_mvrightwind },
#endif
#if (!FEWNAMES)
X	{ "move-window-up",	&f_mvupwind },
#endif
X	{ "n",	&f_nextbuffer },
#if (!SMALLER)
X	{ "newline",	&f_newline },
#endif
#if (!FEWNAMES)
X	{ "next-buffer",	&f_nextbuffer },
#endif
#if (!FEWNAMES)
X	{ "next-half-page",	&f_forwhpage },
#endif
#if (!FEWNAMES)
X	{ "next-line",	&f_forwline },
#endif
#if (!FEWNAMES)
X	{ "next-line-at-bol",	&f_forwbline },
#endif
#if (!FEWNAMES)
X	{ "next-page",	&f_forwpage },
#endif
#if (WORDPRO) & (!FEWNAMES)
X	{ "next-paragraph",	&f_gotoeop },
#endif
#if (!FEWNAMES)
X	{ "next-punc-word",	&f_forwviword },
#endif
#if (!FEWNAMES)
X	{ "next-punc-word-end",	&f_forwviendw },
#endif
#if (WORDPRO) & (!FEWNAMES)
X	{ "next-section",	&f_gotoeosec },
#endif
#if (!FEWNAMES)
X	{ "next-window",	&f_nextwind },
#endif
#if (!FEWNAMES)
X	{ "next-word",	&f_forwword },
#endif
#if (!FEWNAMES)
X	{ "next-word-end",	&f_forwendw },
#endif
#if (!FEWNAMES)
X	{ "nop",	&f_nullproc },
#endif
#if (GLOBALS)
X	{ "og",	&f_globals },
#endif
#if (!FEWNAMES)
X	{ "open-line-above",	&f_openup },
#endif
#if (!FEWNAMES)
X	{ "open-line-below",	&f_opendown },
#endif
#if (GLOBALS)
X	{ "ov",	&f_vglobals },
#endif
#if (!FEWNAMES)
X	{ "overwrite",	&f_overwrite },
#endif
#if (GLOBALS)
X	{ "p",	&f_operprint },
#endif
#if (!FEWNAMES)
X	{ "pipe-command",	&f_pipecmd },
#endif
#if (!FEWNAMES)
X	{ "position",	&f_showcpos },
#endif
#if (!FEWNAMES)
X	{ "position-window",	&f_poswind },
#endif
#if (!FEWNAMES)
X	{ "previous-half-page",	&f_backhpage },
#endif
#if (!FEWNAMES)
X	{ "previous-line",	&f_backline },
#endif
#if (!FEWNAMES)
X	{ "previous-line-at-bol",	&f_backbline },
#endif
#if (!FEWNAMES)
X	{ "previous-page",	&f_backpage },
#endif
#if (WORDPRO) & (!FEWNAMES)
X	{ "previous-paragraph",	&f_gotobop },
#endif
#if (!FEWNAMES)
X	{ "previous-punc-word",	&f_backviword },
#endif
#if (WORDPRO) & (!FEWNAMES)
X	{ "previous-section",	&f_gotobosec },
#endif
#if (!FEWNAMES)
X	{ "previous-window",	&f_prevwind },
#endif
#if (!FEWNAMES)
X	{ "previous-word",	&f_backword },
#endif
#if (GLOBALS) & (!FEWNAMES)
X	{ "print-lines-til",	&f_operprint },
#endif
X	{ "put",	&f_lineputafter },
#if (!FEWNAMES)
X	{ "put-after",	&f_putafter },
#endif
#if (!FEWNAMES)
X	{ "put-as-lines-after",	&f_lineputafter },
#endif
#if (!FEWNAMES)
X	{ "put-as-lines-before",	&f_lineputbefore },
#endif
#if (!FEWNAMES)
X	{ "put-before",	&f_putbefore },
#endif
X	{ "q",	&f_quit },
X	{ "q!",	&f_quithard },
#if (!FEWNAMES)
X	{ "quick-exit",	&f_quickexit },
#endif
#if (!FEWNAMES)
X	{ "quote-character",	&f_quote },
#endif
X	{ "r",	&f_insfile },
#if (REBIND)
X	{ "rebind-key",	&f_bindkey },
#endif
#if (!SMALLER)
X	{ "redraw-display",	&f_reposition },
#endif
X	{ "rename-buffer",	&f_namebuffer },
#if (!FEWNAMES)
X	{ "repeat-char-scan",	&f_rep_csrch },
#endif
#if (!FEWNAMES)
X	{ "repeat-last-cmd",	&f_dotcmdplay },
#endif
#if (!FEWNAMES)
X	{ "replace-character",	&f_replacechar },
#endif
#if (!FEWNAMES)
X	{ "replace-with-file",	&f_fileread },
#endif
#if (!FEWNAMES)
X	{ "rerun-shell-command",	&f_respawn },
#endif
#if (!SMALLER)
X	{ "resize-window",	&f_resize },
#endif
#if (!SMALLER)
X	{ "restore-window",	&f_restwnd },
#endif
#if (!FEWNAMES)
X	{ "reverse-char-scan",	&f_rev_csrch },
#endif
#if (ISRCH) & (!FEWNAMES)
X	{ "reverse-incremental-search",	&f_risearch },
#endif
#if (!FEWNAMES)
X	{ "reverse-search",	&f_revsearch },
#endif
#if (PROC)
X	{ "run",	&f_execproc },
#endif
X	{ "s",	&f_opersubst },
#if (!SMALLER)
X	{ "save-file",	&f_filesave },
#endif
#if (!SMALLER)
X	{ "save-window",	&f_savewnd },
#endif
X	{ "screen-columns",	&f_newwidth },
X	{ "screen-rows",	&f_newlength },
#if (!FEWNAMES)
X	{ "screen-search-forward",	&f_scrforwsearch },
#endif
#if (!FEWNAMES)
X	{ "screen-search-pattern-grab",	&f_scrsearchpat },
#endif
#if (!FEWNAMES)
X	{ "screen-search-reverse",	&f_scrbacksearch },
#endif
#if (!FEWNAMES)
X	{ "scroll-next-down",	&f_scrnextdw },
#endif
#if (!FEWNAMES)
X	{ "scroll-next-up",	&f_scrnextup },
#endif
#if (!FEWNAMES)
X	{ "search-forward",	&f_forwsearch },
#endif
#if (!FEWNAMES)
X	{ "search-reverse",	&f_backsearch },
#endif
#if (!FEWNAMES)
X	{ "select-buffer",	&f_usebuffer },
#endif
X	{ "set",	&f_setmode },
#if (CRYPT)
X	{ "set-crypt-key",	&f_setkey },
#endif
X	{ "set-fill-column",	&f_setfillcol },
X	{ "set-global-mode",	&f_setgmode },
#if (!FEWNAMES)
X	{ "set-mode",	&f_setmode },
#endif
#if (!FEWNAMES)
X	{ "set-named-mark",	&f_setnmmark },
#endif
X	{ "set-tab",	&f_settab },
#if (!SMALLER)
X	{ "set-variable",	&f_setvar },
#endif
X	{ "setall",	&f_showmodes },
X	{ "setg",	&f_setgmode },
X	{ "setgall",	&f_showgmodes },
X	{ "setgno",	&f_delgmode },
X	{ "setno",	&f_delmode },
#if (!SMALLER)
X	{ "setv",	&f_setvar },
#endif
X	{ "sh",	&f_spawncli },
X	{ "shell",	&f_spawncli },
#if (!FEWNAMES)
X	{ "shell-command",	&f_spawn },
#endif
#if (!FEWNAMES)
X	{ "shift-left-til",	&f_operlshift },
#endif
#if (!FEWNAMES)
X	{ "shift-right-til",	&f_operrshift },
#endif
X	{ "show-global-modes",	&f_showgmodes },
X	{ "show-modes",	&f_showmodes },
#if (!FEWNAMES)
X	{ "shrink-window",	&f_shrinkwind },
#endif
X	{ "source",	&f_source },
#if (!FEWNAMES)
X	{ "split-current-window",	&f_splitwind },
#endif
X	{ "store-macro",	&f_storemac },
#if (PROC)
X	{ "store-procedure",	&f_storeproc },
#endif
#if (!FEWNAMES)
X	{ "substitute",	&f_opersubst },
#endif
#if (!FEWNAMES)
X	{ "substitute-again",	&f_subst_again },
#endif
#if (UNIX&&defined(SIGTSTP)) & (!FEWNAMES)
X	{ "suspend-emacs",	&f_bktoshell },
#endif
X	{ "t",	&f_opertransf },
#if (TAGS)
X	{ "ta",	&f_gototag },
#endif
#if (TAGS)
X	{ "tag",	&f_gototag },
#endif
#if (!FEWNAMES)
X	{ "toggle-buffer-list",	&f_togglelistbuffers },
#endif
#if (!SMALLER) & (!FEWNAMES)
X	{ "transpose-characters",	&f_twiddle },
#endif
X	{ "trim",	&f_trimline },
#if (!FEWNAMES)
X	{ "trim-line",	&f_trimline },
#endif
#if (REBIND)
X	{ "unbind-key",	&f_unbindkey },
#endif
#if (!FEWNAMES)
X	{ "undo-change",	&f_undo },
#endif
#if (!FEWNAMES)
X	{ "undo-line-changes",	&f_lineundo },
#endif
#if (!FEWNAMES)
X	{ "unimplemented-command",	&f_unimpl },
#endif
#if (!FEWNAMES)
X	{ "universal-argument",	&f_unarg },
#endif
X	{ "unmap",	&f_unmap },
X	{ "unmark-buffer",	&f_unmark },
X	{ "unset",	&f_delmode },
X	{ "unsetg",	&f_delgmode },
#if (TAGS) & (!FEWNAMES)
X	{ "untag-pop",	&f_untagpop },
#endif
#if (!SMALLER)
X	{ "update-screen",	&f_upscreen },
#endif
#if (!FEWNAMES)
X	{ "upper-til",	&f_operupper },
#endif
#if (!FEWNAMES)
X	{ "use-named-kill-register",	&f_usekreg },
#endif
#if (GLOBALS)
X	{ "v",	&f_opervglobals },
#endif
X	{ "version",	&f_showversion },
#if (GLOBALS)
X	{ "vglobal",	&f_opervglobals },
#endif
X	{ "view-file",	&f_viewfile },
X	{ "visual",	&f_visual },
#if (VMALLOC)
X	{ "vmalloc",	&f_setvmalloc },
#endif
X	{ "w",	&f_operwrite },
X	{ "wq",	&f_writequit },
#if (!SMALLER)
X	{ "wrap-word",	&f_wrapword },
#endif
#if (!FEWNAMES)
X	{ "write-file",	&f_filewrite },
#endif
#if (!FEWNAMES)
X	{ "write-file-and-quit",	&f_writequit },
#endif
#if (!SMALLER)
X	{ "write-message",	&f_writemsg },
#endif
#if (!FEWNAMES)
X	{ "write-til",	&f_operwrite },
#endif
X	{ "x",	&f_quickexit },
X	{ "xit",	&f_quickexit },
X	{ "y",	&f_operlineyank },
#if (!FEWNAMES)
X	{ "yank-line",	&f_yankline },
#endif
#if (!FEWNAMES)
X	{ "yank-lines-til",	&f_operlineyank },
#endif
#if (!FEWNAMES)
X	{ "yank-til",	&f_operyank },
#endif
X	{ "|",	&f_filter },
X	{ "~",	&f_operflip },
X	{ NULL, NULL }
};
SHAR_EOF
chmod 0664 nename.h ||
echo 'restore of nename.h failed'
Wc_c="`wc -c < 'nename.h'`"
test 17247 -eq "$Wc_c" ||
	echo 'nename.h: original size 17247, current size' "$Wc_c"
# ============= news.c ==============
echo 'x - extracting news.c (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'news.c' &&
/*	news:	Unix (SunOS4 and Unicos) NeWS video driver
X		for MicroEMACS
X
X	The bulk of the code is contained in news.cps.
X
X	P.R.Ove
*/
X
#define	termdef	1			/* don't define "term" external */
X
#include <stdio.h>
#include	"news.h"
#include	"signal.h"
#include	"estruct.h"
#include        "edef.h"
X
#if NeWS
X
#define	MARGIN	8
#define	SCRSIZ	64
#define	NPAUSE	10			/* # times thru update to pause */
#define BEL     0x07
#define ESC     0x1B
#define min(x,y)	((x) < (y) ? (x) : (y))
#define max(x,y)	((x) > (y) ? (x) : (y))
#define P(i)		(0x7fff & (i))		/* avoid (-) (long ints) */
X
extern int      newsopen();
extern int      newsgetc();
extern int      newsputc();
extern int      newsflush();
extern int      newsclose();
extern int	newskopen();
extern int	newskclose();
extern int      newsmove();
extern int      newseeol();
extern int      newseeop();
extern int      newsbeep();
extern int	newsrev();
extern int	newscres();
#if	COLOR
extern	int	newsfcol();
extern	int	newsbcol();
X
int	cfcolor = -1;		/* current forground color */
int	cbcolor = -1;		/* current background color */
#endif
X
X
TERM term = {
X	NULL,	/* these four values are set dynamically at open time */
X	NULL,
X	NULL,
X	NULL,
X	MARGIN,
X	SCRSIZ,
X	NPAUSE,
X        newsopen,
X        newsclose,
X        newskopen,
X        newskclose,
X        newsgetc,
X        newsputc,
X        newsflush,
X        newsmove,
X        newseeol,
X        newseeop,
X        newsbeep,
X        newsrev,
X        newscres
#if	COLOR
X	, newsfcol,
X	newsbcol
#endif
};
X
X
newsquit()	/* for killing when ^C is received */
{
X	newsclose() ;
X	exit(0) ;
}
X
X
newsopen()
{
int	rows, cols ;
X	if (term.t_nrow <= 0) term.t_nrow = 36 ;	/* default size */
X	term.t_nrow = min(term.t_nrow, 100) ;
X	term.t_nrow = max(term.t_nrow, 5) ;
X	ps_open_PostScript() ;
X	signal(SIGHUP, newsquit) ;
X	signal(SIGINT, newsquit) ;
X	signal(SIGTERM, newsquit) ;
X	ps_initialize(term.t_nrow) ;
X	ps_flush_PostScript() ;
X	ps_getscreensize(&rows, &cols) ;
X	term.t_ncol = cols ;
X	term.t_mrow = term.t_nrow ;
X	term.t_mcol = max(term.t_ncol*2, 200) ;	/* to change screen size */
}
X
X
newsclose()
{
X	ps_terminate() ;
X	ps_flush_PostScript() ;
X	sleep(1) ;
X	ps_close_PostScript() ;
}
X
X
newskopen()		/* taken care of above */
{}
newskclose()
{}
X
X
/* refresh when the screen changes size */
newsrefresh()
{
int	rows, cols ;
X	ps_getscreensize(&rows, &cols) ;
X	if (cols != term.t_ncol) {
X		ps_statefix() ;		/* NeWS "bug" workaround */
X		newwidth(P(TRUE), P(cols)) ;
X	}
}
X
X
/* update screen without data transfer (useful for color updates) */
newslocalupdate()
{
X	ps_localupdate() ;
}
X
X
newsscroll(first, match, count)
int	first, match, count ;
{
X	ps_scroller(P(first), P(match), P(count)) ;
}
X
X
newsdump(s)	/* debugging routine */
char	*s ;
{
X	ps_dump(s) ;
X	ps_flush_PostScript() ;
}
X
X	
newsmove(row, col)
register int row, col;
{
X        ps_move(P(row),P(col)) ;
}
X
X
newsflush()
{
X	if (!typahead()) ps_flush_PostScript() ;
}
X
X
newsputc(c)	/* only ordinary characters will be sent here */
char c ;
{
X	ps_putc(P(c)) ;
}
X
X
newsputline(row, s, fgcolor, bgcolor)
int	row, fgcolor, bgcolor ;
char	*s ;
{
X	ps_putline(P(row), s, P(fgcolor), P(bgcolor)) ;
}
X
X
newsfastputline(row, s)		/* using existing colors */
int	row ;
char	*s ;
{
X	ps_fastputline(P(row), s) ;
}
X
X
newssetrowcolors(row, fg, bg)
int	row, fg, bg ;
{
X	ps_setrowcolors(P(row), P(fg), P(bg)) ;
}
X
X
newscls() {ps_cls();}
newsinserton()	{ps_inserton();}
newsinsertoff()	{ps_insertoff();}
newscmodeon()	{ps_cmodeon();}
newscmodeoff()	{ps_cmodeoff();}
newsimmediateon() {ps_immediateon();}
newsimmediateoff() {ps_immediateoff();}
X
X
#define NEWSBUFSIZ	1000
X
newsgetc()
{
static char inbuf[NEWSBUFSIZ] ;
static int buf_count = 0, buf_index = 0, raw_count = 0 ;
int	i, j ;
X 
X	if ( buf_index >= buf_count ) {
X		ps_gets(&buf_count, inbuf) ;
X		buf_index = 0 ;
X	}
X 
X	if ( buf_count == 0 ) return(0) ;	/* shouldn't happen */
X	buf_index++ ;
X	inhibit_update = ( buf_index < buf_count ) ;
X 
X	/* force update before 1st special character if not on message line */
/*	if (	buf_index > 1 &&
X		( inbuf[buf_index-1]<32 || inbuf[buf_index-1]==127 ) &&
X		isprint(inbuf[buf_index-2]) &&
X		ttrow != term.t_nrow
X	)
X		update(TRUE) ;
*/
X
X	/* return the next character */
X	/* fprintf(stderr, "received char %d\n", 0xFF & inbuf[buf_index-1]) ; */
X	return( 0xFF & inbuf[buf_index-1] ) ;
}
X
X
X
newseeol()
{
X        ps_eeol() ;
}
X
X
newseeop()
{
X	ps_eeop() ;
}
X
X
newsrev(state)		/* change reverse video status */
int state;		/* FALSE = normal video, TRUE = reverse video */
{
}
X
X
newscres()	/* change screen resolution */
{
X	return(TRUE);
}
X
X
spal(dummy)	/* change palette string */
{
}
X
X
#if	COLOR	/* defined but not used, color is set by lines */
newsfcol()
{
}
newsbcol()
{
}
#endif
X
X
newsbeep()
{
}
X
X
/* REPORT_MODES
X *
X * Tell the workstation what mode we are in.  Should be called whenever
X * a buffer/window/file/mode is changed.
X */
newsreportmodes()
{
int	i ;
X
for (i=0; i < NUMMODES; i++) {
X	if (strcmp("OVER", modename[i]) == 0) {
X		if ( 1 << i & curwp->w_bufp->b_mode ) ps_insertoff() ;
X		else ps_inserton() ;
X	}
X	else if (strcmp("CMODE", modename[i]) == 0) {
X		if ( 1 << i & curwp->w_bufp->b_mode ) ps_cmodeon() ;
X		else ps_cmodeoff() ;
X	}
}
}
X
X
#if	FLABEL
fnclabel(f, n)		/* label a function key */
X
int f,n;	/* default flag, numeric argument [unused] */
X
{
X	/* on machines with no function keys...don't bother */
X	return(TRUE);
}
#endif
#else
X
hello()
{
}
X
#endif
SHAR_EOF
chmod 0444 news.c ||
echo 'restore of news.c failed'
Wc_c="`wc -c < 'news.c'`"
test 5376 -eq "$Wc_c" ||
	echo 'news.c: original size 5376, current size' "$Wc_c"
# ============= news.cps ==============
echo 'x - extracting news.cps (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'news.cps' &&
%! news.cps
%
% Definitions for MicroEmacs NeWS front end.
%
% P.R.Ove
X
X
X
% C interface
%
% Keep these guys short.  The defs should be sent in ps_initdef
#define GETS_TAG		0
#define GETSCREENSIZE_TAG	1
X
% Main channel to the remote process.
cdef ps_gets(int n, string s)
X	getstring				% stack: string
X	GETS_TAG		tagprint	% id tag
X	dup length		typedprint	% send length
X				typedprint	% send string
=> GETS_TAG (n, s)
X
cdef ps_getscreensize(int rows, int cols)
X	GETSCREENSIZE_TAG	tagprint
X	win /Rows get		typedprint
X	win /Cols get		typedprint
=> GETSCREENSIZE_TAG (rows, cols)
X
cdef ps_move(int row, int col)
X	{row col remotemove} win send
X
cdef ps_eeol()
X	{erase_eol} win send
X
cdef ps_eeop()
X	{erase_eop} win send
X
cdef ps_cls()
X	{clrscreen} win send
X
cdef ps_setrowcolors(int row, int fg, int bg)
X	{Fgcolor row fg put Bgcolor row bg put} win send
X
cdef ps_terminate()	% why must I do this?
X	{unmap} win send
X
cdef ps_putc(int c)
X	{c putc} win send
X
cdef ps_putline(int row, string s, int fgcol, int bgcol)
X	{row s fgcol bgcol putline} win send
X
cdef ps_fastputline(int row, string s)		% first use cls
X	{row s fastputline} win send		% (for fast screen updates)
X
cdef ps_scroller(int src, int dest, int n)
X	{src dest n scroller} win send
X
cdef ps_dump(string s)		% debugging aid
{	(ps_dump: %\n) [s] dbgprintf
X	0 1 3 { (row % = %\n) [3 -1 roll dup Image exch get] dbgprintf } for
X	(\n) [] dbgprintf
} win send
X
cdef ps_insertoff()
X	{overtypemode} win send
X
cdef ps_inserton()
X	{insertmode} win send
X
cdef ps_cmodeon()
X	{cmodeon} win send
X
cdef ps_cmodeoff()
X	{cmodeoff} win send
X
cdef ps_immediateon()
X	{immediateon} win send
X
cdef ps_immediateoff()
X	{immediateoff} win send
X
cdef ps_statefix()				% NeWS bug workaround
X	{State setstate} win send
X
cdef ps_localupdate()
X	{imagetoscreen} win send
X
X
X
cdef ps_initialize(int arg_rows)
X
% basic non-graphics utilities
X	/ctrl {		% (A) => ctrl A
X		0 get dup 96 gt {32 sub} if
X		64 sub
X	} def
X	/ascii { 0 get } def	% (A) => 65
X	/ESC	27 def
X	/CTRLX	(X) ctrl def
X	/SPEC	128 def
X	/BLANK	32 def
X	/bounds {		% r c => r c  (restrain)
X		exch LastRow min exch
X		LastCol min
X		exch 0 max exch
X		0 max
X	} def
X	/rc_xy {		% r c => x y
X		bounds
X		CharWidth mul exch
X		1 add Rows exch sub CharHeight mul
X	} def
X	/xy_rc {		% x y => r c
X		CharHeight idiv LastRow exch sub
X		exch CharWidth idiv
X		bounds
X	} def
X	/clrstring {		% string => -	% slow, used to init "blanks"
X		0 1 2 index length 1 sub
X			{1 index exch 32 put } for pop
X	} def
X	/blankline {	% Image row => -	% faster, uses "blanks"
X		blanks Cols string copy put
X	} def
X	/chartostring {		% 65 => (A)
X		( ) dup 0 4 -1 roll put
X	} def
X
X
% Color definitions
X	/setcoloring {		% flag => -	(true for color)
X	     {	/WHITE		0	0	1 hsbcolor def
X		/CYAN		.5	.3	1 hsbcolor def
X		/MAGENTA	.82	.3	1 hsbcolor def
X		/YELLOW		.165	.3	1 hsbcolor def
X		/BLUE		.6	.3	1 hsbcolor def
X		/RED		1	.3	1 hsbcolor def
X		/GREEN		.3	.3	1 hsbcolor def
X		/BLACK		0	0	0 hsbcolor def
X		/shade	{colortable exch get setcolor} def
X		}
X	     {	/BLACK		0 def
X		/CYAN		.87 def
X		/MAGENTA	.8 def
X		/YELLOW		.95 def
X		/BLUE		.6 def
X		/RED		.7 def
X		/GREEN		.5 def
X		/WHITE		1 def
X		/shade	{colortable exch get setgray} def
X		} ifelse
X		/colortable [WHITE RED GREEN YELLOW
X			     BLUE MAGENTA CYAN BLACK] def
X	} def
X
X
% Low level drawing utilities (don't effect the image buffer).
X	/rc_moveto {rc_xy moveto} def	% r c => -
X	/showchar {		% r c int => -
X		gsave
X		Fgcolor 3 index get shade
X		3 -1 roll 3 -1 roll
X		rc_moveto
X		chartostring show
X		grestore
X	} def
X	/whitebox {		% r c count -   (for erasing characters)
X		gsave
X		Bgcolor 3 index get shade
X		3 -1 roll 3 -1 roll rc_xy translate
X		BoxWidth mul dup		% stack: width width
X		newpath
X		0 BoxBottom moveto
X		BoxBottom lineto
X		BoxTop lineto
X		0 BoxTop lineto
X		closepath fill
X		grestore
X	} def
X	/blackbox {		% r c -   (for text cursor)
X		gsave
X		Fgcolor 2 index get shade rc_xy translate
X		newpath
X		0 BoxBottom moveto
X		BoxWidth BoxBottom lineto
X		BoxWidth BoxTop lineto
X		0 BoxTop lineto
X		closepath fill
X		grestore
X	} def
X
X
% Text manipulation routines (effect cursor and image buffer).
% These can call the lower routines, but calling each other is
% risky (accidental recursion).
X	% text cursor
X	/tcursormove {		% r c => -
X		bounds
X		Tccol Cols lt {		% screen width may have changed
X			Tcrow Tccol 1 whitebox
X			Tcrow Tccol Image Tcrow get Tccol get showchar
X		} if
X		/Tccol exch store /Tcrow exch store
X		Tcrow Tccol blackbox
X		Tcrow Tccol rc_moveto
X		gsave
X		ColorDisplay?		% can't make grey chars on b&w
X			{Bgcolor Tcrow get shade}
X			{0 shade}
X		ifelse
X		Tcrow Tccol rc_moveto
X		Image Tcrow get Tccol get chartostring show
X		grestore
X	} def
X	% mouse cursor
X	/mcursorwait {		% when waiting for remote to position
X		/hourg /hourg_m ClientCanvas setstandardcursor
X	} def
X	/mcursornormal {
X		/ptr /ptr_m ClientCanvas setstandardcursor
X	} def
X	/remotemove {		% row col => -
X		/prefix_flag false store
X		1 index MessageLine eq {no_prefixes} {normal_prefixes} ifelse
X		tcursormove
X		mcursornormal
X	} def
X	/onmessageline? {
X		{Tcrow MessageLine eq} win send
X	} def
X	/putc {			% like overtypechar, but handles backspace
X		dup 8 eq {
X			pop
X			Tcrow Tccol 1 whitebox
X			Image Tcrow get Tccol 32 put
X			Tcrow Tccol 1 sub tcursormove }
X		{overtypechar}
X		ifelse
X	} def
X	/overtypechar {		% int => -	(at current)
X		Tcrow Tccol 1 whitebox
X		BoldFont setfont
X		Tcrow Tccol 2 index showchar
X		Image Tcrow get Tccol 2 index put
X		Tcrow Tccol 1 add tcursormove
X		NormalFont setfont
X		pop
X	} def
X	/insertchar {		% int => -	(at current location)
X		Image Tcrow get Tccol			% char line index
X		2 copy Cols Tccol sub 1 sub getinterval	% char line index tail
X		exch 1 add exch				% shift index
X		putinterval				% write tail
X		gsave
X		Tcrow Tccol Cols Tccol sub whitebox	% clear line
X		Tcrow Tccol rc_moveto
X		Fgcolor Tcrow get shade
X		Image Tcrow get Tccol Cols Tccol sub getinterval show
X		overtypechar				% put char
X		grestore
X	} def
X	/writechar {		% int => -
X		InsertMode {insertchar} {overtypechar} ifelse
X	} def
X	/fastputline {		% row string => -	(assume all cleared)
X		gsave
X		Fgcolor 2 index get shade
X		exch dup 0 rc_moveto
X		Image exch get copy show		% transfer text
X		grestore
X	} def
X	/putline {		% row string fgcol bgcol => -
X		gsave
X		Bgcolor 4 index 3 -1 roll put
X		Fgcolor 3 index 3 -1 roll put
X		Fgcolor 2 index get shade
X		Image 2 index blankline			% clear image line
X		Image 2 index get copy pop		% transfer text
X		dup 0 Cols whitebox			% clear screen line
X		dup 0 rc_moveto
X		Image exch get show
X		grestore
X	} def
X	/scroller {		% src dest count => -
X		Image 3 index 2 index getinterval
X		Image 3 index 3 -1 roll putinterval
X		1 index add 1 sub 1 exch {
X			dup 0 Cols whitebox
X			dup Image exch get fastputline
X		} for
X		pop	% src popped
X	} def
X	/imagetoscreen {	% display text buffer
X		gsave
X		clearpage
X		0 1 LastRow {
X			dup Fgcolor exch get shade
X			dup 0 rc_moveto
X			Image exch get show
X		} for
X		Tcrow Tccol tcursormove
X		grestore
X	} def
X	/clearpage {		% clear the display (not Image buffer)
X		0 1 LastRow {0 Cols whitebox} for
X	} def
X	/cls {			% clear text buffer and screen
X		0 1 LastRow {Image exch blankline} for
X		clearpage
X	} def
X	/clrscreen {		% all but message line
X		Image MessageLine get dup length string copy
X		cls
X		MessageLine exch fastputline
X	} def
X	/erase_eol {		% clear to end of line, from cursor
X		Image Tcrow get				% line
X		Tccol					% index
X		blanks 0 Cols Tccol sub getinterval	% blanks
X		putinterval				% insert them
X		Tcrow Tccol Cols Tccol sub whitebox
X		Tcrow Tccol tcursormove
X	} def
X	/erase_eop {		% clear to end of page, from cursor
X		erase_eol
X		Tcrow 1 add 1 MessageLine {
X			Image 1 index blankline
X			0 Cols whitebox
X		} for
X	} def
X
X
X
X
X	% Window definition, menus, etc
X
X	/filemenu [
X		(find)		{ [CTRLX (F) ctrl] sendarray }
X		(read)		{ [CTRLX (R) ctrl] sendarray }
X		(insert)	{ [CTRLX (I) ctrl] sendarray }
X		(view)		{ [CTRLX (V) ctrl] sendarray }
X		(save)		{ [CTRLX (S) ctrl] sendarray }
X		(write)		{ [CTRLX (W) ctrl] sendarray }
X	] /new DefaultMenu send def
X	/buffermenu [
X		(next)		{ [CTRLX (X) ascii] sendarray }
X		(list)		{ [CTRLX (B) ctrl] sendarray }
X		(select)	{ [CTRLX (B) ascii] sendarray }
X		(kill)		{ [CTRLX (K) ascii] sendarray }
X		(overtype mode)	{ (\201SLover\n) sendarray }
X		(C mode)	{ (\201SLcmode\n) sendarray }
X	] /new DefaultMenu send def
X	/windowmenu [
X		(split)		{ [CTRLX (2) ascii] sendarray }
X		(delete)	{ [CTRLX (0) ascii] sendarray }
X		(delete others)	{ [CTRLX (1) ascii] sendarray }
X		(redraw)	{ [ESC (L) ctrl] sendarray }
X		(white)		{ (\201SLwhite\n) sendarray }
X		(blue)		{ (\201SLblue\n) sendarray }
X		(yellow)	{ (\201SLyellow\n) sendarray }
X		(cyan)		{ (\201SLcyan\n) sendarray }
X		(red)		{ (\201SLred\n) sendarray }
X		(magenta)	{ (\201SLmagenta\n) sendarray }
X		(green)		{ (\201SLgreen\n) sendarray }
X	] /new DefaultMenu send def
X	/searchmenu [
X		(search)		{ [(S) ctrl] sendarray }
X		(reverse search)	{ [(R) ctrl] sendarray }
X		(incremental search)	{ [CTRLX (S) ascii] sendarray }
X		(reverse incremental search) { [CTRLX (R) ascii] sendarray }
X	] /new DefaultMenu send def
X	/replacemenu [
X		(replace)	{ [ESC (R) ascii] sendarray }
X		(query replace)	{ [ESC (R) ctrl] sendarray }
X	] /new DefaultMenu send def
X	/argmenu
X		[(prompt) (2) (3) (4) (5) (10) (100) (1000)]
X		[{[(U) ctrl] sendarray}
X		 {[(U) ctrl] sendarray currentkey (    ) cvs sendarray}	]
X	/new DefaultMenu send def
X	/pagemenu [
X		(beginning)	{ [ESC (<) ascii] sendarray }
X		(end)		{ [ESC (>) ascii] sendarray }
X		(next)		{ [(V) ctrl] sendarray }
X		(previous)	{ [(Z) ctrl] sendarray }
X	] /new DefaultMenu send def
X	/miscmenu [
X		(bind function key) { [ESC (K) ascii] sendarray }
X		(color)		{ {true setcoloring PaintClient} win send }
X		(B & W)		{ {false setcoloring PaintClient} win send }
X	] /new DefaultMenu send def
X	/globalmodemenu [
X		(overtype)	{ (\201SGover\n) sendarray }
X		(insert)	{ (\201RGover\n) sendarray }
X		(C mode)	{ (\201SGcmode\n) sendarray }
X		(C mode off)	{ (\201RGcmode\n) sendarray }
X		(white)		{ (\201SGwhite\n) sendarray }
X		(blue)		{ (\201SGblue\n) sendarray }
X		(yellow)	{ (\201SGyellow\n) sendarray }
X		(cyan)		{ (\201SGcyan\n) sendarray }
X		(red)		{ (\201SGred\n) sendarray }
X		(magenta)	{ (\201SGmagenta\n) sendarray }
X		(green)		{ (\201SGgreen\n) sendarray }
X	] /new DefaultMenu send def
X
X
X	% Mode menu support
X	/emacsmode {		% (OVER) flag => -	(false to reset)
X		[CTRLX (M) 4 -1 roll {ascii} {ctrl} ifelse] sendarray
X		sendarray (\n) sendarray
X	} def
X	/overtypemode {
X		/InsertMode false store
X		(overtype mode) /searchkey buffermenu send {
X			(insert mode) { (\201RLover\n) sendarray }
X			/changeitem buffermenu send
X		} if
X	} def
X	/insertmode {
X		/InsertMode true store
X		(insert mode) /searchkey buffermenu send {
X			(overtype mode) { (\201SLover\n) sendarray }
X			/changeitem buffermenu send
X		} if
X	} def
X	/cmodeon {
X		(\)}]#) {times exch default_short put} forall
X		(C mode) /searchkey buffermenu send {
X			(C mode off) { (\201RLcmode\n) sendarray }
X			/changeitem buffermenu send
X		} if
X	} def
X	/cmodeoff {
X		(\)}]#) {times exch default_long put} forall
X		(C mode off) /searchkey buffermenu send {
X			(C mode) { (\201SLcmode\n) sendarray }
X			/changeitem buffermenu send
X		} if
X	} def
X
X	/request_refresh	{ [(L) ctrl] sendarray } def
X	/zap {
X		/unmap win send		% hide it in case we miss
X		[CTRLX (C) ctrl (Y) ascii] sendarray
X	} def
X
X
X
X
X	/win framebuffer /new DefaultWindow send def	% Create a window
X	/wincanvas {win /ClientCanvas get} def
X
X	% define window context
X	{
X		/State		0 def
X		/NormalFont	0 def
X		/BoldFont	0 def
X		/Rows		arg_rows 2 add def	% space for messages
X		/Cols		80 def
X		/LastRow	Rows 1 sub def
X		/LastCol	Cols 1 sub def
X		/MessageLine	Rows 2 sub def
X		/Fgcolor	[Rows {7} repeat] def
X		/Bgcolor	[Rows {0} repeat] def
X		/Tcrow		0 def		% text cursor location
X		/Tccol		0 def
X		/Image		Rows array def	
X		/Height		0 def
X		/Width		0 def
X		/CharHeight	0 def
X		/CharWidth	0 def
X		/BoxTop		0 def		% cursor and wipeout box
X		/BoxBottom	0 def
X		/BoxWidth	0 def
X		/OldFrame	[0 0] def	% to detect resize repaints
X		/InsertMode	true def	% local insert/overtype
X		/FrameLabel	(NeWS Distributed uEMACS) def
X		/framechanged? {	
X			OldFrame 0 get Width ne
X			OldFrame 1 get Height ne
X			or
X		} def
X		/trimwindow {		% so that it is multiple of char size
X			ClientCanvas setcanvas
X			clippath pathbbox 3 -1 roll pop 3 -1 roll pop
X			/Height exch store
X			Height Rows Height Rows div round mul sub
X			dup 0 ne
X			{	FrameHeight exch sub
X				/FrameHeight exch store
X				FrameX FrameY FrameWidth FrameHeight reshape }
X			{ 	pop }
X			ifelse
X		} def
X		/PaintClient {
X			stopeventtraps
X			trimwindow
X			initwindow
X			framechanged?
X			{	0 1 LastRow {Image exch Cols string put} for
X				request_refresh
X			}
X			{	imagetoscreen }
X			ifelse
X			starteventtraps
X		} def
X		/ClientMenu [
X			(Paging ...)	pagemenu
X			(Files ...)	filemenu
X			(Buffers ...)	buffermenu
X			(Windows ...)	windowmenu
X			(Global modes ...) globalmodemenu
X			(Search ...)	searchmenu
X			(Replace ...)	replacemenu
X			(Argument ...)	argmenu
X			(Miscellaneous ...) miscmenu
X			(quit)		{ [CTRLX (C) ctrl] sendarray }
X			(save & exit)	{ [ESC (Z) ascii] sendarray }
X		] /new DefaultMenu send def
X	} win send
X
X	/initwindow {
X		/OldFrame [Width Height] store
X		ClientCanvas setcanvas
X		clippath pathbbox 3 -1 roll pop 3 -1 roll pop
X		/Height exch store /Width exch store
X		/CharHeight Height Rows div store
X		/NormalFont (Courier) findfont CharHeight scalefont store
X		/BoldFont (Courier-Oblique) findfont CharHeight scalefont store
X		NormalFont setfont
X		/CharWidth (A) stringwidth pop store
X		/Cols Width CharWidth idiv store
X		/LastCol Cols 1 sub store
X		/BoxWidth CharWidth store
X		gsave newpath 0 0 moveto ([|/) true charpath pathbbox 
X		/BoxTop exch 1 sub store pop pop pop	
X		gsave newpath 0 0 moveto (_py) true charpath pathbbox pop pop
X		/BoxBottom exch store pop
X		/BoxTop BoxTop CharHeight BoxBottom add max store
X		/blanks Cols string dup clrstring def
X			% Make the remote guy kill us
% Don't mess around with the frame or icon menus!
% They may not have selections called "Zap"!
% Use DestroyClient instead.
%		(Zap) /searchkey win /FrameMenu get send {
%			(Zap) {zap} /changeitem
%			win /FrameMenu get send
%		} if
%		(Zap) /searchkey win /IconMenu get send {
%			(Zap) {zap} /changeitem
%			win /IconMenu get send
%		} if
X		NormalFont setfont
X		/State currentstate store
X	} def
X
X	/DestroyClient {
X	    zap
X	    /DestroyClient super send
X	} def
X
X	/starteventtraps {
X	% Input dispatcher.  Catches all kbd input and mouse activity.
X	/dispatcher_pid {
X		wincanvas addkbdinterests pop
X		wincanvas addfunctionstringsinterest pop
X		createevent dup begin
X			/Name dictbegin
X				0 1 127 { dup def } for
X				/MiddleMouseButton dup def
X				/InsertValue dup def
X			dictend def
X			/Action /DownTransition def
X			/Canvas wincanvas def
X		end expressinterest
X		createevent dup begin
X			/Name dictbegin
X				/LeftMouseButton dup def
X				/MouseDragged dup def
X			dictend def
X			/Action null def
X			/Canvas wincanvas def
X		end expressinterest
X		systemdict /IP currentprocess put
X
X		% input loop
X		{	clear
X			awaitevent begin
X				% only ascii allowed on message line
X				onmessageline?
X				{keyeventdict Name known}
X				{eventdict Name known}
X				ifelse
X				{	% Invoke the right handler
X					XLocation YLocation Action
X					eventdict Name get exec
X				} if
X			end
X		} loop
X	} fork def
X
X	% Mouse still handler (derived from mouse drag event).
X	/stillmouse_pid {
X		createevent dup begin
X			/Name /MouseStill def
X			/Canvas wincanvas def
X		end expressinterest
X
X		% input loop
X		{	clear
X			awaitevent begin
X				128 addtobuf	% SPEC code
X				Xl Yl /xy_rc win send
X				exch addtobuf addtobuf
X				default_short outtimerrefresh
X			end
X		} loop
X	} fork def
X	} def
X
X	/stopeventtraps {
X		currentdict /dispatcher_pid known
X			{dispatcher_pid killprocess} if
X		currentdict /stillmouse_pid known
X			{stillmouse_pid killprocess} if
X	} def
X
X
X	% distribution mechanism: character timing and prefixes
SHAR_EOF
true || echo 'restore of news.cps failed'
echo 'End of Vile part 10'
echo 'File news.cps is continued in part 11'
echo 11 > _shar_seq_.tmp
exit 0
-- 
		paul fox, pgf at cayman.com, (617)494-1999
		Cayman Systems, 26 Landsdowne St., Cambridge, MA 02139



More information about the Alt.sources mailing list