mercurial/util.h
author Matt Mackall <mpm@selenic.com>
Sun, 08 Apr 2012 12:38:26 -0500
changeset 16381 64c8ae09162e
parent 13302 a4e0908ce35b
child 16382 f542d291c4f2
permissions -rw-r--r--
log: bypass file scan part of fastpath when no files This avoids loading dirstate parents, looking up p1 rev, and loading p1 manifest to match against an empty matcher.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
11358
4494fb02d549 util.h: Utility macros for handling different Python APIs.
Renato Cunha <renatoc@gmail.com>
parents:
diff changeset
     1
/*
4494fb02d549 util.h: Utility macros for handling different Python APIs.
Renato Cunha <renatoc@gmail.com>
parents:
diff changeset
     2
 util.h - utility functions for interfacing with the various python APIs.
4494fb02d549 util.h: Utility macros for handling different Python APIs.
Renato Cunha <renatoc@gmail.com>
parents:
diff changeset
     3
4494fb02d549 util.h: Utility macros for handling different Python APIs.
Renato Cunha <renatoc@gmail.com>
parents:
diff changeset
     4
 This software may be used and distributed according to the terms of
4494fb02d549 util.h: Utility macros for handling different Python APIs.
Renato Cunha <renatoc@gmail.com>
parents:
diff changeset
     5
 the GNU General Public License, incorporated herein by reference.
4494fb02d549 util.h: Utility macros for handling different Python APIs.
Renato Cunha <renatoc@gmail.com>
parents:
diff changeset
     6
*/
4494fb02d549 util.h: Utility macros for handling different Python APIs.
Renato Cunha <renatoc@gmail.com>
parents:
diff changeset
     7
4494fb02d549 util.h: Utility macros for handling different Python APIs.
Renato Cunha <renatoc@gmail.com>
parents:
diff changeset
     8
#ifndef _HG_UTIL_H_
4494fb02d549 util.h: Utility macros for handling different Python APIs.
Renato Cunha <renatoc@gmail.com>
parents:
diff changeset
     9
#define _HG_UTIL_H_
4494fb02d549 util.h: Utility macros for handling different Python APIs.
Renato Cunha <renatoc@gmail.com>
parents:
diff changeset
    10
4494fb02d549 util.h: Utility macros for handling different Python APIs.
Renato Cunha <renatoc@gmail.com>
parents:
diff changeset
    11
#if PY_MAJOR_VERSION >= 3
4494fb02d549 util.h: Utility macros for handling different Python APIs.
Renato Cunha <renatoc@gmail.com>
parents:
diff changeset
    12
4494fb02d549 util.h: Utility macros for handling different Python APIs.
Renato Cunha <renatoc@gmail.com>
parents:
diff changeset
    13
#define IS_PY3K
4494fb02d549 util.h: Utility macros for handling different Python APIs.
Renato Cunha <renatoc@gmail.com>
parents:
diff changeset
    14
#define PyInt_FromLong PyLong_FromLong
11534
9777a3b19efe util.h: Add a PyInt_AsLong definition for usage in the inotify module.
Renato Cunha <renatoc@gmail.com>
parents: 11358
diff changeset
    15
#define PyInt_AsLong PyLong_AsLong
11358
4494fb02d549 util.h: Utility macros for handling different Python APIs.
Renato Cunha <renatoc@gmail.com>
parents:
diff changeset
    16
11535
09cb56b760b4 util.h: Defined macros for working "with" PyStrings in py3k.
Renato Cunha <renatoc@gmail.com>
parents: 11534
diff changeset
    17
/*
09cb56b760b4 util.h: Defined macros for working "with" PyStrings in py3k.
Renato Cunha <renatoc@gmail.com>
parents: 11534
diff changeset
    18
 Mapping of some of the python < 2.x PyString* functions to py3k's PyUnicode.
09cb56b760b4 util.h: Defined macros for working "with" PyStrings in py3k.
Renato Cunha <renatoc@gmail.com>
parents: 11534
diff changeset
    19
09cb56b760b4 util.h: Defined macros for working "with" PyStrings in py3k.
Renato Cunha <renatoc@gmail.com>
parents: 11534
diff changeset
    20
 The commented names below represent those that are present in the PyBytes
09cb56b760b4 util.h: Defined macros for working "with" PyStrings in py3k.
Renato Cunha <renatoc@gmail.com>
parents: 11534
diff changeset
    21
 definitions for python < 2.6 (below in this file) that don't have a direct
09cb56b760b4 util.h: Defined macros for working "with" PyStrings in py3k.
Renato Cunha <renatoc@gmail.com>
parents: 11534
diff changeset
    22
 implementation.
09cb56b760b4 util.h: Defined macros for working "with" PyStrings in py3k.
Renato Cunha <renatoc@gmail.com>
parents: 11534
diff changeset
    23
*/
09cb56b760b4 util.h: Defined macros for working "with" PyStrings in py3k.
Renato Cunha <renatoc@gmail.com>
parents: 11534
diff changeset
    24
