Rewrite Tips section.
[riece] / lisp / riece-globals.el
1 ;;; riece-globals.el --- global variables and constants.
2 ;; Copyright (C) 1998-2003 Daiki Ueno
3
4 ;; Author: Daiki Ueno <ueno@unixuser.org>
5 ;; Created: 1998-09-28
6 ;; Keywords: IRC, riece
7
8 ;; This file is part of Riece.
9
10 ;; This program is free software; you can redistribute it and/or modify
11 ;; it under the terms of the GNU General Public License as published by
12 ;; the Free Software Foundation; either version 2, or (at your option)
13 ;; any later version.
14
15 ;; This program is distributed in the hope that it will be useful,
16 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
17 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 ;; GNU General Public License for more details.
19
20 ;; You should have received a copy of the GNU General Public License
21 ;; along with GNU Emacs; see the file COPYING.  If not, write to the
22 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 ;; Boston, MA 02111-1307, USA.
24
25 ;;; Code:
26
27 (require 'riece-compat)                 ;riece-make-interval-regexp
28
29 ;;; Constants:
30 (defconst riece-strict-channel-regexp
31   (concat "\\([+&#]\\|!"
32           (riece-make-interval-regexp "[A-Z0-9]" 5)
33           "\\|!!\\)[^\0\7\r\n ,:]*\\(:[^\0\7\r\n ,:]*\\)?"))
34
35 (defconst riece-strict-user-regexp
36   (concat "[][\\\\`_^{|}A-Za-z]"
37           (riece-make-interval-regexp "[][\\\\`_^{|}A-Za-z0-9-]" 0 8)))
38
39 (defconst riece-laxed-channel-regexp
40   "[+&#!][^\0\7\r\n ,:]*\\(:[^\0\7\r\n ,:]*\\)?")
41
42 (defconst riece-laxed-user-regexp
43   "[][\\\\`_^{|}A-Za-z][][\\\\`_^{|}A-Za-z0-9-]*")
44
45 (defvar riece-channel-regexp riece-laxed-channel-regexp)
46 (defvar riece-user-regexp riece-laxed-user-regexp)
47
48 ;;; Global variables:
49 (defvar riece-server-process-alist nil
50   "An alist mapping server names to processes.")
51
52 (defvar riece-current-channel nil
53   "The channel you currently have joined.")
54 (defvar riece-current-channels nil
55   "The channels you have currently joined.")
56 (defvar riece-join-channel-candidate nil
57   "The candidate for channel to be used with the next join command.")
58
59 (defvar riece-save-variables-are-dirty nil
60   "Non nil if the variables in `riece-saved-forms' are changed.")
61
62 (defvar riece-polling 0
63   "Interval for polling the server.")
64
65 (defvar riece-reconnect-with-password nil
66   "If non-nil, attempt to reconnect with password.")
67
68 (defvar riece-user-obarray-size 1327
69   "The size of obarray used by riece on username space.")
70
71 (defvar riece-channel-obarray-size 103
72   "The size of obarray used by riece on channelname space.")
73
74 ;;; Variables local to the server buffers:
75 (defvar riece-server-name nil
76   "The name of the server.
77 Local to the server buffers.")
78 (defvar riece-real-nickname nil
79   "Your nickname the server offers.
80 Local to the server buffers.")
81 (defvar riece-last-nickname nil
82   "The last nickname you requested.
83 Local to the server buffers.")
84 (defvar riece-nick-accepted nil
85   "The flag your nickname is accepted by the server.
86 Possible values are nil, `ok', and `sent'.
87 Local to the server buffers.")
88 (defvar riece-real-server-name nil
89   "The server name offered by the server.
90 Local to the server buffers.")
91 (defvar riece-real-userhost nil
92   "Your hostname the server offers.
93 Local to the server buffers.")
94 (defvar riece-user-at-host ""
95   "The user@host for the current input.
96 Local to the server buffers.")
97 (defvar riece-user-at-host-type nil
98   "The authentication type of `riece-user-at-host'.
99 Possible values are 'ok 'not-verified 'fake or 'invalid.
100 Local to the server buffers.")
101 (defvar riece-supported-user-modes nil
102   "User modes supported by server.
103 Local to the server buffers.")
104 (defvar riece-supported-channel-modes nil
105   "Channel modes supported by server.
106 Local to the server buffers.")
107 (defvar riece-channel-filter ""
108   "Filter of the result of NAMES or LIST.
109 This enables us to use \\[universal-argument] with NAMES and TOPIC.
110 Local to the server buffers.")
111 (defvar riece-read-point nil
112   "Point at the last input was seen.
113 Local to the server buffers.")
114 (defvar riece-send-queue nil
115   "Send queue for avoiding client flood.
116 Local to the server buffers.")
117 (defvar riece-send-size nil
118   "Size of the last send.
119 Local to the server buffers.")
120 (defvar riece-last-send-time nil
121   "Timestamp of the last send.
122 Local to the server buffers.")
123 (defvar riece-user-obarray nil
124   "USER namespace of the IRC world.
125 Local to the server buffers.")
126 (defvar riece-channel-obarray nil
127   "Channel namespace of the IRC world.
128 Local to the server buffers.")
129 (defvar riece-coding-system nil
130   "Coding system for process I/O.
131 Local to the server buffers.")
132
133 ;;; Variables local to the channel buffers:
134 (defvar riece-freeze nil
135   "If t, channel window is locked and will not be scrolled.
136 If 'own, channel window is locked until the user begins to speak.
137 Local to the channel buffers.")
138
139 (defvar riece-freeze-indicator nil
140   "String displayed on the modeline to allow the user to tell if the
141 channel buffer is locked.
142 Local to the channel buffers.")
143
144 (defvar riece-channel-buffer-window-point nil
145   "Last value of point in window which displayed the channel buffer.
146 Local to the channel buffers.")
147
148 ;;; Modeline indicators:
149 (defvar riece-channel-indicator "None"
150   "String displayed on the modeline to indicate the current channel.")
151 (defvar riece-long-channel-indicator "None"
152   "String displayed on the modeline to indicate the current channel.
153 Generally, this string will contain more information than
154 riece-channel-indicator.")
155 (defvar riece-channel-list-indicator "No channel"
156   "String displayed on the modeline to show the joined channels.")
157 (defvar riece-user-indicator nil
158   "String displayed on the modeline to show the current nickname.")
159
160 (defvar riece-away-indicator "-"
161   "String displayed on the modeline to allow the user to tell if the
162 user is away.")
163 (defvar riece-operator-indicator "-"
164   "String displayed on the modeline to allow the user to tell if the
165 user is an operator.")
166 (defvar riece-channel-status-indicator "-"
167   "String displayed on the modeline to allow the user to tell if the
168 user's status on the current channel.")
169
170 ;;; Buffers:
171 (defvar riece-command-buffer nil
172   "The command buffer.")
173 (defvar riece-dialogue-buffer nil
174   "Buffer for whole conversation.")
175 (defvar riece-others-buffer nil
176   "Buffer for other messages.")
177 (defvar riece-channel-list-buffer nil
178   "Buffer for channel list.")
179 (defvar riece-user-list-buffer nil
180   "Buffer for user list.")
181 (defvar riece-channel-buffer nil
182   "Buffer for messages arrived in the current channel.")
183 (defvar riece-temp-buffer nil
184   "Buffer for temporally use.")
185 (defvar riece-debug-buffer nil
186   "Buffer for debug output.")
187
188 (defvar riece-buffer-list nil)
189 (defvar riece-overriding-server-name nil)
190
191 (defconst riece-change-prefix "*** Change: ")
192 (defconst riece-notice-prefix "*** Notice: ")
193 (defconst riece-wallops-prefix "*** Notice: ")
194 (defconst riece-error-prefix "*** Error: ")
195 (defconst riece-info-prefix "*** Info: ")
196 (defconst riece-prefix-regexp "\\*\\*\\* \\([^:]+: \\)")
197
198 (defconst riece-time-prefix-regexp "[0-9][0-9]:[0-9][0-9] ")
199
200 (provide 'riece-globals)
201
202 ;;; riece-globals.el ends here