blob: e8204b0a6c48a09a0666798f041ed65499d1dc88 [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001/* autoconf cannot fiddle out declarations. Use our homebrewn tools. (jw) */
2/*
3 * Declarations that may cause conflicts belong here so that osdef.sh
4 * can clean out the forest. Everything else belongs in os_unix.h
5 *
6 * How this works:
7 * - This file contains all unix prototypes that Vim might need.
8 * - The shell script osdef.sh is executed at compile time to remove all the
9 * prototypes that are in an include file. This results in osdef.h.
10 * - osdef.h is included in vim.h.
11 *
12 * sed cannot always handle so many commands, this is file 1 of 2
13 */
14
Bram Moolenaare240c2d2016-01-23 22:46:10 +010015extern int printf(char *, ...);
16extern int fprintf(FILE *, char *, ...);
17extern int sprintf(char *, char *, ...);
18extern int sscanf(char *, char *, ...);
Bram Moolenaar071d4272004-06-13 20:20:40 +000019#ifndef fopen /* could be redefined to fopen64() */
Bram Moolenaare240c2d2016-01-23 22:46:10 +010020extern FILE *fopen(const char *, const char *);
Bram Moolenaar071d4272004-06-13 20:20:40 +000021#endif
Bram Moolenaare240c2d2016-01-23 22:46:10 +010022extern int fclose(FILE *);
23extern int fseek(FILE *, long, int);
Bram Moolenaar071d4272004-06-13 20:20:40 +000024#ifdef HAVE_FSEEKO
Bram Moolenaare240c2d2016-01-23 22:46:10 +010025extern int fseeko(FILE *, off_t, int);
Bram Moolenaar071d4272004-06-13 20:20:40 +000026#endif
Bram Moolenaare240c2d2016-01-23 22:46:10 +010027extern long ftell(FILE *);
Bram Moolenaar25153e12010-02-24 14:47:08 +010028#ifdef HAVE_FSEEKO
Bram Moolenaare240c2d2016-01-23 22:46:10 +010029extern off_t ftello(FILE *);
Bram Moolenaar071d4272004-06-13 20:20:40 +000030#endif
Bram Moolenaare240c2d2016-01-23 22:46:10 +010031extern void rewind(FILE *);
32extern int fread(char *, int, int, FILE *);
33extern int fwrite(char *, int, int, FILE *);
34extern int fputs(char *, FILE *);
Bram Moolenaar071d4272004-06-13 20:20:40 +000035#ifndef ferror /* let me say it again: "macros should never have prototypes" */
Bram Moolenaare240c2d2016-01-23 22:46:10 +010036extern int ferror(FILE *);
Bram Moolenaar071d4272004-06-13 20:20:40 +000037#endif
Bram Moolenaare240c2d2016-01-23 22:46:10 +010038extern int fflush(FILE *);
Bram Moolenaar071d4272004-06-13 20:20:40 +000039#if defined(sun) || defined(_SEQUENT_)
40/* used inside of stdio macros getc(), puts(), putchar()... */
Bram Moolenaare240c2d2016-01-23 22:46:10 +010041extern int _flsbuf(int, FILE *);
42extern int _filbuf(FILE *);
Bram Moolenaar071d4272004-06-13 20:20:40 +000043#endif
44
45#if !defined(HAVE_SELECT)
Bram Moolenaare240c2d2016-01-23 22:46:10 +010046struct pollfd; /* for poll() */
47extern int poll(struct pollfd *, long, int);
Bram Moolenaar071d4272004-06-13 20:20:40 +000048#endif
49
50#ifdef HAVE_MEMSET
Bram Moolenaare240c2d2016-01-23 22:46:10 +010051extern void *memset(void *, int, size_t);
Bram Moolenaar071d4272004-06-13 20:20:40 +000052#endif
Bram Moolenaare240c2d2016-01-23 22:46:10 +010053extern int memcmp(const void *, const void *, size_t);
Bram Moolenaar071d4272004-06-13 20:20:40 +000054#ifdef HAVE_STRPBRK
Bram Moolenaare240c2d2016-01-23 22:46:10 +010055extern char *strpbrk(const char *, const char *);
Bram Moolenaar071d4272004-06-13 20:20:40 +000056#endif
57#ifdef USEBCOPY
Bram Moolenaare240c2d2016-01-23 22:46:10 +010058extern void bcopy(char *, char *, int);
Bram Moolenaar071d4272004-06-13 20:20:40 +000059#else
60# ifdef USEMEMCPY
Bram Moolenaare240c2d2016-01-23 22:46:10 +010061extern void memcpy(char *, char *, int);
Bram Moolenaar071d4272004-06-13 20:20:40 +000062# else
63# ifdef USEMEMMOVE
Bram Moolenaare240c2d2016-01-23 22:46:10 +010064extern void memmove(char *, char *, int);
Bram Moolenaar071d4272004-06-13 20:20:40 +000065# endif
66# endif
67#endif
Bram Moolenaarb3f74062020-02-26 16:16:53 +010068#if !defined(__BIONIC__) && !defined(__HAIKU__) // Android's libc #defines bzero to memset.
Bram Moolenaar8e7218c2018-08-22 21:56:57 +020069// used inside of FD_ZERO macro
Bram Moolenaare240c2d2016-01-23 22:46:10 +010070extern void bzero(void *, size_t);
Bram Moolenaar8e7218c2018-08-22 21:56:57 +020071#endif
Bram Moolenaar071d4272004-06-13 20:20:40 +000072#ifdef HAVE_SETSID
Bram Moolenaare240c2d2016-01-23 22:46:10 +010073extern pid_t setsid(void);
Bram Moolenaar071d4272004-06-13 20:20:40 +000074#endif
75#ifdef HAVE_SETPGID
Bram Moolenaare240c2d2016-01-23 22:46:10 +010076extern int setpgid(pid_t, pid_t);
Bram Moolenaar071d4272004-06-13 20:20:40 +000077#endif
78#ifdef HAVE_STRTOL
Bram Moolenaare240c2d2016-01-23 22:46:10 +010079extern int strtol(char *, char **, int);
Bram Moolenaar071d4272004-06-13 20:20:40 +000080#endif
81#ifdef HAVE_STRFTIME
Bram Moolenaare240c2d2016-01-23 22:46:10 +010082extern size_t strftime(char *, size_t, char *, struct tm *);
Bram Moolenaar071d4272004-06-13 20:20:40 +000083#endif
84#ifdef HAVE_STRCASECMP
Bram Moolenaare240c2d2016-01-23 22:46:10 +010085extern int strcasecmp(char *, char *);
Bram Moolenaar071d4272004-06-13 20:20:40 +000086#endif
87#ifdef HAVE_STRNCASECMP
Bram Moolenaare240c2d2016-01-23 22:46:10 +010088extern int strncasecmp(char *, char *, size_t);
Bram Moolenaar071d4272004-06-13 20:20:40 +000089#endif
90#ifndef strdup
Bram Moolenaare240c2d2016-01-23 22:46:10 +010091extern char *strdup(const char *);
Bram Moolenaar071d4272004-06-13 20:20:40 +000092#endif
Bram Moolenaare240c2d2016-01-23 22:46:10 +010093extern int atoi(char *);
94extern int atol(char *);
Bram Moolenaar071d4272004-06-13 20:20:40 +000095
96#ifndef USE_SYSTEM
Bram Moolenaare240c2d2016-01-23 22:46:10 +010097extern int fork(void);
Bram Moolenaar311d9822007-02-27 15:48:28 +000098# ifndef __TANDEM
Bram Moolenaare240c2d2016-01-23 22:46:10 +010099extern int execvp(const char *, const char **);
Bram Moolenaar311d9822007-02-27 15:48:28 +0000100# endif
Bram Moolenaare240c2d2016-01-23 22:46:10 +0100101extern int wait(int *); /* will this break things ...? */
102extern int waitpid(pid_t, int *, int);
Bram Moolenaar071d4272004-06-13 20:20:40 +0000103#endif
104
Bram Moolenaare240c2d2016-01-23 22:46:10 +0100105extern int toupper(int);
106extern int tolower(int);
Bram Moolenaar071d4272004-06-13 20:20:40 +0000107
Bram Moolenaar99c48fe2022-06-05 22:05:19 +0100108extern void (*signal(int, void (*func) SIGPROTOARG)) SIGPROTOARG;
Bram Moolenaar071d4272004-06-13 20:20:40 +0000109#ifdef HAVE_SIGSET
Bram Moolenaar99c48fe2022-06-05 22:05:19 +0100110extern void (*sigset(int, void (*func) SIGPROTOARG)) SIGPROTOARG;
Bram Moolenaar071d4272004-06-13 20:20:40 +0000111#endif
112
113#if defined(HAVE_SETJMP_H)
114# ifdef HAVE_SIGSETJMP
Bram Moolenaare240c2d2016-01-23 22:46:10 +0100115extern int sigsetjmp(sigjmp_buf, int);
116extern void siglongjmp(sigjmp_buf, int);
Bram Moolenaar071d4272004-06-13 20:20:40 +0000117# else
Bram Moolenaare240c2d2016-01-23 22:46:10 +0100118extern int setjmp(jmp_buf);
119extern void longjmp(jmp_buf, int);
Bram Moolenaar071d4272004-06-13 20:20:40 +0000120# endif
121#endif
122
Bram Moolenaare240c2d2016-01-23 22:46:10 +0100123extern int kill(int, int);
Bram Moolenaar071d4272004-06-13 20:20:40 +0000124
Bram Moolenaar311d9822007-02-27 15:48:28 +0000125#ifndef __TANDEM
Bram Moolenaare240c2d2016-01-23 22:46:10 +0100126extern int access(char *, int);
Bram Moolenaar311d9822007-02-27 15:48:28 +0000127#endif
Bram Moolenaare240c2d2016-01-23 22:46:10 +0100128extern int fsync(int);
129extern int fchown(int, int, int);
Bram Moolenaar311d9822007-02-27 15:48:28 +0000130#if defined(HAVE_GETCWD) && !defined(sun) && !defined(__TANDEM)
Bram Moolenaare240c2d2016-01-23 22:46:10 +0100131extern char *getcwd(char *, int);
Bram Moolenaar071d4272004-06-13 20:20:40 +0000132#else
Bram Moolenaare240c2d2016-01-23 22:46:10 +0100133extern char *getwd(char *);
Bram Moolenaar071d4272004-06-13 20:20:40 +0000134#endif
135#ifndef __alpha /* suggested by Campbell */
Bram Moolenaare240c2d2016-01-23 22:46:10 +0100136extern int ioctl(int, int, ...);
Bram Moolenaar071d4272004-06-13 20:20:40 +0000137#endif
Bram Moolenaare240c2d2016-01-23 22:46:10 +0100138extern int chmod(const char *, mode_t);