]> git.eshelyaron.com Git - emacs.git/commitdiff
Provide mule-utils.
authorDave Love <fx@gnu.org>
Sat, 1 Apr 2000 12:03:57 +0000 (12:03 +0000)
committerDave Love <fx@gnu.org>
Sat, 1 Apr 2000 12:03:57 +0000 (12:03 +0000)
(string-to-sequence): Simplify and speed up.

lisp/international/mule-util.el

index 1e1bd7e31d521b2b63ffe22391af51b7fe259204..63f7f16ad74871656657a5dc89a4c5b0bd7ba00b 100644 (file)
 (defun string-to-sequence (string type)
   "Convert STRING to a sequence of TYPE which contains characters in STRING.
 TYPE should be `list' or `vector'."
-  (let ((len (length string))
-       (i 0)
-       val)
+;;;  (let ((len (length string))
+;;;       (i 0)
+;;;       val)
     (cond ((eq type 'list)
-          (setq val (make-list len 0))
-          (let ((l val))
-            (while (< i len)
-              (setcar l (aref string i))
-              (setq l (cdr l) i (1+ i)))))
+          ;; Applicable post-Emacs 20.2 and asymptotically ~10 times
+          ;; faster than the code below:
+          (append string nil))
+;;;       (setq val (make-list len 0))
+;;;       (let ((l val))
+;;;         (while (< i len)
+;;;           (setcar l (aref string i))
+;;;           (setq l (cdr l) i (1+ i))))))
          ((eq type 'vector)
-          (setq val (make-vector len 0))
-          (while (< i len)
-            (aset val i (aref string i))
-            (setq i (1+ i))))
+          ;; As above.
+          (vconcat string))
+;;;       (setq val (make-vector len 0))
+;;;       (while (< i len)
+;;;         (aset val i (aref string i))
+;;;         (setq i (1+ i))))
          (t
           (error "Invalid type: %s" type)))
-    val))
+;;;    val)
+)
 
 ;;;###autoload
 (defsubst string-to-list (string)
@@ -187,7 +193,7 @@ If ALIST is not deep enough for KEYSEQ, return number which is
 Optional 3rd argument NIL-FOR-TOO-LONG non-nil means return nil
  even if ALIST is not deep enough."
   (or (nested-alist-p alist)
-      (error "invalid argument %s" alist))
+      (error "Invalid argument %s" alist))
   (or len
       (setq len (length keyseq)))
   (let ((i (or start 0)))
@@ -288,5 +294,6 @@ language environment LANG-ENV."
       (detect-coding-region from to))))
 
 \f
-;;; mule-util.el ends here
+(provide 'mule-util)
 
+;;; mule-util.el ends here