]> granicus.if.org Git - recode/commitdiff
Do not use CHAR, and test without iconv
authorFrançois Pinard <pinard@iro.umontreal.ca>
Sun, 9 Mar 2008 04:06:56 +0000 (23:06 -0500)
committerFrançois Pinard <pinard@iro.umontreal.ca>
Sun, 9 Mar 2008 04:06:56 +0000 (23:06 -0500)
src/ChangeLog
src/localcharset.c
src/names.c
src/recodext.h
tests/ChangeLog
tests/Recode.c
tests/Recode.pyx
tests/common.py
tests/t21_names.py

index 954945c356a4eae4e8558f458c7cc7a053ba5b57..0e5beb8bbca1057a03878ddcd659477439ef0b24 100644 (file)
 
        * recode.c (recode_format_table, usage, main): Do not say Free.
 
+       * names.c (disambiguate_name): Do not use "char", but either a
+       predefined DEFAULT_CHARSET, or call locale_charset.
+       * recodext.h: Declare locale_charset.
+       * localcharset.c: Use (void) instead of ().
+
 2008-03-07  François Pinard  <pinard@iro.umontreal.ca>
 
        * iconvdecl.h: Deleted.  Should be generated at installation time
index 936d93d84caa2c8d12fa5db130d69d75d2c468a8..54c75ba2b836adf962d6d3c1071c706a8c7d2c75 100644 (file)
@@ -76,7 +76,7 @@ static char * volatile charset_aliases;
 
 /* Return a pointer to the contents of the charset.alias file.  */
 static const char *
-get_charset_aliases ()
+get_charset_aliases (void)
 {
   char *cp;
 
@@ -197,7 +197,7 @@ get_charset_aliases ()
 STATIC
 #endif
 const char *
-locale_charset ()
+locale_charset (void)
 {
   const char *codeset;
   const char *aliases;
index 837ff82998ee30a142ff8f200a0479e60ac02617..c5a4eb2444a94526c0e9cd6855189f357f891b46 100644 (file)
@@ -171,8 +171,15 @@ disambiguate_name (RECODE_OUTER outer,
       case ALIAS_FIND_AS_CHARSET:
       case ALIAS_FIND_AS_EITHER:
        name = getenv ("DEFAULT_CHARSET");
-       if (!name)
-         name = "char"; /* locale dependent */
+#ifdef DEFAULT_CHARSET
+       if (!name || !*name)
+          name = DEFAULT_CHARSET;
+#else
+       if (!name || !*name)
+          name = locale_charset();
+#endif
+       if (!name || !*name)
+          return NULL;
        break;
 
       default:
index 54e855547d1912e884af94c984da4a4b701b9497..1ab5f445a721541563d53a7f3673266edb0e5bbc 100644 (file)
@@ -637,6 +637,10 @@ void recode_freeze_tables PARAMS ((RECODE_OUTER));
 
 bool transform_with_iconv PARAMS ((RECODE_SUBTASK));
 
+/* localcharset.c.  */
+
+const char *locale_charset PARAMS ((void));
+
 /* mixed.c.  */
 
 bool transform_c_source PARAMS ((RECODE_TASK));
index c65a4fb842a90e1a49a4e54931c20aa040741fbf..c396925d2724cb3992b8b90c10126aadfe14eb3b 100644 (file)
@@ -4,6 +4,12 @@
        (Outer.__init__): Implement strictness setting.
        (Outer.set_iconv): Deleted.
 
+       * common.py (external_output): Ignore :iconv:.
+       * Recode.pyx: Declare locale_charset.
+       Transmit AUTO_ABORT_FLAG and NO_ICONV_FLAG to Python.
+       (Outer.__init__): Replace no_iconv by iconv, defaulting to False.
+       * t21_names.py: Adjusted.
+
 2008-03-06  François Pinard  <pinard@iro.umontreal.ca>
 
        Increase Recode.so portability, by depending on distutils:
index d383774d577ed2b969cbf4ea709259aea89d7d46..413f607a67543415ec69a73c03c32f843546e01c 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by Pyrex 0.9.6.4 on Sat Mar  8 18:28:26 2008 */
+/* Generated by Pyrex 0.9.6.4 on Sat Mar  8 22:48:53 2008 */
 
 #define PY_SSIZE_T_CLEAN
 #include "Python.h"
@@ -143,66 +143,70 @@ static PyObject *__pyx_n_REPLACEMENT_CHARACTER;
 static PyObject *__pyx_n_NOT_A_CHARACTER;
 static PyObject *__pyx_n_BYTE_ORDER_MARK;
 static PyObject *__pyx_n_BYTE_ORDER_MARK_SWAPPED;
+static PyObject *__pyx_n_AUTO_ABORT_FLAG;
+static PyObject *__pyx_n_NO_ICONV_FLAG;
 static PyObject *__pyx_n_False;
 static PyObject *__pyx_n_global_outer;
 
 static int __pyx_f_6Recode_5Outer___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
 static int __pyx_f_6Recode_5Outer___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
-  PyObject *__pyx_v_strict = 0;
   PyObject *__pyx_v_auto_abort = 0;
-  PyObject *__pyx_v_no_iconv = 0;
+  PyObject *__pyx_v_iconv = 0;
+  PyObject *__pyx_v_strict = 0;
   int __pyx_v_flags;
   RECODE_SINGLE __pyx_v_single;
   int __pyx_r;
   int __pyx_1;
-  static char *__pyx_argnames[] = {"strict","auto_abort","no_iconv",0};
-  __pyx_v_strict = __pyx_k2;
-  __pyx_v_auto_abort = __pyx_k3;
-  __pyx_v_no_iconv = __pyx_k4;
-  if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "|OOO", __pyx_argnames, &__pyx_v_strict, &__pyx_v_auto_abort, &__pyx_v_no_iconv)) return -1;
+  int __pyx_2;
+  static char *__pyx_argnames[] = {"auto_abort","iconv","strict",0};
+  __pyx_v_auto_abort = __pyx_k2;
+  __pyx_v_iconv = __pyx_k3;
+  __pyx_v_strict = __pyx_k4;
+  if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "|OOO", __pyx_argnames, &__pyx_v_auto_abort, &__pyx_v_iconv, &__pyx_v_strict)) return -1;
   Py_INCREF(__pyx_v_self);
-  Py_INCREF(__pyx_v_strict);
   Py_INCREF(__pyx_v_auto_abort);
-  Py_INCREF(__pyx_v_no_iconv);
+  Py_INCREF(__pyx_v_iconv);
+  Py_INCREF(__pyx_v_strict);
 
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":569 */
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":576 */
   __pyx_v_flags = 0;
 
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":570 */
-  __pyx_1 = PyObject_IsTrue(__pyx_v_auto_abort); if (__pyx_1 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 570; goto __pyx_L1;}
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":577 */
+  __pyx_1 = PyObject_IsTrue(__pyx_v_auto_abort); if (__pyx_1 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 577; goto __pyx_L1;}
   if (__pyx_1) {
     __pyx_v_flags = (__pyx_v_flags | RECODE_AUTO_ABORT_FLAG);
     goto __pyx_L2;
   }
   __pyx_L2:;
 
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":572 */
-  __pyx_1 = PyObject_IsTrue(__pyx_v_no_iconv); if (__pyx_1 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; goto __pyx_L1;}
-  if (__pyx_1) {
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":579 */
+  __pyx_1 = PyObject_IsTrue(__pyx_v_iconv); if (__pyx_1 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 579; goto __pyx_L1;}
+  __pyx_2 = (!__pyx_1);
+  if (__pyx_2) {
     __pyx_v_flags = (__pyx_v_flags | RECODE_NO_ICONV_FLAG);
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":574 */
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":581 */
   ((struct __pyx_obj_6Recode_Outer *)__pyx_v_self)->outer = recode_new_outer(__pyx_v_flags);
 
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":575 */
-  __pyx_1 = PyObject_IsTrue(__pyx_v_strict); if (__pyx_1 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 575; goto __pyx_L1;}
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":582 */
+  __pyx_1 = PyObject_IsTrue(__pyx_v_strict); if (__pyx_1 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 582; goto __pyx_L1;}
   if (__pyx_1) {
 
-    /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":576 */
+    /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":583 */
     __pyx_v_single = ((struct __pyx_obj_6Recode_Outer *)__pyx_v_self)->outer->single_list;
 
-    /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":577 */
+    /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":584 */
     while (1) {
-      __pyx_1 = (__pyx_v_single != NULL);
-      if (!__pyx_1) break;
+      __pyx_2 = (__pyx_v_single != NULL);
+      if (!__pyx_2) break;
 
-      /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":578 */
+      /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":585 */
       __pyx_v_single->fallback_routine = NULL;
 
-      /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":579 */
+      /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":586 */
       __pyx_v_single = __pyx_v_single->next;
     }
     goto __pyx_L4;
@@ -216,9 +220,9 @@ static int __pyx_f_6Recode_5Outer___init__(PyObject *__pyx_v_self, PyObject *__p
   __pyx_r = -1;
   __pyx_L0:;
   Py_DECREF(__pyx_v_self);
-  Py_DECREF(__pyx_v_strict);
   Py_DECREF(__pyx_v_auto_abort);
-  Py_DECREF(__pyx_v_no_iconv);
+  Py_DECREF(__pyx_v_iconv);
+  Py_DECREF(__pyx_v_strict);
   return __pyx_r;
 }
 
@@ -230,6 +234,29 @@ static void __pyx_f_6Recode_5Outer___dealloc__(PyObject *__pyx_v_self) {
   Py_DECREF(__pyx_v_self);
 }
 
+static PyObject *__pyx_f_6Recode_5Outer_default_charset(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
+static PyObject *__pyx_f_6Recode_5Outer_default_charset(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
+  PyObject *__pyx_r;
+  PyObject *__pyx_1 = 0;
+  static char *__pyx_argnames[] = {0};
+  if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "", __pyx_argnames)) return 0;
+  Py_INCREF(__pyx_v_self);
+  __pyx_1 = PyString_FromString(librecode_locale_charset()); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 592; goto __pyx_L1;}
+  __pyx_r = __pyx_1;
+  __pyx_1 = 0;
+  goto __pyx_L0;
+
+  __pyx_r = Py_None; Py_INCREF(Py_None);
+  goto __pyx_L0;
+  __pyx_L1:;
+  Py_XDECREF(__pyx_1);
+  __Pyx_AddTraceback("Recode.Outer.default_charset");
+  __pyx_r = 0;
+  __pyx_L0:;
+  Py_DECREF(__pyx_v_self);
+  return __pyx_r;
+}
+
 static PyObject *__pyx_n_append;
 
 static PyObject *__pyx_f_6Recode_5Outer_all_charsets(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
@@ -246,21 +273,21 @@ static PyObject *__pyx_f_6Recode_5Outer_all_charsets(PyObject *__pyx_v_self, PyO
   Py_INCREF(__pyx_v_self);
   __pyx_v_list = Py_None; Py_INCREF(Py_None);
 
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":585 */
-  __pyx_1 = PyList_New(0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 585; goto __pyx_L1;}
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":595 */
+  __pyx_1 = PyList_New(0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 595; goto __pyx_L1;}
   Py_DECREF(__pyx_v_list);
   __pyx_v_list = __pyx_1;
   __pyx_1 = 0;
 
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":587 */
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":597 */
   __pyx_v_symbol = ((struct __pyx_obj_6Recode_Outer *)__pyx_v_self)->outer->symbol_list;
 
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":588 */
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":598 */
   while (1) {
     __pyx_2 = (__pyx_v_symbol != NULL);
     if (!__pyx_2) break;
 
-    /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":589 */
+    /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":599 */
     __pyx_2 = (__pyx_v_symbol->type == RECODE_CHARSET);
     if (__pyx_2) {
       __pyx_2 = (__pyx_v_symbol != ((struct __pyx_obj_6Recode_Outer *)__pyx_v_self)->outer->iconv_pivot);
@@ -272,12 +299,12 @@ static PyObject *__pyx_f_6Recode_5Outer_all_charsets(PyObject *__pyx_v_self, PyO
       }
     }
     if (__pyx_2) {
-      __pyx_1 = PyObject_GetAttr(__pyx_v_list, __pyx_n_append); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 593; goto __pyx_L1;}
-      __pyx_3 = PyString_FromString(__pyx_v_symbol->name); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 593; goto __pyx_L1;}
-      __pyx_4 = PyTuple_New(1); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 593; goto __pyx_L1;}
+      __pyx_1 = PyObject_GetAttr(__pyx_v_list, __pyx_n_append); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 603; goto __pyx_L1;}
+      __pyx_3 = PyString_FromString(__pyx_v_symbol->name); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 603; goto __pyx_L1;}
+      __pyx_4 = PyTuple_New(1); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 603; goto __pyx_L1;}
       PyTuple_SET_ITEM(__pyx_4, 0, __pyx_3);
       __pyx_3 = 0;
