Mercurial > hg
comparison mercurial/cext/parsers.c @ 47516:b8ffe85e399b
dirstate-entry: `merged_removed` and `from_p2_removed` properties
Lets start to define and use more semantic property. These two might be a bit
too low level and could be shaved off later, however this seems an improvement
for now.
Differential Revision: https://phab.mercurial-scm.org/D10958
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Sat, 03 Jul 2021 20:34:09 +0200 |
parents | c94d3ff46fd5 |
children | 28632eb3ca3e |
comparison
equal
deleted
inserted
replaced
47515:c94d3ff46fd5 | 47516:b8ffe85e399b |
---|---|
28 #endif | 28 #endif |
29 | 29 |
30 static const char *const versionerrortext = "Python minor version mismatch"; | 30 static const char *const versionerrortext = "Python minor version mismatch"; |
31 | 31 |
32 static const int dirstate_v1_from_p2 = -2; | 32 static const int dirstate_v1_from_p2 = -2; |
33 static const int dirstate_v1_nonnormal = -1; | |
33 | 34 |
34 static PyObject *dict_new_presized(PyObject *self, PyObject *args) | 35 static PyObject *dict_new_presized(PyObject *self, PyObject *args) |
35 { | 36 { |
36 Py_ssize_t expected_size; | 37 Py_ssize_t expected_size; |
37 | 38 |
164 } else { | 165 } else { |
165 Py_RETURN_FALSE; | 166 Py_RETURN_FALSE; |
166 } | 167 } |
167 }; | 168 }; |
168 | 169 |
170 static PyObject *dirstatetuple_get_merged_removed(dirstateTupleObject *self) | |
171 { | |
172 if (self->state == 'r' && self->size == dirstate_v1_nonnormal) { | |
173 Py_RETURN_TRUE; | |
174 } else { | |
175 Py_RETURN_FALSE; | |
176 } | |
177 }; | |
178 | |
169 static PyObject *dirstatetuple_get_from_p2(dirstateTupleObject *self) | 179 static PyObject *dirstatetuple_get_from_p2(dirstateTupleObject *self) |
170 { | 180 { |
171 if (self->size == dirstate_v1_from_p2) { | 181 if (self->size == dirstate_v1_from_p2) { |
172 Py_RETURN_TRUE; | 182 Py_RETURN_TRUE; |
173 } else { | 183 } else { |
174 Py_RETURN_FALSE; | 184 Py_RETURN_FALSE; |
175 } | 185 } |
176 }; | 186 }; |
177 | 187 |
188 static PyObject *dirstatetuple_get_from_p2_removed(dirstateTupleObject *self) | |
189 { | |
190 if (self->state == 'r' && self->size == dirstate_v1_from_p2) { | |
191 Py_RETURN_TRUE; | |
192 } else { | |
193 Py_RETURN_FALSE; | |
194 } | |
195 }; | |
196 | |
178 static PyObject *dirstatetuple_get_removed(dirstateTupleObject *self) | 197 static PyObject *dirstatetuple_get_removed(dirstateTupleObject *self) |
179 { | 198 { |
180 if (self->state == 'r') { | 199 if (self->state == 'r') { |
181 Py_RETURN_TRUE; | 200 Py_RETURN_TRUE; |
182 } else { | 201 } else { |
184 } | 203 } |
185 }; | 204 }; |
186 | 205 |
187 static PyGetSetDef dirstatetuple_getset[] = { | 206 static PyGetSetDef dirstatetuple_getset[] = { |
188 {"state", (getter)dirstatetuple_get_state, NULL, "state", NULL}, | 207 {"state", (getter)dirstatetuple_get_state, NULL, "state", NULL}, |
208 {"merged_removed", (getter)dirstatetuple_get_merged_removed, NULL, | |
209 "merged_removed", NULL}, | |
189 {"merged", (getter)dirstatetuple_get_merged, NULL, "merged", NULL}, | 210 {"merged", (getter)dirstatetuple_get_merged, NULL, "merged", NULL}, |
211 {"from_p2_removed", (getter)dirstatetuple_get_from_p2_removed, NULL, | |
212 "from_p2_removed", NULL}, | |
190 {"from_p2", (getter)dirstatetuple_get_from_p2, NULL, "from_p2", NULL}, | 213 {"from_p2", (getter)dirstatetuple_get_from_p2, NULL, "from_p2", NULL}, |
191 {"removed", (getter)dirstatetuple_get_removed, NULL, "removed", NULL}, | 214 {"removed", (getter)dirstatetuple_get_removed, NULL, "removed", NULL}, |
192 {NULL} /* Sentinel */ | 215 {NULL} /* Sentinel */ |
193 }; | 216 }; |
194 | 217 |