scott@futures.UUCP (Scott Boyd) (05/03/89)
The scrabble game recently posted by Wayne Christopher requires an ANSI C or
GNU C compiler to use. Attached are the diffs needed to build it on systems
without an ANSI or GNU C compiler. These patches have been tested with
both GNU C 1.34 (ANSI) compiler and the Sun C (non-ANSI) compiler on a
Sun386i/250 using SunOS 4.01.
Use Larry Wall's patch program to apply.
Enjoy.
-------------------------------------------------------------------------------
Scott Boyd Commodity Futures, Inc.
uunet!futures!scott P.O. Box 620484
Woodside, CA 94062
---------------------------- PATCHES START HERE -------------------------------
*** board.c.old Mon Apr 17 17:10:25 1989
--- board.c Mon Apr 17 16:56:52 1989
***************
*** 80,87 ****
--- 80,94 ----
return (board);
}
+ #ifdef _STDC_
void
boardmove(board_t *board, move_t *move)
+ #else
+ void
+ boardmove(board, move)
+ board_t *board;
+ move_t *move;
+ #endif
{
int i;
***************
*** 101,108 ****
--- 108,121 ----
return;
}
+ #ifdef _STDC_
char
pickletter(board_t *board)
+ #else
+ char
+ pickletter(board)
+ board_t *board;
+ #endif
{
if (board->numleft)
return (board->pool[--board->numleft]);
***************
*** 115,122 ****
--- 128,142 ----
static char lbchar[] = " `\"(<";
static char rbchar[] = " '\")>";
+ #ifdef _STDC_
void
printboard(board_t *board, FILE *fp)
+ #else
+ void
+ printboard(board,fp)
+ board_t *board;
+ FILE *fp;
+ #endif
{
int i, j;
char c;
*** dict.c.old Mon Apr 17 17:10:19 1989
--- dict.c Mon Apr 17 16:57:02 1989
***************
*** 10,23 ****
--- 10,34 ----
#include "scrabble.h"
+ #ifdef _STDC_
static int dicthash(char *word, int tabsize);
static void getem(word_t **wordp, char *lbuf, int place, char *opt,
int numopt, int len);
+ #else
+ static int dicthash();
+ static void getem();
+ #endif
static dict_t *dictionary;
+ #ifdef _STDC_
void
readdict(char *file)
+ #else
+ void
+ readdict(file)
+ char *file;
+ #endif
{
FILE *fp;
char buf[BSIZE], *e;
***************
*** 88,95 ****
--- 99,112 ----
return;
}
+ #ifdef _STDC_
void
writedict(char *file)
+ #else
+ void
+ writedict(file)
+ char *file;
+ #endif
{
int i, j, k = 0;
word_t *word;
***************
*** 117,124 ****
--- 134,147 ----
return;
}
+ #ifdef _STDC_
void
addword(char *word)
+ #else
+ void
+ addword(word)
+ char *word;
+ #endif
{
int key = dicthash(word, HASH_SIZE);
int len = strlen(word);
***************
*** 144,151 ****
--- 167,180 ----
return;
}
+ #ifdef _STDC_
void
remword(char *word)
+ #else
+ void
+ remword(word)
+ char *word;
+ #endif
{
int key = dicthash(word, HASH_SIZE);
int len = strlen(word);
***************
*** 169,176 ****
--- 198,211 ----
return;
}
+ #ifdef _STDC_
bool
isaword(char *poss)
+ #else
+ bool
+ isaword(poss)
+ char *poss;
+ #endif
{
word_t *word;
int len = strlen(poss);
***************
*** 192,199 ****
--- 227,244 ----
* up the length.
*/
+ #ifdef _STDC_
word_t *
getpossibles(char *opt, int numopt, char *req, int numreq, int len)
+ #else
+ word_t *
+ getpossibles(opt, numopt, req, numreq, len)
+ char *opt;
+ int numopt;
+ char *req;
+ int numreq;
+ int len;
+ #endif
{
char lbuf[SIZE];
int i;
***************
*** 232,239 ****
--- 277,295 ----
return (word);
}
+ #ifdef _STDC_
static void
getem(word_t **wordp, char *lbuf, int place, char *opt, int numopt, int len)
+ #else
+ static void
+ getem(wordp, lbuf, place, opt, numopt, len)
+ word_t **wordp;
+ char *lbuf;
+ int place;
+ char *opt;
+ int numopt;
+ int len;
+ #endif
{
int key;
word_t *set, *ww;
***************
*** 277,284 ****
--- 333,347 ----
/* A return value of -1 denotes that this is a bad word. */
+ #ifdef _STDC_
static int
dicthash(char *word, int tabsize)
+ #else
+ static int
+ dicthash(word, tabsize)
+ char *word;
+ int tabsize;
+ #endif
{
int i;
unsigned long result = 0;
*** move.c.old Mon Apr 17 17:10:20 1989
--- move.c Mon Apr 17 16:57:17 1989
***************
*** 10,15 ****
--- 10,16 ----
#include "scrabble.h"
+ #ifdef _STDC_
static void dopos(board_t *board, player_t *player, int x, int y,
bool horiz, move_t *best);
static int wordpoints(board_t *board, int x, int y, bool horiz, int len,
***************
*** 18,26 ****
--- 19,41 ----
static bool validword(board_t *board, int x, int y, int len, char subc,
bool horiz, bool machine, bool check);
static bool validlocation(board_t *board, int x, int y, bool horiz, int len);
+ #else
+ static void dopos();
+ static int wordpoints();
+ static bool validword();
+ static bool validlocation();
+ #endif
+ #ifdef _STDC_
void
bestmove(board_t *board, player_t *player, move_t *best)
+ #else
+ void
+ bestmove(board, player, best)
+ board_t *board;
+ player_t *player;
+ move_t *best;
+ #endif
{
int x, y;
move_t try;
***************
*** 42,49 ****
--- 57,72 ----
#ifdef notdef
+ #ifdef _STDC_
void
printmove(int which, move_t *move, FILE *fp)
+ #else
+ void
+ printmove(which, move, fp)
+ int which;
+ move_t *move;
+ FILE *fp;
+ #endif
{
fprintf(fp, "Player %d: \"%s\", %s at (%d, %d) for %d points.\n",
which, move->word, move->horiz ? "horiz" : "vert",
***************
*** 54,61 ****
--- 77,95 ----
#endif
+ #ifdef _STDC_
static void
dopos(board_t *board, player_t *player, int x, int y, bool horiz, move_t *best)
+ #else
+ static void
+ dopos(board, player, x, y, horiz, best)
+ board_t *board;
+ player_t *player;
+ int x;
+ int y;
+ bool horiz;
+ move_t *best;
+ #endif
{
char opt[SIZE];
char req[SIZE];
***************
*** 132,139 ****
--- 166,183 ----
return;
}
+ #ifdef _STDC_
static bool
validlocation(board_t *board, int x, int y, bool horiz, int len)
+ #else
+ static bool
+ validlocation(board, x, y, horiz, len)
+ board_t *board;
+ int x;
+ int y;
+ bool horiz;
+ int len;
+ #endif
{
int i;
***************
*** 171,178 ****
--- 215,231 ----
* be invalid.
*/
+ #ifdef _STDC_
void
trymove(move_t *move, board_t *board, player_t *player, bool check)
+ #else
+ void
+ trymove(move, board, player, check)
+ move_t *move;
+ board_t *board;
+ player_t *player;
+ bool check;
+ #endif
{
bool used[WORK_SIZE];
int numused = 0;
***************
*** 319,327 ****
--- 372,393 ----
return;
}
+ #ifdef _STDC_
static bool
validword(board_t *board, int x, int y, int len, char subc, bool horiz,
bool machine, bool check)
+ #else
+ static bool
+ validword(board, x, y, len, subc, horiz, machine, check)
+ board_t *board;
+ int x;
+ int y;
+ int len;
+ char subc;
+ bool horiz;
+ bool machine;
+ bool check;
+ #endif
{
char buf[BSIZE], qbuf[BSIZE], c;
int i;
***************
*** 364,372 ****
--- 430,450 ----
}
}
+ #ifdef _STDC_
static int
wordpoints(board_t *board, int x, int y, bool horiz, int len, char *word,
char subc, int wx, int wy, bool allbonuses, bool *wilds)
+ #else
+ static int
+ wordpoints(board, x, y, horiz, len, word, subc, wx, wy, allbonuses, wilds)
+ board_t *board;
+ int x,y;
+ bool horiz;
+ int len;
+ char *word, subc;
+ int wx,wy;
+ bool allbonuses, *wilds;
+ #endif
{
int value = 0;
int mult = 1;
*** player.c.old Mon Apr 17 17:10:27 1989
--- player.c Mon Apr 17 16:57:24 1989
***************
*** 10,17 ****
--- 10,24 ----
#include "scrabble.h"
+ #ifdef _STDC_
player_t *
makeplayer(board_t *board, int num)
+ #else
+ player_t *
+ makeplayer(board, num)
+ board_t *board;
+ int num;
+ #endif
{
player_t *player = (player_t *) util_malloc(sizeof (player_t));
int i;
***************
*** 51,58 ****
--- 58,73 ----
/* Note that this must be called before boardmove. */
+ #ifdef _STDC_
void
playermove(board_t *board, player_t *player, move_t *move)
+ #else
+ void
+ playermove(board, player, move)
+ board_t *board;
+ player_t *player;
+ move_t *move;
+ #endif
{
int i, j, k;
char c;
***************
*** 121,128 ****
--- 136,151 ----
#ifdef notdef
+ #ifdef _STDC_
void
printplayer(player_t *player, int num, FILE *fp)
+ #else
+ void
+ printplayer(player, num, fp)
+ player_t *player;
+ int num;
+ FILE *fp;
+ #endif
{
int i;
*** plural.c.old Mon Apr 17 17:10:27 1989
--- plural.c Mon Apr 17 16:57:39 1989
***************
*** 26,33 ****
--- 26,39 ----
{ "", "s" }
} ;
+ #ifdef _STDC_
void
pluralize(char *word)
+ #else
+ void
+ pluralize(word)
+ char *word;
+ #endif
{
int i, wl, sl;
char *s, *t;
*** savegame.c.old Mon Apr 17 17:10:28 1989
--- savegame.c Mon Apr 17 16:57:57 1989
***************
*** 10,35 ****
--- 10,65 ----
#include "scrabble.h"
+ #ifdef _STDC_
board_t *
restoregame(FILE *fp, int *nump, int *whosup, int *turn)
+ #else
+ board_t *
+ restoregame(fp, nump, whosup, turn)
+ FILE *fp;
+ int *nump;
+ int *whosup;
+ int *turn;
+ #endif
{
return (NULL);
}
+ #ifdef _STDC_
player_t *
restoreplayer(FILE *fp)
+ #else
+ player_t *
+ restoreplayer(fp)
+ FILE *fp;
+ #endif
{
return (NULL);
}
+ #ifdef _STDC_
void
savegame(FILE *fp, int nump, int whosup, int turn)
+ #else
+ void
+ savegame(fp, nump, whosup, turn)
+ FILE *fp;
+ int nump;
+ int whosup;
+ int turn;
+ #endif
{
return;
}
+ #ifdef _STDC_
void
saveplayer(FILE *fp)
+ #else
+ void
+ saveplayer(fp)
+ FILE *fp;
+ #endif
{
return;
}
*** scrabble.c.old Mon Apr 17 17:10:22 1989
--- scrabble.c Mon Apr 17 16:58:05 1989
***************
*** 16,28 ****
--- 16,39 ----
bool userpick = false;
bool confirm = false;
+ #ifdef _STDC_
static bool domove(board_t *board, player_t **players, int which);
+ #else
+ static bool domove();
+ #endif
static void sighandler();
static char *dictfile = DICT_FILE;
+ #ifdef _STDC_
int
main(int ac, char **av)
+ #else
+ int
+ main(ac, av)
+ int ac;
+ char **av;
+ #endif
{
board_t *board;
player_t *players[MAX_PLAYERS];
***************
*** 179,186 ****
--- 190,205 ----
exit(1);
}
+ #ifdef _STDC_
static bool
domove(board_t *board, player_t **players, int which)
+ #else
+ static bool
+ domove(board, players, which)
+ board_t *board;
+ player_t **players;
+ int which;
+ #endif
{
move_t move;
char buf[BSIZE];
*** tty.c.old Mon Apr 17 17:10:24 1989
--- tty.c Mon Apr 17 16:58:12 1989
***************
*** 50,57 ****
--- 50,65 ----
" ? : Print this help message. "
} ;
+ #ifdef _STDC_
void
tty_init(board_t *board, player_t *players[], int numplayers)
+ #else
+ void
+ tty_init(board, players, numplayers)
+ board_t *board;
+ player_t *players[];
+ int numplayers;
+ #endif
{
int i, j;
int x, y;
***************
*** 121,128 ****
--- 129,142 ----
return;
}
+ #ifdef _STDC_
void
tty_message(char *message)
+ #else
+ void
+ tty_message(message)
+ char *message;
+ #endif
{
/* Print the message and clear the line below it. */
messline = (messline + 1) % MESS_SIZE;
***************
*** 139,146 ****
--- 153,166 ----
return;
}
+ #ifdef _STDC_
char *
tty_question(char *message)
+ #else
+ char *
+ tty_question(message)
+ char *message;
+ #endif
{
static char buf[BSIZE];
***************
*** 156,163 ****
--- 176,189 ----
return (buf);
}
+ #ifdef _STDC_
bool
tty_confirm(char *message)
+ #else
+ bool
+ tty_confirm(message)
+ char *message;
+ #endif
{
char c;
***************
*** 176,183 ****
--- 202,217 ----
* a word. Other commands are 'T', 'S', 'R', 'Q', and '?'.
*/
+ #ifdef _STDC_
command_t
tty_command(board_t *board, player_t *player, move_t *mv)
+ #else
+ command_t
+ tty_command(board, player, mv)
+ board_t *board;
+ player_t *player;
+ move_t *mv;
+ #endif
{
int x = 7, y = 7;
int px, py;
***************
*** 300,307 ****
--- 334,349 ----
return (MOVE);
}
+ #ifdef _STDC_
void
tty_drawplayer(player_t *player, int pos, bool up)
+ #else
+ void
+ tty_drawplayer(player, pos, up)
+ player_t *player;
+ int pos;
+ bool up;
+ #endif
{
int i;
***************
*** 317,324 ****
--- 359,373 ----
return;
}
+ #ifdef _STDC_
void
tty_drawsummary(board_t *board, int turn)
+ #else
+ void
+ tty_drawsummary(board, turn)
+ board_t *board;
+ int turn;
+ #endif
{
wmove(summary, 0, 0);
wprintw(summary, " Game turn: %d ", turn);
***************
*** 329,336 ****
--- 378,393 ----
return;
}
+ #ifdef _STDC_
void
tty_drawmove(board_t *board, move_t *mv, player_t *player)
+ #else
+ void
+ tty_drawmove(board, mv, player)
+ board_t *board;
+ move_t *mv;
+ player_t *player;
+ #endif
{
int i, x, y;
char c;
*** user.c.old Mon Apr 17 17:10:29 1989
--- user.c Mon Apr 17 16:58:20 1989
***************
*** 13,18 ****
--- 13,19 ----
#include "scrabble.h"
struct device {
+ #ifdef _STDC_
void (*init)(board_t *board, player_t *players[], int numplayers);
void (*message)(char *message);
char *(*question)(char *message);
***************
*** 21,26 ****
--- 22,37 ----
void (*drawplayer)(player_t *player, int pos, bool up);
void (*drawsummary)(board_t *board, int turn);
void (*drawmove)(board_t *board, move_t *move, player_t *player);
+ #else
+ void (*init)();
+ void (*message)();
+ char *(*question)();
+ bool (*confirm)();
+ command_t (*command)();
+ void (*drawplayer)();
+ void (*drawsummary)();
+ void (*drawmove)();
+ #endif
void (*givehelp)();
void (*update)();
void (*cleanup)();
***************
*** 42,49 ****
--- 53,69 ----
static struct device *dev;
+ #ifdef _STDC_
void
user_init(devtype_t type, board_t *board, player_t *players[], int numplayers)
+ #else
+ void
+ user_init(type, board, players, numplayers)
+ devtype_t type;
+ board_t *board;
+ player_t *players[];
+ int numplayers;
+ #endif
{
switch (type) {
case DEV_TTY: dev = &tty_device; break;
***************
*** 54,100 ****
--- 74,169 ----
return;
}
+ #ifdef _STDC_
void
user_message(char *message)
+ #else
+ void
+ user_message(message)
+ char *message;
+ #endif
{
(dev->message)(message);
return;
}
+ #ifdef _STDC_
char *
user_question(char *message)
+ #else
+ char *
+ user_question(message)
+ char *message;
+ #endif
{
return ((dev->question)(message));
}
+ #ifdef _STDC_
bool
user_confirm(char *message)
+ #else
+ bool
+ user_confirm(message)
+ char *message;
+ #endif
{
return ((dev->confirm)(message));
}
+ #ifdef _STDC_
command_t
user_command(board_t *board, player_t *player, move_t *move)
+ #else
+ command_t
+ user_command(board, player, move)
+ board_t *board;
+ player_t *player;
+ move_t *move;
+ #endif
{
return ((dev->command)(board, player, move));
}
+ #ifdef _STDC_
void
user_drawplayer(player_t *player, int pos, bool up)
+ #else
+ void
+ user_drawplayer(player, pos, up)
+ player_t *player;
+ int pos;
+ bool up;
+ #endif
{
(dev->drawplayer)(player, pos, up);
return;
}
+ #ifdef _STDC_
void
user_drawsummary(board_t *board, int turn)
+ #else
+ void
+ user_drawsummary(board, turn)
+ board_t *board;
+ int turn;
+ #endif
{
(dev->drawsummary)(board, turn);
return;
}
+ #ifdef _STDC_
void
user_drawmove(board_t *board, move_t *move, player_t *player)
+ #else
+ void
+ user_drawmove(board, move, player)
+ board_t *board;
+ move_t *move;
+ player_t *player;
+ #endif
{
(dev->drawmove)(board, move, player);
return;
***************
*** 123,130 ****
--- 192,207 ----
#ifdef notdef
+ #ifdef _STDC_
bool
readmove(board_t *board, player_t *player, move_t *move)
+ #else
+ bool
+ readmove(board, player, move)
+ board_t *board;
+ player_t *player;
+ move_t *move;
+ #endif
{
char buf[BSIZE];
int x, y, i;
*** date.h.old Mon Apr 17 17:10:18 1989
--- date.h Mon Apr 10 13:19:03 1989
***************
*** 1,3 ****
! #define DATE "Thu Apr 6 12:36:51 PDT 1989"
! #define HOST "saab"
! #define USER "billr"
--- 1,3 ----
! #define DATE "Mon Apr 10 13:18:44 PDT 1989"
! #define HOST "futures"
! #define USER "scott"
*** scrabble.h.old Mon Apr 17 17:10:23 1989
--- scrabble.h Mon Apr 17 16:59:02 1989
***************
*** 120,126 ****
--- 120,130 ----
/* scrabble.c */
+ #ifdef _STDC_
extern int main(int ac, char **av);
+ #else
+ extern int main();
+ #endif
extern dict_t *dictionaries;
extern bool debug;
extern bool userpick;
***************
*** 128,135 ****
--- 132,144 ----
/* board.c */
extern board_t *makeboard();
+ #ifdef _STDC_
extern void boardmove(board_t *board, move_t *move);
extern char pickletter(board_t *board);
+ #else
+ extern void boardmove();
+ extern char pickletter();
+ #endif
extern int letterpoint_values[];
/* extern void printboard(board_t *board, FILE *fp); */
***************
*** 136,148 ****
--- 145,163 ----
/* move.c */
+ #ifdef _STDC_
extern void bestmove(board_t *board, player_t *player, move_t *best);
extern void trymove(move_t *move, board_t *board, player_t *player, bool check);
+ #else
+ extern void bestmove();
+ extern void trymove();
+ #endif
/* extern void printmove(int which, move_t *move, FILE *fp); */
/* dict.c */
+ #ifdef _STDC_
extern void readdict(char *file);
extern word_t *getpossibles(char *req, int numreq, char *opt, int numopt,
int len);
***************
*** 150,172 ****
--- 165,208 ----
extern void addword(char *word);
extern void remword(char *word);
extern void writedict(char *file);
+ #else
+ extern void readdict();
+ extern word_t *getpossibles();
+ extern bool isaword();
+ extern void addword();
+ extern void remword();
+ extern void writedict();
+ #endif
/* player.c */
+ #ifdef _STDC_
extern player_t *makeplayer(board_t *board, int num);
extern void playermove(board_t *board, player_t *player, move_t *move);
+ #else
+ extern player_t *makeplayer();
+ extern void playermove();
+ #endif
/* extern void printplayer(player_t *player, int num, FILE *fp); */
/* savegame.c */
+ #ifdef _STDC_
extern board_t *restoregame(FILE *fp, int *nump, int *whosup, int *turn);
extern player_t *restoreplayer(FILE *fp);
extern void savegame(FILE *fp, int nump, int whosup, int turn);
extern void saveplayer(FILE *fp);
+ #else
+ extern board_t *restoregame();
+ extern player_t *restoreplayer();
+ extern void savegame();
+ extern void saveplayer();
+ #endif
/* user.c */
+ #ifdef _STDC_
extern void user_init(devtype_t type, board_t *board, player_t *players[],
int numplayers);
extern void user_message(char *message);
***************
*** 176,181 ****
--- 212,227 ----
extern void user_drawplayer(player_t *player, int pos, bool up);
extern void user_drawsummary(board_t *board, int turn);
extern void user_drawmove(board_t *board, move_t *move, player_t *player);
+ #else
+ extern void user_init();
+ extern void user_message();
+ extern char *user_question();
+ extern bool user_confirm();
+ extern command_t user_command();
+ extern void user_drawplayer();
+ extern void user_drawsummary();
+ extern void user_drawmove();
+ #endif
extern void user_givehelp();
extern void user_update();
extern void user_cleanup();
***************
*** 184,189 ****
--- 230,236 ----
/* tty.c */
+ #ifdef _STDC_
extern void tty_init(board_t *board, player_t *players[], int numplayers);
extern void tty_message(char *message);
extern char *tty_question(char *message);
***************
*** 192,197 ****
--- 239,254 ----
extern void tty_drawplayer(player_t *player, int pos, bool up);
extern void tty_drawsummary(board_t *board, int turn);
extern void tty_drawmove(board_t *board, move_t *mv, player_t *player);
+ #else
+ extern void tty_init();
+ extern void tty_message();
+ extern char *tty_question();
+ extern bool tty_confirm();
+ extern command_t tty_command();
+ extern void tty_drawplayer();
+ extern void tty_drawsummary();
+ extern void tty_drawmove();
+ #endif
extern void tty_givehelp();
extern void tty_update();
extern void tty_cleanup();
*** Makefile.old Mon Apr 17 17:10:17 1989
--- Makefile Mon Apr 10 12:27:59 1989
***************
*** 15,21 ****
#---- Tool specific stuff ----
! DICT_DEF = -DDICT_FILE=\"dictionary\"
PROGRAM = scrabble
--- 15,21 ----
#---- Tool specific stuff ----
! DICT_DEF = -DDICT_FILE=\"/usr/dict/words\"
PROGRAM = scrabble
***************
*** 69,75 ****
MISC =
! CC = gcc -W -fwritable-strings
OPT_LIBS = $(SPEC_OPT_LIBS)
--- 69,75 ----
MISC =
! #CC = gcc -W -fwritable-strings
OPT_LIBS = $(SPEC_OPT_LIBS)
***************
*** 77,83 ****
PROF_LIBS = $(SPEC_PROF_LIBS)
! OPT_LDFLAGS = -lcurses -ltermlib -lX -lm -O
DEBUG_LDFLAGS = -lcurses -ltermlib -lX -lm -g
--- 77,84 ----
PROF_LIBS = $(SPEC_PROF_LIBS)
! #OPT_LDFLAGS = -lcurses -ltermlib -lX -lm -O
! OPT_LDFLAGS = -lcurses -ltermlib -lm -O
DEBUG_LDFLAGS = -lcurses -ltermlib -lX -lm -g
***************
*** 87,93 ****
#---- State ----
! CFLAGS=-O -g
LIBS=$(OPT_LIBS)
LDFLAGS=$(OPT_LDFLAGS)
--- 88,95 ----
#---- State ----
! #CFLAGS=-O -g
! CFLAGS=-g
LIBS=$(OPT_LIBS)
LDFLAGS=$(OPT_LDFLAGS)
--
-------------------------------------------------------------------------------
Scott Boyd Commodity Futures, Inc.
uunet!futures!scott P.O. Box 620484
Woodside, CA 94062scott@futures.UUCP (Scott Boyd) (05/05/89)
I've received some email about a problem with the file tty.c after the
non-ansi C diffs are applied to Wayne Christopher's scrabble program.
This seems to be problem with some C compilers that won't allow an
enumerated type to be used as an array subscript. Most compilers issue a
warning and go on, but some are stopped dead in their tracks.
I'm posting this trivial patch, because the error message generated is
rather confusing. Below is an example of the problem, plus a patch.
-------------------------------------------------------------------------------
Scott Boyd Commodity Futures, Inc.
uunet!futures!scott P.O. Box 620484
Woodside, CA 94062
-------------------------------------------------------------------------------
Here's the problem:
cc -DDICT_FILE=\"/usr/dict/words\" -I. -I../include -g -c tty.c
"tty.c", line 104: operands of + have incompatible types
"tty.c", line 104: illegal indirection
"tty.c", line 108: operands of + have incompatible types
"tty.c", line 108: illegal indirection
Here's the patch:
*** tty.c.last Thu May 4 14:12:40 1989
--- tty.c Thu May 4 11:33:22 1989
***************
*** 101,111 ****
for (j = 0; j < 15; j++) {
bpos(x, y, i, j);
wmove(boardwin, y, x - 1);
! waddch(boardwin, lbchar[board->bonus[j][i]]);
wmove(boardwin, y, x);
waddch(boardwin, '.');
wmove(boardwin, y, x + 1);
! waddch(boardwin, rbchar[board->bonus[j][i]]);
}
/* Draw the scores display... */
--- 101,111 ----
for (j = 0; j < 15; j++) {
bpos(x, y, i, j);
wmove(boardwin, y, x - 1);
! waddch(boardwin, lbchar[(int)board->bonus[j][i]]);
wmove(boardwin, y, x);
waddch(boardwin, '.');
wmove(boardwin, y, x + 1);
! waddch(boardwin, rbchar[(int)board->bonus[j][i]]);
}
/* Draw the scores display... */
--
-------------------------------------------------------------------------------
Scott Boyd Commodity Futures, Inc.
uunet!futures!scott P.O. Box 620484
Woodside, CA 94062