Browse Source

Merge branch 'nd/fileno-may-be-macro'

* nd/fileno-may-be-macro:
  git-compat-util: work around fileno(fp) that is a macro
maint
Junio C Hamano 6 years ago
parent
commit
1db999ce8d
  1. 7
      Makefile
  2. 7
      compat/fileno.c
  3. 2
      config.mak.uname
  4. 8
      git-compat-util.h

7
Makefile

@ -433,6 +433,8 @@ all:: @@ -433,6 +433,8 @@ all::
#
# Define HAVE_GETDELIM if your system has the getdelim() function.
#
# Define FILENO_IS_A_MACRO if fileno() is a macro, not a real function.
#
# Define PAGER_ENV to a SP separated VAR=VAL pairs to define
# default environment variables to be passed when a pager is spawned, e.g.
#
@ -1800,6 +1802,11 @@ ifdef HAVE_WPGMPTR @@ -1800,6 +1802,11 @@ ifdef HAVE_WPGMPTR
BASIC_CFLAGS += -DHAVE_WPGMPTR
endif

ifdef FILENO_IS_A_MACRO
COMPAT_CFLAGS += -DFILENO_IS_A_MACRO
COMPAT_OBJS += compat/fileno.o
endif

ifeq ($(TCLTK_PATH),)
NO_TCLTK = NoThanks
endif

7
compat/fileno.c

@ -0,0 +1,7 @@ @@ -0,0 +1,7 @@
#define COMPAT_CODE
#include "../git-compat-util.h"

int git_fileno(FILE *stream)
{
return fileno(stream);
}

2
config.mak.uname

@ -221,6 +221,7 @@ ifeq ($(uname_S),FreeBSD) @@ -221,6 +221,7 @@ ifeq ($(uname_S),FreeBSD)
HAVE_BSD_KERN_PROC_SYSCTL = YesPlease
PAGER_ENV = LESS=FRX LV=-c MORE=FRX
FREAD_READS_DIRECTORIES = UnfortunatelyYes
FILENO_IS_A_MACRO = UnfortunatelyYes
endif
ifeq ($(uname_S),OpenBSD)
NO_STRCASESTR = YesPlease
@ -234,6 +235,7 @@ ifeq ($(uname_S),OpenBSD) @@ -234,6 +235,7 @@ ifeq ($(uname_S),OpenBSD)
HAVE_BSD_KERN_PROC_SYSCTL = YesPlease
PROCFS_EXECUTABLE_PATH = /proc/curproc/file
FREAD_READS_DIRECTORIES = UnfortunatelyYes
FILENO_IS_A_MACRO = UnfortunatelyYes
endif
ifeq ($(uname_S),MirBSD)
NO_STRCASESTR = YesPlease

8
git-compat-util.h

@ -1234,6 +1234,14 @@ struct tm *git_gmtime_r(const time_t *, struct tm *); @@ -1234,6 +1234,14 @@ struct tm *git_gmtime_r(const time_t *, struct tm *);
#define getc_unlocked(fh) getc(fh)
#endif

#ifdef FILENO_IS_A_MACRO
int git_fileno(FILE *stream);
# ifndef COMPAT_CODE
# undef fileno
# define fileno(p) git_fileno(p)
# endif
#endif

/*
* Our code often opens a path to an optional file, to work on its
* contents when we can successfully open it. We can ignore a failure

Loading…
Cancel
Save