aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorDavid Schultz <das@FreeBSD.org>2009-02-28 06:00:58 +0000
committerDavid Schultz <das@FreeBSD.org>2009-02-28 06:00:58 +0000
commit69099ba2ec8b01fe51a5c69b98990cde406c5ab8 (patch)
treef258384b92d5c4bde23e95d4c44fa3547a0364cd /include
parent8bc369a3e122d4e2dd14be8d96eeaf3f4d8573e2 (diff)
downloadsrc-69099ba2ec8b01fe51a5c69b98990cde406c5ab8.tar.gz
src-69099ba2ec8b01fe51a5c69b98990cde406c5ab8.zip
Notes
Diffstat (limited to 'include')
-rw-r--r--include/stdio.h39
-rw-r--r--include/string.h12
-rw-r--r--include/wchar.h10
3 files changed, 57 insertions, 4 deletions
diff --git a/include/stdio.h b/include/stdio.h
index 674a5c2f969d..cc870a80e226 100644
--- a/include/stdio.h
+++ b/include/stdio.h
@@ -51,6 +51,17 @@ typedef __size_t size_t;
#define _SIZE_T_DECLARED
#endif
+#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200809
+#ifndef _OFF_T_DECLARED
+#define _OFF_T_DECLARED
+typedef __off_t off_t;
+#endif
+#ifndef _SSIZE_T_DECLARED
+#define _SSIZE_T_DECLARED
+typedef __ssize_t ssize_t;
+#endif
+#endif
+
#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200112 || __XSI_VISIBLE
#ifndef _VA_LIST_DECLARED
typedef __va_list va_list;
@@ -330,6 +341,34 @@ int putw(int, FILE *);
char *tempnam(const char *, const char *);
#endif
+#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200809
+ssize_t getdelim(char ** __restrict, size_t * __restrict, int,
+ FILE * __restrict);
+
+/*
+ * Every programmer and his dog wrote functions called getline()
+ * before POSIX.1-2008 came along and decided to usurp the name, so we
+ * don't prototype getline() by default unless one of the following is true:
+ * a) the app has requested it specifically by defining _WITH_GETLINE
+ * b) the app has requested a POSIX.1-2008 environment via _POSIX_C_SOURCE
+ * c) the app defines a GNUism such as _BSD_SOURCE or _GNU_SOURCE
+ */
+#ifndef _WITH_GETLINE
+#if defined(_BSD_SOURCE) || defined(_GNU_SOURCE)
+#define _WITH_GETLINE
+#elif defined(_POSIX_C_SOURCE)
+#if _POSIX_C_SOURCE > 200809
+#define _WITH_GETLINE
+#endif
+#endif
+#endif
+
+#ifdef _WITH_GETLINE
+ssize_t getline(char ** __restrict, size_t * __restrict, FILE * __restrict);
+#endif
+
+#endif /* __BSD_VISIBLE || __POSIX_VISIBLE >= 200809 */
+
/*
* Routines that are purely local.
*/
diff --git a/include/string.h b/include/string.h
index 91007f130482..5923cb5ef7dd 100644
--- a/include/string.h
+++ b/include/string.h
@@ -67,8 +67,11 @@ void *memmem(const void *, size_t, const void *, size_t) __pure;
#endif
void *memmove(void *, const void *, size_t);
void *memset(void *, int, size_t);
+#if __POSIX_VISIBLE >= 200809 || __BSD_VISIBLE
+char *stpcpy(char * __restrict, const char * __restrict);
+char *stpncpy(char * __restrict, const char * __restrict, size_t);
+#endif
#if __BSD_VISIBLE
-char *stpcpy(char *, const char *);
char *strcasestr(const char *, const char *) __pure;
#endif
char *strcat(char * __restrict, const char * __restrict);
@@ -95,14 +98,19 @@ void strmode(int, char *);
char *strncat(char * __restrict, const char * __restrict, size_t);
int strncmp(const char *, const char *, size_t) __pure;
char *strncpy(char * __restrict, const char * __restrict, size_t);
-#if __BSD_VISIBLE
+#if __POSIX_VISIBLE >= 200809 || __BSD_VISIBLE
char *strndup(const char *, size_t) __malloc_like;
+size_t strnlen(const char *, size_t) __pure;
+#endif
+#if __BSD_VISIBLE
char *strnstr(const char *, const char *, size_t) __pure;
#endif
char *strpbrk(const char *, const char *) __pure;
char *strrchr(const char *, int) __pure;
#if __BSD_VISIBLE
char *strsep(char **, const char *);
+#endif
+#if __POSIX_VISIBLE >= 200809 || __BSD_VISIBLE
char *strsignal(int);
#endif
size_t strspn(const char *, const char *) __pure;
diff --git a/include/wchar.h b/include/wchar.h
index 4fc6c8cb03b2..f165a5b4baff 100644
--- a/include/wchar.h
+++ b/include/wchar.h
@@ -210,13 +210,19 @@ int wcwidth(wchar_t);
#define wcwidth(_c) __wcwidth(_c)
#endif
-#if __BSD_VISIBLE
-wchar_t *fgetwln(struct __sFILE * __restrict, size_t * __restrict);
+#if __POSIX_VISIBLE >= 200809 || __BSD_VISIBLE
size_t mbsnrtowcs(wchar_t * __restrict, const char ** __restrict, size_t,
size_t, mbstate_t * __restrict);
wchar_t *wcsdup(const wchar_t *) __malloc_like;
+int wcscasecmp(const wchar_t *, const wchar_t *);
+int wcsncasecmp(const wchar_t *, const wchar_t *, size_t n);
+size_t wcsnlen(const wchar_t *, size_t) __pure;
size_t wcsnrtombs(char * __restrict, const wchar_t ** __restrict, size_t,
size_t, mbstate_t * __restrict);
+#endif
+
+#if __BSD_VISIBLE
+wchar_t *fgetwln(struct __sFILE * __restrict, size_t * __restrict);
size_t wcslcat(wchar_t *, const wchar_t *, size_t);
size_t wcslcpy(wchar_t *, const wchar_t *, size_t);
#endif