aboutsummaryrefslogtreecommitdiff
path: root/include/string.h
Commit message (Collapse)AuthorAgeFilesLines
* include: Remove ancient SCCS tags.Warner Losh2023-11-271-2/+0
| | | | | | | | Remove ancient SCCS tags from the tree, automated scripting, with two minor fixup to keep things compiling. All the common forms in the tree were removed with a perl script. Sponsored by: Netflix
* Remove $FreeBSD$: one-line .h patternWarner Losh2023-08-161-1/+0
| | | | Remove /^\s*\*+\s*\$FreeBSD\$.*$\n/
* libc: Add strverscmp(3) and versionsort(3)Aymeric Wibo2022-08-251-0/+1
| | | | | | | | | | | | | | | Add a strverscmp(3) function to libc, a GNU extension I implemented by reading its glibc manual page. It orders strings following a much more natural ordering (e.g. "ent1 < ent2 < ent10" as opposed to "ent1 < ent10 < ent2" with strcmp(3)'s lexicographic ordering). Also add versionsort(3) for use as scandir(3)'s compar argument. Update manual page for scandir(3) and add one for strverscmp(3). Reviewed by: pstef, gbe, kib MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D35807
* libc: add mempcpy(3) and wmempcpy(3)Konstantin Belousov2021-07-151-0/+3
| | | | | | | Reviewed by: markj Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D31180
* Change strmode argument type to mode_tAlfonso Gregory2021-06-291-1/+7
| | | | | | | | Finally, we have the correct function definition for strmode. NetBSD/OpenBSD did this many years ago. This code is weird sign extension safe. Reviewed by: imp@ Pull Request: https://github.com/freebsd/freebsd-src/pull/493
* Change POSIX compliance level for visibility of strerror_l(3).Konstantin Belousov2020-12-171-1/+1
| | | | | | | | | | | | | Third-party code tests for strerror_l(3) without specifying _POSIX_SOURCE, and then expects that the function is prototyped with _POSIX_SOURCE set to 200112. Reported and tested by: antoine Sponsored by: The FreeBSD Foundation MFC after: 13 days Notes: svn path=/head/; revision=368723
* include: further adoption of SPDX licensing ID tags.Pedro F. Giffuni2017-11-201-0/+2
| | | | | | | | | | | | | | | | | Mainly focus on files that use BSD 3-Clause license. The Software Package Data Exchange (SPDX) group provides a specification to make it easier for automated tools to detect and summarize well known opensource licenses. We are gradually adopting the specification, noting that the tags are considered only advisory and do not, in any way, superceed or replace the license texts. Special thanks to Wind River for providing access to "The Duke of Highlander" tool: an older (2014) run over FreeBSD tree was useful as a starting point. Notes: svn path=/head/; revision=326024
* Implement the memset_s(3) function as specified by the C11 ISO/IECKonstantin Belousov2017-03-301-0/+16
| | | | | | | | | | | | | | | | | 9899:2011 Appendix K 3.7.4.1. Other needed supporting types, defines and constraint_handler infrastructure is added as specified in the C11 spec. Submitted by: Tom Rix <trix@juniper.net> Sponsored by: Juniper Networks Discussed with: ed MFC after: 3 weeks Differential revision: https://reviews.freebsd.org/D9903 Differential revision: https://reviews.freebsd.org/D10161 Notes: svn path=/head/; revision=316213
* Add timingsafe_bcmp and timingsafe_memcmp.Xin LI2016-08-141-0/+2
| | | | | | | | | | Obtained from: OpenBSD Reviewed by: trasz MFC after: 1 month Differential Revision: https://reviews.freebsd.org/D7280 Notes: svn path=/head/; revision=304106
* include: Remove checks for __BSD_VISIBLE where redundant with __XSI_VISIBLEJilles Tjoelker2014-05-111-3/+3
| | | | | | | | | | | | or __POSIX_VISIBLE. Whenever <sys/cdefs.h> sets __BSD_VISIBLE to non-zero, it also sets __POSIX_VISIBLE and __XSI_VISIBLE to the newest version supported. No functional change is intended. Notes: svn path=/head/; revision=265878
* FreeBSD uses #if __BSD_VISIBLE to hide non-standard functions, fix this.Niclas Zeising2013-02-141-1/+1
| | | | | | | | Noticed by: kib Approved by: kib Notes: svn path=/head/; revision=246803
* Add strchrnul(), a GNU function similar to strchr(), except that it returnsNiclas Zeising2013-02-131-0/+3
| | | | | | | | | | a pointer to the end of the string, rather than NULL, if the character was not found. Approved by: theraven Notes: svn path=/head/; revision=246766
* Correctly expose xlocale functions if people include the headers in the wrongDavid Chisnall2012-03-281-1/+1
| | | | | | | | | order (as some ports apparently do). Approved by: dim (mentor) Notes: svn path=/head/; revision=233600
* Reapply 227753 (xlocale cleanup), plus some fixes so that it passes buildDavid Chisnall2012-03-041-0/+4
| | | | | | | | | universe with gcc. Approved by: dim (mentor) Notes: svn path=/head/; revision=232498
* Revert r231673 and r231682 for now, until we can run a full makeDimitry Andric2012-02-141-4/+0
| | | | | | | | | universe with them. Sorry for the breakage. Pointy hat to: me and brooks Notes: svn path=/head/; revision=231714
* Cleanup of xlocale:David Chisnall2012-02-141-0/+4
| | | | | | | | | | | | | | | | | | | - 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) Notes: svn path=/head/; revision=231673
* Remove the Berkeley clause 3's.Warner Losh2010-02-161-5/+1
| | | | | | | Add a few $FreeBSD$ Notes: svn path=/head/; revision=203964
* Namespace: memccpy() and memchr() are XSI, and memrchr() is a BSD extension.David Schultz2009-03-141-1/+3
| | | | Notes: svn path=/head/; revision=189809
* - Add getdelim(), getline(), stpncpy(), strnlen(), wcsnlen(),David Schultz2009-02-281-2/+10
| | | | | | | | | | | | | | | 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@ Notes: svn path=/head/; revision=189136
* Add restrict qualifiers to the parameters to strlcpy() and strlcat().David Schultz2009-02-281-2/+2
| | | | | | | | The annotation mainly just serves as a hint that they're not intended for use with overlapping strings. Notes: svn path=/head/; revision=189133
* Mark memmem() __pure.David Schultz2009-02-281-1/+1
| | | | Notes: svn path=/head/; revision=189132
* Add a function attribute called `__malloc_like', which informs gccDavid Schultz2009-01-311-2/+2
| | | | | | | | | | | | | | | | | 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. Notes: svn path=/head/; revision=187961
* Add strndup(3) prototype to string.h.Konstantin Belousov2008-12-081-0/+1
| | | | | | | | | | | | | | 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 Notes: svn path=/head/; revision=185777
* Add memrchr(3).Xin LI2008-04-101-0/+1
| | | | | | | Obtained from: OpenBSD Notes: svn path=/head/; revision=178051
* Revert last revision, strmode() should be moved to <unistd.h> to beRuslan Ermilov2005-11-241-1/+1
| | | | | | | properly fixed. Notes: svn path=/head/; revision=152754
* Fix prototype of strmode() to match the code and documentation.Ruslan Ermilov2005-11-241-1/+1
| | | | Notes: svn path=/head/; revision=152747
* Appropriate namespace protection for memmem(3).Andre Oppermann2005-08-251-0/+2
| | | | | | | | Submitted by: wollman MFC after: 3 days Notes: svn path=/head/; revision=149469
* Add the function memmem(3) as found in glibc and others.Andre Oppermann2005-08-251-0/+1
| | | | | | | | | | | | | 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 Notes: svn path=/head/; revision=149466
* According to the information on:Tom Rhodes2004-12-101-2/+13
| | | | | | | | | | | | | | 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 Notes: svn path=/head/; revision=138659
* Mark functions pure where applicable. A notable exclusion is strcoll(),Tim J. Robbins2004-07-231-13/+13
| | | | | | | which is not strictly pure because it calls malloc()/free() in some cases. Notes: svn path=/head/; revision=132564
* Change the definition of NULL on ia64 (for LP64 compilations) fromMarcel Moolenaar2003-12-071-4/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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... Notes: svn path=/head/; revision=123257
* Correct visibility conditionals for memccpy(), strdup(), andMike Barcroft2002-10-141-18/+29
| | | | | | | strtok_r(). Merge conditional prototypes into the regular block. Notes: svn path=/head/; revision=105128
* Make stpcpy() only visiable w/in __BSD_VISIBLE.David E. O'Brien2002-10-051-1/+1
| | | | Notes: svn path=/head/; revision=104544
* Add stpcpy(3).David E. O'Brien2002-10-031-0/+1
| | | | Notes: svn path=/head/; revision=104420
* o Merge <machine/ansi.h> and <machine/types.h> into a new headerMike Barcroft2002-08-211-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | 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 Notes: svn path=/head/; revision=102227
* Add support for X/Open.Mike Barcroft2002-04-151-2/+5
| | | | | | | PR: 37078 Notes: svn path=/head/; revision=94721
* o Move some function prototypes from <string.h> to the newly rewrittenMike Barcroft2002-04-041-22/+24
| | | | | | | | | | <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>. Notes: svn path=/head/; revision=93747
* Breath deep and take __P out of the system include files.Warner Losh2002-03-231-42/+42
| | | | | | | | | # 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. Notes: svn path=/head/; revision=93032
* Fixed namespace pollution in previous commit. The C99 functionBruce Evans2001-11-281-1/+1
| | | | | | | | sterror_r() must not be declared in the C90/POSIX.1-1990 section. Put it in the nonstandard section for now. Notes: svn path=/head/; revision=87069
* Add strerror_r function per Posix prototype.Wes Peters2001-11-271-0/+1
| | | | | | | | Reviewed by: Mike Barcroft <mike@FreeBSD.org> MFC after: 2 weeks Notes: svn path=/head/; revision=86944
* Fixed some style bugs:Bruce Evans2001-10-101-3/+3
| | | | | | | | | - rev.1.6: corrupt tab before strlcpy. - rev.1.7: "From: " in vendor id. - rev.1.8: unsorted prototype for strccasestr. Notes: svn path=/head/; revision=84747
* Implement strcasestr() which many others (f.e. Linux) already haveAndrey A. Chernov2001-10-101-0/+1
| | | | Notes: svn path=/head/; revision=84741
* Add a new libc function, strnstr(3), which allows one to limit theMike Barcroft2001-10-091-1/+3
| | | | | | | | | | | 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 Notes: svn path=/head/; revision=84699
* Add prototypes for strl* functionsWarner Losh1999-08-161-0/+2
| | | | | | | | Forgotten by: imp Reported by: bde Notes: svn path=/head/; revision=49875
* Add a strsignal(3) (like strerror(3)) for libc compatability with otherPeter Wemm1999-05-181-0/+1
| | | | | | | systems. NetBSD, Linux, SVR4 etc all have it. Notes: svn path=/head/; revision=47289
* Add a prototype for strtok_r().John Polstra1999-01-201-0/+1
| | | | Notes: svn path=/head/; revision=42913
* string.h defines nonstandard routines when _POSIX_SOURCE isWarner Losh1996-12-171-1/+1
| | | | | | | | | | defined. It has been fixed to not do that. Submitted by: Jake Hamby <jehamby@lightside.com> Closes PR: 1954 Notes: svn path=/head/; revision=20600
* Remove trailing whitespace.Rodney W. Grimes1995-05-301-1/+1
| | | | Notes: svn path=/head/; revision=8858
* BSD 4.4 Lite Include SourcesRodney W. Grimes1994-05-241-0/+93
Notes: svn path=/head/; revision=1539