Skip to content

Commit

Permalink
patch 7.4.1159
Browse files Browse the repository at this point in the history
Problem:    Automatically generated function prototypes use __ARGS.
Solution:   Remove __ARGS from osdef.sh.
  • Loading branch information
brammool committed Jan 23, 2016
1 parent 48e697e commit e240c2d
Show file tree
Hide file tree
Showing 4 changed files with 118 additions and 116 deletions.
8 changes: 4 additions & 4 deletions src/osdef.sh
Expand Up @@ -53,11 +53,11 @@ $CC -I. -I$srcdir -E osdef0.c >osdef0.cc
# start of the line is matched with "[)*, ]\1[ (]"
sed < osdef0.cc -e '/\(..*\)/s// \1/' > osdef0.ccc

sed < $srcdir/osdef1.h.in -n -e '/^extern/s@.*[)* ][)* ]*\([a-zA-Z_][a-zA-Z0-9_]*\) __ARGS.*@/[)*, ][(]*\1[)]*[ (]/i\\\
\\/\\[^a-zA-Z_\\]\1 __ARGS\\/d@p' > osdef11.sed
sed < $srcdir/osdef1.h.in -n -e '/^extern/s@.*[)* ][)* ]*\([a-zA-Z_][a-zA-Z0-9_]*\)(.*@/[)*, ][(]*\1[)]*[ (]/i\\\
\\/\\[^a-zA-Z_\\]\1(\\/d@p' > osdef11.sed

sed < $srcdir/osdef2.h.in -n -e '/^extern/s@.*[)* ][)* ]*\([a-zA-Z_][a-zA-Z0-9_]*\) __ARGS.*@/[)*, ][(]*\1[)]*[ (]/i\\\
\\/\\[^a-zA-Z_\\]\1 __ARGS\\/d@p' > osdef21.sed
sed < $srcdir/osdef2.h.in -n -e '/^extern/s@.*[)* ][)* ]*\([a-zA-Z_][a-zA-Z0-9_]*\)(.*@/[)*, ][(]*\1[)]*[ (]/i\\\
\\/\\[^a-zA-Z_\\]\1(\\/d@p' > osdef21.sed

cat << EOF > osdef2.sed
1i\\
Expand Down
114 changes: 57 additions & 57 deletions src/osdef1.h.in
Expand Up @@ -12,130 +12,130 @@
* sed cannot always handle so many commands, this is file 1 of 2
*/

extern int printf __ARGS((char *, ...));
extern int fprintf __ARGS((FILE *, char *, ...));
extern int sprintf __ARGS((char *, char *, ...));
extern int sscanf __ARGS((char *, char *, ...));
extern int printf(char *, ...);
extern int fprintf(FILE *, char *, ...);
extern int sprintf(char *, char *, ...);
extern int sscanf(char *, char *, ...);
#ifndef fopen /* could be redefined to fopen64() */
extern FILE *fopen __ARGS((const char *, const char *));
extern FILE *fopen(const char *, const char *);
#endif
extern int fclose __ARGS((FILE *));
extern int fseek __ARGS((FILE *, long, int));
extern int fclose(FILE *);
extern int fseek(FILE *, long, int);
#ifdef HAVE_FSEEKO
extern int fseeko __ARGS((FILE *, off_t, int));
extern int fseeko(FILE *, off_t, int);
#endif
extern long ftell __ARGS((FILE *));
extern long ftell(FILE *);
#ifdef HAVE_FSEEKO
extern off_t ftello __ARGS((FILE *));
extern off_t ftello(FILE *);
#endif
extern void rewind __ARGS((FILE *));
extern int fread __ARGS((char *, int, int, FILE *));
extern int fwrite __ARGS((char *, int, int, FILE *));
extern int fputs __ARGS((char *, FILE *));
extern void rewind(FILE *);
extern int fread(char *, int, int, FILE *);
extern int fwrite(char *, int, int, FILE *);
extern int fputs(char *, FILE *);
#ifndef ferror /* let me say it again: "macros should never have prototypes" */
extern int ferror __ARGS((FILE *));
extern int ferror(FILE *);
#endif
extern int fflush __ARGS((FILE *));
extern int fflush(FILE *);
#if defined(sun) || defined(_SEQUENT_)
/* used inside of stdio macros getc(), puts(), putchar()... */
extern int _flsbuf __ARGS((int, FILE *));
extern int _filbuf __ARGS((FILE *));
extern int _flsbuf(int, FILE *);
extern int _filbuf(FILE *);
#endif

