From 80ca9e18110458314263624f658c275b60575fb1 Mon Sep 17 00:00:00 2001 From: Joachim Nilsson Date: Tue, 3 Aug 2010 00:14:48 +0200 Subject: [PATCH] Restore previously discarded (and incomplete) OS9 backend files. --- Make.os9 | 19 +++++++++++++++++++ src/os9.h | 10 ++++++++++ src/sysos9.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 75 insertions(+) create mode 100644 Make.os9 create mode 100644 src/os9.h create mode 100644 src/sysos9.c diff --git a/Make.os9 b/Make.os9 new file mode 100644 index 0000000..c632847 --- /dev/null +++ b/Make.os9 @@ -0,0 +1,19 @@ +## $Revision: 1.2 $ +## +## OS-9 makefile for editline library. +## + +.SUFFIXES: + +RFILES = editline.r complete.r sysos9.r + +%.r: %.c + cc68 -r -Dstrchr=index -Dstrrchr=rindex -DNEED_STRDUP -DSYS_OS9 $*.c + +testit: testit.r editline.lib + cc68 -f=testit testit.r -l=editline.lib + +$(RFILES): $(RFILES:%.r=%.c) + +editline.lib: $(RFILES) + cat $(RFILES) >$@ diff --git a/src/os9.h b/src/os9.h new file mode 100644 index 0000000..7bb7cf3 --- /dev/null +++ b/src/os9.h @@ -0,0 +1,10 @@ +/* $Revision: 1.1 $ +** +** Editline system header file for OS-9 (on 68k). +*/ + +#define CRLF "\r\l" +#define FORWARD extern + +#include +typedef struct direct DIRENTRY; diff --git a/src/sysos9.c b/src/sysos9.c new file mode 100644 index 0000000..fd23aa4 --- /dev/null +++ b/src/sysos9.c @@ -0,0 +1,46 @@ +/* $Revision: 1.1 $ +** +** OS-9 system-dependant routines for editline library. +*/ +#include "editline.h" +#include +#include + + +void +rl_ttyset(Reset) + int Reset; +{ + static struct sgbuf old; + struct sgbuf new; + + + if (Reset == 0) { + _gs_opt(0, &old); + _gs_opt(0, &new); + new.sg_backsp = 0; new.sg_delete = 0; new.sg_echo = 0; + new.sg_alf = 0; new.sg_nulls = 0; new.sg_pause = 0; + new.sg_page = 0; new.sg_bspch = 0; new.sg_dlnch = 0; + new.sg_eorch = 0; new.sg_eofch = 0; new.sg_rlnch = 0; + new.sg_dulnch = 0; new.sg_psch = 0; new.sg_kbich = 0; + new.sg_kbach = 0; new.sg_bsech = 0; new.sg_bellch = 0; + new.sg_xon = 0; new.sg_xoff = 0; new.sg_tabcr = 0; + new.sg_tabsiz = 0; + _ss_opt(0, &new); + rl_erase = old.sg_bspch; + rl_kill = old.sg_dlnch; + rl_eof = old.sg_eofch; + rl_intr = old.sg_kbich; + rl_quit = -1; + } + else + _ss_opt(0, &old); +} + +void +rl_add_slash(path, p) + char *path; + char *p; +{ + (void)strcat(p, access(path, S_IREAD | S_IFDIR) ? " " : "/"); +}