Permalink
Browse files

Include cleaner.h in recodext.h

  • Loading branch information...
1 parent 00d34d6 commit f5ba1d844882960962ca38c2872c0175267fcb5e @pinard committed Mar 17, 2008
Showing with 1,537 additions and 568 deletions.
  1. +4 −0 ChangeLog
  2. +189 −163 cleaner.h.in
  3. +5 −0 src/ChangeLog
  4. +6 −2 src/Makefile.am
  5. +6 −1 src/Makefile.in
  6. +189 −0 src/recodext.h
  7. +774 −0 src/recodext.h.in
  8. +4 −0 tests/ChangeLog
  9. +302 −302 tests/Recode.c
  10. +58 −100 tests/Recode.pyx
View
4 ChangeLog
@@ -1,3 +1,7 @@
+2008-03-16 François Pinard <pinard@iro.umontreal.ca>
+
+ * cleaner.h.in: Protect against multiple inclusion.
+
2008-03-14 François Pinard <pinard@iro.umontreal.ca>
* after-patch.py: New name for after-git.py.
View
352 cleaner.h.in
@@ -1,163 +1,189 @@
-#define __xargmatch_internal librecode_xargmatch_internal
-#define aliases_lookup librecode_aliases_lookup
-#define argcasematch librecode_argcasematch
-#define argmatch librecode_argmatch
-#define argmatch_invalid librecode_argmatch_invalid
-#define argmatch_to_argument librecode_argmatch_to_argument
-#define argmatch_valid librecode_argmatch_valid
-#define clone_quoting_options librecode_clone_quoting_options
-#define code_to_ucs2 librecode_code_to_ucs2
-#define combine_byte_byte librecode_combine_byte_byte
-#define combine_byte_ucs2 librecode_combine_byte_ucs2
-#define combine_ucs2_byte librecode_combine_ucs2_byte
-#define combine_ucs2_ucs2 librecode_combine_ucs2_ucs2
-#define complete_pairs librecode_complete_pairs
-#define declare_alias librecode_declare_alias
-#define declare_explode_data librecode_declare_explode_data
-#define declare_iconv librecode_declare_iconv
-#define declare_implied_surface librecode_declare_implied_surface
-#define declare_single librecode_declare_single
-#define declare_strip_data librecode_declare_strip_data
-#define decode_known_pairs librecode_decode_known_pairs
-#define delmodule_african librecode_delmodule_african
-#define delmodule_afrtran librecode_delmodule_afrtran
-#define delmodule_applemac librecode_delmodule_applemac
-#define delmodule_ascii_latin1 librecode_delmodule_ascii_latin1
-#define delmodule_atarist librecode_delmodule_atarist
-#define delmodule_bangbang librecode_delmodule_bangbang
-#define delmodule_base64 librecode_delmodule_base64
-#define delmodule_cdcnos librecode_delmodule_cdcnos
-#define delmodule_dump librecode_delmodule_dump
-#define delmodule_ebcdic librecode_delmodule_ebcdic
-#define delmodule_endline librecode_delmodule_endline
-#define delmodule_flat librecode_delmodule_flat
-#define delmodule_html librecode_delmodule_html
-#define delmodule_ibmpc librecode_delmodule_ibmpc
-#define delmodule_iconqnx librecode_delmodule_iconqnx
-#define delmodule_iconv librecode_delmodule_iconv
-#define delmodule_latex_latin1 librecode_delmodule_latex_latin1
-#define delmodule_latin1_ascii librecode_delmodule_latin1_ascii
-#define delmodule_latin1_latex librecode_delmodule_latin1_latex
-#define delmodule_latin1_texte librecode_delmodule_latin1_texte
-#define delmodule_mule librecode_delmodule_mule
-#define delmodule_permutations librecode_delmodule_permutations
-#define delmodule_quoted_printable librecode_delmodule_quoted_printable
-#define delmodule_rfc1345 librecode_delmodule_rfc1345
-#define delmodule_strips librecode_delmodule_strips
-#define delmodule_testdump librecode_delmodule_testdump
-#define delmodule_texinfo librecode_delmodule_texinfo
-#define delmodule_texte_latin1 librecode_delmodule_texte_latin1
-#define delmodule_ucs librecode_delmodule_ucs
-#define delmodule_utf16 librecode_delmodule_utf16
-#define delmodule_utf7 librecode_delmodule_utf7
-#define delmodule_utf8 librecode_delmodule_utf8
-#define delmodule_varia librecode_delmodule_varia
-#define delmodule_vietnamese librecode_delmodule_vietnamese
-#define edit_sequence librecode_edit_sequence
-#define explode_byte_byte librecode_explode_byte_byte
-#define explode_byte_ucs2 librecode_explode_byte_ucs2
-#define explode_ucs2_byte librecode_explode_ucs2_byte
-#define explode_ucs2_ucs2 librecode_explode_ucs2_ucs2
-#define find_alias librecode_find_alias
-#define find_and_report_subsets librecode_find_and_report_subsets
-#define get_byte_helper librecode_get_byte_helper
-#define get_quoting_style librecode_get_quoting_style
-#define get_ucs2 librecode_get_ucs2
-#define get_ucs4 librecode_get_ucs4
-#define hash_clear librecode_hash_clear
-#define hash_delete librecode_hash_delete
-#define hash_do_for_each librecode_hash_do_for_each
-#define hash_free librecode_hash_free
-#define hash_get_entries librecode_hash_get_entries
-#define hash_get_first librecode_hash_get_first
-#define hash_get_max_bucket_length librecode_hash_get_max_bucket_length
-#define hash_get_n_buckets librecode_hash_get_n_buckets
-#define hash_get_n_buckets_used librecode_hash_get_n_buckets_used
-#define hash_get_n_entries librecode_hash_get_n_entries
-#define hash_get_next librecode_hash_get_next
-#define hash_initialize librecode_hash_initialize
-#define hash_insert librecode_hash_insert
-#define hash_lookup librecode_hash_lookup
-#define hash_print_statistics librecode_hash_print_statistics
-#define hash_rehash librecode_hash_rehash
-#define hash_reset_tuning librecode_hash_reset_tuning
-#define hash_string librecode_hash_string
-#define hash_table_ok librecode_hash_table_ok
-#define init_combine librecode_init_combine
-#define init_explode librecode_init_explode
-#define init_ucs2_to_byte librecode_init_ucs2_to_byte
-#define invert_table librecode_invert_table
-#define list_all_symbols librecode_list_all_symbols
-#define list_concise_charset librecode_list_concise_charset
-#define list_full_charset librecode_list_full_charset
-#define locale_charset librecode_locale_charset
-#define make_argmatch_arrays librecode_make_argmatch_arrays
-#define module_african librecode_module_african
-#define module_afrtran librecode_module_afrtran
-#define module_applemac librecode_module_applemac
-#define module_ascii_latin1 librecode_module_ascii_latin1
-#define module_atarist librecode_module_atarist
-#define module_bangbang librecode_module_bangbang
-#define module_base64 librecode_module_base64
-#define module_cdcnos librecode_module_cdcnos
-#define module_dump librecode_module_dump
-#define module_ebcdic librecode_module_ebcdic
-#define module_endline librecode_module_endline
-#define module_flat librecode_module_flat
-#define module_html librecode_module_html
-#define module_ibmpc librecode_module_ibmpc
-#define module_iconqnx librecode_module_iconqnx
-#define module_iconv librecode_module_iconv
-#define module_latex_latin1 librecode_module_latex_latin1
-#define module_latin1_ascii librecode_module_latin1_ascii
-#define module_latin1_latex librecode_module_latin1_latex
-#define module_latin1_texte librecode_module_latin1_texte
-#define module_mule librecode_module_mule
-#define module_permutations librecode_module_permutations
-#define module_quoted_printable librecode_module_quoted_printable
-#define module_rfc1345 librecode_module_rfc1345
-#define module_strips librecode_module_strips
-#define module_testdump librecode_module_testdump
-#define module_texinfo librecode_module_texinfo
-#define module_texte_latin1 librecode_module_texte_latin1
-#define module_ucs librecode_module_ucs
-#define module_utf16 librecode_module_utf16
-#define module_utf7 librecode_module_utf7
-#define module_utf8 librecode_module_utf8
-#define module_varia librecode_module_varia
-#define module_vietnamese librecode_module_vietnamese
-#define prepare_for_aliases librecode_prepare_for_aliases
-#define put_byte_helper librecode_put_byte_helper
-#define put_ucs2 librecode_put_ucs2
-#define put_ucs4 librecode_put_ucs4
-#define quotearg librecode_quotearg
-#define quotearg_buffer librecode_quotearg_buffer
-#define quotearg_char librecode_quotearg_char
-#define quotearg_colon librecode_quotearg_colon
-#define quotearg_n librecode_quotearg_n
-#define quotearg_n_style librecode_quotearg_n_style
-#define quotearg_style librecode_quotearg_style
-#define reversibility librecode_reversibility
-#define set_char_quoting librecode_set_char_quoting
-#define set_quoting_style librecode_set_quoting_style
-#define should_prefer_french librecode_should_prefer_french
-#define texte_latin1_diaeresis librecode_texte_latin1_diaeresis
-#define transform_byte_to_byte librecode_transform_byte_to_byte
-#define transform_byte_to_ucs2 librecode_transform_byte_to_ucs2
-#define transform_byte_to_variable librecode_transform_byte_to_variable
-#define transform_ucs2_to_byte librecode_transform_ucs2_to_byte
-#define transform_with_iconv librecode_transform_with_iconv
-#define ucs2_to_charname librecode_ucs2_to_charname
-#define ucs2_to_french_charname librecode_ucs2_to_french_charname
-#define ucs2_to_rfc1345 librecode_ucs2_to_rfc1345
-#define x2nrealloc librecode_x2nrealloc
-#define x2realloc librecode_x2realloc
-#define xalloc_die librecode_xalloc_die
-#define xcalloc librecode_xcalloc
-#define xmalloc librecode_xmalloc
-#define xmemdup librecode_xmemdup
-#define xnmalloc librecode_xnmalloc
-#define xnrealloc librecode_xnrealloc
-#define xrealloc librecode_xrealloc
-#define xstrdup librecode_xstrdup
-#define xzalloc librecode_xzalloc
+/* Conversion of files between different charsets and surfaces.
+ Copyright © 2008 Free Software Foundation, Inc.
+ Contributed by François Pinard <pinard@iro.umontreal.ca>, 2008.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License
+ as published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be
+ useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+ of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the Recode Library; see the file `COPYING.LIB'.
+ If not, write to the Free Software Foundation, Inc., 59 Temple Place -
+ Suite 330, Boston, MA 02111-1307, USA. */
+
+/* Definitions to clean up the linker namespace. */
+
+#ifndef CLEANER_H_
+# define CLEANER_H_
+
+# define __xargmatch_internal librecode_xargmatch_internal
+# define aliases_lookup librecode_aliases_lookup
+# define argcasematch librecode_argcasematch
+# define argmatch librecode_argmatch
+# define argmatch_invalid librecode_argmatch_invalid
+# define argmatch_to_argument librecode_argmatch_to_argument
+# define argmatch_valid librecode_argmatch_valid
+# define clone_quoting_options librecode_clone_quoting_options
+# define code_to_ucs2 librecode_code_to_ucs2
+# define combine_byte_byte librecode_combine_byte_byte
+# define combine_byte_ucs2 librecode_combine_byte_ucs2
+# define combine_ucs2_byte librecode_combine_ucs2_byte
+# define combine_ucs2_ucs2 librecode_combine_ucs2_ucs2
+# define complete_pairs librecode_complete_pairs
+# define declare_alias librecode_declare_alias
+# define declare_explode_data librecode_declare_explode_data
+# define declare_iconv librecode_declare_iconv
+# define declare_implied_surface librecode_declare_implied_surface
+# define declare_single librecode_declare_single
+# define declare_strip_data librecode_declare_strip_data
+# define decode_known_pairs librecode_decode_known_pairs
+# define delmodule_african librecode_delmodule_african
+# define delmodule_afrtran librecode_delmodule_afrtran
+# define delmodule_applemac librecode_delmodule_applemac
+# define delmodule_ascii_latin1 librecode_delmodule_ascii_latin1
+# define delmodule_atarist librecode_delmodule_atarist
+# define delmodule_bangbang librecode_delmodule_bangbang
+# define delmodule_base64 librecode_delmodule_base64
+# define delmodule_cdcnos librecode_delmodule_cdcnos
+# define delmodule_dump librecode_delmodule_dump
+# define delmodule_ebcdic librecode_delmodule_ebcdic
+# define delmodule_endline librecode_delmodule_endline
+# define delmodule_flat librecode_delmodule_flat
+# define delmodule_html librecode_delmodule_html
+# define delmodule_ibmpc librecode_delmodule_ibmpc
+# define delmodule_iconqnx librecode_delmodule_iconqnx
+# define delmodule_iconv librecode_delmodule_iconv
+# define delmodule_latex_latin1 librecode_delmodule_latex_latin1
+# define delmodule_latin1_ascii librecode_delmodule_latin1_ascii
+# define delmodule_latin1_latex librecode_delmodule_latin1_latex
+# define delmodule_latin1_texte librecode_delmodule_latin1_texte
+# define delmodule_mule librecode_delmodule_mule
+# define delmodule_permutations librecode_delmodule_permutations
+# define delmodule_quoted_printable librecode_delmodule_quoted_printable
+# define delmodule_rfc1345 librecode_delmodule_rfc1345
+# define delmodule_strips librecode_delmodule_strips
+# define delmodule_testdump librecode_delmodule_testdump
+# define delmodule_texinfo librecode_delmodule_texinfo
+# define delmodule_texte_latin1 librecode_delmodule_texte_latin1
+# define delmodule_ucs librecode_delmodule_ucs
+# define delmodule_utf16 librecode_delmodule_utf16
+# define delmodule_utf7 librecode_delmodule_utf7
+# define delmodule_utf8 librecode_delmodule_utf8
+# define delmodule_varia librecode_delmodule_varia
+# define delmodule_vietnamese librecode_delmodule_vietnamese
+# define edit_sequence librecode_edit_sequence
+# define explode_byte_byte librecode_explode_byte_byte
+# define explode_byte_ucs2 librecode_explode_byte_ucs2
+# define explode_ucs2_byte librecode_explode_ucs2_byte
+# define explode_ucs2_ucs2 librecode_explode_ucs2_ucs2
+# define find_alias librecode_find_alias
+# define find_and_report_subsets librecode_find_and_report_subsets
+# define get_byte_helper librecode_get_byte_helper
+# define get_quoting_style librecode_get_quoting_style
+# define get_ucs2 librecode_get_ucs2
+# define get_ucs4 librecode_get_ucs4
+# define hash_clear librecode_hash_clear
+# define hash_delete librecode_hash_delete
+# define hash_do_for_each librecode_hash_do_for_each
+# define hash_free librecode_hash_free
+# define hash_get_entries librecode_hash_get_entries
+# define hash_get_first librecode_hash_get_first
+# define hash_get_max_bucket_length librecode_hash_get_max_bucket_length
+# define hash_get_n_buckets librecode_hash_get_n_buckets
+# define hash_get_n_buckets_used librecode_hash_get_n_buckets_used
+# define hash_get_n_entries librecode_hash_get_n_entries
+# define hash_get_next librecode_hash_get_next
+# define hash_initialize librecode_hash_initialize
+# define hash_insert librecode_hash_insert
+# define hash_lookup librecode_hash_lookup
+# define hash_print_statistics librecode_hash_print_statistics
+# define hash_rehash librecode_hash_rehash
+# define hash_reset_tuning librecode_hash_reset_tuning
+# define hash_string librecode_hash_string
+# define hash_table_ok librecode_hash_table_ok
+# define init_combine librecode_init_combine
+# define init_explode librecode_init_explode
+# define init_ucs2_to_byte librecode_init_ucs2_to_byte
+# define invert_table librecode_invert_table
+# define list_all_symbols librecode_list_all_symbols
+# define list_concise_charset librecode_list_concise_charset
+# define list_full_charset librecode_list_full_charset
+# define locale_charset librecode_locale_charset
+# define make_argmatch_arrays librecode_make_argmatch_arrays
+# define module_african librecode_module_african
+# define module_afrtran librecode_module_afrtran
+# define module_applemac librecode_module_applemac
+# define module_ascii_latin1 librecode_module_ascii_latin1
+# define module_atarist librecode_module_atarist
+# define module_bangbang librecode_module_bangbang
+# define module_base64 librecode_module_base64
+# define module_cdcnos librecode_module_cdcnos
+# define module_dump librecode_module_dump
+# define module_ebcdic librecode_module_ebcdic
+# define module_endline librecode_module_endline
+# define module_flat librecode_module_flat
+# define module_html librecode_module_html
+# define module_ibmpc librecode_module_ibmpc
+# define module_iconqnx librecode_module_iconqnx
+# define module_iconv librecode_module_iconv
+# define module_latex_latin1 librecode_module_latex_latin1
+# define module_latin1_ascii librecode_module_latin1_ascii
+# define module_latin1_latex librecode_module_latin1_latex
+# define module_latin1_texte librecode_module_latin1_texte
+# define module_mule librecode_module_mule
+# define module_permutations librecode_module_permutations
+# define module_quoted_printable librecode_module_quoted_printable
+# define module_rfc1345 librecode_module_rfc1345
+# define module_strips librecode_module_strips
+# define module_testdump librecode_module_testdump
+# define module_texinfo librecode_module_texinfo
+# define module_texte_latin1 librecode_module_texte_latin1
+# define module_ucs librecode_module_ucs
+# define module_utf16 librecode_module_utf16
+# define module_utf7 librecode_module_utf7
+# define module_utf8 librecode_module_utf8
+# define module_varia librecode_module_varia
+# define module_vietnamese librecode_module_vietnamese
+# define prepare_for_aliases librecode_prepare_for_aliases
+# define put_byte_helper librecode_put_byte_helper
+# define put_ucs2 librecode_put_ucs2
+# define put_ucs4 librecode_put_ucs4
+# define quotearg librecode_quotearg
+# define quotearg_buffer librecode_quotearg_buffer
+# define quotearg_char librecode_quotearg_char
+# define quotearg_colon librecode_quotearg_colon
+# define quotearg_n librecode_quotearg_n
+# define quotearg_n_style librecode_quotearg_n_style
+# define quotearg_style librecode_quotearg_style
+# define reversibility librecode_reversibility
+# define set_char_quoting librecode_set_char_quoting
+# define set_quoting_style librecode_set_quoting_style
+# define should_prefer_french librecode_should_prefer_french
+# define texte_latin1_diaeresis librecode_texte_latin1_diaeresis
+# define transform_byte_to_byte librecode_transform_byte_to_byte
+# define transform_byte_to_ucs2 librecode_transform_byte_to_ucs2
+# define transform_byte_to_variable librecode_transform_byte_to_variable
+# define transform_ucs2_to_byte librecode_transform_ucs2_to_byte
+# define transform_with_iconv librecode_transform_with_iconv
+# define ucs2_to_charname librecode_ucs2_to_charname
+# define ucs2_to_french_charname librecode_ucs2_to_french_charname
+# define ucs2_to_rfc1345 librecode_ucs2_to_rfc1345
+# define x2nrealloc librecode_x2nrealloc
+# define x2realloc librecode_x2realloc
+# define xalloc_die librecode_xalloc_die
+# define xcalloc librecode_xcalloc
+# define xmalloc librecode_xmalloc
+# define xmemdup librecode_xmemdup
+# define xnmalloc librecode_xnmalloc
+# define xnrealloc librecode_xnrealloc
+# define xrealloc librecode_xrealloc
+# define xstrdup librecode_xstrdup
+# define xzalloc librecode_xzalloc
+
+#endif /* ! CLEANER_H_ */
View
5 src/ChangeLog
@@ -1,3 +1,8 @@
+2008-03-16 François Pinard <pinard@iro.umontreal.ca>
+
+ * recodext.h.in: New name for recodext.h.
+ * Makefile.am (recodext.h): New goal.
+
2008-03-14 François Pinard <pinard@iro.umontreal.ca>
* main.c: Inhibit iconv whenever -h is used.
View
8 src/Makefile.am
@@ -27,7 +27,9 @@ noinst_HEADERS = argmatch.h charname.h common.h decsteps.h exit.h exitfail.h \
fr-charname.h hash.h inisteps.h iconvdecl.h quotearg.h rfc1345.h tersteps.h \
xalloc.h $(H_FALLBACKS) $(H_SURFACES)
-EXTRA_DIST = stamp-steps stamp-strip $(L_STEPS) mergelex.py $(MANS)
+EXTRA_DIST = recodext.h.in stamp-steps stamp-strip \
+$(L_STEPS) mergelex.py $(MANS)
+
CLEANFILES = iconvdecl.h
C_STEPS = african.c afrtran.c applemac.c atarist.c bangbang.c cdcnos.c \
@@ -98,6 +100,9 @@ $(srcdir)/recode.1: recode
echo " but you may safely and merely ignore this error."; \
fi
+$(srcdir)/recodext.h: $(top_srcdir)/cleaner.h.in $(srcdir)/recodext.h.in
+ cat $(top_srcdir)/cleaner.h.in $(srcdir)/recodext.h.in > $@
+
main.o: main.c ../config.status
charname$U.lo: rfc1345.h
@@ -144,4 +149,3 @@ strip-pool.c strip-data.c: stamp-strip
stamp-strip: ../tables.py $(MNEMONICS_DS) $(CHARSETS_DEF)
$(TABLES_PY) -C $(srcdir) -p $(MNEMONICS_DS) $(CHARSETS_DEF)
echo timestamp > $(srcdir)/$@
-
View
7 src/Makefile.in
@@ -270,7 +270,9 @@ noinst_HEADERS = argmatch.h charname.h common.h decsteps.h exit.h exitfail.h \
fr-charname.h hash.h inisteps.h iconvdecl.h quotearg.h rfc1345.h tersteps.h \
xalloc.h $(H_FALLBACKS) $(H_SURFACES)
-EXTRA_DIST = stamp-steps stamp-strip $(L_STEPS) mergelex.py $(MANS)
+EXTRA_DIST = recodext.h.in stamp-steps stamp-strip \
+$(L_STEPS) mergelex.py $(MANS)
+
CLEANFILES = iconvdecl.h
C_STEPS = african.c afrtran.c applemac.c atarist.c bangbang.c cdcnos.c \
ebcdic.c ibmpc.c iconqnx.c lat1asci.c java.c mule.c strip-data.c \
@@ -914,6 +916,9 @@ $(srcdir)/recode.1: recode
echo " but you may safely and merely ignore this error."; \
fi
+$(srcdir)/recodext.h: $(top_srcdir)/cleaner.h.in $(srcdir)/recodext.h.in
+ cat $(top_srcdir)/cleaner.h.in $(srcdir)/recodext.h.in > $@
+
main.o: main.c ../config.status
charname$U.lo: rfc1345.h
View
189 src/recodext.h
@@ -1,4 +1,193 @@
/* Conversion of files between different charsets and surfaces.
+ Copyright © 2008 Free Software Foundation, Inc.
+ Contributed by François Pinard <pinard@iro.umontreal.ca>, 2008.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License
+ as published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be
+ useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+ of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the Recode Library; see the file `COPYING.LIB'.
+ If not, write to the Free Software Foundation, Inc., 59 Temple Place -
+ Suite 330, Boston, MA 02111-1307, USA. */
+
+/* Definitions to clean up the linker namespace. */
+
+#ifndef CLEANER_H_
+# define CLEANER_H_
+
+# define __xargmatch_internal librecode_xargmatch_internal
+# define aliases_lookup librecode_aliases_lookup
+# define argcasematch librecode_argcasematch
+# define argmatch librecode_argmatch
+# define argmatch_invalid librecode_argmatch_invalid
+# define argmatch_to_argument librecode_argmatch_to_argument
+# define argmatch_valid librecode_argmatch_valid
+# define clone_quoting_options librecode_clone_quoting_options
+# define code_to_ucs2 librecode_code_to_ucs2
+# define combine_byte_byte librecode_combine_byte_byte
+# define combine_byte_ucs2 librecode_combine_byte_ucs2
+# define combine_ucs2_byte librecode_combine_ucs2_byte
+# define combine_ucs2_ucs2 librecode_combine_ucs2_ucs2
+# define complete_pairs librecode_complete_pairs
+# define declare_alias librecode_declare_alias
+# define declare_explode_data librecode_declare_explode_data
+# define declare_iconv librecode_declare_iconv
+# define declare_implied_surface librecode_declare_implied_surface
+# define declare_single librecode_declare_single
+# define declare_strip_data librecode_declare_strip_data
+# define decode_known_pairs librecode_decode_known_pairs
+# define delmodule_african librecode_delmodule_african
+# define delmodule_afrtran librecode_delmodule_afrtran
+# define delmodule_applemac librecode_delmodule_applemac
+# define delmodule_ascii_latin1 librecode_delmodule_ascii_latin1
+# define delmodule_atarist librecode_delmodule_atarist
+# define delmodule_bangbang librecode_delmodule_bangbang
+# define delmodule_base64 librecode_delmodule_base64
+# define delmodule_cdcnos librecode_delmodule_cdcnos
+# define delmodule_dump librecode_delmodule_dump
+# define delmodule_ebcdic librecode_delmodule_ebcdic
+# define delmodule_endline librecode_delmodule_endline
+# define delmodule_flat librecode_delmodule_flat
+# define delmodule_html librecode_delmodule_html
+# define delmodule_ibmpc librecode_delmodule_ibmpc
+# define delmodule_iconqnx librecode_delmodule_iconqnx
+# define delmodule_iconv librecode_delmodule_iconv
+# define delmodule_latex_latin1 librecode_delmodule_latex_latin1
+# define delmodule_latin1_ascii librecode_delmodule_latin1_ascii
+# define delmodule_latin1_latex librecode_delmodule_latin1_latex
+# define delmodule_latin1_texte librecode_delmodule_latin1_texte
+# define delmodule_mule librecode_delmodule_mule
+# define delmodule_permutations librecode_delmodule_permutations
+# define delmodule_quoted_printable librecode_delmodule_quoted_printable
+# define delmodule_rfc1345 librecode_delmodule_rfc1345
+# define delmodule_strips librecode_delmodule_strips
+# define delmodule_testdump librecode_delmodule_testdump
+# define delmodule_texinfo librecode_delmodule_texinfo
+# define delmodule_texte_latin1 librecode_delmodule_texte_latin1
+# define delmodule_ucs librecode_delmodule_ucs
+# define delmodule_utf16 librecode_delmodule_utf16
+# define delmodule_utf7 librecode_delmodule_utf7
+# define delmodule_utf8 librecode_delmodule_utf8
+# define delmodule_varia librecode_delmodule_varia
+# define delmodule_vietnamese librecode_delmodule_vietnamese
+# define edit_sequence librecode_edit_sequence
+# define explode_byte_byte librecode_explode_byte_byte
+# define explode_byte_ucs2 librecode_explode_byte_ucs2
+# define explode_ucs2_byte librecode_explode_ucs2_byte
+# define explode_ucs2_ucs2 librecode_explode_ucs2_ucs2
+# define find_alias librecode_find_alias
+# define find_and_report_subsets librecode_find_and_report_subsets
+# define get_byte_helper librecode_get_byte_helper
+# define get_quoting_style librecode_get_quoting_style
+# define get_ucs2 librecode_get_ucs2
+# define get_ucs4 librecode_get_ucs4
+# define hash_clear librecode_hash_clear
+# define hash_delete librecode_hash_delete
+# define hash_do_for_each librecode_hash_do_for_each
+# define hash_free librecode_hash_free
+# define hash_get_entries librecode_hash_get_entries
+# define hash_get_first librecode_hash_get_first
+# define hash_get_max_bucket_length librecode_hash_get_max_bucket_length
+# define hash_get_n_buckets librecode_hash_get_n_buckets
+# define hash_get_n_buckets_used librecode_hash_get_n_buckets_used
+# define hash_get_n_entries librecode_hash_get_n_entries
+# define hash_get_next librecode_hash_get_next
+# define hash_initialize librecode_hash_initialize
+# define hash_insert librecode_hash_insert
+# define hash_lookup librecode_hash_lookup
+# define hash_print_statistics librecode_hash_print_statistics
+# define hash_rehash librecode_hash_rehash
+# define hash_reset_tuning librecode_hash_reset_tuning
+# define hash_string librecode_hash_string
+# define hash_table_ok librecode_hash_table_ok
+# define init_combine librecode_init_combine
+# define init_explode librecode_init_explode
+# define init_ucs2_to_byte librecode_init_ucs2_to_byte
+# define invert_table librecode_invert_table
+# define list_all_symbols librecode_list_all_symbols
+# define list_concise_charset librecode_list_concise_charset
+# define list_full_charset librecode_list_full_charset
+# define locale_charset librecode_locale_charset
+# define make_argmatch_arrays librecode_make_argmatch_arrays
+# define module_african librecode_module_african
+# define module_afrtran librecode_module_afrtran
+# define module_applemac librecode_module_applemac
+# define module_ascii_latin1 librecode_module_ascii_latin1
+# define module_atarist librecode_module_atarist
+# define module_bangbang librecode_module_bangbang
+# define module_base64 librecode_module_base64
+# define module_cdcnos librecode_module_cdcnos
+# define module_dump librecode_module_dump
+# define module_ebcdic librecode_module_ebcdic
+# define module_endline librecode_module_endline
+# define module_flat librecode_module_flat
+# define module_html librecode_module_html
+# define module_ibmpc librecode_module_ibmpc
+# define module_iconqnx librecode_module_iconqnx
+# define module_iconv librecode_module_iconv
+# define module_latex_latin1 librecode_module_latex_latin1
+# define module_latin1_ascii librecode_module_latin1_ascii
+# define module_latin1_latex librecode_module_latin1_latex
+# define module_latin1_texte librecode_module_latin1_texte
+# define module_mule librecode_module_mule
+# define module_permutations librecode_module_permutations
+# define module_quoted_printable librecode_module_quoted_printable
+# define module_rfc1345 librecode_module_rfc1345
+# define module_strips librecode_module_strips
+# define module_testdump librecode_module_testdump
+# define module_texinfo librecode_module_texinfo
+# define module_texte_latin1 librecode_module_texte_latin1
+# define module_ucs librecode_module_ucs
+# define module_utf16 librecode_module_utf16
+# define module_utf7 librecode_module_utf7
+# define module_utf8 librecode_module_utf8
+# define module_varia librecode_module_varia
+# define module_vietnamese librecode_module_vietnamese
+# define prepare_for_aliases librecode_prepare_for_aliases
+# define put_byte_helper librecode_put_byte_helper
+# define put_ucs2 librecode_put_ucs2
+# define put_ucs4 librecode_put_ucs4
+# define quotearg librecode_quotearg
+# define quotearg_buffer librecode_quotearg_buffer
+# define quotearg_char librecode_quotearg_char
+# define quotearg_colon librecode_quotearg_colon
+# define quotearg_n librecode_quotearg_n
+# define quotearg_n_style librecode_quotearg_n_style
+# define quotearg_style librecode_quotearg_style
+# define reversibility librecode_reversibility
+# define set_char_quoting librecode_set_char_quoting
+# define set_quoting_style librecode_set_quoting_style
+# define should_prefer_french librecode_should_prefer_french
+# define texte_latin1_diaeresis librecode_texte_latin1_diaeresis
+# define transform_byte_to_byte librecode_transform_byte_to_byte
+# define transform_byte_to_ucs2 librecode_transform_byte_to_ucs2
+# define transform_byte_to_variable librecode_transform_byte_to_variable
+# define transform_ucs2_to_byte librecode_transform_ucs2_to_byte
+# define transform_with_iconv librecode_transform_with_iconv
+# define ucs2_to_charname librecode_ucs2_to_charname
+# define ucs2_to_french_charname librecode_ucs2_to_french_charname
+# define ucs2_to_rfc1345 librecode_ucs2_to_rfc1345
+# define x2nrealloc librecode_x2nrealloc
+# define x2realloc librecode_x2realloc
+# define xalloc_die librecode_xalloc_die
+# define xcalloc librecode_xcalloc
+# define xmalloc librecode_xmalloc
+# define xmemdup librecode_xmemdup
+# define xnmalloc librecode_xnmalloc
+# define xnrealloc librecode_xnrealloc
+# define xrealloc librecode_xrealloc
+# define xstrdup librecode_xstrdup
+# define xzalloc librecode_xzalloc
+
+#endif /* ! CLEANER_H_ */
+/* Conversion of files between different charsets and surfaces.
Copyright © 1990, 93, 94, 96-99, 2000, 2001 Free Software Foundation, Inc.
Contributed by François Pinard <pinard@iro.umontreal.ca>, 1988.
View
774 src/recodext.h.in
@@ -0,0 +1,774 @@
+/* Conversion of files between different charsets and surfaces.
+ Copyright © 1990, 93, 94, 96-99, 2000, 2001 Free Software Foundation, Inc.
+ Contributed by François Pinard <pinard@iro.umontreal.ca>, 1988.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License
+ as published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be
+ useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+ of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the Recode Library; see the file `COPYING.LIB'.
+ If not, write to the Free Software Foundation, Inc., 59 Temple Place -
+ Suite 330, Boston, MA 02111-1307, USA. */
+
+/* Extended definitions, for externally written steps. */
+
+#include "recode.h"
+
+/* Internal typedefs, to supplement those in "recode.h". */
+
+typedef struct recode_symbol * RECODE_SYMBOL;
+typedef struct recode_option_list * RECODE_OPTION_LIST;
+typedef struct recode_single * RECODE_SINGLE;
+typedef struct recode_step * RECODE_STEP;
+typedef struct recode_alias * RECODE_ALIAS;
+typedef struct recode_subtask * RECODE_SUBTASK;
+
+typedef const struct recode_option_list * RECODE_CONST_OPTION_LIST;
+typedef const struct recode_outer * RECODE_CONST_OUTER;
+typedef const struct recode_step * RECODE_CONST_STEP;
+typedef const struct recode_alias * RECODE_CONST_ALIAS;
+typedef const struct recode_task * RECODE_CONST_TASK;
+
+/*---------------------------------------------------------.
+| Maintain maximum of ERROR and current error in SUBTASK. |
+`---------------------------------------------------------*/
+
+#define SET_SUBTASK_ERROR(Error, Subtask) \
+ recode_if_nogo (Error, Subtask)
+
+/*--------------------------------------------------------------------------.
+| Return from SUBTASK with `false', if the failure level has been reached. |
+`--------------------------------------------------------------------------*/
+
+#define SUBTASK_RETURN(Subtask) \
+ return (Subtask)->task->error_so_far < (Subtask)->task->fail_level
+
+/*-------------------------------------------------------------------------.
+| Maintain maximum of ERROR and current error in SUBTASK. If the abort |
+| level has been reached, then return immediately as with SUBTASK_RETURN. |
+`-------------------------------------------------------------------------*/
+
+#define RETURN_IF_NOGO(Error, Subtask) \
+ do { \
+ if (recode_if_nogo (Error, Subtask)) \
+ SUBTASK_RETURN (Subtask); \
+ } while (false)
+
+/* Various structure declarations. */
+
+/*-----------------------------------------.
+| Outer variables for the recode library. |
+`-----------------------------------------*/
+
+/* Error codes, in increasing severity. */
+
+enum recode_error
+ {
+ RECODE_NO_ERROR, /* no error so far */
+ RECODE_NOT_CANONICAL, /* input is not exact, but equivalent */
+ RECODE_AMBIGUOUS_OUTPUT, /* output will be misleading */
+ RECODE_UNTRANSLATABLE, /* input is getting lost, while valid */
+ RECODE_INVALID_INPUT, /* input is getting lost, but was invalid */
+ RECODE_SYSTEM_ERROR, /* system returned input/output failure */
+ RECODE_USER_ERROR, /* library is being misused */
+ RECODE_INTERNAL_ERROR, /* programming botch in the library */
+ RECODE_MAXIMUM_ERROR /* impossible value (should be kept last) */
+ };
+
+/* Structure for relating alias names to charsets and surfaces. */
+
+struct recode_alias
+ {
+ const char *name; /* charset, surface or alias name */
+ RECODE_SYMBOL symbol; /* associated symbol */
+ /* If a charset, list of surfaces usually applied by default. */
+ struct recode_surface_list *implied_surfaces;
+ };
+
+/* The sole purpose of qualities is for later attributing step costs. */
+
+enum recode_size
+ {
+ RECODE_1, /* roughly one byte per character */
+ RECODE_2, /* roughly two bytes per character */
+ RECODE_4, /* roughly four bytes per character */
+ RECODE_N /* variable number of bytes per character */
+ };
+
+struct recode_quality
+ {
+ enum recode_size in_size : 3; /* rough byte size of input characters */
+ enum recode_size out_size : 3; /* rough byte size of output characters */
+ bool reversible : 1; /* transformation is known to be reversible */
+ bool slower : 1; /* transformation is slower than average */
+ bool faster : 1; /* transformation is faster than average */
+ };
+
+/* Main variables of the initialised library. */
+
+struct recode_outer
+ {
+ /* This flag asks the library to diagnose and abort itself if errors. */
+ bool auto_abort;
+
+ /* If the external `iconv' library should be initialized and used. */
+ bool use_iconv;
+
+ /* charset.c */
+ /* --------- */
+
+ /* Known pairs (for restricting listing). */
+ struct recode_known_pair *pair_restriction;
+ unsigned pair_restrictions;
+
+ /* Opaque Hash_table pointer giving access to the single table holding all
+ names and aliases for charsets, surfaces and fallback methods. */
+ void *alias_table;
+
+ /* Unique symbols are linked into a list and counted. */
+ RECODE_SYMBOL symbol_list;
+ unsigned number_of_symbols;
+
+ /* Arrays of strings ready for argmatch. */
+ char **argmatch_charset_array;
+ char **argmatch_surface_array;
+ const char **realname_charset_array;
+ const char **realname_surface_array;
+
+ /* recode.c */
+ /* -------- */
+
+ /* Known single steps. */
+ struct recode_single *single_list;
+ unsigned number_of_singles;
+
+ /* Identity recoding table. */
+ const unsigned char *one_to_same;
+
+ /* Preset charsets and surfaces. */
+ RECODE_SYMBOL data_symbol;/* special charset defining surfaces */
+ RECODE_SYMBOL tree_symbol; /* special charset defining structures */
+ RECODE_SYMBOL ucs2_charset; /* UCS-2 */
+ RECODE_SYMBOL iconv_pivot; /* `iconv' internal UCS */
+ RECODE_SYMBOL crlf_surface; /* for IBM PC machines */
+ RECODE_SYMBOL cr_surface; /* for Macintosh machines */
+
+ /* Preset qualities, to make step initialisation simpler. */
+ struct recode_quality quality_byte_reversible;
+ struct recode_quality quality_byte_to_byte;
+ struct recode_quality quality_byte_to_ucs2;
+ struct recode_quality quality_byte_to_variable;
+ struct recode_quality quality_ucs2_to_byte;
+ struct recode_quality quality_ucs2_to_variable;
+ struct recode_quality quality_variable_to_byte;
+ struct recode_quality quality_variable_to_ucs2;
+ struct recode_quality quality_variable_to_variable;
+ };
+
+/*--------------------------.
+| Description of a symbol. |
+`--------------------------*/
+
+enum recode_symbol_type
+ {
+ RECODE_NO_SYMBOL_TYPE, /* missing value */
+ RECODE_CHARSET, /* visible in the space of charsets */
+ RECODE_DATA_SURFACE, /* this is a mere data surface */
+ RECODE_TREE_SURFACE /* this is a structural surface */
+ };
+
+enum recode_data_type
+ {
+ RECODE_NO_CHARSET_DATA, /* the charset_table field is unused */
+ RECODE_STRIP_DATA, /* pool pointer and array of strips */
+ RECODE_EXPLODE_DATA /* explode variable length data */
+ };
+
+struct recode_symbol
+ {
+ /* Chaining of all known symbols (charsets and surfaces). */
+ RECODE_SYMBOL next;
+
+ /* Unique ordinal for this symbol, counted from zero. */
+ unsigned ordinal;
+
+ /* Main name. */
+ const char *name;
+
+ /* Name to use for the iconv library, or NULL. */
+ const char *iconv_name;
+
+ /* Type of table. */
+ enum recode_data_type data_type;
+
+ /* Recoding table. */
+ void *data;
+
+ /* Step for data..CHARSET transformation, if any, or NULL. */
+ struct recode_single *resurfacer;
+
+ /* Step for CHARSET..data transformation, if any, or NULL. */
+ struct recode_single *unsurfacer;
+
+ /* Non zero if this is an acceptable charset (not only a surface). */
+ enum recode_symbol_type type : 3;
+
+ /* Non zero if this one should be ignored. */
+ bool ignore : 1;
+ };
+
+struct recode_surface_list
+ {
+ RECODE_CONST_SYMBOL surface;
+ struct recode_surface_list *next;
+ };
+
+/*-------------------------------------------.
+| Description of a single step of recoding. |
+`-------------------------------------------*/
+
+typedef bool (*Recode_init) PARAMS ((RECODE_STEP, RECODE_CONST_REQUEST,
+ RECODE_CONST_OPTION_LIST,
+ RECODE_CONST_OPTION_LIST));
+typedef bool (*Recode_term) PARAMS ((RECODE_STEP, RECODE_CONST_REQUEST));
+typedef bool (*Recode_transform) PARAMS ((RECODE_SUBTASK));
+typedef bool (*Recode_fallback) PARAMS ((RECODE_SUBTASK, unsigned));
+
+/* The `single' structure holds data needed to decide of sequences, and is
+ invariant over actual requests. The `step' structure holds data needed for
+ task execution, it may take care of fallback and option variance. */
+
+struct recode_single
+ {
+ /* Chaining of all known single steps. */
+ struct recode_single *next;
+
+ /* Charset before conversion. */
+ RECODE_SYMBOL before;
+
+ /* Charset after conversion. */
+ RECODE_SYMBOL after;
+
+ /* Cost for this single step only. */
+ short conversion_cost;
+
+ /* Initial value for step_table. */
+ void *initial_step_table;
+
+ /* Recoding quality. */
+ struct recode_quality quality;
+
+ /* Initialisation handler, to be called before step optimisation. */
+ Recode_init init_routine;
+
+ /* Transformation handler, for doing the actual recoding work. */
+ Recode_transform transform_routine;
+
+ /* Default fallback for the step. Merely to implement `-s' option. */
+ Recode_fallback fallback_routine;
+ };
+
+enum recode_step_type
+ {
+ RECODE_NO_STEP_TABLE, /* the step_table field is unused */
+ RECODE_BYTE_TO_BYTE, /* array of 256 bytes */
+ RECODE_BYTE_TO_STRING, /* array of 256 strings */
+ RECODE_UCS2_TO_BYTE, /* hash from ucs2 to byte */
+ RECODE_UCS2_TO_STRING, /* hash from ucs2 to string */
+ RECODE_STRING_TO_UCS2, /* hash from ucs2 to string, reversed */
+ RECODE_COMBINE_EXPLODE, /* raw data for combining or exploding */
+ RECODE_COMBINE_STEP, /* special hash for combining */
+ RECODE_EXPLODE_STEP /* special hash for exploding */
+ };
+
+struct recode_step
+ {
+ /* Charset before conversion. */
+ RECODE_SYMBOL before;
+
+ /* Charset after conversion. */
+ RECODE_SYMBOL after;
+
+ /* Recoding quality. */
+ struct recode_quality quality;
+
+ /* Type of table. */
+ enum recode_step_type step_type;
+
+ /* Recoding table. */
+ void *step_table;
+
+ /* Step specific variables. */
+ void *local;
+
+ /* Transformation handler, for doing the actual recoding work. */
+ Recode_transform transform_routine;
+
+ /* Fallback for the step. */
+ Recode_fallback fallback_routine;
+
+ /* Cleanup handler, to be called after the recoding is done. */
+ Recode_term term_routine;
+ };
+
+struct recode_option_list
+ {
+ const char *option;
+ RECODE_OPTION_LIST next;
+ };
+
+/*------------------------------------------------------------------------.
+| A recoding request holds, among other things, a selected path among the |
+| available recoding steps, it so represents a kind of recoding plan. |
+`------------------------------------------------------------------------*/
+
+struct recode_request
+ {
+ /* A request is always associated with a recoding system. */
+ RECODE_OUTER outer;
+
+ /* By setting the following flag, the program will echo to stderr the
+ sequence of elementary recoding steps needed to achieve the requested
+ recoding. */
+ bool verbose_flag : 1;
+
+ /* In `texte' charset, some countries use double quotes to mark diaeresis,
+ while some other prefer colons. This field contains the diaeresis
+ character for `texte' charset. Nominally set to a double quote, it can
+ be forced to a colon. Those are the only two acceptable values. */
+ char diaeresis_char;
+
+ /* If producing a recoding table in source form, there will be no actual
+ recoding done, and consequently, the optimisation of step sequence can
+ be attempted more aggressively. If the step sequence cannot be reduced
+ to a single step, table production will fail. */
+ bool make_header_flag : 1;
+
+ /* For `latex' charset, it is often convenient to recode the diacritics
+ only, while letting other LaTeX code using backslashes unrecoded. In
+ the other charset, one can edit text as well as LaTeX directives. */
+ bool diacritics_only : 1;
+
+ /* For `ibmpc' charset, characters 176 to 223 are use to draw boxes. If
+ this field is set, while getting out of `ibmpc', ASCII characters are
+ selected so to approximate these boxes. */
+ bool ascii_graphics : 1;
+
+ /* Array stating the sequence of conversions. */
+ RECODE_STEP sequence_array;
+ size_t sequence_allocated;
+ short sequence_length;
+
+ /* Internal variables used while scanning request text. */
+ char *work_string; /* buffer space for generated work strings */
+ size_t work_string_length; /* length of work_string */
+ size_t work_string_allocated; /* allocated length of work_string */
+ const char *scan_cursor; /* next character to be seen */
+ char *scanned_string; /* buffer space to scan strings */
+ };
+
+/*--------------------------------------------------------------------.
+| A recoding text is either an external file or an in memory buffer. |
+`--------------------------------------------------------------------*/
+
+/* While the recoding is going on, FILE being non-NULL has precedence over
+ BUFFER. Moreover, if NAME is not NULL at start of recoding, this is
+ interpreted as a request for the library to open the named file, either
+ in read or write mode, and also to close it afterwards. Standard input
+ or output is denoted by NAME being non-NULL, but otherwise empty.
+
+ If FILE is NULL in input mode, the in-memory read-only text extends from
+ BUFFER to LIMIT. There is no clue about if the buffer has been allocated
+ bigger. When CURSOR reaches LIMIT, there is no more data to get. If
+ FILE is NULL in output mode, the in-memory text extends from BUFFER to
+ CURSOR, but the buffer has been allocated until LIMIT. When CURSOR
+ reaches LIMIT, the buffer should be reallocated bigger, as needed. */
+
+struct recode_read_only_text
+ {
+ const char *name;
+ FILE *file;
+ const char *buffer;
+ const char *cursor;
+ const char *limit;
+ };
+
+struct recode_read_write_text
+ {
+ const char *name;
+ FILE *file;
+ char *buffer;
+ char *cursor;
+ char *limit;
+ };
+
+/* Tells how various passes are interconnected. */
+
+enum recode_sequence_strategy
+ {
+ RECODE_STRATEGY_UNDECIDED, /* sequencing strategy is undecided yet */
+ RECODE_SEQUENCE_IN_MEMORY, /* keep intermediate recodings in memory */
+ RECODE_SEQUENCE_WITH_FILES, /* do not fork, use intermediate files */
+ RECODE_SEQUENCE_WITH_PIPE /* fork processes connected with `pipe(2)' */
+ };
+
+/* Tells how to swap the incoming pair of bytes, while reading UCS-2. */
+
+enum recode_swap_input
+ {
+ RECODE_SWAP_UNDECIDED, /* the text has not been read yet */
+ RECODE_SWAP_NO, /* no need to swap pair of bytes */
+ RECODE_SWAP_YES /* should swap incoming pair of bytes */
+ };
+
+/*--------------------------------------------------------------------------.
+| A recoding subtask associates a particular recoding step to a given input |
+| text, for producing a corresponding output text. It also holds error |
+| related statistics for the execution of that step. |
+`--------------------------------------------------------------------------*/
+
+struct recode_subtask
+ {
+ /* Task for which this subtask is an element. */
+ RECODE_TASK task;
+
+ /* Step being executed by this subtask. */
+ RECODE_CONST_STEP step;
+
+ /* Current input and output. */
+ struct recode_read_only_text input;
+ struct recode_read_write_text output;
+
+ /* Line count and character count in last line, both zero-based. */
+ unsigned newline_count;
+ unsigned character_count;
+ };
+
+#define GOT_CHARACTER(Subtask) \
+ ((Subtask)->character_count++)
+
+#define GOT_NEWLINE(Subtask) \
+ ((Subtask)->newline_count++, (Subtask)->character_count = 0)
+
+/*--------------------------------------------------------------------------.
+| A recoding task associates a sequence of steps to a given input text, for |
+| producing a corresponding output text. It holds an array of subtasks. |
+`--------------------------------------------------------------------------*/
+
+struct recode_task
+ {
+ /* Associated request. */
+ RECODE_CONST_REQUEST request;
+
+ /* Initial input and final output. */
+ struct recode_read_only_text input;
+ struct recode_read_write_text output;
+
+ /* Tells how various recoding steps (passes) will be interconnected. */
+ enum recode_sequence_strategy strategy : 3;
+
+ /* Produce a byte order mark on UCS-2 output, insist for it on input. */
+ bool byte_order_mark : 1;
+
+ /* The input UCS-2 stream might have bytes swapped (status variable). */
+ enum recode_swap_input swap_input : 3;
+
+ /* Error processing. */
+ /* ----------------- */
+
+ /* At this level, there will be failure. */
+ enum recode_error fail_level : 5;
+
+ /* At this level, task should be interrupted. */
+ enum recode_error abort_level : 5;
+
+ /* Maximum error level met so far (status variable). */
+ enum recode_error error_so_far : 5;
+
+ /* Step being executed when error_so_far was last set. */
+ RECODE_CONST_STEP error_at_step;
+ };
+
+/* Specialities for some function arguments. */
+
+/* For restricting charset lists. */
+
+struct recode_known_pair
+ {
+ unsigned char left; /* first character in pair */
+ unsigned char right; /* second character in pair */
+ };
+
+/*----------------------.
+| Various definitions. |
+`----------------------*/
+
+typedef unsigned short recode_ucs2;
+
+/* Double tables are generated as arrays of indices into a pool of strips,
+ each strip holds STRIP_SIZE UCS-2 characters. Some memory is saved by
+ not allowing duplicate strips in the pool. A smaller strip size yields
+ more duplicates and so, a smaller pool, but then, tables get longer
+ because more strip indices are needed for each table. It is difficult to
+ predict the optimal strip size. Tests made on 1997-09-22 showed that a
+ strip size of 4 needs 27808 bytes total, 8 needs 22656, 16 needs 23584
+ and 32 needs 25568, so we decided to stick to a strip size of 8. Change
+ $STRIP_SIZE in `doc/tables.pl' if you change the value here. */
+
+/* "Are we speaking slips, strips or bars?" (of gold press'latinum :-) */
+#define STRIP_SIZE 8
+
+/* An struct strip_data is a pointer to a pool of strips, and an array
+ of 256/STRIP_SIZE offsets for the start of strips into the pool, each strip
+ describes STRIP_SIZE UCS-2 characters. A missing character in a strip is
+ indicated by all 16 bits set. */
+struct strip_data
+ {
+ const recode_ucs2 *pool;
+ const short offset[256 / STRIP_SIZE];
+ };
+
+struct ucs2_to_byte
+ {
+ recode_ucs2 code; /* UCS-2 value */
+ unsigned char byte; /* corresponding byte */
+ };
+
+struct ucs2_to_string
+ {
+ recode_ucs2 code; /* UCS-2 value */
+ unsigned short flags; /* various flags */
+ const char *string; /* corresponding string */
+ };
+
+/* Per module declarations. */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* recode.c. */
+
+#define ALLOC_SIZE(Variable, Size, Type) \
+ (Variable = (Type *) recode_malloc (outer, (Size)), Variable)
+
+#define ALLOC(Variable, Count, Type) \
+ ALLOC_SIZE (Variable, (Count) * sizeof (Type), Type)
+
+#define REALLOC(Variable, Count, Type) \
+ (Variable = (Type *) recode_realloc (outer, Variable, \
+ (Count) * sizeof(Type)), \
+ Variable)
+
+void recode_error PARAMS ((RECODE_OUTER, const char *, ...));
+void recode_perror PARAMS ((RECODE_OUTER, const char *, ...));
+void *recode_malloc PARAMS ((RECODE_OUTER, size_t));
+void *recode_realloc PARAMS ((RECODE_OUTER, void *, size_t));
+
+unsigned char *invert_table PARAMS ((RECODE_OUTER, const unsigned char *));
+bool complete_pairs PARAMS ((RECODE_OUTER, RECODE_STEP,
+ const struct recode_known_pair *, unsigned,
+ bool, bool));
+bool transform_byte_to_ucs2 PARAMS ((RECODE_SUBTASK));
+bool init_ucs2_to_byte PARAMS ((RECODE_STEP, RECODE_CONST_REQUEST,
+ RECODE_CONST_OPTION_LIST,
+ RECODE_CONST_OPTION_LIST));
+bool transform_ucs2_to_byte PARAMS ((RECODE_SUBTASK));
+
+/* charname.c and fr-charname.c. */
+
+const char *ucs2_to_charname PARAMS ((int));
+const char *ucs2_to_french_charname PARAMS ((int));
+
+/* charset.c. */
+
+enum alias_find_type
+{
+ SYMBOL_CREATE_CHARSET, /* charset as given, create as needed */
+ SYMBOL_CREATE_DATA_SURFACE, /* data surface as given, create as needed */
+ SYMBOL_CREATE_TREE_SURFACE, /* tree surface as given, create as needed */
+ ALIAS_FIND_AS_CHARSET, /* disambiguate only as a charset */
+ ALIAS_FIND_AS_SURFACE, /* disambiguate only as a surface */
+ ALIAS_FIND_AS_EITHER /* disambiguate as a charset or a surface */
+};
+
+int code_to_ucs2 (RECODE_CONST_SYMBOL, unsigned);
+bool prepare_for_aliases PARAMS ((RECODE_OUTER));
+RECODE_ALIAS declare_alias PARAMS ((RECODE_OUTER,
+ const char *, const char *));
+bool declare_implied_surface PARAMS ((RECODE_OUTER, RECODE_ALIAS,
+ RECODE_CONST_SYMBOL));
+bool make_argmatch_arrays PARAMS ((RECODE_OUTER));
+RECODE_ALIAS find_alias PARAMS ((RECODE_OUTER, const char *,
+ enum alias_find_type));
+bool find_and_report_subsets PARAMS ((RECODE_OUTER));
+bool decode_known_pairs PARAMS ((RECODE_OUTER, const char *));
+
+/* combine.c. */
+
+#define DONE NOT_A_CHARACTER
+#define ELSE BYTE_ORDER_MARK_SWAPPED
+
+bool init_explode PARAMS ((RECODE_STEP, RECODE_CONST_REQUEST,
+ RECODE_CONST_OPTION_LIST,
+ RECODE_CONST_OPTION_LIST));
+bool explode_byte_byte PARAMS ((RECODE_SUBTASK));
+bool explode_ucs2_byte PARAMS ((RECODE_SUBTASK));
+bool explode_byte_ucs2 PARAMS ((RECODE_SUBTASK));
+bool explode_ucs2_ucs2 PARAMS ((RECODE_SUBTASK));
+
+bool init_combine PARAMS ((RECODE_STEP, RECODE_CONST_REQUEST,
+ RECODE_CONST_OPTION_LIST,
+ RECODE_CONST_OPTION_LIST));
+bool combine_byte_byte PARAMS ((RECODE_SUBTASK));
+bool combine_ucs2_byte PARAMS ((RECODE_SUBTASK));
+bool combine_byte_ucs2 PARAMS ((RECODE_SUBTASK));
+bool combine_ucs2_ucs2 PARAMS ((RECODE_SUBTASK));
+
+/* freeze.c. */
+
+void recode_freeze_tables PARAMS ((RECODE_OUTER));
+
+/* iconv.c. */
+
+bool transform_with_iconv PARAMS ((RECODE_SUBTASK));
+
+/* localcharset.c. */
+
+const char *locale_charset PARAMS ((void));
+
+/* names.c. */
+
+bool should_prefer_french PARAMS ((void));
+
+/* mixed.c. */
+
+bool transform_c_source PARAMS ((RECODE_TASK));
+bool transform_po_source PARAMS ((RECODE_TASK));
+
+/* outer.c. */
+
+bool reversibility PARAMS ((RECODE_SUBTASK, unsigned));
+RECODE_SINGLE declare_single
+ PARAMS ((RECODE_OUTER, const char *, const char *,
+ struct recode_quality,
+ bool (*) (RECODE_STEP, RECODE_CONST_REQUEST,
+ RECODE_CONST_OPTION_LIST, RECODE_CONST_OPTION_LIST),
+ bool (*) (RECODE_SUBTASK)));
+bool declare_iconv PARAMS ((RECODE_OUTER, const char *, const char *));
+bool declare_explode_data PARAMS ((RECODE_OUTER, const unsigned short *,
+ const char *, const char *));
+bool declare_strip_data PARAMS ((RECODE_OUTER, struct strip_data *,
+ const char *));
+
+/* pool.c. */
+
+extern const recode_ucs2 ucs2_data_pool[];
+
+/* request.c. */
+
+char *edit_sequence PARAMS ((RECODE_REQUEST, bool));
+
+/* rfc1345.c. */
+
+const char *ucs2_to_rfc1345 PARAMS ((recode_ucs2));
+
+/* task.c. */
+
+#if USE_HELPERS || !INLINE_HARDER
+int get_byte_helper PARAMS ((RECODE_SUBTASK));
+#endif
+void put_byte_helper PARAMS ((int, RECODE_SUBTASK));
+bool recode_if_nogo PARAMS ((enum recode_error, RECODE_SUBTASK));
+bool transform_byte_to_byte PARAMS ((RECODE_SUBTASK));
+bool transform_byte_to_variable PARAMS ((RECODE_SUBTASK));
+
+/* ucs.c. */
+
+/* Replacement character for when correctly formed character has no
+ equivalent. It is not used for ill-formed characters, however. */
+#define REPLACEMENT_CHARACTER 0xFFFD
+
+/* Device for detecting if bytes are swapped. This value should appear first
+ in UCS-2 files. */
+#define BYTE_ORDER_MARK 0xFEFF
+#define BYTE_ORDER_MARK_SWAPPED 0xFFFE
+
+/* Never an UCS-2 character. */
+#define NOT_A_CHARACTER 0xFFFF
+
+bool get_ucs2 PARAMS ((unsigned *, RECODE_SUBTASK));
+bool get_ucs4 PARAMS ((unsigned *, RECODE_SUBTASK));
+bool put_ucs2 PARAMS ((unsigned, RECODE_SUBTASK));
+bool put_ucs4 PARAMS ((unsigned, RECODE_SUBTASK));
+
+#ifdef __cplusplus
+}
+#endif
+
+/* Global macros specifically for Recode. */
+
+/* Giving a name to the ASCII character assigned to position 0. */
+#define NUL '\0'
+
+#ifdef FLEX_SCANNER
+# if !INLINE_HARDER
+# undef USE_HELPERS
+# define USE_HELPERS 1
+# endif
+#endif
+
+#if USE_HELPERS
+
+# define get_byte(Subtask) \
+ get_byte_helper ((Subtask))
+
+# define put_byte(Byte, Subtask) \
+ put_byte_helper ((Byte), (Subtask))
+
+#else /* not USE_HELPERS */
+
+# define get_byte(Subtask) \
+ ((Subtask)->input.file \
+ ? getc ((Subtask)->input.file) \
+ : (Subtask)->input.cursor == (Subtask)->input.limit \
+ ? EOF \
+ : (unsigned char) *(Subtask)->input.cursor++)
+
+# define put_byte(Byte, Subtask) \
+ ((Subtask)->output.file \
+ ? (putc ((char) (Byte), (Subtask)->output.file), 0) \
+ : (Subtask)->output.cursor == (Subtask)->output.limit \
+ ? (put_byte_helper ((int) (Byte), (Subtask)), 0) \
+ : (*(Subtask)->output.cursor++ = (Byte), 0))
+
+#endif /* not USE_HELPERS */
+
+#ifdef FLEX_SCANNER
+
+# define PUT_NON_DIACRITIC_BYTE(Byte, Subtask) \
+ if (request->diacritics_only) \
+ ECHO; \
+ else \
+ put_byte ((Byte), (Subtask))
+
+/* ECHO may not have a (Subtask) argument, because some ECHO without argument
+ is generated by Flex -- yet Vern tells me it won't happen if I inhibit
+ the rule about default copying. Happily enough, within Flex, Subtask is
+ `subtask' quite systematically, so it may be used as a constant, here. */
+# define ECHO \
+ do { \
+ const char *cursor = librecode_yytext; \
+ int counter = librecode_yyleng; \
+ for (; counter > 0; cursor++, counter--) \
+ put_byte (*cursor, subtask); \
+ } while (false)
+
+#endif /* FLEX_SCANNER */
View
4 tests/ChangeLog
@@ -1,3 +1,7 @@
+2008-03-16 François Pinard <pinard@iro.umontreal.ca>
+
+ * Recode.pyx: Simplify, now that cleaner.h gets included.
+
2008-03-13 François Pinard <pinard@iro.umontreal.ca>
* t40_java.py: New.
View
604 tests/Recode.c
@@ -1,4 +1,4 @@
-/* Generated by Pyrex 0.9.6.4 on Fri Mar 14 20:07:34 2008 */
+/* Generated by Pyrex 0.9.6.4 on Sun Mar 16 22:09:18 2008 */
#define PY_SSIZE_T_CLEAN
#include "Python.h"
@@ -167,45 +167,45 @@ static int __pyx_f_6Recode_5Outer___init__(PyObject *__pyx_v_self, PyObject *__p
Py_INCREF(__pyx_v_iconv);
Py_INCREF(__pyx_v_strict);
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":581 */
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":539 */
__pyx_v_flags = 0;
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":582 */
- __pyx_1 = PyObject_IsTrue(__pyx_v_auto_abort); if (__pyx_1 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 582; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":540 */
+ __pyx_1 = PyObject_IsTrue(__pyx_v_auto_abort); if (__pyx_1 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 540; 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":584 */
- __pyx_1 = PyObject_IsTrue(__pyx_v_iconv); if (__pyx_1 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 584; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":542 */
+ __pyx_1 = PyObject_IsTrue(__pyx_v_iconv); if (__pyx_1 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 542; 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":586 */
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":544 */
((struct __pyx_obj_6Recode_Outer *)__pyx_v_self)->outer = recode_new_outer(__pyx_v_flags);
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":587 */
- __pyx_1 = PyObject_IsTrue(__pyx_v_strict); if (__pyx_1 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 587; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":545 */
+ __pyx_1 = PyObject_IsTrue(__pyx_v_strict); if (__pyx_1 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 545; goto __pyx_L1;}
if (__pyx_1) {
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":588 */
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":546 */
__pyx_v_single = ((struct __pyx_obj_6Recode_Outer *)__pyx_v_self)->outer->single_list;
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":589 */
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":547 */
while (1) {
__pyx_2 = (__pyx_v_single != NULL);
if (!__pyx_2) break;
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":590 */
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":548 */
__pyx_v_single->fallback_routine = NULL;
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":591 */
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":549 */
__pyx_v_single = __pyx_v_single->next;
}
goto __pyx_L4;
@@ -240,7 +240,7 @@ static PyObject *__pyx_f_6Recode_5Outer_default_charset(PyObject *__pyx_v_self,
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 = 597; goto __pyx_L1;}
+ __pyx_1 = PyString_FromString(locale_charset()); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 555; goto __pyx_L1;}
__pyx_r = __pyx_1;
__pyx_1 = 0;
goto __pyx_L0;
@@ -272,21 +272,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":600 */
- __pyx_1 = PyList_New(0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 600; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":558 */
+ __pyx_1 = PyList_New(0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 558; 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":602 */
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":560 */
__pyx_v_symbol = ((struct __pyx_obj_6Recode_Outer *)__pyx_v_self)->outer->symbol_list;
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":603 */
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":561 */
while (1) {
__pyx_2 = (__pyx_v_symbol != NULL);
if (!__pyx_2) break;
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":604 */
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":562 */
__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);
@@ -298,24 +298,24 @@ 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 = 608; goto __pyx_L1;}
- __pyx_3 = PyString_FromString(__pyx_v_symbol->name); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 608; goto __pyx_L1;}
- __pyx_4 = PyTuple_New(1); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 608; goto __pyx_L1;}
+ __pyx_1 = PyObject_GetAttr(__pyx_v_list, __pyx_n_append); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 566; goto __pyx_L1;}
+ __pyx_3 = PyString_FromString(__pyx_v_symbol->name); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 566; goto __pyx_L1;}
+ __pyx_4 = PyTuple_New(1); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 566; 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 = 608; goto __pyx_L1;}
+ __pyx_3 = PyObject_CallObject(__pyx_1, __pyx_4); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 566; goto __pyx_L1;}
Py_DECREF(__pyx_1); __pyx_1 = 0;
Py_DECREF(__pyx_4); __pyx_4 = 0;
Py_DECREF(__pyx_3); __pyx_3 = 0;
goto __pyx_L4;
}
__pyx_L4:;
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":609 */
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":567 */
__pyx_v_symbol = __pyx_v_symbol->next;
}
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":610 */
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":568 */
Py_INCREF(__pyx_v_list);
__pyx_r = __pyx_v_list;
goto __pyx_L0;
@@ -348,41 +348,41 @@ 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":613 */
- __pyx_1 = PyList_New(0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 613; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":571 */
+ __pyx_1 = PyList_New(0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 571; 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":615 */
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":573 */
__pyx_v_symbol = ((struct __pyx_obj_6Recode_Outer *)__pyx_v_self)->outer->symbol_list;
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":616 */
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":574 */
while (1) {
__pyx_2 = (__pyx_v_symbol != NULL);
if (!__pyx_2) break;
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":617 */
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":575 */
__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 = 618; goto __pyx_L1;}
- __pyx_3 = PyString_FromString(__pyx_v_symbol->name); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 618; goto __pyx_L1;}
- __pyx_4 = PyTuple_New(1); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 618; goto __pyx_L1;}
+ __pyx_1 = PyObject_GetAttr(__pyx_v_list, __pyx_n_append); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 576; goto __pyx_L1;}
+ __pyx_3 = PyString_FromString(__pyx_v_symbol->name); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 576; goto __pyx_L1;}
+ __pyx_4 = PyTuple_New(1); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 576; 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 = 618; goto __pyx_L1;}
+ __pyx_3 = PyObject_CallObject(__pyx_1, __pyx_4); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 576; goto __pyx_L1;}
Py_DECREF(__pyx_1); __pyx_1 = 0;
Py_DECREF(__pyx_4); __pyx_4 = 0;
Py_DECREF(__pyx_3); __pyx_3 = 0;
goto __pyx_L4;
}
__pyx_L4:;
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":619 */
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":577 */
__pyx_v_symbol = __pyx_v_symbol->next;
}
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":620 */
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":578 */
Py_INCREF(__pyx_v_list);
__pyx_r = __pyx_v_list;
goto __pyx_L0;
@@ -417,21 +417,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":623 */
- __pyx_1 = ((enum recode_list_format)PyInt_AsLong(__pyx_v_format)); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 623; 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 = 623; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":581 */
+ __pyx_1 = ((enum recode_list_format)PyInt_AsLong(__pyx_v_format)); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 581; goto __pyx_L1;}
+ __pyx_2 = PyInt_FromLong(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 = 581; 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":624 */
- __pyx_3 = PyObject_IsTrue(__pyx_v_ok); if (__pyx_3 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 624; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":582 */
+ __pyx_3 = PyObject_IsTrue(__pyx_v_ok); if (__pyx_3 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 582; 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 = 625; goto __pyx_L1;}
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_n_error); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 583; goto __pyx_L1;}
__Pyx_Raise(__pyx_2, 0, 0);
Py_DECREF(__pyx_2); __pyx_2 = 0;
- {__pyx_filename = __pyx_f[0]; __pyx_lineno = 625; goto __pyx_L1;}
+ {__pyx_filename = __pyx_f[0]; __pyx_lineno = 583; goto __pyx_L1;}
goto __pyx_L2;
}
__pyx_L2:;
@@ -461,20 +461,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":628 */
- __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 = 628; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":586 */
+ __pyx_1 = PyInt_FromLong(list_full_charset(((struct __pyx_obj_6Recode_Outer *)__pyx_v_self)->outer,NULL)); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 586; 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":629 */
- __pyx_2 = PyObject_IsTrue(__pyx_v_ok); if (__pyx_2 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 629; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":587 */
+ __pyx_2 = PyObject_IsTrue(__pyx_v_ok); if (__pyx_2 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 587; 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 = 630; goto __pyx_L1;}
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_n_error); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 588; goto __pyx_L1;}
__Pyx_Raise(__pyx_1, 0, 0);
Py_DECREF(__pyx_1); __pyx_1 = 0;
- {__pyx_filename = __pyx_f[0]; __pyx_lineno = 630; goto __pyx_L1;}
+ {__pyx_filename = __pyx_f[0]; __pyx_lineno = 588; goto __pyx_L1;}
goto __pyx_L2;
}
__pyx_L2:;
@@ -508,34 +508,34 @@ static PyObject *__pyx_f_6Recode_5Outer_recode(PyObject *__pyx_v_self, PyObject
Py_INCREF(__pyx_v_self);
__pyx_v_request = Py_None; Py_INCREF(Py_None);
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":634 */
- __pyx_1 = PyTuple_New(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 634; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":592 */
+ __pyx_1 = PyTuple_New(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 592; goto __pyx_L1;}
Py_INCREF(__pyx_v_self);
PyTuple_SET_ITEM(__pyx_1, 0, __pyx_v_self);
- __pyx_2 = PyObject_CallObject(((PyObject*)__pyx_ptype_6Recode_Request), __pyx_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 634; goto __pyx_L1;}
+ __pyx_2 = PyObject_CallObject(((PyObject*)__pyx_ptype_6Recode_Request), __pyx_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 592; goto __pyx_L1;}
Py_DECREF(__pyx_1); __pyx_1 = 0;
Py_DECREF(__pyx_v_request);
__pyx_v_request = __pyx_2;
__pyx_2 = 0;
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":635 */
- __pyx_1 = PyObject_GetAttr(__pyx_v_request, __pyx_n_scan); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 635; goto __pyx_L1;}
- __pyx_2 = PyString_FromString(__pyx_v_command); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 635; goto __pyx_L1;}
- __pyx_3 = PyTuple_New(1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 635; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":593 */
+ __pyx_1 = PyObject_GetAttr(__pyx_v_request, __pyx_n_scan); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 593; goto __pyx_L1;}
+ __pyx_2 = PyString_FromString(__pyx_v_command); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 593; goto __pyx_L1;}
+ __pyx_3 = PyTuple_New(1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 593; goto __pyx_L1;}
PyTuple_SET_ITEM(__pyx_3, 0, __pyx_2);
__pyx_2 = 0;
- __pyx_2 = PyObject_CallObject(__pyx_1, __pyx_3); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 635; goto __pyx_L1;}
+ __pyx_2 = PyObject_CallObject(__pyx_1, __pyx_3); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 593; goto __pyx_L1;}
Py_DECREF(__pyx_1); __pyx_1 = 0;
Py_DECREF(__pyx_3); __pyx_3 = 0;
Py_DECREF(__pyx_2); __pyx_2 = 0;
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":636 */
- __pyx_1 = PyObject_GetAttr(__pyx_v_request, __pyx_n_string); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 636; goto __pyx_L1;}
- __pyx_3 = PyString_FromString(__pyx_v_input); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 636; goto __pyx_L1;}
- __pyx_2 = PyTuple_New(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 636; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":594 */
+ __pyx_1 = PyObject_GetAttr(__pyx_v_request, __pyx_n_string); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 594; goto __pyx_L1;}
+ __pyx_3 = PyString_FromString(__pyx_v_input); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 594; goto __pyx_L1;}
+ __pyx_2 = PyTuple_New(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 594; goto __pyx_L1;}
PyTuple_SET_ITEM(__pyx_2, 0, __pyx_3);
__pyx_3 = 0;
- __pyx_3 = PyObject_CallObject(__pyx_1, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 636; goto __pyx_L1;}
+ __pyx_3 = PyObject_CallObject(__pyx_1, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 594; goto __pyx_L1;}
Py_DECREF(__pyx_1); __pyx_1 = 0;
Py_DECREF(__pyx_2); __pyx_2 = 0;
__pyx_r = __pyx_3;
@@ -564,7 +564,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 = 643; goto __pyx_L1;}
+ if (!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_outer), __pyx_ptype_6Recode_Outer, 1, "outer")) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 601; goto __pyx_L1;}
((struct __pyx_obj_6Recode_Request *)__pyx_v_self)->request = recode_new_request(__pyx_v_outer->outer);
__pyx_r = 0;
@@ -603,25 +603,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":650 */
- __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 = 650; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":608 */
+ __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 = 608; 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":651 */
- __pyx_1 = __Pyx_GetName(__pyx_b, __pyx_n_int); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 651; goto __pyx_L1;}
- __pyx_2 = PyTuple_New(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 651; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":609 */
+ __pyx_1 = __Pyx_GetName(__pyx_b, __pyx_n_int); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 609; goto __pyx_L1;}
+ __pyx_2 = PyTuple_New(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 609; 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 = 651; goto __pyx_L1;}
+ __pyx_3 = PyObject_CallObject(__pyx_1, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 609; 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 = 651; goto __pyx_L1;}
+ __pyx_4 = ((enum __pyx_t_6Recode_bool)PyInt_AsLong(__pyx_3)); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 609; 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":652 */
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":610 */
Py_INCREF(__pyx_v_previous);
__pyx_r = __pyx_v_previous;
goto __pyx_L0;
@@ -654,20 +654,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":655 */
- __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 = 655; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":613 */
+ __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 = 613; 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":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":614 */
+ __pyx_2 = PyObject_IsTrue(__pyx_v_ok); if (__pyx_2 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 614; 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 = 615; 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 = 615; goto __pyx_L1;}
goto __pyx_L2;
}
__pyx_L2:;
@@ -700,38 +700,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":660 */
- __pyx_1 = PyList_New(0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 660; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":618 */
+ __pyx_1 = PyList_New(0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 618; 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":663 */
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":621 */
__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":664 */
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":622 */
__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":665 */
- __pyx_1 = PyObject_GetAttr(__pyx_v_list, __pyx_n_append); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 665; goto __pyx_L1;}
- __pyx_3 = PyString_FromString(__pyx_v_step.before->name); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 665; goto __pyx_L1;}
- __pyx_4 = PyString_FromString(__pyx_v_step.after->name); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 665; goto __pyx_L1;}
- __pyx_5 = PyTuple_New(2); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 665; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":623 */
+ __pyx_1 = PyObject_GetAttr(__pyx_v_list, __pyx_n_append); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 623; goto __pyx_L1;}
+ __pyx_3 = PyString_FromString(__pyx_v_step.before->name); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 623; goto __pyx_L1;}
+ __pyx_4 = PyString_FromString(__pyx_v_step.after->name); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 623; goto __pyx_L1;}
+ __pyx_5 = PyTuple_New(2); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 623; 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 = 665; goto __pyx_L1;}
+ __pyx_3 = PyTuple_New(1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 623; 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 = 665; goto __pyx_L1;}
+ __pyx_4 = PyObject_CallObject(__pyx_1, __pyx_3); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 623; 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":666 */
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":624 */
Py_INCREF(__pyx_v_list);
__pyx_r = __pyx_v_list;
goto __pyx_L0;
@@ -767,32 +767,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":671 */
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":629 */
__pyx_v_outer = ((struct __pyx_obj_6Recode_Request *)__pyx_v_self)->request->outer;
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":672 */
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":630 */
__pyx_v_saved = __pyx_v_outer->iconv_pivot->ignore;
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":673 */
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":631 */
__pyx_v_outer->iconv_pivot->ignore = __pyx_e_6Recode_true;
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":674 */
- __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 = 674; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":632 */
+ __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 = 632; 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":676 */
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":634 */
__pyx_v_outer->iconv_pivot->ignore = __pyx_v_saved;
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":677 */
- __pyx_2 = PyObject_IsTrue(__pyx_v_ok); if (__pyx_2 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 677; goto __pyx_L1;}
+ /* "/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;}
__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 = 678; goto __pyx_L1;}
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_n_error); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 636; goto __pyx_L1;}
__Pyx_Raise(__pyx_1, 0, 0);
Py_DECREF(__pyx_1); __pyx_1 = 0;
- {__pyx_filename = __pyx_f[0]; __pyx_lineno = 678; goto __pyx_L1;}
+ {__pyx_filename = __pyx_f[0]; __pyx_lineno = 636; goto __pyx_L1;}
goto __pyx_L2;
}
__pyx_L2:;
@@ -820,22 +820,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":682 */
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":640 */
__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":683 */
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":641 */
__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 = 684; goto __pyx_L1;}
+ __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_n_error); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 642; goto __pyx_L1;}
__Pyx_Raise(__pyx_2, 0, 0);
Py_DECREF(__pyx_2); __pyx_2 = 0;
- {__pyx_filename = __pyx_f[0]; __pyx_lineno = 684; goto __pyx_L1;}
+ {__pyx_filename = __pyx_f[0]; __pyx_lineno = 642; goto __pyx_L1;}
goto __pyx_L2;
}
__pyx_L2:;
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":685 */
- __pyx_2 = PyString_FromString(__pyx_v_result); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 685; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":643 */
+ __pyx_2 = PyString_FromString(__pyx_v_result); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 643; goto __pyx_L1;}
__pyx_r = __pyx_2;
__pyx_2 = 0;
goto __pyx_L0;
@@ -1253,342 +1253,342 @@ 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 = 575; goto __pyx_L1;}
- if (PyObject_SetAttrString(__pyx_m, "Outer", (PyObject *)&__pyx_type_6Recode_Outer) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 575; goto __pyx_L1;}
+ if (PyType_Ready(&__pyx_type_6Recode_Outer) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 533; goto __pyx_L1;}
+ if (PyObject_SetAttrString(__pyx_m, "Outer", (PyObject *)&__pyx_type_6Recode_Outer) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 533; 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 = 640; goto __pyx_L1;}
- if (PyObject_SetAttrString(__pyx_m, "Request", (PyObject *)&__pyx_type_6Recode_Request) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 640; goto __pyx_L1;}
+ if (PyType_Ready(&__pyx_type_6Recode_Request) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 598; goto __pyx_L1;}
+ if (PyObject_SetAttrString(__pyx_m, "Request", (PyObject *)&__pyx_type_6Recode_Request) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 598; goto __pyx_L1;}
__pyx_ptype_6Recode_Request = &__pyx_type_6Recode_Request;
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":494 */
- __pyx_1 = PyDict_New(); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 494; goto __pyx_L1;}
- __pyx_2 = __Pyx_GetName(__pyx_b, __pyx_n_Exception); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 494; goto __pyx_L1;}
- __pyx_3 = PyTuple_New(1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 494; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":452 */
+ __pyx_1 = PyDict_New(); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 452; goto __pyx_L1;}
+ __pyx_2 = __Pyx_GetName(__pyx_b, __pyx_n_Exception); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 452; goto __pyx_L1;}
+ __pyx_3 = PyTuple_New(1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 452; 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 = 494; 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 = 452; 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 = 494; goto __pyx_L1;}
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_error, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 452; 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":499 */
- __pyx_3 = PyInt_FromLong(RECODE_NO_SYMBOL_TYPE); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 499; goto __pyx_L1;}
- if (PyObject_SetAttr(__pyx_m, __pyx_n_NO_SYMBOL_TYPE, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 499; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":457 */
+ __pyx_3 = PyInt_FromLong(RECODE_NO_SYMBOL_TYPE); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 457; goto __pyx_L1;}
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_NO_SYMBOL_TYPE, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 457; goto __pyx_L1;}
Py_DECREF(__pyx_3); __pyx_3 = 0;
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":500 */
- __pyx_2 = PyInt_FromLong(RECODE_CHARSET); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 500; goto __pyx_L1;}
- if (PyObject_SetAttr(__pyx_m, __pyx_n_CHARSET, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 500; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":458 */
+ __pyx_2 = PyInt_FromLong(RECODE_CHARSET); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 458; goto __pyx_L1;}
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_CHARSET, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 458; goto __pyx_L1;}
Py_DECREF(__pyx_2); __pyx_2 = 0;
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":501 */
- __pyx_1 = PyInt_FromLong(RECODE_DATA_SURFACE); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 501; goto __pyx_L1;}
- if (PyObject_SetAttr(__pyx_m, __pyx_n_DATA_SURFACE, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 501; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":459 */
+ __pyx_1 = PyInt_FromLong(RECODE_DATA_SURFACE); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 459; goto __pyx_L1;}
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_DATA_SURFACE, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 459; goto __pyx_L1;}
Py_DECREF(__pyx_1); __pyx_1 = 0;
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":502 */
- __pyx_3 = PyInt_FromLong(RECODE_TREE_SURFACE); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 502; goto __pyx_L1;}
- if (PyObject_SetAttr(__pyx_m, __pyx_n_TREE_SURFACE, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 502; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":460 */
+ __pyx_3 = PyInt_FromLong(RECODE_TREE_SURFACE); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 460; goto __pyx_L1;}
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_TREE_SURFACE, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 460; goto __pyx_L1;}
Py_DECREF(__pyx_3); __pyx_3 = 0;
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":504 */
- __pyx_2 = PyInt_FromLong(RECODE_NO_CHARSET_DATA); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 504; goto __pyx_L1;}
- if (PyObject_SetAttr(__pyx_m, __pyx_n_NO_CHARSET_DATA, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 504; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":462 */
+ __pyx_2 = PyInt_FromLong(RECODE_NO_CHARSET_DATA); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 462; goto __pyx_L1;}
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_NO_CHARSET_DATA, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 462; goto __pyx_L1;}
Py_DECREF(__pyx_2); __pyx_2 = 0;
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":505 */
- __pyx_1 = PyInt_FromLong(RECODE_STRIP_DATA); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 505; goto __pyx_L1;}
- if (PyObject_SetAttr(__pyx_m, __pyx_n_STRIP_DATA, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 505; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":463 */
+ __pyx_1 = PyInt_FromLong(RECODE_STRIP_DATA); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 463; goto __pyx_L1;}
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_STRIP_DATA, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 463; goto __pyx_L1;}
Py_DECREF(__pyx_1); __pyx_1 = 0;
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":506 */
- __pyx_3 = PyInt_FromLong(RECODE_EXPLODE_DATA); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 506; goto __pyx_L1;}
- if (PyObject_SetAttr(__pyx_m, __pyx_n_EXPLODE_DATA, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 506; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":464 */
+ __pyx_3 = PyInt_FromLong(RECODE_EXPLODE_DATA); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 464; goto __pyx_L1;}
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_EXPLODE_DATA, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 464; goto __pyx_L1;}
Py_DECREF(__pyx_3); __pyx_3 = 0;
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":508 */
- __pyx_2 = PyInt_FromLong(RECODE_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 508; goto __pyx_L1;}
- if (PyObject_SetAttr(__pyx_m, __pyx_n_SIZE_1, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 508; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":466 */
+ __pyx_2 = PyInt_FromLong(RECODE_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 466; goto __pyx_L1;}
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_SIZE_1, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 466; goto __pyx_L1;}
Py_DECREF(__pyx_2); __pyx_2 = 0;
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":509 */
- __pyx_1 = PyInt_FromLong(RECODE_2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 509; goto __pyx_L1;}
- if (PyObject_SetAttr(__pyx_m, __pyx_n_SIZE_2, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 509; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":467 */
+ __pyx_1 = PyInt_FromLong(RECODE_2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 467; goto __pyx_L1;}
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_SIZE_2, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 467; goto __pyx_L1;}
Py_DECREF(__pyx_1); __pyx_1 = 0;
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":510 */
- __pyx_3 = PyInt_FromLong(RECODE_4); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 510; goto __pyx_L1;}
- if (PyObject_SetAttr(__pyx_m, __pyx_n_SIZE_4, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 510; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":468 */
+ __pyx_3 = PyInt_FromLong(RECODE_4); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 468; goto __pyx_L1;}
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_SIZE_4, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 468; goto __pyx_L1;}
Py_DECREF(__pyx_3); __pyx_3 = 0;
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":511 */
- __pyx_2 = PyInt_FromLong(RECODE_N); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 511; goto __pyx_L1;}
- if (PyObject_SetAttr(__pyx_m, __pyx_n_SIZE_N, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 511; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":469 */
+ __pyx_2 = PyInt_FromLong(RECODE_N); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 469; goto __pyx_L1;}
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_SIZE_N, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 469; goto __pyx_L1;}
Py_DECREF(__pyx_2); __pyx_2 = 0;
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":513 */
- __pyx_1 = PyInt_FromLong(RECODE_NO_STEP_TABLE); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 513; goto __pyx_L1;}
- if (PyObject_SetAttr(__pyx_m, __pyx_n_NO_STEP_TABLE, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 513; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":471 */
+ __pyx_1 = PyInt_FromLong(RECODE_NO_STEP_TABLE); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 471; goto __pyx_L1;}
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_NO_STEP_TABLE, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 471; goto __pyx_L1;}
Py_DECREF(__pyx_1); __pyx_1 = 0;
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":514 */
- __pyx_3 = PyInt_FromLong(RECODE_BYTE_TO_BYTE); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 514; goto __pyx_L1;}
- if (PyObject_SetAttr(__pyx_m, __pyx_n_BYTE_TO_BYTE, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 514; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":472 */
+ __pyx_3 = PyInt_FromLong(RECODE_BYTE_TO_BYTE); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 472; goto __pyx_L1;}
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_BYTE_TO_BYTE, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 472; goto __pyx_L1;}
Py_DECREF(__pyx_3); __pyx_3 = 0;
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":515 */
- __pyx_2 = PyInt_FromLong(RECODE_BYTE_TO_STRING); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 515; goto __pyx_L1;}
- if (PyObject_SetAttr(__pyx_m, __pyx_n_BYTE_TO_STRING, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 515; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":473 */
+ __pyx_2 = PyInt_FromLong(RECODE_BYTE_TO_STRING); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 473; goto __pyx_L1;}
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_BYTE_TO_STRING, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 473; goto __pyx_L1;}
Py_DECREF(__pyx_2); __pyx_2 = 0;
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":516 */
- __pyx_1 = PyInt_FromLong(RECODE_UCS2_TO_BYTE); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 516; goto __pyx_L1;}
- if (PyObject_SetAttr(__pyx_m, __pyx_n_UCS2_TO_BYTE, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 516; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":474 */
+ __pyx_1 = PyInt_FromLong(RECODE_UCS2_TO_BYTE); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 474; goto __pyx_L1;}
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_UCS2_TO_BYTE, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 474; goto __pyx_L1;}
Py_DECREF(__pyx_1); __pyx_1 = 0;
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":517 */
- __pyx_3 = PyInt_FromLong(RECODE_UCS2_TO_STRING); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 517; goto __pyx_L1;}
- if (PyObject_SetAttr(__pyx_m, __pyx_n_UCS2_TO_STRING, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 517; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":475 */
+ __pyx_3 = PyInt_FromLong(RECODE_UCS2_TO_STRING); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 475; goto __pyx_L1;}
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_UCS2_TO_STRING, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 475; goto __pyx_L1;}
Py_DECREF(__pyx_3); __pyx_3 = 0;
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":518 */
- __pyx_2 = PyInt_FromLong(RECODE_STRING_TO_UCS2); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 518; goto __pyx_L1;}
- if (PyObject_SetAttr(__pyx_m, __pyx_n_STRING_TO_UCS2, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 518; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":476 */
+ __pyx_2 = PyInt_FromLong(RECODE_STRING_TO_UCS2); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 476; goto __pyx_L1;}
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_STRING_TO_UCS2, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 476; goto __pyx_L1;}
Py_DECREF(__pyx_2); __pyx_2 = 0;
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":519 */
- __pyx_1 = PyInt_FromLong(RECODE_COMBINE_EXPLODE); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 519; goto __pyx_L1;}
- if (PyObject_SetAttr(__pyx_m, __pyx_n_COMBINE_EXPLODE, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 519; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":477 */
+ __pyx_1 = PyInt_FromLong(RECODE_COMBINE_EXPLODE); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 477; goto __pyx_L1;}
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_COMBINE_EXPLODE, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 477; goto __pyx_L1;}
Py_DECREF(__pyx_1); __pyx_1 = 0;
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":520 */
- __pyx_3 = PyInt_FromLong(RECODE_COMBINE_STEP); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 520; goto __pyx_L1;}
- if (PyObject_SetAttr(__pyx_m, __pyx_n_COMBINE_STEP, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 520; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":478 */
+ __pyx_3 = PyInt_FromLong(RECODE_COMBINE_STEP); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 478; goto __pyx_L1;}
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_COMBINE_STEP, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 478; goto __pyx_L1;}
Py_DECREF(__pyx_3); __pyx_3 = 0;
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":521 */
- __pyx_2 = PyInt_FromLong(RECODE_EXPLODE_STEP); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 521; goto __pyx_L1;}
- if (PyObject_SetAttr(__pyx_m, __pyx_n_EXPLODE_STEP, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 521; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":479 */
+ __pyx_2 = PyInt_FromLong(RECODE_EXPLODE_STEP); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 479; goto __pyx_L1;}
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_EXPLODE_STEP, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 479; goto __pyx_L1;}
Py_DECREF(__pyx_2); __pyx_2 = 0;
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":523 */
- __pyx_1 = PyInt_FromLong(RECODE_STRATEGY_UNDECIDED); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 523; goto __pyx_L1;}
- if (PyObject_SetAttr(__pyx_m, __pyx_n_STRATEGY_UNDECIDED, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 523; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":481 */
+ __pyx_1 = PyInt_FromLong(RECODE_STRATEGY_UNDECIDED); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 481; goto __pyx_L1;}
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_STRATEGY_UNDECIDED, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 481; goto __pyx_L1;}
Py_DECREF(__pyx_1); __pyx_1 = 0;
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":524 */
- __pyx_3 = PyInt_FromLong(RECODE_SEQUENCE_IN_MEMORY); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 524; goto __pyx_L1;}
- if (PyObject_SetAttr(__pyx_m, __pyx_n_SEQUENCE_IN_MEMORY, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 524; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":482 */
+ __pyx_3 = PyInt_FromLong(RECODE_SEQUENCE_IN_MEMORY); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 482; goto __pyx_L1;}
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_SEQUENCE_IN_MEMORY, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 482; goto __pyx_L1;}
Py_DECREF(__pyx_3); __pyx_3 = 0;
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":525 */
- __pyx_2 = PyInt_FromLong(RECODE_SEQUENCE_WITH_FILES); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 525; goto __pyx_L1;}
- if (PyObject_SetAttr(__pyx_m, __pyx_n_SEQUENCE_WITH_FILES, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 525; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":483 */
+ __pyx_2 = PyInt_FromLong(RECODE_SEQUENCE_WITH_FILES); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 483; goto __pyx_L1;}
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_SEQUENCE_WITH_FILES, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 483; goto __pyx_L1;}
Py_DECREF(__pyx_2); __pyx_2 = 0;
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":526 */
- __pyx_1 = PyInt_FromLong(RECODE_SEQUENCE_WITH_PIPE); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 526; goto __pyx_L1;}
- if (PyObject_SetAttr(__pyx_m, __pyx_n_SEQUENCE_WITH_PIPE, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 526; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":484 */
+ __pyx_1 = PyInt_FromLong(RECODE_SEQUENCE_WITH_PIPE); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 484; goto __pyx_L1;}
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_SEQUENCE_WITH_PIPE, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 484; goto __pyx_L1;}
Py_DECREF(__pyx_1); __pyx_1 = 0;
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":528 */
- __pyx_3 = PyInt_FromLong(RECODE_SWAP_UNDECIDED); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 528; goto __pyx_L1;}
- if (PyObject_SetAttr(__pyx_m, __pyx_n_SWAP_UNDECIDED, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 528; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":486 */
+ __pyx_3 = PyInt_FromLong(RECODE_SWAP_UNDECIDED); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 486; goto __pyx_L1;}
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_SWAP_UNDECIDED, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 486; goto __pyx_L1;}
Py_DECREF(__pyx_3); __pyx_3 = 0;
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":529 */
- __pyx_2 = PyInt_FromLong(RECODE_SWAP_NO); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 529; goto __pyx_L1;}
- if (PyObject_SetAttr(__pyx_m, __pyx_n_SWAP_NO, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 529; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":487 */
+ __pyx_2 = PyInt_FromLong(RECODE_SWAP_NO); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 487; goto __pyx_L1;}
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_SWAP_NO, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 487; goto __pyx_L1;}
Py_DECREF(__pyx_2); __pyx_2 = 0;
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":530 */
- __pyx_1 = PyInt_FromLong(RECODE_SWAP_YES); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 530; goto __pyx_L1;}
- if (PyObject_SetAttr(__pyx_m, __pyx_n_SWAP_YES, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 530; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":488 */
+ __pyx_1 = PyInt_FromLong(RECODE_SWAP_YES); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 488; goto __pyx_L1;}
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_SWAP_YES, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 488; goto __pyx_L1;}
Py_DECREF(__pyx_1); __pyx_1 = 0;
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":532 */
- __pyx_3 = PyInt_FromLong(RECODE_NO_ERROR); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 532; goto __pyx_L1;}
- if (PyObject_SetAttr(__pyx_m, __pyx_n_NO_ERROR, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 532; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":490 */
+ __pyx_3 = PyInt_FromLong(RECODE_NO_ERROR); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 490; goto __pyx_L1;}
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_NO_ERROR, __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":533 */
- __pyx_2 = PyInt_FromLong(RECODE_NOT_CANONICAL); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 533; goto __pyx_L1;}
- if (PyObject_SetAttr(__pyx_m, __pyx_n_NOT_CANONICAL, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 533; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":491 */
+ __pyx_2 = PyInt_FromLong(RECODE_NOT_CANONICAL); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 491; goto __pyx_L1;}
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_NOT_CANONICAL, __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":534 */
- __pyx_1 = PyInt_FromLong(RECODE_AMBIGUOUS_OUTPUT); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 534; goto __pyx_L1;}
- if (PyObject_SetAttr(__pyx_m, __pyx_n_AMBIGUOUS_OUTPUT, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 534; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":492 */
+ __pyx_1 = PyInt_FromLong(RECODE_AMBIGUOUS_OUTPUT); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 492; goto __pyx_L1;}
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_AMBIGUOUS_OUTPUT, __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":535 */
- __pyx_3 = PyInt_FromLong(RECODE_UNTRANSLATABLE); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 535; goto __pyx_L1;}
- if (PyObject_SetAttr(__pyx_m, __pyx_n_UNTRANSLATABLE, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 535; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":493 */
+ __pyx_3 = PyInt_FromLong(RECODE_UNTRANSLATABLE); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 493; goto __pyx_L1;}
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_UNTRANSLATABLE, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 493; goto __pyx_L1;}
Py_DECREF(__pyx_3); __pyx_3 = 0;
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":536 */
- __pyx_2 = PyInt_FromLong(RECODE_INVALID_INPUT); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 536; goto __pyx_L1;}
- if (PyObject_SetAttr(__pyx_m, __pyx_n_INVALID_INPUT, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 536; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":494 */
+ __pyx_2 = PyInt_FromLong(RECODE_INVALID_INPUT); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 494; goto __pyx_L1;}
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_INVALID_INPUT, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 494; goto __pyx_L1;}
Py_DECREF(__pyx_2); __pyx_2 = 0;
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":537 */
- __pyx_1 = PyInt_FromLong(RECODE_SYSTEM_ERROR); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 537; goto __pyx_L1;}
- if (PyObject_SetAttr(__pyx_m, __pyx_n_SYSTEM_ERROR, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 537; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":495 */
+ __pyx_1 = PyInt_FromLong(RECODE_SYSTEM_ERROR); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 495; goto __pyx_L1;}
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_SYSTEM_ERROR, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 495; goto __pyx_L1;}
Py_DECREF(__pyx_1); __pyx_1 = 0;
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":538 */
- __pyx_3 = PyInt_FromLong(RECODE_USER_ERROR); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 538; goto __pyx_L1;}
- if (PyObject_SetAttr(__pyx_m, __pyx_n_USER_ERROR, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 538; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":496 */
+ __pyx_3 = PyInt_FromLong(RECODE_USER_ERROR); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 496; goto __pyx_L1;}
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_USER_ERROR, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 496; goto __pyx_L1;}
Py_DECREF(__pyx_3); __pyx_3 = 0;
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":539 */
- __pyx_2 = PyInt_FromLong(RECODE_INTERNAL_ERROR); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 539; goto __pyx_L1;}
- if (PyObject_SetAttr(__pyx_m, __pyx_n_INTERNAL_ERROR, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 539; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":497 */
+ __pyx_2 = PyInt_FromLong(RECODE_INTERNAL_ERROR); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 497; goto __pyx_L1;}
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_INTERNAL_ERROR, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 497; goto __pyx_L1;}
Py_DECREF(__pyx_2); __pyx_2 = 0;
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":540 */
- __pyx_1 = PyInt_FromLong(RECODE_MAXIMUM_ERROR); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 540; goto __pyx_L1;}
- if (PyObject_SetAttr(__pyx_m, __pyx_n_MAXIMUM_ERROR, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 540; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":498 */
+ __pyx_1 = PyInt_FromLong(RECODE_MAXIMUM_ERROR); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 498; goto __pyx_L1;}
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_MAXIMUM_ERROR, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 498; goto __pyx_L1;}
Py_DECREF(__pyx_1); __pyx_1 = 0;
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":542 */
- __pyx_3 = PyInt_FromLong(RECODE_NO_FORMAT); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 542; goto __pyx_L1;}
- if (PyObject_SetAttr(__pyx_m, __pyx_n_NO_FORMAT, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 542; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":500 */
+ __pyx_3 = PyInt_FromLong(RECODE_NO_FORMAT); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 500; goto __pyx_L1;}
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_NO_FORMAT, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 500; goto __pyx_L1;}
Py_DECREF(__pyx_3); __pyx_3 = 0;
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":543 */
- __pyx_2 = PyInt_FromLong(RECODE_DECIMAL_FORMAT); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 543; goto __pyx_L1;}
- if (PyObject_SetAttr(__pyx_m, __pyx_n_DECIMAL_FORMAT, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 543; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":501 */
+ __pyx_2 = PyInt_FromLong(RECODE_DECIMAL_FORMAT); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 501; goto __pyx_L1;}
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_DECIMAL_FORMAT, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 501; goto __pyx_L1;}
Py_DECREF(__pyx_2); __pyx_2 = 0;
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":544 */
- __pyx_1 = PyInt_FromLong(RECODE_OCTAL_FORMAT); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 544; goto __pyx_L1;}
- if (PyObject_SetAttr(__pyx_m, __pyx_n_OCTAL_FORMAT, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 544; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":502 */
+ __pyx_1 = PyInt_FromLong(RECODE_OCTAL_FORMAT); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 502; goto __pyx_L1;}
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_OCTAL_FORMAT, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 502; goto __pyx_L1;}
Py_DECREF(__pyx_1); __pyx_1 = 0;
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":545 */
- __pyx_3 = PyInt_FromLong(RECODE_HEXADECIMAL_FORMAT); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 545; goto __pyx_L1;}
- if (PyObject_SetAttr(__pyx_m, __pyx_n_HEXADECIMAL_FORMAT, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 545; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":503 */
+ __pyx_3 = PyInt_FromLong(RECODE_HEXADECIMAL_FORMAT); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 503; goto __pyx_L1;}
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_HEXADECIMAL_FORMAT, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 503; goto __pyx_L1;}
Py_DECREF(__pyx_3); __pyx_3 = 0;
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":546 */
- __pyx_2 = PyInt_FromLong(RECODE_FULL_FORMAT); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 546; goto __pyx_L1;}
- if (PyObject_SetAttr(__pyx_m, __pyx_n_FULL_FORMAT, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 546; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":504 */
+ __pyx_2 = PyInt_FromLong(RECODE_FULL_FORMAT); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 504; goto __pyx_L1;}
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_FULL_FORMAT, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 504; goto __pyx_L1;}
Py_DECREF(__pyx_2); __pyx_2 = 0;
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":548 */
- __pyx_1 = PyInt_FromLong(RECODE_NO_LANGUAGE); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 548; goto __pyx_L1;}
- if (PyObject_SetAttr(__pyx_m, __pyx_n_NO_LANGUAGE, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 548; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":506 */
+ __pyx_1 = PyInt_FromLong(RECODE_NO_LANGUAGE); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 506; goto __pyx_L1;}
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_NO_LANGUAGE, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 506; goto __pyx_L1;}
Py_DECREF(__pyx_1); __pyx_1 = 0;
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":549 */
- __pyx_3 = PyInt_FromLong(RECODE_LANGUAGE_C); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 549; goto __pyx_L1;}
- if (PyObject_SetAttr(__pyx_m, __pyx_n_LANGUAGE_C, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 549; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":507 */
+ __pyx_3 = PyInt_FromLong(RECODE_LANGUAGE_C); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 507; goto __pyx_L1;}
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_LANGUAGE_C, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 507; goto __pyx_L1;}
Py_DECREF(__pyx_3); __pyx_3 = 0;
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":550 */
- __pyx_2 = PyInt_FromLong(RECODE_LANGUAGE_PERL); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 550; goto __pyx_L1;}
- if (PyObject_SetAttr(__pyx_m, __pyx_n_LANGUAGE_PERL, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 550; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":508 */
+ __pyx_2 = PyInt_FromLong(RECODE_LANGUAGE_PERL); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 508; goto __pyx_L1;}
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_LANGUAGE_PERL, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 508; goto __pyx_L1;}
Py_DECREF(__pyx_2); __pyx_2 = 0;
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":552 */
- __pyx_1 = PyInt_FromLong(NUL); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 552; goto __pyx_L1;}
- if (PyObject_SetAttr(__pyx_m, __pyx_n_NUL, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 552; goto __pyx_L1;}
+ /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":510 */
+ __pyx_1 = PyInt_FromLong(NUL); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 510; goto __pyx_L1;}
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_NUL, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 510; goto __pyx_L1;}
Py_DECREF(__pyx_1); __pyx_1 = 0;
- /* "/bpi/phenix/home/pinard/entretien/recode/tests/Recode.pyx":553 */
- __pyx_3 = PyInt_FromLong(STRIP_SIZE); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 553; goto __pyx_L1;}
-