09cb56b760b4 util.h: Defined macros for working "with" PyStrings in py3k.
Renato Cunha <renatoc@gmail.com>
parents: 11534
diff changeset
    25
#define PyStringObject PyUnicodeObject
09cb56b760b4 util.h: Defined macros for working "with" PyStrings in py3k.
Renato Cunha <renatoc@gmail.com>
parents: 11534
diff changeset
    26
#define PyString_Type PyUnicode_Type
09cb56b760b4 util.h: Defined macros for working "with" PyStrings in py3k.
Renato Cunha <renatoc@gmail.com>
parents: 11534
diff changeset
    27
09cb56b760b4 util.h: Defined macros for working "with" PyStrings in py3k.
Renato Cunha <renatoc@gmail.com>
parents: 11534
diff changeset
    28
#define PyString_Check PyUnicode_Check
09cb56b760b4 util.h: Defined macros for working "with" PyStrings in py3k.
Renato Cunha <renatoc@gmail.com>
parents: 11534
diff changeset
    29
#define PyString_CheckExact PyUnicode_CheckExact
09cb56b760b4 util.h: Defined macros for working "with" PyStrings in py3k.
Renato Cunha <renatoc@gmail.com>
parents: 11534
diff changeset
    30
#define PyString_CHECK_INTERNED PyUnicode_CHECK_INTERNED
09cb56b760b4 util.h: Defined macros for working "with" PyStrings in py3k.
Renato Cunha <renatoc@gmail.com>
parents: 11534
diff changeset
    31
#define PyString_AS_STRING PyUnicode_AsLatin1String
09cb56b760b4 util.h: Defined macros for working "with" PyStrings in py3k.
Renato Cunha <renatoc@gmail.com>
parents: 11534
diff changeset
    32
#define PyString_GET_SIZE PyUnicode_GET_SIZE
09cb56b760b4 util.h: Defined macros for working "with" PyStrings in py3k.
Renato Cunha <renatoc@gmail.com>
parents: 11534
diff changeset
    33
09cb56b760b4 util.h: Defined macros for working "with" PyStrings in py3k.
Renato Cunha <renatoc@gmail.com>
parents: 11534
diff changeset
    34
#define PyString_FromStringAndSize PyUnicode_FromStringAndSize
09cb56b760b4 util.h: Defined macros for working "with" PyStrings in py3k.
Renato Cunha <renatoc@gmail.com>
parents: 11534
diff changeset
    35
#define PyString_FromString PyUnicode_FromString
09cb56b760b4 util.h: Defined macros for working "with" PyStrings in py3k.
Renato Cunha <renatoc@gmail.com>
parents: 11534
diff changeset
    36
#define PyString_FromFormatV PyUnicode_FromFormatV
09cb56b760b4 util.h: Defined macros for working "with" PyStrings in py3k.
Renato Cunha <renatoc@gmail.com>
parents: 11534
diff changeset
    37
#define PyString_FromFormat PyUnicode_FromFormat
09cb56b760b4 util.h: Defined macros for working "with" PyStrings in py3k.
Renato Cunha <renatoc@gmail.com>
parents: 11534
diff changeset
    38
/* #define PyString_Size PyUnicode_GET_SIZE */
09cb56b760b4 util.h: Defined macros for working "with" PyStrings in py3k.
Renato Cunha <renatoc@gmail.com>
parents: 11534
diff changeset
    39
/* #define PyString_AsString */
09cb56b760b4 util.h: Defined macros for working "with" PyStrings in py3k.
Renato Cunha <renatoc@gmail.com>
parents: 11534
diff changeset
    40
/* #define PyString_Repr */
09cb56b760b4 util.h: Defined macros for working "with" PyStrings in py3k.
Renato Cunha <renatoc@gmail.com>
parents: 11534
diff changeset
    41
#define PyString_Concat PyUnicode_Concat
09cb56b760b4 util.h: Defined macros for working "with" PyStrings in py3k.
Renato Cunha <renatoc@gmail.com>
parents: 11534
diff changeset
    42