#if !defined(HAVE_SELECT)
struct pollfd; /* for poll __ARGS */
extern int poll __ARGS((struct pollfd *, long, int));
struct pollfd; /* for poll() */
extern int poll(struct pollfd *, long, int);
#endif

#ifdef HAVE_MEMSET
extern void *memset __ARGS((void *, int, size_t));
extern void *memset(void *, int, size_t);
#endif
#ifdef HAVE_BCMP
extern int bcmp __ARGS((void *, void *, size_t));
extern int bcmp(void *, void *, size_t);
#endif
#ifdef HAVE_MEMCMP
extern int memcmp __ARGS((const void *, const void *, size_t));
extern int memcmp(const void *, const void *, size_t);
#endif
#ifdef HAVE_STRPBRK
extern char *strpbrk __ARGS((const char *, const char *));
extern char *strpbrk(const char *, const char *);
#endif
#ifdef USEBCOPY
extern void bcopy __ARGS((char *, char *, int));
extern void bcopy(char *, char *, int);
#else
# ifdef USEMEMCPY
extern void memcpy __ARGS((char *, char *, int));
extern void memcpy(char *, char *, int);
# else
# ifdef USEMEMMOVE
extern void memmove __ARGS((char *, char *, int));
extern void memmove(char *, char *, int);
# endif
# endif
#endif
/* used inside of FD_ZERO macro: */
extern void bzero __ARGS((void *, size_t));
extern void bzero(void *, size_t);
#ifdef HAVE_SETSID
extern pid_t setsid __ARGS((void));
extern pid_t setsid(void);
#endif
#ifdef HAVE_SETPGID
extern int setpgid __ARGS((pid_t, pid_t));
extern int setpgid(pid_t, pid_t);
#endif
#ifdef HAVE_STRTOL
extern int strtol __ARGS((char *, char **, int));
extern int strtol(char *, char **, int);
#endif
#ifdef HAVE_STRFTIME
extern size_t strftime __ARGS((char *, size_t, char *, struct tm *));
extern size_t strftime(char *, size_t, char *, struct tm *);
#endif
#ifdef HAVE_STRCASECMP
extern int strcasecmp __ARGS((char *, char *));
extern int strcasecmp(char *, char *);
#endif
#ifdef HAVE_STRNCASECMP
extern int strncasecmp __ARGS((char *, char *, size_t));
extern int strncasecmp(char *, char *, size_t);
#endif
#ifndef strdup
extern char *strdup __ARGS((const char *));
extern char *strdup(const char *);
#endif
extern int atoi __ARGS((char *));
extern int atol __ARGS((char *));
extern int atoi(char *);
extern int atol(char *);

#ifndef USE_SYSTEM
extern int fork __ARGS((void));
extern int fork(void);
# ifndef __TANDEM
extern int execvp __ARGS((const char *, const char **));
extern int execvp(const char *, const char **);
# endif
extern int wait __ARGS((int *)); /* will this break things ...? */
extern int waitpid __ARGS((pid_t, int *, int));
extern int wait(int *); /* will this break things ...? */
extern int waitpid(pid_t, int *, int);
#endif

extern int toupper __ARGS((int));
extern int tolower __ARGS((int));
extern int toupper(int);
extern int tolower(int);

extern RETSIGTYPE (*signal __ARGS((int, RETSIGTYPE (*func) SIGPROTOARG))) __ARGS(SIGPROTOARG);
extern RETSIGTYPE (*signal(int, RETSIGTYPE (*func) SIGPROTOARG)) SIGPROTOARG;
#ifdef HAVE_SIGSET
extern RETSIGTYPE (*sigset __ARGS((int, RETSIGTYPE (*func) SIGPROTOARG))) __ARGS(SIGPROTOARG);
extern RETSIGTYPE (*sigset(int, RETSIGTYPE (*func) SIGPROTOARG)) SIGPROTOARG;
#endif