-      __pyx_3 = PyObject_CallObject(__pyx_1, __pyx_4); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 593; goto __pyx_L1;}
+      __pyx_3 = PyObject_CallObject(__pyx_1, __pyx_4); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 603; goto __pyx_L1;}
       Py_DECREF(__pyx_1); __pyx_1 = 0;
       Py_DECREF(__pyx_4); __pyx_4 = 0;
       Py_DECREF(__pyx_3); __pyx_3 = 0;
@@ -285,11 +312,11 @@ static PyObject *__pyx_f_6Recode_5Outer_all_charsets(PyObject *__pyx_v_self, PyO
     }
     __pyx_L4:;
 
-    /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":594 */
+    /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":604 */
     __pyx_v_symbol = __pyx_v_symbol->next;
   }
 
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":595 */
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":605 */
   Py_INCREF(__pyx_v_list);
   __pyx_r = __pyx_v_list;
   goto __pyx_L0;
@@ -322,29 +349,29 @@ static PyObject *__pyx_f_6Recode_5Outer_all_surfaces(PyObject *__pyx_v_self, PyO
   Py_INCREF(__pyx_v_self);
   __pyx_v_list = Py_None; Py_INCREF(Py_None);
 
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":598 */
-  __pyx_1 = PyList_New(0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 598; goto __pyx_L1;}
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":608 */
+  __pyx_1 = PyList_New(0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 608; goto __pyx_L1;}
   Py_DECREF(__pyx_v_list);
   __pyx_v_list = __pyx_1;
   __pyx_1 = 0;
 
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":600 */
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":610 */
   __pyx_v_symbol = ((struct __pyx_obj_6Recode_Outer *)__pyx_v_self)->outer->symbol_list;
 
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":601 */
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":611 */
   while (1) {
     __pyx_2 = (__pyx_v_symbol != NULL);
     if (!__pyx_2) break;
 
-    /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":602 */
+    /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":612 */
     __pyx_2 = (__pyx_v_symbol->type != RECODE_CHARSET);
     if (__pyx_2) {
-      __pyx_1 = PyObject_GetAttr(__pyx_v_list, __pyx_n_append); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 603; goto __pyx_L1;}
-      __pyx_3 = PyString_FromString(__pyx_v_symbol->name); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 603; goto __pyx_L1;}
-      __pyx_4 = PyTuple_New(1); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 603; goto __pyx_L1;}
+      __pyx_1 = PyObject_GetAttr(__pyx_v_list, __pyx_n_append); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 613; goto __pyx_L1;}
+      __pyx_3 = PyString_FromString(__pyx_v_symbol->name); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 613; goto __pyx_L1;}
+      __pyx_4 = PyTuple_New(1); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 613; goto __pyx_L1;}
       PyTuple_SET_ITEM(__pyx_4, 0, __pyx_3);
       __pyx_3 = 0;
-      __pyx_3 = PyObject_CallObject(__pyx_1, __pyx_4); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 603; goto __pyx_L1;}
+      __pyx_3 = PyObject_CallObject(__pyx_1, __pyx_4); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 613; goto __pyx_L1;}
       Py_DECREF(__pyx_1); __pyx_1 = 0;
       Py_DECREF(__pyx_4); __pyx_4 = 0;
       Py_DECREF(__pyx_3); __pyx_3 = 0;
@@ -352,11 +379,11 @@ static PyObject *__pyx_f_6Recode_5Outer_all_surfaces(PyObject *__pyx_v_self, PyO
     }
     __pyx_L4:;
 
-    /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":604 */
+    /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":614 */
     __pyx_v_symbol = __pyx_v_symbol->next;
   }
 
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":605 */
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":615 */
   Py_INCREF(__pyx_v_list);
   __pyx_r = __pyx_v_list;
   goto __pyx_L0;
@@ -391,21 +418,21 @@ static PyObject *__pyx_f_6Recode_5Outer_concise_charset(PyObject *__pyx_v_self,
   Py_INCREF(__pyx_v_format);
   __pyx_v_ok = Py_None; Py_INCREF(Py_None);
 
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":608 */
-  __pyx_1 = ((enum recode_list_format)PyInt_AsLong(__pyx_v_format)); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 608; goto __pyx_L1;}
-  __pyx_2 = PyInt_FromLong(librecode_list_concise_charset(((struct __pyx_obj_6Recode_Outer *)__pyx_v_self)->outer,NULL,__pyx_1)); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 608; goto __pyx_L1;}
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":618 */
+  __pyx_1 = ((enum recode_list_format)PyInt_AsLong(__pyx_v_format)); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 618; goto __pyx_L1;}
+  __pyx_2 = PyInt_FromLong(librecode_list_concise_charset(((struct __pyx_obj_6Recode_Outer *)__pyx_v_self)->outer,NULL,__pyx_1)); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 618; goto __pyx_L1;}
   Py_DECREF(__pyx_v_ok);
   __pyx_v_ok = __pyx_2;
   __pyx_2 = 0;
 
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":609 */
-  __pyx_3 = PyObject_IsTrue(__pyx_v_ok); if (__pyx_3 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 609; goto __pyx_L1;}
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":619 */
+  __pyx_3 = PyObject_IsTrue(__pyx_v_ok); if (__pyx_3 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 619; goto __pyx_L1;}
   __pyx_4 = (!__pyx_3);
   if (__pyx_4) {
-    __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_n_error); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 610; goto __pyx_L1;}
+    __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_n_error); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 620; goto __pyx_L1;}
     __Pyx_Raise(__pyx_2, 0, 0);
     Py_DECREF(__pyx_2); __pyx_2 = 0;
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 610; goto __pyx_L1;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 620; goto __pyx_L1;}
     goto __pyx_L2;
   }
   __pyx_L2:;
@@ -435,20 +462,20 @@ static PyObject *__pyx_f_6Recode_5Outer_full_charset(PyObject *__pyx_v_self, PyO
   Py_INCREF(__pyx_v_self);
   __pyx_v_ok = Py_None; Py_INCREF(Py_None);
 
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":613 */
-  __pyx_1 = PyInt_FromLong(librecode_list_full_charset(((struct __pyx_obj_6Recode_Outer *)__pyx_v_self)->outer,NULL)); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 613; goto __pyx_L1;}
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":623 */
+  __pyx_1 = PyInt_FromLong(librecode_list_full_charset(((struct __pyx_obj_6Recode_Outer *)__pyx_v_self)->outer,NULL)); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 623; goto __pyx_L1;}
   Py_DECREF(__pyx_v_ok);
   __pyx_v_ok = __pyx_1;
   __pyx_1 = 0;
 
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":614 */
-  __pyx_2 = PyObject_IsTrue(__pyx_v_ok); if (__pyx_2 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 614; goto __pyx_L1;}
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":624 */
+  __pyx_2 = PyObject_IsTrue(__pyx_v_ok); if (__pyx_2 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 624; goto __pyx_L1;}
   __pyx_3 = (!__pyx_2);
   if (__pyx_3) {
-    __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_n_error); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 615; goto __pyx_L1;}
+    __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_n_error); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 625; goto __pyx_L1;}
     __Pyx_Raise(__pyx_1, 0, 0);
     Py_DECREF(__pyx_1); __pyx_1 = 0;
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 615; goto __pyx_L1;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 625; goto __pyx_L1;}
     goto __pyx_L2;
   }
   __pyx_L2:;
@@ -473,7 +500,7 @@ static int __pyx_f_6Recode_7Request___init__(PyObject *__pyx_v_self, PyObject *_
   if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "O", __pyx_argnames, &__pyx_v_outer)) return -1;
   Py_INCREF(__pyx_v_self);
   Py_INCREF(__pyx_v_outer);
-  if (!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_outer), __pyx_ptype_6Recode_Outer, 1, "outer")) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 622; goto __pyx_L1;}
+  if (!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_outer), __pyx_ptype_6Recode_Outer, 1, "outer")) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 632; goto __pyx_L1;}
   ((struct __pyx_obj_6Recode_Request *)__pyx_v_self)->request = recode_new_request(__pyx_v_outer->outer);
 
   __pyx_r = 0;
@@ -512,25 +539,25 @@ static PyObject *__pyx_f_6Recode_7Request_set_verbose(PyObject *__pyx_v_self, Py
   Py_INCREF(__pyx_v_flag);
   __pyx_v_previous = Py_None; Py_INCREF(Py_None);
 
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":629 */
-  __pyx_1 = PyInt_FromLong((((struct __pyx_obj_6Recode_Request *)__pyx_v_self)->request->verbose_flag != 0)); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 629; goto __pyx_L1;}
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":639 */
+  __pyx_1 = PyInt_FromLong((((struct __pyx_obj_6Recode_Request *)__pyx_v_self)->request->verbose_flag != 0)); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 639; goto __pyx_L1;}
   Py_DECREF(__pyx_v_previous);
   __pyx_v_previous = __pyx_1;
   __pyx_1 = 0;
 
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":630 */
-  __pyx_1 = __Pyx_GetName(__pyx_b, __pyx_n_int); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 630; goto __pyx_L1;}
-  __pyx_2 = PyTuple_New(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 630; goto __pyx_L1;}
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":640 */
+  __pyx_1 = __Pyx_GetName(__pyx_b, __pyx_n_int); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 640; goto __pyx_L1;}
+  __pyx_2 = PyTuple_New(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 640; goto __pyx_L1;}
   Py_INCREF(__pyx_v_flag);
   PyTuple_SET_ITEM(__pyx_2, 0, __pyx_v_flag);