#define PyString_ConcatAndDel PyUnicode_AppendAndDel
09cb56b760b4 util.h: Defined macros for working "with" PyStrings in py3k.
Renato Cunha <renatoc@gmail.com>
parents: 11534
diff changeset
    43
#define _PyString_Resize PyUnicode_Resize
09cb56b760b4 util.h: Defined macros for working "with" PyStrings in py3k.
Renato Cunha <renatoc@gmail.com>
parents: 11534
diff changeset
    44
/* #define _PyString_Eq */
09cb56b760b4 util.h: Defined macros for working "with" PyStrings in py3k.
Renato Cunha <renatoc@gmail.com>
parents: 11534
diff changeset
    45
#define PyString_Format PyUnicode_Format
09cb56b760b4 util.h: Defined macros for working "with" PyStrings in py3k.
Renato Cunha <renatoc@gmail.com>
parents: 11534
diff changeset
    46
/* #define _PyString_FormatLong */
09cb56b760b4 util.h: Defined macros for working "with" PyStrings in py3k.
Renato Cunha <renatoc@gmail.com>
parents: 11534
diff changeset
    47
/* #define PyString_DecodeEscape */
09cb56b760b4 util.h: Defined macros for working "with" PyStrings in py3k.
Renato Cunha <renatoc@gmail.com>
parents: 11534
diff changeset
    48
#define _PyString_Join PyUnicode_Join
09cb56b760b4 util.h: Defined macros for working "with" PyStrings in py3k.
Renato Cunha <renatoc@gmail.com>
parents: 11534
diff changeset
    49
#define PyString_Decode PyUnicode_Decode
09cb56b760b4 util.h: Defined macros for working "with" PyStrings in py3k.
Renato Cunha <renatoc@gmail.com>
parents: 11534
diff changeset
    50
#define PyString_Encode PyUnicode_Encode
09cb56b760b4 util.h: Defined macros for working "with" PyStrings in py3k.
Renato Cunha <renatoc@gmail.com>
parents: 11534
diff changeset
    51
#define PyString_AsEncodedObject PyUnicode_AsEncodedObject
09cb56b760b4 util.h: Defined macros for working "with" PyStrings in py3k.
Renato Cunha <renatoc@gmail.com>
parents: 11534
diff changeset
    52
#define PyString_AsEncodedString PyUnicode_AsEncodedString
09cb56b760b4 util.h: Defined macros for working "with" PyStrings in py3k.
Renato Cunha <renatoc@gmail.com>
parents: 11534
diff changeset
    53
#define PyString_AsDecodedObject PyUnicode_AsDecodedObject
09cb56b760b4 util.h: Defined macros for working "with" PyStrings in py3k.
Renato Cunha <renatoc@gmail.com>
parents: 11534
diff changeset
    54
#define PyString_AsDecodedString PyUnicode_AsDecodedUnicode
09cb56b760b4 util.h: Defined macros for working "with" PyStrings in py3k.
Renato Cunha <renatoc@gmail.com>
parents: 11534
diff changeset
    55
/* #define PyString_AsStringAndSize */
09cb56b760b4 util.h: Defined macros for working "with" PyStrings in py3k.
Renato Cunha <renatoc@gmail.com>
parents: 11534
diff changeset
    56
#define _PyString_InsertThousandsGrouping _PyUnicode_InsertThousandsGrouping
09cb56b760b4 util.h: Defined macros for working "with" PyStrings in py3k.
Renato Cunha <renatoc@gmail.com>
parents: 11534
diff changeset
    57
11358
4494fb02d549 util.h: Utility macros for handling different Python APIs.
Renato Cunha <renatoc@gmail.com>
parents:
diff changeset
    58
#endif /* PY_MAJOR_VERSION */
4494fb02d549 util.h: Utility macros for handling different Python APIs.
Renato Cunha <renatoc@gmail.com>
parents:
diff changeset
    59
4494fb02d549 util.h: Utility macros for handling different Python APIs.
Renato Cunha <renatoc@gmail.com>
parents:
diff changeset
    60
/* Backports from 2.6 */
4494fb02d549 util.h: Utility macros for handling different Python APIs.
Renato Cunha <renatoc@gmail.com>
parents:
diff changeset
    61
#if PY_VERSION_HEX < 0x02060000
4494fb02d549 util.h: Utility macros for handling different Python APIs.
Renato Cunha <renatoc@gmail.com>
parents:
diff changeset
    62
