summaryrefslogtreecommitdiffstats
path: root/lib/libc
diff options
context:
space:
mode:
authorjoe <joe@FreeBSD.org>2000-06-17 01:28:13 +0000
committerjoe <joe@FreeBSD.org>2000-06-17 01:28:13 +0000
commit27d76a0d0fc67fafb473a28b631653cc5913e873 (patch)
treecf8297611d1a6558cc629093ad2153c6facbf940 /lib/libc
parent610da3502ab493b7d58d308232c0999c3cacfba9 (diff)
downloadFreeBSD-src-27d76a0d0fc67fafb473a28b631653cc5913e873.zip
FreeBSD-src-27d76a0d0fc67fafb473a28b631653cc5913e873.tar.gz
Return of the evil file flags! The {s|g}etflags functions were
renamed to {s|g}etflagsbyname, which received objections. They're now called strtofflags (string to file flags) and fflagstostr (file flags to string). Suggested by: bde
Diffstat (limited to 'lib/libc')
-rw-r--r--lib/libc/gen/setflagsbyname.380
-rw-r--r--lib/libc/gen/setflagsbyname.c154
-rw-r--r--lib/libc/gen/strtofflags.320
-rw-r--r--lib/libc/gen/strtofflags.c12
4 files changed, 16 insertions, 250 deletions
diff --git a/lib/libc/gen/setflagsbyname.3 b/lib/libc/gen/setflagsbyname.3
deleted file mode 100644
index b4461ac..0000000
--- a/lib/libc/gen/setflagsbyname.3
+++ /dev/null
@@ -1,80 +0,0 @@
-.\" Copyright (c) 1989, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. All advertising materials mentioning features or use of this software
-.\" must display the following acknowledgement:
-.\" This product includes software developed by the University of
-.\" California, Berkeley and its contributors.
-.\" 4. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" @(#)setmode.3 8.2 (Berkeley) 4/28/95
-.\" $FreeBSD$
-.\"
-.Dd January 1, 2000
-.Dt SETFLAGS 3
-.Os
-.Sh NAME
-.Nm getflags ,
-.Nm setflags
-.Nd modify file flag bits
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.Fd #include <unistd.h>
-.Ft char *
-.Fn getflags "u_long flags" "char *def"
-.Ft int
-.Fn setflags "char **stringp" "u_long *setp" "u_long *clrp"
-.Sh DESCRIPTION
-The
-.Fn getflags
-function returns a comma separated string of the file flags represented by
-.Fa flags .
-If no flags are set the string
-.Fa def
-is returned instead.
-.Pp
-The
-.Fn setflags
-function takes a string of file flags, as described in
-.Xr chflags 1 ,
-parses it, and returns the 'set' flags and 'clear' flags
-such as would be given as arguments to
-.Xr chflags 2 .
-On success
-.Fn setflags
-returns 0, otherwise it returns non-zero and
-.Fa stringp
-is left pointing to the offending token.
-.Sh SEE ALSO
-.Xr chflags 1 ,
-.Xr chflags 2 ,
-.Sh HISTORY
-The
-.Fn getflags
-and
-.Fn setflags
-functions first appeared in
-.Fx 4.0 .
diff --git a/lib/libc/gen/setflagsbyname.c b/lib/libc/gen/setflagsbyname.c
deleted file mode 100644
index c1fe6c5..0000000
--- a/lib/libc/gen/setflagsbyname.c
+++ /dev/null
@@ -1,154 +0,0 @@
-/*-
- * Copyright (c) 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#ifndef lint
-#if 0
-static char sccsid[] = "@(#)stat_flags.c 8.1 (Berkeley) 5/31/93";
-#else
-static const char rcsid[] =
- "$FreeBSD$";
-#endif
-#endif /* not lint */
-
-#include <sys/types.h>
-#include <sys/stat.h>
-
-#include <stddef.h>
-#include <string.h>
-
-static struct {
- char *name;
- u_long flag;
- int invert;
-} mapping[] = {
- /* shorter names per flag first, all prefixed by "no" */
- { "nosappnd", SF_APPEND, 0 },
- { "nosappend", SF_APPEND, 0 },
- { "noarch", SF_ARCHIVED, 0 },
- { "noarchived", SF_ARCHIVED, 0 },
- { "noschg", SF_IMMUTABLE, 0 },
- { "noschange", SF_IMMUTABLE, 0 },
- { "nosimmutable", SF_IMMUTABLE, 0 },
- { "nosunlnk", SF_NOUNLINK, 0 },
- { "nosunlink", SF_NOUNLINK, 0 },
- { "nouappnd", UF_APPEND, 0 },
- { "nouappend", UF_APPEND, 0 },
- { "nouchg", UF_IMMUTABLE, 0 },
- { "nouchange", UF_IMMUTABLE, 0 },
- { "nouimmutable", UF_IMMUTABLE, 0 },
- { "nodump", UF_NODUMP, 1 },
- { "noopaque", UF_OPAQUE, 0 },
- { "nouunlnk", UF_NOUNLINK, 0 },
- { "nouunlink", UF_NOUNLINK, 0 }
-};
-#define nmappings (sizeof(mapping) / sizeof(mapping[0]))
-
-/*
- * getflags --
- * Convert stat flags to a comma-separated string. If no flags
- * are set, return the default string.
- */
-char *
-getflags(flags, def)
- u_long flags;
- char *def;
-{
- static char string[128];
- char *sp, *dp;
- u_long setflags;
- int i;
-
- setflags = flags;
- dp = string;
- for (i = 0; i < nmappings; i++) {
- if (setflags & mapping[i].flag) {
- if (dp > string)
- *dp++ = ',';
- for (sp = mapping[i].invert ? mapping[i].name :
- mapping[i].name + 2; *sp; *dp++ = *sp++) ;
- setflags &= ~mapping[i].flag;
- }
- }
- *dp = '\0';
- return (dp == string && def != NULL ? def : string);
-}
-
-/*
- * setflags --
- * Take string of arguments and return stat flags. Return 0 on
- * success, 1 on failure. On failure, stringp is set to point
- * to the offending token.
- */
-int
-setflags(stringp, setp, clrp)
- char **stringp;
- u_long *setp, *clrp;
-{
- char *string, *p;
- int i;
-
- if (setp)
- *setp = 0;
- if (clrp)
- *clrp = 0;
- string = *stringp;
- while ((p = strsep(&string, "\t ,")) != NULL) {
- *stringp = p;
- if (*p == '\0')
- continue;
- for (i = 0; i < nmappings; i++) {
- if (strcmp(p, mapping[i].name + 2) == 0) {
- if (mapping[i].invert) {
- if (clrp)
- *clrp |= mapping[i].flag;
- } else {
- if (setp)
- *setp |= mapping[i].flag;
- }
- break;
- } else if (strcmp(p, mapping[i].name) == 0) {
- if (mapping[i].invert) {
- if (setp)
- *setp |= mapping[i].flag;
- } else {
- if (clrp)
- *clrp |= mapping[i].flag;
- }
- break;
- }
- }
- if (i == nmappings)
- return 1;
- }
- return 0;
-}
diff --git a/lib/libc/gen/strtofflags.3 b/lib/libc/gen/strtofflags.3
index b4461ac..c12551a 100644
--- a/lib/libc/gen/strtofflags.3
+++ b/lib/libc/gen/strtofflags.3
@@ -33,23 +33,23 @@
.\" $FreeBSD$
.\"
.Dd January 1, 2000
-.Dt SETFLAGS 3
+.Dt STRTOFFLAGS 3
.Os
.Sh NAME
-.Nm getflags ,
-.Nm setflags
+.Nm fflagstostr ,
+.Nm strtofflags
.Nd modify file flag bits
.Sh LIBRARY
.Lb libc
.Sh SYNOPSIS
.Fd #include <unistd.h>
.Ft char *
-.Fn getflags "u_long flags" "char *def"
+.Fn fflagstostr "u_long flags" "char *def"
.Ft int
-.Fn setflags "char **stringp" "u_long *setp" "u_long *clrp"
+.Fn strtofflags "char **stringp" "u_long *setp" "u_long *clrp"
.Sh DESCRIPTION
The
-.Fn getflags
+.Fn fflagstostr
function returns a comma separated string of the file flags represented by
.Fa flags .
If no flags are set the string
@@ -57,14 +57,14 @@ If no flags are set the string
is returned instead.
.Pp
The
-.Fn setflags
+.Fn strtofflags
function takes a string of file flags, as described in
.Xr chflags 1 ,
parses it, and returns the 'set' flags and 'clear' flags
such as would be given as arguments to
.Xr chflags 2 .
On success
-.Fn setflags
+.Fn strtofflags
returns 0, otherwise it returns non-zero and
.Fa stringp
is left pointing to the offending token.
@@ -73,8 +73,8 @@ is left pointing to the offending token.
.Xr chflags 2 ,
.Sh HISTORY
The
-.Fn getflags
+.Fn strtofflags
and
-.Fn setflags
+.Fn fflagstostr
functions first appeared in
.Fx 4.0 .
diff --git a/lib/libc/gen/strtofflags.c b/lib/libc/gen/strtofflags.c
index c1fe6c5..2cf6f39 100644
--- a/lib/libc/gen/strtofflags.c
+++ b/lib/libc/gen/strtofflags.c
@@ -74,12 +74,12 @@ static struct {
#define nmappings (sizeof(mapping) / sizeof(mapping[0]))
/*
- * getflags --
- * Convert stat flags to a comma-separated string. If no flags
+ * fflagstostr --
+ * Convert file flags to a comma-separated string. If no flags
* are set, return the default string.
*/
char *
-getflags(flags, def)
+fflagstostr(flags, def)
u_long flags;
char *def;
{
@@ -104,13 +104,13 @@ getflags(flags, def)
}
/*
- * setflags --
- * Take string of arguments and return stat flags. Return 0 on
+ * strtofflags --
+ * Take string of arguments and return file flags. Return 0 on
* success, 1 on failure. On failure, stringp is set to point
* to the offending token.
*/
int
-setflags(stringp, setp, clrp)
+strtofflags(stringp, setp, clrp)
char **stringp;
u_long *setp, *clrp;
{
OpenPOWER on IntegriCloud