* pccl.el (ccl-usable): Make non-MULE XEmacs don't require `ccl'
 even if this file is mis-compiled for XEmacs with MULE.
* poem-ltn1.el (truncate-string): Act like the real `truncate-string':
 do not fail if the string is shorter than the max length.
+2002-05-14  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+       * pccl.el (ccl-usable): Make non-MULE XEmacs don't require `ccl'
+       even if this file is mis-compiled for XEmacs with MULE.
+
+2002-03-23  Nix  <nix@esperi.demon.co.uk>
+
+       * poem-ltn1.el (truncate-string): Act like the real `truncate-string':
+       do not fail if the string is shorter than the max length.
+
 2002-04-30  Katsumi Yamaoka  <yamaoka@jpl.org>
 
        * poem-xm.el (string-to-char-list): Revive it again.
 
          (>= emacs-major-version 19))))
 
 (unless-broken ccl-usable
-  (require 'ccl)
   (require 'advice)
 
   (if (featurep 'mule)
-      (if (featurep 'xemacs)
-          (if (>= emacs-major-version 21)
-              ;; for XEmacs 21 with mule
-              (require 'pccl-20))
-        (if (>= emacs-major-version 20)
-            ;; for Emacs 20
-            (require 'pccl-20)
-          ;; for Mule 2.*
-          (require 'pccl-om))))
+      (progn
+       (require 'ccl)
+       (if (featurep 'xemacs)
+            (if (>= emacs-major-version 21)
+                ;; for XEmacs 21 with mule
+                (require 'pccl-20))
+          (if (>= emacs-major-version 20)
+              ;; for Emacs 20
+              (require 'pccl-20)
+            ;; for Mule 2.*
+            (require 'pccl-om)))))
 
   (static-if (or (featurep 'xemacs) (< emacs-major-version 21))
     (defadvice define-ccl-program
 
 \[emu-latin1.el; MULE 2.3 emulating function]"
   (or start-column
       (setq start-column 0))
-  (substring str start-column width))
+  (if (> (length str) width)
+      (substring str start-column width)
+    str))
 
 (defalias 'looking-at-as-unibyte 'looking-at)