mercurial/cext/parsers.c
changeset 48252 602c8e8411f5
parent 48250 1730b2fceaa1
child 48253 948570aa7630
equal deleted inserted replaced
48251:dfc5a505ddc5 48252:602c8e8411f5
   186 	} else {
   186 	} else {
   187 		return 'n';
   187 		return 'n';
   188 	}
   188 	}
   189 }
   189 }
   190 
   190 
       
   191 static inline bool dirstate_item_c_has_fallback_exec(dirstateItemObject *self)
       
   192 {
       
   193 	return (bool)self->flags & dirstate_flag_has_fallback_exec;
       
   194 }
       
   195 
       
   196 static inline bool
       
   197 dirstate_item_c_has_fallback_symlink(dirstateItemObject *self)
       
   198 {
       
   199 	return (bool)self->flags & dirstate_flag_has_fallback_symlink;
       
   200 }
       
   201 
   191 static inline int dirstate_item_c_v1_mode(dirstateItemObject *self)
   202 static inline int dirstate_item_c_v1_mode(dirstateItemObject *self)
   192 {
   203 {
   193 	if (self->flags & dirstate_flag_has_meaningful_data) {
   204 	if (self->flags & dirstate_flag_has_meaningful_data) {
   194 		return self->mode;
   205 		return self->mode;
   195 	} else {
   206 	} else {
   496 {
   507 {
   497 	char state = dirstate_item_c_v1_state(self);
   508 	char state = dirstate_item_c_v1_state(self);
   498 	return PyBytes_FromStringAndSize(&state, 1);
   509 	return PyBytes_FromStringAndSize(&state, 1);
   499 };
   510 };
   500 
   511 
       
   512 static PyObject *dirstate_item_get_has_fallback_exec(dirstateItemObject *self)
       
   513 {
       
   514 	if (dirstate_item_c_has_fallback_exec(self)) {
       
   515 		Py_RETURN_TRUE;
       
   516 	} else {
       
   517 		Py_RETURN_FALSE;
       
   518 	}
       
   519 };
       
   520 
       
   521 static PyObject *dirstate_item_get_fallback_exec(dirstateItemObject *self)
       
   522 {
       
   523 	if (dirstate_item_c_has_fallback_exec(self)) {
       
   524 		if (self->flags & dirstate_flag_fallback_exec) {
       
   525 			Py_RETURN_TRUE;
       
   526 		} else {
       
   527 			Py_RETURN_FALSE;
       
   528 		}
       
   529 	} else {
       
   530 		Py_RETURN_NONE;
       
   531 	}
       
   532 };
       
   533 
       
   534 static int dirstate_item_set_fallback_exec(dirstateItemObject *self,
       
   535                                            PyObject *value)
       
   536 {
       
   537 	if ((value == Py_None) || (value == NULL)) {
       
   538 		self->flags &= ~dirstate_flag_has_fallback_exec;
       
   539 	} else {
       
   540 		self->flags |= dirstate_flag_has_fallback_exec;
       
   541 		if (PyObject_IsTrue(value)) {
       
   542 			self->flags |= dirstate_flag_fallback_exec;
       
   543 		} else {
       
   544 			self->flags &= ~dirstate_flag_fallback_exec;
       
   545 		}
       
   546 	}
       
   547 	return 0;
       
   548 };
       
   549 
       
   550 static PyObject *
       
   551 dirstate_item_get_has_fallback_symlink(dirstateItemObject *self)
       
   552 {
       
   553 	if (dirstate_item_c_has_fallback_symlink(self)) {
       
   554 		Py_RETURN_TRUE;
       
   555 	} else {
       
   556 		Py_RETURN_FALSE;
       
   557 	}
       
   558 };
       
   559 
       
   560 static PyObject *dirstate_item_get_fallback_symlink(dirstateItemObject *self)
       
   561 {
       
   562 	if (dirstate_item_c_has_fallback_symlink(self)) {
       
   563 		if (self->flags & dirstate_flag_fallback_symlink) {
       
   564 			Py_RETURN_TRUE;
       
   565 		} else {
       
   566 			Py_RETURN_FALSE;
       
   567 		}
       
   568 	} else {
       
   569 		Py_RETURN_NONE;
       
   570 	}
       
   571 };
       
   572 
       
   573 static int dirstate_item_set_fallback_symlink(dirstateItemObject *self,
       
   574                                               PyObject *value)
       
   575 {
       
   576 	if ((value == Py_None) || (value == NULL)) {
       
   577 		self->flags &= ~dirstate_flag_has_fallback_symlink;
       
   578 	} else {
       
   579 		self->flags |= dirstate_flag_has_fallback_symlink;
       
   580 		if (PyObject_IsTrue(value)) {
       
   581 			self->flags |= dirstate_flag_fallback_symlink;
       
   582 		} else {
       
   583 			self->flags &= ~dirstate_flag_fallback_symlink;
       
   584 		}
       
   585 	}
       
   586 	return 0;
       
   587 };
       
   588 
   501 static PyObject *dirstate_item_get_tracked(dirstateItemObject *self)
   589 static PyObject *dirstate_item_get_tracked(dirstateItemObject *self)
   502 {
   590 {
   503 	if (dirstate_item_c_tracked(self)) {
   591 	if (dirstate_item_c_tracked(self)) {
   504 		Py_RETURN_TRUE;
   592 		Py_RETURN_TRUE;
   505 	} else {
   593 	} else {
   586 static PyGetSetDef dirstate_item_getset[] = {
   674 static PyGetSetDef dirstate_item_getset[] = {
   587     {"mode", (getter)dirstate_item_get_mode, NULL, "mode", NULL},
   675     {"mode", (getter)dirstate_item_get_mode, NULL, "mode", NULL},
   588     {"size", (getter)dirstate_item_get_size, NULL, "size", NULL},
   676     {"size", (getter)dirstate_item_get_size, NULL, "size", NULL},
   589     {"mtime", (getter)dirstate_item_get_mtime, NULL, "mtime", NULL},
   677     {"mtime", (getter)dirstate_item_get_mtime, NULL, "mtime", NULL},
   590     {"state", (getter)dirstate_item_get_state, NULL, "state", NULL},
   678     {"state", (getter)dirstate_item_get_state, NULL, "state", NULL},
       
   679     {"has_fallback_exec", (getter)dirstate_item_get_has_fallback_exec, NULL,
       
   680      "has_fallback_exec", NULL},
       
   681     {"fallback_exec", (getter)dirstate_item_get_fallback_exec,
       
   682      (setter)dirstate_item_set_fallback_exec, "fallback_exec", NULL},
       
   683     {"has_fallback_symlink", (getter)dirstate_item_get_has_fallback_symlink,
       
   684      NULL, "has_fallback_symlink", NULL},
       
   685     {"fallback_symlink", (getter)dirstate_item_get_fallback_symlink,
       
   686      (setter)dirstate_item_set_fallback_symlink, "fallback_symlink", NULL},
   591     {"tracked", (getter)dirstate_item_get_tracked, NULL, "tracked", NULL},
   687     {"tracked", (getter)dirstate_item_get_tracked, NULL, "tracked", NULL},
   592     {"p1_tracked", (getter)dirstate_item_get_p1_tracked, NULL, "p1_tracked",
   688     {"p1_tracked", (getter)dirstate_item_get_p1_tracked, NULL, "p1_tracked",
   593      NULL},
   689      NULL},
   594     {"added", (getter)dirstate_item_get_added, NULL, "added", NULL},
   690     {"added", (getter)dirstate_item_get_added, NULL, "added", NULL},
   595     {"p2_info", (getter)dirstate_item_get_p2_info, NULL, "p2_info", NULL},
   691     {"p2_info", (getter)dirstate_item_get_p2_info, NULL, "p2_info", NULL},