;;; md5.el --- MD5 Message Digest Algorithm.
-;; Copyright (C) 1999 Shuhei KOBAYASHI
+;; Copyright (C) 1999, 2001 Free Software Foundation, Inc.
;; Author: Shuhei KOBAYASHI <shuhei@aqua.ocn.ne.jp>
;; Keywords: MD5, RFC 1321
;;; Commentary:
-;; Examples from RFC 1321.
+;; Test cases from RFC 1321.
;;
;; (md5 "")
;; => d41d8cd98f00b204e9800998ecf8427e
;;; Code:
+(defvar md5-dl-module
+ (cond
+ ((and (fboundp 'md5)
+ (subrp (symbol-function 'md5)))
+ nil)
+ ((fboundp 'dynamic-link)
+ ;; Should we take care of `dynamic-link-path'?
+ (let ((path (expand-file-name "md5.so" exec-directory)))
+ (if (file-exists-p path)
+ path
+ nil)))
+ (t
+ nil)))
+
(cond
((and (fboundp 'md5)
(subrp (symbol-function 'md5)))
- ;; recent XEmacs has `md5' as a built-in function.
- ;; (and 'md5 is already provided.)
+ ;; do nothing.
)
- ((and (fboundp 'dynamic-link)
- (file-exists-p (expand-file-name "md5.so" exec-directory)))
- ;; Emacs with DL patch.
- (require 'md5 "md5-dl"))
+ ((and (stringp md5-dl-module)
+ (file-exists-p md5-dl-module))
+ (require 'md5-dl))
(t
- (require 'md5 "md5-el")))
+ (require 'md5-el)))
+
+(provide 'md5)
-;;; md5.el ends here.
+;;; md5.el ends here