-  __pyx_3 = PyObject_CallObject(__pyx_1, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 630; goto __pyx_L1;}
+  __pyx_3 = PyObject_CallObject(__pyx_1, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 640; goto __pyx_L1;}
   Py_DECREF(__pyx_1); __pyx_1 = 0;
   Py_DECREF(__pyx_2); __pyx_2 = 0;
-  __pyx_4 = ((enum __pyx_t_6Recode_bool)PyInt_AsLong(__pyx_3)); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 630; goto __pyx_L1;}
+  __pyx_4 = ((enum __pyx_t_6Recode_bool)PyInt_AsLong(__pyx_3)); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 640; goto __pyx_L1;}
   Py_DECREF(__pyx_3); __pyx_3 = 0;
   ((struct __pyx_obj_6Recode_Request *)__pyx_v_self)->request->verbose_flag = __pyx_4;
 
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":631 */
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":641 */
   Py_INCREF(__pyx_v_previous);
   __pyx_r = __pyx_v_previous;
   goto __pyx_L0;
@@ -563,20 +590,20 @@ static PyObject *__pyx_f_6Recode_7Request_scan(PyObject *__pyx_v_self, PyObject
   Py_INCREF(__pyx_v_self);
   __pyx_v_ok = Py_None; Py_INCREF(Py_None);
 
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":634 */
-  __pyx_1 = PyInt_FromLong(recode_scan_request(((struct __pyx_obj_6Recode_Request *)__pyx_v_self)->request,__pyx_v_text)); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 634; goto __pyx_L1;}
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":644 */
+  __pyx_1 = PyInt_FromLong(recode_scan_request(((struct __pyx_obj_6Recode_Request *)__pyx_v_self)->request,__pyx_v_text)); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 644; goto __pyx_L1;}
   Py_DECREF(__pyx_v_ok);
   __pyx_v_ok = __pyx_1;
   __pyx_1 = 0;
 
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":635 */
-  __pyx_2 = PyObject_IsTrue(__pyx_v_ok); if (__pyx_2 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 635; goto __pyx_L1;}
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":645 */
+  __pyx_2 = PyObject_IsTrue(__pyx_v_ok); if (__pyx_2 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 645; goto __pyx_L1;}
   __pyx_3 = (!__pyx_2);
   if (__pyx_3) {
-    __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_n_error); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 636; goto __pyx_L1;}
+    __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_n_error); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 646; goto __pyx_L1;}
     __Pyx_Raise(__pyx_1, 0, 0);
     Py_DECREF(__pyx_1); __pyx_1 = 0;
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 636; goto __pyx_L1;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 646; goto __pyx_L1;}
     goto __pyx_L2;
   }
   __pyx_L2:;
@@ -609,38 +636,38 @@ static PyObject *__pyx_f_6Recode_7Request_pair_sequence(PyObject *__pyx_v_self,
   Py_INCREF(__pyx_v_self);
   __pyx_v_list = Py_None; Py_INCREF(Py_None);
 
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":639 */
-  __pyx_1 = PyList_New(0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 639; goto __pyx_L1;}
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":649 */
+  __pyx_1 = PyList_New(0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 649; goto __pyx_L1;}
   Py_DECREF(__pyx_v_list);
   __pyx_v_list = __pyx_1;
   __pyx_1 = 0;
 
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":642 */
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":652 */
   __pyx_2 = ((struct __pyx_obj_6Recode_Request *)__pyx_v_self)->request->sequence_length;
   for (__pyx_v_counter = 0; __pyx_v_counter < __pyx_2; ++__pyx_v_counter) {
 
-    /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":643 */
+    /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":653 */
     __pyx_v_step = (((struct __pyx_obj_6Recode_Request *)__pyx_v_self)->request->sequence_array[__pyx_v_counter]);
 
-    /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":644 */
-    __pyx_1 = PyObject_GetAttr(__pyx_v_list, __pyx_n_append); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 644; goto __pyx_L1;}
-    __pyx_3 = PyString_FromString(__pyx_v_step.before->name); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 644; goto __pyx_L1;}
-    __pyx_4 = PyString_FromString(__pyx_v_step.after->name); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 644; goto __pyx_L1;}
-    __pyx_5 = PyTuple_New(2); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 644; goto __pyx_L1;}
+    /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":654 */
+    __pyx_1 = PyObject_GetAttr(__pyx_v_list, __pyx_n_append); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 654; goto __pyx_L1;}
+    __pyx_3 = PyString_FromString(__pyx_v_step.before->name); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 654; goto __pyx_L1;}
+    __pyx_4 = PyString_FromString(__pyx_v_step.after->name); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 654; goto __pyx_L1;}
+    __pyx_5 = PyTuple_New(2); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 654; goto __pyx_L1;}
     PyTuple_SET_ITEM(__pyx_5, 0, __pyx_3);
     PyTuple_SET_ITEM(__pyx_5, 1, __pyx_4);
     __pyx_3 = 0;
     __pyx_4 = 0;
-    __pyx_3 = PyTuple_New(1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 644; goto __pyx_L1;}
+    __pyx_3 = PyTuple_New(1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 654; goto __pyx_L1;}
     PyTuple_SET_ITEM(__pyx_3, 0, __pyx_5);
     __pyx_5 = 0;
-    __pyx_4 = PyObject_CallObject(__pyx_1, __pyx_3); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 644; goto __pyx_L1;}
+    __pyx_4 = PyObject_CallObject(__pyx_1, __pyx_3); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 654; goto __pyx_L1;}
     Py_DECREF(__pyx_1); __pyx_1 = 0;
     Py_DECREF(__pyx_3); __pyx_3 = 0;
     Py_DECREF(__pyx_4); __pyx_4 = 0;
   }
 
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":645 */
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":655 */
   Py_INCREF(__pyx_v_list);
   __pyx_r = __pyx_v_list;
   goto __pyx_L0;
@@ -676,32 +703,32 @@ static PyObject *__pyx_f_6Recode_7Request_format_table(PyObject *__pyx_v_self, P
   Py_INCREF(__pyx_v_self);
   __pyx_v_ok = Py_None; Py_INCREF(Py_None);
 
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":650 */
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":660 */
   __pyx_v_outer = ((struct __pyx_obj_6Recode_Request *)__pyx_v_self)->request->outer;
 
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":651 */
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":661 */
   __pyx_v_saved = __pyx_v_outer->iconv_pivot->ignore;
 
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":652 */
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":662 */
   __pyx_v_outer->iconv_pivot->ignore = __pyx_e_6Recode_true;
 
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":653 */
-  __pyx_1 = PyInt_FromLong(recode_format_table(((struct __pyx_obj_6Recode_Request *)__pyx_v_self)->request,((enum recode_programming_language)__pyx_v_language),__pyx_v_charset)); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 653; goto __pyx_L1;}
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":663 */
+  __pyx_1 = PyInt_FromLong(recode_format_table(((struct __pyx_obj_6Recode_Request *)__pyx_v_self)->request,((enum recode_programming_language)__pyx_v_language),__pyx_v_charset)); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 663; goto __pyx_L1;}
   Py_DECREF(__pyx_v_ok);
   __pyx_v_ok = __pyx_1;
   __pyx_1 = 0;
 
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":655 */
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":665 */
   __pyx_v_outer->iconv_pivot->ignore = __pyx_v_saved;
 
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":656 */
-  __pyx_2 = PyObject_IsTrue(__pyx_v_ok); if (__pyx_2 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 656; goto __pyx_L1;}
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":666 */
+  __pyx_2 = PyObject_IsTrue(__pyx_v_ok); if (__pyx_2 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 666; goto __pyx_L1;}
   __pyx_3 = (!__pyx_2);
   if (__pyx_3) {
-    __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_n_error); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 657; goto __pyx_L1;}
+    __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_n_error); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 667; goto __pyx_L1;}
     __Pyx_Raise(__pyx_1, 0, 0);
     Py_DECREF(__pyx_1); __pyx_1 = 0;
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 657; goto __pyx_L1;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 667; goto __pyx_L1;}
     goto __pyx_L2;
   }
   __pyx_L2:;
@@ -729,22 +756,22 @@ static PyObject *__pyx_f_6Recode_7Request_string(PyObject *__pyx_v_self, PyObjec
   if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "s", __pyx_argnames, &__pyx_v_text)) return 0;
   Py_INCREF(__pyx_v_self);
 
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":661 */
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":671 */
   __pyx_v_result = recode_string(((struct __pyx_obj_6Recode_Request *)__pyx_v_self)->request,__pyx_v_text);
 
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":662 */
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":672 */
   __pyx_1 = (__pyx_v_result == NULL);
   if (__pyx_1) {
-    __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_n_error); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 663; goto __pyx_L1;}
+    __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_n_error); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 673; goto __pyx_L1;}
     __Pyx_Raise(__pyx_2, 0, 0);
     Py_DECREF(__pyx_2); __pyx_2 = 0;
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 663; goto __pyx_L1;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 673; goto __pyx_L1;}
     goto __pyx_L2;
   }
   __pyx_L2:;
 
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":664 */
-  __pyx_2 = PyString_FromString(__pyx_v_result); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 664; goto __pyx_L1;}
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":674 */
+  __pyx_2 = PyString_FromString(__pyx_v_result); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 674; goto __pyx_L1;}
   __pyx_r = __pyx_2;
   __pyx_2 = 0;
   goto __pyx_L0;
@@ -776,35 +803,35 @@ static PyObject *__pyx_f_6Recode_recode(PyObject *__pyx_self, PyObject *__pyx_ar
   if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "ss", __pyx_argnames, &__pyx_v_text, &__pyx_v_string)) return 0;
   __pyx_v_request = Py_None; Py_INCREF(Py_None);
 
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":683 */
-  __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_n_global_outer); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 683; goto __pyx_L1;}
-  __pyx_2 = PyTuple_New(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 683; goto __pyx_L1;}
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":693 */
+  __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_n_global_outer); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 693; goto __pyx_L1;}
+  __pyx_2 = PyTuple_New(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 693; goto __pyx_L1;}
   PyTuple_SET_ITEM(__pyx_2, 0, __pyx_1);
   __pyx_1 = 0;
-  __pyx_1 = PyObject_CallObject(((PyObject*)__pyx_ptype_6Recode_Request), __pyx_2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 683; goto __pyx_L1;}
+  __pyx_1 = PyObject_CallObject(((PyObject*)__pyx_ptype_6Recode_Request), __pyx_2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 693; goto __pyx_L1;}
   Py_DECREF(__pyx_2); __pyx_2 = 0;
   Py_DECREF(__pyx_v_request);
   __pyx_v_request = __pyx_1;
   __pyx_1 = 0;
 
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":684 */
-  __pyx_2 = PyObject_GetAttr(__pyx_v_request, __pyx_n_scan); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 684; goto __pyx_L1;}
-  __pyx_1 = PyString_FromString(__pyx_v_text); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 684; goto __pyx_L1;}
-  __pyx_3 = PyTuple_New(1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 684; goto __pyx_L1;}
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":694 */
+  __pyx_2 = PyObject_GetAttr(__pyx_v_request, __pyx_n_scan); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 694; goto __pyx_L1;}
+  __pyx_1 = PyString_FromString(__pyx_v_text); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 694; goto __pyx_L1;}
+  __pyx_3 = PyTuple_New(1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 694; goto __pyx_L1;}
   PyTuple_SET_ITEM(__pyx_3, 0, __pyx_1);
   __pyx_1 = 0;
