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