add LCC - a better C-Compiler for WEGA
This commit is contained in:
parent
a5be14accb
commit
fac1bbb4ff
|
|
@ -0,0 +1,2 @@
|
|||
libcurses taken from 4.3BSD and modified to compile on WEGA with LCC
|
||||
libtermlib taken from 4.3BSD
|
||||
|
|
@ -0,0 +1,68 @@
|
|||
#
|
||||
# Copyright (c) 1980 Regents of the University of California.
|
||||
# All rights reserved. The Berkeley software License Agreement
|
||||
# specifies the terms and conditions for redistribution.
|
||||
#
|
||||
# @(#)Makefile 5.1 (Berkeley) 6/7/85
|
||||
#
|
||||
# curses package
|
||||
#
|
||||
|
||||
LIB= Llibcurses.a
|
||||
PREFIX= /z/LCC
|
||||
CC= lcc
|
||||
|
||||
#LIB= libcurses.a
|
||||
#PREFIX= /usr
|
||||
#CC= cc
|
||||
|
||||
#LIB= slibcurses.a
|
||||
#PREFIX= /usr
|
||||
#CC= scc
|
||||
|
||||
CFLAGS= -O
|
||||
|
||||
AR= -ar
|
||||
ARFLAGS= rvu
|
||||
|
||||
CHMOG= chmog
|
||||
CP= cp
|
||||
RANLIB= ranlib
|
||||
LIBMODE= 644
|
||||
LIBOWNER= wega
|
||||
LIBGROUP= system
|
||||
|
||||
CFILES= addch.c addstr.c box.c clear.c clrtobot.c clrtoeol.c cr_put.c \
|
||||
cr_tty.c curses.c delch.c deleteln.c delwin.c endwin.c erase.c \
|
||||
getch.c getstr.c idlok.c id_subwins.c initscr.c insch.c \
|
||||
insertln.c move.c mvprintw.c mvscanw.c mvwin.c newwin.c \
|
||||
overlay.c overwrite.c printw.c putchar.c refresh.c scanw.c scroll.c \
|
||||
toucholap.c standout.c touchwin.c tstp.c unctrl.c
|
||||
#CFILES+=fullname.c longname.c
|
||||
|
||||
OBJS= addch.o addstr.o box.o clear.o clrtobot.o clrtoeol.o cr_put.o \
|
||||
cr_tty.o curses.o delch.o deleteln.o delwin.o endwin.o erase.o \
|
||||
getch.o getstr.o idlok.o id_subwins.o initscr.o insch.o \
|
||||
insertln.o move.o mvprintw.o mvscanw.o mvwin.o newwin.o \
|
||||
overlay.o overwrite.o printw.o putchar.o refresh.o scanw.o scroll.o \
|
||||
toucholap.o standout.o touchwin.o tstp.o unctrl.o
|
||||
#OBJS+= fullname.o longname.o
|
||||
|
||||
all: $(LIB)
|
||||
|
||||
$(LIB): $(OBJS)
|
||||
$(AR) $(ARFLAGS) $@ $(OBJS)
|
||||
|
||||
install: all
|
||||
$(CP) $(LIB) $(PREFIX)/lib
|
||||
$(CHMOG) $(LIBMODE) $(LIBOWNER) $(LIBGROUP) $(PREFIX)/lib/$(LIB)
|
||||
$(RANLIB) $(PREFIX)/lib/$(LIB)
|
||||
|
||||
clean:
|
||||
-rm -f *.o $(LIB)
|
||||
|
||||
test: $(LIB) test.o
|
||||
${CC} ${LDFLAGS} ${CFLAGS} -o test test.o $(LIB) -ltermlib
|
||||
|
||||
test.o: test.c
|
||||
${CC} ${CFLAGS} -c test.c
|
||||
|
|
@ -0,0 +1,53 @@
|
|||
/*
|
||||
* Copyright (c) 1980 Regents of the University of California.
|
||||
* All rights reserved. The Berkeley software License Agreement
|
||||
* specifies the terms and conditions for redistribution.
|
||||
*/
|
||||
|
||||
#ifndef lint
|
||||
static char sccsid[] = "@(#)curses.c 5.2 (Berkeley) 11/8/85";
|
||||
#endif not lint
|
||||
|
||||
/*
|
||||
* Define global variables
|
||||
*
|
||||
*/
|
||||
# include "curses.h"
|
||||
|
||||
bool _echoit = TRUE, /* set if stty indicates ECHO */
|
||||
_rawmode = FALSE, /* set if stty indicates RAW mode */
|
||||
My_term = FALSE, /* set if user specifies terminal type */
|
||||
_endwin = FALSE; /* set if endwin has been called */
|
||||
|
||||
char ttytype[50], /* long name of tty */
|
||||
*Def_term = "unknown"; /* default terminal type */
|
||||
|
||||
int _tty_ch = 1, /* file channel which is a tty */
|
||||
LINES, /* number of lines allowed on screen */
|
||||
COLS, /* number of columns allowed on screen */
|
||||
_res_flg; /* sgtty flags for reseting later */
|
||||
|
||||
WINDOW *stdscr = NULL,
|
||||
*curscr = NULL;
|
||||
|
||||
# ifdef DEBUG
|
||||
FILE *outf; /* debug output file */
|
||||
# endif
|
||||
|
||||
SGTTY _tty; /* tty modes */
|
||||
|
||||
bool AM, BS, CA, DA, DB, EO, HC, HZ, IN, MI, MS, NC, NS, OS, UL, XB, XN,
|
||||
XT, XS, XX;
|
||||
char *AL, *BC, *BT, *CD, *CE, *CL, *CM, *CR, *CS, *DC, *DL, *DM,
|
||||
*DO, *ED, *EI, *K0, *K1, *K2, *K3, *K4, *K5, *K6, *K7, *K8,
|
||||
*K9, *HO, *IC, *IM, *IP, *KD, *KE, *KH, *KL, *KR, *KS, *KU,
|
||||
*LL, *MA, *ND, *NL, *RC, *SC, *SE, *SF, *SO, *SR, *TA, *TE,
|
||||
*TI, *UC, *UE, *UP, *US, *VB, *VS, *VE, *AL_PARM, *DL_PARM,
|
||||
*UP_PARM, *DOWN_PARM, *LEFT_PARM, *RIGHT_PARM;
|
||||
char PC;
|
||||
|
||||
/*
|
||||
* From the tty modes...
|
||||
*/
|
||||
|
||||
bool GT, NONL, UPPERCASE, normtty, _pfast;
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
/*
|
||||
* Copyright (c) 1980 Regents of the University of California.
|
||||
* All rights reserved. The Berkeley software License Agreement
|
||||
* specifies the terms and conditions for redistribution.
|
||||
*
|
||||
* @(#)curses.ext 5.2 (Berkeley) 6/19/85
|
||||
*/
|
||||
|
||||
/*
|
||||
* External variables for the curses library
|
||||
*/
|
||||
|
||||
/* LINTLIBRARY */
|
||||
|
||||
# include "curses.h"
|
||||
|
||||
extern bool _echoit, _rawmode, My_term, _endwin;
|
||||
|
||||
extern char ttytype[50], *_unctrl[];
|
||||
|
||||
extern int _tty_ch, LINES, COLS;
|
||||
|
||||
extern SGTTY _tty;
|
||||
|
||||
char _putchar();
|
||||
|
||||
#ifdef DEBUG
|
||||
# define outf _outf
|
||||
|
||||
FILE *outf;
|
||||
#endif
|
||||
|
||||
#ifdef _IOLBF
|
||||
#ifndef _IOSTRG
|
||||
#define _IOSTRG _IOLBF
|
||||
#endif
|
||||
#endif
|
||||
|
|
@ -0,0 +1,61 @@
|
|||
/*
|
||||
* Copyright (c) 1980 Regents of the University of California.
|
||||
* All rights reserved. The Berkeley software License Agreement
|
||||
* specifies the terms and conditions for redistribution.
|
||||
*/
|
||||
|
||||
#ifndef lint
|
||||
static char sccsid[] = "@(#)printw.c 5.1 (Berkeley) 6/7/85";
|
||||
#endif not lint
|
||||
|
||||
/*
|
||||
* printw and friends
|
||||
*
|
||||
*/
|
||||
|
||||
# include "curses.ext"
|
||||
|
||||
/*
|
||||
* This routine implements a printf on the standard screen.
|
||||
*/
|
||||
printw(fmt, args)
|
||||
char *fmt;
|
||||
int args; {
|
||||
|
||||
return _sprintw(stdscr, fmt, &args);
|
||||
}
|
||||
|
||||
/*
|
||||
* This routine implements a printf on the given window.
|
||||
*/
|
||||
wprintw(win, fmt, args)
|
||||
WINDOW *win;
|
||||
char *fmt;
|
||||
int args; {
|
||||
|
||||
return _sprintw(win, fmt, &args);
|
||||
}
|
||||
/*
|
||||
* This routine actually executes the printf and adds it to the window
|
||||
*
|
||||
* This is really a modified version of "sprintf". As such,
|
||||
* it assumes that sprintf interfaces with the other printf functions
|
||||
* in a certain way. If this is not how your system works, you
|
||||
* will have to modify this routine to use the interface that your
|
||||
* "sprintf" uses.
|
||||
*/
|
||||
_sprintw(win, fmt, args)
|
||||
WINDOW *win;
|
||||
char *fmt;
|
||||
int *args; {
|
||||
|
||||
FILE junk;
|
||||
char buf[512];
|
||||
|
||||
junk._flag = _IOWRT + _IOSTRG;
|
||||
junk._ptr = (unsigned char*)buf;
|
||||
junk._cnt = 32767;
|
||||
_doprnt(fmt, args, &junk);
|
||||
putc('\0', &junk);
|
||||
return waddstr(win, buf);
|
||||
}
|
||||
|
|
@ -0,0 +1,60 @@
|
|||
/*
|
||||
* Copyright (c) 1980 Regents of the University of California.
|
||||
* All rights reserved. The Berkeley software License Agreement
|
||||
* specifies the terms and conditions for redistribution.
|
||||
*/
|
||||
|
||||
#ifndef lint
|
||||
static char sccsid[] = "@(#)scanw.c 5.1 (Berkeley) 6/7/85";
|
||||
#endif not lint
|
||||
|
||||
/*
|
||||
* scanw and friends
|
||||
*
|
||||
*/
|
||||
|
||||
# include "curses.ext"
|
||||
|
||||
/*
|
||||
* This routine implements a scanf on the standard screen.
|
||||
*/
|
||||
scanw(fmt, args)
|
||||
char *fmt;
|
||||
int args; {
|
||||
|
||||
return _sscans(stdscr, fmt, &args);
|
||||
}
|
||||
/*
|
||||
* This routine implements a scanf on the given window.
|
||||
*/
|
||||
wscanw(win, fmt, args)
|
||||
WINDOW *win;
|
||||
char *fmt;
|
||||
int args; {
|
||||
|
||||
return _sscans(win, fmt, &args);
|
||||
}
|
||||
/*
|
||||
* This routine actually executes the scanf from the window.
|
||||
*
|
||||
* This is really a modified version of "sscanf". As such,
|
||||
* it assumes that sscanf interfaces with the other scanf functions
|
||||
* in a certain way. If this is not how your system works, you
|
||||
* will have to modify this routine to use the interface that your
|
||||
* "sscanf" uses.
|
||||
*/
|
||||
_sscans(win, fmt, args)
|
||||
WINDOW *win;
|
||||
char *fmt;
|
||||
int *args; {
|
||||
|
||||
char buf[100];
|
||||
FILE junk;
|
||||
|
||||
junk._flag = _IOREAD|_IOSTRG;
|
||||
junk._base = junk._ptr = (unsigned char *)buf;
|
||||
if (wgetstr(win, buf) == ERR)
|
||||
return ERR;
|
||||
junk._cnt = strlen(buf);
|
||||
return _doscan(&junk, fmt, args);
|
||||
}
|
||||
Loading…
Reference in New Issue