hacklib.c NONNULL functions

A bunch of routines return a pointer which is never Null but weren't
telling the compiler that such was the case.  A couple (strsubst(),
stripchars()) were accepting Null output argument and then returning
Null, but callers had no reason to use them that way, so they've been
changed.  (upstart() could have been changed similarly; I've already
forgotten why I left it as-is.)
This commit is contained in:
PatR
2024-02-23 20:02:01 -08:00
parent 5f64dd3f1b
commit 9927e264b5
3 changed files with 64 additions and 55 deletions

View File

@@ -1127,36 +1127,39 @@ extern boolean digit(char);
extern boolean letter(char);
extern char highc(char);
extern char lowc(char);
extern char *lcase(char *) NONNULLARG1;
extern char *ucase(char *) NONNULLARG1;
extern char *upstart(char *);
extern char *upwords(char *) NONNULLARG1;
extern char *mungspaces(char *) NONNULLARG1;
extern char *trimspaces(char *) NONNULLARG1;
extern char *strip_newline(char *) NONNULLARG1;
extern char *stripchars(char *, const char *, const char *) NONNULLPTRS;
extern char *stripdigits(char *) NONNULLARG1;
extern char *eos(char *) NONNULLARG1;
extern const char *c_eos(const char *) NONNULLARG1;
extern char *lcase(char *) NONNULL NONNULLARG1;
extern char *ucase(char *) NONNULL NONNULLARG1;
extern char *upstart(char *); /* ought to be changed to NONNULL NONNULLARG1
* and the code changed to not allow NULL arg */
extern char *upwords(char *) NONNULL NONNULLARG1;
extern char *mungspaces(char *) NONNULL NONNULLARG1;
extern char *trimspaces(char *) NONNULL NONNULLARG1;
extern char *strip_newline(char *) NONNULL NONNULLARG1;
extern char *eos(char *) NONNULL NONNULLARG1;
extern const char *c_eos(const char *) NONNULL NONNULLARG1;
extern unsigned Strlen_(const char *, const char *, int) NONNULLPTRS;
extern boolean str_start_is(const char *, const char *, boolean) NONNULLPTRS;
extern boolean str_end_is(const char *, const char *) NONNULLPTRS;
extern int str_lines_maxlen(const char *);
extern char *strkitten(char *, char) NONNULLARG1;
extern char *strkitten(char *, char) NONNULL NONNULLARG1;
extern void copynchars(char *, const char *, int) NONNULLARG12;
extern char chrcasecpy(int, int);
extern char *strcasecpy(char *, const char *) NONNULLPTRS;
extern char *s_suffix(const char *) NONNULLARG1;
extern char *ing_suffix(const char *) NONNULLARG1;
extern char *xcrypt(const char *, char *) NONNULLPTRS;
extern char *strcasecpy(char *, const char *) NONNULL NONNULLPTRS;
extern char *s_suffix(const char *) NONNULL NONNULLARG1;
extern char *ing_suffix(const char *) NONNULL NONNULLARG1;
extern char *xcrypt(const char *, char *) NONNULL NONNULLPTRS;
extern boolean onlyspace(const char *) NONNULLARG1;
extern char *tabexpand(char *) NONNULLARG1;
extern char *visctrl(char);
extern char *strsubst(char *, const char *, const char *);
extern char *tabexpand(char *) NONNULL NONNULLARG1;
extern char *visctrl(char) NONNULL;
extern char *stripchars(char *, const char *,
const char *) NONNULL NONNULLPTRS;
extern char *stripdigits(char *) NONNULL NONNULLARG1;
extern char *strsubst(char *, const char *, const char *) NONNULL NONNULLPTRS;
extern int strNsubst(char *, const char *, const char *, int) NONNULLPTRS;
extern const char *findword(const char *, const char *, int, boolean);
extern const char *ordin(int);
extern char *sitoa(int);
extern const char *findword(const char *, const char *, int,
boolean) NONNULLARG2;
extern const char *ordin(int) NONNULL;
extern char *sitoa(int) NONNULL;
extern int sgn(int);
extern int rounddiv(long, int);
extern int dist2(coordxy, coordxy, coordxy, coordxy);
@@ -1181,11 +1184,11 @@ extern void reseed_random(int(*fn)(int));
extern time_t getnow(void);
extern int getyear(void);
#if 0
extern char *yymmdd(time_t);
extern char *yymmdd(time_t) NONNULL;
#endif
extern long yyyymmdd(time_t);
extern long hhmmss(time_t);
extern char *yyyymmddhhmmss(time_t);
extern char *yyyymmddhhmmss(time_t) NONNULL;
extern time_t time_from_yyyymmddhhmmss(char *);
extern int phase_of_the_moon(void);
extern boolean friday_13th(void);