(rfc2104-string-make-unibyte): Define it as a compiler macro.
authorKatsumi Yamaoka <yamaoka@jpl.org>
Wed, 30 Jul 2008 23:48:40 +0000 (23:48 +0000)
committerKatsumi Yamaoka <yamaoka@jpl.org>
Wed, 30 Jul 2008 23:48:40 +0000 (23:48 +0000)
(rfc2104-hash): Use it.

lisp/ChangeLog
lisp/rfc2104.el

index a179b87..f5f6377 100644 (file)
@@ -1,3 +1,9 @@
+2008-07-30  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+       * rfc2104.el (rfc2104-string-make-unibyte): Define it as a compiler
+       macro.
+       (rfc2104-hash): Use it.
+
 2008-07-30  Reiner Steib  <Reiner.Steib@gmx.de>
 
        * gnus-sum.el (gnus-summary-sort-by-most-recent-number)
index af6ebd5..0339d59 100644 (file)
       (setq ls (cdr ls)))
     v))
 
+(eval-when-compile
+  (defmacro rfc2104-string-make-unibyte (string)
+    "Return the unibyte equivalent of STRING.
+In XEmacs return just STRING."
+    (if (featurep 'xemacs)
+       string
+      `(string-make-unibyte ,string))))
+
 (defun rfc2104-hash (hash block-length hash-length key text)
   (let* (;; if key is longer than B, reset it to HASH(key)
         (key (if (> (length key) block-length)
       (aset ipad i (logxor rfc2104-ipad c))
       (aset opad i (logxor rfc2104-opad c)))
     ;; Perform inner hash.
-    (setq partial (string-make-unibyte (funcall hash (concat ipad text))))
+    (setq partial (rfc2104-string-make-unibyte
+                  (funcall hash (concat ipad text))))
     ;; Pack latter part of opad.
     (do ((r 0 (+ 2 r))
          (w block-length (1+ w)))
             (+ (* 16 (aref rfc2104-nybbles (aref partial     r)))
                (      aref rfc2104-nybbles (aref partial (1+ r))))))
     ;; Perform outer hash.
-    (string-make-unibyte (funcall hash opad))))
+    (rfc2104-string-make-unibyte (funcall hash opad))))
 
 (provide 'rfc2104)