-  __pyx_1 = PyObject_CallObject(__pyx_2, __pyx_3); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 684; goto __pyx_L1;}
+  __pyx_1 = PyObject_CallObject(__pyx_2, __pyx_3); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 694; goto __pyx_L1;}
   Py_DECREF(__pyx_2); __pyx_2 = 0;
   Py_DECREF(__pyx_3); __pyx_3 = 0;
   Py_DECREF(__pyx_1); __pyx_1 = 0;
 
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":685 */
-  __pyx_2 = PyObject_GetAttr(__pyx_v_request, __pyx_n_string); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 685; goto __pyx_L1;}
-  __pyx_3 = PyString_FromString(__pyx_v_string); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 685; goto __pyx_L1;}
-  __pyx_1 = PyTuple_New(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 685; goto __pyx_L1;}
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":695 */
+  __pyx_2 = PyObject_GetAttr(__pyx_v_request, __pyx_n_string); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 695; goto __pyx_L1;}
+  __pyx_3 = PyString_FromString(__pyx_v_string); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 695; goto __pyx_L1;}
+  __pyx_1 = PyTuple_New(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 695; goto __pyx_L1;}
   PyTuple_SET_ITEM(__pyx_1, 0, __pyx_3);
   __pyx_3 = 0;
-  __pyx_3 = PyObject_CallObject(__pyx_2, __pyx_1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 685; goto __pyx_L1;}
+  __pyx_3 = PyObject_CallObject(__pyx_2, __pyx_1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 695; goto __pyx_L1;}
   Py_DECREF(__pyx_2); __pyx_2 = 0;
   Py_DECREF(__pyx_1); __pyx_1 = 0;
   __pyx_r = __pyx_3;
@@ -829,6 +856,7 @@ static __Pyx_InternTabEntry __pyx_intern_tab[] = {
   {&__pyx_n_ALIAS_FIND_AS_EITHER, "ALIAS_FIND_AS_EITHER"},
   {&__pyx_n_ALIAS_FIND_AS_SURFACE, "ALIAS_FIND_AS_SURFACE"},
   {&__pyx_n_AMBIGUOUS_OUTPUT, "AMBIGUOUS_OUTPUT"},
+  {&__pyx_n_AUTO_ABORT_FLAG, "AUTO_ABORT_FLAG"},
   {&__pyx_n_BYTE_ORDER_MARK, "BYTE_ORDER_MARK"},
   {&__pyx_n_BYTE_ORDER_MARK_SWAPPED, "BYTE_ORDER_MARK_SWAPPED"},
   {&__pyx_n_BYTE_TO_BYTE, "BYTE_TO_BYTE"},
@@ -854,6 +882,7 @@ static __Pyx_InternTabEntry __pyx_intern_tab[] = {
   {&__pyx_n_NO_CHARSET_DATA, "NO_CHARSET_DATA"},
   {&__pyx_n_NO_ERROR, "NO_ERROR"},
   {&__pyx_n_NO_FORMAT, "NO_FORMAT"},
+  {&__pyx_n_NO_ICONV_FLAG, "NO_ICONV_FLAG"},
   {&__pyx_n_NO_LANGUAGE, "NO_LANGUAGE"},
   {&__pyx_n_NO_STEP_TABLE, "NO_STEP_TABLE"},
   {&__pyx_n_NO_SYMBOL_TYPE, "NO_SYMBOL_TYPE"},
@@ -922,6 +951,7 @@ static int __pyx_tp_clear_6Recode_Outer(PyObject *o) {
 }
 
 static struct PyMethodDef __pyx_methods_6Recode_Outer[] = {
+  {"default_charset", (PyCFunction)__pyx_f_6Recode_5Outer_default_charset, METH_VARARGS|METH_KEYWORDS, 0},
   {"all_charsets", (PyCFunction)__pyx_f_6Recode_5Outer_all_charsets, METH_VARARGS|METH_KEYWORDS, 0},
   {"all_surfaces", (PyCFunction)__pyx_f_6Recode_5Outer_all_surfaces, METH_VARARGS|METH_KEYWORDS, 0},
   {"concise_charset", (PyCFunction)__pyx_f_6Recode_5Outer_concise_charset, METH_VARARGS|METH_KEYWORDS, 0},
@@ -1225,337 +1255,347 @@ PyMODINIT_FUNC initRecode(void) {
   if (!__pyx_b) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3; goto __pyx_L1;};
   if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3; goto __pyx_L1;};
   if (__Pyx_InternStrings(__pyx_intern_tab) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3; goto __pyx_L1;};
-  if (PyType_Ready(&__pyx_type_6Recode_Outer) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 563; goto __pyx_L1;}
-  if (PyObject_SetAttrString(__pyx_m, "Outer", (PyObject *)&__pyx_type_6Recode_Outer) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 563; goto __pyx_L1;}
+  if (PyType_Ready(&__pyx_type_6Recode_Outer) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 570; goto __pyx_L1;}
+  if (PyObject_SetAttrString(__pyx_m, "Outer", (PyObject *)&__pyx_type_6Recode_Outer) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 570; goto __pyx_L1;}
   __pyx_ptype_6Recode_Outer = &__pyx_type_6Recode_Outer;
-  if (PyType_Ready(&__pyx_type_6Recode_Request) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 619; goto __pyx_L1;}
-  if (PyObject_SetAttrString(__pyx_m, "Request", (PyObject *)&__pyx_type_6Recode_Request) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 619; goto __pyx_L1;}
+  if (PyType_Ready(&__pyx_type_6Recode_Request) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 629; goto __pyx_L1;}
+  if (PyObject_SetAttrString(__pyx_m, "Request", (PyObject *)&__pyx_type_6Recode_Request) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 629; goto __pyx_L1;}
   __pyx_ptype_6Recode_Request = &__pyx_type_6Recode_Request;
 
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":485 */
-  __pyx_1 = PyDict_New(); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 485; goto __pyx_L1;}
-  __pyx_2 = __Pyx_GetName(__pyx_b, __pyx_n_Exception); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 485; goto __pyx_L1;}
-  __pyx_3 = PyTuple_New(1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 485; goto __pyx_L1;}
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":489 */
+  __pyx_1 = PyDict_New(); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 489; goto __pyx_L1;}
+  __pyx_2 = __Pyx_GetName(__pyx_b, __pyx_n_Exception); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 489; goto __pyx_L1;}
+  __pyx_3 = PyTuple_New(1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 489; goto __pyx_L1;}
   PyTuple_SET_ITEM(__pyx_3, 0, __pyx_2);
   __pyx_2 = 0;
-  __pyx_2 = __Pyx_CreateClass(__pyx_3, __pyx_1, __pyx_n_error, "Recode"); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 485; goto __pyx_L1;}
+  __pyx_2 = __Pyx_CreateClass(__pyx_3, __pyx_1, __pyx_n_error, "Recode"); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 489; goto __pyx_L1;}
   Py_DECREF(__pyx_3); __pyx_3 = 0;
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_error, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 485; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_error, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 489; goto __pyx_L1;}
   Py_DECREF(__pyx_2); __pyx_2 = 0;
   Py_DECREF(__pyx_1); __pyx_1 = 0;
 
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":490 */
-  __pyx_3 = PyInt_FromLong(RECODE_NO_SYMBOL_TYPE); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 490; goto __pyx_L1;}
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_NO_SYMBOL_TYPE, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 490; goto __pyx_L1;}
-  Py_DECREF(__pyx_3); __pyx_3 = 0;
-
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":491 */
-  __pyx_2 = PyInt_FromLong(RECODE_CHARSET); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 491; goto __pyx_L1;}
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_CHARSET, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 491; goto __pyx_L1;}
-  Py_DECREF(__pyx_2); __pyx_2 = 0;
-
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":492 */
-  __pyx_1 = PyInt_FromLong(RECODE_DATA_SURFACE); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 492; goto __pyx_L1;}
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_DATA_SURFACE, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 492; goto __pyx_L1;}
-  Py_DECREF(__pyx_1); __pyx_1 = 0;
-
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":493 */
-  __pyx_3 = PyInt_FromLong(RECODE_TREE_SURFACE); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 493; goto __pyx_L1;}
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_TREE_SURFACE, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 493; goto __pyx_L1;}
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":494 */
+  __pyx_3 = PyInt_FromLong(RECODE_NO_SYMBOL_TYPE); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 494; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_NO_SYMBOL_TYPE, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 494; goto __pyx_L1;}
   Py_DECREF(__pyx_3); __pyx_3 = 0;
 
   /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":495 */
-  __pyx_2 = PyInt_FromLong(RECODE_NO_CHARSET_DATA); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 495; goto __pyx_L1;}
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_NO_CHARSET_DATA, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 495; goto __pyx_L1;}
+  __pyx_2 = PyInt_FromLong(RECODE_CHARSET); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 495; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_CHARSET, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 495; goto __pyx_L1;}
   Py_DECREF(__pyx_2); __pyx_2 = 0;
 
   /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":496 */
-  __pyx_1 = PyInt_FromLong(RECODE_STRIP_DATA); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 496; goto __pyx_L1;}
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_STRIP_DATA, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 496; goto __pyx_L1;}
+  __pyx_1 = PyInt_FromLong(RECODE_DATA_SURFACE); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 496; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_DATA_SURFACE, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 496; goto __pyx_L1;}
   Py_DECREF(__pyx_1); __pyx_1 = 0;
 
   /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":497 */
-  __pyx_3 = PyInt_FromLong(RECODE_EXPLODE_DATA); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 497; goto __pyx_L1;}
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_EXPLODE_DATA, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 497; goto __pyx_L1;}
+  __pyx_3 = PyInt_FromLong(RECODE_TREE_SURFACE); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 497; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_TREE_SURFACE, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 497; goto __pyx_L1;}
   Py_DECREF(__pyx_3); __pyx_3 = 0;
 
   /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":499 */
-  __pyx_2 = PyInt_FromLong(RECODE_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 499; goto __pyx_L1;}
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_SIZE_1, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 499; goto __pyx_L1;}
+  __pyx_2 = PyInt_FromLong(RECODE_NO_CHARSET_DATA); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 499; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_NO_CHARSET_DATA, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 499; goto __pyx_L1;}
   Py_DECREF(__pyx_2); __pyx_2 = 0;
 
   /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":500 */
-  __pyx_1 = PyInt_FromLong(RECODE_2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 500; goto __pyx_L1;}
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_SIZE_2, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 500; goto __pyx_L1;}
+  __pyx_1 = PyInt_FromLong(RECODE_STRIP_DATA); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 500; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_STRIP_DATA, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 500; goto __pyx_L1;}
   Py_DECREF(__pyx_1); __pyx_1 = 0;
 
   /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":501 */
