Remove V7, MSC, TURBO conditional code. Partial remove of MSDOS.

This commit is contained in:
Renaud 2019-07-23 21:04:50 +08:00
parent 9a841626e2
commit e11ed9187f
11 changed files with 34 additions and 369 deletions

View File

@ -5,7 +5,7 @@
/* Must define one of
V7 | USG | BSD | MSDOS
USG | BSD
*/
#define USG 1

71
ebind.c
View File

@ -318,77 +318,6 @@ struct key_tab keytab[NBINDS] = {
{META | 0x7F, delbword}
,
#if MSDOS
{SPEC | CONTROL | '_', forwhunt}
,
{SPEC | CONTROL | 'S', backhunt}
,
{SPEC | 71, (fn_t) gotobol}
,
{SPEC | 72, (fn_t) backline}
,
{SPEC | 73, (fn_t) backpage}
,
{SPEC | 75, (fn_t) backchar}
,
{SPEC | 77, (fn_t) forwchar}
,
{SPEC | 79, (fn_t) gotoeol}
,
{SPEC | 80, (fn_t) forwline}
,
{SPEC | 81, (fn_t) forwpage}
,
{SPEC | 82, insspace}
,
{SPEC | 83, forwdel}
,
{SPEC | 115, backword}
,
{SPEC | 116, forwword}
,
#if WORDPRO
{SPEC | 132, gotobop}
,
{SPEC | 118, gotoeop}
,
#endif
{SPEC | 84, cbuf1}
,
{SPEC | 85, cbuf2}
,
{SPEC | 86, cbuf3}
,
{SPEC | 87, cbuf4}
,
{SPEC | 88, cbuf5}
,
{SPEC | 89, cbuf6}
,
{SPEC | 90, cbuf7}
,
{SPEC | 91, cbuf8}
,
{SPEC | 92, cbuf9}
,
{SPEC | 93, cbuf10}
,
#if PKCODE
{SPEC | 117, (fn_t) gotoeob}
,
{SPEC | 119, (fn_t) gotobob}
,
{SPEC | 141, gotobop}
,
{SPEC | 145, gotoeop}
,
{SPEC | 146, yank}
,
{SPEC | 147, killregion}
,
#endif
#endif
#if VT220
{SPEC | '1', (fn_t) gotobob /* fisearch */}
, /* VT220 keys */

View File

@ -17,22 +17,13 @@
#ifdef MSDOS
#undef MSDOS
#endif
#ifdef EGA
#undef EGA
#endif
/* Machine/OS definitions. */
#if defined(AUTOCONF) || defined(MSDOS) || defined(BSD) || defined(SYSV)
#if defined(AUTOCONF) || defined(BSD) || defined(SYSV)
/* Make an intelligent guess about the target system. */
#if defined(__TURBOC__)
#define MSDOS 1 /* MS/PC DOS 3.1-4.0 with Turbo C 2.0 */
#else
#define MSDOS 0
#endif
#if defined(BSD) || defined(sun) || defined(ultrix) || defined(__osf__)
#ifndef BSD
#define BSD 1 /* Berkeley UNIX */
@ -53,31 +44,19 @@
#define USG 0
#endif
#define V7 0 /* No more. */
#else
# define BSD 0 /* UNIX BSD 4.2 and ULTRIX */
# define USG 1 /* UNIX system V */
#endif /*autoconf */
#define MSDOS 1 /* MS-DOS */
#define V7 0 /* V7 UNIX or Coherent or BSD4.2 */
#define BSD 0 /* UNIX BSD 4.2 and ULTRIX */
#define USG 0 /* UNIX system V */
#endif /*autoconf */
#define MSDOS 0 /* MS-DOS */
/* Compiler definitions */
#ifndef AUTOCONF
/* Compiler definitions */
#define UNIX 0 /* a random UNIX compiler */
#define MSC 0 /* MicroSoft C compiler, versions 3 up */
#define TURBO 1 /* Turbo C/MSDOS */
# define UNIX 1 /* a random UNIX compiler */
#else
#define UNIX (V7 | BSD | USG)
#define MSC 0
#define TURBO MSDOS
#endif /*autoconf */
# define UNIX (BSD | USG)
#endif /*autoconf */
/* Debugging options */
@ -164,25 +143,6 @@
#define IBMCHR MSDOS /* use IBM PC character set P.K. */
#define SCROLLCODE 1 /* scrolling code P.K. */
/* System dependant library redefinitions, structures and includes. */
#if TURBO
#include <dos.h>
#include <mem.h>
#undef peek
#undef poke
#define peek(a,b,c,d) movedata(a,b,FP_SEG(c),FP_OFF(c),d)
#define poke(a,b,c,d) movedata(FP_SEG(c),FP_OFF(c),a,b,d)
#endif
#if MSDOS & MSC
#include <dos.h>
#include <memory.h>
#define peek(a,b,c,d) movedata(a,b,FP_SEG(c),FP_OFF(c),d)
#define poke(a,b,c,d) movedata(FP_SEG(c),FP_OFF(c),a,b,d)
#define movmem(a, b, c) memcpy(b, a, c)
#endif
/* Define some ability flags. */
#if IBMPC
@ -191,10 +151,10 @@
#define MEMMAP 0
#endif
#if MSDOS | V7 | USG | BSD
#define ENVFUNC 1
#if USG | BSD
# define ENVFUNC 1
#else
#define ENVFUNC 0
# define ENVFUNC 0
#endif
/* DIFCASE represents the integer difference between upper

2
file.c
View File

@ -395,7 +395,7 @@ void makename( bname_t bname, const char *fname)
&& cp1[-1] != '/')
--cp1;
#endif
#if V7 | USG | BSD
#if USG | BSD
while (cp1 != &fname[0] && cp1[-1] != '/')
--cp1;
#endif

View File

@ -2,11 +2,6 @@
#include "fileio.h"
#ifdef CTRLZ
#undef CTRLZ
#endif
#define CTRLZ 0 /* add a ^Z at end of files under MSDOS only */
/* FILEIO.C
*
* The routines in this file read and write ASCII files from the disk. All of
@ -70,17 +65,7 @@ fio_code ffclose(void)
ftype = FTYPE_NONE ;
fcode = FCODE_ASCII ;
#if MSDOS & CTRLZ
fputc(26, ffp); /* add a ^Z at the end of the file */
#endif
#if V7 | USG | BSD | (MSDOS & (MSC | TURBO))
if (fclose(ffp) != FALSE)
return FIOERR;
#else
fclose(ffp);
#endif
return FIOSUC;
return (fclose( ffp) != FALSE) ? FIOERR : FIOSUC ;
}
/*

14
flook.c
View File

@ -13,17 +13,7 @@
/* possible names and paths of help files under different OSs */
const char *pathname[] = {
#if MSDOS
"emacs.rc",
"emacs.hlp",
"\\sys\\public\\",
"\\usr\\bin\\",
"\\bin\\",
"\\",
""
#endif
#if V7 | BSD | USG
#if BSD | USG
".emacsrc",
"emacs.hlp",
#if PKCODE
@ -107,7 +97,7 @@ char *flook( const char *fname, boolean hflag)
}
#if ENVFUNC
#if V7 | USG | BSD
#if USG | BSD
#define PATHCHR ':'
#else
#define PATHCHR ';'

