Merge commit 'upstream/1.7.4p6'
[debian/sudo] / missing.h
1 /*
2  * Copyright (c) 2009-2010 Todd C. Miller <Todd.Miller@courtesan.com>
3  *
4  * Permission to use, copy, modify, and distribute this software for any
5  * purpose with or without fee is hereby granted, provided that the above
6  * copyright notice and this permission notice appear in all copies.
7  *
8  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15  */
16
17 #ifndef _SUDO_MISSING_H
18 #define _SUDO_MISSING_H
19
20 #ifdef __STDC__
21 # include <stdarg.h>
22 #else
23 # include <varargs.h>
24 #endif
25
26 /* Functions "missing" from libc. */
27
28 struct timeval;
29 struct timespec;
30
31 #ifndef HAVE_CLOSEFROM
32 void closefrom          __P((int));
33 #endif
34 #ifndef HAVE_GETCWD
35 char *getcwd            __P((char *, size_t size));
36 #endif
37 #ifndef HAVE_GETLINE
38 ssize_t getline         __P((char **, size_t *, FILE *));
39 #endif
40 #ifndef HAVE_UTIMES
41 int utimes              __P((const char *, const struct timeval *));
42 #endif
43 #ifdef HAVE_FUTIME
44 int futimes             __P((int, const struct timeval *));
45 #endif
46 #ifndef HAVE_SNPRINTF
47 int snprintf            __P((char *, size_t, const char *, ...))
48                             __printflike(3, 4);
49 #endif
50 #ifndef HAVE_VSNPRINTF
51 int vsnprintf           __P((char *, size_t, const char *, va_list))
52                             __printflike(3, 0);
53 #endif
54 #ifndef HAVE_ASPRINTF
55 int asprintf            __P((char **, const char *, ...))
56                             __printflike(2, 3);
57 #endif
58 #ifndef HAVE_VASPRINTF
59 int vasprintf           __P((char **, const char *, va_list))
60                             __printflike(2, 0);
61 #endif
62 #ifndef HAVE_STRCASECMP
63 int strcasecmp          __P((const char *, const char *));
64 #endif
65 #ifndef HAVE_STRLCAT
66 size_t strlcat          __P((char *, const char *, size_t));
67 #endif
68 #ifndef HAVE_STRLCPY
69 size_t strlcpy          __P((char *, const char *, size_t));
70 #endif
71 #ifndef HAVE_MEMRCHR
72 void *memrchr           __P((const void *, int, size_t));
73 #endif
74 #ifndef HAVE_MKSTEMPS
75 int mkstemps            __P((char *, int));
76 #endif
77 #ifndef HAVE_NANOSLEEP
78 int nanosleep           __P((const struct timespec *, struct timespec *));
79 #endif
80 #ifndef HAVE_SETENV
81 int setenv              __P((const char *, const char *, int));
82 #endif
83 #ifndef HAVE_UNSETENV
84 int unsetenv            __P((const char *));
85 #endif
86 #ifndef HAVE_STRSIGNAL
87 char *strsignal         __P((int));
88 #endif
89 #ifndef HAVE_SETSID
90 pid_t setsid            __P((void));
91 #endif
92
93 #endif /* _SUDO_MISSING_H */