mirror of
https://gitlab.freedesktop.org/libbsd/libbsd.git
synced 2025-10-20 22:31:34 +02:00
Compare commits
4 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
1ca09c18f7 | ||
![]() |
e4e15ed286 | ||
![]() |
bf697b900c | ||
![]() |
f1966385b3 |
198
COPYING
198
COPYING
@@ -156,29 +156,16 @@ Copyright:
|
|||||||
Co. or Unix System Laboratories, Inc. and are reproduced herein with
|
Co. or Unix System Laboratories, Inc. and are reproduced herein with
|
||||||
the permission of UNIX System Laboratories, Inc.
|
the permission of UNIX System Laboratories, Inc.
|
||||||
License: BSD-3-clause-Regents
|
License: BSD-3-clause-Regents
|
||||||
Redistribution and use in source and binary forms, with or without
|
|
||||||
modification, are permitted provided that the following conditions
|
Files:
|
||||||
are met:
|
src/vis.c
|
||||||
1. Redistributions of source code must retain the above copyright
|
Copyright:
|
||||||
notice, this list of conditions and the following disclaimer.
|
Copyright © 1989, 1993
|
||||||
2. Redistributions in binary form must reproduce the above copyright
|
The Regents of the University of California. All rights reserved.
|
||||||
notice, this list of conditions and the following disclaimer in the
|
|
||||||
documentation and/or other materials provided with the distribution.
|
|
||||||
3. 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
|
Copyright © 1999, 2005 The NetBSD Foundation, Inc.
|
||||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
All rights reserved.
|
||||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
License: BSD-3-clause-Regents and BSD-2-clause-NetBSD
|
||||||
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.
|
|
||||||
|
|
||||||
Files:
|
Files:
|
||||||
include/bsd/libutil.h
|
include/bsd/libutil.h
|
||||||
@@ -187,30 +174,7 @@ Copyright:
|
|||||||
All rights reserved.
|
All rights reserved.
|
||||||
Copyright © 2002 Networks Associates Technology, Inc.
|
Copyright © 2002 Networks Associates Technology, Inc.
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
License: BSD-3-clause-Peter-Wemm
|
License: BSD-3-clause-author
|
||||||
Redistribution and use in source and binary forms, with or without
|
|
||||||
modification, is 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. The name of the author may not be used to endorse or promote
|
|
||||||
products derived from this software without specific prior written
|
|
||||||
permission.
|
|
||||||
.
|
|
||||||
THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
|
|
||||||
|
|
||||||
Files:
|
Files:
|
||||||
man/timeradd.3bsd
|
man/timeradd.3bsd
|
||||||
@@ -299,36 +263,6 @@ Copyright:
|
|||||||
Some code is derived from software contributed to The NetBSD Foundation
|
Some code is derived from software contributed to The NetBSD Foundation
|
||||||
by Jukka Ruohonen.
|
by Jukka Ruohonen.
|
||||||
License: BSD-2-clause-NetBSD
|
License: BSD-2-clause-NetBSD
|
||||||
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.
|
|
||||||
.
|
|
||||||
THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. 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 FOUNDATION 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.
|
|
||||||
|
|
||||||
Files:
|
|
||||||
src/vis.c
|
|
||||||
Copyright:
|
|
||||||
Copyright © 1989, 1993
|
|
||||||
The Regents of the University of California. All rights reserved.
|
|
||||||
.
|
|
||||||
Copyright © 1999, 2005 The NetBSD Foundation, Inc.
|
|
||||||
All rights reserved.
|
|
||||||
License: BSD-3-clause-Regents and BSD-2-clause-NetBSD
|
|
||||||
|
|
||||||
Files:
|
Files:
|
||||||
include/bsd/sys/endian.h
|
include/bsd/sys/endian.h
|
||||||
@@ -419,25 +353,6 @@ Copyright:
|
|||||||
Copyright © 2002 Niels Provos <provos@citi.umich.edu>
|
Copyright © 2002 Niels Provos <provos@citi.umich.edu>
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
License: BSD-2-clause-author
|
License: BSD-2-clause-author
|
||||||
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.
|
|
||||||
.
|
|
||||||
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
|
|
||||||
|
|
||||||
Files:
|
Files:
|
||||||
include/bsd/readpassphrase.h
|
include/bsd/readpassphrase.h
|
||||||
@@ -567,6 +482,56 @@ License: Beerware
|
|||||||
can do whatever you want with this stuff. If we meet some day, and you think
|
can do whatever you want with this stuff. If we meet some day, and you think
|
||||||
this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp
|
this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp
|
||||||
|
|
||||||
|
License: BSD-3-clause-Regents
|
||||||
|
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. 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.
|
||||||
|
|
||||||
|
License: BSD-3-clause-author
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, is 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. The name of the author may not be used to endorse or promote
|
||||||
|
products derived from this software without specific prior written
|
||||||
|
permission.
|
||||||
|
.
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
|
||||||
|
|
||||||
License: BSD-3-clause
|
License: BSD-3-clause
|
||||||
Redistribution and use in source and binary forms, with or without
|
Redistribution and use in source and binary forms, with or without
|
||||||
modification, are permitted provided that the following conditions
|
modification, are permitted provided that the following conditions
|
||||||
@@ -590,6 +555,49 @@ License: BSD-3-clause
|
|||||||
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
License: BSD-2-clause-NetBSD
|
||||||
|
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.
|
||||||
|
.
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. 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 FOUNDATION 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.
|
||||||
|
|
||||||
|
License: BSD-2-clause-author
|
||||||
|
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.
|
||||||
|
.
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
|
||||||
|
|
||||||
License: BSD-2-clause
|
License: BSD-2-clause
|
||||||
Redistribution and use in source and binary forms, with or without
|
Redistribution and use in source and binary forms, with or without
|
||||||
modification, are permitted provided that the following conditions
|
modification, are permitted provided that the following conditions
|
||||||
|
@@ -13,7 +13,7 @@ m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])],
|
|||||||
|
|
||||||
LIBBSD_ABI_MAJOR=0
|
LIBBSD_ABI_MAJOR=0
|
||||||
LIBBSD_ABI_MINOR=9
|
LIBBSD_ABI_MINOR=9
|
||||||
LIBBSD_ABI_PATCH=0
|
LIBBSD_ABI_PATCH=1
|
||||||
|
|
||||||
LIBBSD_ABI="$LIBBSD_ABI_MAJOR:$LIBBSD_ABI_MINOR:$LIBBSD_ABI_PATCH"
|
LIBBSD_ABI="$LIBBSD_ABI_MAJOR:$LIBBSD_ABI_MINOR:$LIBBSD_ABI_PATCH"
|
||||||
AC_SUBST([LIBBSD_ABI])
|
AC_SUBST([LIBBSD_ABI])
|
||||||
|
@@ -76,6 +76,9 @@
|
|||||||
#define _SYS_CDEFS_H
|
#define _SYS_CDEFS_H
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define LIBBSD_CONCAT(x, y) x ## y
|
||||||
|
#define LIBBSD_STRING(x) #x
|
||||||
|
|
||||||
#ifdef __GNUC__
|
#ifdef __GNUC__
|
||||||
#define LIBBSD_GCC_VERSION (__GNUC__ << 8 | __GNUC_MINOR__)
|
#define LIBBSD_GCC_VERSION (__GNUC__ << 8 | __GNUC_MINOR__)
|
||||||
#else
|
#else
|
||||||
@@ -90,6 +93,12 @@
|
|||||||
#define LIBBSD_DEPRECATED(x)
|
#define LIBBSD_DEPRECATED(x)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if LIBBSD_GCC_VERSION >= 0x0200
|
||||||
|
#define LIBBSD_REDIRECT(name, proto, alias) name proto __asm__(LIBBSD_ASMNAME(#alias))
|
||||||
|
#endif
|
||||||
|
#define LIBBSD_ASMNAME(cname) LIBBSD_ASMNAME_PREFIX(__USER_LABEL_PREFIX__, cname)
|
||||||
|
#define LIBBSD_ASMNAME_PREFIX(prefix, cname) LIBBSD_STRING(prefix) cname
|
||||||
|
|
||||||
#ifndef __dead2
|
#ifndef __dead2
|
||||||
# if LIBBSD_GCC_VERSION >= 0x0207
|
# if LIBBSD_GCC_VERSION >= 0x0207
|
||||||
# define __dead2 __attribute__((__noreturn__))
|
# define __dead2 __attribute__((__noreturn__))
|
||||||
|
@@ -88,6 +88,22 @@
|
|||||||
#include <bsd/sys/cdefs.h>
|
#include <bsd/sys/cdefs.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* NetBSD added an strnvis and unfortunately made it incompatible with the
|
||||||
|
* existing one in OpenBSD and Freedesktop's libbsd (the former having existed
|
||||||
|
* for over ten years). Despite this incompatibility being reported during
|
||||||
|
* development (see http://gnats.netbsd.org/44977) they still shipped it.
|
||||||
|
* Even more unfortunately FreeBSD and later MacOS picked up this incompatible
|
||||||
|
* implementation.
|
||||||
|
*
|
||||||
|
* Provide both implementations and default for now on the historical one to
|
||||||
|
* avoid breakage, we will switch to the NetBSD one in libbsd 0.10.0 or so.
|
||||||
|
* Define LIBBSD_NETBSD_VIS to switch to the NetBSD one now.
|
||||||
|
*/
|
||||||
|
#ifndef LIBBSD_NETBSD_VIS
|
||||||
|
#warning "NetBSD added incompatible strnvis() and strnunvis(), please see <bsd/vis.h> for more detils."
|
||||||
|
#endif
|
||||||
|
|
||||||
__BEGIN_DECLS
|
__BEGIN_DECLS
|
||||||
char *vis(char *, int, int, int);
|
char *vis(char *, int, int, int);
|
||||||
char *nvis(char *, size_t, int, int, int);
|
char *nvis(char *, size_t, int, int, int);
|
||||||
@@ -97,7 +113,14 @@ char *snvis(char *, size_t, int, int, int, const char *);
|
|||||||
|
|
||||||
int strvis(char *, const char *, int);
|
int strvis(char *, const char *, int);
|
||||||
int stravis(char **, const char *, int);
|
int stravis(char **, const char *, int);
|
||||||
int strnvis(char *, size_t, const char *, int);
|
#ifdef LIBBSD_NETBSD_VIS
|
||||||
|
/* NetBSD prototype. */
|
||||||
|
int LIBBSD_REDIRECT(strnvis, (char *, size_t, const char *, int),
|
||||||
|
strnvis_netbsd);
|
||||||
|
#else
|
||||||
|
/* OpenBSD prototype (current default). */
|
||||||
|
int strnvis(char *, const char *, size_t, int);
|
||||||
|
#endif
|
||||||
|
|
||||||
int strsvis(char *, const char *, int, const char *);
|
int strsvis(char *, const char *, int, const char *);
|
||||||
int strsnvis(char *, size_t, const char *, int, const char *);
|
int strsnvis(char *, size_t, const char *, int, const char *);
|
||||||
@@ -112,7 +135,14 @@ int strsenvisx(char *, size_t, const char *, size_t , int, const char *,
|
|||||||
int *);
|
int *);
|
||||||
|
|
||||||
int strunvis(char *, const char *);
|
int strunvis(char *, const char *);
|
||||||
int strnunvis(char *, size_t, const char *);
|
#ifdef LIBBSD_NETBSD_VIS
|
||||||
|
/* NetBSD prototype. */
|
||||||
|
int LIBBSD_REDIRECT(strnunvis, (char *, size_t, const char *),
|
||||||
|
strnunvis_netbsd);
|
||||||
|
#else
|
||||||
|
/* OpenBSD prototype (current default). */
|
||||||
|
ssize_t strnunvis(char *, const char *, size_t);
|
||||||
|
#endif
|
||||||
|
|
||||||
int strunvisx(char *, const char *, int);
|
int strunvisx(char *, const char *, int);
|
||||||
int strnunvisx(char *, size_t, const char *, int);
|
int strnunvisx(char *, size_t, const char *, int);
|
||||||
|
@@ -160,3 +160,11 @@ LIBBSD_0.9 {
|
|||||||
strsvisx;
|
strsvisx;
|
||||||
svis;
|
svis;
|
||||||
} LIBBSD_0.8;
|
} LIBBSD_0.8;
|
||||||
|
|
||||||
|
LIBBSD_0.9.1 {
|
||||||
|
/* The strnvis() and strnunvis() symbols changed prototype to match
|
||||||
|
* the NetBSD implementation. Provided as versioned nodes in 0.9.1, and
|
||||||
|
* exposed here explicitly so that we can redirect at compile-time. */
|
||||||
|
strnvis_netbsd;
|
||||||
|
strnunvis_netbsd;
|
||||||
|
} LIBBSD_0.9;
|
||||||
|
29
src/unvis.c
29
src/unvis.c
@@ -37,7 +37,10 @@
|
|||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
#pragma GCC diagnostic push
|
||||||
|
#pragma GCC diagnostic ignored "-Wcpp"
|
||||||
#include <vis.h>
|
#include <vis.h>
|
||||||
|
#pragma GCC diagnostic pop
|
||||||
|
|
||||||
#ifdef __weak_alias
|
#ifdef __weak_alias
|
||||||
__weak_alias(strnunvisx,_strnunvisx)
|
__weak_alias(strnunvisx,_strnunvisx)
|
||||||
@@ -543,8 +546,30 @@ strunvis(char *dst, const char *src)
|
|||||||
return strnunvisx(dst, (size_t)~0, src, 0);
|
return strnunvisx(dst, (size_t)~0, src, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
/*
|
||||||
strnunvis(char *dst, size_t dlen, const char *src)
|
* NetBSD added an strnvis and unfortunately made it incompatible with the
|
||||||
|
* existing one in OpenBSD and Freedesktop's libbsd (the former having existed
|
||||||
|
* for over ten years). Despite this incompatibility being reported during
|
||||||
|
* development (see http://gnats.netbsd.org/44977) they still shipped it.
|
||||||
|
* Even more unfortunately FreeBSD and later MacOS picked up this incompatible
|
||||||
|
* implementation.
|
||||||
|
*
|
||||||
|
* Provide both implementations and default for now on the historical one to
|
||||||
|
* avoid breakage, we will switch to the NetBSD one in libbsd 0.10.0 or so.
|
||||||
|
*
|
||||||
|
* OpenBSD, 2001: strnunvis(char *dst, const char *src, size_t dlen);
|
||||||
|
* NetBSD: 2012, strnunvis(char *dst, size_t dlen, const char *src);
|
||||||
|
*/
|
||||||
|
ssize_t
|
||||||
|
strnunvis_openbsd(char *dst, const char *src, size_t dlen)
|
||||||
{
|
{
|
||||||
return strnunvisx(dst, dlen, src, 0);
|
return strnunvisx(dst, dlen, src, 0);
|
||||||
}
|
}
|
||||||
|
__asm__(".symver strnunvis_openbsd,strnunvis@@LIBBSD_0.2");
|
||||||
|
|
||||||
|
int
|
||||||
|
strnunvis_netbsd(char *dst, size_t dlen, const char *src)
|
||||||
|
{
|
||||||
|
return strnunvisx(dst, dlen, src, 0);
|
||||||
|
}
|
||||||
|
__asm__(".symver strnunvis_netbsd,strnunvis@LIBBSD_0.9.1");
|
||||||
|
27
src/vis.c
27
src/vis.c
@@ -60,7 +60,10 @@
|
|||||||
#include <sys/param.h>
|
#include <sys/param.h>
|
||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
#pragma GCC diagnostic push
|
||||||
|
#pragma GCC diagnostic ignored "-Wcpp"
|
||||||
#include <vis.h>
|
#include <vis.h>
|
||||||
|
#pragma GCC diagnostic pop
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <wchar.h>
|
#include <wchar.h>
|
||||||
@@ -701,11 +704,33 @@ strvis(char *mbdst, const char *mbsrc, int flags)
|
|||||||
return istrsenvisxl(&mbdst, NULL, mbsrc, flags, "", NULL);
|
return istrsenvisxl(&mbdst, NULL, mbsrc, flags, "", NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* NetBSD added an strnvis and unfortunately made it incompatible with the
|
||||||
|
* existing one in OpenBSD and Freedesktop's libbsd (the former having existed
|
||||||
|
* for over ten years). Despite this incompatibility being reported during
|
||||||
|
* development (see http://gnats.netbsd.org/44977) they still shipped it.
|
||||||
|
* Even more unfortunately FreeBSD and later MacOS picked up this incompatible
|
||||||
|
* implementation.
|
||||||
|
*
|
||||||
|
* Provide both implementations and default for now on the historical one to
|
||||||
|
* avoid breakage, we will switch to the NetBSD one in libbsd 0.10.0 or so.
|
||||||
|
*
|
||||||
|
* OpenBSD, 2001: strnvis(char *dst, const char *src, size_t dlen, int flag);
|
||||||
|
* NetBSD: 2012, strnvis(char *dst, size_t dlen, const char *src, int flag);
|
||||||
|
*/
|
||||||
int
|
int
|
||||||
strnvis(char *mbdst, size_t dlen, const char *mbsrc, int flags)
|
strnvis_openbsd(char *mbdst, const char *mbsrc, size_t dlen, int flags)
|
||||||
{
|
{
|
||||||
return istrsenvisxl(&mbdst, &dlen, mbsrc, flags, "", NULL);
|
return istrsenvisxl(&mbdst, &dlen, mbsrc, flags, "", NULL);
|
||||||
}
|
}
|
||||||
|
__asm__(".symver strnvis_openbsd,strnvis@@LIBBSD_0.2");
|
||||||
|
|
||||||
|
int
|
||||||
|
strnvis_netbsd(char *mbdst, size_t dlen, const char *mbsrc, int flags)
|
||||||
|
{
|
||||||
|
return istrsenvisxl(&mbdst, &dlen, mbsrc, flags, "", NULL);
|
||||||
|
}
|
||||||
|
__asm__(".symver strnvis_netbsd,strnvis@LIBBSD_0.9.1");
|
||||||
|
|
||||||
int
|
int
|
||||||
stravis(char **mbdstp, const char *mbsrc, int flags)
|
stravis(char **mbdstp, const char *mbsrc, int flags)
|
||||||
|
2
test/.gitignore
vendored
2
test/.gitignore
vendored
@@ -19,3 +19,5 @@ setmode
|
|||||||
strl
|
strl
|
||||||
strmode
|
strmode
|
||||||
strnstr
|
strnstr
|
||||||
|
vis
|
||||||
|
vis-openbsd
|
||||||
|
@@ -47,6 +47,8 @@ check_PROGRAMS = \
|
|||||||
strl \
|
strl \
|
||||||
strmode \
|
strmode \
|
||||||
strnstr \
|
strnstr \
|
||||||
|
vis \
|
||||||
|
vis-openbsd \
|
||||||
$(nil)
|
$(nil)
|
||||||
|
|
||||||
if HAVE_LIBTESTU01
|
if HAVE_LIBTESTU01
|
||||||
|
47
test/vis-openbsd.c
Normal file
47
test/vis-openbsd.c
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
/*
|
||||||
|
* Copyright © 2018 Guillem Jover <guillem@hadrons.org>
|
||||||
|
*
|
||||||
|
* 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. The name of the author may not be used to endorse or promote products
|
||||||
|
* derived from this software without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED ``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 AUTHOR 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <assert.h>
|
||||||
|
#include <string.h>
|
||||||
|
#pragma GCC diagnostic push
|
||||||
|
#pragma GCC diagnostic ignored "-Wcpp"
|
||||||
|
#include <vis.h>
|
||||||
|
#pragma GCC diagnostic pop
|
||||||
|
|
||||||
|
int
|
||||||
|
main(int argc, char **argv)
|
||||||
|
{
|
||||||
|
char str[200];
|
||||||
|
char unstr[200];
|
||||||
|
|
||||||
|
strnvis(str, "0123456789abcdef", 10, 0);
|
||||||
|
assert(strcmp(str, "0123456789") == 0);
|
||||||
|
|
||||||
|
strnunvis(unstr, str, 100);
|
||||||
|
assert(strcmp(unstr, "0123456789") == 0);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
46
test/vis.c
Normal file
46
test/vis.c
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
/*
|
||||||
|
* Copyright © 2018 Guillem Jover <guillem@hadrons.org>
|
||||||
|
*
|
||||||
|
* 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. The name of the author may not be used to endorse or promote products
|
||||||
|
* derived from this software without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED ``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 AUTHOR 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define LIBBSD_NETBSD_VIS 1
|
||||||
|
|
||||||
|
#include <assert.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <vis.h>
|
||||||
|
|
||||||
|
int
|
||||||
|
main(int argc, char **argv)
|
||||||
|
{
|
||||||
|
char str[200];
|
||||||
|
char unstr[200];
|
||||||
|
|
||||||
|
strnvis(str, 10, "0123456789abcdef", 0);
|
||||||
|
assert(strcmp(str, "0123456789") == 0);
|
||||||
|
|
||||||
|
strnunvis(unstr, 100, str);
|
||||||
|
assert(strcmp(unstr, "0123456789") == 0);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
Reference in New Issue
Block a user