57 int has_meaningful_mtime; |
57 int has_meaningful_mtime; |
58 int mode; |
58 int mode; |
59 int size; |
59 int size; |
60 int mtime; |
60 int mtime; |
61 PyObject *parentfiledata; |
61 PyObject *parentfiledata; |
|
62 PyObject *fallback_exec; |
|
63 PyObject *fallback_symlink; |
62 static char *keywords_name[] = { |
64 static char *keywords_name[] = { |
63 "wc_tracked", |
65 "wc_tracked", "p1_tracked", "p2_info", |
64 "p1_tracked", |
66 "has_meaningful_data", "has_meaningful_mtime", "parentfiledata", |
65 "p2_info", |
67 "fallback_exec", "fallback_symlink", NULL, |
66 "has_meaningful_data", |
|
67 "has_meaningful_mtime", |
|
68 "parentfiledata", |
|
69 NULL, |
|
70 }; |
68 }; |
71 wc_tracked = 0; |
69 wc_tracked = 0; |
72 p1_tracked = 0; |
70 p1_tracked = 0; |
73 p2_info = 0; |
71 p2_info = 0; |
74 has_meaningful_mtime = 1; |
72 has_meaningful_mtime = 1; |
75 has_meaningful_data = 1; |
73 has_meaningful_data = 1; |
76 parentfiledata = Py_None; |
74 parentfiledata = Py_None; |
77 if (!PyArg_ParseTupleAndKeywords( |
75 fallback_exec = Py_None; |
78 args, kwds, "|iiiiiO", keywords_name, &wc_tracked, &p1_tracked, |
76 fallback_symlink = Py_None; |
79 &p2_info, &has_meaningful_data, &has_meaningful_mtime, |
77 if (!PyArg_ParseTupleAndKeywords(args, kwds, "|iiiiiOOO", keywords_name, |
80 &parentfiledata)) { |
78 &wc_tracked, &p1_tracked, &p2_info, |
|
79 &has_meaningful_data, |
|
80 &has_meaningful_mtime, &parentfiledata, |
|
81 &fallback_exec, &fallback_symlink)) { |
81 return NULL; |
82 return NULL; |
82 } |
83 } |
83 t = (dirstateItemObject *)subtype->tp_alloc(subtype, 1); |
84 t = (dirstateItemObject *)subtype->tp_alloc(subtype, 1); |
84 if (!t) { |
85 if (!t) { |
85 return NULL; |
86 return NULL; |
92 if (p1_tracked) { |
93 if (p1_tracked) { |
93 t->flags |= dirstate_flag_p1_tracked; |
94 t->flags |= dirstate_flag_p1_tracked; |
94 } |
95 } |
95 if (p2_info) { |
96 if (p2_info) { |
96 t->flags |= dirstate_flag_p2_info; |
97 t->flags |= dirstate_flag_p2_info; |
|
98 } |
|
99 |
|
100 if (fallback_exec != Py_None) { |
|
101 t->flags |= dirstate_flag_has_fallback_exec; |
|
102 if (PyObject_IsTrue(fallback_exec)) { |
|
103 t->flags |= dirstate_flag_fallback_exec; |
|
104 } |
|
105 } |
|
106 if (fallback_symlink != Py_None) { |
|
107 t->flags |= dirstate_flag_has_fallback_symlink; |
|
108 if (PyObject_IsTrue(fallback_symlink)) { |
|
109 t->flags |= dirstate_flag_fallback_symlink; |
|
110 } |
97 } |
111 } |
98 |
112 |
99 if (parentfiledata != Py_None) { |
113 if (parentfiledata != Py_None) { |
100 if (!PyTuple_CheckExact(parentfiledata)) { |
114 if (!PyTuple_CheckExact(parentfiledata)) { |
101 PyErr_SetString( |
115 PyErr_SetString( |