﻿id,summary,reporter,owner,description,type,status,priority,milestone,component,version,resolution,keywords,cc
574,SystemError: error return without exception set,rblank,hodgestar,"When `_speedups` is enabled:
{{{
#!pycon
>>> from genshi.core import Markup
>>> Markup(',').join(iter('abc'))
Traceback (most recent call last):
  File ""<stdin>"", line 1, in <module>
SystemError: error return without exception set
}}}
`Markup.join()` is documented as taking a sequence, so this is an invalid call. But it should raise a `TypeError` instead. Interestingly, this makes the method slightly incompatible with the pure-Python one, which accepts iterators.

The fix is something like:
{{{
#!diff
Index: genshi/_speedups.c
===================================================================
--- genshi/_speedups.c  (revision 1241)
+++ genshi/_speedups.c  (working copy)
@@ -251,6 +251,7 @@
         return NULL;
     }
     if (!PySequence_Check(seq)) {
+        PyErr_SetString(PyExc_TypeError, ""join() requires a sequence"");
         return NULL;
     }
     n = PySequence_Size(seq);
}}}",defect,closed,major,,General,devel,fixed,,
