History log of /freebsd-10.0-release/include/string.h
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
# 259065 07-Dec-2013 gjb

- Copy stable/10 (r259064) to releng/10.0 as part of the
10.0-RELEASE cycle.
- Update __FreeBSD_version [1]
- Set branch name to -RC1

[1] 10.0-CURRENT __FreeBSD_version value ended at '55', so
start releng/10.0 at '100' so the branch is started with
a value ending in zero.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation

# 256281 10-Oct-2013 gjb

Copy head (r256279) to stable/10 as part of the 10.0-RELEASE cycle.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation


# 246803 14-Feb-2013 zeising

FreeBSD uses #if __BSD_VISIBLE to hide non-standard functions, fix this.

Noticed by: kib
Approved by: kib


# 246766 13-Feb-2013 zeising

Add strchrnul(), a GNU function similar to strchr(), except that it returns
a pointer to the end of the string, rather than NULL, if the character was
not found.

Approved by: theraven


# 233600 28-Mar-2012 theraven

Correctly expose xlocale functions if people include the headers in the wrong
order (as some ports apparently do).

Approved by: dim (mentor)


# 232498 04-Mar-2012 theraven

Reapply 227753 (xlocale cleanup), plus some fixes so that it passes build
universe with gcc.

Approved by: dim (mentor)


# 231714 14-Feb-2012 dim

Revert r231673 and r231682 for now, until we can run a full make
universe with them. Sorry for the breakage.

Pointy hat to: me and brooks


# 231673 14-Feb-2012 theraven

Cleanup of xlocale:

