mercurial/dirs.c
changeset 21809 e250b8300e6e
parent 18902 8c0a7eeda06d
child 23960 bca4b6f126f2
equal deleted inserted replaced
21808:7537e57f5dbd 21809:e250b8300e6e
   136 		if (!PyString_Check(key)) {
   136 		if (!PyString_Check(key)) {
   137 			PyErr_SetString(PyExc_TypeError, "expected string key");
   137 			PyErr_SetString(PyExc_TypeError, "expected string key");
   138 			return -1;
   138 			return -1;
   139 		}
   139 		}
   140 		if (skipchar) {
   140 		if (skipchar) {
   141 			PyObject *st;
   141 			if (!dirstate_tuple_check(value)) {
   142 
       
   143 			if (!PyTuple_Check(value) ||
       
   144 			    PyTuple_GET_SIZE(value) == 0) {
       
   145 				PyErr_SetString(PyExc_TypeError,
   142 				PyErr_SetString(PyExc_TypeError,
   146 						"expected non-empty tuple");
   143 						"expected a dirstate tuple");
   147 				return -1;
   144 				return -1;
   148 			}
   145 			}
   149 
   146 			if (((dirstateTupleObject *)value)->state == skipchar)
   150 			st = PyTuple_GET_ITEM(value, 0);
       
   151 
       
   152 			if (!PyString_Check(st) || PyString_GET_SIZE(st) == 0) {
       
   153 				PyErr_SetString(PyExc_TypeError,
       
   154 						"expected non-empty string "
       
   155 						"at tuple index 0");
       
   156 				return -1;
       
   157 			}
       
   158 
       
   159 			if (PyString_AS_STRING(st)[0] == skipchar)
       
   160 				continue;
   147 				continue;
   161 		}
   148 		}
   162 
   149 
   163 		if (_addpath(dirs, key) == -1)
   150 		if (_addpath(dirs, key) == -1)
   164 			return -1;
   151 			return -1;