another update from CVS HEAD, for QA
authormirabilos <m@mirbsd.org>
Sat, 16 Dec 2017 21:14:11 +0000 (22:14 +0100)
committermirabilos <m@mirbsd.org>
Sat, 16 Dec 2017 21:14:11 +0000 (22:14 +0100)
43 files changed:
b.c
builtin.c
bw.c
cmd.c
config.h
hash.c
help.c
kbd.c
macro.c
main.c
menu.c
path.c
poshist.c
pw.c
pw.h
queue.c
qw.c
rc.c
rc.h
scrn.c
syntax.c
tab.c
termcap.c
termcap.h
termidx.c
tty.c
tty.h
tw.c
types.h
ublock.c
uedit.c
ufile.c
uformat.c
uisrch.c
umath.c
undo.c
usearch.c
ushell.c
utils.h
va.c
vfile.c
vs.c
w.c

diff --git a/b.c b/b.c
index 2f4ed5d..191cc72 100644 (file)
--- a/b.c
+++ b/b.c
@@ -9,7 +9,7 @@
 #include "config.h"
 #include "types.h"
 
-__RCSID("$MirOS: contrib/code/jupp/b.c,v 1.25 2017/12/06 23:17:32 tg Exp $");
+__RCSID("$MirOS: contrib/code/jupp/b.c,v 1.28 2017/12/08 02:28:04 tg Exp $");
 
 #include <unistd.h>
 #include <sys/stat.h>
@@ -262,7 +262,7 @@ void brm(B *b)
                        prm(b->bof->link.next);
                prm(b->bof);
                if (b->name)
-                       joe_free(b->name);
+                       free(b->name);
                demote(B, link, &frebufs, b);
        }
 }
@@ -504,7 +504,7 @@ int pispure(P *p,int c)
                if (pgetc(q)!=c) {
                        prm(q);
                        return 0;
-                }
+               }
        prm(q);
        return 1;
 }
@@ -2062,7 +2062,7 @@ unsigned char *parsens(unsigned char *s, long int *skip, long int *amnt)
                                n[x] = '/';
                                if (passwd) {
                                        unsigned char *z = vsncpy(NULL, 0,
-                                                        sz((unsigned char *)(passwd->pw_dir)));
+                                           sz((unsigned char *)(passwd->pw_dir)));
 
                                        z = vsncpy(z, sLEN(z), sz(n + x));
                                        vsrm(n);
@@ -2170,13 +2170,13 @@ B *bload(unsigned char *s)
        b->rdonly = b->o.readonly;
 
        /* Close stream */
-err:
+ err:
        if (s[0] == '!')
                pclose(fi);
        else if (strcmp(n, "-"))
                fclose(fi);
 
-opnerr:
+ opnerr:
        if (s[0] == '!') {
                ttopnn();
                nreturn(maint->t);
@@ -2398,7 +2398,7 @@ int bsavefd(P *p, int fd, long int size)
        }
        prm(np);
        return error = 0;
-err:
+ err:
        prm(np);
        return error = 5;
 }
@@ -2465,7 +2465,7 @@ int bsave(P *p, unsigned char *s, long int size, int flag)
                prm(q);
        }
 
-err:
+ err:
        if (s[0] == '!')
                pclose(f);
        else if (strcmp(s, "-"))
@@ -2480,7 +2480,7 @@ err:
                        p->b->mod_time = sbuf.st_mtime;
        }
 
