mercurial/parsers.c
changeset 24577 bf55df007535
parent 24576 fe173106e7fe
child 24606 e4a733c34bc6
equal deleted inserted replaced
24576:fe173106e7fe 24577:bf55df007535
    54 	'\x68', '\x69', '\x6a', '\x6b', '\x6c', '\x6d', '\x6e', '\x6f',
    54 	'\x68', '\x69', '\x6a', '\x6b', '\x6c', '\x6d', '\x6e', '\x6f',
    55 	'\x70', '\x71', '\x72', '\x73', '\x74', '\x75', '\x76', '\x77',
    55 	'\x70', '\x71', '\x72', '\x73', '\x74', '\x75', '\x76', '\x77',
    56 	'\x78', '\x79', '\x7a', '\x7b', '\x7c', '\x7d', '\x7e', '\x7f'
    56 	'\x78', '\x79', '\x7a', '\x7b', '\x7c', '\x7d', '\x7e', '\x7f'
    57 };
    57 };
    58 
    58 
       
    59 static char uppertable[128] = {
       
    60 	'\x00', '\x01', '\x02', '\x03', '\x04', '\x05', '\x06', '\x07',
       
    61 	'\x08', '\x09', '\x0a', '\x0b', '\x0c', '\x0d', '\x0e', '\x0f',
       
    62 	'\x10', '\x11', '\x12', '\x13', '\x14', '\x15', '\x16', '\x17',
       
    63 	'\x18', '\x19', '\x1a', '\x1b', '\x1c', '\x1d', '\x1e', '\x1f',
       
    64 	'\x20', '\x21', '\x22', '\x23', '\x24', '\x25', '\x26', '\x27',
       
    65 	'\x28', '\x29', '\x2a', '\x2b', '\x2c', '\x2d', '\x2e', '\x2f',
       
    66 	'\x30', '\x31', '\x32', '\x33', '\x34', '\x35', '\x36', '\x37',
       
    67 	'\x38', '\x39', '\x3a', '\x3b', '\x3c', '\x3d', '\x3e', '\x3f',
       
    68 	'\x40', '\x41', '\x42', '\x43', '\x44', '\x45', '\x46', '\x47',
       
    69 	'\x48', '\x49', '\x4a', '\x4b', '\x4c', '\x4d', '\x4e', '\x4f',
       
    70 	'\x50', '\x51', '\x52', '\x53', '\x54', '\x55', '\x56', '\x57',
       
    71 	'\x58', '\x59', '\x5a', '\x5b', '\x5c', '\x5d', '\x5e', '\x5f',
       
    72 	'\x60',
       
    73 		'\x41', '\x42', '\x43', '\x44', '\x45', '\x46', '\x47', /* a-g */
       
    74 	'\x48', '\x49', '\x4a', '\x4b', '\x4c', '\x4d', '\x4e', '\x4f', /* h-o */
       
    75 	'\x50', '\x51', '\x52', '\x53', '\x54', '\x55', '\x56', '\x57', /* p-w */
       
    76 	'\x58', '\x59', '\x5a', 					/* x-z */
       
    77 				'\x7b', '\x7c', '\x7d', '\x7e', '\x7f'
       
    78 };
       
    79 
    59 static inline int hexdigit(const char *p, Py_ssize_t off)
    80 static inline int hexdigit(const char *p, Py_ssize_t off)
    60 {
    81 {
    61 	int8_t val = hextable[(unsigned char)p[off]];
    82 	int8_t val = hextable[(unsigned char)p[off]];
    62 
    83 
    63 	if (val >= 0) {
    84 	if (val >= 0) {
   134 {
   155 {
   135 	PyObject *str_obj;
   156 	PyObject *str_obj;
   136 	if (!PyArg_ParseTuple(args, "O!:asciilower", &PyBytes_Type, &str_obj))
   157 	if (!PyArg_ParseTuple(args, "O!:asciilower", &PyBytes_Type, &str_obj))
   137 		return NULL;
   158 		return NULL;
   138 	return _asciitransform(str_obj, lowertable);
   159 	return _asciitransform(str_obj, lowertable);
       
   160 }
       
   161 
       
   162 static PyObject *asciiupper(PyObject *self, PyObject *args)
       
   163 {
       
   164 	PyObject *str_obj;
       
   165 	if (!PyArg_ParseTuple(args, "O!:asciiupper", &PyBytes_Type, &str_obj))
       
   166 		return NULL;
       
   167 	return _asciitransform(str_obj, uppertable);
   139 }
   168 }
   140 
   169 
   141 /*
   170 /*
   142  * This code assumes that a manifest is stitched together with newline
   171  * This code assumes that a manifest is stitched together with newline
   143  * ('\n') characters.
   172  * ('\n') characters.
  2425 	{"pack_dirstate", pack_dirstate, METH_VARARGS, "pack a dirstate\n"},
  2454 	{"pack_dirstate", pack_dirstate, METH_VARARGS, "pack a dirstate\n"},
  2426 	{"parse_manifest", parse_manifest, METH_VARARGS, "parse a manifest\n"},
  2455 	{"parse_manifest", parse_manifest, METH_VARARGS, "parse a manifest\n"},
  2427 	{"parse_dirstate", parse_dirstate, METH_VARARGS, "parse a dirstate\n"},
  2456 	{"parse_dirstate", parse_dirstate, METH_VARARGS, "parse a dirstate\n"},
  2428 	{"parse_index2", parse_index2, METH_VARARGS, "parse a revlog index\n"},
  2457 	{"parse_index2", parse_index2, METH_VARARGS, "parse a revlog index\n"},
  2429 	{"asciilower", asciilower, METH_VARARGS, "lowercase an ASCII string\n"},
  2458 	{"asciilower", asciilower, METH_VARARGS, "lowercase an ASCII string\n"},
       
  2459 	{"asciiupper", asciiupper, METH_VARARGS, "uppercase an ASCII string\n"},
  2430 	{"encodedir", encodedir, METH_VARARGS, "encodedir a path\n"},
  2460 	{"encodedir", encodedir, METH_VARARGS, "encodedir a path\n"},
  2431 	{"pathencode", pathencode, METH_VARARGS, "fncache-encode a path\n"},
  2461 	{"pathencode", pathencode, METH_VARARGS, "fncache-encode a path\n"},
  2432 	{"lowerencode", lowerencode, METH_VARARGS, "lower-encode a path\n"},
  2462 	{"lowerencode", lowerencode, METH_VARARGS, "lower-encode a path\n"},
  2433 	{"fm1readmarkers", fm1readmarkers, METH_VARARGS,
  2463 	{"fm1readmarkers", fm1readmarkers, METH_VARARGS,
  2434 			"parse v1 obsolete markers\n"},
  2464 			"parse v1 obsolete markers\n"},