Revert "libc: Constify the getcap API"

This broke cross-building on Linux and macOS.

This reverts commit 823d00b2d4.
This commit is contained in:
Dag-Erling Smørgrav
2026-06-05 19:15:46 +02:00
parent 2404d8d741
commit 641e8e3956
11 changed files with 34 additions and 31 deletions
+1 -1
View File
@@ -34,7 +34,7 @@
BROKEN_LINKER BROKEN_LINKER
BSD_TPUTS BSD_TPUTS
CGETENT_CONST const CGETENT_CONST /* nothing */
CPP_HAS_PARAM_INIT CPP_HAS_PARAM_INIT
CURSES_ACS_ARRAY acs_map CURSES_ACS_ARRAY acs_map
CURSES_WACS_ARRAY _nc_wacs CURSES_WACS_ARRAY _nc_wacs
+3 -3
View File
@@ -39,17 +39,17 @@ static char sccsid[] = "@(#)getent.c 8.2 (Berkeley) 12/15/93";
#include "misc-proto.h" #include "misc-proto.h"
static char *area; static char *area;
static const char * const dba[] = { "/etc/gettytab", NULL }; static char gettytab[] = "/etc/gettytab";
/*ARGSUSED*/ /*ARGSUSED*/
int int
getent(char *cp __unused, const char *name) getent(char *cp __unused, const char *name)
{ {
int retval; int retval;
char *tempnam; char *tempnam, *dba[2] = { gettytab, NULL };
tempnam = strdup(name); tempnam = strdup(name);
retval = cgetent(&area, dba, tempnam) == 0 ? 1 : 0; retval = cgetent(&area, dba, tempnam) == 0 ? 1 : 0;
free(tempnam); free(tempnam);
return(retval); return(retval);
} }
+3 -3
View File
@@ -279,10 +279,10 @@ char *getbsize(int *, long *);
/* getcap(3) functions */ /* getcap(3) functions */
char *cgetcap(char *, const char *, int); char *cgetcap(char *, const char *, int);
int cgetclose(void); int cgetclose(void);
int cgetent(char **, const char * const *, const char *); int cgetent(char **, char **, const char *);
int cgetfirst(char **, const char * const *); int cgetfirst(char **, char **);
int cgetmatch(const char *, const char *); int cgetmatch(const char *, const char *);
int cgetnext(char **, const char * const *); int cgetnext(char **, char **);
int cgetnum(char *, const char *, long *); int cgetnum(char *, const char *, long *);
int cgetset(const char *); int cgetset(const char *);
int cgetstr(char *, const char *, char **); int cgetstr(char *, const char *, char **);
+2 -3
View File
@@ -54,8 +54,6 @@ gettype(char *t, const char **names)
return (0); return (0);
} }
static const char *db_array[] = { _PATH_DISKTAB, NULL };
struct disklabel * struct disklabel *
getdiskbyname(const char *name) getdiskbyname(const char *name)
{ {
@@ -63,12 +61,13 @@ getdiskbyname(const char *name)
struct disklabel *dp = &disk; struct disklabel *dp = &disk;
struct partition *pp; struct partition *pp;
char *buf; char *buf;
char *db_array[2] = { _PATH_DISKTAB, 0 };
char *cp, *cq; /* can't be register */ char *cp, *cq; /* can't be register */
char p, max, psize[3], pbsize[3], char p, max, psize[3], pbsize[3],
pfsize[3], poffset[3], ptype[3]; pfsize[3], poffset[3], ptype[3];
u_int32_t *dx; u_int32_t *dx;
if (cgetent(&buf, db_array, name) < 0) if (cgetent(&buf, db_array, (char *) name) < 0)
return NULL; return NULL;
bzero((char *)&disk, sizeof(disk)); bzero((char *)&disk, sizeof(disk));
+4 -4
View File
@@ -28,7 +28,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE. .\" SUCH DAMAGE.
.\" .\"
.Dd May 26, 2026 .Dd March 22, 2002
.Dt GETCAP 3 .Dt GETCAP 3
.Os .Os
.Sh NAME .Sh NAME
@@ -48,7 +48,7 @@
.Sh SYNOPSIS .Sh SYNOPSIS
.In stdlib.h .In stdlib.h
.Ft int .Ft int
.Fn cgetent "char **buf" "const char * const *db_array" "const char *name" .Fn cgetent "char **buf" "char **db_array" "const char *name"
.Ft int .Ft int
.Fn cgetset "const char *ent" .Fn cgetset "const char *ent"
.Ft int .Ft int
@@ -62,9 +62,9 @@
.Ft int .Ft int
.Fn cgetustr "char *buf" "const char *cap" "char **str" .Fn cgetustr "char *buf" "const char *cap" "char **str"
.Ft int .Ft int
.Fn cgetfirst "char **buf" "const char * const *db_array" .Fn cgetfirst "char **buf" "char **db_array"
.Ft int .Ft int
.Fn cgetnext "char **buf" "const char * const *db_array" .Fn cgetnext "char **buf" "char **db_array"
.Ft int .Ft int
.Fn cgetclose "void" .Fn cgetclose "void"
.Sh DESCRIPTION .Sh DESCRIPTION
+8 -10
View File
@@ -62,8 +62,7 @@ static char *toprec; /* Additional record specified by cgetset() */
static int gottoprec; /* Flag indicating retrieval of toprecord */ static int gottoprec; /* Flag indicating retrieval of toprecord */
static int cdbget(DB *, char **, const char *); static int cdbget(DB *, char **, const char *);
static int getent(char **, u_int *, const char * const *, int, static int getent(char **, u_int *, char **, int, const char *, int, char *);
const char *, int, char *);
static int nfcmp(char *, char *); static int nfcmp(char *, char *);
/* /*
@@ -155,7 +154,7 @@ cgetcap(char *buf, const char *cap, int type)
* reference loop is detected. * reference loop is detected.
*/ */
int int
cgetent(char **buf, const char * const *db_array, const char *name) cgetent(char **buf, char **db_array, const char *name)
{ {
u_int dummy; u_int dummy;
@@ -181,12 +180,11 @@ cgetent(char **buf, const char * const *db_array, const char *name)
* MAX_RECURSION. * MAX_RECURSION.
*/ */
static int static int
getent(char **cap, u_int *len, const char * const *db_array, int fd, getent(char **cap, u_int *len, char **db_array, int fd, const char *name,
const char *name, int depth, char *nfield) int depth, char *nfield)
{ {
DB *capdbp; DB *capdbp;
const char * const *db_p; char *r_end, *rp, **db_p;
char *r_end, *rp;
int myfd, eof, foundit, retval; int myfd, eof, foundit, retval;
char *record, *cbuf; char *record, *cbuf;
int tc_not_resolved; int tc_not_resolved;
@@ -613,7 +611,7 @@ cgetmatch(const char *buf, const char *name)
int int
cgetfirst(char **buf, const char * const *db_array) cgetfirst(char **buf, char **db_array)
{ {
(void)cgetclose(); (void)cgetclose();
return (cgetnext(buf, db_array)); return (cgetnext(buf, db_array));
@@ -621,7 +619,7 @@ cgetfirst(char **buf, const char * const *db_array)
static FILE *pfp; static FILE *pfp;
static int slash; static int slash;
static const char * const *dbp; static char **dbp;
int int
cgetclose(void) cgetclose(void)
@@ -642,7 +640,7 @@ cgetclose(void)
* upon returning an entry with more remaining, and -1 if an error occurs. * upon returning an entry with more remaining, and -1 if an error occurs.
*/ */
int int
cgetnext(char **bp, const char * const *db_array) cgetnext(char **bp, char **db_array)
{ {
size_t len; size_t len;
int done, hadreaderr, savederrno, status; int done, hadreaderr, savederrno, status;
+2 -1
View File
@@ -299,7 +299,8 @@ login_getclassbyname(char const *name, const struct passwd *pwd)
const char *msg = NULL; const char *msg = NULL;
const char *dir; const char *dir;
char userpath[MAXPATHLEN]; char userpath[MAXPATHLEN];
const char *login_dbarray[] = { NULL, NULL, NULL };
static char *login_dbarray[] = { NULL, NULL, NULL };
me = (name != NULL && strcmp(name, LOGIN_MECLASS) == 0); me = (name != NULL && strcmp(name, LOGIN_MECLASS) == 0);
dir = (!me || pwd == NULL) ? NULL : pwd->pw_dir; dir = (!me || pwd == NULL) ? NULL : pwd->pw_dir;
+6 -1
View File
@@ -54,7 +54,6 @@
void void
gettable(const char *name) gettable(const char *name)
{ {
static const char *dba[2] = { _PATH_GETTYTAB, NULL };
char *buf = NULL; char *buf = NULL;
struct gettystrs *sp; struct gettystrs *sp;
struct gettynums *np; struct gettynums *np;
@@ -62,9 +61,15 @@ gettable(const char *name)
long n; long n;
int l; int l;
char *p; char *p;
static char path_gettytab[PATH_MAX];
char *dba[2];
static int firsttime = 1; static int firsttime = 1;
strlcpy(path_gettytab, _PATH_GETTYTAB, sizeof(path_gettytab));
dba[0] = path_gettytab;
dba[1] = NULL;
if (firsttime) { if (firsttime) {
/* /*
* we need to strdup() anything in the strings array * we need to strdup() anything in the strings array
+3 -3
View File
@@ -40,7 +40,7 @@
#include <string.h> #include <string.h>
#include <unistd.h> #include <unistd.h>
static void db_build(const char * const *); static void db_build(char **);
static void dounlink(void); static void dounlink(void);
static void usage(void); static void usage(void);
@@ -113,7 +113,7 @@ main(int argc, char *argv[])
if (atexit(dounlink)) if (atexit(dounlink))
err(1, "atexit"); err(1, "atexit");
db_build((const char * const *)argv); db_build(argv);
if (capdbp->close(capdbp) < 0) if (capdbp->close(capdbp) < 0)
err(1, "%s", capname); err(1, "%s", capname);
@@ -142,7 +142,7 @@ dounlink(void)
* details above. * details above.
*/ */
static void static void
db_build(const char * const *ifiles) db_build(char **ifiles)
{ {
DBT key, data; DBT key, data;
recno_t reccnt; recno_t reccnt;
+1 -1
View File
@@ -53,7 +53,7 @@ static char *capstrings[] = {
"di", "es", "ex", "fo", "rc", "re", "pa", 0 "di", "es", "ex", "fo", "rc", "re", "pa", 0
}; };
static const char *db_array[] = { _PATH_REMOTE, NULL, NULL }; static char *db_array[3] = { _PATH_REMOTE, 0, 0 };
#define cgetflag(f) (cgetcap(bp, f, ':') != NULL) #define cgetflag(f) (cgetcap(bp, f, ':') != NULL)
+1 -1
View File
@@ -54,7 +54,7 @@
/* /*
* Routines and data used in processing the printcap file. * Routines and data used in processing the printcap file.
*/ */
static const char *printcapdb[] = { _PATH_PRINTCAP, NULL }; static char *printcapdb[] = { __DECONST(char *, _PATH_PRINTCAP), NULL };
static char *capdb_canonical_name(const char *_bp); static char *capdb_canonical_name(const char *_bp);
static int capdb_getaltlog(char *_bp, const char *_shrt, static int capdb_getaltlog(char *_bp, const char *_shrt,