diff options
Diffstat (limited to 'lisp/net')
| -rw-r--r-- | lisp/net/eudc.el | 155 |
1 files changed, 85 insertions, 70 deletions
diff --git a/lisp/net/eudc.el b/lisp/net/eudc.el index 7e51e1d7e89..b69f947cbd5 100644 --- a/lisp/net/eudc.el +++ b/lisp/net/eudc.el | |||
| @@ -67,7 +67,17 @@ | |||
| 67 | ;;{{{ Internal variables and compatibility tricks | 67 | ;;{{{ Internal variables and compatibility tricks |
| 68 | 68 | ||
| 69 | (defvar eudc-form-widget-list nil) | 69 | (defvar eudc-form-widget-list nil) |
| 70 | (defvar eudc-mode-map nil) | 70 | |
| 71 | (defvar eudc-mode-map | ||
| 72 | (let ((map (make-sparse-keymap))) | ||
| 73 | (define-key map "q" 'kill-this-buffer) | ||
| 74 | (define-key map "x" 'kill-this-buffer) | ||
| 75 | (define-key map "f" 'eudc-query-form) | ||
| 76 | (define-key map "b" 'eudc-try-bbdb-insert) | ||
| 77 | (define-key map "n" 'eudc-move-to-next-record) | ||
| 78 | (define-key map "p" 'eudc-move-to-previous-record) | ||
| 79 | map)) | ||
| 80 | (set-keymap-parent eudc-mode-map widget-keymap) | ||
| 71 | 81 | ||
| 72 | (defvar mode-popup-menu) | 82 | (defvar mode-popup-menu) |
| 73 | 83 | ||
| @@ -1105,45 +1115,44 @@ queries the server for the existing fields and displays a corresponding form." | |||
| 1105 | 1115 | ||
| 1106 | (require 'easymenu) | 1116 | (require 'easymenu) |
| 1107 | 1117 | ||
| 1108 | (setq eudc-mode-map | ||
| 1109 | (let ((map (make-sparse-keymap))) | ||
| 1110 | (define-key map "q" 'kill-this-buffer) | ||
| 1111 | (define-key map "x" 'kill-this-buffer) | ||
| 1112 | (define-key map "f" 'eudc-query-form) | ||
| 1113 | (define-key map "b" 'eudc-try-bbdb-insert) | ||
| 1114 | (define-key map "n" 'eudc-move-to-next-record) | ||
| 1115 | (define-key map "p" 'eudc-move-to-previous-record) | ||
| 1116 | map)) | ||
| 1117 | (set-keymap-parent eudc-mode-map widget-keymap) | ||
| 1118 | |||
| 1119 | (defconst eudc-custom-generated-menu (cdr (custom-menu-create 'eudc))) | 1118 | (defconst eudc-custom-generated-menu (cdr (custom-menu-create 'eudc))) |
| 1120 | 1119 | ||
| 1121 | (defconst eudc-tail-menu | 1120 | (defconst eudc-tail-menu |
| 1122 | `(["---" nil nil] | 1121 | `(["---" nil nil] |
| 1123 | ["Query with Form" eudc-query-form t] | 1122 | ["Query with Form" eudc-query-form |
| 1124 | ["Expand Inline Query" eudc-expand-inline t] | 1123 | :help "Display a form to query the directory server"] |
| 1124 | ["Expand Inline Query" eudc-expand-inline | ||
| 1125 | :help "Query the directory server, and expand the query string before point"] | ||
| 1125 | ["Insert Record into BBDB" eudc-insert-record-at-point-into-bbdb | 1126 | ["Insert Record into BBDB" eudc-insert-record-at-point-into-bbdb |
| 1126 | (and (or (featurep 'bbdb) | 1127 | (and (or (featurep 'bbdb) |
| 1127 | (prog1 (locate-library "bbdb") (message ""))) | 1128 | (prog1 (locate-library "bbdb") (message ""))) |
| 1128 | (overlays-at (point)) | 1129 | (overlays-at (point)) |
| 1129 | (overlay-get (car (overlays-at (point))) 'eudc-record))] | 1130 | (overlay-get (car (overlays-at (point))) 'eudc-record)) |
| 1131 | :help "Insert record at point into the BBDB database"] | ||
| 1130 | ["Insert All Records into BBDB" eudc-batch-export-records-to-bbdb | 1132 | ["Insert All Records into BBDB" eudc-batch-export-records-to-bbdb |
| 1131 | (and (eq major-mode 'eudc-mode) | 1133 | (and (eq major-mode 'eudc-mode) |
| 1132 | (or (featurep 'bbdb) | 1134 | (or (featurep 'bbdb) |
| 1133 | (prog1 (locate-library "bbdb") (message ""))))] | 1135 | (prog1 (locate-library "bbdb") (message "")))) |
| 1136 | :help "Insert all the records returned by a directory query into BBDB"] | ||
| 1134 | ["---" nil nil] | 1137 | ["---" nil nil] |
| 1135 | ["Get Email" eudc-get-email t] | 1138 | ["Get Email" eudc-get-email |
| 1136 | ["Get Phone" eudc-get-phone t] | 1139 | :help "Get the email field of NAME from the directory server"] |
| 1137 | ["List Valid Attribute Names" eudc-get-attribute-list t] | 1140 | ["Get Phone" eudc-get-phone |
| 1141 | :help "Get the phone field of name from the directory server"] | ||
| 1142 | ["List Valid Attribute Names" eudc-get-attribute-list | ||
| 1143 | :help "Return a list of valid attributes for the current server"] | ||
| 1138 | ["---" nil nil] | 1144 | ["---" nil nil] |
| 1139 | ,(cons "Customize" eudc-custom-generated-menu))) | 1145 | ,(cons "Customize" eudc-custom-generated-menu))) |
| 1140 | 1146 | ||
| 1141 | 1147 | ||
| 1142 | (defconst eudc-server-menu | 1148 | (defconst eudc-server-menu |
| 1143 | '(["---" nil nil] | 1149 | '(["---" nil nil] |
| 1144 | ["Bookmark Current Server" eudc-bookmark-current-server t] | 1150 | ["Bookmark Current Server" eudc-bookmark-current-server |
| 1145 | ["Edit Server List" eudc-edit-hotlist t] | 1151 | :help "Add current server to the EUDC `servers' hotlist"] |
| 1146 | ["New Server" eudc-set-server t])) | 1152 | ["Edit Server List" eudc-edit-hotlist |
| 1153 | :help "Edit the hotlist of directory servers in a specialized buffer"] | ||
| 1154 | ["New Server" eudc-set-server | ||
| 1155 | :help "Set the directory server to SERVER using PROTOCOL"])) | ||
| 1147 | 1156 | ||
| 1148 | (defun eudc-menu () | 1157 | (defun eudc-menu () |
| 1149 | (let (command) | 1158 | (let (command) |
| @@ -1229,54 +1238,60 @@ This does nothing except loading eudc by autoload side-effect." | |||
| 1229 | nil) | 1238 | nil) |
| 1230 | 1239 | ||
| 1231 | ;;;###autoload | 1240 | ;;;###autoload |
| 1232 | (cond ((not (featurep 'xemacs)) | 1241 | (cond |
| 1233 | (defvar eudc-tools-menu (make-sparse-keymap "Directory Search")) | 1242 | ((not (featurep 'xemacs)) |
| 1234 | (fset 'eudc-tools-menu (symbol-value 'eudc-tools-menu)) | 1243 | (defvar eudc-tools-menu |
| 1235 | (define-key eudc-tools-menu [phone] | 1244 | (let ((map (make-sparse-keymap "Directory Search"))) |
| 1236 | '("Get Phone" . eudc-get-phone)) | 1245 | (define-key map [phone] |
| 1237 | (define-key eudc-tools-menu [email] | 1246 | '(menu-item "Get Phone" eudc-get-phone |
| 1238 | '("Get Email" . eudc-get-email)) | 1247 | :help "Get the phone field of name from the directory server")) |
| 1239 | (define-key eudc-tools-menu [separator-eudc-email] | 1248 | (define-key map [email] |
| 1240 | '("--")) | 1249 | '(menu-item "Get Email" eudc-get-email |
| 1241 | (define-key eudc-tools-menu [expand-inline] | 1250 | :help "Get the email field of NAME from the directory server")) |
| 1242 | '("Expand Inline Query" . eudc-expand-inline)) | 1251 | (define-key map [separator-eudc-email] '("--")) |
| 1243 | (define-key eudc-tools-menu [query] | 1252 | (define-key map [expand-inline] |
| 1244 | '("Query with Form" . eudc-query-form)) | 1253 | '(menu-item "Expand Inline Query" eudc-expand-inline |
| 1245 | (define-key eudc-tools-menu [separator-eudc-query] | 1254 | :help "Query the directory server, and expand the query string before point")) |
| 1246 | '("--")) | 1255 | (define-key map [query] |
| 1247 | (define-key eudc-tools-menu [new] | 1256 | '(menu-item "Query with Form" eudc-query-form |
| 1248 | '("New Server" . eudc-set-server)) | 1257 | :help "Display a form to query the directory server")) |
| 1249 | (define-key eudc-tools-menu [load] | 1258 | (define-key map [separator-eudc-query] '("--")) |
| 1250 | '("Load Hotlist of Servers" . eudc-load-eudc))) | 1259 | (define-key map [new] |
| 1251 | 1260 | '(menu-item "New Server" eudc-set-server | |
| 1252 | (t | 1261 | :help "Set the directory server to SERVER using PROTOCOL")) |
| 1253 | (let ((menu '("Directory Search" | 1262 | (define-key map [load] |
| 1254 | ["Load Hotlist of Servers" eudc-load-eudc t] | 1263 | '(menu-item "Load Hotlist of Servers" eudc-load-eudc |
| 1255 | ["New Server" eudc-set-server t] | 1264 | :help "Load the Emacs Unified Directory Client")) |
| 1256 | ["---" nil nil] | 1265 | map)) |
| 1257 | ["Query with Form" eudc-query-form t] | 1266 | (fset 'eudc-tools-menu (symbol-value 'eudc-tools-menu))) |
| 1258 | ["Expand Inline Query" eudc-expand-inline t] | 1267 | (t |
| 1259 | ["---" nil nil] | 1268 | (let ((menu '("Directory Search" |
| 1260 | ["Get Email" eudc-get-email t] | 1269 | ["Load Hotlist of Servers" eudc-load-eudc t] |
| 1261 | ["Get Phone" eudc-get-phone t]))) | 1270 | ["New Server" eudc-set-server t] |
| 1262 | (if (not (featurep 'eudc-autoloads)) | 1271 | ["---" nil nil] |
| 1263 | (if (featurep 'xemacs) | 1272 | ["Query with Form" eudc-query-form t] |
| 1264 | (if (and (featurep 'menubar) | 1273 | ["Expand Inline Query" eudc-expand-inline t] |
| 1265 | (not (featurep 'infodock))) | 1274 | ["---" nil nil] |
| 1266 | (add-submenu '("Tools") menu)) | 1275 | ["Get Email" eudc-get-email t] |
| 1267 | (require 'easymenu) | 1276 | ["Get Phone" eudc-get-phone t]))) |
| 1268 | (cond | 1277 | (if (not (featurep 'eudc-autoloads)) |
| 1269 | ((fboundp 'easy-menu-add-item) | 1278 | (if (featurep 'xemacs) |
| 1270 | (easy-menu-add-item nil '("tools") | 1279 | (if (and (featurep 'menubar) |
| 1271 | (easy-menu-create-menu (car menu) | 1280 | (not (featurep 'infodock))) |
| 1272 | (cdr menu)))) | 1281 | (add-submenu '("Tools") menu)) |
| 1273 | ((fboundp 'easy-menu-create-keymaps) | 1282 | (require 'easymenu) |
| 1274 | (define-key | 1283 | (cond |
| 1275 | global-map | 1284 | ((fboundp 'easy-menu-add-item) |
| 1276 | [menu-bar tools eudc] | 1285 | (easy-menu-add-item nil '("tools") |
| 1277 | (cons "Directory Search" | 1286 | (easy-menu-create-menu (car menu) |
| 1278 | (easy-menu-create-keymaps "Directory Search" | 1287 | (cdr menu)))) |
| 1279 | (cdr menu))))))))))) | 1288 | ((fboundp 'easy-menu-create-keymaps) |
| 1289 | (define-key | ||
| 1290 | global-map | ||
| 1291 | [menu-bar tools eudc] | ||
| 1292 | (cons "Directory Search" | ||
| 1293 | (easy-menu-create-keymaps "Directory Search" | ||
| 1294 | (cdr menu))))))))))) | ||
| 1280 | 1295 | ||
| 1281 | ;;}}} | 1296 | ;;}}} |
| 1282 | 1297 | ||