Revert "libc: Constify the getcap API"
This broke cross-building on Linux and macOS.
This reverts commit 823d00b2d4.
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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
@@ -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 **);
|
||||||
|
|||||||
@@ -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));
|
||||||
|
|||||||
@@ -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
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
Reference in New Issue
Block a user