This is zle.h in view mode; [Download] [Up]
/*
* $Id: zle.h,v 2.10 1996/10/15 20:16:35 hzoli Exp $
*
* zle.h - header file for line editor
*
* This file is part of zsh, the Z shell.
*
* Copyright (c) 1992-1996 Paul Falstad
* All rights reserved.
*
* Permission is hereby granted, without written agreement and without
* license or royalty fees, to use, copy, modify, and distribute this
* software and to distribute modified versions of this software for any
* purpose, provided that the above copyright notice and the following
* two paragraphs appear in all copies of this software.
*
* In no event shall Paul Falstad or the Zsh Development Group be liable
* to any party for direct, indirect, special, incidental, or consequential
* damages arising out of the use of this software and its documentation,
* even if Paul Falstad and the Zsh Development Group have been advised of
* the possibility of such damage.
*
* Paul Falstad and the Zsh Development Group specifically disclaim any
* warranties, including, but not limited to, the implied warranties of
* merchantability and fitness for a particular purpose. The software
* provided hereunder is on an "as is" basis, and Paul Falstad and the
* Zsh Development Group have no obligation to provide maintenance,
* support, updates, enhancements, or modifications.
*
*/
#ifdef ZLEGLOBALS
#define ZLEXTERN
#else
#define ZLEXTERN extern
#endif
#ifdef ZLE
/* size of line buffer */
ZLEXTERN int linesz;
/* location of mark */
ZLEXTERN int mark;
/* last character pressed */
ZLEXTERN int c;
/* the z_ binding id for this key */
ZLEXTERN int bindk;
/* command argument */
ZLEXTERN int zmult;
/* buffer specified with "x */
ZLEXTERN int vibufspec;
/* is the current vi buffer specification overwriting or appending? */
ZLEXTERN int vibufappend;
/* insert mode/overwrite mode flag */
ZLEXTERN int insmode;
#ifdef HAVE_SELECT
/* cost of last update */
ZLEXTERN int cost;
/* Terminal baud rate (from the BAUD parameter) */
ZLEXTERN int baud;
#endif
/* number of lines displayed */
ZLEXTERN int nlnct;
/* Most lines of the buffer we've shown at once with the current list *
* showing. == 0 if there is no list. == -1 if a new list has just *
* been put on the screen. == -2 if refresh() needs to put up a new *
* list. */
ZLEXTERN int showinglist;
/* flags associated with last command */
ZLEXTERN int lastcmd;
/* column position before last LINEMOVE movement */
ZLEXTERN int lastcol;
/* != 0 if we're getting a vi range */
ZLEXTERN int virangeflag;
/* kludge to get cw and dw to work right */
ZLEXTERN int wordflag;
/* != 0 if we're killing lines into a buffer, vi-style */
ZLEXTERN int vilinerange;
#endif
/* != 0 if we're in vared */
ZLEXTERN int in_vared;
/* cursor position */
ZLEXTERN int cs;
/* line length */
ZLEXTERN int ll;
/* height of left prompt */
ZLEXTERN int lppth;
/* last named command done */
ZLEXTERN int lastnamed;
/* != 0 if we're done editing */
ZLEXTERN int done;
/* current history line number */
ZLEXTERN int histline;
/* != 0 if we need to call resetvideo() */
ZLEXTERN int resetneeded;
/* != 0 if the line editor is active */
ZLEXTERN int zleactive;
/* the line buffer */
ZLEXTERN unsigned char *line;
/* left prompt and right prompt */
ZLEXTERN char *lpmpt, *rpmpt;
/* the last line in the history (the current one), metafied */
ZLEXTERN char *curhistline;
/* the status line, and its length */
ZLEXTERN char *statusline;
ZLEXTERN int statusll;
/* !=0 if a complete added a suffix at the end of a completion */
ZLEXTERN int addedsuffix;
/* 1 if we expect special keys after completing a parameter name */
ZLEXTERN int complexpect;
/* The current history line and cursor position for the top line *
* on the buffer stack. */
ZLEXTERN int stackhist, stackcs;
/* != 0 if we are in the middle of a menu completion */
ZLEXTERN int menucmp;
/* != 0 if we are making undo records */
ZLEXTERN int undoing;
/* != 0 if executing a shell function called from zle */
ZLEXTERN int inzlefunc;
/* last vi change buffer, for vi change repetition */
ZLEXTERN int vichgbufsz, vichgbufptr, vichgflag;
ZLEXTERN char *vichgbuf;
/* point where vi insert mode was last entered */
ZLEXTERN int viinsbegin;
/* inwhat says what exactly we are in *
* (its value is one of the IN_* things below). */
ZLEXTERN int inwhat;
/* Nothing special. */
#define IN_NOTHING 0
/* In command position. */
#define IN_CMD 1
/* In a mathematical environment. */
#define IN_MATH 2
/* In a condition. */
#define IN_COND 3
/* In a parameter assignment (e.g. `foo=bar'). */
#define IN_ENV 4
/* != 0 if an argument has been given for this command */
ZLEXTERN int gotmult;
/* != 0 if a kill buffer has been given for this command */
ZLEXTERN int gotvibufspec;
typedef void bindfunc _((void));
typedef bindfunc *F;
struct key {
struct hashnode *next;
char *nam; /* hash data */
int flags; /* CURRENTLY UNUSED */
int func; /* function code for this key */
char *str; /* string corresponding to this key,
* if func = z_sendstring */
int len; /* length of string */
int prefixct; /* number of strings for which this is a prefix */
};
struct zlecmd {
char *name; /* name of function */
F func; /* handler function */
int flags;
};
/* undo event */
struct undoent {
int pref; /* number of initial chars unchanged */
int suff; /* number of trailing chars unchanged */
int len; /* length of changed chars */
int cs; /* cursor pos before change */
char *change; /* NOT null terminated */
};
#define UNDOCT 64
ZLEXTERN struct undoent undos[UNDOCT];
/* the line before last mod (for undo purposes) */
ZLEXTERN unsigned char *lastline;
ZLEXTERN int undoct, lastcs, lastll;
ZLEXTERN char *visrchstr;
ZLEXTERN int visrchsense;
#define ZLE_MOVEMENT (1<<0)
#define ZLE_MENUCMP (1<<1)
#define ZLE_UNDO (1<<2)
#define ZLE_YANK (1<<3)
#define ZLE_LINEMOVE (1<<4)
#define ZLE_ARG (1<<5)
#define ZLE_KILL (1<<6)
#define ZLE_HISTSEARCH (1<<7)
#define ZLE_NEGARG (1<<8)
#define ZLE_INSERT (1<<9)
#define ZLE_DELETE (1<<10)
#define ZLE_DIGIT (1<<11)
typedef struct key *Key;
ZLEXTERN int *bindtab, *mainbindtab;
extern int emacsbind[], viinsbind[], vicmdbind[];
ZLEXTERN int altbindtab[256];
/* Cut/kill buffer type. The buffer itself is purely binary data, *
* not NUL-terminated. len is a length count. flags uses the *
* CUTBUFFER_* constants defined below. */
struct cutbuffer {
char *buf;
size_t len;
char flags;
};
typedef struct cutbuffer *Cutbuffer;
#define CUTBUFFER_LINE 1 /* for vi: buffer contains whole lines of data */
/* Primary cut buffer */
ZLEXTERN struct cutbuffer cutbuf;
/* Emacs-style kill buffer ring */
#define KRINGCT 8
ZLEXTERN struct cutbuffer kring[KRINGCT];
ZLEXTERN int kringnum;
/* Vi named cut buffers. 0-25 are the named buffers "a to "z, and *
* 26-34 are the numbered buffer stack "1 to "9. */
ZLEXTERN struct cutbuffer vibuf[35];
/* ZLE command table indices */
enum {
z_acceptandhold,
z_acceptandinfernexthistory,
z_acceptandmenucomplete,
z_acceptline,
z_acceptlineanddownhistory,
z_backwardchar,
z_backwarddeletechar,
z_backwarddeleteword,
z_backwardkillline,
z_backwardkillword,
z_backwardword,
z_beginningofbufferorhistory,
z_beginningofhistory,
z_beginningofline,
z_beginningoflinehist,
z_capitalizeword,
z_clearscreen,
z_completeword,
z_copyprevword,
z_copyregionaskill,
z_deletechar,
z_deletecharorlist,
z_deleteword,
z_describekeybriefly,
z_digitargument,
z_downcaseword,
z_downhistory,
z_downlineorhistory,
z_downlineorsearch,
z_emacsbackwardword,
z_emacsforwardword,
z_endofbufferorhistory,
z_endofhistory,
z_endofline,
z_endoflinehist,
z_exchangepointandmark,
z_executelastnamedcmd,
z_executenamedcmd,
z_expandcmdpath,
z_expandhistory,
z_expandorcomplete,
z_expandorcompleteprefix,
z_expandword,
z_forwardchar,
z_forwardword,
z_getline,
z_gosmacstransposechars,
z_historybeginningsearchbackward,
z_historybeginningsearchforward,
z_historyincrementalsearchbackward,
z_historyincrementalsearchforward,
z_historysearchbackward,
z_historysearchforward,
z_infernexthistory,
z_insertlastword,
z_killbuffer,
z_killline,
z_killregion,
z_killwholeline,
z_killword,
z_listchoices,
z_listexpand,
z_magicspace,
z_menucomplete,
z_menuexpandorcomplete,
z_negargument,
z_overwritemode,
z_poundinsert,
z_prefix,
z_pushinput,
z_pushline,
z_pushlineoredit,
z_quotedinsert,
z_quoteline,
z_quoteregion,
z_redisplay,
z_reversemenucomplete,
z_runhelp,
z_selfinsert,
z_selfinsertunmeta,
z_sendbreak,
z_sendstring,
z_setmarkcommand,
z_spellword,
z_transposechars,
z_transposewords,
z_undefinedkey,
z_undo,
z_universalargument,
z_upcaseword,
z_uphistory,
z_uplineorhistory,
z_uplineorsearch,
z_viaddeol,
z_viaddnext,
z_vibackwardblankword,
z_vibackwardchar,
z_vibackwarddeletechar,
z_vibackwardkillword,
z_vibackwardword,
z_vibeginningofline,
z_vicapslockpanic,
z_vichange,
z_vichangeeol,
z_vichangewholeline,
z_vicmdmode,
z_videlete,
z_videletechar,
z_vidigitorbeginningofline,
z_vidownlineorhistory,
z_viendofline,
z_vifetchhistory,
z_vifindnextchar,
z_vifindnextcharskip,
z_vifindprevchar,
z_vifindprevcharskip,
z_vifirstnonblank,
z_viforwardblankword,
z_viforwardblankwordend,
z_viforwardchar,
z_viforwardword,
z_viforwardwordend,
z_vigotocolumn,
z_vigotomark,
z_vigotomarkline,
z_vihistorysearchbackward,
z_vihistorysearchforward,
z_viindent,
z_viinsert,
z_viinsertbol,
z_vijoin,
z_vikilleol,
z_vikillline,
z_vimatchbracket,
z_viopenlineabove,
z_viopenlinebelow,
z_vioperswapcases,
z_vipoundinsert,
z_viputafter,
z_viputbefore,
z_viquotedinsert,
z_virepeatchange,
z_virepeatfind,
z_virepeatsearch,
z_vireplace,
z_vireplacechars,
z_virevrepeatfind,
z_virevrepeatsearch,
z_visetbuffer,
z_visetmark,
z_visubstitute,
z_viswapcase,
z_viundochange,
z_viunindent,
z_viuplineorhistory,
z_viyank,
z_viyankeol,
z_viyankwholeline,
z_whereis,
z_whichcommand,
z_yank,
z_yankpop,
ZLECMDCOUNT
};
extern struct zlecmd zlecmds[];
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.