Warning-fix and protoise the basic library.

This commit is contained in:
David Given 2018-06-24 00:35:51 +02:00
parent a6742a7d55
commit 1702d873ea
37 changed files with 133 additions and 123 deletions

View file

@ -1,21 +0,0 @@
/*
* (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
* See the copyright notice in the ACK home directory, in the file "Copyright".
*/
#
/* $Id$ */
/* Strings are allocated in a fixed string descriptor table
** This mechanism is used to avoid string copying as much as possible
*/
typedef struct{
char *strval;
int strcount;
int strlength;
} String;
extern String *_newstr(char* str);
#define MAXSTRING 1024

View file

@ -1,9 +1,4 @@
/* $Id$ */ #include "lib.h"
/*
* (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
* See the copyright notice in the ACK home directory, in the file "Copyright".
*/
long _abl(long i) long _abl(long i)
{ {

View file

@ -1,6 +1,4 @@
#include "bc_string.h" #include "lib.h"
/* $Id$ */
int _asc(String* str) int _asc(String* str)
{ {

View file

@ -1,5 +1,6 @@
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include "lib.h"
void asrt(int b) void asrt(int b)
{ {

View file

@ -1,12 +1,4 @@
/*
* (c) copyright 1988 by the Vrije Universiteit, Amsterdam, The Netherlands.
* See the copyright notice in the ACK home directory, in the file "Copyright".
*
* Author: Ceriel J.H. Jacobs
*/
/* $Id$ */
#include <math.h> #include <math.h>
#include "lib.h"
double _atn(double x) { return atan(x); } double _atn(double x) { return atan(x); }

View file

@ -1,11 +1,5 @@
/*
* (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
* See the copyright notice in the ACK home directory, in the file "Copyright".
*/
#include <stdio.h> #include <stdio.h>
/* $Id$ */
/* BASIC file io definitions */ /* BASIC file io definitions */
extern FILE *_chanrd; extern FILE *_chanrd;

View file

@ -12,6 +12,7 @@ for _, plat in ipairs(vars.plats) do
"h+emheaders", "h+emheaders",
"lang/cem/libcc.ansi/headers+pkg", "lang/cem/libcc.ansi/headers+pkg",
"plat/"..plat.."/include+pkg", "plat/"..plat.."/include+pkg",
"./*.h",
}, },
vars = { plat = plat } vars = { plat = plat }
} }

View file

@ -1,6 +1,4 @@
#include "bc_string.h" #include "lib.h"
/* $Id$ */
String* _chr(int i) String* _chr(int i)
{ {

View file

@ -1,4 +1,4 @@
/* $Id$ */ #include "lib.h"
int _cint(double f) int _cint(double f)
{ {

View file

@ -1,5 +1,6 @@
#include <stdlib.h> #include <stdlib.h>
#include <stdio.h> #include <stdio.h>
#include "lib.h"
int _errsym; int _errsym;
int _erlsym; int _erlsym;

View file

@ -1,14 +1,6 @@
/*
* (c) copyright 1988 by the Vrije Universiteit, Amsterdam, The Netherlands.
* See the copyright notice in the ACK home directory, in the file "Copyright".
*
* Author: Ceriel J.H. Jacobs
*/
/* $Id$ */
#define __NO_DEFS #define __NO_DEFS
#include <math.h> #include <math.h>
#include "lib.h"
double _exp(double x) double _exp(double x)
{ {

View file

@ -1,8 +1,6 @@
# #
mes 2,EM_WSIZE,EM_PSIZE mes 2,EM_WSIZE,EM_PSIZE
; $Id$
#define FARG 0 #define FARG 0
#define ERES EM_DSIZE #define ERES EM_DSIZE

View file

@ -1,8 +1,6 @@
# #
mes 2,EM_WSIZE,EM_PSIZE mes 2,EM_WSIZE,EM_PSIZE
; $Id$
#define ARG1 0 #define ARG1 0
#define ARG2 EM_DSIZE #define ARG2 EM_DSIZE
#define IRES 2*EM_DSIZE #define IRES 2*EM_DSIZE

View file

@ -1,8 +1,6 @@
#include "bc_string.h"
#include <stdio.h> #include <stdio.h>
#include "bc_io.h" #include "bc_io.h"
#include "lib.h"
/* $Id$ */
Filedesc _fdtable[16]; Filedesc _fdtable[16];
/* BASIC file descriptor table */ /* BASIC file descriptor table */

View file

@ -1,4 +1,5 @@
#include <stdlib.h> #include <stdlib.h>
#include "lib.h"
void _hlt(int nr) void _hlt(int nr)
{ {

View file

@ -1,4 +1,5 @@
#include "bc_io.h" #include "bc_io.h"
#include "lib.h"
/* dtrg --- this originally used sgtty.h to do clever tty manipulation. /* dtrg --- this originally used sgtty.h to do clever tty manipulation.
* Strictly this should be converted to use termios, but for simplicity * Strictly this should be converted to use termios, but for simplicity

View file

@ -1,9 +1,107 @@
#ifndef LIB_H #ifndef LIB_H
#define LIB_H #define LIB_H
extern void error(int index); typedef struct{
char *strval;
int strcount;
int strlength;
} String;
#define MAXSTRING 1024
extern String *_chr(int i);
extern String *_concat(String *s1, String *s2);
extern String *_hex(int i);
extern String *_left(int size, String *s);
extern String *_mid(int i1, int i2, String *s);
extern String *_mkd(double d);
extern String *_mki(long i);
extern String *_newstr(char *str);
extern String *_nstr(double f);
extern String *_oct(int i);
extern String *_right(int length, String *str);
extern String *_space(int d);
extern String *_strascii(void);
extern String *_string(double f, double d);
extern char *salloc(unsigned length); extern char *salloc(unsigned length);
extern double _abr(double f);
extern double _atn(double x);
extern double _cos(double x);
extern double _cvd(String *s);
extern double _exp(double x);
extern double _fcint(double f);
extern double _log(double x);
extern double _power(double x, double y);
extern double _rnd(double d);
extern double _sin(double x);
extern double _sqt(double x);
extern double _tan(double x);
extern double _trunc(double f);
extern int _asc(String *str);
extern int _cint(double f);
extern int _fix(double f);
extern int _forsgn(double v);
extern int _ioeof(int channel);
extern int _length(String *str);
extern int _retstmt(void);
extern int _sgn(double v);
extern int _stop(void);
extern int _strcomp(String *s1, String *s2);
extern int peek(int addr);
extern long _abl(long i);
extern long _cvi(String *s);
extern void _asschn(void);
extern void _clochn(int nr);
extern void _closeall(void);
extern void _decstr(String *str);
extern void _delstr(String *src);
extern void _fltswap(double *i1, double *i2);
extern void _gosub(int x);
extern void _goto_err(void);
extern void _hlt(int nr);
extern void _in(char *buf);
extern void _incstr(String *src);
extern void _ini_trp(void);
extern void _intswap(int *i1, int *i2);
extern void _midstmt(String *s2, int i1, int i2, String *s);
extern void _nl(void);
extern void _opnchn(int reclen, String *fname, String *mode);
extern void _out(char *str);
extern void _outnl(void);
extern void _poke(int i, int j);
extern void _prfnum(double f);
extern void _prinum(int i);
extern void _prstr(String *str);
extern void _qstmark(void);
extern void _randomi(void);
extern void _rdline(String **s);
extern void _readflt(double *addr);
extern void _readint(int *addr);
extern void _readln(void);
extern void _readstr(String **s);
extern void _restore(int line);
extern void _setchan(int index);
extern void _setline(void);
extern void _setrand(int i);
extern void _settrap(int nr);
extern void _spc(int x);
extern void _str(double f, char *buffer);
extern void _strcpy(String *dst, String *src);
extern void _strswap(String **s1, String **s2);
extern void _tab(int x);
extern void _trace(int i);
extern void _trap(void);
extern void _trpfatal(int i);
extern void _trpset(int nr);
extern void _wrcomma(void);
extern void _wrflt(double f);
extern void _wrint(int i);
extern void _wrnl(void);
extern void _wrstr(String *s);
extern void _zone(void);
extern void asrt(int b);
extern void error(int index);
extern void readskip(void);
extern void sfree(char *c); extern void sfree(char *c);
#endif #endif

View file

@ -1,14 +1,6 @@
/*
* (c) copyright 1988 by the Vrije Universiteit, Amsterdam, The Netherlands.
* See the copyright notice in the ACK home directory, in the file "Copyright".
*
* Author: Ceriel J.H. Jacobs
*/
/* $Id$ */
#define __NO_DEFS #define __NO_DEFS
#include <math.h> #include <math.h>
#include "lib.h"
double _log(double x) double _log(double x)
{ {

View file

@ -1,6 +1,4 @@
#include "bc_string.h" #include "lib.h"
/* $Id$ */
String* _mki(long i) String* _mki(long i)
{ {

View file

@ -1,8 +1,6 @@
#include <stdlib.h> #include <stdlib.h>
#include <stdio.h> #include <stdio.h>
#include "bc_string.h" #include "lib.h"
/* $Id$ */
String* _oct(int i) String* _oct(int i)
{ {

View file

@ -1,4 +1,4 @@
/* $Id$ */ #include "lib.h"
int peek(int addr) int peek(int addr)
{ {

View file

@ -1,3 +1,4 @@
#include <math.h> #include <math.h>
#include "lib.h"
double _power(double x, double y) { return pow(x, y); } double _power(double x, double y) { return pow(x, y); }

View file

@ -1,9 +1,8 @@
#include <stdlib.h> #include <stdlib.h>
#include <stdio.h> #include <stdio.h>
#include "bc_string.h" #include <string.h>
#include "bc_io.h" #include "bc_io.h"
#include "lib.h"
/* $Id$ */
/* Here all routine to generate terminal oriented output is located */ /* Here all routine to generate terminal oriented output is located */

View file

@ -1,5 +1,6 @@
#include <stdlib.h> #include <stdlib.h>
#include <stdio.h> #include <stdio.h>
#include "lib.h"
#if !defined(EM_WSIZE) #if !defined(EM_WSIZE)
#define EM_WSIZE _EM_WSIZE #define EM_WSIZE _EM_WSIZE

View file

@ -1,8 +1,6 @@
#include "bc_string.h"
#include "bc_io.h" #include "bc_io.h"
#include <ctype.h> #include <ctype.h>
#include "lib.h"
/* $Id$ */
void _readln(void) void _readln(void)
{ {

View file

@ -1,4 +1,4 @@
/* $Id$ */ #include "lib.h"
#define MAXNESTING 1000 #define MAXNESTING 1000

View file

@ -1,4 +1,5 @@
#include <stdlib.h> #include <stdlib.h>
#include "lib.h"
char* salloc(unsigned length) char* salloc(unsigned length)
{ {

View file

@ -1,6 +1,5 @@
# #
mes 2,EM_WSIZE,EM_PSIZE mes 2,EM_WSIZE,EM_PSIZE
; $Id$
; Save the line where the error occurred ; Save the line where the error occurred
exp $_setline exp $_setline
pro $_setline,0 pro $_setline,0

View file

@ -1,4 +1,4 @@
/* $Id$ */ #include "lib.h"
int _sgn(double v) int _sgn(double v)
{ {

View file

@ -1,14 +1,6 @@
/*
* (c) copyright 1988 by the Vrije Universiteit, Amsterdam, The Netherlands.
* See the copyright notice in the ACK home directory, in the file "Copyright".
*
* Author: Ceriel J.H. Jacobs
*/
/* $Id$ */
#define __NO_DEFS #define __NO_DEFS
#include <math.h> #include <math.h>
#include "lib.h"
double _sin(double x) { return sin(x); } double _sin(double x) { return sin(x); }
double _cos(double x) { return cos(x); } double _cos(double x) { return cos(x); }

View file

@ -1,13 +1,5 @@
/*
* (c) copyright 1988 by the Vrije Universiteit, Amsterdam, The Netherlands.
* See the copyright notice in the ACK home directory, in the file "Copyright".
*
* Author: Ceriel J.H. Jacobs
*/
/* $Id$ */
#define __NO_DEFS #define __NO_DEFS
#include <math.h> #include <math.h>
#include "lib.h"
double _sqt(double x) { return sqrt(x); } double _sqt(double x) { return sqrt(x); }

View file

@ -1,5 +1,6 @@
#include <stdlib.h> #include <stdlib.h>
#include <stdio.h> #include <stdio.h>
#include "lib.h"
_stop() _stop()
{ {

View file

@ -1,10 +1,7 @@
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include "bc_string.h"
#include "lib.h" #include "lib.h"
/* $Id$ */
#define ok(X) \ #define ok(X) \
if (X == 0) \ if (X == 0) \
return; return;

View file

@ -1,6 +1,4 @@
#include "bc_string.h" #include "lib.h"
/* $Id$ */
void _intswap(int* i1, int* i2) void _intswap(int* i1, int* i2)
{ {

View file

@ -1,4 +1,5 @@
/* $Id$ */ #include <stdio.h>
#include "lib.h"
void _trace(int i) void _trace(int i)
{ {

View file

@ -2,13 +2,12 @@
#include <stdio.h> #include <stdio.h>
#include <signal.h> #include <signal.h>
#include <setjmp.h> #include <setjmp.h>
#include "lib.h"
#ifndef NSIG #ifndef NSIG
#define NSIG _NSIG #define NSIG _NSIG
#endif #endif
/* $Id$ */
/* Trap handling */ /* Trap handling */
int _trpline; /* BASIC return label */ int _trpline; /* BASIC return label */
jmp_buf trpbuf; jmp_buf trpbuf;

View file

@ -1,7 +1,5 @@
#include "bc_string.h"
#include "bc_io.h" #include "bc_io.h"
#include "lib.h"
/* $Id$ */
/* assume that the channel has been set */ /* assume that the channel has been set */