]> code.delx.au - gnu-emacs/blob - lisp/mh-e/mh-buffers.el
Merge from emacs--rel--22
[gnu-emacs] / lisp / mh-e / mh-buffers.el
1 ;;; mh-buffers.el --- MH-E buffer constants and utilities
2
3 ;; Copyright (C) 1993, 1995, 1997,
4 ;; 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
5
6 ;; Author: Bill Wohler <wohler@newt.com>
7 ;; Maintainer: Bill Wohler <wohler@newt.com>
8 ;; Keywords: mail
9 ;; See: mh-e.el
10
11 ;; This file is part of GNU Emacs.
12
13 ;; GNU Emacs is free software; you can redistribute it and/or modify
14 ;; it under the terms of the GNU General Public License as published by
15 ;; the Free Software Foundation; either version 2, or (at your option)
16 ;; any later version.
17
18 ;; GNU Emacs is distributed in the hope that it will be useful,
19 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
20 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 ;; GNU General Public License for more details.
22
23 ;; You should have received a copy of the GNU General Public License
24 ;; along with GNU Emacs; see the file COPYING. If not, write to the
25 ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
26 ;; Boston, MA 02110-1301, USA.
27
28 ;;; Commentary:
29
30 ;;; Change Log:
31
32 ;;; Code:
33
34 ;; The names of ephemeral buffers have a " *mh-" prefix (so that they
35 ;; are hidden and can be programmatically removed in mh-quit), and the
36 ;; variable names have the form mh-temp-.*-buffer.
37 (defconst mh-temp-buffer " *mh-temp*") ;scratch
38 (defconst mh-temp-checksum-buffer " *mh-checksum*")
39 (defconst mh-temp-fetch-buffer " *mh-fetch*") ;wget/curl/fetch output
40 (defconst mh-temp-index-buffer " *mh-index*")
41
42 ;; The names of MH-E buffers that are not ephemeral and can be used by
43 ;; the user (and deleted by the user when no longer needed) have a
44 ;; "*MH-E " prefix (so they can be programmatically removed in
45 ;; mh-quit), and the variable names have the form mh-.*-buffer.
46 ;; Temporary buffers for search results
47 (defconst mh-aliases-buffer "*MH-E Aliases*") ;alias lookups
48 (defconst mh-folders-buffer "*MH-E Folders*") ;folder list
49 (defconst mh-help-buffer "*MH-E Help*") ;quick help
50 (defconst mh-info-buffer "*MH-E Info*") ;version information buffer
51 (defconst mh-log-buffer "*MH-E Log*") ;output of MH commands and so on
52 (defconst mh-mail-delivery-buffer "*MH-E Mail Delivery*") ;mail delivery log
53 (defconst mh-recipients-buffer "*MH-E Recipients*") ;killed when draft sent
54 (defconst mh-sequences-buffer "*MH-E Sequences*") ;sequences list
55
56 (defvar mh-log-buffer-lines 100
57 "Number of lines to keep in `mh-log-buffer'.")
58
59 \f
60
61 (defun mh-truncate-log-buffer ()
62 "If `mh-log-buffer' is too big then truncate it.
63 If the number of lines in `mh-log-buffer' exceeds
64 `mh-log-buffer-lines' then keep only the last
65 `mh-log-buffer-lines'. As a side effect the point is set to the
66 end of the log buffer.
67
68 The function returns the size of the final size of the log buffer."
69 (with-current-buffer (get-buffer-create mh-log-buffer)
70 (goto-char (point-max))
71 (save-excursion
72 (when (equal (forward-line (- mh-log-buffer-lines)) 0)
73 (delete-region (point-min) (point))))
74 (unless (or (bobp)
75 (save-excursion
76 (and (equal (forward-line -1) 0) (equal (char-after) ?\f))))
77 (insert "\n\f\n"))
78 (buffer-size)))
79
80 (provide 'mh-buffers)
81
82 ;; Local Variables:
83 ;; indent-tabs-mode: nil
84 ;; sentence-end-double-space: nil
85 ;; End:
86
87 ;; arch-tag: 812e9f29-78b8-4e73-ada9-aa61dc1ceecb
88 ;;; mh-buffers.el ends here