-  __pyx_3 = PyInt_FromLong(RECODE_4); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 501; goto __pyx_L1;}
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_SIZE_4, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 501; goto __pyx_L1;}
+  __pyx_3 = PyInt_FromLong(RECODE_EXPLODE_DATA); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 501; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_EXPLODE_DATA, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 501; goto __pyx_L1;}
   Py_DECREF(__pyx_3); __pyx_3 = 0;
 
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":502 */
-  __pyx_2 = PyInt_FromLong(RECODE_N); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 502; goto __pyx_L1;}
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_SIZE_N, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 502; goto __pyx_L1;}
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":503 */
+  __pyx_2 = PyInt_FromLong(RECODE_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 503; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_SIZE_1, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 503; goto __pyx_L1;}
   Py_DECREF(__pyx_2); __pyx_2 = 0;
 
   /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":504 */
-  __pyx_1 = PyInt_FromLong(RECODE_NO_STEP_TABLE); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 504; goto __pyx_L1;}
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_NO_STEP_TABLE, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 504; goto __pyx_L1;}
+  __pyx_1 = PyInt_FromLong(RECODE_2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 504; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_SIZE_2, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 504; goto __pyx_L1;}
   Py_DECREF(__pyx_1); __pyx_1 = 0;
 
   /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":505 */
-  __pyx_3 = PyInt_FromLong(RECODE_BYTE_TO_BYTE); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 505; goto __pyx_L1;}
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_BYTE_TO_BYTE, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 505; goto __pyx_L1;}
+  __pyx_3 = PyInt_FromLong(RECODE_4); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 505; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_SIZE_4, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 505; goto __pyx_L1;}
   Py_DECREF(__pyx_3); __pyx_3 = 0;
 
   /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":506 */
-  __pyx_2 = PyInt_FromLong(RECODE_BYTE_TO_STRING); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 506; goto __pyx_L1;}
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_BYTE_TO_STRING, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 506; goto __pyx_L1;}
+  __pyx_2 = PyInt_FromLong(RECODE_N); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 506; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_SIZE_N, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 506; goto __pyx_L1;}
   Py_DECREF(__pyx_2); __pyx_2 = 0;
 
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":507 */
-  __pyx_1 = PyInt_FromLong(RECODE_UCS2_TO_BYTE); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 507; goto __pyx_L1;}
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_UCS2_TO_BYTE, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 507; goto __pyx_L1;}
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":508 */
+  __pyx_1 = PyInt_FromLong(RECODE_NO_STEP_TABLE); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 508; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_NO_STEP_TABLE, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 508; goto __pyx_L1;}
   Py_DECREF(__pyx_1); __pyx_1 = 0;
 
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":508 */
-  __pyx_3 = PyInt_FromLong(RECODE_UCS2_TO_STRING); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 508; goto __pyx_L1;}
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_UCS2_TO_STRING, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 508; goto __pyx_L1;}
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":509 */
+  __pyx_3 = PyInt_FromLong(RECODE_BYTE_TO_BYTE); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 509; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_BYTE_TO_BYTE, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 509; goto __pyx_L1;}
   Py_DECREF(__pyx_3); __pyx_3 = 0;
 
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":509 */
-  __pyx_2 = PyInt_FromLong(RECODE_STRING_TO_UCS2); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 509; goto __pyx_L1;}
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_STRING_TO_UCS2, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 509; goto __pyx_L1;}
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":510 */
+  __pyx_2 = PyInt_FromLong(RECODE_BYTE_TO_STRING); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 510; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_BYTE_TO_STRING, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 510; goto __pyx_L1;}
   Py_DECREF(__pyx_2); __pyx_2 = 0;
 
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":510 */
-  __pyx_1 = PyInt_FromLong(RECODE_COMBINE_EXPLODE); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 510; goto __pyx_L1;}
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_COMBINE_EXPLODE, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 510; goto __pyx_L1;}
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":511 */
+  __pyx_1 = PyInt_FromLong(RECODE_UCS2_TO_BYTE); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 511; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_UCS2_TO_BYTE, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 511; goto __pyx_L1;}
   Py_DECREF(__pyx_1); __pyx_1 = 0;
 
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":511 */
-  __pyx_3 = PyInt_FromLong(RECODE_COMBINE_STEP); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 511; goto __pyx_L1;}
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_COMBINE_STEP, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 511; goto __pyx_L1;}
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":512 */
+  __pyx_3 = PyInt_FromLong(RECODE_UCS2_TO_STRING); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 512; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_UCS2_TO_STRING, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 512; goto __pyx_L1;}
   Py_DECREF(__pyx_3); __pyx_3 = 0;
 
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":512 */
-  __pyx_2 = PyInt_FromLong(RECODE_EXPLODE_STEP); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 512; goto __pyx_L1;}
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_EXPLODE_STEP, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 512; goto __pyx_L1;}
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":513 */
+  __pyx_2 = PyInt_FromLong(RECODE_STRING_TO_UCS2); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 513; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_STRING_TO_UCS2, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 513; goto __pyx_L1;}
   Py_DECREF(__pyx_2); __pyx_2 = 0;
 
   /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":514 */
-  __pyx_1 = PyInt_FromLong(RECODE_STRATEGY_UNDECIDED); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 514; goto __pyx_L1;}
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_STRATEGY_UNDECIDED, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 514; goto __pyx_L1;}
+  __pyx_1 = PyInt_FromLong(RECODE_COMBINE_EXPLODE); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 514; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_COMBINE_EXPLODE, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 514; goto __pyx_L1;}
   Py_DECREF(__pyx_1); __pyx_1 = 0;
 
   /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":515 */
-  __pyx_3 = PyInt_FromLong(RECODE_SEQUENCE_IN_MEMORY); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 515; goto __pyx_L1;}
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_SEQUENCE_IN_MEMORY, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 515; goto __pyx_L1;}
+  __pyx_3 = PyInt_FromLong(RECODE_COMBINE_STEP); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 515; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_COMBINE_STEP, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 515; goto __pyx_L1;}
   Py_DECREF(__pyx_3); __pyx_3 = 0;
 
   /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":516 */
-  __pyx_2 = PyInt_FromLong(RECODE_SEQUENCE_WITH_FILES); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 516; goto __pyx_L1;}
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_SEQUENCE_WITH_FILES, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 516; goto __pyx_L1;}
+  __pyx_2 = PyInt_FromLong(RECODE_EXPLODE_STEP); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 516; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_EXPLODE_STEP, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 516; goto __pyx_L1;}
   Py_DECREF(__pyx_2); __pyx_2 = 0;
 
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":517 */
-  __pyx_1 = PyInt_FromLong(RECODE_SEQUENCE_WITH_PIPE); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 517; goto __pyx_L1;}
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_SEQUENCE_WITH_PIPE, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 517; goto __pyx_L1;}
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":518 */
+  __pyx_1 = PyInt_FromLong(RECODE_STRATEGY_UNDECIDED); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 518; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_STRATEGY_UNDECIDED, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 518; goto __pyx_L1;}
   Py_DECREF(__pyx_1); __pyx_1 = 0;
 
   /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":519 */
-  __pyx_3 = PyInt_FromLong(RECODE_SWAP_UNDECIDED); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 519; goto __pyx_L1;}
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_SWAP_UNDECIDED, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 519; goto __pyx_L1;}
+  __pyx_3 = PyInt_FromLong(RECODE_SEQUENCE_IN_MEMORY); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 519; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_SEQUENCE_IN_MEMORY, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 519; goto __pyx_L1;}
   Py_DECREF(__pyx_3); __pyx_3 = 0;
 
   /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":520 */
-  __pyx_2 = PyInt_FromLong(RECODE_SWAP_NO); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 520; goto __pyx_L1;}
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_SWAP_NO, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 520; goto __pyx_L1;}
+  __pyx_2 = PyInt_FromLong(RECODE_SEQUENCE_WITH_FILES); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 520; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_SEQUENCE_WITH_FILES, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 520; goto __pyx_L1;}
   Py_DECREF(__pyx_2); __pyx_2 = 0;
 
   /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":521 */
-  __pyx_1 = PyInt_FromLong(RECODE_SWAP_YES); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 521; goto __pyx_L1;}
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_SWAP_YES, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 521; goto __pyx_L1;}
+  __pyx_1 = PyInt_FromLong(RECODE_SEQUENCE_WITH_PIPE); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 521; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_SEQUENCE_WITH_PIPE, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 521; goto __pyx_L1;}
   Py_DECREF(__pyx_1); __pyx_1 = 0;
 
   /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":523 */
-  __pyx_3 = PyInt_FromLong(RECODE_NO_ERROR); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 523; goto __pyx_L1;}
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_NO_ERROR, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 523; goto __pyx_L1;}
+  __pyx_3 = PyInt_FromLong(RECODE_SWAP_UNDECIDED); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 523; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_SWAP_UNDECIDED, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 523; goto __pyx_L1;}
   Py_DECREF(__pyx_3); __pyx_3 = 0;
 
   /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":524 */
-  __pyx_2 = PyInt_FromLong(RECODE_NOT_CANONICAL); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 524; goto __pyx_L1;}
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_NOT_CANONICAL, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 524; goto __pyx_L1;}
+  __pyx_2 = PyInt_FromLong(RECODE_SWAP_NO); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 524; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_SWAP_NO, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 524; goto __pyx_L1;}
   Py_DECREF(__pyx_2); __pyx_2 = 0;
 
   /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":525 */
