Merge branch 'jk/error-const-return'
authorJunio C Hamano <gitster@pobox.com>
Thu, 14 Feb 2013 18:29:23 +0000 (10:29 -0800)
committerJunio C Hamano <gitster@pobox.com>
Thu, 14 Feb 2013 18:29:23 +0000 (10:29 -0800)
* jk/error-const-return:
Use __VA_ARGS__ for all of error's arguments

1  2 
git-compat-util.h
diff --combined git-compat-util.h
index cc2abeea0debcbe70c31320abb904e6d55cfe2bc,89fdf0561b2e4d427728af36d6ee81a27a187af0..b7eaaa99a802018a657e81e4421e40fb806b97b3
@@@ -75,7 -75,7 +75,7 @@@
  # endif
  #elif !defined(__APPLE__) && !defined(__FreeBSD__) && !defined(__USLC__) && \
        !defined(_M_UNIX) && !defined(__sgi) && !defined(__DragonFly__) && \
 -      !defined(__TANDEM)
 +      !defined(__TANDEM) && !defined(__QNX__)
  #define _XOPEN_SOURCE 600 /* glibc2 and AIX 5.3L need 500, OpenBSD needs 600 for S_ISLNK() */
  #define _XOPEN_SOURCE_EXTENDED 1 /* AIX 5.3L needs this */
  #endif
  #include <stdlib.h>
  #include <stdarg.h>
  #include <string.h>
 -#ifdef __TANDEM /* or HAVE_STRINGS_H or !NO_STRINGS_H? */
 +#ifdef HAVE_STRINGS_H
  #include <strings.h> /* for strcasecmp() */
  #endif
  #include <errno.h>
  #include <limits.h>
 +#ifdef NEEDS_SYS_PARAM_H
  #include <sys/param.h>
 +#endif
  #include <sys/types.h>
  #include <dirent.h>
  #include <sys/time.h>
  #include <time.h>
  #include <signal.h>
 +#ifndef USE_WILDMATCH
  #include <fnmatch.h>
 +#endif
  #include <assert.h>
  #include <regex.h>
  #include <utime.h>
@@@ -282,17 -278,6 +282,17 @@@ extern char *gitbasename(char *)
  
  #include "compat/bswap.h"
  
 +#ifdef USE_WILDMATCH
 +#include "wildmatch.h"
 +#define FNM_PATHNAME WM_PATHNAME
 +#define FNM_CASEFOLD WM_CASEFOLD
 +#define FNM_NOMATCH  WM_NOMATCH
 +static inline int fnmatch(const char *pattern, const char *string, int flags)
 +{
 +      return wildmatch(pattern, string, flags, NULL);
 +}
 +#endif
 +
  /* General helper functions */
  extern void vreportf(const char *prefix, const char *err, va_list params);
  extern void vwritef(int fd, const char *prefix, const char *err, va_list params);
@@@ -305,13 -290,13 +305,13 @@@ extern void warning(const char *err, ..
  
  /*
   * Let callers be aware of the constant return value; this can help
-  * gcc with -Wuninitialized analysis. We have to restrict this trick to
-  * gcc, though, because of the variadic macro and the magic ## comma pasting
-  * behavior. But since we're only trying to help gcc, anyway, it's OK; other
-  * compilers will fall back to using the function as usual.
+  * gcc with -Wuninitialized analysis. We restrict this trick to gcc, though,
+  * because some compilers may not support variadic macros. Since we're only
+  * trying to help gcc, anyway, it's OK; other compilers will fall back to
+  * using the function as usual.
   */
 -#ifdef __GNUC__
 +#if defined(__GNUC__) && ! defined(__clang__)
- #define error(fmt, ...) (error((fmt), ##__VA_ARGS__), -1)
+ #define error(...) (error(__VA_ARGS__), -1)
  #endif
  
  extern void set_die_routine(NORETURN_PTR void (*routine)(const char *err, va_list params));
@@@ -437,10 -422,6 +437,10 @@@ void *gitmemmem(const void *haystack, s
                  const void *needle, size_t needlelen);
  #endif
  
 +#ifdef NO_GETPAGESIZE
 +#define getpagesize() sysconf(_SC_PAGESIZE)
 +#endif
 +
  #ifdef FREAD_READS_DIRECTORIES
  #ifdef fopen
  #undef fopen
@@@ -541,19 -522,13 +541,19 @@@ extern const char tolower_trans_tbl[256
  #undef isupper
  #undef tolower
  #undef toupper
 -extern unsigned char sane_ctype[256];
 +#undef iscntrl
 +#undef ispunct
 +#undef isxdigit
 +
 +extern const unsigned char sane_ctype[256];
  #define GIT_SPACE 0x01
  #define GIT_DIGIT 0x02
  #define GIT_ALPHA 0x04
  #define GIT_GLOB_SPECIAL 0x08
  #define GIT_REGEX_SPECIAL 0x10
  #define GIT_PATHSPEC_MAGIC 0x20
 +#define GIT_CNTRL 0x40
 +#define GIT_PUNCT 0x80
  #define sane_istest(x,mask) ((sane_ctype[(unsigned char)(x)] & (mask)) != 0)
  #define isascii(x) (((x) & ~0x7f) == 0)
  #define isspace(x) sane_istest(x,GIT_SPACE)
  #define isupper(x) sane_iscase(x, 0)
  #define is_glob_special(x) sane_istest(x,GIT_GLOB_SPECIAL)
  #define is_regex_special(x) sane_istest(x,GIT_GLOB_SPECIAL | GIT_REGEX_SPECIAL)
 +#define iscntrl(x) (sane_istest(x,GIT_CNTRL))
 +#define ispunct(x) sane_istest(x, GIT_PUNCT | GIT_REGEX_SPECIAL | \
 +              GIT_GLOB_SPECIAL | GIT_PATHSPEC_MAGIC)
 +#define isxdigit(x) (hexval_table[x] != -1)
  #define tolower(x) sane_case((unsigned char)(x), 0x20)
  #define toupper(x) sane_case((unsigned char)(x), 0)
  #define is_pathspec_magic(x) sane_istest(x,GIT_PATHSPEC_MAGIC)
@@@ -677,12 -648,8 +677,12 @@@ int rmdir_or_warn(const char *path)
   */
  int remove_or_warn(unsigned int mode, const char *path);
  
 -/* Call access(2), but warn for any error besides ENOENT. */
 +/*
 + * Call access(2), but warn for any error except "missing file"
 + * (ENOENT or ENOTDIR).
 + */
  int access_or_warn(const char *path, int mode);
 +int access_or_die(const char *path, int mode);
  
  /* Warn on an inaccessible file that ought to be accessible */
  void warn_on_inaccessible(const char *path);