4494fb02d549 util.h: Utility macros for handling different Python APIs.
Renato Cunha <renatoc@gmail.com>
parents:
diff changeset
    63
#define Py_TYPE(ob) (ob)->ob_type
4494fb02d549 util.h: Utility macros for handling different Python APIs.
Renato Cunha <renatoc@gmail.com>
parents:
diff changeset
    64
#define Py_SIZE(ob) (ob)->ob_size
4494fb02d549 util.h: Utility macros for handling different Python APIs.
Renato Cunha <renatoc@gmail.com>
parents:
diff changeset
    65
#define PyVarObject_HEAD_INIT(type, size) PyObject_HEAD_INIT(type) size,
4494fb02d549 util.h: Utility macros for handling different Python APIs.
Renato Cunha <renatoc@gmail.com>
parents:
diff changeset
    66
4494fb02d549 util.h: Utility macros for handling different Python APIs.
Renato Cunha <renatoc@gmail.com>
parents:
diff changeset
    67
/* Shamelessly stolen from bytesobject.h */
4494fb02d549 util.h: Utility macros for handling different Python APIs.
Renato Cunha <renatoc@gmail.com>
parents:
diff changeset
    68
#define PyBytesObject PyStringObject
4494fb02d549 util.h: Utility macros for handling different Python APIs.
Renato Cunha <renatoc@gmail.com>
parents:
diff changeset
    69
#define PyBytes_Type PyString_Type
4494fb02d549 util.h: Utility macros for handling different Python APIs.
Renato Cunha <renatoc@gmail.com>
parents:
diff changeset
    70
4494fb02d549 util.h: Utility macros for handling different Python APIs.
Renato Cunha <renatoc@gmail.com>
parents:
diff changeset
    71
#define PyBytes_Check PyString_Check
4494fb02d549 util.h: Utility macros for handling different Python APIs.
Renato Cunha <renatoc@gmail.com>
parents:
diff changeset
    72
#define PyBytes_CheckExact PyString_CheckExact
4494fb02d549 util.h: Utility macros for handling different Python APIs.
Renato Cunha <renatoc@gmail.com>
parents:
diff changeset
    73
#define PyBytes_CHECK_INTERNED PyString_CHECK_INTERNED
4494fb02d549 util.h: Utility macros for handling different Python APIs.
Renato Cunha <renatoc@gmail.com>
parents:
diff changeset
    74
#define PyBytes_AS_STRING PyString_AS_STRING
4494fb02d549 util.h: Utility macros for handling different Python APIs.
Renato Cunha <renatoc@gmail.com>
parents:
diff changeset
    75
#define PyBytes_GET_SIZE PyString_GET_SIZE
4494fb02d549 util.h: Utility macros for handling different Python APIs.
Renato Cunha <renatoc@gmail.com>
parents:
diff changeset
    76
#define Py_TPFLAGS_BYTES_SUBCLASS Py_TPFLAGS_STRING_SUBCLASS
4494fb02d549 util.h: Utility macros for handling different Python APIs.
Renato Cunha <renatoc@gmail.com>
parents:
diff changeset
    77
4494fb02d549 util.h: Utility macros for handling different Python APIs.
Renato Cunha <renatoc@gmail.com>
parents:
diff changeset
    78
#define PyBytes_FromStringAndSize PyString_FromStringAndSize
4494fb02d549 util.h: Utility macros for handling different Python APIs.
Renato Cunha <renatoc@gmail.com>
parents:
diff changeset
    79
#define PyBytes_FromString PyString_FromString
4494fb02d549 util.h: Utility macros for handling different Python APIs.
Renato Cunha <renatoc@gmail.com>
parents:
diff changeset
    80
#define PyBytes_FromFormatV PyString_FromFormatV
4494fb02d549 util.h: Utility macros for handling different Python APIs.
Renato Cunha <renatoc@gmail.com>
parents:
diff changeset
    81
#define PyBytes_FromFormat PyString_FromFormat
4494fb02d549 util.h: Utility macros for handling different Python APIs.
Renato Cunha <renatoc@gmail.com>
parents:
diff changeset
    82
#define PyBytes_Size PyString_Size
4494fb02d549 util.h: Utility macros for handling different Python APIs.
Renato Cunha <renatoc@gmail.com>
parents:
diff changeset
    83
