tCheckpoint. - plan9port - [fork] Plan 9 from user space
 (HTM) git clone git://src.adamsgaard.dk/plan9port
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit b237df90f9390dac1ff1fdcb6813ca1f2a7bef4f
 (DIR) parent 5f1cf8e6fb130fd48d6f016d13baf5408b3181f8
 (HTM) Author: wkj <devnull@localhost>
       Date:   Sun, 16 May 2004 07:57:50 +0000
       
       Checkpoint.
       
       Diffstat:
         M src/cmd/eqn/e.h                     |       9 ++++++---
         M src/cmd/eqn/eqn.c                   |     173 ++++++++++++++++---------------
         M src/cmd/eqn/eqnbox.c                |       2 +-
         M src/cmd/eqn/glob.c                  |       2 +-
         M src/cmd/eqn/input.c                 |       4 +++-
         M src/cmd/eqn/lex.c                   |       2 ++
         M src/cmd/eqn/lookup.c                |     302 ++++++++++++++++----------------
         M src/cmd/eqn/main.c                  |      16 +++++++++++-----
         M src/cmd/eqn/matrix.c                |       1 +
         M src/cmd/eqn/text.c                  |       5 +++--
         M src/cmd/eqn/tuning.c                |      28 +++++++++++++++-------------
         M src/cmd/grap/find                   |       2 +-
         M src/cmd/grap/frame.c                |       2 ++
         M src/cmd/grap/grap.h                 |       2 +-
         M src/cmd/grap/input.c                |       9 ++++++++-
         M src/cmd/grap/main.c                 |      31 ++++++++++++++++++-------------
         M src/cmd/grap/print.c                |       6 +++---
         M src/cmd/grap/ticks.c                |       1 +
         M src/cmd/graph/graph.c               |      10 +++++++++-
       
       19 files changed, 324 insertions(+), 283 deletions(-)
       ---
 (DIR) diff --git a/src/cmd/eqn/e.h b/src/cmd/eqn/e.h
       t@@ -2,6 +2,10 @@
        #include <stdlib.h>
        #include <string.h>
        
       +#undef sqrt
       +#define sqrt p9_sqrt
       +#define YYSTYPE int  /* DEC v. GNU garbage */
       +
        enum charclass {
                OTHER, OLET, ILET, DIG, LPAR, RPAR, SLASH, PLUS, ILETF, ILETJ, VBAR,
                NONE, LAST
       t@@ -53,8 +57,8 @@ extern int        lfont[];
        extern int        rfont[];
        extern int        lclass[];
        extern int        rclass[];
       -extern int        yyval;
       -extern int        yylval;
       +extern YYSTYPE        yyval;   /* DEC cc wants long */
       +extern YYSTYPE  yylval;   /* DEC cc wants long */
        extern int        eqnreg;
        extern double        eqnht;
        extern int        lefteq, righteq;
       t@@ -152,7 +156,6 @@ extern void shift2(int, int, int);
        extern void setsize(char *);
        extern void size(int, int);
        extern void globsize(void);
       -#define sqrt esqrt
        extern void sqrt(int);
        extern void text(int, char *);
        extern void boverb(int, int);
 (DIR) diff --git a/src/cmd/eqn/eqn.c b/src/cmd/eqn/eqn.c
       t@@ -56,7 +56,7 @@
        #define        DYAD        57401
        #define        UTILDE        57402
        
       -#line        17        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        17        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        #include "e.h"
        
        int        yylex(void);
       t@@ -72,7 +72,7 @@ YYSTYPE        yyval;
        #define YYEOFCODE 1
        #define YYERRCODE 2
        
       -#line        140        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        140        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        
        short        yyexca[] =
        {-1, 0,
       t@@ -431,6 +431,7 @@ yydefault:
                                        printf("%s", yystatname(yystate));
                                        printf("saw %s\n", yytokname(yychar));
                                }
       +                goto yyerrlab;
        yyerrlab:
                                yynerrs++;
        
       t@@ -485,256 +486,256 @@ yyerrlab:
                switch(yym) {
                        
        case 1:
       -#line        24        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        24        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { putout(yypt[-0].yyv); } break;
        case 2:
       -#line        25        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        25        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { ERROR "syntax error" WARNING; } break;
        case 3:
       -#line        26        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        26        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { eqnreg = 0; } break;
        case 5:
       -#line        30        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        30        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { eqnbox(yypt[-1].yyv, yypt[-0].yyv, 0); } break;
        case 6:
       -#line        31        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        31        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { eqnbox(yypt[-1].yyv, yypt[-0].yyv, 1); } break;
        case 7:
       -#line        32        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        32        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { lineup(0); } break;
        case 8:
       -#line        35        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        35        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { yyval = yypt[-0].yyv; lineup(1); } break;
        case 9:
       -#line        38        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        38        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { yyval = yypt[-0].yyv; } break;
        case 10:
       -#line        39        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        39        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { yyval = 0; } break;
        case 11:
       -#line        42        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        42        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { yyval = yypt[-0].yyv; } break;
        case 12:
       -#line        43        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        43        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { yyval = 0; } break;
        case 13:
       -#line        46        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        46        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { yyval = yypt[-1].yyv; } break;
        case 14:
       -#line        47        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        47        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { text(QTEXT, (char *) yypt[-0].yyv); } break;
        case 15:
       -#line        48        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        48        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { text(CONTIG, (char *) yypt[-0].yyv); } break;
        case 16:
       -#line        49        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        49        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { text(SPACE, (char *) 0); } break;
        case 17:
       -#line        50        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        50        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { text(THIN, (char *) 0); } break;
        case 18:
       -#line        51        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        51        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { text(TAB, (char *) 0); } break;
        case 19:
       -#line        52        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        52        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { funny(SUM); } break;
        case 20:
       -#line        53        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        53        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { funny(PROD); } break;
        case 21:
       -#line        54        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        54        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { funny(UNION); } break;
        case 22:
       -#line        55        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        55        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { funny(INTER); } break;
        case 23:
       -#line        56        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        56        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { boverb(yypt[-2].yyv, yypt[-0].yyv); } break;
        case 24:
       -#line        57        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        57        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { mark(yypt[-0].yyv); } break;
        case 25:
       -#line        58        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        58        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { size(yypt[-1].yyv, yypt[-0].yyv); } break;
        case 26:
       -#line        59        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        59        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { font(yypt[-1].yyv, yypt[-0].yyv); } break;
        case 27:
       -#line        60        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        60        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { fatbox(yypt[-0].yyv); } break;
        case 28:
       -#line        61        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        61        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { sqrt(yypt[-0].yyv); } break;
        case 29:
       -#line        62        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        62        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        {ps -= deltaps;} break;
        case 30:
       -#line        62        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        62        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { subsup(yypt[-4].yyv, yypt[-1].yyv, yypt[-0].yyv); } break;
        case 31:
       -#line        63        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        63        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        {ps -= deltaps;} break;
        case 32:
       -#line        63        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        63        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { subsup(yypt[-3].yyv, 0, yypt[-0].yyv); } break;
        case 33:
       -#line        64        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        64        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        {ps -= deltaps;} break;
        case 34:
       -#line        64        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        64        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { integral(yypt[-4].yyv, yypt[-1].yyv, yypt[-0].yyv); } break;
        case 35:
       -#line        65        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        65        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        {ps -= deltaps;} break;
        case 36:
       -#line        65        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        65        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { integral(yypt[-3].yyv, 0, yypt[-0].yyv); } break;
        case 37:
       -#line        66        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        66        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { integral(yypt[-0].yyv, 0, 0); } break;
        case 38:
       -#line        67        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        67        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        {ps -= deltaps;} break;
        case 39:
       -#line        67        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        67        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { fromto(yypt[-4].yyv, yypt[-1].yyv, yypt[-0].yyv); } break;
        case 40:
       -#line        68        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        68        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        {ps -= deltaps;} break;
        case 41:
       -#line        68        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        68        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { fromto(yypt[-3].yyv, 0, yypt[-0].yyv); } break;
        case 42:
       -#line        69        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        69        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { paren(yypt[-2].yyv, yypt[-1].yyv, yypt[-0].yyv); } break;
        case 43:
       -#line        70        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        70        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { paren(yypt[-1].yyv, yypt[-0].yyv, 0); } break;
        case 44:
       -#line        71        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        71        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { diacrit(yypt[-1].yyv, yypt[-0].yyv); } break;
        case 45:
       -#line        72        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        72        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { move(FWD, yypt[-1].yyv, yypt[-0].yyv); } break;
        case 46:
       -#line        73        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        73        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { move(UP, yypt[-1].yyv, yypt[-0].yyv); } break;
        case 47:
       -#line        74        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        74        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { move(BACK, yypt[-1].yyv, yypt[-0].yyv); } break;
        case 48:
       -#line        75        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        75        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { move(DOWN, yypt[-1].yyv, yypt[-0].yyv); } break;
        case 49:
       -#line        76        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        76        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { pile(yypt[-0].yyv); ct = yypt[-0].yyv; } break;
        case 50:
       -#line        77        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        77        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        {yyval=ct;} break;
        case 51:
       -#line        77        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        77        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { matrix(yypt[-3].yyv); ct = yypt[-3].yyv; } break;
        case 52:
       -#line        80        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        80        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { setintegral(); } break;
        case 53:
       -#line        83        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        83        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { yyval = atoi((char *) yypt[-1].yyv); } break;
        case 54:
       -#line        84        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        84        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { yyval = atoi((char *) yypt[-1].yyv); } break;
        case 55:
       -#line        85        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        85        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { yyval = atoi((char *) yypt[-1].yyv); } break;
        case 56:
       -#line        86        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        86        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { yyval = atoi((char *) yypt[-1].yyv); } break;
        case 57:
       -#line        88        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        88        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { yyval = HAT; } break;
        case 58:
       -#line        89        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        89        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { yyval = VEC; } break;
        case 59:
       -#line        90        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        90        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { yyval = DYAD; } break;
        case 60:
       -#line        91        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        91        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { yyval = BAR; } break;
        case 61:
       -#line        92        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        92        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { yyval = LOWBAR; } break;
        case 62:
       -#line        93        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        93        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { yyval = HIGHBAR; } break;
        case 63:
       -#line        94        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        94        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { yyval = UNDER; } break;
        case 64:
       -#line        95        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        95        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { yyval = DOT; } break;
        case 65:
       -#line        96        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        96        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { yyval = TILDE; } break;
        case 66:
       -#line        97        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        97        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { yyval = UTILDE; } break;
        case 67:
       -#line        98        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        98        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { yyval = DOTDOT; } break;
        case 68:
       -#line        101        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        101        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { yyval = ((char *)yypt[-0].yyv)[0]; } break;
        case 69:
       -#line        102        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        102        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { yyval = '{'; } break;
        case 70:
       -#line        105        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        105        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { yyval = ((char *)yypt[-0].yyv)[0]; } break;
        case 71:
       -#line        106        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        106        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { yyval = '}'; } break;
        case 74:
       -#line        113        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        113        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { column(yypt[-3].yyv, DEFGAP); } break;
        case 75:
       -#line        114        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        114        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        {yyval=atoi((char*)yypt[-0].yyv);} break;
        case 76:
       -#line        114        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        114        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { column(yypt[-5].yyv, yypt[-3].yyv); } break;
        case 77:
       -#line        117        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        117        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { yyval = startcol(LCOL); } break;
        case 78:
       -#line        118        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        118        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { yyval = startcol(CCOL); } break;
        case 79:
       -#line        119        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        119        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { yyval = startcol(RCOL); } break;
        case 80:
       -#line        120        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        120        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { yyval = startcol(COL); } break;
        case 81:
       -#line        123        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        123        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { lp[ct++] = yypt[-0].yyv; } break;
        case 82:
       -#line        124        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        124        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { lp[ct++] = yypt[-0].yyv; } break;
        case 83:
       -#line        127        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        127        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { yyval = ps; setsize((char *) yypt[-0].yyv); } break;
        case 84:
       -#line        130        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        130        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { static char R[]="R"; setfont(R); } break;
        case 85:
       -#line        131        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        131        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { static char I[]="I"; setfont(I); } break;
        case 86:
       -#line        132        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        132        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { static char B[]="B"; setfont(B); } break;
        case 87:
       -#line        133        "/usr/local/plan9/src/cmd/eqn/eqn.y"
       +#line        133        "/home/wkj/src/plan9/src/cmd/eqn/eqn.y"
        { setfont((char *)yypt[-0].yyv); } break;
                }
                goto yystack;  /* stack new state and value */
 (DIR) diff --git a/src/cmd/eqn/eqnbox.c b/src/cmd/eqn/eqnbox.c
       t@@ -4,7 +4,7 @@ void eqnbox(int p1, int p2, int lu)
        {
                double b, h;
                char *sh;
       -        extern char *IRspace;
       +        /* extern char *IRspace; */ /* not used */
        
                yyval = p1;
                b = max(ebase[p1], ebase[p2]);
 (DIR) diff --git a/src/cmd/eqn/glob.c b/src/cmd/eqn/glob.c
       t@@ -15,7 +15,7 @@ int        deltaps        = 3;        /* default change in ps */
        int        dps_set = 0;        /* 1 => -p option used */
        int        gsize        = 10;        /* default initial point size */
        int        ft        = '2';
       -Font        ftstack[10] = { '2', "2" };        /* bottom is global font */
       +Font        ftstack[10] = { { '2', "2" } };        /* bottom is global font */
        Font        *ftp        = ftstack;
        int        szstack[10];        /* non-zero if absolute size set at this level */
        int        nszstack = 0;
 (DIR) diff --git a/src/cmd/eqn/input.c b/src/cmd/eqn/input.c
       t@@ -104,6 +104,7 @@ void dodef(tbl *stp)        /* collect args and switch input to defn */
                pushsrc(Macro, stp->cval);
        }
        
       +int
        getarg(char *p)        /* pick up single argument, store in p, return length */
        {
                int n, c, npar;
       t@@ -139,6 +140,7 @@ char        *pb        = pbuf-1;        /* next pushed back character */
        char        ebuf[200];                /* collect input here for error reporting */
        char        *ep        = ebuf;
        
       +int
        input(void)
        {
                register int c = 0;
       t@@ -208,7 +210,7 @@ input(void)
                return c;
        }
        
       -
       +int
        unput(int c)
        {
                if (++pb >= pbuf + sizeof pbuf)
 (DIR) diff --git a/src/cmd/eqn/lex.c b/src/cmd/eqn/lex.c
       t@@ -13,6 +13,7 @@ void        ifdef(void);
        void        include(void);
        void        delim(void);
        
       +int
        yylex(void)
        {
                register int c;
       t@@ -144,6 +145,7 @@ void getstr(char *s, int n)
                yylval = (int) s;
        }
        
       +int
        cstr(char *s, int quote, int maxs)
        {
                int del, c, i;
 (DIR) diff --git a/src/cmd/eqn/lookup.c b/src/cmd/eqn/lookup.c
       t@@ -9,163 +9,163 @@ struct keyword {
                char        *key;
                int        keyval;
        } keyword[]        ={
       -        "sub",                 SUB, 
       -        "sup",                 SUP, 
       -        ".EN",                 DOTEN,
       -        ".EQ",                DOTEQ, 
       -        "from",         FROM, 
       -        "to",                 TO, 
       -        "sum",                 SUM, 
       -        "hat",                 HAT, 
       -        "vec",                 VEC, 
       -        "dyad",         DYAD, 
       -        "dot",                 DOT, 
       -        "dotdot",         DOTDOT, 
       -        "bar",                 BAR,
       -        "lowbar",        LOWBAR,
       -        "highbar",        HIGHBAR, 
       -        "tilde",         TILDE, 
       -        "utilde",         UTILDE, 
       -        "under",         UNDER, 
       -        "prod",         PROD, 
       -        "int",                 INT, 
       -        "integral",         INT, 
       -        "union",         UNION, 
       -        "inter",         INTER, 
       -        "matrix",         MATRIX, 
       -        "col",                 COL, 
       -        "lcol",         LCOL, 
       -        "ccol",         CCOL, 
       -        "rcol",         RCOL, 
       -        "pile",         COL,        /* synonyms ... */ 
       -        "lpile",         LCOL, 
       -        "cpile",         CCOL, 
       -        "rpile",         RCOL, 
       -        "over",         OVER, 
       -        "sqrt",         SQRT, 
       -        "above",         ABOVE, 
       -        "size",         SIZE, 
       -        "font",         FONT, 
       -        "fat",                 FAT, 
       -        "roman",         ROMAN, 
       -        "italic",         ITALIC, 
       -        "bold",         BOLD, 
       -        "left",         LEFT, 
       -        "right",         RIGHT, 
       -        "delim",         DELIM, 
       -        "define",         DEFINE, 
       -        "tdefine",         DEFINE, 
       -        "ndefine",         NDEFINE, 
       -        "ifdef",        IFDEF,
       -        "gsize",         GSIZE, 
       -        ".gsize",         GSIZE, 
       -        "gfont",         GFONT, 
       -        "include",         INCLUDE, 
       -        "copy",         INCLUDE, 
       -        "space",        SPACE,
       -        "up",                 UP, 
       -        "down",         DOWN, 
       -        "fwd",                 FWD, 
       -        "back",         BACK, 
       -        "mark",         MARK, 
       -        "lineup",         LINEUP, 
       -        0,         0
       +        { "sub",         SUB, },
       +        { "sup",         SUP, },
       +        { ".EN",         DOTEN, },
       +        { ".EQ",         DOTEQ, },
       +        { "from",         FROM, },
       +        { "to",                 TO, },
       +        { "sum",         SUM, },
       +        { "hat",         HAT, },
       +        { "vec",         VEC, },
       +        { "dyad",         DYAD, },
       +        { "dot",         DOT, },
       +        { "dotdot",         DOTDOT, },
       +        { "bar",         BAR, },
       +        { "lowbar",         LOWBAR, },
       +        { "highbar",         HIGHBAR, },
       +        { "tilde",         TILDE, },
       +        { "utilde",         UTILDE, },
       +        { "under",         UNDER, },
       +        { "prod",         PROD, },
       +        { "int",         INT, },
       +        { "integral",         INT, },
       +        { "union",         UNION, },
       +        { "inter",         INTER, },
       +        { "matrix",         MATRIX, },
       +        { "col",         COL, },
       +        { "lcol",         LCOL, },
       +        { "ccol",         CCOL, },
       +        { "rcol",         RCOL, },
       +        { "pile",         COL },  /* synonyms ... */
       +        { "lpile",         LCOL, },
       +        { "cpile",         CCOL, },
       +        { "rpile",         RCOL, },
       +        { "over",         OVER, },
       +        { "sqrt",         SQRT, },
       +        { "above",         ABOVE, },
       +        { "size",         SIZE, },
       +        { "font",         FONT, },
       +        { "fat",         FAT, },
       +        { "roman",         ROMAN, },
       +        { "italic",         ITALIC, },
       +        { "bold",         BOLD, },
       +        { "left",         LEFT, },
       +        { "right",         RIGHT, },
       +        { "delim",         DELIM, },
       +        { "define",         DEFINE, },
       +        { "tdefine",         DEFINE, },
       +        { "ndefine",         NDEFINE, },
       +        { "ifdef",         IFDEF, },
       +        { "gsize",         GSIZE, },
       +        { ".gsize",         GSIZE, },
       +        { "gfont",         GFONT, },
       +        { "include",         INCLUDE, },
       +        { "copy",         INCLUDE, },
       +        { "space",         SPACE, },
       +        { "up",                 UP, },
       +        { "down",         DOWN, },
       +        { "fwd",         FWD, },
       +        { "back",         BACK, },
       +        { "mark",         MARK, },
       +        { "lineup",         LINEUP, },
       +        { 0,         0 }
        };
        
        struct resword {
                char        *res;
                char        *resval;
        } resword[]        ={
       -        ">=",                "\\(>=",
       -        "<=",                "\\(<=",
       -        "==",                "\\(==",
       -        "!=",                "\\(!=",
       -        "+-",                "\\(+-",
       -        "->",                "\\(->",
       -        "<-",                "\\(<-",
       -        "inf",                "\\(if",
       -        "infinity",        "\\(if",
       -        "partial",        "\\(pd",
       -        "half",                "\\f1\\(12\\fP",
       -        "prime",        "\\f1\\v'.5m'\\s+3\\(fm\\s-3\\v'-.5m'\\fP",
       -        "dollar",        "\\f1$\\fP",
       -        "nothing",        "",
       -        "times",        "\\(mu",
       -        "del",                "\\(gr",
       -        "grad",                "\\(gr",
       -        "approx",        "\\v'-.2m'\\z\\(ap\\v'.25m'\\(ap\\v'-.05m'",
       -        "cdot",                "\\v'-.3m'.\\v'.3m'",
       -        "...",                "\\v'-.25m'\\ .\\ .\\ .\\ \\v'.25m'",
       -        ",...,",        "\\f1,\\fP\\ .\\ .\\ .\\ \\f1,\\fP\\|",
       -        "alpha",        "α",
       -        "ALPHA",        "Α",
       -        "beta",                "β",
       -        "BETA",                "Β",
       -        "gamma",        "γ",
       -        "GAMMA",        "Γ",
       -        "delta",        "δ",
       -        "DELTA",        "Δ",
       -        "epsilon",        "ε",
       -        "EPSILON",        "Ε",
       -        "omega",        "ω",
       -        "OMEGA",        "Ω",
       -        "lambda",        "λ",
       -        "LAMBDA",        "Λ",
       -        "mu",                "μ",
       -        "MU",                "Μ",
       -        "nu",                "ν",
       -        "NU",                "Ν",
       -        "theta",        "θ",
       -        "THETA",        "Θ",
       -        "phi",                "φ",
       -        "PHI",                "Φ",
       -        "pi",                "π",
       -        "PI",                "Π",
       -        "sigma",        "σ",
       -        "SIGMA",        "Σ",
       -        "xi",                "ξ",
       -        "XI",                "Ξ",
       -        "zeta",                "ζ",
       -        "ZETA",                "Ζ",
       -        "iota",                "ι",
       -        "IOTA",                "Ι",
       -        "eta",                "η",
       -        "ETA",                "Η",
       -        "kappa",        "κ",
       -        "KAPPA",        "Κ",
       -        "rho",                "ρ",
       -        "RHO",                "Ρ",
       -        "tau",                "τ",
       -        "TAU",                "Τ",
       -        "omicron",        "ο",
       -        "OMICRON",        "Ο",
       -        "upsilon",        "υ",
       -        "UPSILON",        "Υ",
       -        "psi",                "ψ",
       -        "PSI",                "Ψ",
       -        "chi",                "χ",
       -        "CHI",                "Χ",
       -        "and",                "\\f1and\\fP",
       -        "for",                "\\f1for\\fP",
       -        "if",                "\\f1if\\fP",
       -        "Re",                "\\f1Re\\fP",
       -        "Im",                "\\f1Im\\fP",
       -        "sin",                "\\f1sin\\fP",
       -        "cos",                "\\f1cos\\fP",
       -        "tan",                "\\f1tan\\fP",
       -        "arc",                "\\f1arc\\fP",
       -        "sinh",                "\\f1sinh\\fP",
       -        "coth",                "\\f1coth\\fP",
       -        "tanh",                "\\f1tanh\\fP",
       -        "cosh",                "\\f1cosh\\fP",
       -        "lim",                "\\f1lim\\fP",
       -        "log",                "\\f1log\\fP",
       -        "ln",                "\\f1ln\\fP",
       -        "max",                "\\f1max\\fP",
       -        "min",                "\\f1min\\fP",
       -        "exp",                "\\f1exp\\fP",
       -        "det",                "\\f1det\\fP",
       -        0,        0
       +        { ">=",         "\\(>=", },
       +        { "<=",         "\\(<=", },
       +        { "==",         "\\(==", },
       +        { "!=",         "\\(!=", },
       +        { "+-",         "\\(+-", },
       +        { "->",         "\\(->", },
       +        { "<-",         "\\(<-", },
       +        { "inf",         "\\(if", },
       +        { "infinity",         "\\(if", },
       +        { "partial",         "\\(pd", },
       +        { "half",         "\\f1\\(12\\fP", },
       +        { "prime",         "\\f1\\v'.5m'\\s+3\\(fm\\s-3\\v'-.5m'\\fP", },
       +        { "dollar",         "\\f1$\\fP", },
       +        { "nothing",         "", },
       +        { "times",         "\\(mu", },
       +        { "del",         "\\(gr", },
       +        { "grad",         "\\(gr", },
       +        { "approx",         "\\v'-.2m'\\z\\(ap\\v'.25m'\\(ap\\v'-.05m'", },
       +        { "cdot",         "\\v'-.3m'.\\v'.3m'", },
       +        { "...",         "\\v'-.25m'\\ .\\ .\\ .\\ \\v'.25m'", },
       +        { ",...,",         "\\f1,\\fP\\ .\\ .\\ .\\ \\f1,\\fP\\|", },
       +        { "alpha",         "α", },
       +        { "ALPHA",         "Α", },
       +        { "beta",         "β", },
       +        { "BETA",         "Β", },
       +        { "gamma",         "γ", },
       +        { "GAMMA",         "Γ", },
       +        { "delta",         "δ", },
       +        { "DELTA",         "Δ", },
       +        { "epsilon",         "ε", },
       +        { "EPSILON",         "Ε", },
       +        { "omega",         "ω", },
       +        { "OMEGA",         "Ω", },
       +        { "lambda",         "λ", },
       +        { "LAMBDA",         "Λ", },
       +        { "mu",         "μ", },
       +        { "MU",         "Μ", },
       +        { "nu",         "ν", },
       +        { "NU",         "Ν", },
       +        { "theta",         "θ", },
       +        { "THETA",         "Θ", },
       +        { "phi",         "φ", },
       +        { "PHI",         "Φ", },
       +        { "pi",         "π", },
       +        { "PI",         "Π", },
       +        { "sigma",         "σ", },
       +        { "SIGMA",         "Σ", },
       +        { "xi",         "ξ", },
       +        { "XI",         "Ξ", },
       +        { "zeta",         "ζ", },
       +        { "ZETA",         "Ζ", },
       +        { "iota",         "ι", },
       +        { "IOTA",         "Ι", },
       +        { "eta",         "η", },
       +        { "ETA",         "Η", },
       +        { "kappa",         "κ", },
       +        { "KAPPA",         "Κ", },
       +        { "rho",         "ρ", },
       +        { "RHO",         "Ρ", },
       +        { "tau",         "τ", },
       +        { "TAU",         "Τ", },
       +        { "omicron",         "ο", },
       +        { "OMICRON",         "Ο", },
       +        { "upsilon",         "υ", },
       +        { "UPSILON",         "Υ", },
       +        { "psi",         "ψ", },
       +        { "PSI",         "Ψ", },
       +        { "chi",         "χ", },
       +        { "CHI",         "Χ", },
       +        { "and",         "\\f1and\\fP", },
       +        { "for",         "\\f1for\\fP", },
       +        { "if",         "\\f1if\\fP", },
       +        { "Re",         "\\f1Re\\fP", },
       +        { "Im",         "\\f1Im\\fP", },
       +        { "sin",         "\\f1sin\\fP", },
       +        { "cos",         "\\f1cos\\fP", },
       +        { "tan",         "\\f1tan\\fP", },
       +        { "arc",         "\\f1arc\\fP", },
       +        { "sinh",         "\\f1sinh\\fP", },
       +        { "coth",         "\\f1coth\\fP", },
       +        { "tanh",         "\\f1tanh\\fP", },
       +        { "cosh",         "\\f1cosh\\fP", },
       +        { "lim",         "\\f1lim\\fP", },
       +        { "log",         "\\f1log\\fP", },
       +        { "ln",         "\\f1ln\\fP", },
       +        { "max",         "\\f1max\\fP", },
       +        { "min",         "\\f1min\\fP", },
       +        { "exp",         "\\f1exp\\fP", },
       +        { "det",         "\\f1det\\fP", },
       +        { 0,        0 }
        };
        
        int hash(char *s)
 (DIR) diff --git a/src/cmd/eqn/main.c b/src/cmd/eqn/main.c
       t@@ -1,5 +1,8 @@
        #include "e.h"
        
       +#undef inline
       +#define inline _inline
       +
        #define        MAXLINE        3600        /* maximum input line */
        
        char *version = "version Oct 24, 1991";
       t@@ -12,18 +15,17 @@ int        yyparse(void);
        void        settype(char *);
        int        getdata(void);
        int        getline(char *);
       -#define inline einline
        void        inline(void);
        void        init(void);
        void        init_tbl(void);
        
       -void
       +int
        main(int argc, char *argv[])
        {
                char *p, buf[20];
        
                cmdname = argv[0];
       -        if (p = getenv("TYPESETTER"))
       +        if ((p = getenv("TYPESETTER")))
                        typesetter = p;
                while (argc > 1 && argv[1][0] == '-') {
                        switch (argv[1][1]) {
       t@@ -71,7 +73,7 @@ main(int argc, char *argv[])
                                if (curfile->fin != stdin)
                                        fclose(curfile->fin);
                        }
       -        exit(0);
       +        return 0;
        }
        
        void settype(char *s)        /* initialize data for particular typesetter */
       t@@ -89,6 +91,7 @@ void settype(char *s)        /* initialize data for particular typesetter */
                        { minsize = 5; ttype = DEV202; }
        }
        
       +int
        getdata(void)
        {
                int i, type, ln;
       t@@ -137,9 +140,10 @@ getdata(void)
                return(0);
        }
        
       +int
        getline(char *s)
        {
       -        register c;
       +        register int c;
        
                while ((c=input()) != '\n' && c != EOF && c != lefteq) {
                        if (s >= in+MAXLINE) {
       t@@ -230,6 +234,7 @@ void init(void)
                        printf(".nr 99 \\n(.s\n");
        }
        
       +int
        salloc(void)
        {
                int i;
       t@@ -306,6 +311,7 @@ char *DPS(int f, int t)        /* delta ps (t-f) in printable form \s+d or \s-d or \s+-
                return p;
        }
        
       +int
        EFFPS(int n)        /* effective value of n */
        {
                if (n >= minsize)
 (DIR) diff --git a/src/cmd/eqn/matrix.c b/src/cmd/eqn/matrix.c
       t@@ -1,5 +1,6 @@
        #include "e.h"
        
       +int
        startcol(int type)        /* mark start of column in lp[] array */
        {
                int oct = ct;
 (DIR) diff --git a/src/cmd/eqn/text.c b/src/cmd/eqn/text.c
       t@@ -122,6 +122,7 @@ int isdigitrune(int c)
                return ('0'<=c && c<='9');
        }
        
       +int
        trans(int c, char *p1)
        {
                int f;
       t@@ -304,10 +305,10 @@ void cadd(int c)                /* add character c to end of cs */
                                if (ftp->ft == ITAL)        /* usual case */
                                        *csp++ = nextft;
                                else                /* gfont set, use it */
       -                                for (p = ftp->name; *csp = *p++; )
       +                                for (p = ftp->name; (*csp = *p++); )
                                                csp++;
                        } else {        /* inside some kind of font ... */
       -                        for (p = ftp->name; *csp = *p++; )
       +                        for (p = ftp->name; (*csp = *p++); )
                                        csp++;
                        }
                        lastft = nextft;
 (DIR) diff --git a/src/cmd/eqn/tuning.c b/src/cmd/eqn/tuning.c
       t@@ -98,21 +98,21 @@ struct tune {
                char        *cval;
        } tune[]        ={
          /* diacrit.c */
       -        "vec_def",        "\\f1\\v'-.5m'\\s-3\\(->\\s0\\v'.5m'\\fP",        /* was \s-2 & .45m */
       -        "dyad_def",        "\\f1\\v'-.5m'\\s-3\\z\\(<-\\|\\(->\\s0\\v'.5m'\\fP",
       -        "hat_def",        "\\f1\\v'-.05m'\\s+1^\\s0\\v'.05m'\\fP",        /* was .1 */
       -        "tilde_def",        "\\f1\\v'-.05m'\\s+1~\\s0\\v'.05m'\\fP",
       -        "dot_def",        "\\f1\\v'-.67m'.\\v'.67m'\\fP",
       -        "dotdot_def",        "\\f1\\v'-.67m'..\\v'.67m'\\fP",
       -        "utilde_def",        "\\f1\\v'1.0m'\\s+2~\\s-2\\v'-1.0m'\\fP",
       +        { "vec_def",        "\\f1\\v'-.5m'\\s-3\\(->\\s0\\v'.5m'\\fP" },      /* was \s-2 & .45m */
       +        { "dyad_def",        "\\f1\\v'-.5m'\\s-3\\z\\(<-\\|\\(->\\s0\\v'.5m'\\fP" },
       +        { "hat_def",        "\\f1\\v'-.05m'\\s+1^\\s0\\v'.05m'\\fP" },        /* was .1 */
       +        { "tilde_def",        "\\f1\\v'-.05m'\\s+1~\\s0\\v'.05m'\\fP" },
       +        { "dot_def",        "\\f1\\v'-.67m'.\\v'.67m'\\fP" },
       +        { "dotdot_def",        "\\f1\\v'-.67m'..\\v'.67m'\\fP" },
       +        { "utilde_def",        "\\f1\\v'1.0m'\\s+2~\\s-2\\v'-1.0m'\\fP" },
          /* funny.c */
       -        "sum_def",        "\\|\\v'.3m'\\s+5\\(*S\\s-5\\v'-.3m'\\|",
       -        "union_def",        "\\|\\v'.3m'\\s+5\\(cu\\s-5\\v'-.3m'\\|",
       -        "inter_def",        "\\|\\v'.3m'\\s+5\\(ca\\s-5\\v'-.3m'\\|",
       -        "prod_def",        "\\|\\v'.3m'\\s+5\\(*P\\s-5\\v'-.3m'\\|",
       +        { "sum_def",        "\\|\\v'.3m'\\s+5\\(*S\\s-5\\v'-.3m'\\|" },
       +        { "union_def",        "\\|\\v'.3m'\\s+5\\(cu\\s-5\\v'-.3m'\\|" },
       +        { "inter_def",        "\\|\\v'.3m'\\s+5\\(ca\\s-5\\v'-.3m'\\|" },
       +        { "prod_def",        "\\|\\v'.3m'\\s+5\\(*P\\s-5\\v'-.3m'\\|" },
          /* integral.c */
       -        "int_def",        "\\v'.1m'\\s+4\\(is\\s-4\\v'-.1m'",
       -        0, 0
       +        { "int_def",        "\\v'.1m'\\s+4\\(is\\s-4\\v'-.1m'" },
       +        { 0, 0 }
        };
        
        tbl        *ftunetbl[TBLSIZE];        /* user-defined names */
       t@@ -140,6 +140,8 @@ void ftune(char *s, char *t)        /* brute force for now */
                double f = atof(t);
                double *target;
        
       +        target = (double *) 0; /* gcc */
       +
                while (*t == ' ' || *t == '\t')
                        t++;
                if (eq(s, "Subbase"))
 (DIR) diff --git a/src/cmd/grap/find b/src/cmd/grap/find
       t@@ -1 +1 @@
       -exec /usr/bin/egrep -n "$1" *.[chyl]
       +grep $1 *.[ch]
 (DIR) diff --git a/src/cmd/grap/frame.c b/src/cmd/grap/frame.c
       t@@ -53,6 +53,8 @@ void frameside(int type, Attr *desc)        /* create and remember sides */
                int n;
                char buf[100];
        
       +        n = 0; /* gcc */
       +
                nsides++;
                switch (type) {
                case 0:                /* no side specified; kludge up all */
 (DIR) diff --git a/src/cmd/grap/grap.h b/src/cmd/grap/grap.h
       t@@ -110,7 +110,7 @@ extern char *grow(char *, char *, int, int);
        extern        int        lineno;
        extern        int        synerr;
        extern        int        codegen;
       -extern        char        tempfile[];
       +extern        char        *tempfile;
        extern        FILE        *tfd;
        
        extern        Point        ptmin, ptmax;
 (DIR) diff --git a/src/cmd/grap/input.c b/src/cmd/grap/input.c
       t@@ -135,6 +135,7 @@ char *delimstr(char *s)        /* get body of X ... X */
                return tostring(buf);
        }
        
       +int
        baldelim(int c, char *s)        /* replace c by balancing entry in s */
        {
                for ( ; *s; s += 2)
       t@@ -175,6 +176,7 @@ void dodef(Obj *stp)        /* collect args and switch input to defn */
                pushsrc(Macro, stp->val);
        }
        
       +int
        getarg(char *p)        /* pick up single argument, store in p, return length */
        {
                int n, c, npar;
       t@@ -215,6 +217,7 @@ extern        int        thru;
        extern        Obj        *thrudef;
        extern        char        *untilstr;
        
       +int
        input(void)
        {
                register int c;
       t@@ -230,10 +233,13 @@ input(void)
                return *ep++ = c;
        }
        
       +int
        nextchar(void)
        {
                register int c;
        
       +        c = 0; /* gcc */
       +
          loop:
                switch (srcp->type) {
                case Free:        /* free string */
       t@@ -384,6 +390,7 @@ void do_thru(void)        /* read one line, make into a macro expansion */
                pushsrc(Macro, thrudef->val);
        }
        
       +int
        unput(int c)
        {
                if (++pb >= pbuf + sizeof pbuf)
       t@@ -533,7 +540,7 @@ void copy(void)        /* begin input from file, etc. */
                FILE *fin;
        
                if (newfile) {
       -                if ((fin = fopen(unsharp(newfile), "r")) == NULL)
       +                if ((fin = fopen(newfile, "r")) == NULL)
                                ERROR "can't open file %s", newfile FATAL;
                        curfile++;
                        curfile->fin = fin;
 (DIR) diff --git a/src/cmd/grap/main.c b/src/cmd/grap/main.c
       t@@ -2,20 +2,20 @@
        #include <signal.h>
        #include <math.h>
        #include <stdlib.h>
       +#include <unistd.h>
        #include <string.h>
        #include "grap.h"
        #include "y.tab.h"
        
       +extern        char        *unsharp(char*);
       +
        int        dbg        = 0;
        
       -#ifndef GRAPDEFINES
       -#define GRAPDEFINES "#9/sys/lib/grap.defines"
       -#endif
       -char        *lib_defines        = GRAPDEFINES;
       +char        *lib_defines;
        
        int        lib        = 1;                /* 1 to include lib_defines */
        FILE        *tfd        = NULL;
       -char        tempfile[L_tmpnam];
       +char        *tempfile;
        
        int        synerr        = 0;
        int        codegen        = 0;                   /* 1=>output for this picture; 0=>no output */
       t@@ -32,17 +32,22 @@ char        *version = "version Dec 30, 1995";
        extern int yyparse(void);
        extern void setdefaults(void);
        extern void getdata(void);
       -extern        int        unlink(char *);
        
       +/* extern        int        unlink(char *); */ /* in unistd.h */
       +
       +int
        main(int argc, char *argv[])
        {
                extern void onintr(int), fpecatch(int);
        
       +        lib_defines = unsharp("#9/lib/grap.defines");
       +
                if (signal(SIGINT, SIG_IGN) != SIG_IGN)
                        signal(SIGINT, onintr);
                signal(SIGFPE, fpecatch);
                cmdname = argv[0];
       -        tmpnam(tempfile);
       +        tempfile = strdup("grap.XXXXXX");
       +        mkstemp(tempfile);
                while (argc > 1 && *argv[1] == '-') {
                        switch (argv[1][1]) {
                        case 'd':
       t@@ -85,7 +90,7 @@ main(int argc, char *argv[])
        
        void onintr(int n)
        {
       -        n;
       +        //n;
                if (!dbg)
                        unlink(tempfile);
                exit(1);
       t@@ -114,11 +119,11 @@ static struct {
                char        *name;
                double        val;
        } defaults[] ={
       -        "frameht", FRAMEHT,
       -        "framewid", FRAMEWID,
       -        "ticklen", TICKLEN,
       -        "slop", SLOP,
       -        NULL, 0
       +        { "frameht", FRAMEHT },
       +        { "framewid", FRAMEWID },
       +        { "ticklen", TICKLEN },
       +        { "slop", SLOP },
       +        { NULL, 0 }
        };
        
        void setdefaults(void)        /* set default sizes for variables */
 (DIR) diff --git a/src/cmd/grap/print.c b/src/cmd/grap/print.c
       t@@ -184,7 +184,7 @@ void do_first(void)        /* done at first .G1:  definitions, etc. */
                sprintf(buf, "define pid /%d/\n", getpid());
                pbstr(buf);        
                if (lib != 0) {
       -                if ((fp = fopen(unsharp(lib_defines), "r")) != NULL) {
       +                if ((fp = fopen(lib_defines, "r")) != NULL) {
                                sprintf(buf1, "copy \"%s\"\n", lib_defines);
                                pbstr(buf1);
                                fclose(fp);
       t@@ -226,8 +226,8 @@ void opentemp(void)
                if (tfd != NULL)
                        fclose(tfd);
                if (tfd != stdout) {
       -//                if (tfd != NULL)
       -//                        fclose(tfd);
       +                if (tfd != NULL)
       +                        fclose(tfd);
                        if ((tfd = fopen(tempfile, "w")) == NULL) {
                                fprintf(stderr, "grap: can't open %s\n", tempfile);
                                exit(1);
 (DIR) diff --git a/src/cmd/grap/ticks.c b/src/cmd/grap/ticks.c
       t@@ -481,6 +481,7 @@ char *desc_str(Attr *a)        /* convert DOT to "dotted", etc. */
                        return p;
        }
        
       +int
        sidelog(int logflag, int side)        /* figure out whether to scale a side */
        {
                if ((logflag & XFLAG) && ((side & (BOT|TOP)) || side == 0))
 (DIR) diff --git a/src/cmd/graph/graph.c b/src/cmd/graph/graph.c
       t@@ -87,7 +87,7 @@ int conv(float, struct xy *, int *);
        int symbol(int, int, int);
        void axlab(char, struct xy *, char *);
        
       -void main(int argc,char *argv[]){
       +int main(int argc,char *argv[]){
        
                openpl();
                range(0,0,4096,4096);
       t@@ -115,6 +115,7 @@ void main(int argc,char *argv[]){
                plot();
                closepl();
                exits(0);
       +        return 0;        /* gcc */
        }
        
        void init(struct xy *p){
       t@@ -243,6 +244,12 @@ void limread(struct xy *p, int *argcp, char ***argvp){
                p->xqf = 1;
        }
        
       +#ifdef NOTDEF
       +isdigit(char c){
       +        return '0'<=c && c<='9';
       +}
       +#endif
       +
        int
        numb(float *np, int *argcp, char ***argvp){
                char c;
       t@@ -629,6 +636,7 @@ getfloat(float *p){
                i = scanf("%f",p);
                return(i==1);
        }
       +
        int
        getstring(void){
                int i;