Fix my last change.
[gnus] / lisp / base64.el
index 36e1374..572a5d3 100644 (file)
@@ -29,7 +29,7 @@
 
 ;; For non-MULE
 (if (not (fboundp 'char-int))
-    (fset 'char-int 'identity))
+    (defalias 'char-int 'identity))
 
 (defvar base64-alphabet
   "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/")
@@ -103,7 +103,7 @@ base64-encoder-program.")
       (ignore-errors
        (delete-file tempfile)))))
 
-(if (string-match "XEmacs" emacs-version)
+(if (featurep 'xemacs)
     (defalias 'base64-insert-char 'insert-char)
   (defun base64-insert-char (char &optional count ignored buffer)
     (if (or (null buffer) (eq buffer (current-buffer)))
@@ -155,12 +155,12 @@ base64-encoder-program.")
                         (setq bits 0 counter 0))
                        (t (setq bits (lsh bits 6)))))))
              (cond
-              ((= (point) end)
-               (if (not (zerop counter))
-                   (error "at least %d bits missing at end of base64 encoding"
-                          (* (- 4 counter) 6)))
-               (setq done t))
-              ((eq (char-after (point)) ?=)
+              ((or (= (point) end)
+                   (eq (char-after (point)) ?=))
+               (if (and (= (point) end) (> counter 1))
+                   (message 
+                    "at least %d bits missing at end of base64 encoding"
+                    (* (- 4 counter) 6)))
                (setq done t)
                (cond ((= counter 1)
                       (error "at least 2 bits missing at end of base64 encoding"))
@@ -272,7 +272,7 @@ base64-encoder-program.")
        (buffer-string)
       (kill-buffer (current-buffer)))))
 
-(fset 'base64-decode-string 'base64-decode)
-(fset 'base64-encode-string 'base64-encode)
+(defalias 'base64-decode-string 'base64-decode)
+(defalias 'base64-encode-string 'base64-encode)
 
 (provide 'base64)