utils add 'clear'
authorAlan Cox <alan@linux.intel.com>
Sat, 11 Nov 2017 21:49:02 +0000 (21:49 +0000)
committerAlan Cox <alan@linux.intel.com>
Sat, 11 Nov 2017 21:49:02 +0000 (21:49 +0000)
Not having this was driving me slowly nuts 8)

Applications/V7/cmd/Makefile.z80
Applications/V7/cmd/clear.c [new file with mode: 0644]

index 235b93f..b6c20db 100644 (file)
@@ -1,7 +1,6 @@
-CC = sdcc
+CC = fcc
 ASM = sdasz80
-AR = sdar
-LINKER = sdcc
+LINKER = ../../../Library/tools/fcc
 FCC = ../../../Library/tools/fcc
 FCCOPTS = -O2
 PLATFORM =
@@ -18,27 +17,36 @@ SRCS  = ac.c accton.c at.c atrun.c col.c comm.c cron.c crypt.c dc.c dd.c \
 
 SRCSNS = ed.c
 
+SRCSTC = clear.c
+
 SRCSBAD =
 
 OBJS = $(SRCS:.c=.rel)
 OBJSNS = $(SRCSNS:.c=.rel)
+OBJSTC = $(SRCSTC:.c=.rel)
 OBJSBAD = $(SRCSBAD:.c=.rel)
 
 LIBS = ../../../Library/libs/syslib.lib
 
 APPSNS = $(OBJSNS:.rel=)
 
-APPS = $(OBJS:.rel=) $(OBJSBAD:.rel=) $(OBJSNS:.rel=)
+APPSTC = $(OBJSTC:.rel=)
+
+APPS = $(OBJS:.rel=) $(OBJSBAD:.rel=) $(OBJSNS:.rel=) $(OBJSTC:.rel=)
 
 all: $(APPS) sizes
 
 
 $(APPSNS): OPTS = --nostdio
 
+$(APPSTC): OPTS = -ltermcap
+
 $(OBJS): %.rel: %.c
 
 $(OBJSNS): %.rel: %.c
 
+$(OBJSTC): %.rel: %.c
+
 $(OBJSBAD): %.rel: %.c
        $(FCC) $(PLATFORM) -c $<
 
diff --git a/Applications/V7/cmd/clear.c b/Applications/V7/cmd/clear.c
new file mode 100644 (file)
index 0000000..b941ef7
--- /dev/null
@@ -0,0 +1,42 @@
+static char *sccsid = "@(#)clear.c     4.1 (Berkeley) 10/1/80";
+/* load me with -ltermlib */
+/* #include <retrofit.h> on version 6 */
+/*
+ * clear - clear the screen
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <termcap.h>
+
+char   PC;
+
+int tputchar(int c)
+{
+       putchar(c);
+       return 0;
+}
+
+int main(int argc, char *argv[])
+{
+       char *cp = getenv("TERM");
+       char clbuf[20];
+       char pcbuf[20];
+       char *clbp = clbuf;
+       char *pcbp = pcbuf;
+       char *clear;
+       char buf[1024];
+       char *pc;
+
+       if (cp == (char *) 0)
+               exit(1);
+       if (tgetent(buf, cp) != 1)
+               exit(1);
+       pc = tgetstr("pc", &pcbp);
+       if (pc)
+               PC = *pc;
+       clear = tgetstr("cl", &clbp);
+       if (clear)
+               tputs(clear, tgetnum("li"), tputchar);
+       exit (clear != (char *) 0);
+}