-opnerr:
+ opnerr:
        if (s[0] == '!' || !strcmp(s, "-")) {
                ttopnn();
                nreturn(maint->t);
@@ -2532,7 +2532,7 @@ unsigned char *brmem(P *p, unsigned char *blk, int size)
 
 unsigned char *brs(P *p, int size)
 {
-       unsigned char *s = (unsigned char *) joe_malloc(size + 1);
+       unsigned char *s = malloc(size + 1);
 
        s[size] = 0;
        return brmem(p, s, size);
index 889fc84..b9c6ea7 100644 (file)
--- a/builtin.c
+++ b/builtin.c
@@ -8,7 +8,7 @@
 
 #include "config.h"
 
-__RCSID("$MirOS: contrib/code/jupp/builtin.c,v 1.7 2017/12/06 23:02:01 tg Exp $");
+__RCSID("$MirOS: contrib/code/jupp/builtin.c,v 1.8 2017/12/08 02:00:38 tg Exp $");
 
 #include <stdlib.h>
 #include <string.h>
@@ -35,19 +35,19 @@ jfopen(const unsigned char *name, const char *mode)
 
                for (x = 0; builtins[x]; x += 2) {
                        if (!zcmp(builtins[x], xname)) {
-                               JFILE *j = (JFILE *)joe_malloc(sizeof(JFILE));
+                               JFILE *j = malloc(sizeof(JFILE));
                                j->f = 0;
                                j->p = builtins[x + 1];
-                               joe_free(xname);
+                               free(xname);
                                return j;
                        }
                }
-               joe_free(xname);
+               free(xname);
                return 0;
        } else {
                FILE *f = fopen((const char *)name, (const char *)mode);
                if (f) {
-                       JFILE *j = (JFILE *)joe_malloc(sizeof(JFILE));
+                       JFILE *j = malloc(sizeof(JFILE));
                        j->f = f;
                        j->p = 0;
                        return j;
@@ -62,7 +62,7 @@ int jfclose(JFILE *f)
        int rtn = 0;
        if (f->f)
                rtn = fclose(f->f);
-       joe_free(f);
+       free(f);
        return rtn;
 }
 
diff --git a/bw.c b/bw.c
index 817477e..03161f4 100644 (file)
--- a/bw.c
+++ b/bw.c
@@ -8,7 +8,7 @@
 #include "config.h"
 #include "types.h"
 
-__RCSID("$MirOS: contrib/code/jupp/bw.c,v 1.30 2017/12/07 02:10:15 tg Exp $");
+__RCSID("$MirOS: contrib/code/jupp/bw.c,v 1.33 2017/12/08 02:28:04 tg Exp $");
 
 #include <string.h>
 #include <stdlib.h>
@@ -313,11 +313,11 @@ void bwdel(BW *w, long int l, long int n, int flg)
 static int lgen(SCRN *t, int y, int *screen, int *attr, int x, int w, P *p, long int scr, long int from, long int to,int st,BW *bw)
 
 
-                               /* Screen line address */
-                               /* Window */
-                               /* Buffer pointer */
-                               /* Starting column to display */
-                               /* Range for marked block */
+                               /* Screen line address */
+                               /* Window */
+                               /* Buffer pointer */
+                               /* Starting column to display */
+                               /* Range for marked block */
 {
        int ox = x;
        int tach, tach1;
@@ -332,10 +332,10 @@ static int lgen(SCRN *t, int y, int *screen, int *attr, int x, int w, P *p, long
 
        struct utf8_sm utf8_sm;
 
-        int *syn = NULL;
-        P *tmp;
-        int idx=0;
-        int atr = 0;
+       int *syn = NULL;
+       P *tmp;
+       int idx=0;
+       int atr = 0;
 
        utf8_init(&utf8_sm);
 
@@ -358,7 +358,8 @@ static int lgen(SCRN *t, int y, int *screen, int *attr, int x, int w, P *p, long
 
        if (col == scr)
                goto loop;
-      lp:                      /* Display next character */
+ lp:
+       /* Display next character */
        if (amnt)
                do {
                        if (ungetit== -1)
@@ -372,7 +373,7 @@ static int lgen(SCRN *t, int y, int *screen, int *attr, int x, int w, P *p, long
                        if (p->b->o.crlf && bc == '\r') {
                                ++byte;
                                if (!--amnt) {
                                    pppl:
+ pppl:
                                        if (bp == p->ptr + SEGSIZ) {
                                                if (pnext(p)) {
                                                        bp = p->ptr;
@@ -392,7 +393,7 @@ static int lgen(SCRN *t, int y, int *screen, int *attr, int x, int w, P *p, long
                                        ++amnt;
                                        goto eobl;
                                }
                            nnnl:
+ nnnl:
                                --byte;
                                ++amnt;
                        }
@@ -470,8 +471,8 @@ static int lgen(SCRN *t, int y, int *screen, int *attr, int x, int w, P *p, long
                goto lp;
        }
        goto eof;
-
-      loop:                    /* Display next character */
+ loop:
+       /* Display next character */
        if (amnt)
                do {
                        if (ungetit== -1)
@@ -485,7 +486,7 @@ static int lgen(SCRN *t, int y, int *screen, int *attr, int x, int w, P *p, long
                        if (p->b->o.crlf && bc == '\r') {
                                ++byte;
                                if (!--amnt) {
                                    ppl:
+ ppl:
                                        if (bp == p->ptr + SEGSIZ) {
                                                if (pnext(p)) {
                                                        bp = p->ptr;
@@ -505,7 +506,7 @@ static int lgen(SCRN *t, int y, int *screen, int *attr, int x, int w, P *p, long
                                        ++amnt;
                                        goto eobl;
                                }
                            nnl:
+ nnl:
                                --byte;
                                ++amnt;
                        }
@@ -612,17 +613,17 @@ static int lgen(SCRN *t, int y, int *screen, int *attr, int x, int w, P *p, long
                goto loop;
        }
        goto eof;
-
-      eobl:                    /* End of buffer line found.  Erase to end of screen line */
+ eobl:
+       /* End of buffer line found.  Erase to end of screen line */
        ++p->line;
     eof:
+ eof:
        if (x != w)
                done = eraeol(t, x, y);
        else
                done = 0;
 
 /* Set p to bp/amnt */
     bye:
+ bye:
        if (bp - p->ptr <= p->hdr->hole)
                p->ofst = bp - p->ptr;
        else
@@ -630,7 +631,7 @@ static int lgen(SCRN *t, int y, int *screen, int *attr, int x, int w, P *p, long
        p->byte = byte;
        return done;
 
     eosl:
+ eosl:
        if (bp - p->ptr <= p->hdr->hole)
                p->ofst = bp - p->ptr;
        else
@@ -894,7 +895,7 @@ void bwresz(BW *w, int wi, int he)
 
 BW *bwmk(W *window, B *b, int prompt)
 {
-       BW *w = (BW *) joe_malloc(sizeof(BW));
+       BW *w = malloc(sizeof(BW));
 
        w->parent = window;
        w->b = b;
@@ -942,7 +943,7 @@ void bwrm(BW *w)
        prm(w->top);
        prm(w->cursor);
        brm(w->b);
-       joe_free(w);
+       free(w);
 }
 
 int ustat_j(BW *bw)
diff --git a/cmd.c b/cmd.c
index 85e10cb..93da858 100644 (file)
--- a/cmd.c
+++ b/cmd.c
@@ -9,7 +9,7 @@
 #include "config.h"
 #include "types.h"
 
-__RCSID("$MirOS: contrib/code/jupp/cmd.c,v 1.24 2017/12/07 02:10:16 tg Exp $");
+__RCSID("$MirOS: contrib/code/jupp/cmd.c,v 1.26 2017/12/08 02:00:38 tg Exp $");
 
 #include <stdlib.h>
 #include <string.h>
@@ -67,8 +67,10 @@ static int do_keymap(BW *bw, unsigned char *s, void *object, int *notify)
 
        if (notify)
                *notify = 1;
-       if (!s || !*s || !(new_kmap = kmap_getcontext(s, 0)))
+       if (!*s || !(new_kmap = kmap_getcontext(s, 0))) {
+               vsrm(s);
                return (-1);
+       }
        if (bw->o.context != (unsigned char *)main_context)
                free(bw->o.context);
        bw->o.context = strcmp((char *)s, main_context) ?
@@ -76,6 +78,7 @@ static int do_keymap(BW *bw, unsigned char *s, void *object, int *notify)
        rmkbd(bw->parent->kbd);
        bw->parent->kbd = mkkbd(new_kmap);
        joe_snprintf_1((char *)msgbuf, JOE_MSGBUFSIZE, "New keymap: %s", s);
+       vsrm(s);
        msgnw(bw->parent, msgbuf);
        return (0);
 }
@@ -381,7 +384,7 @@ CMD *findcmd(const unsigned char *s)
 
 void addcmd(const unsigned char *s, MACRO *m)
 {
-       CMD *cmd = (CMD *) joe_malloc(sizeof(CMD));
+       CMD *cmd = malloc(sizeof(CMD));
 
        if (!cmdhash)
                izcmds();
@@ -459,7 +462,8 @@ static int do_helpcard(BASE *base, unsigned char *s, void *object, int *notify)
 
        if (notify)
                *notify = 1;
-       if (!s || !*s) {
+       if (!*s) {
+               vsrm(s);
                while (help_actual->prev != NULL)
                        /* find the first help entry */
                        help_actual = help_actual->prev;
@@ -467,9 +471,11 @@ static int do_helpcard(BASE *base, unsigned char *s, void *object, int *notify)
                return (0);
        }
        if ((new_help = find_context_help(s)) != NULL) {
+               vsrm(s);
                help_actual = new_help;
                return (help_on(base->parent->t));
        }
+       vsrm(s);
        return (-1);
 }
 int u_helpcard(BASE *base)
index d1e9fd3..316beae 100644 (file)
--- a/config.h
+++ b/config.h
@@ -60,7 +60,7 @@
 
 #include <stdio.h>
 #ifndef EOF
-#define EOF -1
+#define EOF (-1)
 #endif
 #define NO_MORE_DATA EOF
 
@@ -136,7 +136,7 @@ size_t strlcpy(char *, const char *, size_t)
 #endif
 
 #ifdef EXTERN
-__IDSTRING(rcsid_config_h, "$MirOS: contrib/code/jupp/config.h,v 1.13 2017/12/06 21:16:55 tg Exp $");
+__IDSTRING(rcsid_config_h, "$MirOS: contrib/code/jupp/config.h,v 1.14 2017/12/08 02:17:21 tg Exp $");
 #endif
 
 #endif /* ifndef _JOE_CONFIG_H */
diff --git a/hash.c b/hash.c
index a21add6..c9f4cbe 100644 (file)
--- a/hash.c
+++ b/hash.c
@@ -8,7 +8,7 @@
 #include "config.h"
 #include "types.h"
 
-__RCSID("$MirOS: contrib/code/jupp/hash.c,v 1.5 2017/12/06 21:41:02 tg Exp $");
+__RCSID("$MirOS: contrib/code/jupp/hash.c,v 1.6 2017/12/08 02:00:39 tg Exp $");
 
 #include <stdlib.h>
 #include <string.h>
@@ -32,17 +32,17 @@ unsigned long hash(const unsigned char *s)
 
 HASH *htmk(int len)
 {
-       HASH *t = (HASH *) joe_malloc(sizeof(HASH));
+       HASH *t = malloc(sizeof(HASH));
 
        t->len = len - 1;
-       t->tab = (HENTRY **) joe_calloc(sizeof(HENTRY *), len);
+       t->tab = calloc(len, sizeof(HENTRY *));
        return t;
 }
 
 void htrm(HASH *ht)
 {
-       joe_free(ht->tab);
-       joe_free(ht);
+       free(ht->tab);
+       free(ht);
 }
 
 void *htadd(HASH *ht, const unsigned char *name, void *val)
@@ -52,7 +52,7 @@ void *htadd(HASH *ht, const unsigned char *name, void *val)
        int x;
 
        if (!freentry) {
-               entry = (HENTRY *) joe_malloc(sizeof(HENTRY) *64);
+               entry = calloc(64, sizeof(HENTRY));
                for (x = 0; x != 64; ++x) {
                        entry[x].next = freentry;
                        freentry = entry + x;
diff --git a/help.c b/help.c
index 77803b7..542e499 100644 (file)
--- a/help.c
+++ b/help.c
@@ -9,7 +9,7 @@
 #include "config.h"
 #include "types.h"
 
-__RCSID("$MirOS: contrib/code/jupp/help.c,v 1.13 2017/12/06 23:17:33 tg Exp $");
+__RCSID("$MirOS: contrib/code/jupp/help.c,v 1.15 2017/12/08 03:24:15 tg Exp $");
 
 #include <stdlib.h>
 #include <string.h>
@@ -56,7 +56,7 @@ help_init(const unsigned char *filename)
 
        while (jfgets((char *)buf, sizeof(buf), fd)) {
                if (buf[0] == '{') {                    /* start of help screen */
-                       if (!(tmp = (struct help *) joe_malloc(sizeof(struct help)))) {
+                       if (!(tmp = malloc(sizeof(struct help)))) {
                                return NOT_ENOUGH_MEMORY;
                        }
 
@@ -70,18 +70,18 @@ help_init(const unsigned char *filename)
                                bfl = strlen((char *)buf);
                                if (hlpsiz + bfl > hlpbsz) {
                                        if (tmp->text) {
-                                               tempbuf = (unsigned char *) joe_realloc(tmp->text, hlpbsz + bfl + 1024);
+                                               tempbuf = realloc(tmp->text, hlpbsz + bfl + 1024);
                                                if (!tempbuf) {
-                                                       joe_free(tmp->text);
-                                                       joe_free(tmp);
+                                                       free(tmp->text);
+                                                       free(tmp);
                                                        return NOT_ENOUGH_MEMORY;
                                                } else {
                                                        tmp->text = tempbuf;
                                                }
                                        } else {
-                                               tmp->text = (unsigned char *) joe_malloc(bfl + 1024);
+                                               tmp->text = malloc(bfl + 1024);
                                                if (!tmp->text) {
-                                                       joe_free(tmp);
+                                                       free(tmp);
                                                        return NOT_ENOUGH_MEMORY;
                                                } else {
                                                        tmp->text[0] = 0;
@@ -105,9 +105,9 @@ help_init(const unsigned char *filename)
                                fprintf(stderr, "Do you want to accept incomplete help screen (y/n)?");
                                fflush(stderr);
                                if (fgets((char *)buf, 8, stdin) == NULL ||
-                                   (!((buf[0] == 'y') || (buf[0] == 'Y')))) {
-                                       joe_free(tmp->text);
-                                       joe_free(tmp);
+                                   (buf[0] | 0x20) != 'y') {
+                                       free(tmp->text);
+                                       free(tmp);
                                        return 0;
                                } else {
                                        tmp->prev = help_actual;
diff --git a/kbd.c b/kbd.c
index da222b5..0da9e9e 100644 (file)
--- a/kbd.c
+++ b/kbd.c
@@ -8,7 +8,7 @@
 #include "config.h"
 #include "types.h"
 
-__RCSID("$MirOS: contrib/code/jupp/kbd.c,v 1.8 2017/12/07 02:13:05 tg Exp $");
+__RCSID("$MirOS: contrib/code/jupp/kbd.c,v 1.12 2017/12/08 03:24:15 tg Exp $");
 
 #include <stdlib.h>
 #include <string.h>
@@ -23,7 +23,7 @@ __RCSID("$MirOS: contrib/code/jupp/kbd.c,v 1.8 2017/12/07 02:13:05 tg Exp $");
 
 KBD *mkkbd(KMAP *kmap)
 {
-       KBD *kbd = (KBD *) joe_malloc(sizeof(KBD));
+       KBD *kbd = malloc(sizeof(KBD));
 
        kbd->topmap = kmap;
        kbd->curmap = kmap;
@@ -35,7 +35,7 @@ KBD *mkkbd(KMAP *kmap)
 
 void rmkbd(KBD *k)
 {
-       joe_free(k);
+       free(k);
 }
 
 /* Process next key for KBD */
@@ -77,8 +77,8 @@ static int keyval(unsigned char *s)
                        return 127;
                else
                        return s[1] & 0x1F;
-       else if ((s[0] == 'S' || s[0] == 's')
-                && (s[1] == 'P' || s[1] == 'p') && !s[2])
+       else if (((s[0] | 0x20) == 's') &&
+           ((s[1] | 0x20) == 'p') && !s[2])
                return ' ';
        else if (s[1] || !s[0])
                return -1;
@@ -90,7 +90,7 @@ static int keyval(unsigned char *s)
 
 KMAP *mkkmap(void)
 {
-       KMAP *kmap = (KMAP *) joe_calloc(sizeof(KMAP), 1);
+       KMAP *kmap = calloc(1, sizeof(KMAP));
 
        return kmap;
 }
@@ -106,7 +106,7 @@ void rmkmap(KMAP *kmap)
        for (x = 0; x != KEYS; ++x)
                if (kmap->keys[x].k == 1)
                        rmkmap(kmap->keys[x].value.submap);
-       joe_free(kmap);
+       free(kmap);
 }
 
 /* Parse a range */
@@ -127,7 +127,7 @@ static unsigned char *range(unsigned char *seq, int *vv, int *ww)
        for (seq += x; *seq == ' '; ++seq) ;    /* Skip over spaces */
 
        /* Check for 'TO ' */
-       if ((seq[0] == 'T' || seq[0] == 't') && (seq[1] == 'O' || seq[1] == 'o') && seq[2] == ' ') {
+       if ((seq[0] | 0x20) == 't' && (seq[1] | 0x20) == 'o' && seq[2] == ' ') {
                for (seq += 2; *seq == ' '; ++seq) ;    /* Skip over spaces */
                for (x = 0; seq[x] && seq[x] != ' '; ++x) ;     /* Skip to space */
                c = seq[x];
@@ -149,13 +149,15 @@ static unsigned char *range(unsigned char *seq, int *vv, int *ww)
 
 /* Add a binding to a keymap */
 
-static KMAP *kbuild(CAP *cap, KMAP *kmap, unsigned char *seq, void *bind, int *err, unsigned char *capseq, int seql)
+static KMAP *
+kbuild(CAP *cap, KMAP *kmap, unsigned char *seq, void *bind, int *err,
+    const unsigned char *capseq, int seql)
 {
        int v, w;
 
        if (!seql && seq[0] == '.' && seq[1]) {
                int x, c;
-               unsigned char *s;
+               const unsigned char *s;
 
                for (x = 0; seq[x] && seq[x] != ' '; ++x) ;
                c = seq[x];
diff --git a/macro.c b/macro.c
index 514ad6a..c0d4955 100644 (file)
--- a/macro.c
+++ b/macro.c
@@ -8,7 +8,7 @@
 #include "config.h"
 #include "types.h"
 
-__RCSID("$MirOS: contrib/code/jupp/macro.c,v 1.16 2017/12/06 23:58:37 tg Exp $");
+__RCSID("$MirOS: contrib/code/jupp/macro.c,v 1.19 2017/12/08 02:28:05 tg Exp $");
 
 #include <string.h>
 #include <stdlib.h>
@@ -40,8 +40,9 @@ MACRO *mkmacro(int k, int arg, int n, CMD *cmd)
        if (!freemacros) {
                int x;
 
-               macro = (MACRO *) joe_malloc(sizeof(MACRO) * 64);
-               for (x = 0; x != 64; ++x) {     /* FIXME: why limit to 64? */
+               /* FIXME: why limit to 64? */
+               macro = calloc(64, sizeof(MACRO));
+               for (x = 0; x != 64; ++x) {
                        macro[x].steps = (MACRO **) freemacros;
                        freemacros = macro + x;
                }
@@ -67,7 +68,7 @@ void rmmacro(MACRO *macro)
 
                        for (x = 0; x != macro->n; ++x)
                                rmmacro(macro->steps[x]);
-                       joe_free(macro->steps);
+                       free(macro->steps);
                }
                macro->steps = (MACRO **) freemacros;
                freemacros = macro;
@@ -80,9 +81,9 @@ void addmacro(MACRO *macro, MACRO *m)
 {
        if (macro->n == macro->size) {
                if (macro->steps)
-                       macro->steps = (MACRO **) joe_realloc(macro->steps, (macro->size += 8) * sizeof(MACRO *));
+                       macro->steps = realloc(macro->steps, (macro->size += 8) * sizeof(MACRO *));
                else
-                       macro->steps = (MACRO **) joe_malloc((macro->size = 8) * sizeof(MACRO *));
+                       macro->steps = calloc((macro->size = 8), sizeof(MACRO *));
        }
        macro->steps[macro->n++] = m;
 }
@@ -96,7 +97,7 @@ MACRO *dupmacro(MACRO *mac)
        if (mac->steps) {
                int x;
 
-               m->steps = (MACRO **) joe_malloc((m->size = mac->n) * sizeof(MACRO *));
+               m->steps = calloc((m->size = mac->n), sizeof(MACRO *));
                for (x = 0; x != m->n; ++x)
                        m->steps[x] = dupmacro(mac->steps[x]);
        }
@@ -129,7 +130,7 @@ MACRO *mparse(MACRO *m, unsigned char *buf, int *sta)
 {
        int y, c, x = 0;
 
     macroloop:
+ macroloop:
 
        /* Skip whitespace */
        while (joe_isblank(locale_map,buf[x]))
@@ -467,7 +468,7 @@ static int dorecord(BW *bw, int c, void *object, int *notify)
        for (n = 0; n != 10; ++n)
                if (playmode[n])
                        return -1;
-       r = (struct recmac *) joe_malloc(sizeof(struct recmac));
+       r = malloc(sizeof(struct recmac));
 
        r->m = mkmacro(0, 1, 0, NULL);
        r->next = recmac;
@@ -502,7 +503,7 @@ int ustop(void)
                kbdmacro[r->n] = r->m;
                if (recmac)
                        record(m = mkmacro(r->n + '0', 1, 0, findcmd(UC "play"))), rmmacro(m);
-               joe_free(r);
+               free(r);
        }
        return 0;
 }
@@ -567,6 +568,7 @@ static int doarg(BW *bw, unsigned char *s, void *object, int *notify)
                *notify = 1;
        num = calcl(bw, s);
        if (merrf) {
+               vsrm(s);
                msgnw(bw->parent, merrt);
                return -1;
        }
diff --git a/main.c b/main.c
index 7909b5b..966fa92 100644 (file)
--- a/main.c
+++ b/main.c
@@ -32,7 +32,7 @@
 #include "config.h"
 #include "types.h"
 
-__RCSID("$MirOS: contrib/code/jupp/main.c,v 1.38 2017/12/07 02:10:16 tg Exp $");
+__RCSID("$MirOS: contrib/code/jupp/main.c,v 1.40 2017/12/08 03:24:15 tg Exp $");
 
 #include <fcntl.h>
 #include <string.h>
@@ -236,7 +236,7 @@ main_init(int argc, char **argv, char **envp, SCRN **np)
                        fprintf(stderr, "There were errors in '%s'.  Use it anyway?", s);
                        fflush(stderr);
                        if (fgets((char *)buf, 8, stdin) != NULL &&
-                           (buf[0] == 'y' || buf[0] == 'Y'))
+                           (buf[0] | 0x20) == 'y')
                                goto donerc;
                }
        }
@@ -255,7 +255,7 @@ main_init(int argc, char **argv, char **envp, SCRN **np)
                        fprintf(stderr, "There were errors in '%s'.  Use it anyway?", s);
                        fflush(stderr);
                        if (fgets((char *)buf, 8, stdin) != NULL &&
-                           (buf[0] == 'y' || buf[0] == 'Y'))
+                           (buf[0] | 0x20) == 'y')
                                goto donerc;
                }
        }
@@ -274,14 +274,14 @@ main_init(int argc, char **argv, char **envp, SCRN **np)
                fprintf(stderr, "There were errors in '%s'.  Use it anyway?", s);
                fflush(stderr);
                if (fgets((char *)buf, 8, stdin) != NULL &&
-                   (buf[0] == 'y' || buf[0] == 'Y'))
+                   (buf[0] | 0x20) == 'y')
                        goto donerc;
        }
 
        fprintf(stderr, "Couldn't open '%s'\n", s);
        return 1;
 
     donerc:
+ donerc:
        help_init(s);
        for (c = 1; argv[c]; ++c) {
                if (argv[c][0] == '-') {
diff --git a/menu.c b/menu.c
index cfa8f44..a1930e6 100644 (file)
--- a/menu.c
+++ b/menu.c
@@ -8,7 +8,7 @@
 #include "config.h"
 #include "types.h"
 
-__RCSID("$MirOS: contrib/code/jupp/menu.c,v 1.11 2017/12/07 02:10:16 tg Exp $");
+__RCSID("$MirOS: contrib/code/jupp/menu.c,v 1.14 2017/12/08 02:28:05 tg Exp $");
 
 #include <stdlib.h>
 #include <string.h>
@@ -64,17 +64,17 @@ static void menudisp(jobject jO, int flg __attribute__((__unused__)))
 
                        /* Generate field */
                        genfield(m->t->t,
-                                s + col,
-                                a + col,
-                                m->x + col,
-                                m->y + y,
-                                0,
-                                m->list[x + y*m->perline + m->top],
-                                strlen((char *)m->list[x + y*m->perline + m->top]),
-                                atr,
-                                m->width,
-                                0,
-                                NULL);
+                           s + col,
+                           a + col,
+                           m->x + col,
+                           m->y + y,
+                           0,
+                           m->list[x + y*m->perline + m->top],
+                           strlen((char *)m->list[x + y*m->perline + m->top]),
+                           atr,
+                           m->width,
+                           0,
+                           NULL);
 
                        col += m->width;
 
@@ -228,7 +228,7 @@ int umdnarw(MENU *m)
 {
        int col = m->cursor % m->perline;
 
-        m->cursor -= col;
+       m->cursor -= col;
 
        if (m->cursor + m->perline < m->nitems) {
                m->cursor += m->perline;
@@ -381,7 +381,7 @@ static int menuabort(jobject jO)
        int x = m->cursor;
        W *win = w->win;
 
-       joe_free(m);
+       free(m);
        if (func)
                return func(win->object, x, object);
        else
@@ -432,7 +432,7 @@ MENU *mkmenu(W *w, unsigned char **s, jpoly_int *func, jpoly_int *abrt, jpoly_in
                return NULL;
        }
        wfit(new->t);
-       new->object.menu = m = (MENU *)joe_malloc(sizeof(MENU));
+       new->object.menu = m = malloc(sizeof(MENU));
        m->parent = new;
        m->func = func;
        m->abrt = abrt;
diff --git a/path.c b/path.c
index bb3f354..342647d 100644 (file)
--- a/path.c
+++ b/path.c
@@ -8,7 +8,7 @@
 #include "config.h"
 #include "types.h"
 
-__RCSID("$MirOS: contrib/code/jupp/path.c,v 1.16 2017/12/06 23:17:34 tg Exp $");
+__RCSID("$MirOS: contrib/code/jupp/path.c,v 1.18 2017/12/08 02:28:05 tg Exp $");
 
 #include <sys/stat.h>
 #include <fcntl.h>
@@ -80,8 +80,8 @@ __RCSID("$MirOS: contrib/code/jupp/path.c,v 1.16 2017/12/06 23:17:34 tg Exp $");
 #endif
 #define skip_drive_letter(path)        do_if_drive_letter((path), (path) += 2)
 
-#ifndef                _PATH_TMP
-#    define    _PATH_TMP       "/tmp/"
+#ifndef _PATH_TMP
+#define _PATH_TMP      "/tmp/"
 #endif
 
 #if !defined(PATH_MAX) && !defined(HAVE_GET_CURRENT_DIR_NAME)
@@ -198,7 +198,7 @@ int mkpath(unsigned char *path)
                                return 1;
                }
                *s = c;
            in:
+ in:
                while (*s == '/')
                        ++s;
                path = s;
index 52c243a..bd4cec0 100644 (file)
--- a/poshist.c
+++ b/poshist.c
@@ -8,7 +8,7 @@
 #include "config.h"
 #include "types.h"
 
-__RCSID("$MirOS: contrib/code/jupp/poshist.c,v 1.7 2017/12/07 02:10:17 tg Exp $");
+__RCSID("$MirOS: contrib/code/jupp/poshist.c,v 1.8 2017/12/08 02:28:05 tg Exp $");
 
 #include <stdlib.h>
 
@@ -80,7 +80,7 @@ int unextpos(BW *bw)
 {
        W *w = bw->parent;
 
     lp:
+ lp:
        if (curpos->link.next != &pos && curpos != &pos) {
                curpos = curpos->link.next;
                if (!curpos->p || !curpos->w) {
@@ -110,7 +110,7 @@ int uprevpos(BW *bw)
 {
        W *w = bw->parent;
 
     lp:
+ lp:
        if (curpos->link.prev != &pos) {
                curpos = curpos->link.prev;
                if (!curpos->p || !curpos->w) {
diff --git a/pw.c b/pw.c
index 983e4d1..358adf9 100644 (file)
--- a/pw.c
+++ b/pw.c
@@ -8,7 +8,7 @@
 #include "config.h"
 #include "types.h"
 
-__RCSID("$MirOS: contrib/code/jupp/pw.c,v 1.13 2017/12/07 02:10:17 tg Exp $");
+__RCSID("$MirOS: contrib/code/jupp/pw.c,v 1.14 2017/12/08 02:00:39 tg Exp $");
 
 #include <stdlib.h>
 #include <string.h>
@@ -114,7 +114,7 @@ static int rtnpw(jobject jO)
                        s2 = brs(r, (int)(byte2 - r->byte));
                        prm(r);
                        byte2 = strcmp(s, s2);
-                       joe_free(s2);
+                       free(s2);
                        if (byte2) {
                                binsm(q, s, (int)(byte - bw->cursor->byte));
                                p_goto_eof(q);
@@ -141,8 +141,8 @@ static int rtnpw(jobject jO)
        pfunc = pw->pfunc;
        object = pw->object;
        bwrm(bw);
-       joe_free(pw->prompt);
-       joe_free(pw);
+       free(pw->prompt);
+       free(pw);
        w->object.base = NULL;
        notify = w->notify;
        w->notify = 0;
@@ -190,8 +190,8 @@ static int abortpw(jobject jO)
        W *win = b->parent->win;
 
        bwrm(b);
-       joe_free(pw->prompt);
-       joe_free(pw);
+       free(pw->prompt);
+       free(pw);
        if (abrt) {
                return abrt(win->object, object);
        } else {
@@ -231,7 +231,7 @@ BW *wmkpw(W *w, const unsigned char *prompt, B **history, jpoly_int *func, const
        wfit(new->t);
        new->object.bw = bw = bwmk(new, bmk(NULL), 1);
        bw->b->o.charmap = map;
-       bw->object = (void *) (pw = (PW *) joe_malloc(sizeof(PW)));
+       bw->object = pw = malloc(sizeof(PW));
        pw->abrt = abrt;
        pw->tab = tab;
        pw->object = object;
diff --git a/pw.h b/pw.h
index fa9462b..51cd0a0 100644 (file)
--- a/pw.h
+++ b/pw.h
@@ -9,11 +9,11 @@
 #define _JOE_PW_H 1
 
 #ifdef EXTERN_CMD_C
-__IDSTRING(rcsid_pw_h, "$MirOS: contrib/code/jupp/pw.h,v 1.9 2017/12/06 23:58:37 tg Exp $");
+__IDSTRING(rcsid_pw_h, "$MirOS: contrib/code/jupp/pw.h,v 1.10 2017/12/08 02:17:22 tg Exp $");
 #endif
 
 /* BW *wmkpw(BW *bw,char *prompt,int (*func)(),char *huh,int (*abrt)(),
-             int (*tab)(),void *object,int *notify);
+            int (*tab)(),void *object,int *notify);
  * Create a prompt window for the given window
  */
 BW *wmkpw(W *w, const unsigned char *prompt, B **history, jpoly_int *func, const unsigned char *huh, jpoly_int *abrt, jpoly_int *tab, void *object, int *notify, struct charmap *map);
diff --git a/queue.c b/queue.c
index c9e2f15..1b01c12 100644 (file)
--- a/queue.c
+++ b/queue.c
@@ -8,7 +8,7 @@
 #include "config.h"
 #include "types.h"
 
-__RCSID("$MirOS: contrib/code/jupp/queue.c,v 1.4 2017/12/02 02:07:30 tg Exp $");
+__RCSID("$MirOS: contrib/code/jupp/queue.c,v 1.5 2017/12/08 02:00:40 tg Exp $");
 
 #include <stdlib.h>
 
@@ -24,15 +24,15 @@ void *alitem(void *list, int itemsize)
        STDITEM *freelist = (STDITEM *)list;
 
        if (qempty(STDITEM, link, freelist)) {
-               STDITEM *i = (STDITEM *) joe_malloc(itemsize * 16);
-               STDITEM *z = (STDITEM *) ((unsigned char *) i + itemsize * 16);
+               STDITEM *i = malloc(itemsize * 16);
+               STDITEM *z = (STDITEM *)((unsigned char *)i + itemsize * 16);
 
                while (i != z) {
                        enquef(STDITEM, link, freelist, i);
-                       i = (STDITEM *) ((unsigned char *) i + itemsize);
+                       i = (STDITEM *)((unsigned char *)i + itemsize);
                }
        }
-       return (void *) deque_f(STDITEM, link, freelist->link.prev);
+       return (void *)deque_f(STDITEM, link, freelist->link.prev);
 }
 
 void frchn(void *list, void *ch)
diff --git a/qw.c b/qw.c
index 942c530..7ef9bd9 100644 (file)
--- a/qw.c
+++ b/qw.c
@@ -8,7 +8,7 @@
 #include "config.h"
 #include "types.h"
 
-__RCSID("$MirOS: contrib/code/jupp/qw.c,v 1.9 2017/12/07 02:10:17 tg Exp $");
+__RCSID("$MirOS: contrib/code/jupp/qw.c,v 1.11 2017/12/08 02:17:22 tg Exp $");
 
 #include <stdlib.h>
 
@@ -37,17 +37,17 @@ static void dispqw(jobject jO, int flg __attribute__((__unused__)))
        /* Generate prompt */
        w->t->t->updtab[w->y] = 1;
        genfield(w->t->t,
-                w->t->t->scrn + w->y * w->t->t->co + w->x,
-                w->t->t->attr + w->y * w->t->t->co + w->x,
-                w->x,
-                w->y,
-                qw->promptofst,
-                qw->prompt,
-                qw->promptlen,
-                0,
-                w->w - w->x,
-                1,
-                NULL);
+           w->t->t->scrn + w->y * w->t->t->co + w->x,
+           w->t->t->attr + w->y * w->t->t->co + w->x,
+           w->x,
+           w->y,
+           qw->promptofst,
+           qw->prompt,
+           qw->promptlen,
+           0,
+           w->w - w->x,
+           1,
+           NULL);
 }
 
 static void dispqwn(jobject jO, int flg __attribute__((__unused__)))
@@ -72,17 +72,17 @@ static void dispqwn(jobject jO, int flg __attribute__((__unused__)))
        /* Generate prompt */
        w->t->t->updtab[w->y] = 1;
        genfield(w->t->t,
-                w->t->t->scrn + w->y * w->t->t->co + w->x,
-                w->t->t->attr + w->y * w->t->t->co + w->x,
-                w->x,
-                w->y,
-                qw->promptofst,
-                qw->prompt,
-                qw->promptlen,
-                0,
-                w->w - w->x,
-                1,
-                NULL);
+           w->t->t->scrn + w->y * w->t->t->co + w->x,
+           w->t->t->attr + w->y * w->t->t->co + w->x,
+           w->x,
+           w->y,
+           qw->promptofst,
+           qw->prompt,
+           qw->promptlen,
+           0,
+           w->w - w->x,
+           1,
+           NULL);
 }
 
 /* When user hits a key in a query window */
@@ -107,7 +107,7 @@ static int utypeqw(jobject jO, int c)
        win = qw->parent->win;
        func = qw->func;
        vsrm(qw->prompt);
-       joe_free(qw);
+       free(qw);
        w->object.base = NULL;
        w->notify = NULL;
        wabort(w);
@@ -124,7 +124,7 @@ static int abortqw(jobject jO)
        jpoly_int *abrt = qw->abrt;
 
        vsrm(qw->prompt);
-       joe_free(qw);
+       free(qw);
        if (abrt)
                return abrt(win->object, object);
        else
@@ -187,7 +187,7 @@ QW *mkqw(W *w, unsigned char *prompt, int len, jpoly_int *func, jpoly_int *abrt,
                return NULL;
        }
        wfit(new->t);
-       new->object.qw = qw = (QW *)joe_malloc(sizeof(QW));
+       new->object.qw = qw = malloc(sizeof(QW));
        qw->parent = new;
        qw->prompt = vsncpy(NULL, 0, prompt, len);
        qw->promptlen = len;
@@ -214,7 +214,7 @@ QW *mkqwna(W *w, unsigned char *prompt, int len, jpoly_int *func, jpoly_int *abr
                return NULL;
        }
        wfit(new->t);
-       new->object.qw = qw = (QW *)joe_malloc(sizeof(QW));
+       new->object.qw = qw = malloc(sizeof(QW));
        qw->parent = new;
        qw->prompt = vsncpy(NULL, 0, prompt, len);
        qw->promptlen = len;
@@ -241,7 +241,7 @@ QW *mkqwnsr(W *w, unsigned char *prompt, int len, jpoly_int *func, jpoly_int *ab
                return NULL;
        }
        wfit(new->t);
-       new->object.qw = qw = (QW *)joe_malloc(sizeof(QW));
+       new->object.qw = qw = malloc(sizeof(QW));
        qw->parent = new;
        qw->prompt = vsncpy(NULL, 0, prompt, len);
        qw->promptlen = len;
diff --git a/rc.c b/rc.c
index 941573c..3496d54 100644 (file)
--- a/rc.c
+++ b/rc.c
@@ -9,7 +9,7 @@
 #include "config.h"
 #include "types.h"
 
-__RCSID("$MirOS: contrib/code/jupp/rc.c,v 1.35 2017/12/07 02:10:17 tg Exp $");
+__RCSID("$MirOS: contrib/code/jupp/rc.c,v 1.39 2017/12/08 02:28:05 tg Exp $");
 
 #include <string.h>
 #include <stdlib.h>
@@ -61,7 +61,7 @@ KMAP *kmap_getcontext(unsigned char *name, int docreate)
        if (!docreate)
                return (NULL);
 
-       c = (struct context *) joe_malloc(sizeof(struct context));
+       c = malloc(sizeof(struct context));
 
        c->next = contexts;
        c->name = (unsigned char *)strdup((char *)name);
@@ -203,7 +203,7 @@ void setopt(B *b, unsigned char *parsed_name)
        b->o = fdefault;
        lazy_opts(&b->o);
 
      done:
+ done:
        for (x = 0; x!=26; ++x)
                vsrm(pieces[x]);
 }
@@ -509,7 +509,7 @@ static int optx = 0; /* Menu cursor position: remember it for next time */
 
 static int doabrt1(BW *bw, int *xx)
 {
-       joe_free(xx);
+       free(xx);
        return -1;
 }
 
@@ -519,7 +519,7 @@ static int doopt1(BW *bw, unsigned char *s, int *xx, int *notify)
        int x = *xx;
        long v;
 
-       joe_free(xx);
+       free(xx);
        switch (glopts[x].type) {
        case 1:
                if (!*s) {
@@ -668,7 +668,7 @@ check_for_hex(BW *bw)
        for (w = bw->parent->link.next; w != bw->parent; w = w->link.next)
                if ((w->watom == &watomtw || w->watom == &watompw) &&
                    w->object.bw->b == bw->b && w->object.bw->o.hex)
-                       return 1;
+                       return 1;
        return 0;
 }
 
@@ -683,6 +683,7 @@ static int doencoding(BW *bw, unsigned char *s, int *xx, int *notify)
                map = fdefault.charmap;
 
        if (map && map->type && check_for_hex(bw)) {
+               vsrm(s);
                msgnw(bw->parent, UC "UTF-8 encoding not allowed with hex-edit windows");
                if (notify)
                        *notify = 1;
@@ -758,7 +759,7 @@ static int doopt(MENU *m, int x, void *object, int flg)
                break;
        case 1:
                joe_snprintf_1((char *)buf, OPT_BUF_SIZE, (char *)glopts[x].yes, *glopts[x].set.i);
-               xx = (int *) joe_malloc(sizeof(int));
+               xx = malloc(sizeof(int));
 
                *xx = x;
                m->parent->notify = 0;
@@ -774,7 +775,7 @@ static int doopt(MENU *m, int x, void *object, int flg)
                        joe_snprintf_1((char *)buf, OPT_BUF_SIZE, (char *)glopts[x].yes, *glopts[x].set.us);
                else
                        joe_snprintf_1((char *)buf, OPT_BUF_SIZE, (char *)glopts[x].yes, "");
-               xx = (int *) joe_malloc(sizeof(int));
+               xx = malloc(sizeof(int));
 
                *xx = x;
                m->parent->notify = 0;
@@ -788,7 +789,8 @@ static int doopt(MENU *m, int x, void *object, int flg)
                goto in;
        case 7:
                joe_snprintf_1((char *)buf, OPT_BUF_SIZE, (char *)glopts[x].yes, *(int *) ((unsigned char *) &bw->o + glopts[x].ofst) + 1);
-             in:xx = (int *) joe_malloc(sizeof(int));
+ in:
+               xx = malloc(sizeof(int));
 
                *xx = x;
                m->parent->notify = 0;
@@ -830,8 +832,8 @@ static int doabrt(MENU *m, int x, unsigned char **s)
 {
        optx = x;
        for (x = 0; s[x]; ++x)
-               joe_free(s[x]);
-       joe_free(s);
+               free(s[x]);
+       free(s);
        return -1;
 }
 
@@ -842,10 +844,10 @@ int umode(BW *bw)
 
        bw->b->o.readonly = bw->o.readonly = bw->b->rdonly;
        for (size = 0; glopts[size].menu; ++size) ;
-       s = (unsigned char **) joe_malloc(sizeof(unsigned char *) * (size + 1));
+       s = calloc(size + 1, sizeof(unsigned char *));
        len = 0;
        for (x = 0; x < size; ++x) {
-               s[x] = (unsigned char *) joe_malloc(OPT_BUF_SIZE);
+               s[x] = malloc(OPT_BUF_SIZE);
                if (glopts[x].menu[0] == ' ' || glopts[x].menu[1] == ' ')
                        strlcpy(s[x], glopts[x].menu, OPT_BUF_SIZE);
                else {
@@ -943,7 +945,7 @@ int procrc(CAP *cap, unsigned char *name)
                        {
                                int x;
 
-                               o = (OPTIONS *) joe_malloc(sizeof(OPTIONS));
+                               o = malloc(sizeof(OPTIONS));
                                *o = fdefault;
                                for (x = 0; buf[x] && buf[x] != '\n' && buf[x] != ' ' && buf[x] != '\t'; ++x) ;
                                buf[x] = 0;
@@ -1087,7 +1089,7 @@ int procrc(CAP *cap, unsigned char *name)
                                }
 
                                m = 0;
                            macroloop:
+ macroloop:
                                m = mparse(m, buf, &x);
                                if (x == -1) {
                                        err = 1;
diff --git a/rc.h b/rc.h
index d115a8b..859afed 100644 (file)
--- a/rc.h
+++ b/rc.h
@@ -9,7 +9,7 @@
 #define _JOE_RC_H 1
 
 #ifdef EXTERN
-__IDSTRING(rcsid_rc_h, "$MirOS: contrib/code/jupp/rc.h,v 1.8 2017/12/06 23:17:35 tg Exp $");
+__IDSTRING(rcsid_rc_h, "$MirOS: contrib/code/jupp/rc.h,v 1.9 2017/12/08 02:17:22 tg Exp $");
 #endif
 
 extern OPTIONS pdefault;
@@ -24,8 +24,8 @@ KMAP *kmap_getcontext(unsigned char *name, int docreate);
 
 /* int procrc(CAP *cap, char *name);  Process an rc file
    Returns 0 for success
-          -1 for file not found
-           1 for syntax error (errors written to stderr)
+         -1 for file not found
+          1 for syntax error (errors written to stderr)
 */
 int procrc(CAP *cap, unsigned char *name);
 
diff --git a/scrn.c b/scrn.c
index 8bb1bad..8d38f21 100644 (file)
--- a/scrn.c
+++ b/scrn.c
@@ -8,7 +8,7 @@
 #include "config.h"
 #include "types.h"
 
-__RCSID("$MirOS: contrib/code/jupp/scrn.c,v 1.33 2017/12/06 21:41:02 tg Exp $");
+__RCSID("$MirOS: contrib/code/jupp/scrn.c,v 1.38 2017/12/08 02:57:17 tg Exp $");
 
 #include <stdlib.h>
 #include <string.h>
@@ -441,10 +441,10 @@ SCRN *nopen(CAP *cap)
        t->cap = cap;
        setcap(cap, baud, out, NULL);
 
-       t->li = getnum(t->cap,US "li");
+       t->li = getnum(t->cap, UC "li");
        if (t->li < 1)
                t->li = 24;
-       t->co = getnum(t->cap,US "co");
+       t->co = getnum(t->cap, UC "co");
        if (t->co < 2)
                t->co = 80;
        x = y = 0;
@@ -454,35 +454,35 @@ SCRN *nopen(CAP *cap)
                t->co = x;
        }
 
-       t->haz = getflag(t->cap,US "hz");
-       t->os = getflag(t->cap,US "os");
-       t->eo = getflag(t->cap,US "eo");
-       if (getflag(t->cap,US "hc"))
+       t->haz = getflag(t->cap, UC "hz");
+       t->os = getflag(t->cap, UC "os");
+       t->eo = getflag(t->cap, UC "eo");
+       if (getflag(t->cap, UC "hc"))
                t->os = 1;
-       if (t->os || getflag(t->cap,US "ul"))
+       if (t->os || getflag(t->cap, UC "ul"))
                t->ul = 1;
 
-       t->xn = getflag(t->cap,US "xn");
-       t->am = getflag(t->cap,US "am");
+       t->xn = getflag(t->cap, UC "xn");
+       t->am = getflag(t->cap, UC "am");
 
-       t->cl = jgetstr(t->cap,US "cl");
-       t->cd = jgetstr(t->cap,US "cd");
+       t->cl = jgetstr(t->cap, UC "cl");
+       t->cd = jgetstr(t->cap, UC "cd");
 
        if (!notite) {
-               t->ti = jgetstr(t->cap,US "ti");
-               t->te = jgetstr(t->cap,US "te");
+               t->ti = jgetstr(t->cap, UC "ti");
+               t->te = jgetstr(t->cap, UC "te");
        }
        if (pastetite && t->cap->paste_on && t->cap->paste_off) {
                if (notite) {
-                       t->ti = (void *)strdup(t->cap->paste_on);
-                       t->te = (void *)strdup(t->cap->paste_off);
+                       t->ti = t->cap->paste_on;
+                       t->te = t->cap->paste_off;
                } else {
                        size_t n1, n2;
                        char *cp;
 
                        n1 = t->ti ? strlen(t->ti) : 0;
                        n2 = strlen(t->cap->paste_on);
-                       cp = joe_malloc(n1 + n2 + 1);
+                       cp = malloc(n1 + n2 + 1);
                        if (t->ti)
                                memcpy(cp, t->ti, n1);
                        memcpy(cp + n1, t->cap->paste_on, n2 + 1);
@@ -490,7 +490,7 @@ SCRN *nopen(CAP *cap)
 
                        n1 = t->te ? strlen(t->te) : 0;
                        n2 = strlen(t->cap->paste_off);
-                       cp = joe_malloc(n1 + n2 + 1);
+                       cp = malloc(n1 + n2 + 1);
                        memcpy(cp, t->cap->paste_off, n2 + 1);
                        if (t->te)
                                memcpy(cp + n2, t->te, n1 + 1);
@@ -498,21 +498,21 @@ SCRN *nopen(CAP *cap)
                }
        }
 
-       t->ut = getflag(t->cap,US "ut");
-       t->Sb = jgetstr(t->cap,US "AB");
-       if (!t->Sb) t->Sb = jgetstr(t->cap,US "Sb");
-       t->Sf = jgetstr(t->cap,US "AF");
-       if (!t->Sf) t->Sf = jgetstr(t->cap,US "Sf");
+       t->ut = getflag(t->cap, UC "ut");
+       t->Sb = jgetstr(t->cap, UC "AB");
+       if (!t->Sb) t->Sb = jgetstr(t->cap, UC "Sb");
+       t->Sf = jgetstr(t->cap, UC "AF");
+       if (!t->Sf) t->Sf = jgetstr(t->cap, UC "Sf");
 
-       if (!(t->me = jgetstr(t->cap,US "me")))
+       if (!(t->me = jgetstr(t->cap, UC "me")))
                goto oops;
-       if ((t->mb = jgetstr(t->cap,US "mb")))
+       if ((t->mb = jgetstr(t->cap, UC "mb")))
                t->avattr |= BLINK;
-       if ((t->md = jgetstr(t->cap,US "md")))
+       if ((t->md = jgetstr(t->cap, UC "md")))
                t->avattr |= BOLD;
-       if ((t->mh = jgetstr(t->cap,US "mh")))
+       if ((t->mh = jgetstr(t->cap, UC "mh")))
                t->avattr |= DIM;
-       if ((t->mr = jgetstr(t->cap,US "mr")))
+       if ((t->mr = jgetstr(t->cap, UC "mr")))
                t->avattr |= INVERSE;
  oops:
 
@@ -523,96 +523,96 @@ SCRN *nopen(CAP *cap)
                 */
                if (t->md[0] == '\\' && t->md[1] == 'E' && t->md[2] == '[') {
                        t->ut = 1;
-                       t->Sf =US "\\E[3%dm";
-                       t->Sb =US "\\E[4%dm";
+                       t->Sf = UC "\\E[3%dm";
+                       t->Sb = UC "\\E[4%dm";
                } else if (t->md[0] == '\033' && t->md[1] == '[') {
                        t->ut = 1;
-                       t->Sf =US "\033[3%p1%dm";
-                       t->Sb =US "\033[4%p1%dm";
+                       t->Sf = UC "\033[3%p1%dm";
+                       t->Sb = UC "\033[4%p1%dm";
                }
        }
 
-       if (getnum(t->cap,US "sg") <= 0 && !t->mr && jgetstr(t->cap,US "se")) {
-               if ((t->so = jgetstr(t->cap,US "so")) != NULL)
+       if (getnum(t->cap, UC "sg") <= 0 && !t->mr && jgetstr(t->cap, UC "se")) {
+               if ((t->so = jgetstr(t->cap, UC "so")) != NULL)
                        t->avattr |= INVERSE;
-               t->se = jgetstr(t->cap,US "se");
+               t->se = jgetstr(t->cap, UC "se");
        }
-       if (getflag(t->cap,US "xs") || getflag(t->cap,US "xt"))
+       if (getflag(t->cap, UC "xs") || getflag(t->cap, UC "xt"))
                t->so = NULL;
 
-       if (getnum(t->cap,US "ug") <= 0 && jgetstr(t->cap,US "ue")) {
-               if ((t->us = jgetstr(t->cap,US "us")) != NULL)
+       if (getnum(t->cap, UC "ug") <= 0 && jgetstr(t->cap, UC "ue")) {
+               if ((t->us = jgetstr(t->cap, UC "us")) != NULL)
                        t->avattr |= UNDERLINE;
-               t->ue = jgetstr(t->cap,US "ue");
+               t->ue = jgetstr(t->cap, UC "ue");
        }
 
-       if (!(t->uc = jgetstr(t->cap,US "uc")))
+       if (!(t->uc = jgetstr(t->cap, UC "uc")))
                if (t->ul)
-                       t->uc =US "_";
+                       t->uc = UC "_";
        if (t->uc)
                t->avattr |= UNDERLINE;
 
-       t->ms = getflag(t->cap,US "ms");
-
-       t->da = getflag(t->cap,US "da");
-       t->db = getflag(t->cap,US "db");
-       t->cs = jgetstr(t->cap,US "cs");
-       t->rr = getflag(t->cap,US "rr");
-       t->sf = jgetstr(t->cap,US "sf");
-       t->sr = jgetstr(t->cap,US "sr");
-       t->SF = jgetstr(t->cap,US "SF");
-       t->SR = jgetstr(t->cap,US "SR");
-       t->al = jgetstr(t->cap,US "al");
-       t->dl = jgetstr(t->cap,US "dl");
-       t->AL = jgetstr(t->cap,US "AL");
-       t->DL = jgetstr(t->cap,US "DL");
-       if (!getflag(t->cap,US "ns") && !t->sf)
-               t->sf =US "\12";
-
-       if (!getflag(t->cap,US "in") && baud < 38400) {
-               t->dc = jgetstr(t->cap,US "dc");
-               t->DC = jgetstr(t->cap,US "DC");
-               t->dm = jgetstr(t->cap,US "dm");
-               t->ed = jgetstr(t->cap,US "ed");
-
-               t->im = jgetstr(t->cap,US "im");
-               t->ei = jgetstr(t->cap,US "ei");
-               t->ic = jgetstr(t->cap,US "ic");
-               t->IC = jgetstr(t->cap,US "IC");
-               t->ip = jgetstr(t->cap,US "ip");
-               t->mi = getflag(t->cap,US "mi");
-       }
-
-       if (jgetstr(t->cap,US "bc"))
-               t->bs = jgetstr(t->cap,US "bc");
-       else if (jgetstr(t->cap,US "le"))
-               t->bs = jgetstr(t->cap,US "le");
-       if (getflag(t->cap,US "bs"))
-               t->bs =US "\10";
+       t->ms = getflag(t->cap, UC "ms");
+
+       t->da = getflag(t->cap, UC "da");
+       t->db = getflag(t->cap, UC "db");
+       t->cs = jgetstr(t->cap, UC "cs");
+       t->rr = getflag(t->cap, UC "rr");
+       t->sf = jgetstr(t->cap, UC "sf");
+       t->sr = jgetstr(t->cap, UC "sr");
+       t->SF = jgetstr(t->cap, UC "SF");
+       t->SR = jgetstr(t->cap, UC "SR");
+       t->al = jgetstr(t->cap, UC "al");
+       t->dl = jgetstr(t->cap, UC "dl");
+       t->AL = jgetstr(t->cap, UC "AL");
+       t->DL = jgetstr(t->cap, UC "DL");
+       if (!getflag(t->cap, UC "ns") && !t->sf)
+               t->sf = UC "\12";
+
+       if (!getflag(t->cap, UC "in") && baud < 38400) {
+               t->dc = jgetstr(t->cap, UC "dc");
+               t->DC = jgetstr(t->cap, UC "DC");
+               t->dm = jgetstr(t->cap, UC "dm");
+               t->ed = jgetstr(t->cap, UC "ed");
+
+               t->im = jgetstr(t->cap, UC "im");
+               t->ei = jgetstr(t->cap, UC "ei");
+               t->ic = jgetstr(t->cap, UC "ic");
+               t->IC = jgetstr(t->cap, UC "IC");
+               t->ip = jgetstr(t->cap, UC "ip");
+               t->mi = getflag(t->cap, UC "mi");
+       }
+
+       if (jgetstr(t->cap, UC "bc"))
+               t->bs = jgetstr(t->cap, UC "bc");
+       else if (jgetstr(t->cap, UC "le"))
+               t->bs = jgetstr(t->cap, UC "le");
+       if (getflag(t->cap, UC "bs"))
+               t->bs = UC "\10";
 
        t->cbs = tcost(t->cap, t->bs, 1, 2, 2, 0, 0);
 
-       t->lf =US "\12";
-       if (jgetstr(t->cap,US "do"))
-               t->lf = jgetstr(t->cap,US "do");
+       t->lf = UC "\12";
+       if (jgetstr(t->cap, UC "do"))
+               t->lf = jgetstr(t->cap, UC "do");
        t->clf = tcost(t->cap, t->lf, 1, 2, 2, 0, 0);
 
-       t->up = jgetstr(t->cap,US "up");
+       t->up = jgetstr(t->cap, UC "up");
        t->cup = tcost(t->cap, t->up, 1, 2, 2, 0, 0);
 
-       t->nd = jgetstr(t->cap,US "nd");
+       t->nd = jgetstr(t->cap, UC "nd");
 
        t->tw = 8;
-       if (getnum(t->cap,US "it") > 0)
-               t->tw = getnum(t->cap,US "it");
-       else if (getnum(t->cap,US "tw") > 0)
-               t->tw = getnum(t->cap,US "tw");
-
-       if (!(t->ta = jgetstr(t->cap,US "ta")))
-               if (getflag(t->cap,US "pt"))
-                       t->ta =US "\11";
-       t->bt = jgetstr(t->cap,US "bt");
-       if (getflag(t->cap,US "xt") || !usetabs) {
+       if (getnum(t->cap, UC "it") > 0)
+               t->tw = getnum(t->cap, UC "it");
+       else if (getnum(t->cap, UC "tw") > 0)
+               t->tw = getnum(t->cap, UC "tw");
+
+       if (!(t->ta = jgetstr(t->cap, UC "ta")))
+               if (getflag(t->cap, UC "pt"))
+                       t->ta = UC "\11";
+       t->bt = jgetstr(t->cap, UC "bt");
+       if (getflag(t->cap, UC "xt") || !usetabs) {
                t->ta = NULL;
                t->bt = NULL;
        }
@@ -620,30 +620,30 @@ SCRN *nopen(CAP *cap)
        t->cta = tcost(t->cap, t->ta, 1, 2, 2, 0, 0);
        t->cbt = tcost(t->cap, t->bt, 1, 2, 2, 0, 0);
 
-       t->ho = jgetstr(t->cap,US "ho");
+       t->ho = jgetstr(t->cap, UC "ho");
        t->cho = tcost(t->cap, t->ho, 1, 2, 2, 0, 0);
-       t->ll = jgetstr(t->cap,US "ll");
+       t->ll = jgetstr(t->cap, UC "ll");
        t->cll = tcost(t->cap, t->ll, 1, 2, 2, 0, 0);
 
-       t->cr =US "\15";
-       if (jgetstr(t->cap,US "cr"))
-               t->cr = jgetstr(t->cap,US "cr");
-       if (getflag(t->cap,US "nc") || getflag(t->cap,US "xr"))
+       t->cr = UC "\15";
+       if (jgetstr(t->cap, UC "cr"))
+               t->cr = jgetstr(t->cap, UC "cr");
+       if (getflag(t->cap, UC "nc") || getflag(t->cap, UC "xr"))
                t->cr = NULL;
        t->ccr = tcost(t->cap, t->cr, 1, 2, 2, 0, 0);
 
-       t->cRI = tcost(t->cap, t->RI = jgetstr(t->cap,US "RI"), 1, 2, 2, 0, 0);
-       t->cLE = tcost(t->cap, t->LE = jgetstr(t->cap,US "LE"), 1, 2, 2, 0, 0);
-       t->cUP = tcost(t->cap, t->UP = jgetstr(t->cap,US "UP"), 1, 2, 2, 0, 0);
-       t->cDO = tcost(t->cap, t->DO = jgetstr(t->cap,US "DO"), 1, 2, 2, 0, 0);
-       t->cch = tcost(t->cap, t->ch = jgetstr(t->cap,US "ch"), 1, 2, 2, 0, 0);
-       t->ccv = tcost(t->cap, t->cv = jgetstr(t->cap,US "cv"), 1, 2, 2, 0, 0);
-       t->ccV = tcost(t->cap, t->cV = jgetstr(t->cap,US "cV"), 1, 2, 2, 0, 0);
-       t->ccm = tcost(t->cap, t->cm = jgetstr(t->cap,US "cm"), 1, 2, 2, 0, 0);
+       t->cRI = tcost(t->cap, t->RI = jgetstr(t->cap, UC "RI"), 1, 2, 2, 0, 0);
+       t->cLE = tcost(t->cap, t->LE = jgetstr(t->cap, UC "LE"), 1, 2, 2, 0, 0);
+       t->cUP = tcost(t->cap, t->UP = jgetstr(t->cap, UC "UP"), 1, 2, 2, 0, 0);
+       t->cDO = tcost(t->cap, t->DO = jgetstr(t->cap, UC "DO"), 1, 2, 2, 0, 0);
+       t->cch = tcost(t->cap, t->ch = jgetstr(t->cap, UC "ch"), 1, 2, 2, 0, 0);
+       t->ccv = tcost(t->cap, t->cv = jgetstr(t->cap, UC "cv"), 1, 2, 2, 0, 0);
+       t->ccV = tcost(t->cap, t->cV = jgetstr(t->cap, UC "cV"), 1, 2, 2, 0, 0);
+       t->ccm = tcost(t->cap, t->cm = jgetstr(t->cap, UC "cm"), 1, 2, 2, 0, 0);
 
-       t->cce = tcost(t->cap, t->ce = jgetstr(t->cap,US "ce"), 1, 2, 2, 0, 0);
+       t->cce = tcost(t->cap, t->ce = jgetstr(t->cap, UC "ce"), 1, 2, 2, 0, 0);
 
-/* Make sure terminal can do absolute positioning */
+       /* Make sure terminal can do absolute positioning */
        if (t->cm)
                goto ok;
        if (t->ch && t->cv)
@@ -657,38 +657,33 @@ SCRN *nopen(CAP *cap)
        leave = 1;
        ttclose();
        signrm(0);
-#ifdef DEBUG
-       /* these are strings, but I do not know if %s is appropriate -mirabilos */
-        fprintf(stderr,"cm=%d ch=%d cv=%d ho=%d lf=%d DO=%d ll=%d up=%d UP=%d cr=%d\n",
-                       t->cm, t->ch, t->cv, t->ho, t->lf, t->DO, t->ll, t->up, t->UP, t->cr);
-#endif
        fprintf(stderr,"Sorry, your terminal can't do absolute cursor positioning.\nIt's broken\n");
        return NULL;
  ok:
 
-/* Determine if we can scroll */
+       /* Determine if we can scroll */
        if (((t->sr || t->SR) && (t->sf || t->SF) && t->cs) || ((t->al || t->AL) && (t->dl || t->DL)))
                t->scroll = 1;
        else if (baud < 38400)
                mid = 1;
 
-/* Determine if we can ins/del within lines */
+       /* Determine if we can ins/del within lines */
        if ((t->im || t->ic || t->IC) && (t->dc || t->DC))
                t->insdel = 1;
 
-/* Adjust for high baud rates */
+       /* Adjust for high baud rates */
        if (baud >= 38400) {
                t->scroll = 0;
                t->insdel = 0;
        }
 
-/* Send out terminal initialization string */
+       /* Send out terminal initialisation string */
        if (t->ti)
                texec(t->cap, t->ti, 1, 0, 0, 0, 0);
        if (!skiptop && t->cl)
                texec(t->cap, t->cl, 1, 0, 0, 0, 0);
 
-/* Initialize variable screen size dependant vars */
+       /* Initialise variable screen size-dependent vars */
        t->htab = calloc(256, sizeof(struct s_hentry));
 
        nresize(t, t->co, t->li);
@@ -707,21 +702,21 @@ void nresize(SCRN *t, int w, int h)
        t->li = h;
        t->co = w;
        if (t->sary)
-               joe_free(t->sary);
+               free(t->sary);
        if (t->updtab)
-               joe_free(t->updtab);
+               free(t->updtab);
        if (t->syntab)
-               joe_free(t->syntab);
+               free(t->syntab);
        if (t->scrn)
-               joe_free(t->scrn);
+               free(t->scrn);
        if (t->attr)
-               joe_free(t->attr);
+               free(t->attr);
        if (t->compose)
-               joe_free(t->compose);
+               free(t->compose);
        if (t->ofst)
-               joe_free(t->ofst);
+               free(t->ofst);
        if (t->ary)
-               joe_free(t->ary);
+               free(t->ary);
        t->scrn = calloc(t->li * t->co, sizeof(int));
        t->attr = calloc(t->li * t->co, sizeof(int));
        t->sary = calloc(t->li, sizeof(int));
@@ -734,9 +729,10 @@ void nresize(SCRN *t, int w, int h)
        nredraw(t);
 }
 
-/* Calculate cost of positioning the cursor using only relative cursor
- * positioning functions: t->(lf, DO, up, UP, bs, LE, RI, ta, bt) and rewriting
- * characters (to move right)
+/*
+ * Calculate cost of positioning the cursor using only relative cursor
+ * positioning functions: t->(lf, DO, up, UP, bs, LE, RI, ta, bt) and
+ * rewriting characters (to move right)
  *
  * This doesn't use the am and bw capabilities although it probably could.
  */
@@ -745,11 +741,11 @@ static int relcost(register SCRN *t, register int x, register int y, register in
 {
        int cost = 0;
 
-/* If we don't know the cursor position, force use of absolute positioning */
+       /* If we don't know the cursor position, force use of absolute positioning */
        if (oy == -1 || ox == -1)
                return 10000;
 
-/* First adjust row */
+       /* First adjust row */
        if (y > oy) {
                int dist = y - oy;
 
@@ -792,9 +788,9 @@ static int relcost(register SCRN *t, register int x, register int y, register in
                        return 10000;
        }
 
-/* Now adjust column */
+       /* Now adjust column */
 
-/* Use tabs */
+       /* Use tabs */
        if (x > ox && t->ta) {
                int dist = x - ox;
                int ntabs = (dist + ox % t->tw) / t->tw;
@@ -838,7 +834,7 @@ static int relcost(register SCRN *t, register int x, register int y, register in
                        return cost + cstover;
        }
 
-/* Use simple motions */
+       /* Use simple motions */
        if (x < ox) {
                int dist = ox - x;
 
@@ -884,9 +880,10 @@ static void cposs(register SCRN *t, register int x, register int y)
        int hy;
        int hl;
 
-/* Home y position is usually 0, but it is 'top' if we have scrolling region
- * relative addressing
- */
+       /*
+        * Home y position is usually 0, but it is 'top' if we have
+        * scrolling region relative addressing
+        */
        if (t->rr) {
                hy = t->top;
                hl = t->bot - 1;
@@ -895,14 +892,16 @@ static void cposs(register SCRN *t, register int x, register int y)
                hl = t->li - 1;
        }
 
-/* Assume best way is with only using relative cursor positioning */
+       /* Assume best way is with only using relative cursor positioning */
 
        bestcost = relcost(t, x, y, t->x, t->y);
        bestway = 0;
 
-/* Now check if combinations of absolute cursor positioning functions are
- * better (or necessary in case one or both cursor positions are unknown)
- */
+       /*
+        * Now check if combinations of absolute cursor positioning
+        * functions are better (or necessary in case one or both cursor
+        * positions are unknown)
+        */
 
        if (t->ccm < bestcost) {
                cost = tcost(t->cap, t->cm, 1, y, x, 0, 0);
@@ -996,9 +995,11 @@ static void cposs(register SCRN *t, register int x, register int y)
                }
        }
 
-/* Do absolute cursor positioning if we don't know the cursor position or
- * if it is faster than doing only relative cursor positioning
- */
+       /*
+        * Do absolute cursor positioning if we don't know the cursor
+        * position or if it is faster than doing only relative cursor
+        * positioning
+        */
 
        switch (bestway) {
        case 1:
@@ -1069,9 +1070,9 @@ static void cposs(register SCRN *t, register int x, register int y)
                break;
        }
 
-/* Use relative cursor position functions if we're not there yet */
+       /* Use relative cursor position functions if we're not there yet */
 
-/* First adjust row */
+       /* First adjust row */
        if (y > t->y) {
                /* Have to go down */
                if (!t->lf || t->cDO < (y - t->y) * t->clf) {
@@ -1094,7 +1095,7 @@ static void cposs(register SCRN *t, register int x, register int y)
                        }
        }
 
-/* Use tabs */
+       /* Use tabs */
        if (x > t->x && t->ta) {
                int ntabs = (x - t->x + t->x % t->tw) / t->tw;
                int cstunder = x % t->tw + t->cta * ntabs;
@@ -1147,7 +1148,7 @@ static void cposs(register SCRN *t, register int x, register int y)
                }
        }
 
-/* Now adjust column */
+       /* Now adjust column */
        if (x < t->x) {
                /* Have to go left */
                if (!t->bs || t->cLE < (t->x - x) * t->cbs) {
@@ -1170,28 +1171,6 @@ static void cposs(register SCRN *t, register int x, register int y)
                                ++t->x;
                        }
                }
-
-               /* if (t->cRI < x - t->x) { */
-/*             } else {
-                       int *s = t->scrn + t->x + t->y * t->co;
-                       int *a = t->attr + t->x + t->y * t->co;
-
-                       if (t->ins)
-                               clrins(t);
-                       while (x > t->x) {
-                               int atr, c;
-                               if(*s==-1) c=' ', atr=0;
-                               else c= *s, atr= *a;
-
-                               if (atr != t->attrib)
-                                       set_attr(t, atr);
-                               utf8_putc(c);
-                               ++s;
-                               ++a;
-                               ++t->x;
-                       }
-               }
-*/
        }
 }
 
@@ -1311,7 +1290,7 @@ void magic(SCRN *t, int y, int *cs, int *ca,int *s, int *a, int placex)
 
        msetI(ofst, 0, t->co);
 
-/* Build hash table */
+       /* Build hash table */
        for (x = 0; x != t->co - 1; ++x) {
                t->ary[aryx].next = htab[cs[x] & 255].next;
                t->ary[aryx].loc = x;
@@ -1319,7 +1298,7 @@ void magic(SCRN *t, int y, int *cs, int *ca,int *s, int *a, int placex)
                htab[cs[x] & 255].next = aryx++;
        }
 
-/* Build offset table */
+       /* Build offset table */
        for (x = 0; x < t->co - 1;)
                if (htab[s[x] & 255].loc >= 15)
                        ofst[x++] = t->co - 1;
@@ -1371,7 +1350,7 @@ void magic(SCRN *t, int y, int *cs, int *ca,int *s, int *a, int placex)
                        x += maxlen;
                }
 
-/* Apply scrolling commands */
+       /* Apply scrolling commands */
 
        for (x = 0; x != t->co - 1; ++x) {
                int q = ofst[x];
@@ -1619,13 +1598,13 @@ void nclose(SCRN *t)
                texec(t->cap, t->te, 1, 0, 0, 0, 0);
        ttclose();
        rmcap(t->cap);
-       joe_free(t->scrn);
-       joe_free(t->attr);
-       joe_free(t->sary);
-       joe_free(t->ofst);
-       joe_free(t->htab);
-       joe_free(t->ary);
-       joe_free(t);
+       free(t->scrn);
+       free(t->attr);
+       free(t->sary);
+       free(t->ofst);
+       free(t->htab);
+       free(t->ary);
+       free(t);
 }
 
 void nscrldn(SCRN *t, int top, int bot, int amnt)
@@ -1887,32 +1866,26 @@ void genfmt(SCRN *t, int x, int y, int ofst, const unsigned char *s, int flg)
 
        while ((c = *s++) != '\0')
                if (c == '\\') {
-                       switch (c = *s++) {
+                       switch ((c = *s++) | 0x20) {
                        case 'u':
-                       case 'U':
                                atr ^= UNDERLINE;
                                break;
                        case 'i':
-                       case 'I':
                                atr ^= INVERSE;
                                break;
                        case 'b':
-                       case 'B':
                                atr ^= BOLD;
                                break;
                        case 'd':
-                       case 'D':
                                atr ^= DIM;
                                break;
                        case 'f':
-                       case 'F':
                                atr ^= BLINK;
                                break;
-                       case 0:
-                               --s;
-                               break;
                        default: {
-                               if (col++ >= ofst) {
+                               if (!c)
+                                       --s;
+                               else if (col++ >= ofst) {
                                        outatr(locale_map, t, scrn, attr, x, y, (c&0x7F), atr);
                                        ++scrn;
                                        ++attr;
index 0b91e1b..865cce8 100644 (file)
--- a/syntax.c
+++ b/syntax.c
@@ -9,7 +9,7 @@
 #include "config.h"
 #include "types.h"
 
-__RCSID("$MirOS: contrib/code/jupp/syntax.c,v 1.20 2017/12/02 04:36:56 tg Exp $");
+__RCSID("$MirOS: contrib/code/jupp/syntax.c,v 1.21 2017/12/08 02:00:41 tg Exp $");
 
 #include <limits.h>
 #include <stdlib.h>
@@ -137,7 +137,8 @@ int parse(struct high_syntax *syntax, P *line, int state)
 
                /* Expand attribute array if necessary */
                if(attr==attr_end) {
-                       attr_buf = realloc(attr_buf,sizeof(int)*(attr_size*2));
+                       attr_buf = realloc(attr_buf,
+                           sizeof(int) * (attr_size * 2));
                        attr = attr_buf + attr_size;
                        attr_size *= 2;
                        attr_end = attr_buf + attr_size;
@@ -216,7 +217,7 @@ static struct high_state *find_state(struct high_syntax *syntax, const unsigned
        /* It doesn't exist, so create it */
        if(x==syntax->nstates) {
                int y;
-               state=malloc(sizeof(struct high_state));
+               state = malloc(sizeof(struct high_state));
                state->name=(const unsigned char *)strdup((const char *)name);
                state->no=syntax->nstates;
                state->color=FG_WHITE;
@@ -224,7 +225,8 @@ static struct high_state *find_state(struct high_syntax *syntax, const unsigned
                        /* We're the first state */
                        syntax->default_cmd.new_state = state;
                if(syntax->nstates==syntax->szstates)
-                       syntax->states=realloc(syntax->states,sizeof(struct high_state *)*(syntax->szstates*=2));
+                       syntax->states = realloc(syntax->states,
+                          sizeof(struct high_state *) * (syntax->szstates *= 2));
                syntax->states[syntax->nstates++]=state;
                for(y=0; y!=256; ++y)
                        state->cmd[y] = &syntax->default_cmd;
@@ -256,7 +258,7 @@ struct high_syntax *load_dfa(const unsigned char *name)
 
        if(!attr_buf) {
                attr_size = 1024;
-               attr_buf = malloc(sizeof(int)*attr_size);
+               attr_buf = calloc(attr_size, sizeof(int));
        }
 
        /* Find syntax table */
@@ -285,7 +287,7 @@ struct high_syntax *load_dfa(const unsigned char *name)
        syntax->name = (const unsigned char *)strdup((const char *)name);
        syntax->next = syntax_list;
        syntax_list = syntax;
-       syntax->states = malloc(sizeof(struct high_state *)*(syntax->szstates=64));
+       syntax->states = malloc(sizeof(struct high_state *) * (syntax->szstates = 64));
        syntax->sync_lines = 120;
 
        memset(clist, 0, sizeof(clist));
diff --git a/tab.c b/tab.c
index 4ab60ab..fa05042 100644 (file)
--- a/tab.c
+++ b/tab.c
@@ -8,7 +8,7 @@
 #include "config.h"
 #include "types.h"
 
-__RCSID("$MirOS: contrib/code/jupp/tab.c,v 1.11 2017/12/07 02:10:17 tg Exp $");
+__RCSID("$MirOS: contrib/code/jupp/tab.c,v 1.12 2017/12/08 02:00:41 tg Exp $");
 
 #include <sys/stat.h>
 #include <stdlib.h>
@@ -80,8 +80,8 @@ static int get_entries(TAB *tab, int prv)
        tab->files = files;
        vasort(files, tab->len);
        if (tab->type)
-               joe_free(tab->type);
-       tab->type = (unsigned char *) joe_malloc(tab->len);
+               free(tab->type);
+       tab->type = malloc(tab->len);
        for (a = 0; a != tab->len; a++) {
                struct stat buf;
                mset(&buf, 0, sizeof(struct stat));
@@ -184,8 +184,8 @@ static void rmtab(TAB *tab)
        vsrm(tab->pattern);
        varm(tab->files);
        if (tab->type)
-               joe_free(tab->type);
-       joe_free(tab);
+               free(tab->type);
+       free(tab);
 }
 /*****************************************************************************/
 /****************** The user hit return **************************************/
@@ -312,7 +312,7 @@ int cmplt(BW *bw)
        unsigned char **l;
        int ofst;
 
-       tab = (TAB *) joe_malloc(sizeof(TAB));
+       tab = malloc(sizeof(TAB));
        tab->files = NULL;
        tab->type = NULL;
        tab->list = NULL;
index f97d6d0..9ae9828 100644 (file)
--- a/termcap.c
+++ b/termcap.c
@@ -8,7 +8,7 @@
 #include "config.h"
 #include "types.h"
 
-__RCSID("$MirOS: contrib/code/jupp/termcap.c,v 1.19 2017/12/06 21:17:00 tg Exp $");
+__RCSID("$MirOS: contrib/code/jupp/termcap.c,v 1.23 2017/12/08 02:57:18 tg Exp $");
 
 #include <sys/stat.h>
 #include <stdlib.h>
@@ -39,7 +39,8 @@ static const unsigned char defentry[] = "\
 
 /* Return true if termcap line matches name */
 
-static int match(unsigned char *s, unsigned char *name)
+static int
+match(const unsigned char *s, const unsigned char *name)
 {
        if (s[0] == 0 || s[0] == '#')
                return 0;
@@ -58,13 +59,14 @@ static int match(unsigned char *s, unsigned char *name)
 
 /* Find termcap entry in a file */
 
-static unsigned char *lfind(unsigned char *s, int pos, FILE *fd, unsigned char *name)
+static unsigned char *
+lfind(unsigned char *s, int pos, FILE *fd, const unsigned char *name)
 {
        int c, x;
 
        if (!s)
                s = vsmk(1024);
     loop:
+ loop:
        while (c = getc(fd), c == ' ' || c == '\t' || c == '#')
                do {
                        c = getc(fd);
@@ -87,7 +89,7 @@ static unsigned char *lfind(unsigned char *s, int pos, FILE *fd, unsigned char *
                        else
                                return vstrunc(s, x);
                else if (c == '\r')
-                       /* do nothing */;
+                       /* nothing */;
                else {
                        s = vsset(s, x, c);
                        ++x;
@@ -100,7 +102,7 @@ static unsigned char *lfind(unsigned char *s, int pos, FILE *fd, unsigned char *
                        else
                                break;
                else if (c == '\r')
-                       /* do nothing */;
+                       /* nothing */;
                else {
                        s = vsset(s, x, c);
                        ++x;
@@ -111,7 +113,8 @@ static unsigned char *lfind(unsigned char *s, int pos, FILE *fd, unsigned char *
 
 /* Lookup termcap entry in index */
 
-static off_t findidx(FILE *file, unsigned char *name)
+static off_t
+findidx(FILE *file, const unsigned char *name)
 {
        unsigned char buf[80];
        off_t addr = 0;
@@ -148,7 +151,7 @@ CAP *getcap(unsigned char *name, unsigned int baud, void (*out) (unsigned char *
 
        if (!name && !(name = joeterm) && !(name = (unsigned char *)getenv("TERM")))
                return NULL;
-       cap = (CAP *) joe_malloc(sizeof(CAP));
+       cap = malloc(sizeof(CAP));
        cap->tbuf = vsmk(4096);
        cap->abuf = NULL;
        cap->sort = NULL;
@@ -161,18 +164,18 @@ CAP *getcap(unsigned char *name, unsigned int baud, void (*out) (unsigned char *
        }
 
 #ifdef TERMINFO
-       cap->abuf = (unsigned char *) joe_malloc(4096);
+       cap->abuf = malloc(4096);
        cap->abufp = cap->abuf;
        if (tgetent((char *)cap->tbuf, (char *)name) == 1)
                return setcap(cap, baud, out, outptr);
        else {
-               joe_free(cap->abuf);
+               free(cap->abuf);
                cap->abuf = NULL;
        }
 #endif
 
        name = vsncpy(NULL, 0, sz(name));
-       cap->sort = (struct sortentry *) joe_malloc(sizeof(struct sortentry) * (sortsiz = 64));
+       cap->sort = malloc(sizeof(struct sortentry) * (sortsiz = 64));
 
        cap->sortlen = 0;
 
@@ -212,16 +215,8 @@ CAP *getcap(unsigned char *name, unsigned int baud, void (*out) (unsigned char *
 
        cap->tbuf = vstrunc(cap->tbuf, 0);
 
     nextfile:
+ nextfile:
        if (!npbuf[y]) {
-/*
- varm(npbuf);
- vsrm(name);
- vsrm(cap->tbuf);
- joe_free(cap->sort);
- joe_free(cap);
- return 0;
-*/
                fprintf(stderr, "Couldn't load termcap entry.  Using ansi default\n");
                ti = 0;
                cap->tbuf = vsncpy(cap->tbuf, 0, sc(defentry));
@@ -258,12 +253,12 @@ CAP *getcap(unsigned char *name, unsigned int baud, void (*out) (unsigned char *
        if (sLEN(cap->tbuf) == ti)
                goto nextfile;
 
     checktc:
+ checktc:
        x = sLEN(cap->tbuf);
        do {
                cap->tbuf[x] = 0;
                while (x && cap->tbuf[--x] != ':')
-                       /* do nothing */;
+                       /* nothing */;
        } while (x && (!cap->tbuf[x + 1] || cap->tbuf[x + 1] == ':'));
 
        if (cap->tbuf[x + 1] == 't' && cap->tbuf[x + 2] == 'c' && cap->tbuf[x + 3] == '=') {
@@ -277,19 +272,19 @@ CAP *getcap(unsigned char *name, unsigned int baud, void (*out) (unsigned char *
                goto nextfile;
        }
 
     doline:
+ doline:
        pp = cap->tbuf + ti;
 
-/* Process line at pp */
+       /* Process line at pp */
 
     loop:
+ loop:
        while (*pp && *pp != ':')
                ++pp;
        if (*pp) {
                int q;
 
                *pp++ = 0;
            loop1:
+ loop1:
                if (pp[0] == ' ' || pp[0] == '\t')
                        goto loop;
                for (q = 0; pp[q] && pp[q] != '#' && pp[q] != '=' && pp[q] != '@' && pp[q] != ':'; ++q) ;
@@ -304,10 +299,8 @@ CAP *getcap(unsigned char *name, unsigned int baud, void (*out) (unsigned char *
                x = 0;
                y = cap->sortlen;
                z = -1;
-               if (!y) {
-                       /* dead store: z = 0; */
+               if (!y)
                        goto in;
-               }
                while (z != (x + y) / 2) {
                        int found;
 
@@ -331,9 +324,9 @@ CAP *getcap(unsigned char *name, unsigned int baud, void (*out) (unsigned char *
                                        goto loop;
                        }
                }
            in:
+ in:
                if (cap->sortlen == sortsiz)
-                       cap->sort = (struct sortentry *) joe_realloc(cap->sort, (sortsiz += 32) * sizeof(struct sortentry));
+                       cap->sort = realloc(cap->sort, (sortsiz += 32) * sizeof(struct sortentry));
                mmove(cap->sort + y + 1, cap->sort + y, (cap->sortlen++ - y) * sizeof(struct sortentry));
 
                cap->sort[y].name = qq;
@@ -357,7 +350,7 @@ CAP *getcap(unsigned char *name, unsigned int baud, void (*out) (unsigned char *
        varm(npbuf);
        vsrm(name);
 
-       cap->pad = jgetstr(cap, US "pc");
+       cap->pad = jgetstr(cap, UC "pc");
        if (dopadding)
                cap->dopadding = 1;
        else
@@ -370,7 +363,8 @@ CAP *getcap(unsigned char *name, unsigned int baud, void (*out) (unsigned char *
        return setcap(cap, baud, out, outptr);
 }
 
-static struct sortentry *findcap(CAP *cap, unsigned char *name)
+static struct sortentry *
+findcap(CAP *cap, const unsigned char *name)
 {
        int x, y, z;
        int found;
@@ -400,7 +394,8 @@ CAP *setcap(CAP *cap, unsigned int baud, void (*out) (unsigned char *, unsigned
        return cap;
 }
 
-int getflag(CAP *cap, unsigned char *name)
+int
+getflag(CAP *cap, const unsigned char *name)
 {
 #ifdef TERMINFO
        if (cap->abuf)
@@ -409,13 +404,15 @@ int getflag(CAP *cap, unsigned char *name)
        return findcap(cap, name) != NULL;
 }
 
-unsigned char *jgetstr(CAP *cap, unsigned char *name)
+const unsigned char *
+jgetstr(CAP *cap, const unsigned char *name)
 {
        struct sortentry *s;
 
 #ifdef TERMINFO
        if (cap->abuf)
-               return (unsigned char *)tgetstr((char *)name, (char **)&cap->abufp);
+               return (const unsigned char *)tgetstr((char *)name,
+                   (char **)&cap->abufp);
 #endif
        s = findcap(cap, name);
        if (s)
@@ -424,7 +421,8 @@ unsigned char *jgetstr(CAP *cap, unsigned char *name)
                return NULL;
 }
 
-int getnum(CAP *cap, unsigned char *name)
+int
+getnum(CAP *cap, const unsigned char *name)
 {
        struct sortentry *s;
 
@@ -434,7 +432,7 @@ int getnum(CAP *cap, unsigned char *name)
 #endif
        s = findcap(cap, name);
        if (s && s->value)
-               return atoi((char *)(s->value));
+               return atoi((const char *)(s->value));
        return -1;
 }
 
@@ -442,13 +440,14 @@ void rmcap(CAP *cap)
 {
        vsrm(cap->tbuf);
        if (cap->abuf)
-               joe_free(cap->abuf);
+               free(cap->abuf);
        if (cap->sort)
-               joe_free(cap->sort);
-       joe_free(cap);
+               free(cap->sort);
+       free(cap);
 }
 
-static unsigned char escape(unsigned char **s)
+static unsigned char
+escape(const unsigned char **s)
 {
        unsigned char c = *(*s)++;
        int i;
@@ -504,14 +503,15 @@ static int outout(int c)
 }
 #endif
 
-void texec(CAP *cap, unsigned char *s, int l, int a0, int a1, int a2, int a3)
+void
+texec(CAP *cap, const unsigned char *s, int l, int a0, int a1, int a2, int a3)
 {
        int c, tenth = 0, x;
        int args[4];
        int vars[128];
        int *a = args;
 
-/* Do nothing if there is no string */
+       /* Do nothing if there is no string */
        if (!s)
                return;
 
@@ -520,19 +520,19 @@ void texec(CAP *cap, unsigned char *s, int l, int a0, int a1, int a2, int a3)
                unsigned char *aa;
 
                outcap = cap;
-               aa = (unsigned char *)tgoto((char *)s, a1, a0);
+               aa = (unsigned char *)tgoto((const char *)s, a1, a0);
                tputs((char *)aa, l, outout);
                return;
        }
 #endif
 
-/* Copy args into array (yuk) */
+       /* Copy args into array (yuk) */
        args[0] = a0;
        args[1] = a1;
        args[2] = a2;
        args[3] = a3;
 
-/* Get tenths of MS of padding needed */
+       /* Get tenths of MS of padding needed */
        while (*s >= '0' && *s <= '9')
                tenth = tenth * 10 + *s++ - '0';
        tenth *= 10;
@@ -541,13 +541,13 @@ void texec(CAP *cap, unsigned char *s, int l, int a0, int a1, int a2, int a3)
                tenth += *s++ - '0';
        }
 
-/* Check if we have to multiply by number of lines */
+       /* Check if we have to multiply by number of lines */
        if (*s == '*') {
                ++s;
                tenth *= l;
        }
 
-/* Output string */
+       /* Output string */
        while ((c = *s++) != '\0')
                if (c == '%' && *s) {
                        switch (x = a[0], c = escape(&s)) {
@@ -687,9 +687,9 @@ static void cst(unsigned char *ptr, unsigned char c)
        ++total;
 }
 
-int tcost(CAP *cap, unsigned char *s, int l, int a0, int a1, int a2, int a3)
+int tcost(CAP *cap, const unsigned char *s, int l, int a0, int a1, int a2, int a3)
 {
-       void (*out) (unsigned char *, unsigned char) = cap->out;
+       void (*out)(unsigned char *, unsigned char) = cap->out;
 
        if (!s)
                return 10000;
@@ -706,7 +706,8 @@ static void cpl(unsigned char *ptr, unsigned char c)
        ssp = vsadd(ssp, c);
 }
 
-unsigned char *tcompile(CAP *cap, unsigned char *s, int a0, int a1, int a2, int a3)
+unsigned char *
+tcompile(CAP *cap, const unsigned char *s, int a0, int a1, int a2, int a3)
 {
        void (*out) (unsigned char *, unsigned char) = cap->out;
        int divider = cap->div;
index a06410f..89a0dc3 100644 (file)
--- a/termcap.h
+++ b/termcap.h
@@ -9,7 +9,7 @@
 #define _JOE_TERMCAP_H 1
 
 #ifdef EXTERN
-__IDSTRING(rcsid_termcap_h, "$MirOS: contrib/code/jupp/termcap.h,v 1.8 2017/12/06 23:17:35 tg Exp $");
+__IDSTRING(rcsid_termcap_h, "$MirOS: contrib/code/jupp/termcap.h,v 1.9 2017/12/08 02:46:46 tg Exp $");
 #endif
 
 /* CAP *getcap(char *s,int baud,void (*out)(void *outptr,char c),void *outptr);
@@ -64,21 +64,21 @@ CAP *setcap(CAP *cap, unsigned int baudrate, void (*out) (unsigned char *, unsig
  * the buffer used to load the termcap entry.  It should not be modified or
  * freed.
  */
-unsigned char *jgetstr(CAP *cap, unsigned char *name);
+const unsigned char *jgetstr(CAP *cap, const unsigned char *name);
 
 /* int getflag(CAP *cap,char *name);
  *
  * Return true if the named capability is found in 'cap'.  A fast binary
  * search is used to lookup the capability.
  */
-int getflag(CAP *cap, unsigned char *name);
+int getflag(CAP *cap, const unsigned char *name);
 
 /* int getnum(CAP *cap,char *name);
  *
  * Return value of numeric capability or return -1 if it's not found.  A fast
  * binary search is used to lookup the capability.
  */
-int getnum(CAP *cap, unsigned char *name);
+int getnum(CAP *cap, const unsigned char *name);
 
 /* void rmcap(CAP *cap);
  *
@@ -102,7 +102,8 @@ void rmcap(CAP *cap);
 
    'a0' - 'a1' are the arguments for the string
 */
-void texec(CAP *cap, unsigned char *s, int l, int a0, int a1, int a2, int a3);
+void texec(CAP *cap, const unsigned char *s, int l,
+    int a0, int a1, int a2, int a3);
 
 /* int tcost(CAP *cap,char *str, int l, int a0, int a1, int a2, int a3);
    Return cost in number of characters which need to be sent
@@ -120,7 +121,8 @@ void texec(CAP *cap, unsigned char *s, int l, int a0, int a1, int a2, int a3);
 
    'a0' - 'a3' are arguements passed to the string
 */
-int tcost(CAP *cap, unsigned char *s, int l, int a0, int a1, int a2, int a3);
+int tcost(CAP *cap, const unsigned char *s, int l,
+    int a0, int a1, int a2, int a3);
 
 /* char *tcompile(CAP *cap,char *str,int a0,int a1,int a2,int a3);
 
@@ -128,7 +130,8 @@ int tcost(CAP *cap, unsigned char *s, int l, int a0, int a1, int a2, int a3);
    string (see vs.h) containing the compiled string capability.
    Pad characters are not placed in the string.
 */
-unsigned char *tcompile(CAP *cap, unsigned char *s, int a0, int a1, int a2, int a3);
+unsigned char *tcompile(CAP *cap, const unsigned char *s,
+    int a0, int a1, int a2, int a3);
 
 int tgetent(char *, const char *);
 int tgetflag(char *);
index 763cc05..010d39f 100644 (file)
--- a/termidx.c
+++ b/termidx.c
@@ -9,7 +9,7 @@
 #include "config.h"
 #include "types.h"
 
-__RCSID("$MirOS: contrib/code/jupp/termidx.c,v 1.6 2017/12/02 02:07:33 tg Exp $");
+__RCSID("$MirOS: contrib/code/jupp/termidx.c,v 1.7 2017/12/08 02:28:06 tg Exp $");
 
 #include <string.h>
 
@@ -18,7 +18,7 @@ static void gen(unsigned char *s, FILE *fd)
        int c, x;
        off_t addr = 0, oaddr;
 
     loop:
+ loop:
        while (c = getc(fd), c == ' ' || c == '\t' || c == '#')
                do {
                        c = getc(fd);
diff --git a/tty.c b/tty.c
index df7e3cb..c24bde6 100644 (file)
--- a/tty.c
+++ b/tty.c
@@ -8,7 +8,7 @@
 #include "config.h"
 #include "types.h"
 
-__RCSID("$MirOS: contrib/code/jupp/tty.c,v 1.32 2017/12/06 23:02:05 tg Exp $");
+__RCSID("$MirOS: contrib/code/jupp/tty.c,v 1.35 2017/12/08 02:28:06 tg Exp $");
 
 #ifdef HAVE_SYS_PARAM_H
 #include <sys/param.h>
@@ -401,7 +401,7 @@ baud_reset(int bbaud)
                Baud = baud;
        upc = DIVIDEND / baud;
        if (obuf)
-               joe_free(obuf);
+               free(obuf);
        if ((TIMES * upc) == 0)
                obufsiz = 4096;
        else {
@@ -411,7 +411,7 @@ baud_reset(int bbaud)
        }
        if (!obufsiz)
                obufsiz = 1;
-       obuf = (unsigned char *) joe_malloc(obufsiz);
+       obuf = malloc(obufsiz);
 }
 
 /* Close terminal */
@@ -913,9 +913,9 @@ static unsigned char *getpty(int *ptyfd)
        static unsigned char name[32];
        int ttyfd;
 
-        if (openpty(ptyfd, &ttyfd, name, NULL, NULL) == 0)
-           return(name);
-        else
+       if (openpty(ptyfd, &ttyfd, name, NULL, NULL) == 0)
+          return(name);
+       else
           return (NULL);
 }
 
@@ -1010,8 +1010,9 @@ static unsigned char **newenv(unsigned char **old, unsigned char *s)
        unsigned char **new;
        int x, y, z;
 
-       for (x = 0; old[x]; ++x) ;
-       new = (unsigned char **) joe_malloc((x + 2) * sizeof(unsigned char *));
+       for (x = 0; old[x]; ++x)
+               /* nothing */;
+       new = malloc((x + 2) * sizeof(unsigned char *));
 
        for (x = 0, y = 0; old[x]; ++x) {
                for (z = 0; s[z] != '='; ++z)
@@ -1212,7 +1213,7 @@ mpxmk(int *ptyfd, const unsigned char *cmd, unsigned char **args,
                   mode.  This allows us to read any remaining data- then
                   read returns 0 and we know we're done. */
 
            loop:
+ loop:
                pack.who = m;
                pack.ch = 0;
 
diff --git a/tty.h b/tty.h
index bc232c7..5b8c4b6 100644 (file)
--- a/tty.h
+++ b/tty.h
@@ -9,7 +9,7 @@
 #define _JOE_TTY_H 1
 
 #ifdef EXTERN_CMD_C
-__IDSTRING(rcsid_tty_h, "$MirOS: contrib/code/jupp/tty.h,v 1.13 2017/12/06 23:02:05 tg Exp $");
+__IDSTRING(rcsid_tty_h, "$MirOS: contrib/code/jupp/tty.h,v 1.14 2017/12/08 02:04:01 tg Exp $");
 #endif
 
 /* void ttopen(void);  Open the tty (attached to stdin) for use inside of JOE
@@ -85,7 +85,11 @@ extern int obufp;
 extern int obufsiz;
 extern unsigned char *obuf;
 
-#define ttputc(c) { obuf[obufp++] = (c); if(obufp == obufsiz) ttflsh(); }
+#define ttputc(c) do {         \
+       obuf[obufp++] = (c);    \
+       if (obufp == obufsiz)   \
+               ttflsh();       \
+} while (/* CONSTCOND */ 0)
 
 /* void ttputs(char *s);  Write a string to the output buffer.  Any time the
  * output buffer gets full, call ttflsh()
@@ -135,7 +139,7 @@ extern int leave;
  * It is called with 'n' set to the number of the caught signal or 0 if the
  * input closed.
  */
-RETSIGTYPE ttsig(int sig)__attribute__((__noreturn__));
+RETSIGTYPE ttsig(int sig) __attribute__((__noreturn__));
 
 /* void ttgtsz(int *x,int *y);  Get size of screen from ttsize/winsize
  * structure */
@@ -168,7 +172,9 @@ void signrm(int);
  *   Function to call when process dies in 'die'
  *   The first arg passed to func and die is object and dieobj
  */
-MPX *mpxmk(int *ptyfd, const unsigned char *cmd, unsigned char **args, void (*func)(B*, unsigned char *, int), void *object, void (*die)(B*), void *dieobj);
+MPX *mpxmk(int *ptyfd, const unsigned char *cmd, unsigned char **args,
+    void (*func)(B *, unsigned char *, int), void *object,
+    void (*die)(B *), void *dieobj);
 
 
 extern int noxon;
diff --git a/tw.c b/tw.c
index 579eb01..0fb234e 100644 (file)
--- a/tw.c
+++ b/tw.c
@@ -8,7 +8,7 @@
 #include "config.h"
 #include "types.h"
 
-__RCSID("$MirOS: contrib/code/jupp/tw.c,v 1.16 2017/12/07 02:10:17 tg Exp $");
+__RCSID("$MirOS: contrib/code/jupp/tw.c,v 1.20 2017/12/08 03:24:15 tg Exp $");
 
 #include <stdlib.h>
 #include <string.h>
@@ -115,7 +115,7 @@ get_context(BW *bw)
                p_goto_bol(p);
                if (!pisindent(p) && !pisblank(p)) {
                        /* Uncomment to get the last line instead of the first line (see above)
                      next:
+ next:
                        */
                        brzs(p,stdbuf,stdsiz-1);
                        /* Ignore comment and block structuring lines */
@@ -124,19 +124,18 @@ get_context(BW *bw)
                            (stdbuf[0]=='\f') ||
                            (stdbuf[0]=='/' && stdbuf[1]=='/') ||
                            (stdbuf[0]=='#') ||
-                           (stdbuf[0]=='b' && stdbuf[1]=='e' && stdbuf[2]=='g' && stdbuf[3]=='i' && stdbuf[4]=='n') ||
-                           (stdbuf[0]=='B' && stdbuf[1]=='E' && stdbuf[2]=='G' && stdbuf[3]=='I' && stdbuf[4]=='N') ||
+                           ((stdbuf[0] | 0x20) == 'b' && (stdbuf[1] | 0x20) == 'e' && (stdbuf[2] | 0x20) == 'g' && (stdbuf[3] | 0x20) == 'i' && (stdbuf[4] | 0x20) == 'n') ||
                            (stdbuf[0]=='-' && stdbuf[1]=='-') ||
                            stdbuf[0]==';')) {
-                               strlcpy(buf1,stdbuf,stdsiz);
+                               strlcpy(buf1,stdbuf,stdsiz);
                                /* Uncomment to get the last line instead of the first line (see above)
-                               if (pprevl(p)) {
-                                       p_goto_bol(p);
-                                       if (!pisindent(p) && !pisblank(p))
-                                               goto next;
-                               }
-                               */
-                               break;
+                               if (pprevl(p)) {
+                                       p_goto_bol(p);
+                                       if (!pisindent(p) && !pisblank(p))
+                                               goto next;
+                               }
+                               */
+                               break;
                        }
 
                }
@@ -483,7 +482,7 @@ int usplitw(BW *bw)
        new->object.bw = newbw = bwmk(new, bw->b, 0);
        ++bw->b->count;
        newbw->offset = bw->offset;
-       newbw->object = (void *) (newtw = (TW *) joe_malloc(sizeof(TW)));
+       newbw->object = newtw = malloc(sizeof(TW));
        iztw(newtw, new->y);
        pset(newbw->top, bw->top);
        pset(newbw->cursor, bw->cursor);
@@ -509,7 +508,7 @@ int uduptw(BW *bw)
        new->object.bw = newbw = bwmk(new, bw->b, 0);
        ++bw->b->count;
        newbw->offset = bw->offset;
-       newbw->object = (void *) (newtw = (TW *) joe_malloc(sizeof(TW)));
+       newbw->object = newtw = malloc(sizeof(TW));
        iztw(newtw, new->y);
        pset(newbw->top, bw->top);
        pset(newbw->cursor, bw->cursor);
@@ -572,7 +571,7 @@ int abortit(BW *bw)
                }
        bwrm(bw);
        vsrm(tw->stalin);
-       joe_free(tw);
+       free(tw);
        w->object.base = NULL;
        wabort(w);      /* Eliminate this window and it's children */
        return 0;
@@ -584,7 +583,7 @@ static int naborttw(BW *bw, int k, void *object, int *notify)
 {
        if (notify)
                *notify = 1;
-       if (k != 'y' && k != 'Y')
+       if ((k | 0x20) != 'y')
                return -1;
 
        genexmsg(bw, 0, NULL);
@@ -595,7 +594,7 @@ static int naborttw1(BW *bw, int k, void *object, int *notify)
 {
        if (notify)
                *notify = 1;
-       if (k != 'y' && k != 'Y')
+       if ((k | 0x20) != 'y')
                return -1;
 
        if (!exmsg) genexmsg(bw, 0, NULL);
@@ -696,7 +695,7 @@ int utw1(BASE *b)
 
        do {
                yn = 0;
            loop:
+ loop:
                do {
                        wnext(t);
                } while (t->curwin->main == mainw && t->curwin != starting);
@@ -743,7 +742,7 @@ BW *wmktw(SCREEN *t, B *b)
        w = wcreate(t, &watomtw, NULL, NULL, NULL, t->h, NULL, NULL);
        wfit(w->t);
        w->object.bw = bw = bwmk(w, b, 0);
-       bw->object = (void *)(tw = (TW *)joe_malloc(sizeof(TW)));
+       bw->object = tw = malloc(sizeof(TW));
        iztw(tw, w->y);
        return bw;
 }
diff --git a/types.h b/types.h
index 9d60c99..e4a257a 100644 (file)
--- a/types.h
+++ b/types.h
@@ -2,7 +2,7 @@
 #define _JOE_TYPES_H
 
 #ifdef EXTERN
-__IDSTRING(rcsid_types_h, "$MirOS: contrib/code/jupp/types.h,v 1.26 2017/12/07 02:13:05 tg Exp $");
+__IDSTRING(rcsid_types_h, "$MirOS: contrib/code/jupp/types.h,v 1.28 2017/12/08 02:46:46 tg Exp $");
 #endif
 
 /* Prefix to make string constants unsigned */
@@ -351,11 +351,11 @@ struct scrn {
        int     li;             /* Screen height */
        int     co;             /* Screen width */
 
-       unsigned char   *ti;            /* Initialization string */
-       unsigned char   *cl;            /* Home and clear screen... really an
-                                  init. string */
-       unsigned char   *cd;            /* Clear to end of screen */
-       unsigned char   *te;            /* Restoration string */
+       const unsigned char *ti;        /* Initialisation string */
+       const unsigned char *cl;        /* Home and clear screen... really an
+                                          init. string */
+       const unsigned char *cd;        /* Clear to end of screen */
+       const unsigned char *te;        /* Restoration string */
 
        int     haz;            /* Terminal can't print ~s */
        int     os;             /* Terminal overstrikes */
@@ -364,73 +364,73 @@ struct scrn {
        int     am;             /* Terminal has autowrap, but not magicwrap */
        int     xn;             /* Terminal has magicwrap */
 
-       unsigned char   *so;            /* Enter standout (inverse) mode */
-       unsigned char   *se;            /* Exit standout mode */
+       const unsigned char *so;        /* Enter standout (inverse) mode */
+       const unsigned char *se;        /* Exit standout mode */
 
-       unsigned char   *us;            /* Enter underline mode */
-       unsigned char   *ue;            /* Exit underline mode */
-       unsigned char   *uc;            /* Single time underline character */
+       const unsigned char *us;        /* Enter underline mode */
+       const unsigned char *ue;        /* Exit underline mode */
+       const unsigned char *uc;        /* Single time underline character */
 
        int     ms;             /* Ok to move when in standout/underline mode */
 
-       unsigned char   *mb;            /* Enter blinking mode */
-       unsigned char   *md;            /* Enter bold mode */
-       unsigned char   *mh;            /* Enter dim mode */
-       unsigned char   *mr;            /* Enter inverse mode */
-       unsigned char   *me;            /* Exit above modes */
+       const unsigned char *mb;        /* Enter blinking mode */
+       const unsigned char *md;        /* Enter bold mode */
+       const unsigned char *mh;        /* Enter dim mode */
+       const unsigned char *mr;        /* Enter inverse mode */
+       const unsigned char *me;        /* Exit above modes */
 
-       unsigned char   *Sb;            /* Set background color */
-       unsigned char   *Sf;            /* Set foregrond color */
+       const unsigned char *Sb;        /* Set background color */
+       const unsigned char *Sf;        /* Set foregrond color */
        int     ut;             /* Screen erases with background color */
 
        int     da, db;         /* Extra lines exist above, below */
-       unsigned char   *al, *dl, *AL, *DL;     /* Insert/delete lines */
-       unsigned char   *cs;            /* Set scrolling region */
+       const unsigned char *al, *dl, *AL, *DL; /* Insert/delete lines */
+       const unsigned char *cs;                /* Set scrolling region */
        int     rr;             /* Set for scrolling region relative addressing */
-       unsigned char   *sf, *SF, *sr, *SR;     /* Scroll */
+       const unsigned char *sf, *SF, *sr, *SR; /* Scroll */
 
-       unsigned char   *dm, *dc, *DC, *ed;     /* Delete characters */
-       unsigned char   *im, *ic, *IC, *ip, *ei;        /* Insert characters */
+       const unsigned char *dm, *dc, *DC, *ed; /* Delete characters */
+       const unsigned char *im, *ic, *IC, *ip, *ei;    /* Insert characters */
        int     mi;             /* Set if ok to move while in insert mode */
 
-       unsigned char   *bs;            /* Move cursor left 1 */
+       const unsigned char *bs;        /* Move cursor left 1 */
        int     cbs;
-       unsigned char   *lf;            /* Move cursor down 1 */
+       const unsigned char *lf;        /* Move cursor down 1 */
        int     clf;
-       unsigned char   *up;            /* Move cursor up 1 */
+       const unsigned char *up;        /* Move cursor up 1 */
        int     cup;
-       unsigned char   *nd;            /* Move cursor right 1 */
+       const unsigned char *nd;        /* Move cursor right 1 */
 
-       unsigned char   *ta;            /* Move cursor to next tab stop */
+       const unsigned char *ta;        /* Move cursor to next tab stop */
        int     cta;
-       unsigned char   *bt;            /* Move cursor to previous tab stop */
+       const unsigned char *bt;        /* Move cursor to previous tab stop */
        int     cbt;
-       int     tw;             /* Tab width */
+       int     tw;                     /* Tab width */
 
-       unsigned char   *ho;            /* Home cursor to upper left */
+       const unsigned char *ho;        /* Home cursor to upper left */
        int     cho;
-       unsigned char   *ll;            /* Home cursor to lower left */
+       const unsigned char *ll;        /* Home cursor to lower left */
        int     cll;
-       unsigned char   *cr;            /* Move cursor to left edge */
+       const unsigned char *cr;        /* Move cursor to left edge */
        int     ccr;
-       unsigned char   *RI;            /* Move cursor right n */
+       const unsigned char *RI;        /* Move cursor right n */
        int     cRI;
-       unsigned char   *LE;            /* Move cursor left n */
+       const unsigned char *LE;        /* Move cursor left n */
        int     cLE;
-       unsigned char   *UP;            /* Move cursor up n */
+       const unsigned char *UP;        /* Move cursor up n */
        int     cUP;
-       unsigned char   *DO;            /* Move cursor down n */
+       const unsigned char *DO;        /* Move cursor down n */
        int     cDO;
-       unsigned char   *ch;            /* Set cursor column */
+       const unsigned char *ch;        /* Set cursor column */
        int     cch;
-       unsigned char   *cv;            /* Set cursor row */
+       const unsigned char *cv;        /* Set cursor row */
        int     ccv;
-       unsigned char   *cV;            /* Goto beginning of specified line */
+       const unsigned char *cV;        /* Goto beginning of specified line */
        int     ccV;
-       unsigned char   *cm;            /* Set cursor row and column */
+       const unsigned char *cm;        /* Set cursor row and column */
        int     ccm;
 
-       unsigned char   *ce;            /* Clear to end of line */
+       const unsigned char *ce;        /* Clear to end of line */
        int     cce;
 
        /* Basic abilities */
@@ -473,7 +473,7 @@ struct cap {
 
        int     div;            /* tenths of MS per char */
        int     baud;           /* Baud rate */
-       unsigned char   *pad;           /* Padding string or NULL to use NUL */
+       const unsigned char *pad;       /* Padding string or NULL to use NUL */
        void    (*out) (unsigned char *, unsigned char);                /* Character output routine */
        void    *outptr;        /* First arg passed to output routine.  Second
                                   arg is character to write */
@@ -557,7 +557,7 @@ struct undorec {
        long    len;            /* Length of insert or delete */
        int     del;            /* Set if this is a delete */
        B       *big;           /* Set to buffer containing a large amount of deleted data */
-       unsigned char   *small;         /* Set to malloc block containg a small amount of deleted data */
+       unsigned char *small;   /* Set to malloc block containg a small amount of deleted data */
 };
 
 struct undo {
index c65d6e6..fcddbb4 100644 (file)
--- a/ublock.c
+++ b/ublock.c
@@ -8,7 +8,7 @@
 #include "config.h"
 #include "types.h"
 
-__RCSID("$MirOS: contrib/code/jupp/ublock.c,v 1.24 2017/12/06 23:58:37 tg Exp $");
+__RCSID("$MirOS: contrib/code/jupp/ublock.c,v 1.30 2017/12/08 02:28:07 tg Exp $");
 
 #include <sys/wait.h>
 #include <limits.h>
@@ -586,43 +586,34 @@ int ublkcpy(BW *bw)
 
 int dowrite(BW *bw, unsigned char *s, void *object, int *notify)
 {
+       int fl;
+       int ret = 0;
+
        if (notify)
                *notify = 1;
-       if (markv(1)) {
-               if (square) {
-                       int fl;
-                       int ret = 0;
-                       B *tmp = pextrect(markb,
-                                         markk->line - markb->line + 1,
-                                         markk->xcol);
-
-                       if ((fl = bsave(tmp->bof, s, tmp->eof->byte, 0)) != 0) {
-                               msgnw(bw->parent, msgs[-fl]);
-                               ret = -1;
-                       }
-                       brm(tmp);
-                       if (lightoff)
-                               unmark(bw);
-                       vsrm(s);
-                       return ret;
-               } else {
-                       int fl;
-                       int ret = 0;
-
-                       if ((fl = bsave(markb, s, markk->byte - markb->byte, 0)) != 0) {
-                               msgnw(bw->parent, msgs[-fl]);
-                               ret = -1;
-                       }
-                       if (lightoff)
-                               unmark(bw);
-                       vsrm(s);
-                       return ret;
-               }
-       } else {
+       if (!markv(1)) {
                vsrm(s);
                msgnw(bw->parent, UC "No block");
-               return -1;
+               return (-1);
        }
+       if (square) {
+               B *tmp = pextrect(markb,
+                                 markk->line - markb->line + 1,
+                                 markk->xcol);
+
+               fl = bsave(tmp->bof, s, tmp->eof->byte, 0);
+               brm(tmp);
+       } else {
+               fl = bsave(markb, s, markk->byte - markb->byte, 0);
+       }
+       if (fl != 0) {
+               msgnw(bw->parent, msgs[-fl]);
+               ret = -1;
+       }
+       if (lightoff)
+               unmark(bw);
+       vsrm(s);
+       return (ret);
 }
 
 /* Set highlighted block on a program block */
@@ -647,7 +638,7 @@ void setindent(BW *bw)
        } while (pisindent(p) >= indent || pisblank(p));
        pnextl(p);
        /* Maybe skip blank lines at beginning */
     done:
+ done:
        p_goto_bol(p);
        p->xcol = piscol(p);
        if (markb)
@@ -871,7 +862,7 @@ int doinsf(BW *bw, unsigned char *s, void *object, int *notify)
 {
        if (notify)
                *notify = 1;
-       if (square)
+       if (square) {
                if (markv(1)) {
                        B *tmp;
                        long width = markk->xcol - markb->xcol;
@@ -884,6 +875,7 @@ int doinsf(BW *bw, unsigned char *s, void *object, int *notify)
                        if (error) {
                                msgnw(bw->parent, msgs[-error]);
                                brm(tmp);
+                               vsrm(s);
                                return -1;
                        }
                        if (piscol(tmp->eof))
@@ -904,10 +896,13 @@ int doinsf(BW *bw, unsigned char *s, void *object, int *notify)
                        }
                        brm(tmp);
                        updall();
+                       vsrm(s);
                        return 0;
                } else {
+                       vsrm(s);
                        msgnw(bw->parent, UC "No block");
                        return -1;
+               }
        } else {
                int ret = 0;
                B *tmp = bload(s);
@@ -968,18 +963,20 @@ static int dofilt(BW *bw, unsigned char *s, void *object, int *notify)
                flg = 1;
                goto ok;
        } if (!markv(1)) {
+               vsrm(s);
                msgnw(bw->parent, UC "No block");
                return -1;
        }
-      ok:
-
+ ok:
        if (pipe(fr)) {
+               vsrm(s);
                msgnw(bw->parent, UC "Pipe error");
                return (-1);
        }
        if ((tf = mktmp(NULL, &fw)) == NULL) {
                close(fr[0]);
                close(fr[1]);
+               vsrm(s);
                msgnw(bw->parent, UC "Cannot create temporary file");
                return (-1);
        }
@@ -1138,8 +1135,8 @@ int ulower(BW *bw)
 {
        if (markv(1)) {
                P *q;
-               P *p;
-               int c;
+               P *p;
+               int c;
                B *b = bcpy(markb,markk);
                /* Leave one character in buffer to keep pointers set properly... */
                q = pdup(markk);
@@ -1168,8 +1165,8 @@ int uupper(BW *bw)
 {
        if (markv(1)) {
                P *q;
-               P *p;
-               int c;
+               P *p;
+               int c;
                B *b = bcpy(markb,markk);
                q = pdup(markk);
                prgetc(q);
diff --git a/uedit.c b/uedit.c
index dcb6698..714ce25 100644 (file)
--- a/uedit.c
+++ b/uedit.c
@@ -8,7 +8,7 @@
 #include "config.h"
 #include "types.h"
 
-__RCSID("$MirOS: contrib/code/jupp/uedit.c,v 1.28 2017/12/07 02:10:18 tg Exp $");
+__RCSID("$MirOS: contrib/code/jupp/uedit.c,v 1.30 2017/12/08 03:24:16 tg Exp $");
 
 #include <string.h>
 
@@ -1218,16 +1218,16 @@ static int doquote(BW *bw, int c, void *object, int *notify)
                                return -1;
                        else
                                return 0;
-               } else if (c == 'u' || c == 'U') {
+               } else if ((c | 0x20) == 'u') {
                        if (bw->b->o.charmap->type)
                                goto unopoo;
  uhex_uni:
                        if (!wmkpw(bw->parent, UC "Unicode (ISO-10646) character in hex (^C to abort): ", &unicodehist, dounicode,
-                                  NULL, NULL, NULL, NULL, NULL, locale_map))
+                                  NULL, NULL, NULL, NULL, NULL, locale_map))
                                return 0;
                        else
                                return -1;
-               } else if (c == 'r' || c == 'R') {
+               } else if ((c | 0x20) == 'r') {
                        if (!bw->b->o.charmap->type)
                                goto unopoo;
  uhex_raw:
@@ -1236,12 +1236,12 @@ static int doquote(BW *bw, int c, void *object, int *notify)
                                return -1;
                        else
                                return 0;
-               } else if (c == 'x' || c == 'X') {
+               } else if ((c | 0x20) == 'x') {
                        if (bw->b->o.charmap->type)
                                goto uhex_uni;
                        else
                                goto uhex_raw;
-               } else if (c == 'o' || c == 'O') {
+               } else if ((c | 0x20) == 'o') {
                        quotestate = 5;
                        if (!mkqwna(bw->parent, sc("ASCII 0---"), doquote, NULL, NULL, notify))
                                return -1;
diff --git a/ufile.c b/ufile.c
index 2a00bee..10c0291 100644 (file)
--- a/ufile.c
+++ b/ufile.c
@@ -9,7 +9,7 @@
 #include "config.h"
 #include "types.h"
 
-__RCSID("$MirOS: contrib/code/jupp/ufile.c,v 1.19 2017/12/07 02:10:18 tg Exp $");
+__RCSID("$MirOS: contrib/code/jupp/ufile.c,v 1.25 2017/12/08 03:24:16 tg Exp $");
 
 #include <sys/stat.h>
 #include <fcntl.h>
@@ -276,7 +276,8 @@ static struct savereq *
 mksavereq(int (*callback)(BW *, struct savereq *, int, int *),
     unsigned char *name, B *first, int dorename)
 {
-       struct savereq *req = (struct savereq *) joe_malloc(sizeof(struct savereq));
+       struct savereq *req = malloc(sizeof(struct savereq));
+
        req->callback = callback;
        req->name = name;
        req->first = first;
@@ -288,13 +289,13 @@ mksavereq(int (*callback)(BW *, struct savereq *, int, int *),
 static void rmsavereq(struct savereq *req)
 {
        vsrm(req->name);
-       joe_free(req);
+       free(req);
 }
 
 static int saver(BW *bw, int c, struct savereq *req, int *notify)
 {
        int fl;
-       if (c == 'n' || c == 'N') {
+       if ((c | 0x20) == 'n') {
                msgnw(bw->parent, UC "Couldn't make backup file... file not saved");
                if (req->callback) {
                        return req->callback(bw, req, -1, notify);
@@ -306,7 +307,7 @@ static int saver(BW *bw, int c, struct savereq *req, int *notify)
                        return -1;
                }
        }
-       if (c != 'y' && c != 'Y') {
+       if ((c | 0x20) != 'y') {
                if (mkqw(bw->parent, sc("Could not make backup file.  Save anyway (y,n,^C)? "), saver, NULL, req, notify)) {
                        return 0;
                } else {
@@ -336,7 +337,7 @@ static int saver(BW *bw, int c, struct savereq *req, int *notify)
                }
        } else {
                if (req->rename) {
-                       joe_free(bw->b->name);
+                       free(bw->b->name);
                        bw->b->name = 0;
                }
                if (!bw->b->name)
@@ -385,9 +386,9 @@ static int dosave(BW *bw, struct savereq *req, int *notify)
 
 static int dosave2(BW *bw, int c, struct savereq *req, int *notify)
 {
-       if (c == 'y' || c == 'Y') {
+       if ((c | 0x20) == 'y') {
                return dosave(bw, req, notify);
-       } else if (c == 'n' || c == 'N') {
+       } else if ((c | 0x20) == 'n') {
                if (notify) {
                        *notify = 1;
                }
@@ -405,9 +406,9 @@ static int dosave2(BW *bw, int c, struct savereq *req, int *notify)
 
 static int dosave2a(BW *bw, int c, struct savereq *req, int *notify)
 {
-       if (c == 'y' || c == 'Y') {
+       if ((c | 0x20) == 'y') {
                return dosave(bw, req, notify);
-       } else if (c == 'n' || c == 'N') {
+       } else if ((c | 0x20) == 'n') {
                if (notify) {
                        *notify = 1;
                }
@@ -479,102 +480,68 @@ int usave(BW *bw)
 /* Load file to edit */
 
 static int
-doedit1(BW *bw,int c,unsigned char *s,int *notify)
+doedit1(BW *bw, int c, unsigned char *s, int *notify)
 {
        int ret = 0;
        int er;
        void *object;
        W *w;
        B *b;
-       if (c=='y' || c=='Y') {
-               /* Reload from file */
 
-               if (notify) {
-                       *notify = 1;
-               }
-
-               b = bfind_reload(s);
-               er = error;
-               if (bw->b->count >= 1 && (bw->b->changed || bw->b->name)) {
-                       if (orphan) {
-                               orphit(bw);
-                       } else {
-                               if (uduptw(bw)) {
-                                       brm(b);
-                                       return -1;
-                               }
-                               bw = maint->curwin->object.bw;
-                       }
-               }
-               if (er) {
-                       msgnwt(bw->parent, msgs[-er]);
-                       if (er != -1) {
-                               ret = -1;
-                       }
-               }
-               object = bw->object;
-               w = bw->parent;
-               bwrm(bw);
-               w->object.bw = bw = bwmk(w, b, 0);
-               wredraw(bw->parent);
-               bw->object = object;
-               vsrm(s);
-               if (er == -1 && bw->o.mnew) {
-                       exemac(bw->o.mnew);
-               }
-               if (er == 0 && bw->o.mold) {
-                       exemac(bw->o.mold);
-               }
-               return ret;
-       } else if(c=='n' || c=='N') {
+       switch (c | 0x20) {
+       case 'y':
+               /* Reload from file */
+               c = 1;
+               break;
+       case 'n':
                /* Edit already loaded buffer */
+               c = 0;
+               break;
+       default:
+               /* Ask what todo */
+               /* FIXME: need abort handler to prevent leak */
+               if (mkqw(bw->parent, sc("Load original file from disk (y,n,^C)? "), doedit1, NULL, s, notify))
+                       return (0);
+               vsrm(s);
+               return (-1);
+       }
 
-               if (notify) {
-                       *notify = 1;
-               }
+       if (notify)
+               *notify = 1;
 
-               b = bfind(s);
-               er = error;
-               if (bw->b->count == 1 && (bw->b->changed || bw->b->name)) {
-                       if (orphan) {
-                               orphit(bw);
-                       } else {
-                               if (uduptw(bw)) {
-                                       brm(b);
-                                       return -1;
-                               }
-                               bw = maint->curwin->object.bw;
-                       }
-               }
-               if (er) {
-                       msgnwt(bw->parent, msgs[-er]);
-                       if (er != -1) {
-                               ret = -1;
+       b = c ? bfind_reload(s) : bfind(s);
+       er = error;
+       c = c ? (bw->b->count >= 1) : (bw->b->count == 1);
+
+       if (c && (bw->b->changed || bw->b->name)) {
+               if (orphan) {
+                       orphit(bw);
+               } else {
+                       if (uduptw(bw)) {
+                               brm(b);
+                               vsrm(s);
+                               return (-1);
                        }
+                       bw = maint->curwin->object.bw;
                }
-               object = bw->object;
-               w = bw->parent;
-               bwrm(bw);
-               w->object.bw = bw = bwmk(w, b, 0);
-               wredraw(bw->parent);
-               bw->object = object;
-               vsrm(s);
-               if (er == -1 && bw->o.mnew) {
-                       exemac(bw->o.mnew);
-               }
-               if (er == 0 && bw->o.mold) {
-                       exemac(bw->o.mold);
-               }
-               return ret;
-       } else {
-               /* FIXME: need abort handler to prevent leak */
-               if (mkqw(bw->parent, sc("Load original file from disk (y,n,^C)? "), doedit1, NULL, s, notify))
-                       return 0;
-               else {
-                       vsrm(s);
-                       return -1;
-               }
        }
+       if (er) {
+               msgnwt(bw->parent, msgs[-er]);
+               if (er != -1)
+                       ret = -1;
+       }
+       object = bw->object;
+       w = bw->parent;
+       bwrm(bw);
+       w->object.bw = bw = bwmk(w, b, 0);
+       wredraw(bw->parent);
+       bw->object = object;
+       vsrm(s);
+       if (er == -1 && bw->o.mnew)
+               exemac(bw->o.mnew);
+       if (er == 0 && bw->o.mold)
+               exemac(bw->o.mold);
+       return (ret);
 }
 
 static int
@@ -645,6 +612,7 @@ doscratch(BW *bw, unsigned char *s, void *obj, int *notify)
 
        b = bfind_scratch(s);
        er = error;
+       vsrm(s);
        if (bw->b->count == 1 && (bw->b->changed || bw->b->name)) {
                if (orphan) {
                        orphit(bw);
@@ -666,7 +634,6 @@ doscratch(BW *bw, unsigned char *s, void *obj, int *notify)
        w->object.bw = bw = bwmk(w, b, 0);
        wredraw(bw->parent);
        bw->object = object;
-       vsrm(s);
        if (er == -1 && bw->o.mnew) {
                exemac(bw->o.mnew);
        }
@@ -836,12 +803,12 @@ int uexsve(BW *bw)
 
 static int nask(BW *bw, int c, void *object, int *notify)
 {
-       if (c == 'y' || c == 'Y') {
+       if ((c | 0x20) == 'y') {
                /* uexsve macro should be here... */
                if(notify)
                        *notify = 1;
                return 0;
-       } else if (c == 'n' || c == 'N') {
+       } else if ((c | 0x20) == 'n') {
                if(notify)
                        *notify = -1;
                genexmsg(bw, 0, NULL);
@@ -878,7 +845,7 @@ static int dolose(BW *bw, int c, void *object, int *notify)
        if (notify) {
                *notify = 1;
        }
-       if (c != 'y' && c != 'Y') {
+       if ((c | 0x20) != 'y') {
                return -1;
        }
 
@@ -973,7 +940,8 @@ int ubufed(BW *bw)
 static int doquerysave(BW *bw,int c,struct savereq *req,int *notify)
 {
        W *w = bw->parent;
-       if (c == 'y' || c == 'Y') {
+
+       if ((c | 0x20) == 'y') {
                if (bw->b->name && bw->b->name[0])
                        return dosave1(bw, vsncpy(NULL,0,sz(bw->b->name)), req, notify);
                else {
@@ -983,15 +951,15 @@ static int doquerysave(BW *bw,int c,struct savereq *req,int *notify)
                        if (pbw) {
                                return 0;
                        } else {
-                               joe_free(req);
+                               free(req);
                                return -1;
                        }
                }
-       } else if (c == 'n' || c == 'N') {
+       } else if ((c | 0x20) == 'n') {
                /* Find next buffer to save */
                if (bw->b->changed)
                        req->not_saved = 1;
              next:
+ next:
                if (unbuf(bw)) {
                        if (notify)
                                *notify = 1;
@@ -1015,7 +983,7 @@ static int doquerysave(BW *bw,int c,struct savereq *req,int *notify)
                joe_snprintf_1(buf,1024,"File %s has been modified.  Save it (y,n,^C)? ",bw->b->name ? bw->b->name : US "(Unnamed)" );
                if (mkqw(bw->parent, sz(buf), doquerysave, NULL, req, notify)) {
                        return 0;
-                       } else {
+               } else {
                        /* Should be in abort function */
                        rmsavereq(req);
                        return -1;
index bf4d417..001c278 100644 (file)
--- a/uformat.c
+++ b/uformat.c
@@ -8,7 +8,7 @@
 #include "config.h"
 #include "types.h"
 
-__RCSID("$MirOS: contrib/code/jupp/uformat.c,v 1.7 2017/12/06 23:17:36 tg Exp $");
+__RCSID("$MirOS: contrib/code/jupp/uformat.c,v 1.9 2017/12/08 02:28:07 tg Exp $");
 
 #include <stdlib.h>
 #include <string.h>
@@ -62,7 +62,7 @@ int ucenter(BW *bw)
        for (x = 0; x != (bw->o.lmargin + bw->o.rmargin) / 2 - (endcol - begcol) / 2; ++x)
                binsc(p, ' ');
 
     done:
+ done:
        if (!pnextl(p)) {
                binsc(p, '\n');
                pgetc(p);
@@ -231,7 +231,7 @@ int ubop(BW *bw)
 {
        P *q = pdup(bw->cursor);
 
     up:
+ up:
        while (pisnpara(q) && !pisbof(q) && (!within || !markb || q->byte > markb->byte))
                pprevl(q);
        pbop(q);
@@ -252,7 +252,7 @@ int ueop(BW *bw)
 {
        P *q = pdup(bw->cursor);
 
     up:
+ up:
        while (pisnpara(q) && !piseof(q))
                pnextl(q);
        pbop(q);
@@ -347,7 +347,7 @@ void wrapword(P *p, long int indent, int french, unsigned char *indents)
                        }
 
                if (rmf)
-                       joe_free(indents);
+                       free(indents);
        }
 
        /* Move cursor back to original position */
@@ -475,8 +475,7 @@ int uformat(BW *bw)
                        prm(d);
 
                        /* Skip past the whitespace.  Skip over indentations */
-                     loop:
-
+ loop:
                        c = brch(b);
                        if (c == '\n') {
                                if (b->byte == curoff)
@@ -519,7 +518,7 @@ int uformat(BW *bw)
        binsc(p, '\n');
        prm(p);
        brm(buf);
-       joe_free(indents);
+       free(indents);
        return 0;
 }
 
index 3daf9bc..ae5db71 100644 (file)
--- a/uisrch.c
+++ b/uisrch.c
@@ -8,7 +8,7 @@
 #include "config.h"
 #include "types.h"
 
-__RCSID("$MirOS: contrib/code/jupp/uisrch.c,v 1.12 2017/12/06 23:17:36 tg Exp $");
+__RCSID("$MirOS: contrib/code/jupp/uisrch.c,v 1.15 2017/12/08 02:28:08 tg Exp $");
 
 #include <stdlib.h>
 
@@ -51,7 +51,7 @@ static void rmisrch(struct isrch *isrch)
                vsrm(isrch->pattern);
                vsrm(isrch->prompt);
                frchn(&fri, &isrch->irecs);
-               joe_free(isrch);
+               free(isrch);
        }
 }
 
@@ -110,6 +110,7 @@ static int itype(BW *bw, int c, struct isrch *isrch, int *notify)
 {
        IREC *i;
        int omid;
+       int tc;
 
        if (isrch->quote) {
                goto in;
@@ -196,9 +197,7 @@ static int itype(BW *bw, int c, struct isrch *isrch, int *notify)
                unsigned char buf[16];
                int buf_len;
                /* Search */
-
-               in:
-
+ in:
                /* Convert to/from utf-8 */
                if (locale_map->type && !bw->b->o.charmap->type) {
                        utf8_encode(buf,c);
@@ -230,20 +229,21 @@ static int itype(BW *bw, int c, struct isrch *isrch, int *notify)
                /* Translate bytes to utf-8 */
                unsigned char buf[16];
                int x;
-               for (x=0; x!=sLEN(isrch->pattern); ++x) {
-                       int c_ = to_uni(bw->b->o.charmap, isrch->pattern[x]);
-                       utf8_encode(buf,c_);
-                       isrch->prompt = vsncpy(sv(isrch->prompt),sz(buf));
+
+               for (x = 0; x != sLEN(isrch->pattern); ++x) {
+                       tc = to_uni(bw->b->o.charmap, isrch->pattern[x]);
+                       utf8_encode(buf, tc);
+                       isrch->prompt = vsncpy(sv(isrch->prompt), sz(buf));
                }
        } else if (!locale_map->type && bw->b->o.charmap->type) {
                /* Translate utf-8 to bytes */
                unsigned char *p = isrch->pattern;
                int len = sLEN(isrch->pattern);
+
                while (len) {
-                       int c_ = utf8_decode_fwrd(&p, &len);
-                       if (c_ >= 0) {
-                               c_ = from_uni(locale_map, c_);
-                               isrch->prompt = vsadd(isrch->prompt, c_);
+                       if ((tc = utf8_decode_fwrd(&p, &len)) >= 0) {
+                               tc = from_uni(locale_map, tc);
+                               isrch->prompt = vsadd(isrch->prompt, tc);
                        }
                }
        } else {
@@ -259,9 +259,11 @@ static int itype(BW *bw, int c, struct isrch *isrch, int *notify)
        }
 }
 
-static int doisrch(BW *bw, int dir)
-{                              /* Create a struct isrch */
-       struct isrch *isrch = (struct isrch *) joe_malloc(sizeof(struct isrch));
+/* Create a struct isrch */
+static int
+doisrch(BW *bw, int dir)
+{
+       struct isrch *isrch = malloc(sizeof(struct isrch));
 
        izque(IREC, link, &isrch->irecs);
        isrch->pattern = vsncpy(NULL, 0, NULL, 0);
diff --git a/umath.c b/umath.c
index 24e84c0..f2ea4c9 100644 (file)
--- a/umath.c
+++ b/umath.c
@@ -8,7 +8,7 @@
 #include "config.h"
 #include "types.h"
 
-__RCSID("$MirOS: contrib/code/jupp/umath.c,v 1.21 2017/12/07 02:10:19 tg Exp $");
+__RCSID("$MirOS: contrib/code/jupp/umath.c,v 1.24 2017/12/08 02:28:08 tg Exp $");
 
 #include <stdlib.h>
 #include <string.h>
@@ -53,8 +53,7 @@ static struct var *get(unsigned char *str)
                        return v;
                }
        }
-       v = (struct var *) joe_malloc(sizeof(struct var));
-
+       v = malloc(sizeof(struct var));
        v->set = 0;
        v->next = vars;
        vars = v;
@@ -112,7 +111,7 @@ static double expr(int prec, struct var **rtv)
                ++ptr;
                x = -expr(10, &dumb);
        }
     loop:
+ loop:
        while (*ptr == ' ' || *ptr == '\t')
                ++ptr;
        if (*ptr == '*' && 5 > prec) {
@@ -190,7 +189,7 @@ calc(BW *bw, unsigned char *s)
        v->set = 1;
        ptr = s;
        merrf = 0;
     up:
+ up:
        result = expr(0, &dumb);
        if (!merrf) {
                while (*ptr == ' ' || *ptr == '\t') {
@@ -236,6 +235,7 @@ calc(BW *bw, unsigned char *s)
 static int domath(BW *bw, unsigned char *s, void *object, int *notify)
 {
        calc(bw, s);
+       vsrm(s);
 
        if (notify) {
                *notify = 1;
@@ -244,7 +244,6 @@ static int domath(BW *bw, unsigned char *s, void *object, int *notify)
                msgnw(bw->parent, merrt);
                return -1;
        }
-       vsrm(s);
        memcpy(msgbuf, math_res, JOE_MSGBUFSIZE);
        if (bw->parent->watom->what != TYPETW) {
                binsm(bw->cursor, sz(msgbuf));
diff --git a/undo.c b/undo.c
index fa5157a..d382c48 100644 (file)
--- a/undo.c
+++ b/undo.c
@@ -8,7 +8,7 @@
 #include "config.h"
 #include "types.h"
 
-__RCSID("$MirOS: contrib/code/jupp/undo.c,v 1.8 2017/12/06 23:02:07 tg Exp $");
+__RCSID("$MirOS: contrib/code/jupp/undo.c,v 1.10 2017/12/08 02:28:08 tg Exp $");
 
 #include <stdlib.h>
 
@@ -48,7 +48,7 @@ static void frrec(UNDOREC *rec)
 {
        if (rec->del) {
                if (rec->len < SMALL)
-                       joe_free(rec->small);
+                       free(rec->small);
                else {
                        B *b = rec->big;
 
@@ -123,7 +123,7 @@ int uundo(BW *bw)
        if (undo->ptr->link.prev == &undo->recs)
                return -1;
        upto = undo->ptr->link.prev->unit;
     loop:
+ loop:
        undo->ptr = undo->ptr->link.prev;
        pgoto(bw->cursor, undo->ptr->where);
        inundo = 1;
@@ -263,13 +263,13 @@ static void yankdel(long where, B *b)
                                        rec->big = bmk(NULL);
                                        binsm(rec->big->bof, rec->small, (int) rec->len);
                                        boffline(rec->big);
-                                       joe_free(rec->small);
+                                       free(rec->small);
                                }
                                bonline(rec->big);
                                binsb(rec->big->eof, bcpy(b->bof, b->eof));
                                boffline(rec->big);
                        } else {
-                               rec->small = (unsigned char *) joe_realloc(rec->small, rec->len + size);
+                               rec->small = realloc(rec->small, rec->len + size);
                                brmem(b->bof, rec->small + rec->len, (int) size);
                        }
                        rec->len += size;
@@ -279,13 +279,13 @@ static void yankdel(long where, B *b)
                                        rec->big = bmk(NULL);
                                        binsm(rec->big->bof, rec->small, (int) rec->len);
                                        boffline(rec->big);
-                                       joe_free(rec->small);
+                                       free(rec->small);
                                }
                                bonline(rec->big);
                                binsb(rec->big->bof, bcpy(b->bof, b->eof));
                                boffline(rec->big);
                        } else {
-                               rec->small = (unsigned char *) joe_realloc(rec->small, rec->len + size);
+                               rec->small = realloc(rec->small, rec->len + size);
                                mmove(rec->small + size, rec->small, (int) rec->len);
                                brmem(b->bof, rec->small, (int) size);
                        }
@@ -298,8 +298,8 @@ static void yankdel(long where, B *b)
                        }
                        rec = alrec();
                        if (size < SMALL) {
-                               rec->small = (unsigned char *) joe_malloc(size);
-                               brmem(b->bof, rec->small, (int) b->eof->byte);
+                               rec->small = malloc(size);
+                               brmem(b->bof, rec->small, (int)b->eof->byte);
                        } else {
                                rec->big = bcpy(b->bof, b->eof);
                                boffline(rec->big);
@@ -335,13 +335,13 @@ void undodel(UNDO *undo, long where, B *b)
                                rec->big = bmk(NULL);
                                binsm(rec->big->bof, rec->small, (int) rec->len);
                                boffline(rec->big);
-                               joe_free(rec->small);
+                               free(rec->small);
                        }
                        bonline(rec->big);
                        binsb(rec->big->eof, b);
                        boffline(rec->big);
                } else {
-                       rec->small = (unsigned char *) joe_realloc(rec->small, rec->len + size);
+                       rec->small = realloc(rec->small, rec->len + size);
                        brmem(b->bof, rec->small + rec->len, (int) size);
                        brm(b);
                }
@@ -352,13 +352,13 @@ void undodel(UNDO *undo, long where, B *b)
                                rec->big = bmk(NULL);
                                binsm(rec->big->bof, rec->small, (int) rec->len);
                                boffline(rec->big);
-                               joe_free(rec->small);
+                               free(rec->small);
                        }
                        bonline(rec->big);
                        binsb(rec->big->bof, b);
                        boffline(rec->big);
                } else {
-                       rec->small = (unsigned char *) joe_realloc(rec->small, rec->len + size);
+                       rec->small = realloc(rec->small, rec->len + size);
                        mmove(rec->small + size, rec->small, (int) rec->len);
                        brmem(b->bof, rec->small, (int) size);
                        brm(b);
@@ -368,7 +368,7 @@ void undodel(UNDO *undo, long where, B *b)
        } else {
                rec = alrec();
                if (size < SMALL) {
-                       rec->small = (unsigned char *) joe_malloc(size);
+                       rec->small = malloc(size);
                        brmem(b->bof, rec->small, (int) b->eof->byte);
                        brm(b);
                } else {
index f0002a6..3e3342e 100644 (file)
--- a/usearch.c
+++ b/usearch.c
@@ -8,7 +8,7 @@
 #include "config.h"
 #include "types.h"
 
-__RCSID("$MirOS: contrib/code/jupp/usearch.c,v 1.19 2017/12/07 02:10:19 tg Exp $");
+__RCSID("$MirOS: contrib/code/jupp/usearch.c,v 1.20 2017/12/08 02:00:43 tg Exp $");
 
 #include <stdlib.h>
 
@@ -377,7 +377,7 @@ static SRCH *setmark(SRCH *srch)
 
 SRCH *mksrch(unsigned char *pattern, unsigned char *replacement, int ignore, int backwards, int repeat, int replace, int rest)
 {
-       SRCH *srch = (SRCH *) joe_malloc(sizeof(SRCH));
+       SRCH *srch = malloc(sizeof(SRCH));
        int x;
 
        srch->pattern = pattern;
@@ -427,7 +427,7 @@ void rmsrch(SRCH *srch)
        vsrm(srch->pattern);
        vsrm(srch->replacement);
        vsrm(srch->entire);
-       joe_free(srch);
+       free(srch);
        updall();
 }
 
index 5a3f801..36ae497 100644 (file)
--- a/ushell.c
+++ b/ushell.c
@@ -8,7 +8,7 @@
 #include "config.h"
 #include "types.h"
 
-__RCSID("$MirOS: contrib/code/jupp/ushell.c,v 1.12 2017/12/07 02:10:19 tg Exp $");
+__RCSID("$MirOS: contrib/code/jupp/ushell.c,v 1.15 2017/12/08 03:24:16 tg Exp $");
 
 #include <sys/stat.h>
 #include <signal.h>
@@ -55,17 +55,17 @@ static void cfollow(B *b,long byte)
 {
        W *w;
        if ((w = maint->topwin) != NULL) {
-               do {
-                       if ((w->watom->what & TYPETW) &&
+               do {
+                       if ((w->watom->what & TYPETW) &&
                            w->object.bw->b == b &&
                            w->object.bw->cursor->byte == byte) {
-                               BW *bw = w->object.bw;
-                               p_goto_eof(bw->cursor);
+                               BW *bw = w->object.bw;
+                               p_goto_eof(bw->cursor);
                                bw->cursor->xcol = piscol(bw->cursor);
-                       }
-               w = w->link.next;
-               } while (w != maint->topwin);
-        }
+                       }
+                       w = w->link.next;
+               } while (w != maint->topwin);
+       }
 }
 
 static void cdata(B *b, unsigned char *dat, int siz)
@@ -129,25 +129,29 @@ static int doushell(BW *bw, unsigned char *cmd, int *notify, int build)
        if (bw->b->pid) {
                msgnw(bw->parent, UC "Program already running in this window");
                varm(s);
+               vsrm(cmd);
                return -1;
        }
        p_goto_eof(bw->cursor);
 
        if (!(m = mpxmk(&bw->b->out, name, s, cdata, bw->b, build ? cdone_parse : cdone, bw->b))) {
                varm(s);
+               vsrm(cmd);
                msgnw(bw->parent, UC "No ptys available");
                return -1;
        } else {
                bw->b->pid = m->pid;
        }
+       varm(s);
+       vsrm(cmd);
        return 0;
 }
 
 int ubknd(BW *bw)
 {
        if (!getenv("SHELL")) {
-               msgnw(bw->parent, UC "\"SHELL\" environment variable not defined or exported");
-        }
+               msgnw(bw->parent, UC "\"SHELL\" environment variable not defined or exported");
+       }
        return doushell(bw, NULL, NULL, 0);
 }
 
@@ -198,7 +202,7 @@ static int pidabort(BW *bw, int c, void *object, int *notify)
        if (notify) {
                *notify = 1;
        }
-       if (c != 'y' && c != 'Y') {
+       if ((c | 0x20) != 'y') {
                return -1;
        }
        if (bw->b->pid) {
diff --git a/utils.h b/utils.h
index f4a8b8a..dfec063 100644 (file)
--- a/utils.h
+++ b/utils.h
@@ -11,7 +11,7 @@
 #define _JOE_UTILS_H 1
 
 #ifdef EXTERN_B_C
-__IDSTRING(rcsid_utils_h, "$MirOS: contrib/code/jupp/utils.h,v 1.10 2017/12/06 23:02:08 tg Exp $");
+__IDSTRING(rcsid_utils_h, "$MirOS: contrib/code/jupp/utils.h,v 1.11 2017/12/08 02:00:43 tg Exp $");
 #endif
 
 #include <signal.h>
@@ -28,12 +28,6 @@ signed long long_min(signed long a, signed long b);
 ssize_t joe_read(int fd, void *buf, size_t siz);
 ssize_t joe_write(int fd, void *buf, size_t siz);
 
-/* wrappers to *alloc routines */
-#define joe_malloc malloc
-#define joe_calloc calloc
-#define joe_realloc realloc
-#define joe_free free
-
 #ifndef HAVE_SIGHANDLER_T
 typedef RETSIGTYPE (*sighandler_t)(int);
 #endif
diff --git a/va.c b/va.c
index 6c42fb8..f7b6b91 100644 (file)
--- a/va.c
+++ b/va.c
@@ -7,7 +7,7 @@
  */
 #include "config.h"
 
-__RCSID("$MirOS: contrib/code/jupp/va.c,v 1.5 2017/12/06 21:17:04 tg Exp $");
+__RCSID("$MirOS: contrib/code/jupp/va.c,v 1.7 2017/12/08 02:28:08 tg Exp $");
 
 #include <stdlib.h>
 
@@ -16,7 +16,7 @@ __RCSID("$MirOS: contrib/code/jupp/va.c,v 1.5 2017/12/06 21:17:04 tg Exp $");
 
 aELEMENT *vamk(int len)
 {
-       int *new = (int *) joe_malloc((1 + len) * sizeof(aELEMENT) + 2 * sizeof(int));
+       int *new = malloc((1 + len) * sizeof(aELEMENT) + 2 * sizeof(int));
 
        new[0] = len;
        new[1] = 0;
@@ -28,7 +28,7 @@ void varm(aELEMENT *vary)
 {
        if (vary) {
                vazap(vary, 0, aLen(vary));
-               joe_free((int *) vary - 2);
+               free((int *)vary - 2);
        }
 }
 
@@ -49,7 +49,7 @@ aELEMENT *vaensure(aELEMENT *vary, int len)
                vary = vamk(len);
        else if (len > aSiz(vary)) {
                len += (len >> 2);
-               vary = (aELEMENT *)(2 + (int *) joe_realloc((int *) vary - 2, (len + 1) * sizeof(aELEMENT) + 2 * sizeof(int)));
+               vary = (aELEMENT *)(2 + (int *)realloc((int *)vary - 2, (len + 1) * sizeof(aELEMENT) + 2 * sizeof(int)));
 
                aSiz(vary) = len;
        }
@@ -168,7 +168,7 @@ aELEMENT *vawords(aELEMENT *a, unsigned char *s, int len, unsigned char *sep, in
                a = vamk(10);
        else
                a = vatrunc(a, 0);
     loop:
+ loop:
        x = vsspan(s, len, sep, seplen);
        s += x;
        len -= x;
diff --git a/vfile.c b/vfile.c
index 7fb529c..d1fb81e 100644 (file)
--- a/vfile.c
+++ b/vfile.c
@@ -8,7 +8,7 @@
 #include "config.h"
 #include "types.h"
 
-__RCSID("$MirOS: contrib/code/jupp/vfile.c,v 1.13 2017/12/06 21:17:04 tg Exp $");
+__RCSID("$MirOS: contrib/code/jupp/vfile.c,v 1.15 2017/12/08 02:28:08 tg Exp $");
 
 #include <sys/stat.h>
 #include <fcntl.h>
@@ -46,7 +46,7 @@ void vflsh(void)
 
        for (vfile = vfiles.link.next; vfile != &vfiles; vfile = vfile->link.next) {
                last = -1;
            loop:
+ loop:
                addr = LONG_MAX;
                vlowest = NULL;
                for (x = 0; x != HTSIZE; x++)
@@ -84,7 +84,7 @@ void vflshf(VFILE *vfile)
        long addr;
        int x;
 
     loop:
+ loop:
        addr = LONG_MAX;
        vlowest = NULL;
        for (x = 0; x != HTSIZE; x++)
@@ -116,7 +116,7 @@ void vflshf(VFILE *vfile)
 
 static unsigned char *mema(int align, int size)
 {
-       unsigned char *z = (unsigned char *) joe_malloc(align + size);
+       unsigned char *z = malloc(align + size);
 
        return z + (align - ((size_t)z % align));
 }
@@ -142,7 +142,7 @@ unsigned char *vlock(VFILE *vfile, unsigned long addr)
        }
 
        if (curvalloc + PGSIZE <= maxvalloc) {
-               vp = (VPAGE *) joe_malloc(sizeof(VPAGE) * INC);
+               vp = malloc(sizeof(VPAGE) * INC);
                if (vp) {
                        vp->data = (unsigned char *) mema(PGSIZE, PGSIZE * INC);
                        if (vp->data) {
@@ -150,20 +150,20 @@ unsigned char *vlock(VFILE *vfile, unsigned long addr)
 
                                curvalloc += PGSIZE * INC;
                                if (!vheaders) {
-                                       vheaders = (VPAGE **) joe_malloc((vheadsz = INC) * sizeof(VPAGE *));
+                                       vheaders = malloc((vheadsz = INC) * sizeof(VPAGE *));
                                        vbase = vp->data;
                                } else if ((size_t)vp->data < (size_t)vbase) {
                                        VPAGE **t = vheaders;
                                        int amnt = (((size_t)vbase) - ((size_t)vp->data)) >> LPGSIZE;
 
-                                       vheaders = (VPAGE **) joe_malloc((amnt + vheadsz) * sizeof(VPAGE *));
+                                       vheaders = malloc((amnt + vheadsz) * sizeof(VPAGE *));
                                        mmove(vheaders + amnt, t, vheadsz * sizeof(VPAGE *));
                                        vheadsz += amnt;
                                        vbase = vp->data;
-                                       joe_free(t);
+                                       free(t);
                                } else if (((((size_t)vp->data + PGSIZE * INC) - ((size_t)vbase)) >> LPGSIZE) > (unsigned long)vheadsz) {
-                                       vheaders = (VPAGE **)
-                                           joe_realloc(vheaders, (vheadsz = (((((size_t)vp->data + PGSIZE * INC) - ((size_t)vbase)) >> LPGSIZE))) * sizeof(VPAGE *));
+                                       vheaders = realloc(vheaders,
+                                           (vheadsz = (((((size_t)vp->data + PGSIZE * INC) - ((size_t)vbase)) >> LPGSIZE))) * sizeof(VPAGE *));
                                }
                                for (q = 1; q != INC; ++q) {
                                        vp[q].next = freepages;
@@ -174,7 +174,7 @@ unsigned char *vlock(VFILE *vfile, unsigned long addr)
                                vheader(vp->data) = vp;
                                goto gotit;
                        }
-                       joe_free(vp);
+                       free(vp);
                        vp = NULL;
                }
        }
@@ -195,7 +195,7 @@ unsigned char *vlock(VFILE *vfile, unsigned long addr)
        if (write(2, "vfile: out of memory\n", 21)) {}
        exit(1);
 
     gotit:
+ gotit:
        vp->addr = addr;
        vp->vfile = vfile;
        vp->dirty = 0;
@@ -221,7 +221,7 @@ unsigned char *vlock(VFILE *vfile, unsigned long addr)
 
 VFILE *vtmp(void)
 {
-       VFILE *new = (VFILE *) joe_malloc(sizeof(VFILE));
+       VFILE *new = malloc(sizeof(VFILE));
 
        new->fd = 0;
        new->name = NULL;
@@ -254,7 +254,7 @@ void vclose(VFILE *vfile)
        }
        if (vfile->fd)
                close(vfile->fd);
-       joe_free(deque_f(VFILE, link, vfile));
+       free(deque_f(VFILE, link, vfile));
        for (x = 0; x != HTSIZE; x++)
                for (pp = (VPAGE *) (htab + x), vp = pp->next; vp;)
                        if (vp->vfile == vfile) {
diff --git a/vs.c b/vs.c
index c468159..e46a076 100644 (file)
--- a/vs.c
+++ b/vs.c
@@ -8,7 +8,7 @@
 #include "config.h"
 #include "types.h"
 
-__RCSID("$MirOS: contrib/code/jupp/vs.c,v 1.10 2017/12/02 02:07:38 tg Exp $");
+__RCSID("$MirOS: contrib/code/jupp/vs.c,v 1.11 2017/12/08 02:00:43 tg Exp $");
 
 #include <stdlib.h>
 
@@ -18,7 +18,7 @@ __RCSID("$MirOS: contrib/code/jupp/vs.c,v 1.10 2017/12/02 02:07:38 tg Exp $");
 
 sELEMENT *vsmk(int len)
 {
-       int *new = (int *) joe_malloc((1 + len) * sizeof(sELEMENT) + 2 * sizeof(int));
+       int *new = malloc((1 + len) * sizeof(sELEMENT) + 2 * sizeof(int));
 
        new[0] = len;
        new[1] = 0;
@@ -29,7 +29,7 @@ sELEMENT *vsmk(int len)
 void vsrm(sELEMENT *vary)
 {
        if (vary)
-               joe_free((int *) vary - 2);
+               free((int *)vary - 2);
 }
 
 int slen(const sELEMENT *ary)
@@ -49,7 +49,7 @@ sELEMENT *vsensure(sELEMENT *vary, int len)
                vary = vsmk(len);
        else if (len > sSiz(vary)) {
                len += (len >> 2);
-               vary = (sELEMENT *)(2 + (int *) joe_realloc((int *) vary - 2, (len + 1) * sizeof(sELEMENT) + 2 * sizeof(int)));
+               vary = (sELEMENT *)(2 + (int *)realloc((int *)vary - 2, (len + 1) * sizeof(sELEMENT) + 2 * sizeof(int)));
 
                sSiz(vary) = len;
        }
diff --git a/w.c b/w.c
index 2017f6c..554de9a 100644 (file)
--- a/w.c
+++ b/w.c
@@ -8,7 +8,7 @@
 #include "config.h"
 #include "types.h"
 
-__RCSID("$MirOS: contrib/code/jupp/w.c,v 1.10 2017/12/07 02:10:19 tg Exp $");
+__RCSID("$MirOS: contrib/code/jupp/w.c,v 1.12 2017/12/08 02:28:08 tg Exp $");
 
 #include <stdlib.h>
 
@@ -167,7 +167,7 @@ SCREEN *scr;
 
 SCREEN *screate(SCRN *scrn)
 {
-       SCREEN *t = (SCREEN *) joe_malloc(sizeof(SCREEN));
+       SCREEN *t = malloc(sizeof(SCREEN));
 
        t->t = scrn;
        t->w = scrn->co;
@@ -263,7 +263,7 @@ void wfit(SCREEN *t)
 
        dostaupd = 1;
 
     tryagain:
+ tryagain:
        y = t->wind;
        left = t->h - y;
        pw = NULL;
@@ -334,7 +334,7 @@ void wfit(SCREEN *t)
                                                l = pw;
                                }
                                /* Scroll windows between l and w */
                            loop1:
+ loop1:
                                if (l->ny >= 0 && l->y >= 0)
                                        nscrldn(t->t, l->y, l->ny + uns_min(l->h, l->nh), l->ny - l->y);
                                if (w != l) {
@@ -351,7 +351,7 @@ void wfit(SCREEN *t)
                                                l = pw;
                                }
                                /* Scroll windows between l and w */
                            loop0:
+ loop0:
                                if (w->ny >= 0 && w->y >= 0)
                                        nscrlup(t->t, w->ny, w->y + uns_min(w->h, w->nh), w->y - w->ny);
                                if (w != l) {
@@ -575,7 +575,7 @@ W *wcreate(SCREEN *t, WATOM *watom, W *where, W *target, W *original, int height
                return NULL;
 
        /* Create the window */
-       new = (W *) joe_malloc(sizeof(W));
+       new = malloc(sizeof(W));
        new->notify = notify;
        new->t = t;
        new->w = t->w - 1;
@@ -605,7 +605,7 @@ W *wcreate(SCREEN *t, WATOM *watom, W *where, W *target, W *original, int height
        if (original) {
                if (original->h - height <= 2) {
                        /* Not enough space for window */
-                       joe_free(new);
+                       free(new);
                        return NULL;
                } else
                        seth(original, original->h - height);
@@ -642,7 +642,7 @@ static int doabort(W *w, int *ret)
        w->y = -2;
        if (w->t->topwin == w)
                w->t->topwin = w->link.next;
     loop:
+ loop:
        z = w->t->topwin;
        do {
                if (z->orgwin == w)
@@ -677,7 +677,7 @@ static int doabort(W *w, int *ret)
                        *w->notify = 1;
        }
        rmkbd(w->kbd);
-       joe_free(w);
+       free(w);
        windie(w);
        return amnt;
 }