freebsd-dev/include
Ed Schouten 34168b28e9 Replace basename(3) by a thread-safe implementation.
Now that the changes to the dirname(3) function had some time to settle,
let's go ahead and use the same approach for replacing basename(3) by a
simple implementation that modifies the input string, thereby making it
thread-safe and guaranteed to succeed.

Unlike dirname(3), this function already had a thread-safe variant
basename_r(3). This function had its own set of problems, like having an
upper bound on the pathname length. Keep this function around for
compatibility, but remove most references from the man page. Make the
man page more similar to that of dirname(3).

As the basename_r(3) function is only provided by FreeBSD (and Bionic),
depending on its use is even more implementation defined than assuming
that basename(3) is thread-safe.

Reviewed by:	emaste
Differential Revision:	https://reviews.freebsd.org/D8382
2016-11-03 20:21:34 +00:00
..
arpa include: minor spelling fixes. 2016-04-30 14:43:42 +00:00
gssapi Add META_MODE support. 2015-06-13 19:20:56 +00:00
protocols Add META_MODE support. 2015-06-13 19:20:56 +00:00
rpc xdr: Fix xdr_rpc* defines. 2016-03-04 22:03:38 +00:00
rpcsvc include: minor spelling fixes. 2016-04-30 14:43:42 +00:00
xlocale LC_*_MASK bit shifting order was partially broken from the initial commit 2016-08-23 20:33:56 +00:00
_ctype.h Commit log from Dragonfly: 2015-10-13 20:43:49 +00:00
a.out.h Remove the Berkeley clause 3's. 2010-02-16 19:39:50 +00:00
ar.h Remove the Berkeley clause 3's. 2010-02-16 19:39:50 +00:00
assert.h Don't define static_assert for C++. 2011-12-29 14:41:17 +00:00
bitstring.h Improve performance and functionality of the bitstring(3) api 2016-05-04 22:34:11 +00:00
complex.h I'm happy to finally commit stephen@'s implementations of cacos, 2013-05-30 04:49:26 +00:00
cpio.h
ctype.h Commit log from Dragonfly: 2015-10-13 20:43:49 +00:00
db.h Remove the Berkeley clause 3's. 2010-02-16 19:39:50 +00:00
dirent.h Add missing declaration of ino_t. 2016-05-30 07:50:57 +00:00
dlfcn.h Implement fdlopen(3), an rtld interface to load shared object by file 2012-01-07 10:33:01 +00:00
elf-hints.h
elf.h Remove some OpenSolaris compatibility stuff now that we're doing it a 2007-11-28 22:09:12 +00:00
err.h Remove the Berkeley clause 3's. 2010-02-16 19:39:50 +00:00
fmtmsg.h Fix a small typo. Fireware -> firmware. 2012-06-05 19:42:57 +00:00
fnmatch.h Remove the Berkeley clause 3's. 2010-02-16 19:39:50 +00:00
fstab.h Remove the Berkeley clause 3's. 2010-02-16 19:39:50 +00:00
fts.h Allow certain headers to be included more easily. 2013-05-21 21:20:10 +00:00
ftw.h
getopt.h Remove NetBSD Foundation clauses 3 & 4. They eliminated those clauses 2010-02-16 19:28:10 +00:00
glob.h - Add restrict keyword to glob(3) 2011-12-20 22:56:13 +00:00
grp.h Fix up setgrent(3) to have a POSIX-compliant prototype. 2016-07-31 08:05:15 +00:00
gssapi.h Add a new extensible GSS-API layer which can support GSS-API plugins, 2005-12-29 14:40:22 +00:00
hesiod.h We don't use these files. 2014-08-09 20:03:40 +00:00
iconv.h Remove the const qualifier from iconv(3) to comply with POSIX: 2015-04-15 09:09:20 +00:00
ieeefp.h People porting FreeBSD to new architectures ought not have to 2011-10-21 06:41:46 +00:00
ifaddrs.h Allow certain headers to be included more easily. 2013-05-21 21:20:10 +00:00
inttypes.h Rename __wchar_t so it no longer conflicts with __wchar_t from clang 3.4 2014-04-01 14:46:11 +00:00
iso646.h Avoid accidental conflicts with C++ operator keywords. 2011-09-27 16:33:17 +00:00
kenv.h Fix prototype to match the code and documentation. 2005-11-24 07:20:26 +00:00
langinfo.h langinfo.h: Hide YESSTR and NOSTR in strict POSIX mode. 2014-04-19 12:38:01 +00:00
libgen.h Replace basename(3) by a thread-safe implementation. 2016-11-03 20:21:34 +00:00
limits.h Detect integer overflow and limit the number of positional 2016-10-31 18:38:58 +00:00
link.h
locale.h Reapply 227753 (xlocale cleanup), plus some fixes so that it passes build 2012-03-04 15:31:13 +00:00
Makefile Re-apply change 306811 or alternatively, revert change 307385. 2016-10-16 02:43:51 +00:00
Makefile.depend new depends 2015-06-16 23:37:19 +00:00
malloc_np.h Update jemalloc to 4.1.0. 2016-02-29 19:10:32 +00:00
malloc.h
memory.h Remove the Berkeley clause 3's. 2010-02-16 19:39:50 +00:00
mk-osreldate.sh Stop building vers.c in include/ and only build the needed osreldate.h. 2015-11-25 19:10:59 +00:00
monetary.h Make strfmon_l() work without requiring the use of <xlocale.h>. 2016-05-31 12:29:21 +00:00
mpool.h Remove the Berkeley clause 3's. 2010-02-16 19:39:50 +00:00
mqueue.h Export the mq_getfd_np() symbol from librt.so, which allows to get 2016-10-02 17:02:59 +00:00
ndbm.h Fix prototype of dbm_open(). 2016-05-31 18:32:57 +00:00
netconfig.h
netdb.h Add NI_NUMERICSCOPE. 2016-07-28 10:05:41 +00:00
nl_types.h Remove NetBSD Foundation clauses 3 & 4. They eliminated those clauses 2010-02-16 19:28:10 +00:00
nlist.h Remove the Berkeley clause 3's. 2010-02-16 19:39:50 +00:00
nss.h
nsswitch.h Add capability to use a db version of services. It is enabled by 2010-04-04 08:31:03 +00:00
paths.h Implement suggestion by jhb@ to have _PATH_FIRMWARE instead of hard 2016-03-23 04:18:57 +00:00
printf.h The register_printf_render_std() function expects regular string. 2012-07-04 17:35:07 +00:00
proc_service.h Introduce a new proc service routine ps_linfo() to get LWP info. 2006-02-07 02:29:55 +00:00
pthread_np.h Introduce a non-portable function pthread_getthreadid_np(3) to retrieve 2011-02-07 21:26:46 +00:00
pthread.h Add implementation of robust mutexes, hopefully close enough to the 2016-05-17 09:56:22 +00:00
pwd.h Replace our version of the pwcache(3) API with NetBSD's implementation. 2012-10-19 12:44:22 +00:00
ranlib.h Remove the Berkeley clause 3's. 2010-02-16 19:39:50 +00:00
readpassphrase.h Sync with OpenBSD, primarily better signal and terminal handling. 2010-11-13 10:38:06 +00:00
regex.h Replace __const by const in all non-contributed source code. 2011-12-13 13:32:56 +00:00
res_update.h Update our stub resolver to final version of libbind. 2014-08-12 12:36:06 +00:00
resolv.h resolver: preserve binary compatibility; reduce header pollution 2015-12-14 17:21:06 +00:00
runetype.h After r232498, programs built with -ansi or -std=c89 including <ctype.h> 2012-03-06 20:15:23 +00:00
search.h Improve typing of POSIX search tree functions. 2016-10-13 18:25:40 +00:00
semaphore.h Ensure #include <semaphore.h> is sufficient for using SEM_VALUE_MAX. 2015-01-31 16:39:26 +00:00
setjmp.h include: Remove checks for __BSD_VISIBLE where redundant with __XSI_VISIBLE 2014-05-11 13:48:21 +00:00
signal.h Fix the signature of the psignal() function. 2016-05-30 13:51:27 +00:00
spawn.h Remove __restrict keywords from array arguments to make GCC's -std=c99 work. 2008-06-19 07:30:32 +00:00
stab.h Remove the Berkeley clause 3's. 2010-02-16 19:39:50 +00:00
stdalign.h Add <stdalign.h> and <stdnoreturn.h>. 2011-12-25 20:51:40 +00:00
stdbool.h Remove unneeded guard. 2011-12-25 20:15:41 +00:00
stddef.h Define max_align_t for C11. 2016-10-21 23:50:02 +00:00
stdio.h Add the __printflike attribute to the declaration of vdprintf(3) 2016-10-01 23:08:26 +00:00
stdlib.h Remove setkey(), encrypt(), des_setkey() and des_cipher(). 2016-10-03 18:20:58 +00:00
stdnoreturn.h Simply disallow <stdnoreturn.h> to be used in combination with C++. 2012-01-03 23:05:23 +00:00
string.h Add timingsafe_bcmp and timingsafe_memcmp. 2016-08-14 23:38:50 +00:00
stringlist.h Remove clause 3 and 4 from the license 2015-05-21 08:38:25 +00:00
strings.h Add explicit_bzero(3) and its kernel counterpart. 2014-10-07 04:54:11 +00:00
sysexits.h Remove the Berkeley clause 3's. 2010-02-16 19:39:50 +00:00
tar.h Remove the Berkeley clause 3's. 2010-02-16 19:39:50 +00:00
termios.h include: Remove checks for __BSD_VISIBLE where redundant with __XSI_VISIBLE 2014-05-11 13:48:21 +00:00
tgmath.h Roll back r271012 even more aggressively. 2014-09-05 05:36:32 +00:00
time.h Export the mq_getfd_np() symbol from librt.so, which allows to get 2016-10-02 17:02:59 +00:00
timeconv.h Remove the Berkeley clause 3's. 2010-02-16 19:39:50 +00:00
timers.h
ttyent.h Add a new flag to /etc/ttys: onifconsole. This is equivalent to "on" if the 2014-01-20 18:15:06 +00:00
uchar.h Fix <uchar.h> in for C++11. 2013-05-25 16:58:12 +00:00
ulimit.h
unistd.h Remove setkey(), encrypt(), des_setkey() and des_cipher(). 2016-10-03 18:20:58 +00:00
unwind.h Also the stop function should accept 64-bit exception class. 2010-09-30 03:16:35 +00:00
utime.h Remove the Berkeley clause 3's. 2010-02-16 19:39:50 +00:00
utmpx.h Implement <utmpx.h>. 2010-01-13 17:29:55 +00:00
uuid.h Add missing prototypes for uuid_enc,dec_le,be() functions. 2008-09-15 23:47:19 +00:00
varargs.h
wchar.h Add missing va_list to <wchar.h>. 2016-05-30 16:26:34 +00:00
wctype.h Commit log from Dragonfly: 2015-10-13 20:43:49 +00:00
wordexp.h
xlocale.h Reapply 227753 (xlocale cleanup), plus some fixes so that it passes build 2012-03-04 15:31:13 +00:00