some NONNULLs
Update the prototypes of some functions which return a pointer that will never be NULL. Only covers pager.c and part of objnam.c.
This commit is contained in:
+48
-47
@@ -26,7 +26,7 @@
|
|||||||
*
|
*
|
||||||
* Description of the NONNULL macros:
|
* Description of the NONNULL macros:
|
||||||
*
|
*
|
||||||
* NONULL The function return value is never NULL.
|
* NONNULL The function return value is never NULL.
|
||||||
* NONNULLPTRS Every pointer argument is declared nonnull.
|
* NONNULLPTRS Every pointer argument is declared nonnull.
|
||||||
* NONNULLARG1 The 1st argument is declared nonnull.
|
* NONNULLARG1 The 1st argument is declared nonnull.
|
||||||
* NONNULLARG2 The 2nd argument is declared nonnull.
|
* NONNULLARG2 The 2nd argument is declared nonnull.
|
||||||
@@ -2106,66 +2106,65 @@ extern char *killer_xname(struct obj *) NONNULLARG1;
|
|||||||
extern char *short_oname(struct obj *, char *(*)(struct obj *),
|
extern char *short_oname(struct obj *, char *(*)(struct obj *),
|
||||||
char *(*)(struct obj *), unsigned) NONNULLARG12;
|
char *(*)(struct obj *), unsigned) NONNULLARG12;
|
||||||
extern const char *singular(struct obj *, char *(*)(struct obj *)) NONNULLPTRS;
|
extern const char *singular(struct obj *, char *(*)(struct obj *)) NONNULLPTRS;
|
||||||
extern char *just_an(char *, const char *) NONNULLARG12;
|
extern char *just_an(char *, const char *) NONNULL NONNULLARG12;
|
||||||
/* an(), the() contain tests for NULL arg, preventing NONNULLARG1 */
|
/* an(), the() contain tests for NULL arg, preventing NONNULLARG1 */
|
||||||
extern char *an(const char *) NO_NONNULLS;
|
extern char *an(const char *) NONNULL NO_NONNULLS;
|
||||||
extern char *An(const char *) NO_NONNULLS;
|
extern char *An(const char *) NONNULL NO_NONNULLS;
|
||||||
extern char *The(const char *) NO_NONNULLS;
|
extern char *The(const char *) NONNULL NO_NONNULLS;
|
||||||
extern char *the(const char *) NO_NONNULLS;
|
extern char *the(const char *) NONNULL NO_NONNULLS;
|
||||||
extern char *aobjnam(struct obj *, const char *) NONNULLARG1;
|
extern char *aobjnam(struct obj *, const char *) NONNULL NONNULLARG1;
|
||||||
extern char *yobjnam(struct obj *, const char *) NONNULLARG1;
|
extern char *yobjnam(struct obj *, const char *) NONNULL NONNULLARG1;
|
||||||
extern char *Yobjnam2(struct obj *, const char *) NONNULLARG1;
|
extern char *Yobjnam2(struct obj *, const char *) NONNULL NONNULLARG1;
|
||||||
extern char *Tobjnam(struct obj *, const char *) NONNULLARG1;
|
extern char *Tobjnam(struct obj *, const char *) NONNULL NONNULLARG1;
|
||||||
extern char *otense(struct obj *, const char *) NONNULLARG12;
|
extern char *otense(struct obj *, const char *) NONNULL NONNULLARG12;
|
||||||
extern char *vtense(const char *, const char *) NONNULLARG2;
|
extern char *vtense(const char *, const char *) NONNULL NONNULLARG2;
|
||||||
extern char *Doname2(struct obj *) NONNULLARG1;
|
extern char *Doname2(struct obj *) NONNULL NONNULLARG1;
|
||||||
extern char *yname(struct obj *) NONNULLARG1;
|
extern char *yname(struct obj *) NONNULL NONNULLARG1;
|
||||||
extern char *Yname2(struct obj *) NONNULLARG1;
|
extern char *Yname2(struct obj *) NONNULL NONNULLARG1;
|
||||||
extern char *ysimple_name(struct obj *) NONNULLARG1;
|
extern char *ysimple_name(struct obj *) NONNULL NONNULLARG1;
|
||||||
extern char *Ysimple_name2(struct obj *) NONNULLARG1;
|
extern char *Ysimple_name2(struct obj *) NONNULL NONNULLARG1;
|
||||||
extern char *simpleonames(struct obj *) NONNULLARG1;
|
extern char *simpleonames(struct obj *) NONNULL NONNULLARG1;
|
||||||
extern char *ansimpleoname(struct obj *) NONNULLARG1;
|
extern char *ansimpleoname(struct obj *) NONNULL NONNULLARG1;
|
||||||
extern char *thesimpleoname(struct obj *) NONNULLARG1;
|
extern char *thesimpleoname(struct obj *) NONNULL NONNULLARG1;
|
||||||
extern char *actualoname(struct obj *) NONNULLARG1;
|
extern char *actualoname(struct obj *) NONNULL NONNULLARG1;
|
||||||
extern char *bare_artifactname(struct obj *) NONNULLARG1;
|
extern char *bare_artifactname(struct obj *) NONNULL NONNULLARG1;
|
||||||
/* makeplural() and makesingular() have tests for NULL arg1, and code path
|
/* makeplural() and makesingular() never return NULL but have tests for NULL
|
||||||
that leads to impossible(), preventing NONNULLARG1 */
|
arg1, and code path that leads to impossible(), preventing NONNULLARG1 */
|
||||||
extern char *makeplural(const char *) NO_NONNULLS;
|
extern char *makeplural(const char *) NONNULL NO_NONNULLS;
|
||||||
extern char *makesingular(const char *) NO_NONNULLS;
|
extern char *makesingular(const char *) NONNULL NO_NONNULLS;
|
||||||
/* readobjnam() allows a NULL to trigger code path for random; if it
|
/* readobjnam() can return NULL and allows a NULL to trigger code path for
|
||||||
and its caller were modifed to look for/provide a particular address
|
random object */
|
||||||
to use as a trigger instead, it could be declared NONNULLARG1 */
|
|
||||||
extern struct obj *readobjnam(char *, struct obj *) NO_NONNULLS;
|
extern struct obj *readobjnam(char *, struct obj *) NO_NONNULLS;
|
||||||
extern int rnd_class(int, int);
|
extern int rnd_class(int, int);
|
||||||
/* discover_object() passes NULL arg2 to Japanese_item_name(),
|
/* discover_object() passes NULL arg2 to Japanese_item_name(),
|
||||||
* preventing NONNULLARG2 */
|
* preventing NONNULLARG2 */
|
||||||
extern const char *Japanese_item_name(int, const char *) NO_NONNULLS;
|
extern const char *Japanese_item_name(int, const char *) NO_NONNULLS;
|
||||||
extern const char *armor_simple_name(struct obj *) NONNULLARG1;
|
extern const char *armor_simple_name(struct obj *) NONNULL NONNULLARG1;
|
||||||
/* suit_simple_name has its code in a NULL arg test
|
/* suit_simple_name has its code in a NULL arg test
|
||||||
conditional block, preventing NONNULLARG1 */
|
conditional block, preventing NONNULLARG1 */
|
||||||
extern const char *suit_simple_name(struct obj *) NO_NONNULLS;
|
extern const char *suit_simple_name(struct obj *) NONNULL NO_NONNULLS;
|
||||||
/* cloak_simple_name has its code in a NULL arg test
|
/* cloak_simple_name has its code in a NULL arg test
|
||||||
conditional block, preventing NONNULLARG1 */
|
conditional block, preventing NONNULLARG1 */
|
||||||
extern const char *cloak_simple_name(struct obj *) NO_NONNULLS;
|
extern const char *cloak_simple_name(struct obj *) NONNULL NO_NONNULLS;
|
||||||
/* helm_simple_name always just returns hardcoded literals */
|
/* helm_simple_name always just returns hardcoded literals */
|
||||||
extern const char *helm_simple_name(struct obj *) NO_NONNULLS;
|
extern const char *helm_simple_name(struct obj *) NONNULL NO_NONNULLS;
|
||||||
/* gloves_simple_name has its code in a NULL arg test
|
/* gloves_simple_name has its code in a NULL arg test
|
||||||
conditional block, preventing NONNULLARG1 */
|
conditional block, preventing NONNULLARG1 */
|
||||||
extern const char *gloves_simple_name(struct obj *) NO_NONNULLS;
|
extern const char *gloves_simple_name(struct obj *) NONNULL NO_NONNULLS;
|
||||||
/* boots_simple_name has its code in a NULL arg test
|
/* boots_simple_name has its code in a NULL arg test
|
||||||
conditional block, preventing NONNULLARG1 */
|
conditional block, preventing NONNULLARG1 */
|
||||||
extern const char *boots_simple_name(struct obj *) NO_NONNULLS;
|
extern const char *boots_simple_name(struct obj *) NONNULL NO_NONNULLS;
|
||||||
/* shield_simple_name has its code in a NULL arg test
|
/* shield_simple_name has its code in a NULL arg test
|
||||||
conditional block, preventing NONNULLARG1 */
|
conditional block, preventing NONNULLARG1 */
|
||||||
extern const char *shield_simple_name(struct obj *) NO_NONNULLS;
|
extern const char *shield_simple_name(struct obj *) NONNULL NO_NONNULLS;
|
||||||
/* shirt_simple_name always just returns hardcoded "shirt" */
|
/* shirt_simple_name always just returns hardcoded "shirt" */
|
||||||
extern const char *shirt_simple_name(struct obj *) NO_NONNULLS;
|
extern const char *shirt_simple_name(struct obj *) NONNULL NO_NONNULLS;
|
||||||
extern const char *mimic_obj_name(struct monst *) NONNULLARG1;
|
extern const char *mimic_obj_name(struct monst *) NONNULL NONNULLARG1;
|
||||||
/* safe_qbuf() contains tests for NULL arg2 and arg3, qprefix and qsuffix,
|
/* safe_qbuf() contains tests for NULL arg2 and arg3, qprefix and qsuffix,
|
||||||
preventing use of NONNULLPTRS. NONNULLARG14567 is not defined */
|
preventing use of NONNULLPTRS. NONNULLARG14567 is not defined */
|
||||||
extern char *safe_qbuf(char *, const char *, const char *, struct obj *,
|
extern char *safe_qbuf(char *, const char *, const char *, struct obj *,
|
||||||
char *(*)(struct obj *), char *(*)(struct obj *),
|
char * (*)(struct obj *), char * (*)(struct obj *),
|
||||||
const char *) NO_NONNULLS;
|
const char *) NONNULL NONNULLARG14;
|
||||||
extern int shiny_obj(char);
|
extern int shiny_obj(char);
|
||||||
|
|
||||||
/* ### options.c ### */
|
/* ### options.c ### */
|
||||||
@@ -2218,21 +2217,23 @@ extern void msgtype_free(void);
|
|||||||
|
|
||||||
/* ### pager.c ### */
|
/* ### pager.c ### */
|
||||||
|
|
||||||
extern char *self_lookat(char *) NONNULLARG1;
|
extern char *self_lookat(char *) NONNULL NONNULLARG1;
|
||||||
extern char *monhealthdescr(struct monst *mon, boolean, char *) NONNULLARG3;
|
extern char *monhealthdescr(struct monst *mon, boolean,
|
||||||
|
char *) NONNULL NONNULLARG3;
|
||||||
extern void mhidden_description(struct monst *, boolean, char *) NONNULLPTRS;
|
extern void mhidden_description(struct monst *, boolean, char *) NONNULLPTRS;
|
||||||
extern boolean object_from_map(int, coordxy, coordxy, struct obj **) NONNULLPTRS;
|
extern boolean object_from_map(int, coordxy, coordxy,
|
||||||
extern const char *waterbody_name(coordxy, coordxy);
|
struct obj **) NONNULLPTRS;
|
||||||
extern char *ice_descr(coordxy, coordxy, char *) NONNULLARG3;
|
extern const char *waterbody_name(coordxy, coordxy) NONNULL;
|
||||||
|
extern char *ice_descr(coordxy, coordxy, char *) NONNULL NONNULLARG3;
|
||||||
extern boolean ia_checkfile(struct obj *) NONNULLARG1;
|
extern boolean ia_checkfile(struct obj *) NONNULLARG1;
|
||||||
extern int do_screen_description(coord, boolean, int, char *, const char **,
|
extern int do_screen_description(coord, boolean, int, char *, const char **,
|
||||||
struct permonst **) NONNULLARG45;
|
struct permonst **) NONNULLARG45;
|
||||||
extern int do_look(int, coord *);
|
extern int do_look(int, coord *);
|
||||||
extern int dowhatis(void);
|
extern int dowhatis(void);
|
||||||
extern int doquickwhatis(void);
|
extern int doquickwhatis(void);
|
||||||
extern int doidtrap(void);
|
extern int doidtrap(void);
|
||||||
extern int dowhatdoes(void);
|
extern int dowhatdoes(void);
|
||||||
extern char *dowhatdoes_core(char, char *) NONNULLARG2;
|
extern char *dowhatdoes_core(char, char *) NONNULLARG2; /*might return NULL*/
|
||||||
extern int dohelp(void);
|
extern int dohelp(void);
|
||||||
extern int dohistory(void);
|
extern int dohistory(void);
|
||||||
|
|
||||||
|
|||||||
+12
-12
@@ -49,7 +49,7 @@ static boolean wishymatch(const char *, const char *, boolean);
|
|||||||
static short rnd_otyp_by_wpnskill(schar);
|
static short rnd_otyp_by_wpnskill(schar);
|
||||||
static short rnd_otyp_by_namedesc(const char *, char, int);
|
static short rnd_otyp_by_namedesc(const char *, char, int);
|
||||||
static struct obj *wizterrainwish(struct _readobjnam_data *);
|
static struct obj *wizterrainwish(struct _readobjnam_data *);
|
||||||
static void dbterrainmesg(const char *, coordxy, coordxy);
|
static void dbterrainmesg(const char *, coordxy, coordxy) NONNULLARG1;
|
||||||
static void readobjnam_init(char *, struct _readobjnam_data *);
|
static void readobjnam_init(char *, struct _readobjnam_data *);
|
||||||
static int readobjnam_preparse(struct _readobjnam_data *);
|
static int readobjnam_preparse(struct _readobjnam_data *);
|
||||||
static void readobjnam_parse_charges(struct _readobjnam_data *);
|
static void readobjnam_parse_charges(struct _readobjnam_data *);
|
||||||
@@ -2018,7 +2018,7 @@ aobjnam(struct obj *otmp, const char *verb)
|
|||||||
|
|
||||||
/* combine yname and aobjnam eg "your count cxname(otmp)" */
|
/* combine yname and aobjnam eg "your count cxname(otmp)" */
|
||||||
char *
|
char *
|
||||||
yobjnam(struct obj* obj, const char *verb)
|
yobjnam(struct obj *obj, const char *verb)
|
||||||
{
|
{
|
||||||
char *s = aobjnam(obj, verb);
|
char *s = aobjnam(obj, verb);
|
||||||
|
|
||||||
@@ -2036,7 +2036,7 @@ yobjnam(struct obj* obj, const char *verb)
|
|||||||
|
|
||||||
/* combine Yname2 and aobjnam eg "Your count cxname(otmp)" */
|
/* combine Yname2 and aobjnam eg "Your count cxname(otmp)" */
|
||||||
char *
|
char *
|
||||||
Yobjnam2(struct obj* obj, const char *verb)
|
Yobjnam2(struct obj *obj, const char *verb)
|
||||||
{
|
{
|
||||||
register char *s = yobjnam(obj, verb);
|
register char *s = yobjnam(obj, verb);
|
||||||
|
|
||||||
@@ -2046,7 +2046,7 @@ Yobjnam2(struct obj* obj, const char *verb)
|
|||||||
|
|
||||||
/* like aobjnam, but prepend "The", not count, and use xname */
|
/* like aobjnam, but prepend "The", not count, and use xname */
|
||||||
char *
|
char *
|
||||||
Tobjnam(struct obj* otmp, const char *verb)
|
Tobjnam(struct obj *otmp, const char *verb)
|
||||||
{
|
{
|
||||||
char *bp = The(xname(otmp));
|
char *bp = The(xname(otmp));
|
||||||
|
|
||||||
@@ -2059,7 +2059,7 @@ Tobjnam(struct obj* otmp, const char *verb)
|
|||||||
|
|
||||||
/* capitalized variant of doname() */
|
/* capitalized variant of doname() */
|
||||||
char *
|
char *
|
||||||
Doname2(struct obj* obj)
|
Doname2(struct obj *obj)
|
||||||
{
|
{
|
||||||
char *s = doname(obj);
|
char *s = doname(obj);
|
||||||
|
|
||||||
@@ -2070,7 +2070,7 @@ Doname2(struct obj* obj)
|
|||||||
#if 0 /* stalled-out work in progress */
|
#if 0 /* stalled-out work in progress */
|
||||||
/* Doname2() for itemized buying of 'obj' from a shop */
|
/* Doname2() for itemized buying of 'obj' from a shop */
|
||||||
char *
|
char *
|
||||||
payDoname(struct obj* obj)
|
payDoname(struct obj *obj)
|
||||||
{
|
{
|
||||||
static const char and_contents[] = " and its contents";
|
static const char and_contents[] = " and its contents";
|
||||||
char *p = doname(obj);
|
char *p = doname(obj);
|
||||||
@@ -2092,7 +2092,7 @@ payDoname(struct obj* obj)
|
|||||||
|
|
||||||
/* returns "[your ]xname(obj)" or "Foobar's xname(obj)" or "the xname(obj)" */
|
/* returns "[your ]xname(obj)" or "Foobar's xname(obj)" or "the xname(obj)" */
|
||||||
char *
|
char *
|
||||||
yname(struct obj* obj)
|
yname(struct obj *obj)
|
||||||
{
|
{
|
||||||
char *s = cxname(obj);
|
char *s = cxname(obj);
|
||||||
|
|
||||||
@@ -2111,7 +2111,7 @@ yname(struct obj* obj)
|
|||||||
|
|
||||||
/* capitalized variant of yname() */
|
/* capitalized variant of yname() */
|
||||||
char *
|
char *
|
||||||
Yname2(struct obj* obj)
|
Yname2(struct obj *obj)
|
||||||
{
|
{
|
||||||
char *s = yname(obj);
|
char *s = yname(obj);
|
||||||
|
|
||||||
@@ -2124,7 +2124,7 @@ Yname2(struct obj* obj)
|
|||||||
* or "the minimal_xname(obj)"
|
* or "the minimal_xname(obj)"
|
||||||
*/
|
*/
|
||||||
char *
|
char *
|
||||||
ysimple_name(struct obj* obj)
|
ysimple_name(struct obj *obj)
|
||||||
{
|
{
|
||||||
char *outbuf = nextobuf();
|
char *outbuf = nextobuf();
|
||||||
char *s = shk_your(outbuf, obj); /* assert( s == outbuf ); */
|
char *s = shk_your(outbuf, obj); /* assert( s == outbuf ); */
|
||||||
@@ -2135,7 +2135,7 @@ ysimple_name(struct obj* obj)
|
|||||||
|
|
||||||
/* capitalized variant of ysimple_name() */
|
/* capitalized variant of ysimple_name() */
|
||||||
char *
|
char *
|
||||||
Ysimple_name2(struct obj* obj)
|
Ysimple_name2(struct obj *obj)
|
||||||
{
|
{
|
||||||
char *s = ysimple_name(obj);
|
char *s = ysimple_name(obj);
|
||||||
|
|
||||||
@@ -2145,7 +2145,7 @@ Ysimple_name2(struct obj* obj)
|
|||||||
|
|
||||||
/* "scroll" or "scrolls" */
|
/* "scroll" or "scrolls" */
|
||||||
char *
|
char *
|
||||||
simpleonames(struct obj* obj)
|
simpleonames(struct obj *obj)
|
||||||
{
|
{
|
||||||
char *obufp, *simpleoname = minimal_xname(obj);
|
char *obufp, *simpleoname = minimal_xname(obj);
|
||||||
|
|
||||||
@@ -2163,7 +2163,7 @@ simpleonames(struct obj* obj)
|
|||||||
|
|
||||||
/* "a scroll" or "scrolls"; "a silver bell" or "the Bell of Opening" */
|
/* "a scroll" or "scrolls"; "a silver bell" or "the Bell of Opening" */
|
||||||
char *
|
char *
|
||||||
ansimpleoname(struct obj* obj)
|
ansimpleoname(struct obj *obj)
|
||||||
{
|
{
|
||||||
char *obufp, *simpleoname = simpleonames(obj);
|
char *obufp, *simpleoname = simpleonames(obj);
|
||||||
int otyp = obj->otyp;
|
int otyp = obj->otyp;
|
||||||
|
|||||||
Reference in New Issue
Block a user