stevie (vi clone) problems...
Mat Waites
mat at emcard.UUCP
Wed Aug 3 22:57:46 AEST 1988
In article <984 at xyzzy.UUCP> rivers at dg-rtp.UUCP (Dave Rivers) writes:
>
> I was just getting around to trying out the stevie sources
>posted to comp.sources.unix, and I find that I am missing "stevie.h".
>Not only am I missing it, according to the supplied MANIFEST, it wasn't
>even sent!
>
> Thanx in advance...
> - Dave Rivers -
>--
It was posted several days after the original post...
Here it is:
-------------------cut here--------------------------
/*
* STevie - ST editor for VI enthusiasts. ...Tim Thompson...twitch!tjt...
*
* Extensive modifications by: Tony Andrews onecom!wldrdg!tony
*
*/
/*
* One (and only 1) of the following defines should be uncommented.
* Most of the code is pretty machine-independent. Machine dependent
* code goes in a file like tos.c or unix.c. The only other place
* where machine dependent code goes is term.h for escape sequences.
*/
/* #define ATARI /* For the Atari ST */
#define UNIX /* System V */
/* #define OS2 /* Microsoft OS/2 */
/*
* If ATARI is defined, one of the following compilers must be selected.
*/
#ifdef ATARI
#define MEGAMAX /* Megamax Compiler */
/* #define ALCYON /* Alcyon C compiler */
#endif
/*
* If HELP is defined, the :help command shows a vi command summary.
*/
#define HELP /* enable help command */
#define INIT
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#include "ascii.h"
#include "keymap.h"
#include "param.h"
#include "term.h"
extern char *strchr();
#define NORMAL 0
#define CMDLINE 1
#define INSERT 2
#define APPEND 3
#define FORWARD 4
#define BACKWARD 5
/*
* Boolean type definition and constants
*/
typedef short bool_t;
#ifndef TRUE
#define FALSE (0)
#define TRUE (1)
#endif
/*
* SLOP is the amount of extra space we get for text on a line during
* editing operations that need more space. This keeps us from calling
* malloc every time we get a character during insert mode. No extra
* space is allocated when the file is initially read.
*/
#define SLOP 10
/*
* LINEINC is the gap we leave between the artificial line numbers. This
* helps to avoid renumbering all the lines every time a new line is
* inserted.
*/
#define LINEINC 10
/*
* See 'normal.c' for a description of can_undo.
*/
extern bool_t can_undo;
#define CHANGED Changed = !(can_undo = FALSE)
#define UNCHANGED Changed=0
struct line {
struct line *prev, *next; /* previous and next lines */
char *s; /* text for this line */
int size; /* actual size of space at 's' */
unsigned int num; /* line "number" */
};
#define LINEOF(x) (x->linep->num)
struct lptr {
struct line *linep; /* line we're referencing */
int index; /* position within that line */
};
typedef struct line LINE;
typedef struct lptr LPTR;
struct charinfo {
char ch_size;
char *ch_str;
};
extern struct charinfo chars[];
extern int State;
extern int Rows;
extern int Columns;
extern char *Realscreen;
extern char *Nextscreen;
extern char *Filename;
extern LPTR *Filemem;
extern LPTR *Fileend;
extern LPTR *Topchar;
extern LPTR *Botchar;
extern LPTR *Curschar;
extern LPTR *Insstart;
extern int Cursrow, Curscol, Cursvcol, Curswant;
extern bool_t set_want_col;
extern int Prenum;
extern bool_t Debug;
extern bool_t Changed;
extern bool_t Binary;
extern char Redobuff[], Undobuff[], Insbuff[];
extern LPTR *Uncurschar;
extern char *Insptr;
extern int Ninsert, Undelchars;
extern char *malloc(), *strcpy();
/*
* alloc.c
*/
char *alloc(), *strsave();
void screenalloc(), filealloc(), freeall();
LINE *newline();
bool_t bufempty(), buf1line(), lineempty(), endofline(), canincrease();
/*
* cmdline.c
*/
void readcmdline(), dotag(), msg(), emsg(), smsg(), gotocmd(), wait_return();
/*
* edit.c
*/
void edit(), insertchar(), getout(), scrollup(), scrolldown(), beginline();
bool_t oneright(), oneleft(), oneup(), onedown();
/*
* fileio.c
*/
void filemess(), renum();
bool_t readfile(), writeit();
/*
* help.c
*/
bool_t help();
/*
* linefunc.c
*/
LPTR *nextline(), *prevline(), *coladvance();
/*
* main.c
*/
void stuffin(), stuffnum(), addtobuff();
int vgetc(), vpeekc();
bool_t anyinput();
/*
* mark.c
*/
void setpcmark(), clrall(), clrmark();
bool_t setmark();
LPTR *getmark();
/*
* misccmds.c
*/
void opencmd(), fileinfo(), inschar(), insstr(), delline();
bool_t delchar();
int cntllines(), plines();
LPTR *gotoline();
/*
* normal.c
*/
void normal(), resetundo();
char *mkstr();
/*
* param.c
*/
void doset();
/*
* ptrfunc.c
*/
int inc(), dec();
int gchar();
void pchar(), pswap();
bool_t lt(), gt(), equal(), ltoreq(), gtoreq();
/*
* screen.c
*/
void updatescreen(), updateline();
void screenclear(), cursupdate();
void s_ins(), s_del();
/*
* search.c
*/
void dosearch(), repsearch();
bool_t searchc(), crepsearch(), findfunc();
LPTR *showmatch();
LPTR *fwd_word(), *bck_word(), *end_word();
/*
* Machine-dependent routines.
*/
int inchar();
void outchar(), outstr(), beep();
#ifndef OS2
void remove(), rename();
#endif
void windinit(), windexit(), windgoto();
void delay();
--------------------------cut here, too----------------------------
--
W Mat Waites | Emory Cardiac Data Bank | UUCP: gatech!emcard!mat
| Atlanta, GA | PHONE: (404) 727-7197
******** End of newsgroups--what next? [npq]
More information about the Comp.unix.questions
mailing list