Index: /trunk/ccl/level-1/l1-unicode.lisp
===================================================================
--- /trunk/ccl/level-1/l1-unicode.lisp	(revision 6536)
+++ /trunk/ccl/level-1/l1-unicode.lisp	(revision 6537)
@@ -86,5 +86,5 @@
   length-of-memory-encoding-function    ;(POINTER NOCTETS START)
 
-  ;; Code units and character codes less than this value map to themselves
+  ;; Code units less than this value map to themselves on input.
   (literal-char-code-limit 0)
 
@@ -107,4 +107,6 @@
   ;; length sequenve of 0s, but there are exceptions.)
   (nul-encoding #(0))
+  ;; Char-codes less than  this value map to themselves on output.
+  (encode-literal-char-code-limit 0)
   )
 
@@ -262,4 +264,5 @@
   #'8-bit-fixed-width-length-of-memory-encoding
   :literal-char-code-limit 256
+  :encode-literal-char-code-limit 256
   )
 
@@ -347,4 +350,5 @@
   #'8-bit-fixed-width-length-of-memory-encoding
   :literal-char-code-limit 128
+  :encode-literal-char-code-limit 128
   )
 
@@ -520,4 +524,5 @@
   #'8-bit-fixed-width-length-of-memory-encoding
   :literal-char-code-limit #xa0
+  :encode-literal-char-code-limit #xa0
   )
 
@@ -698,4 +703,5 @@
   #'8-bit-fixed-width-length-of-memory-encoding
   :literal-char-code-limit #xa0
+  :encode-literal-char-code-limit #xa0  
   )
 
@@ -869,4 +875,5 @@
   #'8-bit-fixed-width-length-of-memory-encoding
   :literal-char-code-limit #xa0
+  :encode-literal-char-code-limit #xa0  
   )
 
@@ -1020,4 +1027,5 @@
   #'8-bit-fixed-width-length-of-memory-encoding
   :literal-char-code-limit #xa0
+  :encode-literal-char-code-limit #xa0
   )
 
@@ -1168,4 +1176,5 @@
   #'8-bit-fixed-width-length-of-memory-encoding
   :literal-char-code-limit #xa0
+  :encode-literal-char-code-limit #xa0  
   )
 
@@ -1347,4 +1356,5 @@
   #'8-bit-fixed-width-length-of-memory-encoding
   :literal-char-code-limit #xa0
+  :encode-literal-char-code-limit #xa0  
   )
 
@@ -1512,4 +1522,5 @@
   #'8-bit-fixed-width-length-of-memory-encoding
   :literal-char-code-limit #xa0
+  :encode-literal-char-code-limit #xa0  
   )
 
@@ -1654,4 +1665,5 @@
   #'8-bit-fixed-width-length-of-memory-encoding
   :literal-char-code-limit #xd0
+  :encode-literal-char-code-limit #xa0
   )
 
@@ -1803,4 +1815,5 @@
   #'8-bit-fixed-width-length-of-memory-encoding
   :literal-char-code-limit #xa0
+  :encode-literal-char-code-limit #xa0  
   )
 
@@ -1912,4 +1925,5 @@
   #'8-bit-fixed-width-length-of-memory-encoding
   :literal-char-code-limit #xa0
+  :encode-literal-char-code-limit #xa0  
   )
 
@@ -2081,4 +2095,5 @@
   #'8-bit-fixed-width-length-of-memory-encoding
   :literal-char-code-limit #xa0
+  :encode-literal-char-code-limit #xa0  
   )
 
@@ -2289,4 +2304,5 @@
   #'8-bit-fixed-width-length-of-memory-encoding
   :literal-char-code-limit #xa0
+  :encode-literal-char-code-limit #xa0  
   )
 
@@ -2448,4 +2464,5 @@
   #'8-bit-fixed-width-length-of-memory-encoding
   :literal-char-code-limit #xa0
+  :encode-literal-char-code-limit #xa0  
   )
 
@@ -2628,4 +2645,5 @@
   #'8-bit-fixed-width-length-of-memory-encoding
   :literal-char-code-limit #xa0
+  :encode-literal-char-code-limit #xa0  
   )
 
@@ -2998,4 +3016,5 @@
              (setq nchars (1+ nchars) i nexti))))))
     :literal-char-code-limit #x80
+  :encode-literal-char-code-limit #x80    
     :bom-encoding #(#xef #xbb #xbf)
     )
@@ -3276,5 +3295,6 @@
              (return (values nchars i))
              (setq i nexti nchars (1+ nchars)))))))
-    :literal-char-code-limit #xd800    ; use separate encode/decode limits
+    :literal-char-code-limit #xd800  
+    :encode-literal-char-code-limit #x10000
     :nul-encoding #(0 0)
     )
@@ -3440,4 +3460,5 @@
            (setq i nexti nchars (1+ nchars)))))))
   :literal-char-code-limit #xd800
+  :encode-literal-char-code-limit #x10000
   :nul-encoding #(0 0)
   )
@@ -3651,4 +3672,5 @@
                    4)))))))
   :literal-char-code-limit #xd800
+  :encode-literal-char-code-limit #x10000  
   :use-byte-order-mark
   #+big-endian-target :utf-16le
@@ -3776,4 +3798,5 @@
      (values (floor noctets 2) (+ start noctets))))
   :literal-char-code-limit #x10000
+  :encode-literal-char-code-limit #x10000  
   :nul-encoding #(0 0)
   )
@@ -3874,4 +3897,5 @@
      (values (floor noctets 2) (+ start noctets))))
   :literal-char-code-limit #x10000
+  :encode-literal-char-code-limit #x10000
   :nul-encoding #(0 0)
   )
@@ -3994,4 +4018,5 @@
      (values (floor noctets 2) (+ start noctets))))
   :literal-char-code-limit #x10000
+  :encode-literal-char-code-limit #x10000  
   :use-byte-order-mark
   #+big-endian-target :ucs-2le
@@ -4179,4 +4204,5 @@
      (values (floor noctets 4) (+ start noctets))))
   :literal-char-code-limit #x110000
+  :encode-literal-char-code-limit #x110000
   :nul-encoding #(0 0 0 0)
   )
@@ -4276,4 +4302,5 @@
      (values (floor noctets 4) (+ start noctets))))
   :literal-char-code-limit #x110000
+  :encode-literal-char-code-limit #x110000
   :nul-encoding #(0 0 0 0)  
   )
@@ -4396,4 +4423,5 @@
      (values (floor noctets 4) (+ start noctets))))
   :literal-char-code-limit #x110000
+  :encode-literal-char-code-limit #x110000  
   :use-byte-order-mark
   #+big-endian-target :utf-32le
