##// END OF EJS Templates
py3: check python version to enable builtins hack...
py3: check python version to enable builtins hack Future patches will add (del|get|has|set)attr wrappers.

File last commit:

r29444:284d742e default
r29798:31d588fc default
Show More
util.h
90 lines | 2.7 KiB | text/x-c | CLexer
Renato Cunha
util.h: Utility macros for handling different Python APIs....
r11358 /*
util.h - utility functions for interfacing with the various python APIs.
This software may be used and distributed according to the terms of
the GNU General Public License, incorporated herein by reference.
*/
#ifndef _HG_UTIL_H_
#define _HG_UTIL_H_
Maciej Fijalkowski
internals: move the bitmanipulation routines into its own file...
r29444 #include "compat.h"
Renato Cunha
util.h: Utility macros for handling different Python APIs....
r11358 #if PY_MAJOR_VERSION >= 3
#define IS_PY3K
#define PyInt_FromLong PyLong_FromLong
Renato Cunha
util.h: Add a PyInt_AsLong definition for usage in the inotify module.
r11534 #define PyInt_AsLong PyLong_AsLong
Renato Cunha
util.h: Utility macros for handling different Python APIs....
r11358
Renato Cunha
util.h: Defined macros for working "with" PyStrings in py3k....
r11535 /*
Mapping of some of the python < 2.x PyString* functions to py3k's PyUnicode.
The commented names below represent those that are present in the PyBytes
definitions for python < 2.6 (below in this file) that don't have a direct
implementation.
*/
#define PyStringObject PyUnicodeObject
#define PyString_Type PyUnicode_Type
#define PyString_Check PyUnicode_Check
#define PyString_CheckExact PyUnicode_CheckExact
#define PyString_CHECK_INTERNED PyUnicode_CHECK_INTERNED
#define PyString_AS_STRING PyUnicode_AsLatin1String
#define PyString_GET_SIZE PyUnicode_GET_SIZE
#define PyString_FromStringAndSize PyUnicode_FromStringAndSize
#define PyString_FromString PyUnicode_FromString
#define PyString_FromFormatV PyUnicode_FromFormatV
#define PyString_FromFormat PyUnicode_FromFormat
/* #define PyString_Size PyUnicode_GET_SIZE */
/* #define PyString_AsString */
/* #define PyString_Repr */
#define PyString_Concat PyUnicode_Concat
#define PyString_ConcatAndDel PyUnicode_AppendAndDel
#define _PyString_Resize PyUnicode_Resize
/* #define _PyString_Eq */
#define PyString_Format PyUnicode_Format
/* #define _PyString_FormatLong */
/* #define PyString_DecodeEscape */
#define _PyString_Join PyUnicode_Join
#define PyString_Decode PyUnicode_Decode
#define PyString_Encode PyUnicode_Encode
#define PyString_AsEncodedObject PyUnicode_AsEncodedObject
#define PyString_AsEncodedString PyUnicode_AsEncodedString
#define PyString_AsDecodedObject PyUnicode_AsDecodedObject
#define PyString_AsDecodedString PyUnicode_AsDecodedUnicode
/* #define PyString_AsStringAndSize */
#define _PyString_InsertThousandsGrouping _PyUnicode_InsertThousandsGrouping
Renato Cunha
util.h: Utility macros for handling different Python APIs....
r11358 #endif /* PY_MAJOR_VERSION */
Siddharth Agarwal
parsers: inline fields of dirstate values in C version...
r21809 typedef struct {
PyObject_HEAD
char state;
int mode;
int size;
int mtime;
} dirstateTupleObject;
André Sintzoff
util.h: declare dirstateTupleType variable instead of defining it...
r21838 extern PyTypeObject dirstateTupleType;
Siddharth Agarwal
parsers: inline fields of dirstate values in C version...
r21809 #define dirstate_tuple_check(op) (Py_TYPE(op) == &dirstateTupleType)
Siddharth Agarwal
util.h: define an enum for normcase specs...
r24608 /* This should be kept in sync with normcasespecs in encoding.py. */
enum normcase_spec {
NORMCASE_LOWER = -1,
NORMCASE_UPPER = 1,
NORMCASE_OTHER = 0
};
Laurent Charignon
phase: compute phases in C...
r24443 #define MIN(a, b) (((a)<(b))?(a):(b))
Matt Mackall
manifest: move C bool polyfill into util.h
r24442 /* VC9 doesn't include bool and lacks stdbool.h based on my searching */
Kevin Bullock
util: fix the check for non-C99 compilers (issue4605)
r24829 #if defined(_MSC_VER) || __STDC_VERSION__ < 199901L
Matt Mackall
manifest: move C bool polyfill into util.h
r24442 #define true 1
#define false 0
typedef unsigned char bool;
#else
#include <stdbool.h>
#endif
Renato Cunha
util.h: Utility macros for handling different Python APIs....
r11358 #endif /* _HG_UTIL_H_ */