##// END OF EJS Templates
py3: convert encoding name and mode to str...
py3: convert encoding name and mode to str Otherwise tolocal() and fromlocal() wouldn't work on Python 3. Still tolocal() can't make a valid localstr object because localstr inherits str, but it can return some object without raising exceptions. Since Py3 bytes() behaves much like bytearray() than str() of Py2, we can't simply do s/str/bytes/g. I have no good idea to handle str/bytes divergence.

File last commit:

r29549:7b22599d default
r30033:02dbfaa6 default
Show More
compat.h
43 lines | 781 B | text/x-c | CLexer
Maciej Fijalkowski
internals: move the bitmanipulation routines into its own file...
r29444 #ifndef _HG_COMPAT_H_
#define _HG_COMPAT_H_
#ifdef _WIN32
#ifdef _MSC_VER
/* msvc 6.0 has problems */
#define inline __inline
Maciej Fijalkowski
compat: provide a declaration of ssize_t, for MS windows
r29521 #if defined(_WIN64)
typedef __int64 ssize_t;
#else
Yuya Nishihara
compat: define ssize_t as int on 32bit Windows, silences C4142 warning...
r29549 typedef int ssize_t;
Maciej Fijalkowski
compat: provide a declaration of ssize_t, for MS windows
r29521 #endif
Maciej Fijalkowski
internals: move the bitmanipulation routines into its own file...
r29444 typedef signed char int8_t;
typedef short int16_t;
typedef long int32_t;
typedef __int64 int64_t;
typedef unsigned char uint8_t;
typedef unsigned short uint16_t;
typedef unsigned long uint32_t;
typedef unsigned __int64 uint64_t;
#else
#include <stdint.h>
#endif
#else
/* not windows */
#include <sys/types.h>
#if defined __BEOS__ && !defined __HAIKU__
#include <ByteOrder.h>
#else
#include <arpa/inet.h>
#endif
#include <inttypes.h>
#endif
#if defined __hpux || defined __SUNPRO_C || defined _AIX
#define inline
#endif
#ifdef __linux
#define inline __inline
#endif
#endif