summaryrefslogtreecommitdiff
path: root/tree/src/vi/ex-070224/ex.h
diff options
context:
space:
mode:
authorThomas Ulmer <thomasmulmer02@gmail.com>2026-03-01 11:37:31 -0800
committerThomas Ulmer <thomasmulmer02@gmail.com>2026-03-01 11:37:31 -0800
commite01b84a6698f5060fd7dea789fc0ffa872f26b15 (patch)
treeda1d4369048833f0496ae51d400d118f30c499bd /tree/src/vi/ex-070224/ex.h
parent6d8430971dada74478a0cd2c9eca2272a105b744 (diff)
remove tree
Diffstat (limited to 'tree/src/vi/ex-070224/ex.h')
-rw-r--r--tree/src/vi/ex-070224/ex.h583
1 files changed, 0 insertions, 583 deletions
diff --git a/tree/src/vi/ex-070224/ex.h b/tree/src/vi/ex-070224/ex.h
deleted file mode 100644
index c818157..0000000
--- a/tree/src/vi/ex-070224/ex.h
+++ /dev/null
@@ -1,583 +0,0 @@
-/*
- * This code contains changes by
- * Gunnar Ritter, Freiburg i. Br., Germany, 2002. All rights reserved.
- *
- * Conditions 1, 2, and 4 and the no-warranty notice below apply
- * to these changes.
- *
- *
- * Copyright (c) 1980, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- *
- * Copyright(C) Caldera International Inc. 2001-2002. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * Redistributions of source code and documentation must retain the
- * above copyright notice, this list of conditions and the following
- * disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed or owned by Caldera
- * International, Inc.
- * Neither the name of Caldera International, Inc. nor the names of
- * other contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * USE OF THE SOFTWARE PROVIDED FOR UNDER THIS LICENSE BY CALDERA
- * INTERNATIONAL, INC. AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL CALDERA INTERNATIONAL, INC. BE
- * LIABLE FOR ANY DIRECT, INDIRECT INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
- * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
- * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * from ex.h 7.7.1.1 (Berkeley) 8/12/86
- *
- * Sccsid @(#)ex.h 1.57 (gritter) 8/6/05
- */
-
-/*
- * Ex version 3 (see exact version in ex_version.c).
- *
- * Mark Horton, UC Berkeley
- * Bill Joy, UC Berkeley
- * November 1979
- *
- * Changes by Gunnar Ritter, Freiburg i. Br., Germany
- * May 2000
- *
- * This file contains most of the declarations common to a large number
- * of routines. The file ex_vis.h contains declarations
- * which are used only inside the screen editor.
- * The file config.h contains parameters which can be diddled per installation.
- * The file ex_tune.h contains parameters which should be changed by
- * maintainers only.
- *
- * The declarations relating to the argument list, regular expressions,
- * the temporary file data structure used by the editor
- * and the data describing terminals are each fairly substantial and
- * are kept in the files ex_{argv,re,temp,tty}.h which
- * we #include separately.
- *
- * If you are going to dig into ex, you should look at the outline of the
- * distribution of the code into files at the beginning of ex.c and ex_v.c.
- * Code which is similar to that of ed is lightly or undocumented in spots
- * (e.g. the regular expression code). Newer code (e.g. open and visual)
- * is much more carefully documented, and still rough in spots.
- *
- * Please forward bug reports to
- *
- * Mark Horton
- * Computer Science Division, EECS
- * EVANS HALL
- * U.C. Berkeley 94704
- * (415) 642-4948
- * (415) 642-1024 (dept. office)
- *
- * or to csvax.mark@berkeley on the ARPA-net. I would particularly like to hear
- * of additional terminal descriptions you add to the termcap data base.
- */
-
-#include <sys/types.h>
-#include <sys/param.h>
-#include <sys/stat.h>
-#include <ctype.h>
-#include <errno.h>
-#include <signal.h>
-#include <setjmp.h>
-
-#include <stdarg.h>
-#include <string.h>
-#include <stdlib.h>
-
-#ifdef BIT8
-#ifndef ISO8859_1
-#include <locale.h>
-#endif
-#endif
-
-#ifdef MB
-#include <wchar.h>
-#include <wctype.h>
-#endif
-
-#include <termios.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <limits.h>
-#ifndef TIOCGWINSZ
-#include <sys/ioctl.h>
-#endif
-
-#include "config.h"
-
-typedef void (*shand)(int);
-#ifdef signal
-#undef signal
-#endif
-#define signal(a, b) setsig((a), (b))
-
-/*
- * Avoid clobbering of automatic variables with an ANSI C compiler.
- */
-#define CLOBBGRD(a) (void)(&(a));
-
-#ifndef MB_LEN_MAX
-#define MB_LEN_MAX 1
-#endif
-
-/*
- * Feature dependency checks.
- */
-#ifdef ISO8859_1
-#ifndef BIT8
-#define BIT8
-#endif
-#endif
-
-#ifndef LISPCODE
-#define LISPCODE
-#endif
-#ifndef CHDIR
-#define CHDIR
-#endif
-
-#ifndef var
-#define var extern
-#endif
-
-#ifndef VMUNIX
-typedef short line;
-#else
-typedef int line;
-#endif
-
-#ifdef LARGEF
-typedef off_t bloc;
-#else
-typedef short bloc;
-#endif
-
-#ifdef VMUNIX
-#ifdef LARGEF
-typedef off_t bbloc;
-#else
-typedef int bbloc;
-#endif
-#else
-typedef short bbloc;
-#endif
-
-typedef char bool;
-
-/*
- * The editor does not normally use the standard i/o library. Because
- * we expect the editor to be a heavily used program and because it
- * does a substantial amount of input/output processing it is appropriate
- * for it to call low level read/write primitives directly. In fact,
- * when debugging the editor we use the standard i/o library. In any
- * case the editor needs a printf which prints through "putchar" ala the
- * old version 6 printf. Thus we normally steal a copy of the "printf.c"
- * and "strout" code from the standard i/o library and mung it for our
- * purposes to avoid dragging in the stdio library headers, etc if we
- * are not debugging. Such a modified printf exists in "printf.c" here.
- */
-#ifdef TRACE
-# include <stdio.h>
- var FILE *trace;
- var bool trubble;
- var bool techoin;
- var char tracbuf[BUFSIZ];
-# undef putchar
-# undef getchar
-
-#else /* !TRACE */
-
-#ifndef BUFSIZ
-#ifdef LINE_MAX
-#define BUFSIZ LINE_MAX /* POSIX line size */
-#else /* !LINE_MAX */
-#ifdef VMUNIX
-#define BUFSIZ 1024
-#else /* !VMUNIX */
-#ifdef u370
-#define BUFSIZ 4096
-#else /* !u370 */
-#define BUFSIZ 512
-#endif /* !u370 */
-#endif
-#endif /* !VMUNIX */
-#endif /* !LINE_MAX */
-
-#ifdef NULL
-#undef NULL
-#endif
-#ifdef EOF
-#undef EOF
-#endif
-#ifdef printf
-#undef printf
-#endif
-#ifdef vprintf
-#undef vprintf
-#endif
-#ifdef getchar
-#undef getchar
-#endif
-#ifdef putchar
-#undef putchar
-#endif
-
-#define NULL 0
-#define EOF -1
-
-#endif /* !TRACE */
-
-typedef sigjmp_buf JMP_BUF;
-#define SETJMP(a) sigsetjmp(a, 1)
-#define LONGJMP(a, b) siglongjmp(a, b)
-
-#undef MAXBSIZE
-#define MAXBSIZE (2*LBSIZE)
-
-#include "ex_tune.h"
-#include "ex_vars.h"
-
-/*
- * Options in the editor are referred to usually by "value(name)" where
- * name is all uppercase, i.e. "value(PROMPT)". This is actually a macro
- * which expands to a fixed field in a static structure and so generates
- * very little code. The offsets for the option names in the structure
- * are generated automagically from the structure initializing them in
- * ex_data.c... see the shell script "makeoptions".
- */
-struct option {
- char *oname;
- char *oabbrev;
- short otype; /* Types -- see below */
- short odefault; /* Default value */
- short ovalue; /* Current value */
- char *osvalue;
-};
-
-#define ONOFF 0
-#define NUMERIC 1
-#define STRING 2 /* SHELL or DIRECTORY */
-#define OTERM 3
-
-#define value(a) options[a].ovalue
-#define svalue(a) options[a].osvalue
-
-extern struct option options[NOPTS + 1];
-
-/*
- * Character constants and bits
- *
- * The editor uses the QUOTE bit as a flag to pass on with characters
- * e.g. to the putchar routine. The editor never uses a simple char variable.
- * Only arrays of and pointers to characters are used and parameters and
- * registers are never declared character.
- */
-#ifdef CTRL
-#undef CTRL
-#endif
-#define CTRL(c) ((c) & 037)
-#define NL CTRL('j')
-#define CR CTRL('m')
-#define DELETE 0177 /* See also ATTN, QUIT in ex_tune.h */
-#define ESCAPE 033
-
-/*
- * BIT8 and MB routines by Gunnar Ritter 2000, 2004.
- *
- * -DISO8859_1 enables all characters >= 0240 regardless of
- * LC_CTYPE.
- */
-#define INVBIT 0x20000000
-#define MULTICOL 0x40000000
-
-#if defined (MB)
-
-/*
- * This type is used to represent a single character cell.
- */
-typedef int cell;
-var int TRIM;
-var int QUOTE;
-#define printable(c) (((c)&INVBIT) == 0 && \
- (mb_cur_max > 1 ? iswprint((c)&TRIM) : isprint((c)&TRIM)))
-#define ext(c) (((c) & 0177) == 0)
-
-#elif defined (BIT8)
-
-typedef short cell;
-#define QUOTE 0400
-#define TRIM 0377
-#ifndef ISO8859_1
-#define printable(c) isprint((c)&TRIM)
-#else /* ISO8859_1 */
-#define printable(c) (((c) & 0140) && (c) != DELETE)
-#endif /* ISO8859_1 */
-
-#else /* !BIT8 */
-
-typedef char cell;
-#define QUOTE 0200
-#define TRIM 0177
-
-#endif /* !BIT8 */
-
-/*
- * Miscellaneous random variables used in more than one place
- */
-var bool aiflag; /* Append/change/insert with autoindent */
-var bool anymarks; /* We have used '[a-z] */
-var int bsize; /* Block size for disk i/o */
-var int chng; /* Warn "No write" */
-var char *Command;
-var short defwind; /* -w# change default window size */
-var int dirtcnt; /* When >= MAXDIRT, should sync temporary */
-var bool dosusp; /* Do SIGTSTP in visual when ^Z typed */
-var bool edited; /* Current file is [Edited] */
-var line *endcore; /* Last available core location */
-extern bool endline; /* Last cmd mode command ended with \n */
-#ifndef VMUNIX
-var short erfile; /* Error message file unit */
-#endif
-var line *fendcore; /* First address in line pointer space */
-var char file[FNSIZE]; /* Working file name */
-var bool fixedzero; /* zero file size was fixed (for visual) */
-var char *genbuf; /* Working buffer when manipulating linebuf */
-var bool hush; /* Command line option - was given, hush up! */
-var char *globp; /* (Untyped) input string to command mode */
-var bool holdcm; /* Don't cursor address */
-var bool inappend; /* in ex command append mode */
-var bool inglobal; /* Inside g//... or v//... */
-var char *initev; /* Initial : escape for visual */
-var bool inopen; /* Inside open or visual */
-var char *input; /* Current position in cmd line input buffer */
-var bool intty; /* Input is a tty */
-var short io; /* General i/o unit (auto-closed on error!) */
-extern int lastc; /* Last character ret'd from cmd input */
-var bool laste; /* Last command was an "e" (or "rec") */
-var char lastmac; /* Last macro called for ** */
-var char lasttag[TAGSIZE]; /* Last argument to a tag command */
-var char *linebp; /* Used in substituting in \n */
-var char *linebuf; /* The primary line buffer */
-var int LBSIZE; /* Size of linebuf */
-var bool listf; /* Command should run in list mode */
-var line names['z'-'a'+2]; /* Mark registers a-z,' */
-var int notecnt; /* Count for notify (to visual from cmd) */
-var bool numberf; /* Command should run in number mode */
-var char obuf[BUFSIZ]; /* Buffer for tty output */
-var shand oldhup; /* Previous SIGHUP handler */
-var shand oldquit; /* Previous SIGQUIT handler */
-#ifdef SIGXFSZ
-var shand oldxfsz; /* Previous SIGXFSZ handler */
-#endif
-var short oprompt; /* Saved during source */
-extern unsigned short ospeed; /* Output speed (from gtty) */
-var int otchng; /* Backup tchng to find changes in macros */
-var int peekc; /* Peek ahead character (cmd mode input) */
-var char *pkill[2]; /* Trim for put with ragged (LISP) delete */
-var bool pfast; /* Have stty -nl'ed to go faster */
-var pid_t pid; /* Process id of child */
-var pid_t ppid; /* Process id of parent (e.g. main ex proc) */
-var JMP_BUF resetlab; /* For error throws to top level (cmd mode) */
-var pid_t rpid; /* Pid returned from wait() */
-var bool recov; /* A `n' command is executed as `recov' */
-var bool ruptible; /* Interruptible is normal state */
-var bool seenprompt; /* 1 if have gotten user input */
-var bool shudclob; /* Have a prompt to clobber (e.g. on ^D) */
-var int status; /* Status returned from wait() */
-var int tchng; /* If nonzero, then [Modified] */
-extern int tfile; /* Temporary file unit */
-var bool tflag; /* -t option given on command line */
-var bool vcatch; /* Want to catch an error (open/visual) */
-var bool verbose; /* -V option; print command input to stderr */
-var JMP_BUF vreslab; /* For error throws to a visual catch */
-var bool writing; /* 1 if in middle of a file write */
-var int xchng; /* Suppresses multiple "No writes" in !cmd */
-var int failed; /* exit with a non-zero status */
-var int exitoneof; /* exit command loop on EOF */
-
-/*
- * Macros
- */
-#define CP(a, b) (ignore(movestr(a, b)))
- /*
- * FIXUNDO: do we want to mung undo vars?
- * Usually yes unless in a macro or global.
- */
-#define FIXUNDO (inopen >= 0 && (inopen || !inglobal))
-#define ckaw() {if (chng && value(AUTOWRITE)) wop(0);}
-#define copy(a,b,c) Copy((char *) (a), (char *) (b), (c))
-#define eq(a, b) ((a) && (b) && strcmp(a, b) == 0)
-#define getexit(a) copy(a, resetlab, sizeof (JMP_BUF))
-#define lastchar() lastc
-#define outchar(c) (*Outchar)(c)
-#define pastwh() (ignore(skipwh()))
-#define pline(no, max) (*Pline)(no, max)
-#define reset() LONGJMP(resetlab,1)
-#define resexit(a) copy(resetlab, a, sizeof (JMP_BUF))
-#define setexit() SETJMP(resetlab)
-#define setlastchar(c) lastc = c
-#define ungetchar(c) peekc = c
-
-#define CATCH vcatch = 1; if (SETJMP(vreslab) == 0) {
-#define ONERR } else { vcatch = 0;
-#define ENDCATCH } vcatch = 0;
-
-/*
- * Environment like memory
- */
-var char altfile[FNSIZE]; /* Alternate file name */
-extern char direct[ONMSZ]; /* Temp file goes here */
-extern char shell[ONMSZ]; /* Copied to be settable */
-extern char ttylongname[ONMSZ]; /* A long and pretty name */
-var char uxb[UXBSIZE + 2]; /* Last !command for !! */
-
-/*
- * The editor data structure for accessing the current file consists
- * of an incore array of pointers into the temporary file tfile.
- * Each pointer is 15 bits (the low bit is used by global) and is
- * padded with zeroes to make an index into the temp file where the
- * actual text of the line is stored.
- *
- * To effect undo, copies of affected lines are saved after the last
- * line considered to be in the buffer, between dol and unddol.
- * During an open or visual, which uses the command mode undo between
- * dol and unddol, a copy of the entire, pre-command buffer state
- * is saved between unddol and truedol.
- */
-var line *addr1; /* First addressed line in a command */
-var line *addr2; /* Second addressed line */
-var line *dol; /* Last line in buffer */
-var line *dot; /* Current line */
-var line *one; /* First line */
-var line *truedol; /* End of all lines, including saves */
-var line *unddol; /* End of undo saved lines */
-var line *zero; /* Points to empty slot before one */
-
-/*
- * Undo information
- *
- * For most commands we save lines changed by salting them away between
- * dol and unddol before they are changed (i.e. we save the descriptors
- * into the temp file tfile which is never garbage collected). The
- * lines put here go back after unddel, and to complete the undo
- * we delete the lines [undap1,undap2).
- *
- * Undoing a move is much easier and we treat this as a special case.
- * Similarly undoing a "put" is a special case for although there
- * are lines saved between dol and unddol we don't stick these back
- * into the buffer.
- */
-var short undkind;
-
-var line *unddel; /* Saved deleted lines go after here */
-var line *undap1; /* Beginning of new lines */
-var line *undap2; /* New lines end before undap2 */
-var line *undadot; /* If we saved all lines, dot reverts here */
-
-#define UNDCHANGE 0
-#define UNDMOVE 1
-#define UNDALL 2
-#define UNDNONE 3
-#define UNDPUT 4
-
-extern int (*Outchar)(int);
-extern int (*Pline)(int, int);
-extern int (*Putchar)(int);
-
-#define NOSTR (char *) 0
-#define NOLINE (line *) 0
-
-#define ignore(a) a
-#define ignorf(a) a
-
-#ifdef LANGMSG
-#include <nl_types.h>
-var nl_catd catd;
-#else /* !LANGMSG */
-#define catgets(a, b, c, d) (d)
-#endif /* !LANGMSG */
-var char *cntrlhm;
-
-#include "ex_proto.h"
-
-var int mb_cur_max;
-#ifdef MB
-#define nextc(c, s, n) (mb_cur_max > 1 && *(s) & 0200 ? \
- ((n) = mbtowi(&(c), (s), mb_cur_max), \
- (n) = ((n) > 0 ? (n) : (n) < 0 ? (c=WEOF, 1) : 1)) :\
- ((c) = *(s) & 0377, (n) = 1))
-#define colsc(c) (mb_cur_max > 1 && ((c)&0177) != (c) ? wcwidth(c) : 1)
-#define skipleft(l, p) (mb_cur_max > 1 && ((p)[0]&0200 || \
- (p)>(l) && (p)[-1]&0200) ? wskipleft(l, p) : -1)
-#define skipright(l, p) (mb_cur_max > 1 && (p)>=(l) && (p)[0]&0200 ? \
- wskipright(l, p) : 1)
-#define samechar(cp, c) (mb_cur_max > 1 && *(cp)&0200 ? wsamechar(cp, c) : \
- (*(cp)&0377) == c)
-#define xisdigit(c) (mb_cur_max > 1 ? iswdigit(c) : isdigit(c))
-#define xisalpha(c) (mb_cur_max > 1 ? iswalpha(c) : isalpha(c))
-#define xisalnum(c) (mb_cur_max > 1 ? iswalnum(c) : isalnum(c))
-#define xisspace(c) (mb_cur_max > 1 ? iswspace(c) : isspace(c))
-#define xisupper(c) (mb_cur_max > 1 ? iswupper(c) : isupper(c))
-#define xislower(c) (mb_cur_max > 1 ? iswlower(c) : islower(c))
-#define xtolower(c) (mb_cur_max > 1 ? towlower(c) : tolower(c))
-#define xtoupper(c) (mb_cur_max > 1 ? towupper(c) : toupper(c))
-#else /* !MB */
-#define nextc(c, s, n) ((c) = *(s) & 0377, (n) = 1)
-#define colsc(c) (1)
-#define skipleft(l, p) (-1)
-#define skipright(l, p) (1)
-#define samechar(cp, c) (*(cp)&0377 == c)
-#define xisdigit(c) isdigit(c)
-#define xisalpha(c) isalpha(c)
-#define xisalnum(c) isalnum(c)
-#define xisspace(c) isspace(c)
-#define xisupper(c) isupper(c)
-#define xislower(c) islower(c)
-#define xtolower(c) tolower(c)
-#define xtoupper(c) toupper(c)
-#endif /* !MB */