ftp.nice.ch/pub/next/unix/editor/e2.N.bs.tar.gz#/e2.N.bs/e.h

This is e.h in view mode; [Download] [Up]

/*
 * e.h 
 * version 1.3
 *
 * Terry Jones, Department of Computer Science, University of Waterloo
 *              Waterloo Ontario Canada N2L 3G1
 * {ihnp4,allegra,decvax,utzoo,utcsri,clyde}!watmath!watdragon!tcjones
 * tcjones@dragon.waterloo.{cdn,edu} tcjones@WATER.bitnet
 * tcjones%watdragon@waterloo.csnet 
 *
 */


#ifdef Bsd
#   include <stdio.h>
#   include <sys/types.h>
#   include <sys/stat.h>
#   include <signal.h>
#   include <sys/param.h>
#   include <pwd.h>
#   include <ctype.h>
#   include <sysexits.h>
#   include <sys/file.h>
#   include <sys/dir.h>
#   include <strings.h>
#   include <sys/ioctl.h>
#   define VI "/usr/ucb/vi"
    uid_t getuid();
    uid_t getgid();
#endif /* Bsd */


#ifdef Sun
#   include <stdio.h>
#   include <sys/types.h>
#   include <sys/stat.h>
#   include <signal.h>
#   include <sys/param.h>
#   include <pwd.h>
#   include <ctype.h>
#   include <sysexits.h>
#   include <sys/file.h>
#   include <sys/dir.h>
#   include <strings.h>
#   include <sys/time.h>
#   include <sys/vnode.h>
#   include <ufs/inode.h>
#   include <sgtty.h>
#   define VI "/usr/ucb/vi"
    extern char *sprintf();
#endif /* Sun */


#ifdef Sysv
#   include <stdio.h>
#   include <sys/types.h>
#   include <sys/stat.h>
#   include <signal.h>
#   include <sys/param.h>
#   include <pwd.h>
#   include <ctype.h>
#   include <sys/file.h>
#   include <termio.h>
#   include <string.h>
#   include <fcntl.h>
#   include <dirent.h>
#   include <sys/dir.h>
#   define index strchr
#   define rindex strrchr
#   define direct dirent
#   define MAXPATHLEN MAXNAMLEN
#   define ok_sprintf sprintf
#   define VI "/usr/bin/vi"
    extern struct passwd *getpwuid();
#endif /* Sysv */


#ifdef Ultrix
#   include <stdio.h>
#   include <sys/types.h>
#   include <sys/stat.h>
#   include <signal.h>
#   include <sys/param.h>
#   include <pwd.h>
#   include <ctype.h>
#   include <sysexits.h>
#   include <sys/file.h>
#   include <sys/dir.h>
#   include <strings.h>
#   include <sys/ioctl.h>
#   define VI "/usr/ucb/vi"
#endif /* Ultrix */


#ifdef Dynix
#   include <stdio.h>
#   include <sys/types.h>
#   include <sys/stat.h>
#   include <signal.h>
#   include <sys/param.h>
#   include <pwd.h>
#   include <ctype.h>
#   include <sys/dir.h>
#   include <sys/ioctl.h>
#   include <strings.h>
#   define VI "/usr/ucb/vi"
#endif /* Dynix */

#ifdef waterloo
#   include <stdlib.h>
#endif

/*
 * Other checks...
 *
 */

#ifndef IREAD
#   define IREAD    0400
#endif

#ifndef EX_IOERR
#   define EX_IOERR 1
#endif


/*
 * Things that aren't portability concerns.
 *
 */

#define DEFAULT_HIST    ".e"
#define HIST_LINES      9
#define HIST_CHARS      1024
#define E_PATH          "VIPATH"
#define E_HIST          "VIHIST"
#define E_INHERIT       "VIINHERIT"
#define E_SAFE_INHERIT  "VISAFEINHERIT"
#define E_PATH_LEN      2048
#define ARG_CHARS       4096
#define MAX_ARGS        100
#define O_READ          00004
#define G_READ          0004
#define TERM_RECORD     0
#define TERM_SET        1
#define TERM_RESET      2
#define VERSION         "1.3"

/*
 * STRUCT_ASST should be defined if your cc can handle structural assignments. 
 *
 * This is only used in the function terminal(). Leave STRUCT_ASST
 * defined and if it doesn't break you're ok. If it does, undefine it and
 * you'll definitely be ok (but things will run slower - even though you
 * wont notice it.) Words words words. Ho hum.
 *
 */

#define STRUCT_ASST


int char_in();
int check();
int clean_up();
int dir_check();
int match();
int read_hist();
int safety_first();
int sp_dist();
int spell_help();
void abandon();
void ask_hist();
void catch_signals();
void check_hist();
void dir_find();
void do_vi();
void e();
void e_error();
void find();
void find_hist();
void find_match();
void get_temp();
void inheritance();
void insert_cmd();
void multiple();
void new_vi();
void normal();
void nth_hist();
void ok_fprintf();
void ok_sprintf();
void reconstruct();
void terminal();


extern char *getenv();
extern char *mktemp();
extern char *sbrk();
#ifndef Sysv
    extern char *getwd();
    void ok_sprintf();
#endif

extern FILE *hist_fp;
extern FILE *tmp_fp;
extern char *hist[];
extern char *home;
extern char *myname;
extern char *saved_line;
extern char arg[];
extern char cwd[];
extern char ehist[];
extern char erase;
extern char tmp_file[];
extern int emode;
extern int hist_count;
extern int inherit;
extern int safe_inherit;
extern int uid;


/* 
 * Walk over white space. 
 *
 */
#define skip_white(c) while (*(c) == ' ' || *(c) == '\t') (c)++;

/* 
 * Walk over non-white characters. 
 *
 */
#define skip_to_white(c) while (*(c) && *(c) != ' ' && *(c) != '\t') (c)++;

/* 
 * Run down a string and zap the newline if we find one. 
 *
 */
#define zap_nl(c) while (*(c) && *(c) != '\n') (c)++; *(c) = '\0';

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.