mercurial/cext/parsers.c
changeset 48264 948570aa7630
parent 48263 602c8e8411f5
child 48271 269ff8978086
equal deleted inserted replaced
48263:602c8e8411f5 48264:948570aa7630
    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(