[or-cvs] [tor/release-0.2.2] Merge remote branch 'origin/maint-0.2.1' into maint-0.2.2

arma at torproject.org arma at torproject.org
Sat Jan 15 22:31:47 UTC 2011


commit 27cefef3a21e69d801c30d1450399b7d034c0f20
Merge: bb5f99d 5c09431
Author: Nick Mathewson <nickm at torproject.org>
Date:   Mon Jan 3 13:18:33 2011 -0500

    Merge remote branch 'origin/maint-0.2.1' into maint-0.2.2

 changes/bug2313     |    4 ++++
 src/common/compat.h |    2 +-
 2 files changed, 5 insertions(+), 1 deletions(-)

diff --combined src/common/compat.h
index 01c94d5,c7ed32b..ee20e71
--- a/src/common/compat.h
+++ b/src/common/compat.h
@@@ -31,7 -31,7 +31,7 @@@
  #ifdef HAVE_STRING_H
  #include <string.h>
  #endif
- #ifdef HAVE_PTHREAD_H
+ #if defined(HAVE_PTHREAD_H) && !defined(MS_WINDOWS)
  #include <pthread.h>
  #endif
  #include <stdarg.h>
@@@ -51,22 -51,6 +51,22 @@@
  #include <netinet6/in6.h>
  #endif
  
 +#if defined (WINCE)
 +#include <fcntl.h>
 +#include <io.h>
 +#include <math.h>
 +#include <projects.h>
 +#define snprintf _snprintf
 +/* this is not exported as W .... */
 +#define SHGetPathFromIDListW SHGetPathFromIDList
 +/* wcecompat has vasprintf */
 +#define HAVE_VASPRINTF
 +/* no service here */
 +#ifdef NT_SERVICE
 +#undef NT_SERVICE
 +#endif
 +#endif // WINCE
 +
  #ifndef NULL_REP_IS_ZERO_BYTES
  #error "It seems your platform does not represent NULL as zero. We can't cope."
  #endif
@@@ -193,8 -177,8 +193,8 @@@ extern INLINE double U64_TO_DBL(uint64_
  /* ===== String compatibility */
  #ifdef MS_WINDOWS
  /* Windows names string functions differently from most other platforms. */
 -#define strncasecmp strnicmp
 -#define strcasecmp stricmp
 +#define strncasecmp _strnicmp
 +#define strcasecmp _stricmp
  #endif
  #ifndef HAVE_STRLCAT
  size_t strlcat(char *dst, const char *src, size_t siz) ATTR_NONNULL((1,2));
@@@ -212,26 -196,18 +212,26 @@@ size_t strlcpy(char *dst, const char *s
  #define U64_SCANF_ARG(a) (a)
  /** Expands to a literal uint64_t-typed constant for the value <b>n</b>. */
  #define U64_LITERAL(n) (n ## ui64)
 +#define I64_PRINTF_ARG(a) (a)
 +#define I64_SCANF_ARG(a) (a)
 +#define I64_LITERAL(n) (n ## i64)
  #else
  #define U64_PRINTF_ARG(a) ((long long unsigned int)(a))
  #define U64_SCANF_ARG(a) ((long long unsigned int*)(a))
  #define U64_LITERAL(n) (n ## llu)
 +#define I64_PRINTF_ARG(a) ((long long signed int)(a))
 +#define I64_SCANF_ARG(a) ((long long signed int*)(a))
 +#define I64_LITERAL(n) (n ## ll)
  #endif
  
  #if defined(_MSC_VER) || defined(__MINGW32__) || defined(__MINGW64__)
  /** The formatting string used to put a uint64_t value in a printf() or
   * scanf() function.  See also U64_PRINTF_ARG and U64_SCANF_ARG. */
  #define U64_FORMAT "%I64u"
 +#define I64_FORMAT "%I64d"
  #else
  #define U64_FORMAT "%llu"
 +#define I64_FORMAT "%lld"
  #endif
  
  /** Represents an mmaped file. Allocated via tor_mmap_file; freed with
@@@ -259,10 -235,6 +259,10 @@@ int tor_snprintf(char *str, size_t size
  int tor_vsnprintf(char *str, size_t size, const char *format, va_list args)
    ATTR_NONNULL((1,3));
  
 +int tor_asprintf(char **strp, const char *fmt, ...)
 +  CHECK_PRINTF(2,3);
 +int tor_vasprintf(char **strp, const char *fmt, va_list args);
 +
  const void *tor_memmem(const void *haystack, size_t hlen, const void *needle,
                         size_t nlen)  ATTR_PURE ATTR_NONNULL((1,3));
  static const void *tor_memstr(const void *haystack, size_t hlen,
@@@ -295,13 -267,6 +295,13 @@@ extern const char TOR_TOLOWER_TABLE[]
  #define TOR_TOLOWER(c) (TOR_TOLOWER_TABLE[(uint8_t)c])
  #define TOR_TOUPPER(c) (TOR_TOUPPER_TABLE[(uint8_t)c])
  
 +char *tor_strtok_r_impl(char *str, const char *sep, char **lasts);
 +#ifdef HAVE_STRTOK_R
 +#define tor_strtok_r(str, sep, lasts) strtok_r(str, sep, lasts)
 +#else
 +#define tor_strtok_r(str, sep, lasts) tor_strtok_r_impl(str, sep, lasts)
 +#endif
 +
  #ifdef MS_WINDOWS
  #define _SHORT_FILE_ (tor_fix_source_file(__FILE__))
  const char *tor_fix_source_file(const char *fname);
@@@ -480,11 -445,6 +480,11 @@@ typedef enum 
    SOCKS5_ADDRESS_TYPE_NOT_SUPPORTED = 0x08,
  } socks5_reply_status_t;
  
 +/* ===== Insecure rng */
 +void tor_init_weak_random(unsigned seed);
 +long tor_weak_random(void);
 +#define TOR_RAND_MAX (RAND_MAX)
 +
  /* ===== OS compatibility */
  const char *get_uname(void);
  
@@@ -542,8 -502,6 +542,8 @@@ typedef struct tor_mutex_t 
  #endif
  } tor_mutex_t;
  
 +int tor_mlockall(void);
 +
  #ifdef TOR_IS_MULTITHREADED
  tor_mutex_t *tor_mutex_new(void);
  void tor_mutex_init(tor_mutex_t *m);
@@@ -578,19 -536,6 +578,19 @@@ void tor_cond_signal_all(tor_cond_t *co
  #endif
  #endif
  
 +/** Macros for MIN/MAX.  Never use these when the arguments could have
 + * side-effects.
 + * {With GCC extensions we could probably define a safer MIN/MAX.  But
 + * depending on that safety would be dangerous, since not every platform
 + * has it.}
 + **/
 +#ifndef MAX
 +#define MAX(a,b) ( ((a)<(b)) ? (b) : (a) )
 +#endif
 +#ifndef MIN
 +#define MIN(a,b) ( ((a)>(b)) ? (b) : (a) )
 +#endif
 +
  /* Platform-specific helpers. */
  #ifdef MS_WINDOWS
  char *format_win32_error(DWORD err);





More information about the tor-commits mailing list