summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Lib/codecs.py21
-rw-r--r--Lib/encodings/cp037.py4
-rw-r--r--Lib/encodings/cp1006.py4
-rw-r--r--Lib/encodings/cp1026.py4
-rw-r--r--Lib/encodings/cp1250.py4
-rw-r--r--Lib/encodings/cp1251.py4
-rw-r--r--Lib/encodings/cp1252.py4
-rw-r--r--Lib/encodings/cp1253.py4
-rw-r--r--Lib/encodings/cp1254.py4
-rw-r--r--Lib/encodings/cp1255.py4
-rw-r--r--Lib/encodings/cp1256.py4
-rw-r--r--Lib/encodings/cp1257.py4
-rw-r--r--Lib/encodings/cp1258.py4
-rw-r--r--Lib/encodings/cp424.py4
-rw-r--r--Lib/encodings/cp437.py4
-rw-r--r--Lib/encodings/cp500.py4
-rw-r--r--Lib/encodings/cp737.py4
-rw-r--r--Lib/encodings/cp775.py4
-rw-r--r--Lib/encodings/cp850.py4
-rw-r--r--Lib/encodings/cp852.py4
-rw-r--r--Lib/encodings/cp855.py4
-rw-r--r--Lib/encodings/cp856.py4
-rw-r--r--Lib/encodings/cp857.py4
-rw-r--r--Lib/encodings/cp860.py4
-rw-r--r--Lib/encodings/cp861.py4
-rw-r--r--Lib/encodings/cp862.py4
-rw-r--r--Lib/encodings/cp863.py4
-rw-r--r--Lib/encodings/cp864.py4
-rw-r--r--Lib/encodings/cp865.py4
-rw-r--r--Lib/encodings/cp866.py4
-rw-r--r--Lib/encodings/cp869.py4
-rw-r--r--Lib/encodings/cp874.py4
-rw-r--r--Lib/encodings/cp875.py4
-rw-r--r--Lib/encodings/iso8859_1.py4
-rw-r--r--Lib/encodings/iso8859_10.py4
-rw-r--r--Lib/encodings/iso8859_13.py4
-rw-r--r--Lib/encodings/iso8859_14.py4
-rw-r--r--Lib/encodings/iso8859_15.py4
-rw-r--r--Lib/encodings/iso8859_2.py4
-rw-r--r--Lib/encodings/iso8859_3.py4
-rw-r--r--Lib/encodings/iso8859_4.py4
-rw-r--r--Lib/encodings/iso8859_5.py4
-rw-r--r--Lib/encodings/iso8859_6.py4
-rw-r--r--Lib/encodings/iso8859_7.py4
-rw-r--r--Lib/encodings/iso8859_8.py4
-rw-r--r--Lib/encodings/iso8859_9.py4
-rw-r--r--Lib/encodings/koi8_r.py4
-rw-r--r--Lib/encodings/mac_cyrillic.py4
-rw-r--r--Lib/encodings/mac_greek.py4
-rw-r--r--Lib/encodings/mac_iceland.py4
-rw-r--r--Lib/encodings/mac_latin2.py4
-rw-r--r--Lib/encodings/mac_roman.py4
-rw-r--r--Lib/encodings/mac_turkish.py4
-rw-r--r--Lib/encodings/rot_13.py4
-rw-r--r--Tools/scripts/gencodec.py4
55 files changed, 75 insertions, 162 deletions
diff --git a/Lib/codecs.py b/Lib/codecs.py
index b2eab1db3a..bdc8d029da 100644
--- a/Lib/codecs.py
+++ b/Lib/codecs.py
@@ -554,6 +554,27 @@ def make_identity_dict(rng):
res[i]=i
return res
+def make_encoding_map(decoding_map):
+
+ """ Creates an encoding map from a decoding map.
+
+ If a target mapping in the decoding map occurrs multiple
+ times, then that target is mapped to None (undefined mapping),
+ causing an exception when encountered by the charmap codec
+ during translation.
+
+ One example where this happens is cp875.py which decodes
+ multiple character to \u001a.
+
+ """
+ m = {}
+ for k,v in decoding_map.items():
+ if not m.has_key(v):
+ m[v] = k
+ else:
+ m[v] = None
+ return m
+
### Tests
if __name__ == '__main__':
diff --git a/Lib/encodings/cp037.py b/Lib/encodings/cp037.py
index 5868372b07..3b641bb0e9 100644
--- a/Lib/encodings/cp037.py
+++ b/Lib/encodings/cp037.py
@@ -277,6 +277,4 @@ decoding_map.update({
### Encoding Map
-encoding_map = {}
-for k,v in decoding_map.items():
- encoding_map[v] = k
+encoding_map = codecs.make_encoding_map(decoding_map)
diff --git a/Lib/encodings/cp1006.py b/Lib/encodings/cp1006.py
index 593fbb601c..0a3c3af321 100644
--- a/Lib/encodings/cp1006.py
+++ b/Lib/encodings/cp1006.py
@@ -135,6 +135,4 @@ decoding_map.update({
### Encoding Map
-encoding_map = {}
-for k,v in decoding_map.items():
- encoding_map[v] = k
+encoding_map = codecs.make_encoding_map(decoding_map)
diff --git a/Lib/encodings/cp1026.py b/Lib/encodings/cp1026.py
index 3796a75c09..cce5af6a4a 100644
--- a/Lib/encodings/cp1026.py
+++ b/Lib/encodings/cp1026.py
@@ -277,6 +277,4 @@ decoding_map.update({
### Encoding Map
-encoding_map = {}
-for k,v in decoding_map.items():
- encoding_map[v] = k
+encoding_map = codecs.make_encoding_map(decoding_map)
diff --git a/Lib/encodings/cp1250.py b/Lib/encodings/cp1250.py
index 03a3e3177d..39cbc3375d 100644
--- a/Lib/encodings/cp1250.py
+++ b/Lib/encodings/cp1250.py
@@ -120,6 +120,4 @@ decoding_map.update({
### Encoding Map
-encoding_map = {}
-for k,v in decoding_map.items():
- encoding_map[v] = k
+encoding_map = codecs.make_encoding_map(decoding_map)
diff --git a/Lib/encodings/cp1251.py b/Lib/encodings/cp1251.py
index e27a122c38..4d4b6ee9b4 100644
--- a/Lib/encodings/cp1251.py
+++ b/Lib/encodings/cp1251.py
@@ -154,6 +154,4 @@ decoding_map.update({
### Encoding Map
-encoding_map = {}
-for k,v in decoding_map.items():
- encoding_map[v] = k
+encoding_map = codecs.make_encoding_map(decoding_map)
diff --git a/Lib/encodings/cp1252.py b/Lib/encodings/cp1252.py
index 5d7bdd6396..647f907287 100644
--- a/Lib/encodings/cp1252.py
+++ b/Lib/encodings/cp1252.py
@@ -73,6 +73,4 @@ decoding_map.update({
### Encoding Map
-encoding_map = {}
-for k,v in decoding_map.items():
- encoding_map[v] = k
+encoding_map = codecs.make_encoding_map(decoding_map)
diff --git a/Lib/encodings/cp1253.py b/Lib/encodings/cp1253.py
index abc144cc04..bfb4723b58 100644
--- a/Lib/encodings/cp1253.py
+++ b/Lib/encodings/cp1253.py
@@ -148,6 +148,4 @@ decoding_map.update({
### Encoding Map
-encoding_map = {}
-for k,v in decoding_map.items():
- encoding_map[v] = k
+encoding_map = codecs.make_encoding_map(decoding_map)
diff --git a/Lib/encodings/cp1254.py b/Lib/encodings/cp1254.py
index 4a2ab3caf4..dc662ed243 100644
--- a/Lib/encodings/cp1254.py
+++ b/Lib/encodings/cp1254.py
@@ -79,6 +79,4 @@ decoding_map.update({
### Encoding Map
-encoding_map = {}
-for k,v in decoding_map.items():
- encoding_map[v] = k
+encoding_map = codecs.make_encoding_map(decoding_map)
diff --git a/Lib/encodings/cp1255.py b/Lib/encodings/cp1255.py
index c987b85f45..6f70654f61 100644
--- a/Lib/encodings/cp1255.py
+++ b/Lib/encodings/cp1255.py
@@ -140,6 +140,4 @@ decoding_map.update({
### Encoding Map
-encoding_map = {}
-for k,v in decoding_map.items():
- encoding_map[v] = k
+encoding_map = codecs.make_encoding_map(decoding_map)
diff --git a/Lib/encodings/cp1256.py b/Lib/encodings/cp1256.py
index d72c5bcc9b..40ed577a85 100644
--- a/Lib/encodings/cp1256.py
+++ b/Lib/encodings/cp1256.py
@@ -126,6 +126,4 @@ decoding_map.update({
### Encoding Map
-encoding_map = {}
-for k,v in decoding_map.items():
- encoding_map[v] = k
+encoding_map = codecs.make_encoding_map(decoding_map)
diff --git a/Lib/encodings/cp1257.py b/Lib/encodings/cp1257.py
index d17a904217..baaf367b51 100644
--- a/Lib/encodings/cp1257.py
+++ b/Lib/encodings/cp1257.py
@@ -128,6 +128,4 @@ decoding_map.update({
### Encoding Map
-encoding_map = {}
-for k,v in decoding_map.items():
- encoding_map[v] = k
+encoding_map = codecs.make_encoding_map(decoding_map)
diff --git a/Lib/encodings/cp1258.py b/Lib/encodings/cp1258.py
index 597f12438c..9a2827dc18 100644
--- a/Lib/encodings/cp1258.py
+++ b/Lib/encodings/cp1258.py
@@ -87,6 +87,4 @@ decoding_map.update({
### Encoding Map
-encoding_map = {}
-for k,v in decoding_map.items():
- encoding_map[v] = k
+encoding_map = codecs.make_encoding_map(decoding_map)
diff --git a/Lib/encodings/cp424.py b/Lib/encodings/cp424.py
index bc10379808..4689996d66 100644
--- a/Lib/encodings/cp424.py
+++ b/Lib/encodings/cp424.py
@@ -277,6 +277,4 @@ decoding_map.update({
### Encoding Map
-encoding_map = {}
-for k,v in decoding_map.items():
- encoding_map[v] = k
+encoding_map = codecs.make_encoding_map(decoding_map)
diff --git a/Lib/encodings/cp437.py b/Lib/encodings/cp437.py
index db1b88a567..a55e4246d9 100644
--- a/Lib/encodings/cp437.py
+++ b/Lib/encodings/cp437.py
@@ -169,6 +169,4 @@ decoding_map.update({
### Encoding Map
-encoding_map = {}
-for k,v in decoding_map.items():
- encoding_map[v] = k
+encoding_map = codecs.make_encoding_map(decoding_map)
diff --git a/Lib/encodings/cp500.py b/Lib/encodings/cp500.py
index 1c8fb57e17..bc1acde472 100644
--- a/Lib/encodings/cp500.py
+++ b/Lib/encodings/cp500.py
@@ -277,6 +277,4 @@ decoding_map.update({
### Encoding Map
-encoding_map = {}
-for k,v in decoding_map.items():
- encoding_map[v] = k
+encoding_map = codecs.make_encoding_map(decoding_map)
diff --git a/Lib/encodings/cp737.py b/Lib/encodings/cp737.py
index 03665aea7d..6174d851a1 100644
--- a/Lib/encodings/cp737.py
+++ b/Lib/encodings/cp737.py
@@ -169,6 +169,4 @@ decoding_map.update({
### Encoding Map
-encoding_map = {}
-for k,v in decoding_map.items():
- encoding_map[v] = k
+encoding_map = codecs.make_encoding_map(decoding_map)
diff --git a/Lib/encodings/cp775.py b/Lib/encodings/cp775.py
index b38ccb5fe3..ee56f01f5b 100644
--- a/Lib/encodings/cp775.py
+++ b/Lib/encodings/cp775.py
@@ -169,6 +169,4 @@ decoding_map.update({
### Encoding Map
-encoding_map = {}
-for k,v in decoding_map.items():
- encoding_map[v] = k
+encoding_map = codecs.make_encoding_map(decoding_map)
diff --git a/Lib/encodings/cp850.py b/Lib/encodings/cp850.py
index e26287b7f3..dd2318721e 100644
--- a/Lib/encodings/cp850.py
+++ b/Lib/encodings/cp850.py
@@ -169,6 +169,4 @@ decoding_map.update({
### Encoding Map
-encoding_map = {}
-for k,v in decoding_map.items():
- encoding_map[v] = k
+encoding_map = codecs.make_encoding_map(decoding_map)
diff --git a/Lib/encodings/cp852.py b/Lib/encodings/cp852.py
index 431d8448f7..38df00f6fc 100644
--- a/Lib/encodings/cp852.py
+++ b/Lib/encodings/cp852.py
@@ -169,6 +169,4 @@ decoding_map.update({
### Encoding Map
-encoding_map = {}
-for k,v in decoding_map.items():
- encoding_map[v] = k
+encoding_map = codecs.make_encoding_map(decoding_map)
diff --git a/Lib/encodings/cp855.py b/Lib/encodings/cp855.py
index c9e71687bd..764fe1ac72 100644
--- a/Lib/encodings/cp855.py
+++ b/Lib/encodings/cp855.py
@@ -169,6 +169,4 @@ decoding_map.update({
### Encoding Map
-encoding_map = {}
-for k,v in decoding_map.items():
- encoding_map[v] = k
+encoding_map = codecs.make_encoding_map(decoding_map)
diff --git a/Lib/encodings/cp856.py b/Lib/encodings/cp856.py
index cc2e01f45a..9d09c09161 100644
--- a/Lib/encodings/cp856.py
+++ b/Lib/encodings/cp856.py
@@ -169,6 +169,4 @@ decoding_map.update({
### Encoding Map
-encoding_map = {}
-for k,v in decoding_map.items():
- encoding_map[v] = k
+encoding_map = codecs.make_encoding_map(decoding_map)
diff --git a/Lib/encodings/cp857.py b/Lib/encodings/cp857.py
index 6f4df23a56..5c84bb8318 100644
--- a/Lib/encodings/cp857.py
+++ b/Lib/encodings/cp857.py
@@ -168,6 +168,4 @@ decoding_map.update({
### Encoding Map
-encoding_map = {}
-for k,v in decoding_map.items():
- encoding_map[v] = k
+encoding_map = codecs.make_encoding_map(decoding_map)
diff --git a/Lib/encodings/cp860.py b/Lib/encodings/cp860.py
index 057d91870f..a721ea3d46 100644
--- a/Lib/encodings/cp860.py
+++ b/Lib/encodings/cp860.py
@@ -169,6 +169,4 @@ decoding_map.update({
### Encoding Map
-encoding_map = {}
-for k,v in decoding_map.items():
- encoding_map[v] = k
+encoding_map = codecs.make_encoding_map(decoding_map)
diff --git a/Lib/encodings/cp861.py b/Lib/encodings/cp861.py
index 8db3b40b24..ccf26b70dc 100644
--- a/Lib/encodings/cp861.py
+++ b/Lib/encodings/cp861.py
@@ -169,6 +169,4 @@ decoding_map.update({
### Encoding Map
-encoding_map = {}
-for k,v in decoding_map.items():
- encoding_map[v] = k
+encoding_map = codecs.make_encoding_map(decoding_map)
diff --git a/Lib/encodings/cp862.py b/Lib/encodings/cp862.py
index 1cac3e278a..8f6d111e78 100644
--- a/Lib/encodings/cp862.py
+++ b/Lib/encodings/cp862.py
@@ -169,6 +169,4 @@ decoding_map.update({
### Encoding Map
-encoding_map = {}
-for k,v in decoding_map.items():
- encoding_map[v] = k
+encoding_map = codecs.make_encoding_map(decoding_map)
diff --git a/Lib/encodings/cp863.py b/Lib/encodings/cp863.py
index ecdc391f74..3596e645cc 100644
--- a/Lib/encodings/cp863.py
+++ b/Lib/encodings/cp863.py
@@ -169,6 +169,4 @@ decoding_map.update({
### Encoding Map
-encoding_map = {}
-for k,v in decoding_map.items():
- encoding_map[v] = k
+encoding_map = codecs.make_encoding_map(decoding_map)
diff --git a/Lib/encodings/cp864.py b/Lib/encodings/cp864.py
index 861fb00111..f510a269e8 100644
--- a/Lib/encodings/cp864.py
+++ b/Lib/encodings/cp864.py
@@ -167,6 +167,4 @@ decoding_map.update({
### Encoding Map
-encoding_map = {}
-for k,v in decoding_map.items():
- encoding_map[v] = k
+encoding_map = codecs.make_encoding_map(decoding_map)
diff --git a/Lib/encodings/cp865.py b/Lib/encodings/cp865.py
index 4d9010df8f..cc4f719cb7 100644
--- a/Lib/encodings/cp865.py
+++ b/Lib/encodings/cp865.py
@@ -169,6 +169,4 @@ decoding_map.update({
### Encoding Map
-encoding_map = {}
-for k,v in decoding_map.items():
- encoding_map[v] = k
+encoding_map = codecs.make_encoding_map(decoding_map)
diff --git a/Lib/encodings/cp866.py b/Lib/encodings/cp866.py
index 6a8b0b0752..518eede0ad 100644
--- a/Lib/encodings/cp866.py
+++ b/Lib/encodings/cp866.py
@@ -169,6 +169,4 @@ decoding_map.update({
### Encoding Map
-encoding_map = {}
-for k,v in decoding_map.items():
- encoding_map[v] = k
+encoding_map = codecs.make_encoding_map(decoding_map)
diff --git a/Lib/encodings/cp869.py b/Lib/encodings/cp869.py
index 65d2b2e1d0..2e3ad35c1c 100644
--- a/Lib/encodings/cp869.py
+++ b/Lib/encodings/cp869.py
@@ -169,6 +169,4 @@ decoding_map.update({
### Encoding Map
-encoding_map = {}
-for k,v in decoding_map.items():
- encoding_map[v] = k
+encoding_map = codecs.make_encoding_map(decoding_map)
diff --git a/Lib/encodings/cp874.py b/Lib/encodings/cp874.py
index 31f4d3d6d4..c43e20be0f 100644
--- a/Lib/encodings/cp874.py
+++ b/Lib/encodings/cp874.py
@@ -168,6 +168,4 @@ decoding_map.update({
### Encoding Map
-encoding_map = {}
-for k,v in decoding_map.items():
- encoding_map[v] = k
+encoding_map = codecs.make_encoding_map(decoding_map)
diff --git a/Lib/encodings/cp875.py b/Lib/encodings/cp875.py
index 3500446930..5e748734b5 100644
--- a/Lib/encodings/cp875.py
+++ b/Lib/encodings/cp875.py
@@ -278,6 +278,4 @@ decoding_map.update({
### Encoding Map
-encoding_map = {}
-for k,v in decoding_map.items():
- encoding_map[v] = k
+encoding_map = codecs.make_encoding_map(decoding_map)
diff --git a/Lib/encodings/iso8859_1.py b/Lib/encodings/iso8859_1.py
index f4c0bf750f..cea22611ac 100644
--- a/Lib/encodings/iso8859_1.py
+++ b/Lib/encodings/iso8859_1.py
@@ -41,6 +41,4 @@ decoding_map.update({
### Encoding Map
-encoding_map = {}
-for k,v in decoding_map.items():
- encoding_map[v] = k
+encoding_map = codecs.make_encoding_map(decoding_map)
diff --git a/Lib/encodings/iso8859_10.py b/Lib/encodings/iso8859_10.py
index c43c65306a..f29ebd237f 100644
--- a/Lib/encodings/iso8859_10.py
+++ b/Lib/encodings/iso8859_10.py
@@ -87,6 +87,4 @@ decoding_map.update({
### Encoding Map
-encoding_map = {}
-for k,v in decoding_map.items():
- encoding_map[v] = k
+encoding_map = codecs.make_encoding_map(decoding_map)
diff --git a/Lib/encodings/iso8859_13.py b/Lib/encodings/iso8859_13.py
index 2ab52927ec..e0c4ae4753 100644
--- a/Lib/encodings/iso8859_13.py
+++ b/Lib/encodings/iso8859_13.py
@@ -97,6 +97,4 @@ decoding_map.update({
### Encoding Map
-encoding_map = {}
-for k,v in decoding_map.items():
- encoding_map[v] = k
+encoding_map = codecs.make_encoding_map(decoding_map)
diff --git a/Lib/encodings/iso8859_14.py b/Lib/encodings/iso8859_14.py
index 5533e9617a..c84bb23e7f 100644
--- a/Lib/encodings/iso8859_14.py
+++ b/Lib/encodings/iso8859_14.py
@@ -72,6 +72,4 @@ decoding_map.update({
### Encoding Map
-encoding_map = {}
-for k,v in decoding_map.items():
- encoding_map[v] = k
+encoding_map = codecs.make_encoding_map(decoding_map)
diff --git a/Lib/encodings/iso8859_15.py b/Lib/encodings/iso8859_15.py
index 7bffff42b8..bf92acb291 100644
--- a/Lib/encodings/iso8859_15.py
+++ b/Lib/encodings/iso8859_15.py
@@ -49,6 +49,4 @@ decoding_map.update({
### Encoding Map
-encoding_map = {}
-for k,v in decoding_map.items():
- encoding_map[v] = k
+encoding_map = codecs.make_encoding_map(decoding_map)
diff --git a/Lib/encodings/iso8859_2.py b/Lib/encodings/iso8859_2.py
index 481f9a0a6c..1c92a54274 100644
--- a/Lib/encodings/iso8859_2.py
+++ b/Lib/encodings/iso8859_2.py
@@ -98,6 +98,4 @@ decoding_map.update({
### Encoding Map
-encoding_map = {}
-for k,v in decoding_map.items():
- encoding_map[v] = k
+encoding_map = codecs.make_encoding_map(decoding_map)
diff --git a/Lib/encodings/iso8859_3.py b/Lib/encodings/iso8859_3.py
index c2820ad6ad..ac8c8d91c2 100644
--- a/Lib/encodings/iso8859_3.py
+++ b/Lib/encodings/iso8859_3.py
@@ -76,6 +76,4 @@ decoding_map.update({
### Encoding Map
-encoding_map = {}
-for k,v in decoding_map.items():
- encoding_map[v] = k
+encoding_map = codecs.make_encoding_map(decoding_map)
diff --git a/Lib/encodings/iso8859_4.py b/Lib/encodings/iso8859_4.py
index 30d6ca6805..91db12613b 100644
--- a/Lib/encodings/iso8859_4.py
+++ b/Lib/encodings/iso8859_4.py
@@ -91,6 +91,4 @@ decoding_map.update({
### Encoding Map
-encoding_map = {}
-for k,v in decoding_map.items():
- encoding_map[v] = k
+encoding_map = codecs.make_encoding_map(decoding_map)
diff --git a/Lib/encodings/iso8859_5.py b/Lib/encodings/iso8859_5.py
index 2bdaa5003c..96cb0734f2 100644
--- a/Lib/encodings/iso8859_5.py
+++ b/Lib/encodings/iso8859_5.py
@@ -135,6 +135,4 @@ decoding_map.update({
### Encoding Map
-encoding_map = {}
-for k,v in decoding_map.items():
- encoding_map[v] = k
+encoding_map = codecs.make_encoding_map(decoding_map)
diff --git a/Lib/encodings/iso8859_6.py b/Lib/encodings/iso8859_6.py
index 585fa11e5d..298c2d53fe 100644
--- a/Lib/encodings/iso8859_6.py
+++ b/Lib/encodings/iso8859_6.py
@@ -134,6 +134,4 @@ decoding_map.update({
### Encoding Map
-encoding_map = {}
-for k,v in decoding_map.items():
- encoding_map[v] = k
+encoding_map = codecs.make_encoding_map(decoding_map)
diff --git a/Lib/encodings/iso8859_7.py b/Lib/encodings/iso8859_7.py
index 48f1bd58db..eea3abf2eb 100644
--- a/Lib/encodings/iso8859_7.py
+++ b/Lib/encodings/iso8859_7.py
@@ -121,6 +121,4 @@ decoding_map.update({
### Encoding Map
-encoding_map = {}
-for k,v in decoding_map.items():
- encoding_map[v] = k
+encoding_map = codecs.make_encoding_map(decoding_map)
diff --git a/Lib/encodings/iso8859_8.py b/Lib/encodings/iso8859_8.py
index a19aa671cc..45b2adac04 100644
--- a/Lib/encodings/iso8859_8.py
+++ b/Lib/encodings/iso8859_8.py
@@ -109,6 +109,4 @@ decoding_map.update({
### Encoding Map
-encoding_map = {}
-for k,v in decoding_map.items():
- encoding_map[v] = k
+encoding_map = codecs.make_encoding_map(decoding_map)
diff --git a/Lib/encodings/iso8859_9.py b/Lib/encodings/iso8859_9.py
index a27890507a..ad0c19083d 100644
--- a/Lib/encodings/iso8859_9.py
+++ b/Lib/encodings/iso8859_9.py
@@ -47,6 +47,4 @@ decoding_map.update({
### Encoding Map
-encoding_map = {}
-for k,v in decoding_map.items():
- encoding_map[v] = k
+encoding_map = codecs.make_encoding_map(decoding_map)
diff --git a/Lib/encodings/koi8_r.py b/Lib/encodings/koi8_r.py
index c28004ef6e..242d0c448a 100644
--- a/Lib/encodings/koi8_r.py
+++ b/Lib/encodings/koi8_r.py
@@ -169,6 +169,4 @@ decoding_map.update({
### Encoding Map
-encoding_map = {}
-for k,v in decoding_map.items():
- encoding_map[v] = k
+encoding_map = codecs.make_encoding_map(decoding_map)
diff --git a/Lib/encodings/mac_cyrillic.py b/Lib/encodings/mac_cyrillic.py
index 45528319b2..6ae4a30e0e 100644
--- a/Lib/encodings/mac_cyrillic.py
+++ b/Lib/encodings/mac_cyrillic.py
@@ -164,6 +164,4 @@ decoding_map.update({
### Encoding Map
-encoding_map = {}
-for k,v in decoding_map.items():
- encoding_map[v] = k
+encoding_map = codecs.make_encoding_map(decoding_map)
diff --git a/Lib/encodings/mac_greek.py b/Lib/encodings/mac_greek.py
index b7040c4bc4..839cf613c6 100644
--- a/Lib/encodings/mac_greek.py
+++ b/Lib/encodings/mac_greek.py
@@ -167,6 +167,4 @@ decoding_map.update({
### Encoding Map
-encoding_map = {}
-for k,v in decoding_map.items():
- encoding_map[v] = k
+encoding_map = codecs.make_encoding_map(decoding_map)
diff --git a/Lib/encodings/mac_iceland.py b/Lib/encodings/mac_iceland.py
index f20e1344fb..284580cf9b 100644
--- a/Lib/encodings/mac_iceland.py
+++ b/Lib/encodings/mac_iceland.py
@@ -163,6 +163,4 @@ decoding_map.update({
### Encoding Map
-encoding_map = {}
-for k,v in decoding_map.items():
- encoding_map[v] = k
+encoding_map = codecs.make_encoding_map(decoding_map)
diff --git a/Lib/encodings/mac_latin2.py b/Lib/encodings/mac_latin2.py
index 0fba502cd6..e922178177 100644
--- a/Lib/encodings/mac_latin2.py
+++ b/Lib/encodings/mac_latin2.py
@@ -167,6 +167,4 @@ decoding_map.update({
### Encoding Map
-encoding_map = {}
-for k,v in decoding_map.items():
- encoding_map[v] = k
+encoding_map = codecs.make_encoding_map(decoding_map)
diff --git a/Lib/encodings/mac_roman.py b/Lib/encodings/mac_roman.py
index 6d048a3b6e..23dca89b41 100644
--- a/Lib/encodings/mac_roman.py
+++ b/Lib/encodings/mac_roman.py
@@ -164,6 +164,4 @@ decoding_map.update({
### Encoding Map
-encoding_map = {}
-for k,v in decoding_map.items():
- encoding_map[v] = k
+encoding_map = codecs.make_encoding_map(decoding_map)
diff --git a/Lib/encodings/mac_turkish.py b/Lib/encodings/mac_turkish.py
index c81a864669..c71268b7ee 100644
--- a/Lib/encodings/mac_turkish.py
+++ b/Lib/encodings/mac_turkish.py
@@ -164,6 +164,4 @@ decoding_map.update({
### Encoding Map
-encoding_map = {}
-for k,v in decoding_map.items():
- encoding_map[v] = k
+encoding_map = codecs.make_encoding_map(decoding_map)
diff --git a/Lib/encodings/rot_13.py b/Lib/encodings/rot_13.py
index 8c54811bb3..532ff646b7 100644
--- a/Lib/encodings/rot_13.py
+++ b/Lib/encodings/rot_13.py
@@ -93,9 +93,7 @@ decoding_map.update({
### Encoding Map
-encoding_map = {}
-for k,v in decoding_map.items():
- encoding_map[v] = k
+encoding_map = codecs.make_encoding_map(decoding_map)
### Filter API
diff --git a/Tools/scripts/gencodec.py b/Tools/scripts/gencodec.py
index bc70a32309..69b6ede6c2 100644
--- a/Tools/scripts/gencodec.py
+++ b/Tools/scripts/gencodec.py
@@ -244,9 +244,7 @@ def getregentry():
append('''
### Encoding Map
-encoding_map = {}
-for k,v in decoding_map.items():
- encoding_map[v] = k
+encoding_map = codecs.make_encoding_map(decoding_map)
''')
return string.join(l,'\n')