View File

@ -24,13 +24,7 @@
#include "utf8.h"
#include "wrapper.h"
#if PKCODE
#if MSDOS && TURBO
#include <dir.h>
#endif
#endif
#if PKCODE && (UNIX || (MSDOS && TURBO))
#if PKCODE && UNIX
#define COMPLC 1
#else
#define COMPLC 0

9
main.c
View File

@ -92,15 +92,6 @@
#include "version.h"
#include "window.h"
/* For MSDOS, increase the default stack space. */
#if MSDOS & TURBO
#if PKCODE
extern unsigned _stklen = 20000;
#else
extern unsigned _stklen = 32766;
#endif
#endif
#if UNIX
static void emergencyexit(int signr)
{

View File

@ -1287,7 +1287,7 @@ static int mcstr(void)
if (status) {
rtpcm = &tapcm[0];
while (--mj >= 0) {
#if MSC | TURBO | USG | BSD | V7
#if USG | BSD
*rtpcm++ = *--mcptr;
#endif
}

154
spawn.c
View File

@ -5,7 +5,7 @@
*
* Various operating system access commands.
*
* <odified by Petri Kutvonen
* Modified by Petri Kutvonen
*/
#include <stdio.h>
@ -26,16 +26,12 @@
#include "window.h"
#if V7 | USG | BSD
#if USG | BSD
#include <signal.h>
#ifdef SIGWINCH
#endif
#endif
#if MSDOS & (MSC | TURBO)
#include <process.h>
#endif
/*
* Create a subjob with a copy of the command intrepreter in it. When the
@ -44,7 +40,7 @@
*/
int spawncli(int f, int n)
{
#if V7 | USG | BSD
#if USG | BSD
char *cp;
#endif
@ -52,16 +48,7 @@ int spawncli(int f, int n)
if (restflag)
return resterr();
#if MSDOS & (MSC | TURBO)
movecursor(term.t_nrow, 0); /* Seek to last line. */
TTflush();
TTkclose();
shellprog("");
TTkopen();
sgarbf = TRUE;
return TRUE;
#endif
#if V7 | USG | BSD
#if USG | BSD
movecursor(term.t_nrow, 0); /* Seek to last line. */
TTflush();
TTclose(); /* stty to old settings */
@ -128,7 +115,7 @@ int spawn( int f, int n) {
if( restflag)
return resterr();
#if V7 | USG | BSD
#if USG | BSD
s = newmlarg( &line, "!", 0) ;
if( s != TRUE)
return s ;
@ -167,7 +154,7 @@ int execprg( int f, int n) {
if( restflag)
return resterr() ;
#if V7 | USG | BSD
#if USG | BSD
s = newmlarg( &line, "$", 0) ;
if( s != TRUE)
return s ;
@ -244,7 +231,7 @@ int pipecmd( int f, int n) {
return FALSE ;
}
}
#if V7 | USG | BSD
#if USG | BSD
TTflush();
TTclose(); /* stty to old modes */
TTkclose();
@ -332,7 +319,7 @@ int filter_buffer( int f, int n) {
return FALSE ;
}
#if V7 | USG | BSD
#if USG | BSD
TTputc('\n'); /* Already have '\r' */
TTflush();
TTclose(); /* stty to old modes */
@ -366,127 +353,4 @@ int filter_buffer( int f, int n) {
return TRUE;
}
#if MSDOS & (TURBO | MSC)
/*
* SHELLPROG: Execute a command in a subshell
*
* char *cmd; Incoming command line to execute
*/
int shellprog(char *cmd)
{
char *shell; /* Name of system command processor */
char *p; /* Temporary pointer */
char swchar; /* switch character to use */
union REGS regs; /* parameters for dos call */
char comline[NSTRING]; /* constructed command line */
/* detect current switch character and set us up to use it */
regs.h.ah = 0x37; /* get setting data */
regs.h.al = 0x00; /* get switch character */
intdos(&regs, &regs);
swchar = (char) regs.h.dl;
/* get name of system shell */
if ((shell = getenv("COMSPEC")) == NULL) {
return FALSE; /* No shell located */
}
/* trim leading whitespace off the command */
while (*cmd == ' ' || *cmd == '\t') /* find out if null command */
cmd++;
/** If the command line is not empty, bring up the shell **/
/** and execute the command. Otherwise, bring up the **/
/** shell in interactive mode. **/
if (*cmd) {
strcpy(comline, shell);
strcat(comline, " ");
comline[strlen(comline) + 1] = 0;
comline[strlen(comline)] = swchar;
strcat(comline, "c ");
strcat(comline, cmd);
return execprog(comline);
} else
return execprog(shell);
}
/*
* EXECPROG:
* A function to execute a named program
* with arguments
*
* char *cmd; Incoming command line to execute
*/
int execprog(char *cmd)
{
char *sp; /* temporary string pointer */
char f1[38]; /* FCB1 area (not initialized */
char f2[38]; /* FCB2 area (not initialized */
char prog[NSTRING]; /* program filespec */
char tail[NSTRING]; /* command tail with length byte */
union REGS regs; /* parameters for dos call */
struct SREGS segreg; /* segment registers for dis call */
struct pblock { /* EXEC parameter block */
short envptr; /* 2 byte pointer to environment string */
char *cline; /* 4 byte pointer to command line */
char *fcb1; /* 4 byte pointer to FCB at PSP+5Ch */
char *fcb2; /* 4 byte pointer to FCB at PSP+6Ch */
} pblock;
/* parse the command name from the command line */
sp = prog;
while (*cmd && (*cmd != ' ') && (*cmd != '\t'))
*sp++ = *cmd++;
*sp = 0;
/* and parse out the command tail */
while (*cmd && ((*cmd == ' ') || (*cmd == '\t')))
++cmd;
*tail = (char) (strlen(cmd)); /* record the byte length */
strcpy(&tail[1], cmd);
strcat(&tail[1], "\r");
/* look up the program on the path trying various extentions */
if ((sp = flook(prog, TRUE)) == NULL)
if ((sp = flook(strcat(prog, ".exe"), TRUE)) == NULL) {
strcpy(&prog[strlen(prog) - 4], ".com");
if ((sp = flook(prog, TRUE)) == NULL)
return FALSE;
}
strcpy(prog, sp);
/* get a pointer to this PSPs environment segment number */
segread(&segreg);
/* set up the EXEC parameter block */
pblock.envptr = 0; /* make the child inherit the parents env */
pblock.fcb1 = f1; /* point to a blank FCB */
pblock.fcb2 = f2; /* point to a blank FCB */
pblock.cline = tail; /* parameter line pointer */
/* and make the call */
regs.h.ah = 0x4b; /* EXEC Load or Execute a Program */
regs.h.al = 0x00; /* load end execute function subcode */
segreg.ds = ((unsigned long) (prog) >> 16); /* program name ptr */
regs.x.dx = (unsigned int) (prog);
segreg.es = ((unsigned long) (&pblock) >> 16); /* set up param block ptr */
regs.x.bx = (unsigned int) (&pblock);
#if TURBO | MSC
intdosx(&regs, &regs, &segreg);
if (regs.x.cflag == 0) {
regs.h.ah = 0x4d; /* get child process return code */
intdos(&regs, &regs); /* go do it */
rval = regs.x.ax; /* save child's return code */
} else
#if MSC
rval = -1;
#else
rval = -_doserrno; /* failed child call */
#endif
#endif
return (rval < 0) ? FALSE : TRUE;
}
#endif
/* end of spawn.c */

View File

@ -27,11 +27,6 @@ int ttrow = HUGE ; /* Row location of HW cursor */
int ttcol = HUGE ; /* Column location of HW cursor */
#if MSDOS & (MSC | TURBO)
union REGS rg; /* cpu register for use of DOS calls */
int nxtchar = -1; /* character held from type ahead */
#endif
#if USG /* System V */
#include <signal.h>
#include <termio.h>
@ -47,7 +42,7 @@ static struct termio ntermio ; /* characteristics to use inside */
#endif
#endif
#if V7 | BSD
#if BSD
#include <sgtty.h> /* for stty/gtty functions */
#include <signal.h>
struct sgttyb ostate; /* saved tty state */
@ -89,14 +84,6 @@ char tobuf[TBUFSIZ]; /* terminal output buffer */
*/
void ttopen(void)
{
#if MSDOS & (TURBO | (PKCODE & MSC))
/* kill the CONTROL-break interupt */
rg.h.ah = 0x33; /* control-break check dos call */
rg.h.al = 1; /* set the current state */
rg.h.dl = 0; /* set it OFF */
intdos(&rg, &rg); /* go for it! */
#endif
#if USG
ioctl(0, TCGETA, &otermio); /* save old settings */
ntermio.c_iflag = 0; /* setup new settings */
@ -118,7 +105,7 @@ void ttopen(void)
kbdpoll = FALSE;
#endif
#if V7 | BSD
#if BSD
gtty(0, &ostate); /* save old state */
gtty(0, &nstate); /* get base of new state */
#if XONXOFF
@ -165,14 +152,6 @@ void ttopen(void)
*/
void ttclose(void)
{
#if MSDOS & (TURBO | (PKCODE & MSC))
/* restore the CONTROL-break interupt */
rg.h.ah = 0x33; /* control-break check dos call */
rg.h.al = 1; /* set the current state */
rg.h.dl = 1; /* set it ON */
intdos(&rg, &rg); /* go for it! */
#endif
#if USG
#if PKCODE
ioctl(0, TCSETAW, &otermio); /* restore terminal settings */
@ -182,7 +161,7 @@ void ttclose(void)
fcntl(0, F_SETFL, kbdflgs);
#endif
#if V7 | BSD
#if BSD
stty(0, &ostate);
ioctl(0, TIOCSETC, &otchars); /* Place old character into K */
#if BSD & PKCODE
@ -208,10 +187,7 @@ int ttputc( unicode_t c) {
* up. A no-operation on systems where byte at a time terminal I/O is done.
*/
void ttflush( void) {
#if MSDOS
#endif
#if V7 | USG | BSD
#if USG | BSD
/*
* Add some terminal output success checking, sometimes an orphaned
* process may be left looping on SunOS 4.1.
@ -240,24 +216,7 @@ void ttflush( void) {
* Very simple on CPM, because the system can do exactly what you want.
*/
int ttgetc( void) {
#if MSDOS & (MSC | TURBO)
int c; /* character read */
/* if a char already is ready, return it */
if (nxtchar >= 0) {
c = nxtchar;
nxtchar = -1;
return c;
}
/* call the dos to get a char */
rg.h.ah = 7; /* dos Direct Console Input call */
intdos(&rg, &rg);
c = rg.h.al; /* grab the char */
return c & 255;
#endif
#if V7 | BSD
#if BSD
return 255 & fgetc(stdin); /* 8BIT P.K. */
#endif
@ -281,13 +240,6 @@ int ttgetc( void) {
int typahead( void)
{
#if MSDOS & (MSC | TURBO)
if (kbhit() != 0)
return TRUE;
else
return FALSE;
#endif
#if BSD
int x; /* holds # of pending chars */
@ -306,7 +258,7 @@ int typahead( void)
return kbdqp;
#endif
#if !UNIX & !MSDOS
#if !UNIX
return FALSE;
#endif
}