-  __pyx_1 = PyInt_FromLong(RECODE_AMBIGUOUS_OUTPUT); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 525; goto __pyx_L1;}
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_AMBIGUOUS_OUTPUT, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 525; goto __pyx_L1;}
+  __pyx_1 = PyInt_FromLong(RECODE_SWAP_YES); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 525; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_SWAP_YES, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 525; goto __pyx_L1;}
   Py_DECREF(__pyx_1); __pyx_1 = 0;
 
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":526 */
-  __pyx_3 = PyInt_FromLong(RECODE_UNTRANSLATABLE); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 526; goto __pyx_L1;}
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_UNTRANSLATABLE, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 526; goto __pyx_L1;}
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":527 */
+  __pyx_3 = PyInt_FromLong(RECODE_NO_ERROR); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 527; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_NO_ERROR, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 527; goto __pyx_L1;}
   Py_DECREF(__pyx_3); __pyx_3 = 0;
 
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":527 */
-  __pyx_2 = PyInt_FromLong(RECODE_INVALID_INPUT); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 527; goto __pyx_L1;}
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_INVALID_INPUT, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 527; goto __pyx_L1;}
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":528 */
+  __pyx_2 = PyInt_FromLong(RECODE_NOT_CANONICAL); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 528; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_NOT_CANONICAL, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 528; goto __pyx_L1;}
   Py_DECREF(__pyx_2); __pyx_2 = 0;
 
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":528 */
-  __pyx_1 = PyInt_FromLong(RECODE_SYSTEM_ERROR); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 528; goto __pyx_L1;}
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_SYSTEM_ERROR, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 528; goto __pyx_L1;}
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":529 */
+  __pyx_1 = PyInt_FromLong(RECODE_AMBIGUOUS_OUTPUT); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 529; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_AMBIGUOUS_OUTPUT, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 529; goto __pyx_L1;}
   Py_DECREF(__pyx_1); __pyx_1 = 0;
 
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":529 */
-  __pyx_3 = PyInt_FromLong(RECODE_USER_ERROR); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 529; goto __pyx_L1;}
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_USER_ERROR, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 529; goto __pyx_L1;}
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":530 */
+  __pyx_3 = PyInt_FromLong(RECODE_UNTRANSLATABLE); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 530; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_UNTRANSLATABLE, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 530; goto __pyx_L1;}
   Py_DECREF(__pyx_3); __pyx_3 = 0;
 
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":530 */
-  __pyx_2 = PyInt_FromLong(RECODE_INTERNAL_ERROR); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 530; goto __pyx_L1;}
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_INTERNAL_ERROR, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 530; goto __pyx_L1;}
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":531 */
+  __pyx_2 = PyInt_FromLong(RECODE_INVALID_INPUT); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 531; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_INVALID_INPUT, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 531; goto __pyx_L1;}
   Py_DECREF(__pyx_2); __pyx_2 = 0;
 
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":531 */
-  __pyx_1 = PyInt_FromLong(RECODE_MAXIMUM_ERROR); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 531; goto __pyx_L1;}
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_MAXIMUM_ERROR, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 531; goto __pyx_L1;}
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":532 */
+  __pyx_1 = PyInt_FromLong(RECODE_SYSTEM_ERROR); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 532; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_SYSTEM_ERROR, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 532; goto __pyx_L1;}
   Py_DECREF(__pyx_1); __pyx_1 = 0;
 
   /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":533 */
-  __pyx_3 = PyInt_FromLong(RECODE_NO_FORMAT); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 533; goto __pyx_L1;}
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_NO_FORMAT, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 533; goto __pyx_L1;}
+  __pyx_3 = PyInt_FromLong(RECODE_USER_ERROR); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 533; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_USER_ERROR, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 533; goto __pyx_L1;}
   Py_DECREF(__pyx_3); __pyx_3 = 0;
 
   /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":534 */
-  __pyx_2 = PyInt_FromLong(RECODE_DECIMAL_FORMAT); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 534; goto __pyx_L1;}
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_DECIMAL_FORMAT, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 534; goto __pyx_L1;}
+  __pyx_2 = PyInt_FromLong(RECODE_INTERNAL_ERROR); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 534; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_INTERNAL_ERROR, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 534; goto __pyx_L1;}
   Py_DECREF(__pyx_2); __pyx_2 = 0;
 
   /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":535 */
-  __pyx_1 = PyInt_FromLong(RECODE_OCTAL_FORMAT); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 535; goto __pyx_L1;}
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_OCTAL_FORMAT, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 535; goto __pyx_L1;}
+  __pyx_1 = PyInt_FromLong(RECODE_MAXIMUM_ERROR); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 535; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_MAXIMUM_ERROR, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 535; goto __pyx_L1;}
   Py_DECREF(__pyx_1); __pyx_1 = 0;
 
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":536 */
-  __pyx_3 = PyInt_FromLong(RECODE_HEXADECIMAL_FORMAT); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 536; goto __pyx_L1;}
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_HEXADECIMAL_FORMAT, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 536; goto __pyx_L1;}
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":537 */
+  __pyx_3 = PyInt_FromLong(RECODE_NO_FORMAT); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 537; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_NO_FORMAT, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 537; goto __pyx_L1;}
   Py_DECREF(__pyx_3); __pyx_3 = 0;
 
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":537 */
-  __pyx_2 = PyInt_FromLong(RECODE_FULL_FORMAT); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 537; goto __pyx_L1;}
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_FULL_FORMAT, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 537; goto __pyx_L1;}
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":538 */
+  __pyx_2 = PyInt_FromLong(RECODE_DECIMAL_FORMAT); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 538; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_DECIMAL_FORMAT, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 538; goto __pyx_L1;}
   Py_DECREF(__pyx_2); __pyx_2 = 0;
 
   /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":539 */
-  __pyx_1 = PyInt_FromLong(RECODE_NO_LANGUAGE); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 539; goto __pyx_L1;}
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_NO_LANGUAGE, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 539; goto __pyx_L1;}
+  __pyx_1 = PyInt_FromLong(RECODE_OCTAL_FORMAT); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 539; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_OCTAL_FORMAT, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 539; goto __pyx_L1;}
   Py_DECREF(__pyx_1); __pyx_1 = 0;
 
   /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":540 */
-  __pyx_3 = PyInt_FromLong(RECODE_LANGUAGE_C); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 540; goto __pyx_L1;}
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_LANGUAGE_C, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 540; goto __pyx_L1;}
+  __pyx_3 = PyInt_FromLong(RECODE_HEXADECIMAL_FORMAT); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 540; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_HEXADECIMAL_FORMAT, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 540; goto __pyx_L1;}
   Py_DECREF(__pyx_3); __pyx_3 = 0;
 
   /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":541 */
-  __pyx_2 = PyInt_FromLong(RECODE_LANGUAGE_PERL); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 541; goto __pyx_L1;}
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_LANGUAGE_PERL, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 541; goto __pyx_L1;}
+  __pyx_2 = PyInt_FromLong(RECODE_FULL_FORMAT); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 541; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_FULL_FORMAT, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 541; goto __pyx_L1;}
   Py_DECREF(__pyx_2); __pyx_2 = 0;
 
   /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":543 */
-  __pyx_1 = PyInt_FromLong(NUL); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 543; goto __pyx_L1;}
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_NUL, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 543; goto __pyx_L1;}
+  __pyx_1 = PyInt_FromLong(RECODE_NO_LANGUAGE); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 543; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_NO_LANGUAGE, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 543; goto __pyx_L1;}
   Py_DECREF(__pyx_1); __pyx_1 = 0;
 
   /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":544 */
-  __pyx_3 = PyInt_FromLong(STRIP_SIZE); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 544; goto __pyx_L1;}
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_STRIP_SIZE, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 544; goto __pyx_L1;}
+  __pyx_3 = PyInt_FromLong(RECODE_LANGUAGE_C); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 544; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_LANGUAGE_C, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 544; goto __pyx_L1;}
   Py_DECREF(__pyx_3); __pyx_3 = 0;
 
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":546 */
-  __pyx_2 = PyInt_FromLong(SYMBOL_CREATE_CHARSET); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 546; goto __pyx_L1;}
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_SYMBOL_CREATE_CHARSET, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 546; goto __pyx_L1;}
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":545 */
+  __pyx_2 = PyInt_FromLong(RECODE_LANGUAGE_PERL); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 545; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_LANGUAGE_PERL, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 545; goto __pyx_L1;}
   Py_DECREF(__pyx_2); __pyx_2 = 0;
 
   /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":547 */
-  __pyx_1 = PyInt_FromLong(SYMBOL_CREATE_DATA_SURFACE); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 547; goto __pyx_L1;}
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_SYMBOL_CREATE_DATA_SURFACE, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 547; goto __pyx_L1;}
+  __pyx_1 = PyInt_FromLong(NUL); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 547; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_NUL, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 547; goto __pyx_L1;}
   Py_DECREF(__pyx_1); __pyx_1 = 0;
 
   /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":548 */
-  __pyx_3 = PyInt_FromLong(SYMBOL_CREATE_TREE_SURFACE); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 548; goto __pyx_L1;}
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_SYMBOL_CREATE_TREE_SURFACE, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 548; goto __pyx_L1;}
+  __pyx_3 = PyInt_FromLong(STRIP_SIZE); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 548; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_STRIP_SIZE, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 548; goto __pyx_L1;}
   Py_DECREF(__pyx_3); __pyx_3 = 0;
 
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":549 */
-  __pyx_2 = PyInt_FromLong(ALIAS_FIND_AS_CHARSET); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 549; goto __pyx_L1;}
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_ALIAS_FIND_AS_CHARSET, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 549; goto __pyx_L1;}
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":550 */
+  __pyx_2 = PyInt_FromLong(SYMBOL_CREATE_CHARSET); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 550; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_SYMBOL_CREATE_CHARSET, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 550; goto __pyx_L1;}
   Py_DECREF(__pyx_2); __pyx_2 = 0;
 
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":550 */
-  __pyx_1 = PyInt_FromLong(ALIAS_FIND_AS_SURFACE); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 550; goto __pyx_L1;}
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_ALIAS_FIND_AS_SURFACE, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 550; goto __pyx_L1;}
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":551 */
+  __pyx_1 = PyInt_FromLong(SYMBOL_CREATE_DATA_SURFACE); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 551; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_SYMBOL_CREATE_DATA_SURFACE, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 551; goto __pyx_L1;}
   Py_DECREF(__pyx_1); __pyx_1 = 0;
 
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":551 */
-  __pyx_3 = PyInt_FromLong(ALIAS_FIND_AS_EITHER); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 551; goto __pyx_L1;}
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_ALIAS_FIND_AS_EITHER, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 551; goto __pyx_L1;}
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":552 */
+  __pyx_3 = PyInt_FromLong(SYMBOL_CREATE_TREE_SURFACE); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 552; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_SYMBOL_CREATE_TREE_SURFACE, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 552; goto __pyx_L1;}
   Py_DECREF(__pyx_3); __pyx_3 = 0;
 
   /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":553 */
-  __pyx_2 = PyInt_FromLong(DONE); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 553; goto __pyx_L1;}
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_xDONE, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 553; goto __pyx_L1;}
+  __pyx_2 = PyInt_FromLong(ALIAS_FIND_AS_CHARSET); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 553; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_ALIAS_FIND_AS_CHARSET, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 553; goto __pyx_L1;}
   Py_DECREF(__pyx_2); __pyx_2 = 0;
 
   /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":554 */
-  __pyx_1 = PyInt_FromLong(ELSE); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 554; goto __pyx_L1;}
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_xELSE, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 554; goto __pyx_L1;}
+  __pyx_1 = PyInt_FromLong(ALIAS_FIND_AS_SURFACE); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 554; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_ALIAS_FIND_AS_SURFACE, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 554; goto __pyx_L1;}
   Py_DECREF(__pyx_1); __pyx_1 = 0;
 
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":556 */
-  __pyx_3 = PyInt_FromLong(REPLACEMENT_CHARACTER); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 556; goto __pyx_L1;}
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_REPLACEMENT_CHARACTER, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 556; goto __pyx_L1;}
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":555 */
+  __pyx_3 = PyInt_FromLong(ALIAS_FIND_AS_EITHER); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 555; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_ALIAS_FIND_AS_EITHER, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 555; goto __pyx_L1;}
   Py_DECREF(__pyx_3); __pyx_3 = 0;
 
   /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":557 */
