X-Git-Url: http://git.chise.org/gitweb/?p=elisp%2Fsemi.git;a=blobdiff_plain;f=semi-def.el;h=00cda9f3050881ed3558e3068fbd109715f4047c;hp=96f8d3257c575b44f903a22cba0cd3f2a0741e72;hb=HEAD;hpb=19932532450070c7dc966d0cae1fa531e0781315 diff --git a/semi-def.el b/semi-def.el index 96f8d32..00cda9f 100644 --- a/semi-def.el +++ b/semi-def.el @@ -1,8 +1,8 @@ -;;; semi-def.el --- definition module for SEMI +;;; semi-def.el --- definition module for SEMI -*- coding: iso-8859-4; -*- -;; Copyright (C) 1995,1996,1997,1998 Free Software Foundation, Inc. +;; Copyright (C) 1995,96,97,98,99,2000,01,03,05 Free Software Foundation, Inc. -;; Author: MORIOKA Tomohiko +;; Author: MORIOKA Tomohiko ;; Keywords: definition, MIME, multimedia, mail, news ;; This file is part of SEMI (Sample of Emacs MIME Implementation). @@ -19,19 +19,17 @@ ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to the -;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, -;; Boston, MA 02111-1307, USA. +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. ;;; Code: -(require 'emu) - (eval-when-compile (require 'cl)) (require 'custom) -(defconst mime-user-interface-version '("SEMI" "Fukuoka" 1 8 6) - "Implementation name, version name and numbers of MIME-kernel package.") +(defconst mime-user-interface-product ["SEMI" (1 14 7) "Harue"] + "Product name, version number and code name of MIME-kernel package.") (autoload 'mule-caesar-region "mule-caesar" "Caesar rotation of current region." t) @@ -61,15 +59,14 @@ (defsubst mime-add-button (from to function &optional data) "Create a button between FROM and TO with callback FUNCTION and DATA." - (let ((overlay (make-overlay from to))) - (and mime-button-face - (overlay-put overlay 'face mime-button-face)) - (and mime-button-mouse-face - (overlay-put overlay 'mouse-face mime-button-mouse-face)) - (add-text-properties from to (list 'mime-button-callback function)) - (and data - (add-text-properties from to (list 'mime-button-data data))) - )) + (and mime-button-face + (put-text-property from to 'face mime-button-face)) + (and mime-button-mouse-face + (put-text-property from to 'mouse-face mime-button-mouse-face)) + (put-text-property from to 'mime-button-callback function) + (and data + (put-text-property from to 'mime-button-data data)) + ) (defsubst mime-insert-button (string function &optional data) "Insert STRING as button with callback FUNCTION and DATA." @@ -106,7 +103,7 @@ ;;; (defcustom mime-browse-url-regexp - (concat "\\(http\\|ftp\\|file\\|gopher\\|news\\|telnet\\|wais\\|mailto\\):" + (concat "\\(https?\\|ftps?\\|file\\|gopher\\|news\\|nntps?\\|telnets?\\|wais\\|mailto\\):" "\\(//[-a-zA-Z0-9_.]+:[0-9]*\\)?" "[-a-zA-Z0-9_=?#$@~`%&*+|\\/.,]*[-a-zA-Z0-9_=#$@~`%&*+|\\/]") "*Regexp to match URL in text body." @@ -131,78 +128,42 @@ ;;; @ menu ;;; -(if window-system - (if (featurep 'xemacs) - (defun select-menu-alist (title menu-alist) - (let (ret) - (popup-menu - (list* title - "---" - (mapcar (function - (lambda (cell) - (vector (car cell) - `(progn - (setq ret ',(cdr cell)) - (throw 'exit nil) - ) - t) - )) - menu-alist) - )) - (recursive-edit) - ret)) - (defun select-menu-alist (title menu-alist) - (x-popup-menu - (list '(1 1) (selected-window)) - (list title (cons title menu-alist)) - )) - ) - (defun select-menu-alist (title menu-alist) - (cdr - (assoc (completing-read (concat title " : ") menu-alist) - menu-alist) - )) - ) - - -;;; @ PGP -;;; - -(defvar pgp-function-alist - '( - ;; for mime-pgp - (verify mc-verify "mc-toplev") - (decrypt mc-decrypt "mc-toplev") - (fetch-key mc-pgp-fetch-key "mc-pgp") - (snarf-keys mc-snarf-keys "mc-toplev") - ;; for mime-edit - (mime-sign mime-mc-pgp-sign-region "mime-mc") - (traditional-sign mc-pgp-sign-region "mc-pgp") - (encrypt mime-mc-pgp-encrypt-region "mime-mc") - (insert-key mc-insert-public-key "mc-toplev") - ) - "Alist of service names vs. corresponding functions and its filenames. -Each element looks like (SERVICE FUNCTION FILE). - -SERVICE is a symbol of PGP processing. It allows `verify', `decrypt', -`fetch-key', `snarf-keys', `mime-sign', `traditional-sign', `encrypt' -or `insert-key'. - -Function is a symbol of function to do specified SERVICE. - -FILE is string of filename which has definition of corresponding -FUNCTION.") - -(defmacro pgp-function (method) - "Return function to do service METHOD." - `(cadr (assq ,method (symbol-value 'pgp-function-alist)))) - -(mapcar (function - (lambda (method) - (autoload (cadr method)(nth 2 method)) - )) - pgp-function-alist) - +(static-cond ((featurep 'xemacs) + (defun mime-should-use-popup-menu () + (and window-system + (mouse-event-p last-command-event))) + (defun mime-select-menu-alist (title menu-alist) + (if (mime-should-use-popup-menu) + (let (ret) + (popup-menu + (list* title + "---" + (mapcar (function + (lambda (cell) + (vector (car cell) + `(progn + (setq ret ',(cdr cell)) + (throw 'exit nil)) + t))) + menu-alist))) + (recursive-edit) + ret) + (cdr + (assoc (completing-read (concat title " : ") menu-alist) + menu-alist))))) + (t + (defun mime-should-use-popup-menu () + (and window-system + (memq (event-basic-type last-command-event) + '(mouse-1 mouse-2 mouse-3)))) + (defun mime-select-menu-alist (title menu-alist) + (if (mime-should-use-popup-menu) + (x-popup-menu + (list '(1 1) (selected-window)) + (list title (cons title menu-alist))) + (cdr + (assoc (completing-read (concat title " : ") menu-alist) + menu-alist)))))) ;;; @ Other Utility ;;;