Merge the GCC5 and build fix branches.

This fixes all warnings produced by GCC 5, except the ones related to
system functions.  Those could be fixed by including the proper headers,
but it would be better to replace the system-dependent code with
functions from mdport.c.
This commit is contained in:
John "Elwin" Edwards 2016-03-11 19:47:52 -05:00
commit 8df0a6308d
52 changed files with 416 additions and 392 deletions

View file

@ -70,7 +70,7 @@ f_slot(void)
* Find a particular slot in the table
*/
struct delayed_action *
find_slot(int (*func)())
find_slot(void (*func)())
{
reg int i;
reg struct delayed_action *dev;
@ -87,7 +87,7 @@ find_slot(int (*func)())
* Start a daemon, takes a function.
*/
void
start_daemon(int (*func)(), void *arg, int type)
start_daemon(void (*func)(), void *arg, int type)
{
reg struct delayed_action *dev;
@ -107,7 +107,7 @@ start_daemon(int (*func)(), void *arg, int type)
* Remove a daemon from the list
*/
void
kill_daemon(int (*func)())
kill_daemon(void (*func)())
{
reg struct delayed_action *dev;
reg int i;
@ -155,7 +155,7 @@ do_daemons(int flag)
* Start a fuse to go off in a certain number of turns
*/
void
fuse(int (*func)(), void *arg, int time, int type)
fuse(void (*func)(), void *arg, int time, int type)
{
reg struct delayed_action *wire;
@ -175,7 +175,7 @@ fuse(int (*func)(), void *arg, int time, int type)
* Increase the time until a fuse goes off
*/
void
lengthen(int (*func)(), int xtime)
lengthen(void (*func)(), int xtime)
{
reg struct delayed_action *wire;
@ -190,7 +190,7 @@ lengthen(int (*func)(), int xtime)
* Put out a fuse
*/
void
extinguish(int (*func)())
extinguish(void (*func)())
{
reg struct delayed_action *wire;

View file

@ -20,17 +20,18 @@
bool roll_em(struct thing *att_er, struct thing *def_er, struct object *weap,
bool hurl, struct object *cur_weapon, bool back_stab);
void hit(struct object *weapon, struct thing *tp, char *er, char *ee,
bool back_stab);
void miss(struct object *weapon, struct thing *tp, char *er, char *ee);
void hit(struct object *weapon, struct thing *tp, const char *er,
const char *ee, bool back_stab);
void miss(struct object *weapon, struct thing *tp, const char *er,
const char *ee);
int dext_plus(int dexterity);
int str_plus(short str);
int add_dam(short str);
int hung_dam(void);
void thunk(struct object *weap, struct thing *tp, char *mname);
void m_thunk(struct object *weap, struct thing *tp, char *mname);
void bounce(struct object *weap, struct thing *tp, char *mname);
void m_bounce(struct object *weap, struct thing *tp, char *mname);
void thunk(struct object *weap, struct thing *tp, const char *mname);
void m_thunk(struct object *weap, struct thing *tp, const char *mname);
void bounce(struct object *weap, struct thing *tp, const char *mname);
void m_bounce(struct object *weap, struct thing *tp, const char *mname);
struct object *wield_weap(struct object *thrown, struct thing *mp);
void explode(struct thing *tp);
@ -1037,7 +1038,7 @@ roll_em(struct thing *att_er, struct thing *def_er, struct object *weap,
*/
char *
prname(char *who, bool upper)
prname(const char *who, bool upper)
{
static char tbuf[LINELEN];
@ -1062,7 +1063,8 @@ prname(char *who, bool upper)
*/
void
hit(struct object *weapon, struct thing *tp, char *er, char *ee, bool back_stab)
hit(struct object *weapon, struct thing *tp, const char *er, const char *ee,
bool back_stab)
{
register char *s = NULL;
char
@ -1119,7 +1121,7 @@ hit(struct object *weapon, struct thing *tp, char *er, char *ee, bool back_stab)
*/
void
miss(struct object *weapon, struct thing *tp, char *er, char *ee)
miss(struct object *weapon, struct thing *tp, const char *er, const char *ee)
{
register char *s = NULL;
char
@ -1226,7 +1228,7 @@ hung_dam(void)
*/
void
thunk(struct object *weap, struct thing *tp, char *mname)
thunk(struct object *weap, struct thing *tp, const char *mname)
{
/* tp: Defender */
char *def_name; /* Name of defender */
@ -1254,7 +1256,7 @@ thunk(struct object *weap, struct thing *tp, char *mname)
*/
void
m_thunk(struct object *weap, struct thing *tp, char *mname)
m_thunk(struct object *weap, struct thing *tp, const char *mname)
{
char *att_name; /* Name of attacker */
@ -1281,7 +1283,7 @@ m_thunk(struct object *weap, struct thing *tp, char *mname)
*/
void
bounce(struct object *weap, struct thing *tp, char *mname)
bounce(struct object *weap, struct thing *tp, const char *mname)
{
/* tp: Defender */
char *def_name; /* Name of defender */
@ -1309,7 +1311,7 @@ bounce(struct object *weap, struct thing *tp, char *mname)
*/
void
m_bounce(struct object *weap, struct thing *tp, char *mname)
m_bounce(struct object *weap, struct thing *tp, const char *mname)
{
char *att_name; /* Name of attacker */

View file

@ -28,8 +28,8 @@
struct optstruct {
char *o_name; /* option name */
char *o_prompt; /* prompt for interactive entry */
int *o_opt; /* pointer to thing to set */
int (*o_putfunc)(); /* function to print value */
void *o_opt; /* pointer to thing to set */
void (*o_putfunc)(); /* function to print value */
int (*o_getfunc)(); /* function to get value interactively */
};
@ -39,38 +39,38 @@ int get_ro(WINDOW *win, int oy, int ox);
int get_restr(char *optstr, WINDOW *win);
int get_score(char *optstr, WINDOW *win);
void put_abil(int *ability, WINDOW *win);
void get_abil(int *abil, WINDOW *win);
int get_abil(int *abil, WINDOW *win);
void put_quest(int *quest, WINDOW *win);
void get_quest(int *quest, WINDOW *win);
int get_quest(int *quest, WINDOW *win);
void put_bool(bool *b, WINDOW *win);
int get_bool(bool *bp, WINDOW *win);
void put_str(char *str, WINDOW *win);
OPTION optlist[] = {
{"terse", "Terse output: ",
(int *) &terse, put_bool, get_bool },
(void *) &terse, put_bool, get_bool },
{"flush", "Flush typeahead during battle: ",
(int *) &fight_flush, put_bool, get_bool },
(void *) &fight_flush, put_bool, get_bool },
{"jump", "Show position only at end of run: ",
(int *) &jump, put_bool, get_bool },
(void *) &jump, put_bool, get_bool },
{"step", "Do inventories one line at a time: ",
(int *) &slow_invent, put_bool, get_bool },
(void *) &slow_invent, put_bool, get_bool },
{"askme", "Ask me about unidentified things: ",
(int *) &askme, put_bool, get_bool },
(void *) &askme, put_bool, get_bool },
{"pickup", "Pick things up automatically: ",
(int *) &auto_pickup, put_bool, get_bool },
(void *) &auto_pickup, put_bool, get_bool },
{"name", "Name: ",
(int *) whoami, put_str, get_restr },
(void *) whoami, put_str, get_restr },
{"fruit", "Fruit: ",
(int *) fruit, put_str, get_str },
(void *) fruit, put_str, get_str },
{"file", "Save file: ",
(int *) file_name, put_str, get_restr },
(void *) file_name, put_str, get_restr },
{"score", "Score file: ",
(int *) score_file, put_str, get_score },
(void *) score_file, put_str, get_score },
{"class", "Character class: ",
(int *)&char_type, put_abil, get_abil },
(void *)&char_type, put_abil, get_abil },
{"quest", "Quest item: ",
(int *) &quest_item, put_quest, get_quest }
(void *) &quest_item, put_quest, get_quest }
};
/* For fields that would be restricted if use_savedir is set. */
@ -111,27 +111,27 @@ int get_score(char *optstr, WINDOW *win)
/*
* The ability field is read-only
*/
void
int
get_abil(int *abil, WINDOW *win)
{
register int oy, ox;
getyx(win, oy, ox);
put_abil(abil, win);
get_ro(win, oy, ox);
return get_ro(win, oy, ox);
}
/*
* The quest field is read-only
*/
void
int
get_quest(int *quest, WINDOW *win)
{
register int oy, ox;
getyx(win, oy, ox);
waddstr(win, rel_magic[*quest].mi_name);
get_ro(win, oy, ox);
return get_ro(win, oy, ox);
}
/*
@ -416,18 +416,19 @@ parse_opts(char *str)
if (op->o_putfunc != put_abil)
strcpy((char *)op->o_opt, value);
else if (*op->o_opt == -1) { /* Only init ability once */
else if (*(int *)op->o_opt == -1) {
/* Only init ability once */
register int len = strlen(value);
if (isupper(value[0])) value[0] = tolower(value[0]);
if (EQSTR(value, "fighter", len))
*op->o_opt = C_FIGHTER;
*(int *)op->o_opt = C_FIGHTER;
else if (EQSTR(value, "magic", min(len, 5)))
*op->o_opt = C_MAGICIAN;
*(int *)op->o_opt = C_MAGICIAN;
else if (EQSTR(value, "cleric", len))
*op->o_opt = C_CLERIC;
*(int *)op->o_opt = C_CLERIC;
else if (EQSTR(value, "thief", len))
*op->o_opt = C_THIEF;
*(int *)op->o_opt = C_THIEF;
}
}
break;

View file

@ -724,7 +724,7 @@
struct delayed_action {
int d_type;
int (*d_func)();
void (*d_func)();
void *d_arg;
int d_time;
};
@ -1013,17 +1013,17 @@ int encread(char *start, unsigned int size, int inf);
int encwrite(char *start, unsigned int size, FILE *outf);
void endit(int sig);
void endmsg(void);
void extinguish(int (*func)());
void extinguish(void (*func)());
void fall(struct linked_list *item, bool pr);
coord *fallpos(coord *pos, bool be_clear, int range);
void fatal(char *s);
bool fight(coord *mp, struct object *weap, bool thrown);
struct linked_list *find_mons(int y, int x);
struct linked_list *find_obj(int y, int x);
struct delayed_action *find_slot(int (*func)());
struct delayed_action *find_slot(void (*func)());
void fix_stick(struct object *cur);
void fumble(void);
void fuse(int (*func)(), void *arg, int time, int type);
void fuse(void (*func)(), void *arg, int time, int type);
void genmonsters(int least, bool treas);
bool get_dir(void);
struct linked_list *get_item(struct linked_list *list, char *purpose, int type);
@ -1053,11 +1053,11 @@ bool is_current(struct object *obj);
bool is_magic(struct object *obj);
bool isatrap(char ch);
int itemweight(struct object *wh);
void kill_daemon(int (*func)());
void kill_daemon(void (*func)());
void killed(struct linked_list *item, bool pr, bool points);
void lake_check(coord *place);
void land(void);
void lengthen(int (*func)(), int xtime);
void lengthen(void (*func)(), int xtime);
void light(coord *cp);
bool lit_room(struct room *rp);
void look(bool wakeup, bool runend);
@ -1133,7 +1133,7 @@ bool shoot_ok(char ch);
char show(int y, int x);
void sight(void);
struct linked_list *spec_item(int type, int which, int hit, int damage);
void start_daemon(int (*func)(), void *arg, int type);
void start_daemon(void (*func)(), void *arg, int type);
void status(bool display);
void steal(void);
bool step_ok(int y, int x, int can_on_monst, struct thing *flgptr);
@ -1165,6 +1165,7 @@ void use_mm(int which);
char *vowelstr(char *str);
void wait_for(WINDOW *win, char ch);
struct linked_list *wake_monster(int y, int x);
void wanderer(void);
void waste_time(void);
char *weap_name(struct object *obj);
void wear(void);