#if defined(HAVE_SETJMP_H)
# ifdef HAVE_SIGSETJMP
extern int sigsetjmp __ARGS((sigjmp_buf, int));
extern void siglongjmp __ARGS((sigjmp_buf, int));
extern int sigsetjmp(sigjmp_buf, int);
extern void siglongjmp(sigjmp_buf, int);
# else
extern int setjmp __ARGS((jmp_buf));
extern void longjmp __ARGS((jmp_buf, int));
extern int setjmp(jmp_buf);
extern void longjmp(jmp_buf, int);
# endif
#endif

extern int kill __ARGS((int, int));
extern int kill(int, int);

#ifndef __TANDEM
extern int access __ARGS((char *, int));
extern int access(char *, int);
#endif
extern int fsync __ARGS((int));
extern int fchown __ARGS((int, int, int));
extern int fsync(int);
extern int fchown(int, int, int);
#if defined(HAVE_GETCWD) && !defined(sun) && !defined(__TANDEM)
extern char *getcwd __ARGS((char *, int));
extern char *getcwd(char *, int);
#else
extern char *getwd __ARGS((char *));
extern char *getwd(char *);
#endif
#ifndef __alpha /* suggested by Campbell */
extern int ioctl __ARGS((int, int, ...));
extern int ioctl(int, int, ...);
#endif
extern int chmod __ARGS((const char *, mode_t));
extern int chmod(const char *, mode_t);
110 changes: 55 additions & 55 deletions src/osdef2.h.in
Expand Up @@ -2,95 +2,95 @@
* osdef2.h.in - See osdef1.h.in for a description.
*/

extern int remove __ARGS((const char *));
extern int rename __ARGS((const char *, const char *));
extern int free __ARGS((char *));
extern char *malloc __ARGS((unsigned int));
extern char *realloc __ARGS((char *, int));
extern char *getenv __ARGS((char *));
extern int setenv __ARGS((char *, char *, int));
extern int putenv __ARGS((const char *));
extern int remove(const char *);
extern int rename(const char *, const char *);
extern int free(char *);
extern char *malloc(unsigned int);
extern char *realloc(char *, int);
extern char *getenv(char *);
extern int setenv(char *, char *, int);

This comment has been minimized.

Copy link
@Jojo-Schmitz

Jojo-Schmitz Feb 11, 2018

This should be setenv(const char *, const char *, int);, check http://man7.org/linux/man-pages/man3/setenv.3.html

This comment has been minimized.

Copy link
@brammool

brammool Feb 11, 2018

Author Contributor

You are pointing to the Linux manpage, but these headers are for when the prototype is missing, which would exclude Linux.

This comment has been minimized.

Copy link
@Jojo-Schmitz

Jojo-Schmitz via email Feb 11, 2018

This comment has been minimized.

Copy link
@brammool

brammool via email Feb 12, 2018

Author Contributor
extern int putenv(const char *);

#ifndef __TANDEM
extern int gethostname __ARGS((char *, int));
extern int gethostname(char *, int);
#endif
extern void perror __ARGS((char *));
extern void perror(char *);

#ifndef __TANDEM
extern int sleep __ARGS((int));
extern int sleep(int);
#endif
extern int usleep __ARGS((unsigned int));
extern unsigned int alarm __ARGS((unsigned int));
extern int usleep(unsigned int);
extern unsigned int alarm(unsigned int);
#ifndef __TANDEM
extern int chdir __ARGS((char *));
extern int chdir(char *);
#endif
extern int fchdir __ARGS((int));
extern int fchdir(int);
#ifndef stat /* could be redefined to stat64() */
extern int stat __ARGS((const char *, struct stat *));
extern int stat(const char *, struct stat *);
#endif
#ifndef lstat /* could be redefined to lstat64() */
extern int lstat __ARGS((const char *, struct stat *));
extern int lstat(const char *, struct stat *);
#endif
extern int fstat __ARGS((int, struct stat *));
extern int open __ARGS((const char *, int, ...));
extern int close __ARGS((int));
extern int fstat(int, struct stat *);
extern int open(const char *, int, ...);
extern int close(int);
#ifndef __TANDEM
extern int read __ARGS((int, char *, size_t));
extern int write __ARGS((int, char *, size_t));
extern int read(int, char *, size_t);
extern int write(int, char *, size_t);
#endif
extern int pipe __ARGS((int *));
extern off_t lseek __ARGS((int, off_t, int));
extern void sync __ARGS((void));
extern uid_t getuid __ARGS((void));
extern gid_t getgid __ARGS((void));
extern void qsort __ARGS((void *, size_t, size_t, int (*)(const void *, const void *)));
extern int pipe(int *);
extern off_t lseek(int, off_t, int);
extern void sync(void);
extern uid_t getuid(void);
extern gid_t getgid(void);
extern void qsort(void *, size_t, size_t, int (*)(const void *, const void *));

