blob: 5519104c93e6556cba8d7e0a79b712e9238c9c10 [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
68/* used inside of FD_ZERO macro: */
Bram Moolenaare240c2d2016-01-23 22:46:10 +010069extern void bzero(void *, size_t);
Bram Moolenaar071d4272004-06-13 20:20:40 +000070#ifdef HAVE_SETSID
Bram Moolenaare240c2d2016-01-23 22:46:10 +010071extern pid_t setsid(void);
Bram Moolenaar071d4272004-06-13 20:20:40 +000072#endif
73#ifdef HAVE_SETPGID
Bram Moolenaare240c2d2016-01-23 22:46:10 +010074extern int setpgid(pid_t, pid_t);
Bram Moolenaar071d4272004-06-13 20:20:40 +000075#endif
76#ifdef HAVE_STRTOL
Bram Moolenaare240c2d2016-01-23 22:46:10 +010077extern int strtol(char *, char **, int);
Bram Moolenaar071d4272004-06-13 20:20:40 +000078#endif
79#ifdef HAVE_STRFTIME
Bram Moolenaare240c2d2016-01-23 22:46:10 +010080extern size_t strftime(char *, size_t, char *, struct tm *);
Bram Moolenaar071d4272004-06-13 20:20:40 +000081#endif
82#ifdef HAVE_STRCASECMP
Bram Moolenaare240c2d2016-01-23 22:46:10 +010083extern int strcasecmp(char *, char *);
Bram Moolenaar071d4272004-06-13 20:20:40 +000084#endif
85#ifdef HAVE_STRNCASECMP
Bram Moolenaare240c2d2016-01-23 22:46:10 +010086extern int strncasecmp(char *, char *, size_t);
Bram Moolenaar071d4272004-06-13 20:20:40 +000087#endif
88#ifndef strdup
Bram Moolenaare240c2d2016-01-23 22:46:10 +010089extern char *strdup(const char *);
Bram Moolenaar071d4272004-06-13 20:20:40 +000090#endif
Bram Moolenaare240c2d2016-01-23 22:46:10 +010091extern int atoi(char *);
92extern int atol(char *);
Bram Moolenaar071d4272004-06-13 20:20:40 +000093
94#ifndef USE_SYSTEM
Bram Moolenaare240c2d2016-01-23 22:46:10 +010095extern int fork(void);
Bram Moolenaar311d9822007-02-27 15:48:28 +000096# ifndef __TANDEM
Bram Moolenaare240c2d2016-01-23 22:46:10 +010097extern int execvp(const char *, const char **);
Bram Moolenaar311d9822007-02-27 15:48:28 +000098# endif
Bram Moolenaare240c2d2016-01-23 22:46:10 +010099extern int wait(int *); /* will this break things ...? */
100extern int waitpid(pid_t, int *, int);
Bram Moolenaar071d4272004-06-13 20:20:40 +0000101#endif
102
Bram Moolenaare240c2d2016-01-23 22:46:10 +0100103extern int toupper(int);
104extern int tolower(int);
Bram Moolenaar071d4272004-06-13 20:20:40 +0000105
Bram Moolenaare240c2d2016-01-23 22:46:10 +0100106extern RETSIGTYPE (*signal(int, RETSIGTYPE (*func) SIGPROTOARG)) SIGPROTOARG;
Bram Moolenaar071d4272004-06-13 20:20:40 +0000107#ifdef HAVE_SIGSET
Bram Moolenaare240c2d2016-01-23 22:46:10 +0100108extern RETSIGTYPE (*sigset(int, RETSIGTYPE (*func) SIGPROTOARG)) SIGPROTOARG;
Bram Moolenaar071d4272004-06-13 20:20:40 +0000109#endif
110
111#if defined(HAVE_SETJMP_H)
112# ifdef HAVE_SIGSETJMP
Bram Moolenaare240c2d2016-01-23 22:46:10 +0100113extern int sigsetjmp(sigjmp_buf, int);
114extern void siglongjmp(sigjmp_buf, int);
Bram Moolenaar071d4272004-06-13 20:20:40 +0000115# else
Bram Moolenaare240c2d2016-01-23 22:46:10 +0100116extern int setjmp(jmp_buf);
117extern void longjmp(jmp_buf, int);
Bram Moolenaar071d4272004-06-13 20:20:40 +0000118# endif
119#endif
120
Bram Moolenaare240c2d2016-01-23 22:46:10 +0100121extern int kill(int, int);
Bram Moolenaar071d4272004-06-13 20:20:40 +0000122
Bram Moolenaar311d9822007-02-27 15:48:28 +0000123#ifndef __TANDEM
Bram Moolenaare240c2d2016-01-23 22:46:10 +0100124extern int access(char *, int);
Bram Moolenaar311d9822007-02-27 15:48:28 +0000125#endif
Bram Moolenaare240c2d2016-01-23 22:46:10 +0100126extern int fsync(int);
127extern int fchown(int, int, int);
Bram Moolenaar311d9822007-02-27 15:48:28 +0000128#if defined(HAVE_GETCWD) && !defined(sun) && !defined(__TANDEM)
Bram Moolenaare240c2d2016-01-23 22:46:10 +0100129extern char *getcwd(char *, int);
Bram Moolenaar071d4272004-06-13 20:20:40 +0000130#else
Bram Moolenaare240c2d2016-01-23 22:46:10 +0100131extern char *getwd(char *);
Bram Moolenaar071d4272004-06-13 20:20:40 +0000132#endif
133#ifndef __alpha /* suggested by Campbell */
Bram Moolenaare240c2d2016-01-23 22:46:10 +0100134extern int ioctl(int, int, ...);
Bram Moolenaar071d4272004-06-13 20:20:40 +0000135#endif
Bram Moolenaare240c2d2016-01-23 22:46:10 +0100136extern int chmod(const char *, mode_t);