1.0.32.20: bug fixes in unibyte external formats
commit314ebe7a98015e25eb6dc750962b0726feac1b2c
authorChristophe Rhodes <csr21@cantab.net>
Wed, 11 Nov 2009 17:21:05 +0000 (11 17:21 +0000)
committerChristophe Rhodes <csr21@cantab.net>
Wed, 11 Nov 2009 17:21:05 +0000 (11 17:21 +0000)
tree1b0050ac1bc65e70b79c0b49fca3a4f80a0264eb
parented53de3c94faddfdc7447b3d61fef821c250e8d1
1.0.32.20: bug fixes in unibyte external formats

* handling undefined codepoints:

  There's a difference between "unassigned codepoint", represented as
  (<code> nil), and "codepoint mapping to character with that codepoint",
  represented by the absence of an entry in the exceptions list.  Simply
  testing for trueness of (cadr (assoc <code> exceptions)) isn't good
  enough; test for trueness of (cdr (assoc ...)) and use the car if so.

* undefined codepoints as the first exception:

  If the first exception to code<->byte is an undefined character, as for
  example in iso-8859-8, the lowest-code exception was computed wrongly,
  leading to incorrect encoding.
NEWS
src/code/octets.lisp
tests/external-format.impure.lisp
version.lisp-expr