##// END OF EJS Templates
cext: move back finalization of dirstateTupleType where it should be
cext: move back finalization of dirstateTupleType where it should be

File last commit:

r32378:7d0c6950 default
r32383:2e5a476b default
Show More
util.h
76 lines | 2.3 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
Gregory Szorc
parsers: move PyInt aliasing out of util.h...
r30112 #endif
Renato Cunha
util.h: Utility macros for handling different Python APIs....
r11358
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
Gregory Szorc
cext: extract revlog/index parsing code to own C file...
r32378 static int8_t hextable[256] = {
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, -1, -1, /* 0-9 */
-1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1, /* A-F */
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1, /* a-f */
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
};
static inline int hexdigit(const char *p, Py_ssize_t off)
{
int8_t val = hextable[(unsigned char)p[off]];
if (val >= 0) {
return val;
}
PyErr_SetString(PyExc_ValueError, "input contains non-hex character");
return 0;
}
Renato Cunha
util.h: Utility macros for handling different Python APIs....
r11358 #endif /* _HG_UTIL_H_ */