Mercurial > hg > xemacs-beta
comparison lisp/packages/gnuserv.el @ 173:8eaf7971accc r20-3b13
Import from CVS: tag r20-3b13
author | cvs |
---|---|
date | Mon, 13 Aug 2007 09:49:09 +0200 |
parents | 929b76928fce |
children | e121b013d1f0 |
comparison
equal
deleted
inserted
replaced
172:a38aed19690b | 173:8eaf7971accc |
---|---|
1 ;;; gnuserv.el --- Lisp interface code between Emacs and gnuserv | 1 ;;; gnuserv.el --- Lisp interface code between Emacs and gnuserv |
2 ;; Copyright (C) 1989-1997 Free Software Foundation, Inc. | 2 ;; Copyright (C) 1989-1997 Free Software Foundation, Inc. |
3 | 3 |
4 ;; Version: 3.7 | 4 ;; Version: 3.9 |
5 ;; Author: Andy Norman (ange@hplb.hpl.hp.com), originally based on server.el | 5 ;; Author: Andy Norman (ange@hplb.hpl.hp.com), originally based on server.el |
6 ;; Hrvoje Niksic <hniksic@srce.hr> | 6 ;; Hrvoje Niksic <hniksic@srce.hr> |
7 ;; Maintainer: Jan Vroonhof <vroonhof@math.ethz.ch>, | 7 ;; Maintainer: Jan Vroonhof <vroonhof@math.ethz.ch>, |
8 ;; Hrvoje Niksic <hniksic@srce.hr> | 8 ;; Hrvoje Niksic <hniksic@srce.hr> |
9 ;; Keywords: environment, processes, terminals | 9 ;; Keywords: environment, processes, terminals |
73 ;; Customized. | 73 ;; Customized. |
74 ;; | 74 ;; |
75 ;; Hrvoje Niksic <hniksic@srce.hr> May/1997 | 75 ;; Hrvoje Niksic <hniksic@srce.hr> May/1997 |
76 ;; Completely rewritten. Now uses `defstruct' and other CL stuff | 76 ;; Completely rewritten. Now uses `defstruct' and other CL stuff |
77 ;; to define clients cleanly. Many thanks to Dave Gillespie! | 77 ;; to define clients cleanly. Many thanks to Dave Gillespie! |
78 ;; | |
79 ;; Mike Scheidler <c23mts@eng.delcoelect.com> July, 1997 | |
80 ;; Added 'Done' button to the menubar. | |
78 | 81 |
79 | 82 |
80 ;;; Code: | 83 ;;; Code: |
81 | 84 |
82 (defgroup gnuserv nil | 85 (defgroup gnuserv nil |
130 (function :tag "Other")) | 133 (function :tag "Other")) |
131 :group 'gnuserv) | 134 :group 'gnuserv) |
132 | 135 |
133 (defcustom gnuserv-done-function 'kill-buffer | 136 (defcustom gnuserv-done-function 'kill-buffer |
134 "*Function used to remove a buffer after editing. | 137 "*Function used to remove a buffer after editing. |
135 It is called with one BUFFER argument. Functions such as 'kill-buffer' and | 138 It is called with one BUFFER argument. Functions such as `kill-buffer' and |
136 'bury-buffer' are good values. See also `gnuserv-done-temp-file-function'." | 139 `bury-buffer' are good values. See also `gnuserv-done-temp-file-function'." |
137 :type '(radio (function-item kill-buffer) | 140 :type '(radio (function-item kill-buffer) |
138 (function-item bury-buffer) | 141 (function-item bury-buffer) |
139 (function :tag "Other")) | 142 (function :tag "Other")) |
140 :group 'gnuserv) | 143 :group 'gnuserv) |
141 | 144 |
142 (defcustom gnuserv-done-temp-file-function 'kill-buffer | 145 (defcustom gnuserv-done-temp-file-function 'kill-buffer |
143 "*Function used to remove a temporary buffer after editing. | 146 "*Function used to remove a temporary buffer after editing. |
144 It is called with one BUFFER argument. Functions such as 'kill-buffer' and | 147 It is called with one BUFFER argument. Functions such as `kill-buffer' and |
145 'bury-buffer' are good values. See also `gnuserv-done-temp-file-function'." | 148 `bury-buffer' are good values. See also `gnuserv-done-temp-file-function'." |
146 :type '(radio (function-item kill-buffer) | 149 :type '(radio (function-item kill-buffer) |
147 (function-item bury-buffer) | 150 (function-item bury-buffer) |
148 (function :tag "Other")) | 151 (function :tag "Other")) |
149 :group 'gnuserv) | 152 :group 'gnuserv) |
150 | 153 |
436 (funcall (if view | 439 (funcall (if view |
437 gnuserv-view-file-function | 440 gnuserv-view-file-function |
438 gnuserv-find-file-function) | 441 gnuserv-find-file-function) |
439 path) | 442 path) |
440 (goto-line line) | 443 (goto-line line) |
441 (run-hooks 'gnuserv-visit-hook) | |
442 ;; Don't memorize the quick and view buffers. | 444 ;; Don't memorize the quick and view buffers. |
443 (unless (or quick view) | 445 (unless (or quick view) |
444 (pushnew (current-buffer) (gnuclient-buffers client)) | 446 (pushnew (current-buffer) (gnuclient-buffers client)) |
445 (setq gnuserv-minor-mode t)) | 447 (setq gnuserv-minor-mode t) |
448 ;; Add the "Done" button to the menubar, only in this buffer. | |
449 (set-buffer-menubar current-menubar) | |
450 (add-menu-button nil ["Done" gnuserv-edit t])) | |
451 (run-hooks 'gnuserv-visit-hook) | |
446 (pop list))) | 452 (pop list))) |
447 (cond | 453 (cond |
448 ((and (or quick view) | 454 ((and (or quick view) |
449 (device-on-window-system-p device)) | 455 (device-on-window-system-p device)) |
450 ;; Exit if on X device, and quick or view. NOTE: if the | 456 ;; Exit if on X device, and quick or view. NOTE: if the |
590 (defun gnuserv-buffer-done-1 (buffer) | 596 (defun gnuserv-buffer-done-1 (buffer) |
591 (dolist (client (gnuserv-buffer-clients buffer)) | 597 (dolist (client (gnuserv-buffer-clients buffer)) |
592 (callf2 delq buffer (gnuclient-buffers client)) | 598 (callf2 delq buffer (gnuclient-buffers client)) |
593 (when (null (gnuclient-buffers client)) | 599 (when (null (gnuclient-buffers client)) |
594 (gnuserv-kill-client client))) | 600 (gnuserv-kill-client client))) |
595 ;; Get rid of the buffer | 601 ;; Get rid of the buffer. |
596 (save-excursion | 602 (save-excursion |
597 (set-buffer buffer) | 603 (set-buffer buffer) |
598 (run-hooks 'gnuserv-done-hook) | 604 (run-hooks 'gnuserv-done-hook) |
599 (setq gnuserv-minor-mode nil) | 605 (setq gnuserv-minor-mode nil) |
606 ;; Delete the menu button. | |
607 (delete-menu-item '("Done")) | |
600 (funcall (if (gnuserv-temp-file-p buffer) | 608 (funcall (if (gnuserv-temp-file-p buffer) |
601 gnuserv-done-temp-file-function | 609 gnuserv-done-temp-file-function |
602 gnuserv-done-function) | 610 gnuserv-done-function) |
603 buffer))) | 611 buffer))) |
604 | 612 |