From 1cd3d22c0061afb32225c842adf5dd283a46a159 Mon Sep 17 00:00:00 2001 From: Chris Hanson Date: Sun, 27 Aug 2006 21:37:21 +0000 Subject: [PATCH] Add windows 8-bit codecs. --- v7/src/runtime/genio.scm | 337 +++++++++++++++++++++++++++++---------- 1 file changed, 256 insertions(+), 81 deletions(-) diff --git a/v7/src/runtime/genio.scm b/v7/src/runtime/genio.scm index 302d923d7..fab12b125 100644 --- a/v7/src/runtime/genio.scm +++ b/v7/src/runtime/genio.scm @@ -1,6 +1,6 @@ #| -*-Scheme-*- -$Id: genio.scm,v 1.38 2006/02/01 06:13:07 cph Exp $ +$Id: genio.scm,v 1.39 2006/08/27 21:37:21 cph Exp $ Copyright 1991,1993,1995,1996,1999,2002 Massachusetts Institute of Technology Copyright 2003,2004,2005,2006 Massachusetts Institute of Technology @@ -996,7 +996,7 @@ USA. (else (- i start))))) (- end start))))) -;;;; ISO-8859 codecs +;;;; 8-bit codecs (define-decoder 'ISO-8859-1 (lambda (ib) @@ -1017,36 +1017,31 @@ USA. (define-encoder-alias 'TEXT 'ISO-8859-1) (define-decoder-alias 'US-ASCII 'ISO-8859-1) (define-encoder-alias 'ASCII 'ISO-8859-1) - -(define-syntax define-iso-8859-map + +(define-syntax define-8-bit-codecs (sc-macro-transformer (lambda (form environment) environment - (if (syntax-match? '(+ DATUM) (cdr form)) - (let ((name - (intern - (string-append "iso-8859-" (number->string (cadr form)))))) - (let ((decoding-map (symbol 'DECODING-MAP: name)) - (encoding-map (symbol 'ENCODING-MAP: name))) - `(BEGIN - (DEFINE-DECODER ',name - (LET ((,decoding-map - #(,@(let loop ((i 0)) - (if (fix:= i #xA1) - (cddr form) - (cons i (loop (fix:+ i 1)))))))) - (LAMBDA (IB) - (DECODE-ISO-8859 IB ,decoding-map)))) - (DEFINE-ENCODER ',name - (LET ((,encoding-map - (RECEIVE (LHS RHS) - (REVERSE-ISO-8859-MAP ',(cddr form)) - (CONS LHS RHS)))) - (LAMBDA (OB CP) - (ENCODE-ISO-8859 OB CP ,encoding-map))))))) + (if (syntax-match? '(SYMBOL + DATUM) (cdr form)) + (let ((name (cadr form)) + (start (caddr form)) + (code-points (cdddr form))) + `(BEGIN + (DEFINE-DECODER ',name + (LET ((TABLE + #(,@(let loop ((i 0)) + (if (fix:< i start) + (cons i (loop (fix:+ i 1))) + code-points))))) + (LAMBDA (IB) + (DECODE-8-BIT IB TABLE)))) + (DEFINE-ENCODER ',name + (RECEIVE (LHS RHS) (REVERSE-ISO-8859-MAP ,start ',(cddr form)) + (LAMBDA (OB CP) + (ENCODE-8-BIT OB CP ,start LHS RHS)))))) (ill-formed-syntax form))))) -(define (decode-iso-8859 ib table) +(define (decode-8-bit ib table) (let ((cp (vector-ref table (vector-8b-ref (input-buffer-bytes ib) @@ -1057,44 +1052,44 @@ USA. cp) (error:char-decoding ib)))) -(define (encode-iso-8859 ob cp table) +(define (encode-8-bit ob cp start map-lhs map-rhs) (vector-8b-set! (input-buffer-bytes ob) (input-buffer-start ob) - (if (fix:< cp #xA1) + (if (fix:< cp start) cp - (let ((lhs (car table))) - (let loop ((low 0) (high (vector-length lhs))) - (if (not (fix:< low high)) - (error:char-encoding ob cp)) - (let ((i (fix:quotient (fix:+ low high) 2))) - (cond ((fix:< cp (vector-ref lhs i)) - (loop low i)) - ((fix:> cp (vector-ref lhs i)) - (loop (fix:+ i 1) high)) - (else - (vector-8b-ref (cdr table) i)))))))) + (let loop ((low 0) (high (vector-length map-lhs))) + (if (not (fix:< low high)) + (error:char-encoding ob cp)) + (let ((i (fix:quotient (fix:+ low high) 2))) + (cond ((fix:< cp (vector-ref map-lhs i)) + (loop low i)) + ((fix:> cp (vector-ref map-lhs i)) + (loop (fix:+ i 1) high)) + (else + (vector-8b-ref map-rhs i))))))) 1) + +(define (reverse-iso-8859-map start code-points) + (let ((n (length code-points))) + (let ((lhs (make-vector n)) + (rhs (make-vector-8b n))) + (do ((alist (sort (let loop ((code-points code-points) (i start)) + (if (pair? code-points) + (if (car code-points) + (cons (cons (car code-points) i) + (loop (cdr code-points) (fix:+ i 1))) + (loop (cdr code-points) (fix:+ i 1))) + '())) + (lambda (a b) + (fix:< (car a) (car b)))) + (cdr alist)) + (i 0 (fix:+ i 1))) + ((not (pair? alist))) + (vector-set! lhs i (caar alist)) + (vector-8b-set! rhs i (cdar alist))) + (values lhs rhs)))) -(define (reverse-iso-8859-map code-points) - (let ((lhs (make-vector #x5F)) - (rhs (make-string #x5F))) - (do ((alist (sort (let loop ((code-points code-points) (i #xA1)) - (if (pair? code-points) - (if (car code-points) - (cons (cons (car code-points) i) - (loop (cdr code-points) (fix:+ i 1))) - (loop (cdr code-points) (fix:+ i 1))) - '())) - (lambda (a b) - (fix:< (car a) (car b)))) - (cdr alist)) - (i 0 (fix:+ i 1))) - ((not (pair? alist))) - (vector-set! lhs i (caar alist)) - (vector-8b-set! rhs i (cdar alist))) - (values lhs rhs))) - -(define-iso-8859-map 2 +(define-8-bit-codecs iso-8859-2 #xA1 #x0104 #x02D8 #x0141 #x00A4 #x013D #x015A #x00A7 #x00A8 #x0160 #x015E #x0164 #x0179 #x00AD #x017D #x017B #x00B0 #x0105 #x02DB #x0142 #x00B4 #x013E #x015B #x02C7 #x00B8 @@ -1108,7 +1103,7 @@ USA. #x0144 #x0148 #x00F3 #x00F4 #x0151 #x00F6 #x00F7 #x0159 #x016F #x00FA #x0171 #x00FC #x00FD #x0163 #x02D9) -(define-iso-8859-map 3 +(define-8-bit-codecs iso-8859-3 #xA1 #x0126 #x02D8 #x00A3 #x00A4 #f #x0124 #x00A7 #x00A8 #x0130 #x015E #x011E #x0134 #x00AD #f #x017B #x00B0 #x0127 #x00B2 #x00B3 #x00B4 #x00B5 #x0125 #x00B7 #x00B8 @@ -1122,7 +1117,7 @@ USA. #x00F1 #x00F2 #x00F3 #x00F4 #x0121 #x00F6 #x00F7 #x011D #x00F9 #x00FA #x00FB #x00FC #x016D #x015D #x02D9) -(define-iso-8859-map 4 +(define-8-bit-codecs iso-8859-4 #xA1 #x0104 #x0138 #x0156 #x00A4 #x0128 #x013B #x00A7 #x00A8 #x0160 #x0112 #x0122 #x0166 #x00AD #x017D #x00AF #x00B0 #x0105 #x02DB #x0157 #x00B4 #x0129 #x013C #x02C7 #x00B8 @@ -1136,7 +1131,7 @@ USA. #x0146 #x014D #x0137 #x00F4 #x00F5 #x00F6 #x00F7 #x00F8 #x0173 #x00FA #x00FB #x00FC #x0169 #x016B #x02D9) -(define-iso-8859-map 5 +(define-8-bit-codecs iso-8859-5 #xA1 #x0401 #x0402 #x0403 #x0404 #x0405 #x0406 #x0407 #x0408 #x0409 #x040A #x040B #x040C #x00AD #x040E #x040F #x0410 #x0411 #x0412 #x0413 #x0414 #x0415 #x0416 #x0417 #x0418 @@ -1149,8 +1144,8 @@ USA. #x0449 #x044A #x044B #x044C #x044D #x044E #x044F #x2116 #x0451 #x0452 #x0453 #x0454 #x0455 #x0456 #x0457 #x0458 #x0459 #x045A #x045B #x045C #x00A7 #x045E #x045F) - -(define-iso-8859-map 6 + +(define-8-bit-codecs iso-8859-6 #xA1 #f #f #f #x00A4 #f #f #f #f #f #f #f #x060C #x00AD #f #f #f #f #f #f #f #f #f #f #f @@ -1162,9 +1157,9 @@ USA. #x0641 #x0642 #x0643 #x0644 #x0645 #x0646 #x0647 #x0648 #x0649 #x064A #x064B #x064C #x064D #x064E #x064F #x0650 #x0651 #x0652 #f #f #f #f #f #f - #f #f #f #f #f #f #f ) - -(define-iso-8859-map 7 + #f #f #f #f #f #f #f) + +(define-8-bit-codecs iso-8859-7 #xA1 #x2018 #x2019 #x00A3 #f #f #x00A6 #x00A7 #x00A8 #x00A9 #f #x00AB #x00AC #x00AD #f #x2015 #x00B0 #x00B1 #x00B2 #x00B3 #x0384 #x0385 #x0386 #x00B7 #x0388 @@ -1176,9 +1171,9 @@ USA. #x03B1 #x03B2 #x03B3 #x03B4 #x03B5 #x03B6 #x03B7 #x03B8 #x03B9 #x03BA #x03BB #x03BC #x03BD #x03BE #x03BF #x03C0 #x03C1 #x03C2 #x03C3 #x03C4 #x03C5 #x03C6 #x03C7 #x03C8 - #x03C9 #x03CA #x03CB #x03CC #x03CD #x03CE #f ) + #x03C9 #x03CA #x03CB #x03CC #x03CD #x03CE #f) -(define-iso-8859-map 8 +(define-8-bit-codecs iso-8859-8 #xA1 #f #x00A2 #x00A3 #x00A4 #x00A5 #x00A6 #x00A7 #x00A8 #x00A9 #x00D7 #x00AB #x00AC #x00AD #x00AE #x00AF #x00B0 #x00B1 #x00B2 #x00B3 #x00B4 #x00B5 #x00B6 #x00B7 #x00B8 @@ -1190,9 +1185,9 @@ USA. #x05D1 #x05D2 #x05D3 #x05D4 #x05D5 #x05D6 #x05D7 #x05D8 #x05D9 #x05DA #x05DB #x05DC #x05DD #x05DE #x05DF #x05E0 #x05E1 #x05E2 #x05E3 #x05E4 #x05E5 #x05E6 #x05E7 #x05E8 - #x05E9 #x05EA #f #f #x200E #x200F #f ) + #x05E9 #x05EA #f #f #x200E #x200F #f) -(define-iso-8859-map 9 +(define-8-bit-codecs iso-8859-9 #xA1 #x00A1 #x00A2 #x00A3 #x00A4 #x00A5 #x00A6 #x00A7 #x00A8 #x00A9 #x00AA #x00AB #x00AC #x00AD #x00AE #x00AF #x00B0 #x00B1 #x00B2 #x00B3 #x00B4 #x00B5 #x00B6 #x00B7 #x00B8 @@ -1206,7 +1201,7 @@ USA. #x00F1 #x00F2 #x00F3 #x00F4 #x00F5 #x00F6 #x00F7 #x00F8 #x00F9 #x00FA #x00FB #x00FC #x0131 #x015F #x00FF) -(define-iso-8859-map 10 +(define-8-bit-codecs iso-8859-10 #xA1 #x0104 #x0112 #x0122 #x012A #x0128 #x0136 #x00A7 #x013B #x0110 #x0160 #x0166 #x017D #x00AD #x016A #x014A #x00B0 #x0105 #x0113 #x0123 #x012B #x0129 #x0137 #x00B7 #x013C @@ -1219,8 +1214,8 @@ USA. #x00E9 #x0119 #x00EB #x0117 #x00ED #x00EE #x00EF #x00F0 #x0146 #x014D #x00F3 #x00F4 #x00F5 #x00F6 #x0169 #x00F8 #x0173 #x00FA #x00FB #x00FC #x00FD #x00FE #x0138) - -(define-iso-8859-map 11 + +(define-8-bit-codecs iso-8859-11 #xA1 #x0E01 #x0E02 #x0E03 #x0E04 #x0E05 #x0E06 #x0E07 #x0E08 #x0E09 #x0E0A #x0E0B #x0E0C #x0E0D #x0E0E #x0E0F #x0E10 #x0E11 #x0E12 #x0E13 #x0E14 #x0E15 #x0E16 #x0E17 #x0E18 @@ -1232,9 +1227,9 @@ USA. #x0E41 #x0E42 #x0E43 #x0E44 #x0E45 #x0E46 #x0E47 #x0E48 #x0E49 #x0E4A #x0E4B #x0E4C #x0E4D #x0E4E #x0E4F #x0E50 #x0E51 #x0E52 #x0E53 #x0E54 #x0E55 #x0E56 #x0E57 #x0E58 - #x0E59 #x0E5A #x0E5B #f #f #f #f ) - -(define-iso-8859-map 13 + #x0E59 #x0E5A #x0E5B #f #f #f #f) + +(define-8-bit-codecs iso-8859-13 #xA1 #x201D #x00A2 #x00A3 #x00A4 #x201E #x00A6 #x00A7 #x00D8 #x00A9 #x0156 #x00AB #x00AC #x00AD #x00AE #x00C6 #x00B0 #x00B1 #x00B2 #x00B3 #x201C #x00B5 #x00B6 #x00B7 #x00F8 @@ -1248,7 +1243,7 @@ USA. #x0144 #x0146 #x00F3 #x014D #x00F5 #x00F6 #x00F7 #x0173 #x0142 #x015B #x016B #x00FC #x017C #x017E #x2019) -(define-iso-8859-map 14 +(define-8-bit-codecs iso-8859-14 #xA1 #x1E02 #x1E03 #x00A3 #x010A #x010B #x1E0A #x00A7 #x1E80 #x00A9 #x1E82 #x1E0B #x1EF2 #x00AD #x00AE #x0178 #x1E1E #x1E1F #x0120 #x0121 #x1E40 #x1E41 #x00B6 #x1E56 #x1E81 @@ -1262,7 +1257,7 @@ USA. #x00F1 #x00F2 #x00F3 #x00F4 #x00F5 #x00F6 #x1E6B #x00F8 #x00F9 #x00FA #x00FB #x00FC #x00FD #x0177 #x00FF) -(define-iso-8859-map 15 +(define-8-bit-codecs iso-8859-15 #xA1 #x00A1 #x00A2 #x00A3 #x20AC #x00A5 #x0160 #x00A7 #x0161 #x00A9 #x00AA #x00AB #x00AC #x00AD #x00AE #x00AF #x00B0 #x00B1 #x00B2 #x00B3 #x017D #x00B5 #x00B6 #x00B7 #x017E @@ -1276,7 +1271,7 @@ USA. #x00F1 #x00F2 #x00F3 #x00F4 #x00F5 #x00F6 #x00F7 #x00F8 #x00F9 #x00FA #x00FB #x00FC #x00FD #x00FE #x00FF) -(define-iso-8859-map 16 +(define-8-bit-codecs iso-8859-16 #xA1 #x0104 #x0105 #x0141 #x20AC #x201E #x0160 #x00A7 #x0161 #x00A9 #x0218 #x00AB #x0179 #x00AD #x017A #x017B #x00B0 #x00B1 #x010C #x0142 #x017D #x201D #x00B6 #x00B7 #x017E @@ -1290,6 +1285,186 @@ USA. #x0144 #x00F2 #x00F3 #x00F4 #x0151 #x00F6 #x015B #x0171 #x00F9 #x00FA #x00FB #x00FC #x0119 #x021B #x00FF) +(define-8-bit-codecs windows-1250 #x80 + #x20ac #f #x201a #f #x201e #x2026 #x2020 #x2021 + #f #x2030 #x0160 #x2039 #x015a #x0164 #x017d #x0179 + #f #x2018 #x2019 #x201c #x201d #x2022 #x2013 #x2014 + #f #x2122 #x0161 #x203a #x015b #x0165 #x017e #x017a + #x00a0 #x02c7 #x02d8 #x0141 #x00a4 #x0104 #x00a6 #x00a7 + #x00a8 #x00a9 #x015e #x00ab #x00ac #x00ad #x00ae #x017b + #x00b0 #x00b1 #x02db #x0142 #x00b4 #x00b5 #x00b6 #x00b7 + #x00b8 #x0105 #x015f #x00bb #x013d #x02dd #x013e #x017c + #x0154 #x00c1 #x00c2 #x0102 #x00c4 #x0139 #x0106 #x00c7 + #x010c #x00c9 #x0118 #x00cb #x011a #x00cd #x00ce #x010e + #x0110 #x0143 #x0147 #x00d3 #x00d4 #x0150 #x00d6 #x00d7 + #x0158 #x016e #x00da #x0170 #x00dc #x00dd #x0162 #x00df + #x0155 #x00e1 #x00e2 #x0103 #x00e4 #x013a #x0107 #x00e7 + #x010d #x00e9 #x0119 #x00eb #x011b #x00ed #x00ee #x010f + #x0111 #x0144 #x0148 #x00f3 #x00f4 #x0151 #x00f6 #x00f7 + #x0159 #x016f #x00fa #x0171 #x00fc #x00fd #x0163 #x02d9) + +(define-8-bit-codecs windows-1251 #x80 + #x0402 #x0403 #x201a #x0453 #x201e #x2026 #x2020 #x2021 + #x20ac #x2030 #x0409 #x2039 #x040a #x040c #x040b #x040f + #x0452 #x2018 #x2019 #x201c #x201d #x2022 #x2013 #x2014 + #f #x2122 #x0459 #x203a #x045a #x045c #x045b #x045f + #x00a0 #x040e #x045e #x0408 #x00a4 #x0490 #x00a6 #x00a7 + #x0401 #x00a9 #x0404 #x00ab #x00ac #x00ad #x00ae #x0407 + #x00b0 #x00b1 #x0406 #x0456 #x0491 #x00b5 #x00b6 #x00b7 + #x0451 #x2116 #x0454 #x00bb #x0458 #x0405 #x0455 #x0457 + #x0410 #x0411 #x0412 #x0413 #x0414 #x0415 #x0416 #x0417 + #x0418 #x0419 #x041a #x041b #x041c #x041d #x041e #x041f + #x0420 #x0421 #x0422 #x0423 #x0424 #x0425 #x0426 #x0427 + #x0428 #x0429 #x042a #x042b #x042c #x042d #x042e #x042f + #x0430 #x0431 #x0432 #x0433 #x0434 #x0435 #x0436 #x0437 + #x0438 #x0439 #x043a #x043b #x043c #x043d #x043e #x043f + #x0440 #x0441 #x0442 #x0443 #x0444 #x0445 #x0446 #x0447 + #x0448 #x0449 #x044a #x044b #x044c #x044d #x044e #x044f) + +(define-8-bit-codecs windows-1252 #x80 + #x20ac #f #x201a #x0192 #x201e #x2026 #x2020 #x2021 + #x02c6 #x2030 #x0160 #x2039 #x0152 #f #x017d #f + #f #x2018 #x2019 #x201c #x201d #x2022 #x2013 #x2014 + #x02dc #x2122 #x0161 #x203a #x0153 #f #x017e #x0178 + #x00a0 #x00a1 #x00a2 #x00a3 #x00a4 #x00a5 #x00a6 #x00a7 + #x00a8 #x00a9 #x00aa #x00ab #x00ac #x00ad #x00ae #x00af + #x00b0 #x00b1 #x00b2 #x00b3 #x00b4 #x00b5 #x00b6 #x00b7 + #x00b8 #x00b9 #x00ba #x00bb #x00bc #x00bd #x00be #x00bf + #x00c0 #x00c1 #x00c2 #x00c3 #x00c4 #x00c5 #x00c6 #x00c7 + #x00c8 #x00c9 #x00ca #x00cb #x00cc #x00cd #x00ce #x00cf + #x00d0 #x00d1 #x00d2 #x00d3 #x00d4 #x00d5 #x00d6 #x00d7 + #x00d8 #x00d9 #x00da #x00db #x00dc #x00dd #x00de #x00df + #x00e0 #x00e1 #x00e2 #x00e3 #x00e4 #x00e5 #x00e6 #x00e7 + #x00e8 #x00e9 #x00ea #x00eb #x00ec #x00ed #x00ee #x00ef + #x00f0 #x00f1 #x00f2 #x00f3 #x00f4 #x00f5 #x00f6 #x00f7 + #x00f8 #x00f9 #x00fa #x00fb #x00fc #x00fd #x00fe #x00ff) + +(define-8-bit-codecs windows-1253 #x80 + #x20ac #f #x201a #x0192 #x201e #x2026 #x2020 #x2021 + #f #x2030 #f #x2039 #f #f #f #f + #f #x2018 #x2019 #x201c #x201d #x2022 #x2013 #x2014 + #f #x2122 #f #x203a #f #f #f #f + #x00a0 #x0385 #x0386 #x00a3 #x00a4 #x00a5 #x00a6 #x00a7 + #x00a8 #x00a9 #f #x00ab #x00ac #x00ad #x00ae #x2015 + #x00b0 #x00b1 #x00b2 #x00b3 #x0384 #x00b5 #x00b6 #x00b7 + #x0388 #x0389 #x038a #x00bb #x038c #x00bd #x038e #x038f + #x0390 #x0391 #x0392 #x0393 #x0394 #x0395 #x0396 #x0397 + #x0398 #x0399 #x039a #x039b #x039c #x039d #x039e #x039f + #x03a0 #x03a1 #f #x03a3 #x03a4 #x03a5 #x03a6 #x03a7 + #x03a8 #x03a9 #x03aa #x03ab #x03ac #x03ad #x03ae #x03af + #x03b0 #x03b1 #x03b2 #x03b3 #x03b4 #x03b5 #x03b6 #x03b7 + #x03b8 #x03b9 #x03ba #x03bb #x03bc #x03bd #x03be #x03bf + #x03c0 #x03c1 #x03c2 #x03c3 #x03c4 #x03c5 #x03c6 #x03c7 + #x03c8 #x03c9 #x03ca #x03cb #x03cc #x03cd #x03ce #f) + +(define-8-bit-codecs windows-1254 #x80 + #x20ac #f #x201a #x0192 #x201e #x2026 #x2020 #x2021 + #x02c6 #x2030 #x0160 #x2039 #x0152 #f #f #f + #f #x2018 #x2019 #x201c #x201d #x2022 #x2013 #x2014 + #x02dc #x2122 #x0161 #x203a #x0153 #f #f #x0178 + #x00a0 #x00a1 #x00a2 #x00a3 #x00a4 #x00a5 #x00a6 #x00a7 + #x00a8 #x00a9 #x00aa #x00ab #x00ac #x00ad #x00ae #x00af + #x00b0 #x00b1 #x00b2 #x00b3 #x00b4 #x00b5 #x00b6 #x00b7 + #x00b8 #x00b9 #x00ba #x00bb #x00bc #x00bd #x00be #x00bf + #x00c0 #x00c1 #x00c2 #x00c3 #x00c4 #x00c5 #x00c6 #x00c7 + #x00c8 #x00c9 #x00ca #x00cb #x00cc #x00cd #x00ce #x00cf + #x011e #x00d1 #x00d2 #x00d3 #x00d4 #x00d5 #x00d6 #x00d7 + #x00d8 #x00d9 #x00da #x00db #x00dc #x0130 #x015e #x00df + #x00e0 #x00e1 #x00e2 #x00e3 #x00e4 #x00e5 #x00e6 #x00e7 + #x00e8 #x00e9 #x00ea #x00eb #x00ec #x00ed #x00ee #x00ef + #x011f #x00f1 #x00f2 #x00f3 #x00f4 #x00f5 #x00f6 #x00f7 + #x00f8 #x00f9 #x00fa #x00fb #x00fc #x0131 #x015f #x00ff) + +(define-8-bit-codecs windows-1255 #x80 + #x20ac #f #x201a #x0192 #x201e #x2026 #x2020 #x2021 + #x02c6 #x2030 #f #x2039 #f #f #f #f + #f #x2018 #x2019 #x201c #x201d #x2022 #x2013 #x2014 + #x02dc #x2122 #f #x203a #f #f #f #f + #x00a0 #x00a1 #x00a2 #x00a3 #x20aa #x00a5 #x00a6 #x00a7 + #x00a8 #x00a9 #x00d7 #x00ab #x00ac #x00ad #x00ae #x00af + #x00b0 #x00b1 #x00b2 #x00b3 #x00b4 #x00b5 #x00b6 #x00b7 + #x00b8 #x00b9 #x00f7 #x00bb #x00bc #x00bd #x00be #x00bf + #x05b0 #x05b1 #x05b2 #x05b3 #x05b4 #x05b5 #x05b6 #x05b7 + #x05b8 #x05b9 #f #x05bb #x05bc #x05bd #x05be #x05bf + #x05c0 #x05c1 #x05c2 #x05c3 #x05f0 #x05f1 #x05f2 #x05f3 + #x05f4 #f #f #f #f #f #f #f + #x05d0 #x05d1 #x05d2 #x05d3 #x05d4 #x05d5 #x05d6 #x05d7 + #x05d8 #x05d9 #x05da #x05db #x05dc #x05dd #x05de #x05df + #x05e0 #x05e1 #x05e2 #x05e3 #x05e4 #x05e5 #x05e6 #x05e7 + #x05e8 #x05e9 #x05ea #f #f #x200e #x200f #f) + +(define-8-bit-codecs windows-1256 #x80 + #x20ac #x067e #x201a #x0192 #x201e #x2026 #x2020 #x2021 + #x02c6 #x2030 #x0679 #x2039 #x0152 #x0686 #x0698 #x0688 + #x06af #x2018 #x2019 #x201c #x201d #x2022 #x2013 #x2014 + #x06a9 #x2122 #x0691 #x203a #x0153 #x200c #x200d #x06ba + #x00a0 #x060c #x00a2 #x00a3 #x00a4 #x00a5 #x00a6 #x00a7 + #x00a8 #x00a9 #x06be #x00ab #x00ac #x00ad #x00ae #x00af + #x00b0 #x00b1 #x00b2 #x00b3 #x00b4 #x00b5 #x00b6 #x00b7 + #x00b8 #x00b9 #x061b #x00bb #x00bc #x00bd #x00be #x061f + #x06c1 #x0621 #x0622 #x0623 #x0624 #x0625 #x0626 #x0627 + #x0628 #x0629 #x062a #x062b #x062c #x062d #x062e #x062f + #x0630 #x0631 #x0632 #x0633 #x0634 #x0635 #x0636 #x00d7 + #x0637 #x0638 #x0639 #x063a #x0640 #x0641 #x0642 #x0643 + #x00e0 #x0644 #x00e2 #x0645 #x0646 #x0647 #x0648 #x00e7 + #x00e8 #x00e9 #x00ea #x00eb #x0649 #x064a #x00ee #x00ef + #x064b #x064c #x064d #x064e #x00f4 #x064f #x0650 #x00f7 + #x0651 #x00f9 #x0652 #x00fb #x00fc #x200e #x200f #x06d2) + +(define-8-bit-codecs windows-1257 #x80 + #x20ac #f #x201a #f #x201e #x2026 #x2020 #x2021 + #f #x2030 #f #x2039 #f #x00a8 #x02c7 #x00b8 + #f #x2018 #x2019 #x201c #x201d #x2022 #x2013 #x2014 + #f #x2122 #f #x203a #f #x00af #x02db #f + #x00a0 #f #x00a2 #x00a3 #x00a4 #f #x00a6 #x00a7 + #x00d8 #x00a9 #x0156 #x00ab #x00ac #x00ad #x00ae #x00c6 + #x00b0 #x00b1 #x00b2 #x00b3 #x00b4 #x00b5 #x00b6 #x00b7 + #x00f8 #x00b9 #x0157 #x00bb #x00bc #x00bd #x00be #x00e6 + #x0104 #x012e #x0100 #x0106 #x00c4 #x00c5 #x0118 #x0112 + #x010c #x00c9 #x0179 #x0116 #x0122 #x0136 #x012a #x013b + #x0160 #x0143 #x0145 #x00d3 #x014c #x00d5 #x00d6 #x00d7 + #x0172 #x0141 #x015a #x016a #x00dc #x017b #x017d #x00df + #x0105 #x012f #x0101 #x0107 #x00e4 #x00e5 #x0119 #x0113 + #x010d #x00e9 #x017a #x0117 #x0123 #x0137 #x012b #x013c + #x0161 #x0144 #x0146 #x00f3 #x014d #x00f5 #x00f6 #x00f7 + #x0173 #x0142 #x015b #x016b #x00fc #x017c #x017e #x02d9) + +(define-8-bit-codecs windows-1258 #x80 + #x20ac #f #x201a #x0192 #x201e #x2026 #x2020 #x2021 + #x02c6 #x2030 #f #x2039 #x0152 #f #f #f + #f #x2018 #x2019 #x201c #x201d #x2022 #x2013 #x2014 + #x02dc #x2122 #f #x203a #x0153 #f #f #x0178 + #x00a0 #x00a1 #x00a2 #x00a3 #x00a4 #x00a5 #x00a6 #x00a7 + #x00a8 #x00a9 #x00aa #x00ab #x00ac #x00ad #x00ae #x00af + #x00b0 #x00b1 #x00b2 #x00b3 #x00b4 #x00b5 #x00b6 #x00b7 + #x00b8 #x00b9 #x00ba #x00bb #x00bc #x00bd #x00be #x00bf + #x00c0 #x00c1 #x00c2 #x0102 #x00c4 #x00c5 #x00c6 #x00c7 + #x00c8 #x00c9 #x00ca #x00cb #x0300 #x00cd #x00ce #x00cf + #x0110 #x00d1 #x0309 #x00d3 #x00d4 #x01a0 #x00d6 #x00d7 + #x00d8 #x00d9 #x00da #x00db #x00dc #x01af #x0303 #x00df + #x00e0 #x00e1 #x00e2 #x0103 #x00e4 #x00e5 #x00e6 #x00e7 + #x00e8 #x00e9 #x00ea #x00eb #x0301 #x00ed #x00ee #x00ef + #x0111 #x00f1 #x0323 #x00f3 #x00f4 #x01a1 #x00f6 #x00f7 + #x00f8 #x00f9 #x00fa #x00fb #x00fc #x01b0 #x20ab #x00ff) + +(define-8-bit-codecs windows-874 #x80 + #x20ac #f #f #f #f #x2026 #f #f + #f #f #f #f #f #f #f #f + #f #x2018 #x2019 #x201c #x201d #x2022 #x2013 #x2014 + #f #f #f #f #f #f #f #f + #x00a0 #x0e01 #x0e02 #x0e03 #x0e04 #x0e05 #x0e06 #x0e07 + #x0e08 #x0e09 #x0e0a #x0e0b #x0e0c #x0e0d #x0e0e #x0e0f + #x0e10 #x0e11 #x0e12 #x0e13 #x0e14 #x0e15 #x0e16 #x0e17 + #x0e18 #x0e19 #x0e1a #x0e1b #x0e1c #x0e1d #x0e1e #x0e1f + #x0e20 #x0e21 #x0e22 #x0e23 #x0e24 #x0e25 #x0e26 #x0e27 + #x0e28 #x0e29 #x0e2a #x0e2b #x0e2c #x0e2d #x0e2e #x0e2f + #x0e30 #x0e31 #x0e32 #x0e33 #x0e34 #x0e35 #x0e36 #x0e37 + #x0e38 #x0e39 #x0e3a #f #f #f #f #x0e3f + #x0e40 #x0e41 #x0e42 #x0e43 #x0e44 #x0e45 #x0e46 #x0e47 + #x0e48 #x0e49 #x0e4a #x0e4b #x0e4c #x0e4d #x0e4e #x0e4f + #x0e50 #x0e51 #x0e52 #x0e53 #x0e54 #x0e55 #x0e56 #x0e57 + #x0e58 #x0e59 #x0e5a #x0e5b #f #f #f #f) + #| (define (read-iso-8859-directory directory) (let ((directory (pathname-as-directory directory))) -- 2.25.1