From 61a73e4e5eef6cd64bc669362455a22247ddb163 Mon Sep 17 00:00:00 2001 From: Ciaran Anscomb Date: Thu, 23 Jan 2025 15:05:11 +0000 Subject: [PATCH] dc: explicitly declare signed char for number buffers Parts of the code depend on char being signed. Showed up for me trying square root, but probably affects other stuff too. --- Applications/V7/cmd/dc.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Applications/V7/cmd/dc.c b/Applications/V7/cmd/dc.c index bc9ff53193..5560b23d67 100644 --- a/Applications/V7/cmd/dc.c +++ b/Applications/V7/cmd/dc.c @@ -45,10 +45,10 @@ #define errorrt(p) {printf(p); return NULL; } struct blk { - char *rd; - char *wt; - char *beg; - char *last; + signed char *rd; + signed char *wt; + signed char *beg; + signed char *last; }; struct sym { struct sym *next; @@ -145,8 +145,8 @@ void (*outdit) (struct blk *, int); int logo; int intlog10; int count; -char *pp; -char *dummy; +signed char *pp; +signed char *dummy; int main(int argc, char *argv[]) { @@ -1996,7 +1996,7 @@ void sdump(char *s1, struct blk *hptr) void seekc(struct blk *hptr, int n) { - char *nn, *p; + signed char *nn, *p; nn = hptr->beg + n; if (nn > hptr->last) { @@ -2123,7 +2123,7 @@ void garbage(char *s) void redef(struct blk *p) { register int offset; - register char *newp; + register signed char *newp; if ((int) p->beg & 01) { printf("odd ptr %o hdr %o\n", p->beg, p);