mercurial/manifest.c
changeset 30079 84debea79903
parent 29254 c5912a0b156c
child 30097 3bf4b762537e
equal deleted inserted replaced
30078:173bdb502503 30079:84debea79903
   252 	Py_XDECREF(hash);
   252 	Py_XDECREF(hash);
   253 	Py_XDECREF(flags);
   253 	Py_XDECREF(flags);
   254 	return ret;
   254 	return ret;
   255 }
   255 }
   256 
   256 
       
   257 #ifdef IS_PY3K
       
   258 #define LAZYMANIFESTENTRIESITERATOR_TPFLAGS Py_TPFLAGS_DEFAULT
       
   259 #else
       
   260 #define LAZYMANIFESTENTRIESITERATOR_TPFLAGS Py_TPFLAGS_DEFAULT \
       
   261 	| Py_TPFLAGS_HAVE_ITER
       
   262 #endif
       
   263 
   257 static PyTypeObject lazymanifestEntriesIterator = {
   264 static PyTypeObject lazymanifestEntriesIterator = {
   258 	PyObject_HEAD_INIT(NULL)
   265 	PyObject_HEAD_INIT(NULL)
   259 	0,                               /*ob_size */
   266 	0,                               /*ob_size */
   260 	"parsers.lazymanifest.entriesiterator", /*tp_name */
   267 	"parsers.lazymanifest.entriesiterator", /*tp_name */
   261 	sizeof(lmIter),                  /*tp_basicsize */
   268 	sizeof(lmIter),                  /*tp_basicsize */
   273 	0,                               /*tp_call */
   280 	0,                               /*tp_call */
   274 	0,                               /*tp_str */
   281 	0,                               /*tp_str */
   275 	0,                               /*tp_getattro */
   282 	0,                               /*tp_getattro */
   276 	0,                               /*tp_setattro */
   283 	0,                               /*tp_setattro */
   277 	0,                               /*tp_as_buffer */
   284 	0,                               /*tp_as_buffer */
   278 	/* tp_flags: Py_TPFLAGS_HAVE_ITER tells python to
   285 	LAZYMANIFESTENTRIESITERATOR_TPFLAGS, /* tp_flags */
   279 	   use tp_iter and tp_iternext fields. */
       
   280 	Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_ITER,
       
   281 	"Iterator for 3-tuples in a lazymanifest.",  /* tp_doc */
   286 	"Iterator for 3-tuples in a lazymanifest.",  /* tp_doc */
   282 	0,                               /* tp_traverse */
   287 	0,                               /* tp_traverse */
   283 	0,                               /* tp_clear */
   288 	0,                               /* tp_clear */
   284 	0,                               /* tp_richcompare */
   289 	0,                               /* tp_richcompare */
   285 	0,                               /* tp_weaklistoffset */
   290 	0,                               /* tp_weaklistoffset */
   295 		return NULL;
   300 		return NULL;
   296 	}
   301 	}
   297 	pl = pathlen(l);
   302 	pl = pathlen(l);
   298 	return PyString_FromStringAndSize(l->start, pl);
   303 	return PyString_FromStringAndSize(l->start, pl);
   299 }
   304 }
       
   305 
       
   306 #ifdef IS_PY3K
       
   307 #define LAZYMANIFESTKEYSITERATOR_TPFLAGS Py_TPFLAGS_DEFAULT
       
   308 #else
       
   309 #define LAZYMANIFESTKEYSITERATOR_TPFLAGS Py_TPFLAGS_DEFAULT \
       
   310 	| Py_TPFLAGS_HAVE_ITER
       
   311 #endif
   300 
   312 
   301 static PyTypeObject lazymanifestKeysIterator = {
   313 static PyTypeObject lazymanifestKeysIterator = {
   302 	PyObject_HEAD_INIT(NULL)
   314 	PyObject_HEAD_INIT(NULL)
   303 	0,                               /*ob_size */
   315 	0,                               /*ob_size */
   304 	"parsers.lazymanifest.keysiterator", /*tp_name */
   316 	"parsers.lazymanifest.keysiterator", /*tp_name */
   317 	0,                               /*tp_call */
   329 	0,                               /*tp_call */
   318 	0,                               /*tp_str */
   330 	0,                               /*tp_str */
   319 	0,                               /*tp_getattro */
   331 	0,                               /*tp_getattro */
   320 	0,                               /*tp_setattro */
   332 	0,                               /*tp_setattro */
   321 	0,                               /*tp_as_buffer */
   333 	0,                               /*tp_as_buffer */
   322 	/* tp_flags: Py_TPFLAGS_HAVE_ITER tells python to
   334 	LAZYMANIFESTKEYSITERATOR_TPFLAGS, /* tp_flags */
   323 	   use tp_iter and tp_iternext fields. */
       
   324 	Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_ITER,
       
   325 	"Keys iterator for a lazymanifest.",  /* tp_doc */
   335 	"Keys iterator for a lazymanifest.",  /* tp_doc */
   326 	0,                               /* tp_traverse */
   336 	0,                               /* tp_traverse */
   327 	0,                               /* tp_clear */
   337 	0,                               /* tp_clear */
   328 	0,                               /* tp_richcompare */
   338 	0,                               /* tp_richcompare */
   329 	0,                               /* tp_weaklistoffset */
   339 	0,                               /* tp_weaklistoffset */
   871 	{"text", (PyCFunction)lazymanifest_text, METH_NOARGS,
   881 	{"text", (PyCFunction)lazymanifest_text, METH_NOARGS,
   872 	 "Encode this manifest to text."},
   882 	 "Encode this manifest to text."},
   873 	{NULL},
   883 	{NULL},
   874 };
   884 };
   875 
   885 
       
   886 #ifdef IS_PY3K
       
   887 #define LAZYMANIFEST_TPFLAGS Py_TPFLAGS_DEFAULT
       
   888 #else
       
   889 #define LAZYMANIFEST_TPFLAGS Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_SEQUENCE_IN
       
   890 #endif
       
   891 
   876 static PyTypeObject lazymanifestType = {
   892 static PyTypeObject lazymanifestType = {
   877 	PyObject_HEAD_INIT(NULL)
   893 	PyObject_HEAD_INIT(NULL)
   878 	0,                                                /* ob_size */
   894 	0,                                                /* ob_size */
   879 	"parsers.lazymanifest",                           /* tp_name */
   895 	"parsers.lazymanifest",                           /* tp_name */
   880 	sizeof(lazymanifest),                             /* tp_basicsize */
   896 	sizeof(lazymanifest),                             /* tp_basicsize */
   892 	0,                                                /* tp_call */
   908 	0,                                                /* tp_call */
   893 	0,                                                /* tp_str */
   909 	0,                                                /* tp_str */
   894 	0,                                                /* tp_getattro */
   910 	0,                                                /* tp_getattro */
   895 	0,                                                /* tp_setattro */
   911 	0,                                                /* tp_setattro */
   896 	0,                                                /* tp_as_buffer */
   912 	0,                                                /* tp_as_buffer */
   897 	Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_SEQUENCE_IN, /* tp_flags */
   913 	LAZYMANIFEST_TPFLAGS,                             /* tp_flags */
   898 	"TODO(augie)",                                    /* tp_doc */
   914 	"TODO(augie)",                                    /* tp_doc */
   899 	0,                                                /* tp_traverse */
   915 	0,                                                /* tp_traverse */
   900 	0,                                                /* tp_clear */
   916 	0,                                                /* tp_clear */
   901 	0,                                                /* tp_richcompare */
   917 	0,                                                /* tp_richcompare */
   902 	0,                                             /* tp_weaklistoffset */
   918 	0,                                             /* tp_weaklistoffset */