-  __pyx_2 = PyInt_FromLong(NOT_A_CHARACTER); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 557; goto __pyx_L1;}
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_NOT_A_CHARACTER, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 557; goto __pyx_L1;}
+  __pyx_2 = PyInt_FromLong(DONE); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 557; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_xDONE, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 557; goto __pyx_L1;}
   Py_DECREF(__pyx_2); __pyx_2 = 0;
 
   /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":558 */
-  __pyx_1 = PyInt_FromLong(BYTE_ORDER_MARK); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 558; goto __pyx_L1;}
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_BYTE_ORDER_MARK, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 558; goto __pyx_L1;}
+  __pyx_1 = PyInt_FromLong(ELSE); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 558; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_xELSE, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 558; goto __pyx_L1;}
   Py_DECREF(__pyx_1); __pyx_1 = 0;
 
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":559 */
-  __pyx_3 = PyInt_FromLong(BYTE_ORDER_MARK_SWAPPED); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 559; goto __pyx_L1;}
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_BYTE_ORDER_MARK_SWAPPED, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 559; goto __pyx_L1;}
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":560 */
+  __pyx_3 = PyInt_FromLong(REPLACEMENT_CHARACTER); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_REPLACEMENT_CHARACTER, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; goto __pyx_L1;}
   Py_DECREF(__pyx_3); __pyx_3 = 0;
 
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":561 */
+  __pyx_2 = PyInt_FromLong(NOT_A_CHARACTER); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 561; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_NOT_A_CHARACTER, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 561; goto __pyx_L1;}
+  Py_DECREF(__pyx_2); __pyx_2 = 0;
+
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":562 */
+  __pyx_1 = PyInt_FromLong(BYTE_ORDER_MARK); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 562; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_BYTE_ORDER_MARK, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 562; goto __pyx_L1;}
+  Py_DECREF(__pyx_1); __pyx_1 = 0;
+
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":563 */
+  __pyx_3 = PyInt_FromLong(BYTE_ORDER_MARK_SWAPPED); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 563; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_BYTE_ORDER_MARK_SWAPPED, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 563; goto __pyx_L1;}
+  Py_DECREF(__pyx_3); __pyx_3 = 0;
+
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":565 */
+  __pyx_2 = PyInt_FromLong(RECODE_AUTO_ABORT_FLAG); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 565; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_AUTO_ABORT_FLAG, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 565; goto __pyx_L1;}
+  Py_DECREF(__pyx_2); __pyx_2 = 0;
+
   /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":566 */
-  __pyx_2 = __Pyx_GetName(__pyx_b, __pyx_n_False); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 566; goto __pyx_L1;}
-  __pyx_k2 = __pyx_2;
+  __pyx_1 = PyInt_FromLong(RECODE_NO_ICONV_FLAG); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 566; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_NO_ICONV_FLAG, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 566; goto __pyx_L1;}
+  Py_DECREF(__pyx_1); __pyx_1 = 0;
+
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":573 */
+  __pyx_3 = __Pyx_GetName(__pyx_b, __pyx_n_False); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 573; goto __pyx_L1;}
+  __pyx_k2 = __pyx_3;
+  __pyx_3 = 0;
+  __pyx_2 = __Pyx_GetName(__pyx_b, __pyx_n_False); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 573; goto __pyx_L1;}
+  __pyx_k3 = __pyx_2;
   __pyx_2 = 0;
-  __pyx_1 = __Pyx_GetName(__pyx_b, __pyx_n_False); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 566; goto __pyx_L1;}
-  __pyx_k3 = __pyx_1;
+  __pyx_1 = __Pyx_GetName(__pyx_b, __pyx_n_False); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 573; goto __pyx_L1;}
+  __pyx_k4 = __pyx_1;
   __pyx_1 = 0;
-  __pyx_3 = __Pyx_GetName(__pyx_b, __pyx_n_False); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 566; goto __pyx_L1;}
-  __pyx_k4 = __pyx_3;
-  __pyx_3 = 0;
 
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":607 */
-  __pyx_4 = __Pyx_GetName(__pyx_m, __pyx_n_NO_FORMAT); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 607; goto __pyx_L1;}
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":617 */
+  __pyx_4 = __Pyx_GetName(__pyx_m, __pyx_n_NO_FORMAT); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 617; goto __pyx_L1;}
   __pyx_k5 = __pyx_4;
   __pyx_4 = 0;
 
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":680 */
-  __pyx_5 = PyObject_CallObject(((PyObject*)__pyx_ptype_6Recode_Outer), 0); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 680; goto __pyx_L1;}
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_global_outer, __pyx_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 680; goto __pyx_L1;}
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":690 */
+  __pyx_5 = PyObject_CallObject(((PyObject*)__pyx_ptype_6Recode_Outer), 0); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 690; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_global_outer, __pyx_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 690; goto __pyx_L1;}
   Py_DECREF(__pyx_5); __pyx_5 = 0;
 
-  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":682 */
+  /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":692 */
   return;
   __pyx_L1:;
   Py_XDECREF(__pyx_1);
index 01f92d8c4090531291718f64f1f3e56b65576d96..1cd86a506c0771a6100c0d26ac5c38228913ef69 100644 (file)
@@ -372,6 +372,10 @@ cdef extern from "common.h":
     bool transform_with_iconv 'librecode_transform_with_iconv' (
             RECODE_SUBTASK)
 
