diff --git a/eudc.el b/eudc.el index fa5d4d9c512334fcbddcf2bae4f9f877f0ba2c34_ZXVkYy5lbA==..bd458e130b2432f3fc4912667e86429452a22c5f_ZXVkYy5lbA== 100644 --- a/eudc.el +++ b/eudc.el @@ -5,7 +5,7 @@ ;; Author: Oscar Figueiredo <Oscar.Figueiredo@epfl.ch> ;; Maintainer: Oscar Figueiredo <Oscar.Figueiredo@epfl.ch> ;; Created: Feb 1998 -;; Version: 1.18 +;; Version: $Revision$ ;; Keywords: help ;; This file is part of XEmacs @@ -455,7 +455,7 @@ (mapcar (function (lambda (field) (setq field-beg (point)) - (insert (format (concat "%" width "s: ") (car field))) + (insert (format (concat "%" (int-to-string width) "s: ") (car field))) (put-text-property field-beg (point) 'face 'bold) (mapcar (function (lambda (val) @@ -777,10 +777,12 @@ (customize-group 'eudc)) ;;;###autoload -(defun eudc-set-server (server protocol) - "Set the directory server to SERVER using PROTOCOL." +(defun eudc-set-server (server protocol &optional no-save) + "Set the directory server to SERVER using PROTOCOL. +If NO-SAVE is nil, the server is saved as the default server +for future sessions." (interactive "sDirectory Server: \nSProtocol: ") (unless (eq protocol eudc-protocol) (eudc-switch-to-protocol protocol)) (setq eudc-server server) (if (interactive-p) @@ -782,9 +784,11 @@ (interactive "sDirectory Server: \nSProtocol: ") (unless (eq protocol eudc-protocol) (eudc-switch-to-protocol protocol)) (setq eudc-server server) (if (interactive-p) - (message "Current directory server is now %s (%s)" eudc-server eudc-protocol))) + (message "Current directory server is now %s (%s)" eudc-server eudc-protocol)) + (if (null no-save) + (eudc-save-options))) ;;;###autoload (defun eudc-get-email (name) @@ -973,7 +977,7 @@ prompts) ;; Insert the first widget out of the mapcar to leave the cursor ;; in the first field - (widget-insert "\n\n" (format (concat "%" width "s: ") (car prompts))) + (widget-insert "\n\n" (format (concat "%" (int-to-string width) "s: ") (car prompts))) (setq pt (point)) (setq widget (widget-create 'editable-field :size 15)) (setq eudc-form-widget-list (cons (cons (car fields) widget) @@ -982,7 +986,7 @@ (setq prompts (cdr prompts)) (mapcar (function (lambda (field) - (widget-insert "\n\n" (format (concat "%" width "s: ") (car prompts))) + (widget-insert "\n\n" (format (concat "%" (int-to-string width) "s: ") (car prompts))) (setq widget (widget-create 'editable-field :size 15)) (setq eudc-form-widget-list (cons (cons field widget) @@ -1122,10 +1126,10 @@ (eudc-bookmark-server eudc-server eudc-protocol)) (defun eudc-save-options () - "Save options (essentially the hotlist) to `eudc-options-file'." + "Save options to `eudc-options-file'." (interactive) (save-excursion (set-buffer (find-file-noselect eudc-options-file t)) ;; delete the previous setq (let ((standard-output (current-buffer)) provide-p @@ -1126,10 +1130,11 @@ (interactive) (save-excursion (set-buffer (find-file-noselect eudc-options-file t)) ;; delete the previous setq (let ((standard-output (current-buffer)) provide-p - setq-p) + set-hotlist-p + set-server-p) (catch 'found (while t (let ((sexp (condition-case nil @@ -1137,6 +1142,13 @@ (end-of-file (throw 'found nil))))) (if (listp sexp) (progn + (if (eq (car sexp) 'eudc-set-server) + (progn + (delete-region (save-excursion + (backward-sexp) + (point)) + (point)) + (setq set-server-p t))) (if (and (eq (car sexp) 'setq) (eq (eudc-cadr sexp) 'eudc-server-hotlist)) (progn @@ -1144,8 +1156,8 @@ (backward-sexp) (point)) (point)) - (setq setq-p t))) + (setq set-hotlist-p t))) (if (and (eq (car sexp) 'provide) (equal (eudc-cadr sexp) '(quote eudc-options-file))) (setq provide-p t)) (if (and provide-p @@ -1148,10 +1160,11 @@ (if (and (eq (car sexp) 'provide) (equal (eudc-cadr sexp) '(quote eudc-options-file))) (setq provide-p t)) (if (and provide-p - setq-p) + set-hotlist-p + set-server-p) (throw 'found t))))))) (if (eq (point-min) (point-max)) (princ ";; This file was automatically generated by eudc.el\n\n")) (if (not (bolp)) (princ "\n")) @@ -1153,10 +1166,15 @@ (throw 'found t))))))) (if (eq (point-min) (point-max)) (princ ";; This file was automatically generated by eudc.el\n\n")) (if (not (bolp)) (princ "\n")) + (princ "(eudc-set-server ") + (prin1 eudc-server) + (princ " '") + (prin1 eudc-protocol) + (princ " t)\n") (princ "(setq eudc-server-hotlist '") (prin1 eudc-server-hotlist) (princ ")\n") (if (not provide-p) (princ "(provide 'eudc-options-file)\n")) @@ -1158,10 +1176,9 @@ (princ "(setq eudc-server-hotlist '") (prin1 eudc-server-hotlist) (princ ")\n") (if (not provide-p) (princ "(provide 'eudc-options-file)\n")) - (save-buffer))) - ) + (save-buffer)))) (defun eudc-insert-record-at-point-into-bbdb () "Insert record at point into the BBDB database.