~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/python-compat.h

  • Committer: John Arbash Meinel
  • Date: 2010-08-23 21:36:06 UTC
  • mto: This revision was merged to the branch mainline in revision 5390.
  • Revision ID: john@arbash-meinel.com-20100823213606-1pk5w1nyaz9kz9k0
Lots of compatibility changes for python2.4 and mingw32 compilers.

gcc has strtoll available, and does the wrong thing if you use _strtoi64 (it implicitly
defines it to return an 'int' which isn't a 64-bit integer.)

Further, python2.4 doesn't support the %lu syntax, only having %ld and %d. So we go
back to casting everything into real python objects and then stringifying them, but
only for python 2.4.

Show diffs side-by-side

added added

removed removed

Lines of Context:
65
65
    #if !defined(S_ISLNK)
66
66
        #define S_ISLNK(mode) (0)
67
67
    #endif
68
 
    #define strtoll _strtoi64
69
 
    #define strtoull _strtoui64
70
68
#else /* Not win32 */
71
69
    /* For htonl */
72
70
    #include "arpa/inet.h"
76
74
 
77
75
#ifdef _MSC_VER
78
76
#define  snprintf  _snprintf
 
77
/* gcc (mingw32) has strtoll, while the MSVC compiler uses _strtoi64 */
 
78
#define strtoll _strtoi64
 
79
#define strtoull _strtoui64
79
80
#endif
80
81
 
81
82
/* Introduced in Python 2.6 */