+    # localcharset.c
+
+    char *locale_charset 'librecode_locale_charset' ()
+
     # mixed.c
 
     bool transform_c_source 'librecode_transform_c_source' (
@@ -558,18 +562,21 @@ NOT_A_CHARACTER = NOT_A_CHARACTER_
 BYTE_ORDER_MARK = BYTE_ORDER_MARK_
 BYTE_ORDER_MARK_SWAPPED = BYTE_ORDER_MARK_SWAPPED_
 
+AUTO_ABORT_FLAG = RECODE_AUTO_ABORT_FLAG
+NO_ICONV_FLAG = RECODE_NO_ICONV_FLAG
+
 ## Recode library at OUTER level.
 
 cdef class Outer:
     cdef RECODE_OUTER outer
 
-    def __init__(self, strict=False, auto_abort=False, no_iconv=False):
+    def __init__(self, auto_abort=False, iconv=False, strict=False):
         cdef int flags
         cdef RECODE_SINGLE single
         flags = 0
         if auto_abort:
             flags = flags | RECODE_AUTO_ABORT_FLAG
-        if no_iconv:
+        if noiconv:
             flags = flags | RECODE_NO_ICONV_FLAG
         self.outer = recode_new_outer(flags)
         if strict:
@@ -581,6 +588,9 @@ cdef class Outer:
     def __dealloc__(self):
         recode_delete_outer(self.outer)
 
+    def default_charset(self):
+        return locale_charset()
+
     def all_charsets(self):
         list = []
         cdef RECODE_SYMBOL symbol
index ae8bab2ec1ade6b9a85fec46cd58a5ecce507941..547bb7d32792fc9facafaab867d96629edd71ee3 100644 (file)
@@ -58,7 +58,8 @@ def assert_or_diff(output, expected):
 def external_output(command):
     if not recode_program:
         py.test.skip()
-    return os.popen(command.replace('$R', recode_program), 'rb').read()
+    command = command.replace('$R', recode_program + ' --ignore=:iconv:')
+    return os.popen(command, 'rb').read()
 
 def recode_output(input):
     if run.external:
index 0832fcfe0e0d4933cdce067700817a32784c61b3..3402235d863d99bec22eea9d2fa9ea045308d578 100644 (file)
@@ -24,35 +24,24 @@ expected = '''\
 /test8
 /test15
 /test16
-:iconv: :
 AFRFUL-102-BPI_OCIL bambara bra ewondo fulfulde
 AFRFUL-103-BPI_OCIL t-bambara t-bra t-ewondo t-fulfulde
 AFRL1-101-BPI_OCIL t-fra t-francais
 AFRLIN-104-BPI_OCIL lin lingala sango wolof
 AFRLIN-105-BPI_OCIL t-lin t-lingala t-sango t-wolof
-ANSI_X3.4-1968 367/CR-LF ANSI_X3.4-1986 ASCII CP367/CR-LF csASCII IBM367/CR-LF ISO646-US ISO646.1991-IRV iso-ir-6 ISO_646.irv:1991 us US-ASCII
+ANSI_X3.4-1968 367/CR-LF ANSI_X3.4-1986 ASCII CP367/CR-LF IBM367/CR-LF ISO646-US iso-ir-6 ISO_646.irv:1991 us US-ASCII
 Apple-Mac/CR
-ARMSCII-8
 ASCII-BS BS
 ASMO_449 arabic7 iso-ir-89 ISO_9036
 AtariST
 baltic iso-ir-179
 Bang-Bang
-BIG5 BIG-5 BIG-FIVE BIGFIVE CN-BIG5 csBig5
-BIG5HKSCS
 BS_4730 gb ISO646-GB iso-ir-4 uk
 BS_viewdata iso-ir-47
 CDC-NOS NOS
-CHAR
 combined-UCS-2 co
 CORK T1
 count-characters
-CP866 866 csIBM866 IBM866
-CP874 WINDOWS-874
-CP932
-CP949 UHC
-CP950
-CP1133 IBM-CP1133
 CP1250/CR-LF 1250/CR-LF ms-ee windows-1250
 CP1251/CR-LF 1251/CR-LF ms-cyrl windows-1251
 CP1252/CR-LF 1252/CR-LF ms-ansi windows-1252
@@ -61,7 +50,6 @@ CP1254/CR-LF 1254/CR-LF ms-turk windows-1254
 CP1255/CR-LF 1255/CR-LF ms-hebr windows-1255
 CP1256/CR-LF 1256/CR-LF ms-arab windows-1256
 CP1257/CR-LF 1257/CR-LF WinBaltRim windows-1257
-CP1258 WINDOWS-1258
 CSA_Z243.4-1985-1 ca csa7-1 ISO646-CA iso-ir-121
 CSA_Z243.4-1985-2 csa7-2 ISO646-CA2 iso-ir-122
 CSA_Z243.4-1985-gr iso-ir-123
@@ -94,28 +82,18 @@ EBCDIC-US
 ECMA-cyrillic ECMA-113 ECMA-113:1986 iso-ir-111
 ES ISO646-ES iso-ir-17
 ES2 ISO646-ES2 iso-ir-85
-EUC-CN CN-GB csGB2312 EUCCN EUC_CN GB2312
-EUC-JP csEUCPkdFmtJapanese EUCJP EUC_JP Extended_UNIX_Code_Packed_Format_for_Japanese
-EUC-KR csEUCKR EUCKR EUC_KR
-EUC-TW csEUCTW EUCTW EUC_TW
 flat
-GB18030
-GBK CP936
-GB_1988-80 cn csISO57GB1988 ISO646-CN iso-ir-57
-GB_2312-80 CHINESE csISO58GB231280 GB2312.1980-0 ISO-IR-58
-Georgian-Academy
-Georgian-PS
+GB_1988-80 cn ISO646-CN iso-ir-57
 GOST_19768-87 iso-ir-153 ST_SEV_358-88
 greek7 iso-ir-88
 greek7-old iso-ir-18
 greek-ccitt iso-ir-150
-hp-roman8 csHPRoman8 r8 roman8
+hp-roman8 r8 roman8
 HTML-i18n 2070 RFC2070
 HTML_1.1 h1
 HTML_2.0 1866 h2 RFC1866
 HTML_3.2 h3
 HTML_4.0 h h4 HTML
-HZ HZ-GB-2312
 IBM037/CR-LF 037/CR-LF CP037/CR-LF ebcdic-cp-ca ebcdic-cp-nl ebcdic-cp-us ebcdic-cp-wt
 IBM038/CR-LF 038/CR-LF CP038/CR-LF EBCDIC-INT
 IBM256/CR-LF 256/CR-LF CP256/CR-LF EBCDIC-INT1
@@ -135,7 +113,7 @@ IBM423/CR-LF 423/CR-LF CP423/CR-LF ebcdic-cp-gr
 IBM424/CR-LF 424/CR-LF CP424/CR-LF ebcdic-cp-he
 IBM437/CR-LF 437/CR-LF CP437/CR-LF
 IBM500/CR-LF 500/CR-LF 500V1 CP500/CR-LF ebcdic-cp-be ebcdic-cp-ch
-IBM850/CR-LF 850/CR-LF CP850/CR-LF csPC850Multilingual
+IBM850/CR-LF 850/CR-LF CP850/CR-LF
 IBM851/CR-LF 851/CR-LF CP851/CR-LF
 IBM852/CR-LF 852/CR-LF CP852/CR-LF pcl2 pclatin2
 IBM855/CR-LF 855/CR-LF CP855/CR-LF
@@ -167,29 +145,21 @@ INIS iso-ir-49
 INIS-8 iso-ir-50
 INIS-cyrillic iso-ir-51
 INVARIANT iso-ir-170
-ISO-2022-CN csISO2022CN ISO2022CN
-ISO-2022-CN-EXT
-ISO-2022-JP csISO2022JP ISO2022JP
-ISO-2022-JP-1
-ISO-2022-JP-2 csISO2022JP2
-ISO-2022-KR csISO2022KR ISO2022KR
-ISO-8859-1 819/CR-LF CP819/CR-LF csISOLatin1 IBM819/CR-LF ISO8859-1 iso-ir-100 ISO_8859-1 ISO_8859-1:1987 l1 lat1 latin1 Latin-1
-ISO-8859-2 912/CR-LF CP912/CR-LF csISOLatin2 IBM912/CR-LF ISO8859-2 iso-ir-101 ISO_8859-2 ISO_8859-2:1987 l2 latin2
-ISO-8859-3 csISOLatin3 ISO8859-3 iso-ir-109 ISO_8859-3 ISO_8859-3:1988 l3 latin3
-ISO-8859-4 csISOLatin4 ISO8859-4 iso-ir-110 ISO_8859-4 ISO_8859-4:1988 l4 latin4
-ISO-8859-5 csISOLatinCyrillic cyrillic ISO8859-5 iso-ir-144 ISO_8859-5 ISO_8859-5:1988
-ISO-8859-6 arabic ASMO-708 csISOLatinArabic ECMA-114 ISO8859-6 iso-ir-127 ISO_8859-6 ISO_8859-6:1987
-ISO-8859-7 csISOLatinGreek ECMA-118 ELOT_928 greek greek8 ISO8859-7 iso-ir-126 ISO_8859-7 ISO_8859-7:1987
-ISO-8859-8 csISOLatinHebrew hebrew ISO8859-8 iso-ir-138 ISO_8859-8 ISO_8859-8:1988
-ISO-8859-9 csISOLatin5 ISO8859-9 iso-ir-148 ISO_8859-9 ISO_8859-9:1989 l5 latin5
-ISO-8859-10 csISOLatin6 ISO8859-10 iso-ir-157 ISO_8859-10 ISO_8859-10:1992 ISO_8859-10:1993 L6 latin6
-ISO-8859-13 ISO8859-13 iso-baltic ISO-IR-179 iso-ir-179a ISO_8859-13 ISO_8859-13:1998 l7 latin7
+ISO-8859-1 819/CR-LF CP819/CR-LF IBM819/CR-LF ISO8859-1 iso-ir-100 ISO_8859-1 ISO_8859-1:1987 l1 lat1 latin1 Latin-1
+ISO-8859-2 912/CR-LF CP912/CR-LF IBM912/CR-LF ISO8859-2 iso-ir-101 ISO_8859-2 ISO_8859-2:1987 l2 latin2
+ISO-8859-3 ISO8859-3 iso-ir-109 ISO_8859-3 ISO_8859-3:1988 l3 latin3
+ISO-8859-4 ISO8859-4 iso-ir-110 ISO_8859-4 ISO_8859-4:1988 l4 latin4
+ISO-8859-5 cyrillic ISO8859-5 iso-ir-144 ISO_8859-5 ISO_8859-5:1988
+ISO-8859-6 arabic ASMO-708 ECMA-114 ISO8859-6 iso-ir-127 ISO_8859-6 ISO_8859-6:1987
+ISO-8859-7 ECMA-118 ELOT_928 greek greek8 ISO8859-7 iso-ir-126 ISO_8859-7 ISO_8859-7:1987
+ISO-8859-8 hebrew ISO8859-8 iso-ir-138 ISO_8859-8 ISO_8859-8:1988
+ISO-8859-9 ISO8859-9 iso-ir-148 ISO_8859-9 ISO_8859-9:1989 l5 latin5
+ISO-8859-10 ISO8859-10 iso-ir-157 ISO_8859-10 ISO_8859-10:1993 L6 latin6
+ISO-8859-13 ISO8859-13 iso-baltic iso-ir-179a ISO_8859-13 ISO_8859-13:1998 l7 latin7
 ISO-8859-14 ISO8859-14 iso-celtic iso-ir-199 ISO_8859-14 ISO_8859-14:1998 l8 latin8
 ISO-8859-15 ISO8859-15 iso-ir-203 ISO_8859-15 ISO_8859-15:1998 l9 latin9
-ISO-8859-16 ISO-IR-226 ISO_8859-16 ISO_8859-16:2000
-ISO-10646-UCS-2 BMP csUnicode csUnicode11 rune u2 UCS-2 UCS-2BE UNICODE-1-1 UNICODEBIG
-ISO-10646-UCS-4 10646 csUCS4 ISO_10646 u4 UCS UCS-4
-ISO-IR-165 CN-GB-ISOIR165
+ISO-10646-UCS-2 BMP rune u2 UCS-2 UNICODE-1-1
+ISO-10646-UCS-4 10646 ISO_10646 u4 UCS UCS-4
 ISO_646.basic ISO_646.basic:1983 ref
 ISO_646.irv irv iso-ir-2 ISO_646.irv:1983
 ISO_2033-1983 e13b iso-ir-98
@@ -200,51 +170,34 @@ ISO_6937-2-25 iso-ir-152
 ISO_8859-supp iso-ir-154 latin1-2-5
 ISO_10367-box iso-ir-155
 IT ISO646-IT iso-ir-15
-JAVA
 JIS_C6220-1969-jp iso-ir-13 JIS_C6220-1969 katakana x0201-7
-JIS_C6220-1969-ro csISO14JISC6220ro ISO646-JP iso-ir-14 jp
+JIS_C6220-1969-ro ISO646-JP iso-ir-14 jp
 JIS_C6229-1984-a jp-ocr-a
 JIS_C6229-1984-b ISO646-JP-OCR-B jp-ocr-b
 JIS_C6229-1984-b-add iso-ir-93 jp-ocr-b-add
 JIS_C6229-1984-hand iso-ir-94 jp-ocr-hand
 JIS_C6229-1984-hand-add iso-ir-95 jp-ocr-hand-add
 JIS_C6229-1984-kana iso-ir-96
-JIS_X0201 csHalfWidthKatakana JIS0201 JISX0201-1976 JISX0201.1976-0 X0201
-JIS_X0208 csISO87JISX0208 ISO-IR-87 JIS0208 JISX0208.1983-0 JISX0208.1990-0 JIS_X0208-1983 JIS_X0208-1990 X0208
-JIS_X0212 csISO159JISX02121990 ISO-IR-159 JIS0212 JISX0212.1990-0 JIS_X0212-1990 JIS_X0212.1990-0 X0212
-JOHAB CP1361
+JIS_X0201 X0201
 JUS_I.B1.002 ISO646-YU iso-ir-141 js yu
 JUS_I.B1.003-mac iso-ir-147 macedonian
 JUS_I.B1.003-serb iso-ir-146 serbian
 KEYBCS2 Kamenicky
-KOI8-R csKOI8R
+KOI8-R
 KOI8-RU
 KOI8-U
 KOI-7
 KOI-8 GOST_19768-74
 KOI-8_CS2
 KSC5636 ISO646-KR
-KSC_5601 csKSC56011987 ISO-IR-149 KOREAN KSC5601.1987-0 KSX1001:1992 KS_C_5601-1987 KS_C_5601-1989
 LaTeX ltex TeX
 latin-greek iso-ir-19
 Latin-greek-1 iso-ir-27
 mac-is
-MacArabic
-MacCentralEurope
-MacCroatian
-MacCyrillic
-MacGreek
-MacHebrew
-MacIceland
-macintosh/CR csMacintosh mac/CR MacRoman
+macintosh/CR mac/CR
 macintosh_ce/CR macce/CR
-MacRomania
-MacThai
-MacTurkish
-MacUkraine
 MSZ_7795.3 hu ISO646-HU iso-ir-86
 Mule
-MuleLao-1
 NATS-DANO iso-ir-9-1
 NATS-DANO-ADD iso-ir-9-2
 NATS-SEFI iso-ir-8-1
@@ -261,30 +214,18 @@ RFC1345 1345 mnemonic
 sami iso-ir-158 lap latin-lap
 SEN_850200_B FI ISO646-FI ISO646-SE iso-ir-10 se SS636127
 SEN_850200_C ISO646-SE2 iso-ir-11 se2
-SJIS csShiftJIS MS_KANJI SHIFT-JIS SHIFT_JIS
 T.61-7bit iso-ir-102
-TCVN TCVN5712-1 TCVN5712-1:1993 TCVN-5712
+TCVN
 Texinfo texi ti
 Texte txte
-TIS-620 ISO-IR-166 TIS620 TIS620-0 TIS620.2529-1 TIS620.2533-0 TIS620.2533-1
 tree
-UCS-2-INTERNAL
-UCS-2-SWAPPED
-UCS-2LE UNICODELITTLE
-UCS-4-INTERNAL
-UCS-4-SWAPPED
-UCS-4BE
-UCS-4LE
-UNICODE-1-1-UTF-7 csUnicode11UTF7 TF-7 u7 UTF-7
+UNICODE-1-1-UTF-7 TF-7 u7 UTF-7
 UTF-8 FSS_UTF TF-8 u8 UTF-2 UTF-FSS
 UTF-16 TF-16 u6 Unicode
-UTF-16BE
-UTF-16LE
 VIQR
-VISCII csVISCII VISCII1.1-1
+VISCII
 VNI
 VPS
-WCHAR_T
 XML-standalone h0
 '''