summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog8
-rw-r--r--enc/trans/single_byte.trans1
-rw-r--r--tool/transcode-tblgen.rb39
3 files changed, 26 insertions, 22 deletions
diff --git a/ChangeLog b/ChangeLog
index aea52692a7..4a230cd7b1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+Tue Oct 14 17:10:10 2008 Martin Duerst <duerst@it.aoyama.ac.jp>
+
+ * tool/transcode-tblgen.rb: added set_valid_byte_pattern
+ to reduce coupling between table generation script and
+ specific encodings.
+
+ * enc/trans/single_byte.trans: using set_valid_byte_pattern
+
Tue Oct 14 16:39:39 2008 Martin Duerst <duerst@it.aoyama.ac.jp>
* transcode.c: in transcode_search_path, elimintated a warning
diff --git a/enc/trans/single_byte.trans b/enc/trans/single_byte.trans
index 9030b9a942..b303fb1e1c 100644
--- a/enc/trans/single_byte.trans
+++ b/enc/trans/single_byte.trans
@@ -27,6 +27,7 @@
transcode_tblgen "UTF-8", "ASCII-8BIT", us_ascii_map
def transcode_tblgen_singlebyte(name, tbl_to_ucs)
+ set_valid_byte_pattern(name, '1byte')
code = ''
code << transcode_tblgen(name, "UTF-8", [["{00-7f}", :nomap], *tbl_to_ucs])
code << "\n"
diff --git a/tool/transcode-tblgen.rb b/tool/transcode-tblgen.rb
index b785e07399..870d971e9e 100644
--- a/tool/transcode-tblgen.rb
+++ b/tool/transcode-tblgen.rb
@@ -726,28 +726,23 @@ ValidEncoding = {
{81-fe}{30-39}{81-fe}{30-39}',
}
-{
- 'ASCII-8BIT' => '1byte',
- 'ISO-8859-1' => '1byte',
- 'ISO-8859-2' => '1byte',
- 'ISO-8859-3' => '1byte',
- 'ISO-8859-4' => '1byte',
- 'ISO-8859-5' => '1byte',
- 'ISO-8859-6' => '1byte',
- 'ISO-8859-7' => '1byte',
- 'ISO-8859-8' => '1byte',
- 'ISO-8859-9' => '1byte',
- 'ISO-8859-10' => '1byte',
- 'ISO-8859-11' => '1byte',
- 'ISO-8859-13' => '1byte',
- 'ISO-8859-14' => '1byte',
- 'ISO-8859-15' => '1byte',
- 'WINDOWS-1252' => '1byte',
- 'Windows-31J' => 'Shift_JIS',
- 'eucJP-ms' => 'EUC-JP'
-}.each {|k, v|
- ValidEncoding[k] = ValidEncoding.fetch(v)
-}
+def set_valid_byte_pattern (encoding, pattern_or_label)
+ pattern =
+ if ValidEncoding[pattern_or_label]
+ ValidEncoding[pattern_or_label]
+ else
+ pattern_or_label
+ end
+ if ValidEncoding[encoding] and ValidEncoding[encoding]!=pattern
+ raise ArgumentError, "trying to change valid byte pattern for encoding #{encoding} from #{ValidEncoding[encoding]} to #{pattern}"
+ end
+ ValidEncoding[encoding] = pattern
+end
+
+# the following may be used in different places, so keep them here for the moment
+set_valid_byte_pattern 'ASCII-8BIT', '1byte'
+set_valid_byte_pattern 'Windows-31J', 'Shift_JIS'
+set_valid_byte_pattern 'eucJP-ms', 'EUC-JP'
def make_signature(filename, src)
"src=#{filename.dump}, len=#{src.length}, checksum=#{src.sum}"