(nnshimbun): Follow changes in nnshimbun.el.
[elisp/gnus.git-] / lisp / base64.el
index a396808..2a47045 100644 (file)
 ;;; Boston, MA 02111-1307, USA.
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(require 'poe)
+(eval-when-compile (require 'static))
+
+(require 'mel)
+
+(eval-and-compile
+  (defun autoload-functionp (object)
+    (if (functionp object)
+       (let ((def object))
+         (while (and (symbolp def) (fboundp def))
+           (setq def (symbol-function def)))
+         (eq (car-safe def) 'autoload))))
+  (if (autoload-functionp 'base64-decode-string)
+      (fmakunbound 'base64-decode-string))
+  (if (autoload-functionp 'base64-decode-region)
+      (fmakunbound 'base64-decode-region))
+  (if (autoload-functionp 'base64-encode-string)
+      (fmakunbound 'base64-encode-string))
+  (if (autoload-functionp 'base64-encode-region)
+      (fmakunbound 'base64-encode-region))
+  (mel-find-function 'mime-decode-string "base64")
+  (mel-find-function 'mime-decode-region "base64")
+  (mel-find-function 'mime-encode-string "base64")
+  (mel-find-function 'mime-encode-region "base64"))
+
+(static-when nil
+(eval-when-compile (require 'cl))
 
 ;; For non-MULE
 (if (not (fboundp 'char-int))
@@ -65,7 +90,7 @@ base64-encoder-program.")
     ( ?w . 48) ( ?x . 49) ( ?y . 50) ( ?z . 51) ( ?0 . 52) ( ?1 . 53)
     ( ?2 . 54) ( ?3 . 55) ( ?4 . 56) ( ?5 . 57) ( ?6 . 58) ( ?7 . 59)
     ( ?8 . 60) ( ?9 . 61) ( ?+ . 62) ( ?/ . 63)
-   ))
+    ))
 
 (defvar base64-alphabet-decoding-vector
   (let ((v (make-vector 123 nil))
@@ -110,9 +135,9 @@ base64-encoder-program.")
        (insert-char char count)
       (with-current-buffer buffer
        (insert-char char count))))
-  (setq base64-binary-coding-system 'raw-text))
+  (setq base64-binary-coding-system 'no-conversion))
 
-(defun-maybe base64-decode-region (start end)
+(defun base64-decode-region (start end)
   (interactive "r")
   ;;(message "Decoding base64...")
   (let ((work-buffer nil)
@@ -128,9 +153,9 @@ base64-encoder-program.")
          (if base64-decoder-program
              (let* ((binary-process-output t) ; any text already has CRLFs
                     (status (apply 'base64-run-command-on-region
-                                  start end work-buffer
-                                  base64-decoder-program
-                                  base64-decoder-switches)))
+                                   start end work-buffer
+                                   base64-decoder-program
+                                   base64-decoder-switches)))
                (if (not (eq status t))
                    (error "%s" (cdr status))))
            (goto-char start)
@@ -149,7 +174,7 @@ base64-encoder-program.")
                  (cond ((= counter 4)
                         (base64-insert-char (lsh bits -16) 1 nil work-buffer)
                         (base64-insert-char (logand (lsh bits -8) 255) 1 nil
-                                        work-buffer)
+                                            work-buffer)
                         (base64-insert-char (logand bits 255) 1 nil
                                             work-buffer)
                         (setq bits 0 counter 0))
@@ -180,7 +205,7 @@ base64-encoder-program.")
   ;;(message "Decoding base64... done")
   )
 
-(defun-maybe base64-encode-region (start end &optional no-line-break)
+(defun base64-encode-region (start end &optional no-line-break)
   (interactive "r")
   (message "Encoding base64...")
   (let ((work-buffer nil)
@@ -247,12 +272,12 @@ base64-encoder-program.")
       (and work-buffer (kill-buffer work-buffer))))
   (message "Encoding base64... done"))
 
-(defun base64-encode (string)
+(defun base64-encode (string &optional no-line-break)
   (save-excursion
     (set-buffer (get-buffer-create " *base64-encode*"))
     (erase-buffer)
     (insert string)
-    (base64-encode-region (point-min) (point-max))
+    (base64-encode-region (point-min) (point-max) no-line-break)
     (skip-chars-backward " \t\r\n")
     (delete-region (point-max) (point))
     (prog1
@@ -275,4 +300,6 @@ base64-encoder-program.")
 (fset 'base64-decode-string 'base64-decode)
 (fset 'base64-encode-string 'base64-encode)
 
+);; (static-when nil ...
+
 (provide 'base64)