extern int isatty __ARGS((int));
extern int getpid __ARGS((void));
extern int dup __ARGS((int));
extern int unlink __ARGS((const char *));
extern int link __ARGS((const char *, const char *));
extern int mkdir __ARGS((const char *, mode_t));
extern int rmdir __ARGS((const char *));
extern int isatty(int);
extern int getpid(void);
extern int dup(int);
extern int unlink(const char *);
extern int link(const char *, const char *);
extern int mkdir(const char *, mode_t);
extern int rmdir(const char *);

extern int tgetent __ARGS((char *, char *));
extern int tgetnum __ARGS((char *));
extern int tgetflag __ARGS((char *));
extern char *tgoto __ARGS((char *, int, int));
extern int tputs __ARGS((char *, int, int (*)(int)));
extern int tgetent(char *, char *);
extern int tgetnum(char *);
extern int tgetflag(char *);
extern char *tgoto(char *, int, int);
extern int tputs(char *, int, int (*)(int));

#ifdef HAVE_TERMIOS_H
struct termios; /* for tcgetattr __ARGS */
extern int tcgetattr __ARGS((int, struct termios *));
extern int tcsetattr __ARGS((int, int, const struct termios *));
struct termios; /* for tcgetattr() */
extern int tcgetattr(int, struct termios *);
extern int tcsetattr(int, int, const struct termios *);
#endif

#ifdef HAVE_SYS_STATFS_H
struct statfs; /* for fstatfs __ARGS */
extern int fstatfs __ARGS((int, struct statfs *, int, int));
struct statfs; /* for fstatfs() */
extern int fstatfs(int, struct statfs *, int, int);
#endif

#ifdef HAVE_GETTIMEOFDAY
struct timeval; /* for gettimeofday __ARGS */
struct timezone; /* for gettimeofday __ARGS */
extern int gettimeofday __ARGS((struct timeval *tp, struct timezone *tzp));
extern time_t time __ARGS((time_t *));
struct timeval; /* for gettimeofday() */
struct timezone; /* for gettimeofday() */
extern int gettimeofday(struct timeval *tp, struct timezone *tzp);
extern time_t time(time_t *);
#endif

#ifdef HAVE_GETPWNAM
struct passwd; /* for getpwnam __ARGS */
extern struct passwd *getpwnam __ARGS((const char *));
struct passwd; /* for getpwnam() */
extern struct passwd *getpwnam(const char *);
#endif

#ifdef USE_TMPNAM
extern char *tmpnam __ARGS((char *));
extern char *tmpnam(char *);
#else
extern char *mktemp __ARGS((char *));
extern char *mktemp(char *);
#endif

#ifdef ISC
extern int _Xmblen __ARGS((char const *, size_t));
extern int _Xmblen(char const *, size_t);
#else
/* This is different from the header but matches mblen() */
extern int _Xmblen __ARGS((char *, size_t));
extern int _Xmblen(char *, size_t);
#endif
2 changes: 2 additions & 0 deletions src/version.c
Expand Up @@ -741,6 +741,8 @@ static char *(features[]) =

static int included_patches[] =
{ /* Add new patch number below this line */
/**/
1159,
/**/
1158,
/**/
Expand Down

0 comments on commit e240c2d

Please sign in to comment.