##// END OF EJS Templates
util: implement a deterministic __repr__ on sortdict...
util: implement a deterministic __repr__ on sortdict `hg debugbundle` is calling repr() on bundle2 part params, which are now util.sortdict instances. Unfortunately, repr() doesn't appear to be deterministic for util.sortdict. So, we implement one. We include the type name because that's the common convention for __repr__ implementations. Having the type name in `hg debugbundle` is a bit ugly. But it's a debug command and I don't care enough to fix it.

File last commit:

r29444:284d742e default
r29592:37cccad5 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_ */