- Address performance regressions encountered by das@ by caching per-thread
data in TLS where available.
- Add a __NO_TLS flag to cdefs.h to indicate where not available.
- Reorganise the xlocale.h definitions into xlocale/*.h so that they can be
included from multiple places.
- Export the POSIX2008 subset of xlocale when POSIX2008 says it should be
exported, independently of whether xlocale.h is included.
- Fix the bug where programs using ctype functions always assumed ASCII unless
recompiled.
- Fix some style(9) violations.

Reviewed by: brooks (mentor)
Approved by: dim (mentor)


# 203964 16-Feb-2010 imp

Remove the Berkeley clause 3's.
Add a few $FreeBSD$


# 189809 14-Mar-2009 das

Namespace: memccpy() and memchr() are XSI, and memrchr() is a BSD extension.


# 189136 28-Feb-2009 das

- Add getdelim(), getline(), stpncpy(), strnlen(), wcsnlen(),
wcscasecmp(), and wcsncasecmp().
- Make some previously non-standard extensions visible
if POSIX_VISIBLE >= 200809.
- Use restrict qualifiers in stpcpy().
- Declare off_t and size_t in stdio.h.
- Bump __FreeBSD_version in case the new symbols (particularly
getline()) cause issues with ports.

Reviewed by: standards@


# 189133 28-Feb-2009 das

Add restrict qualifiers to the parameters to strlcpy() and strlcat().
The annotation mainly just serves as a hint that they're not intended
for use with overlapping strings.


# 189132 28-Feb-2009 das

Mark memmem() __pure.


# 187961 31-Jan-2009 das

Add a function attribute called `__malloc_like', which informs gcc
that the annotated function returns a pointer that doesn't alias any
extant pointer. This results in a 50%+ speedup in microbenchmarks such
as the following:

char *cp = malloc(1), *buf = malloc(BUF);
for (i = 0; i < BUF; i++) buf[i] = *cp;

In real programs, your mileage will vary. Note that gcc already
performs this optimization automatically for any function called
`malloc', `calloc', `strdup', or `strndup' unless -fno-builtins is
used.


# 185777 08-Dec-2008 kib

Add strndup(3) prototype to string.h.

This change was erronously ommitted from the r185690, and attempt
to simply add the prototype to string.h has revealed that several
contributed programs defined local prototypes for strndup(), controlled
by autoconfed config.h. So, manually change #undef HAVE_STRNDUP to
#define HAVE_STRNDUP 1. Next import of the corresponding program would
regenerate config.h, overriding the changes in this commit.

No objections from: kan


# 178051 09-Apr-2008 delphij

Add memrchr(3).

Obtained from: OpenBSD


# 152754 24-Nov-2005 ru

Revert last revision, strmode() should be moved to <unistd.h> to be
properly fixed.


# 152747 24-Nov-2005 ru

Fix prototype of strmode() to match the code and documentation.


# 149469 25-Aug-2005 andre

Appropriate namespace protection for memmem(3).

Submitted by: wollman
MFC after: 3 days


# 149466 25-Aug-2005 andre

Add the function memmem(3) as found in glibc and others.
It is the binary equivalent to strstr(3).

void *memmem(const void *big, size_t big_len,
const void *little, size_t little_len);

Submitted by: Pascal Gloor <pascal.gloor at spale.com>
MFC after: 3 days


# 138659 10-Dec-2004 trhodes

According to the information on:
http://www.opengroup.org/onlinepubs/009695399/functions/swab.html
the prototype for swab() should be in <unistd.h> and not in <string.h>.
Move it, and update to match SUS. Leave the prototype in string.h for
now, for backwards compat.

PR: 74751
Submitted by: Craig Rodrigues <rodrigc@crodrigues.org>
Discussed with: das


# 132564 23-Jul-2004 tjr

Mark functions pure where applicable. A notable exclusion is strcoll(),
which is not strictly pure because it calls malloc()/free() in some cases.


# 123257 07-Dec-2003 marcel

Change the definition of NULL on ia64 (for LP64 compilations) from
an int constant to a long constant. This change improves consistency
in the following two ways:
1. The first 8 arguments are always passed in registers on ia64, which
by virtue of the generated code implicitly widens ints to longs and
allows the use of an 32-bit integral type for 64-bit arguments.
Subsequent arguments are passed onto the memory stack, which does
not exhibit the same behaviour and consequently do not allow this.
In practice this means that variadic functions taking pointers
and given NULL (without cast) work as long as the NULL is passed
in one of the first 8 arguments. A SIGSEGV is more likely the
result if such would be done for stack-based arguments. This is
due to the fact that the upper 4 bytes remain undefined.
2. All 64-bit platforms that FreeBSD supports, with the obvious
exception of ia64, allow 32-bit integral types (specifically NULL)
when 64-bit pointers are expected in variadic functions by way of
how the compiler generates code. As such, code that works correctly
(whether rightfully so or not) on any platform other than ia64, may
fail on ia64.

To more easily allow tweaking of the definition of NULL, this commit
removes the 12 definitions in the various headers and puts it in a
new header that can be included whenever NULL is to be made visible.

This commit fixes GNOME, emacs, xemacs and a whole bunch of ports
that I don't particularly care about at this time...


# 105128 14-Oct-2002 mike

Correct visibility conditionals for memccpy(), strdup(), and
strtok_r(). Merge conditional prototypes into the regular block.


# 104544 05-Oct-2002 obrien

Make stpcpy() only visiable w/in __BSD_VISIBLE.


# 104420 03-Oct-2002 obrien

Add stpcpy(3).


# 102227 21-Aug-2002 mike

o Merge <machine/ansi.h> and <machine/types.h> into a new header
called <machine/_types.h>.
o <machine/ansi.h> will continue to live so it can define MD clock
macros, which are only MD because of gratuitous differences between
architectures.
o Change all headers to make use of this. This mainly involves
changing:
#ifdef _BSD_FOO_T_
typedef _BSD_FOO_T_ foo_t;
#undef _BSD_FOO_T_
#endif
to:
#ifndef _FOO_T_DECLARED
typedef __foo_t foo_t;
#define _FOO_T_DECLARED
#endif

Concept by: bde
Reviewed by: jake, obrien


# 94721 15-Apr-2002 mike

Add support for X/Open.

PR: 37078


# 93747 04-Apr-2002 mike

o Move some function prototypes from <string.h> to the newly rewritten
<strings.h>, based on POSIX.1-2001's requirements.
o Add 'restrict' qualifier (spelled '__restrict') to functions in
<string.h>, as per C99 and POSIX.1-2001.
o Properly expose new POSIX.1-2001 functions in <string.h>.


# 93032 23-Mar-2002 imp

Breath deep and take __P out of the system include files.

# This appears to not break X11, but I'm having problems compiling the
# glide part of the server with or without this patch, so I can't tell
# for sure.


# 87069 28-Nov-2001 bde

Fixed namespace pollution in previous commit. The C99 function
sterror_r() must not be declared in the C90/POSIX.1-1990 section.
Put it in the nonstandard section for now.


# 86944 27-Nov-2001 wes

Add strerror_r function per Posix prototype.

Reviewed by: Mike Barcroft <mike@FreeBSD.org>
MFC after: 2 weeks


# 84747 10-Oct-2001 bde

Fixed some style bugs:
- rev.1.6: corrupt tab before strlcpy.
- rev.1.7: "From: " in vendor id.
- rev.1.8: unsorted prototype for strccasestr.


# 84741 10-Oct-2001 ache

Implement strcasestr() which many others (f.e. Linux) already have


# 84699 08-Oct-2001 mike

Add a new libc function, strnstr(3), which allows one to limit the
number of characters that are searched. This is especially useful
with file operations and non-NUL terminated strings.

Silence from: -audit, -hackers
MFC after: 5 days


# 49875 16-Aug-1999 imp

Add prototypes for strl* functions

Forgotten by: imp
Reported by: bde


# 47289 18-May-1999 peter

Add a strsignal(3) (like strerror(3)) for libc compatability with other
systems. NetBSD, Linux, SVR4 etc all have it.


# 42913 20-Jan-1999 jdp

Add a prototype for strtok_r().


# 20600 17-Dec-1996 imp

string.h defines nonstandard routines when _POSIX_SOURCE is
defined. It has been fixed to not do that.

Submitted by: Jake Hamby <jehamby@lightside.com>
Closes PR: 1954


# 8858 30-May-1995 rgrimes

Remove trailing whitespace.


# 1540 24-May-1994 rgrimes

This commit was generated by cvs2svn to compensate for changes in r1539,
which included commits to RCS files with non-trunk default branches.


# 1539 24-May-1994 rgrimes

BSD 4.4 Lite Include Sources