#define PyBytes_AsString PyString_AsString
4494fb02d549 util.h: Utility macros for handling different Python APIs.
Renato Cunha <renatoc@gmail.com>
parents:
diff changeset
    84
#define PyBytes_Repr PyString_Repr
4494fb02d549 util.h: Utility macros for handling different Python APIs.
Renato Cunha <renatoc@gmail.com>
parents:
diff changeset
    85
#define PyBytes_Concat PyString_Concat
4494fb02d549 util.h: Utility macros for handling different Python APIs.
Renato Cunha <renatoc@gmail.com>
parents:
diff changeset
    86
#define PyBytes_ConcatAndDel PyString_ConcatAndDel
4494fb02d549 util.h: Utility macros for handling different Python APIs.
Renato Cunha <renatoc@gmail.com>
parents:
diff changeset
    87
#define _PyBytes_Resize _PyString_Resize
4494fb02d549 util.h: Utility macros for handling different Python APIs.
Renato Cunha <renatoc@gmail.com>
parents:
diff changeset
    88
#define _PyBytes_Eq _PyString_Eq
4494fb02d549 util.h: Utility macros for handling different Python APIs.
Renato Cunha <renatoc@gmail.com>
parents:
diff changeset
    89
#define PyBytes_Format PyString_Format
4494fb02d549 util.h: Utility macros for handling different Python APIs.
Renato Cunha <renatoc@gmail.com>
parents:
diff changeset
    90
#define _PyBytes_FormatLong _PyString_FormatLong
4494fb02d549 util.h: Utility macros for handling different Python APIs.
Renato Cunha <renatoc@gmail.com>
parents:
diff changeset
    91
#define PyBytes_DecodeEscape PyString_DecodeEscape
4494fb02d549 util.h: Utility macros for handling different Python APIs.
Renato Cunha <renatoc@gmail.com>
parents:
diff changeset
    92
#define _PyBytes_Join _PyString_Join
4494fb02d549 util.h: Utility macros for handling different Python APIs.
Renato Cunha <renatoc@gmail.com>
parents:
diff changeset
    93
#define PyBytes_Decode PyString_Decode
4494fb02d549 util.h: Utility macros for handling different Python APIs.
Renato Cunha <renatoc@gmail.com>
parents:
diff changeset
    94
#define PyBytes_Encode PyString_Encode
4494fb02d549 util.h: Utility macros for handling different Python APIs.
Renato Cunha <renatoc@gmail.com>
parents:
diff changeset
    95
#define PyBytes_AsEncodedObject PyString_AsEncodedObject
4494fb02d549 util.h: Utility macros for handling different Python APIs.
Renato Cunha <renatoc@gmail.com>
parents:
diff changeset
    96
#define PyBytes_AsEncodedString PyString_AsEncodedString
4494fb02d549 util.h: Utility macros for handling different Python APIs.
Renato Cunha <renatoc@gmail.com>
parents:
diff changeset
    97
#define PyBytes_AsDecodedObject PyString_AsDecodedObject
4494fb02d549 util.h: Utility macros for handling different Python APIs.
Renato Cunha <renatoc@gmail.com>
parents:
diff changeset
    98
#define PyBytes_AsDecodedString PyString_AsDecodedString
4494fb02d549 util.h: Utility macros for handling different Python APIs.
Renato Cunha <renatoc@gmail.com>
parents:
diff changeset
    99
#define PyBytes_AsStringAndSize PyString_AsStringAndSize
4494fb02d549 util.h: Utility macros for handling different Python APIs.
Renato Cunha <renatoc@gmail.com>
parents:
diff changeset
   100
#define _PyBytes_InsertThousandsGrouping _PyString_InsertThousandsGrouping
4494fb02d549 util.h: Utility macros for handling different Python APIs.
Renato Cunha <renatoc@gmail.com>
parents:
diff changeset
   101
4494fb02d549 util.h: Utility macros for handling different Python APIs.
Renato Cunha <renatoc@gmail.com>
parents:
diff changeset
   102
#endif /* PY_VERSION_HEX */
4494fb02d549 util.h: Utility macros for handling different Python APIs.
Renato Cunha <renatoc@gmail.com>
parents:
diff changeset
   103
4494fb02d549 util.h: Utility macros for handling different Python APIs.
Renato Cunha <renatoc@gmail.com>
parents:
diff changeset
   104
#endif /* _HG_UTIL_H_ */
4494fb02d549 util.h: Utility macros for handling different Python APIs.
Renato Cunha <renatoc@gmail.com>
parents:
diff changeset
   105