Mercurial > hg > xemacs-beta
diff lisp/w3/w3-forms.el @ 44:8d2a9b52c682 r19-15prefinal
Import from CVS: tag r19-15prefinal
author | cvs |
---|---|
date | Mon, 13 Aug 2007 08:55:10 +0200 |
parents | 1a767b41a199 |
children | 131b0175ea99 |
line wrap: on
line diff
--- a/lisp/w3/w3-forms.el Mon Aug 13 08:54:52 2007 +0200 +++ b/lisp/w3/w3-forms.el Mon Aug 13 08:55:10 2007 +0200 @@ -1,7 +1,7 @@ ;;; w3-forms.el --- Emacs-w3 forms parsing code for new display engine ;; Author: wmperry -;; Created: 1997/03/18 23:20:04 -;; Version: 1.79 +;; Created: 1997/03/25 23:33:51 +;; Version: 1.81 ;; Keywords: faces, help, comm, data, languages ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -49,7 +49,7 @@ (defvar w3-form-keymap (let ((map (copy-keymap global-map)) - (eol-loc (where-is-internal 'end-of-line nil t))) + (eol-loc (where-is-internal 'end-of-line global-map t))) (if widget-keymap (cl-map-keymap (function (lambda (key binding) @@ -100,6 +100,17 @@ (defsubst w3-form-element-set-widget (obj val) (aset obj 8 val)) (defsubst w3-form-element-set-plist (obj val) (aset obj 9 val)) +(defvar w3-form-valid-key-sizes + '( + ("1024 (Premium)" . 1024) + ("896 (Regular)" . 896) + ("768 (Unleaded)" . 768) + ("512 (Low Grade)" . 512) + ("508 (Woos)" . 508) + ("256 (Test Grade)" . 256) + ) + "An assoc list of available key sizes and meaningful descriptions.") + (defun w3-form-determine-size (el size) (case (w3-form-element-type el) (checkbox 3) @@ -125,6 +136,12 @@ (lambda (x y) (>= (length (car x)) (length (car y))))))))))) + (keygen + (+ (length "Key Length: ") + (apply 'max + (mapcar (function (lambda (pair) + (length (car pair)))) + w3-form-valid-key-sizes)))) (otherwise (or size 22)))) ;;###autoload @@ -348,32 +365,21 @@ :must-match t :value (w3-form-element-value el))) -(defvar w3-form-valid-key-sizes - '( - ("1024 (Premium)" . 1024) - ("896 (Regular)" . 896) - ("768 (Unleaded)" . 768) - ("512 (Low Grade)" . 512) - ("508 (Woos)" . 508) - ("256 (Test Grade)" . 256) - ) - "An assoc list of available key sizes and meaningful descriptions.") - (defun w3-form-create-keygen-list (el face) - (let ((tmp w3-form-valid-key-sizes) - (longest 0) - (options nil)) - (while tmp - (if (> (length (caar tmp)) longest) - (setq longest (length (caar tmp)))) - (setq options (cons (list 'choice-item :tag (caar tmp) - :value (cdar tmp)) options) - tmp (cdr tmp))) + (let* ((size (apply 'max (mapcar (function (lambda (pair) (length (car pair)))) + w3-form-valid-key-sizes))) + (options (mapcar (function (lambda (pair) + (list 'choice-item + :format "%[%t%]" + :menu-tag-get `(lambda (zed) ,(car pair)) + :tag (mule-truncate-string (car pair) size ? ) + :value (cdr pair)))) + w3-form-valid-key-sizes))) (apply 'widget-create 'menu-choice :value 1024 :ignore-case t :tag "Key Length" - :size (1+ longest) + :size size :button-face face :value-face face options))) @@ -795,9 +801,15 @@ (assoc (widget-value widget) (w3-form-element-options formobj))))) (keygen - (cons (w3-form-element-name formobj) - (format "Should create a %d bit RSA key" - (widget-value widget)))) + (condition-case () + (require 'ssl) + (error (error "Not configured for SSL, please read the info pages."))) + (if (fboundp 'ssl-req-user-cert) nil + (error "This version of SSL isn't capable of requesting certificates.")) + (let ((challenge (plist-get (w3-form-element-plist formobj) 'challenge)) + (size (widget-value widget))) + (cons (w3-form-element-name formobj) + (ssl-req-user-cert size challenge)))) ((multiline hidden) (cons (w3-form-element-name formobj) (w3-form-element-value formobj)))