aa84072ec7ec2131fa557807cd50399e5c918bce
[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 (defvar riece-addon-dependencies nil)
75
76 ;;; Variables local to the server buffers:
77 (defvar riece-server-name nil
78   "The name of the server.
79 Local to the server buffers.")
80 (defvar riece-real-nickname nil
81   "Your nickname the server offers.
82 Local to the server buffers.")
83 (defvar riece-last-nickname nil
84   "The last nickname you requested.
85 Local to the server buffers.")
86 (defvar riece-nick-accepted nil
87   "The flag your nickname is accepted by the server.
88 Possible values are nil, `ok', and `sent'.
89 Local to the server buffers.")
90 (defvar riece-real-server-name nil
91   "The server name offered by the server.
92 Local to the server buffers.")
93 (defvar riece-real-userhost nil
94   "Your hostname the server offers.
95 Local to the server buffers.")
96 (defvar riece-user-at-host ""
97   "The user@host for the current input.
98 Local to the server buffers.")
99 (defvar riece-user-at-host-type nil
100   "The authentication type of `riece-user-at-host'.
101 Possible values are 'ok 'not-verified 'fake or 'invalid.
102 Local to the server buffers.")
103 (defvar riece-supported-user-modes nil
104   "User modes supported by server.
105 Local to the server buffers.")
106 (defvar riece-supported-channel-modes nil
107   "Channel modes supported by server.
108 Local to the server buffers.")
109 (defvar riece-channel-filter ""
110   "Filter of the result of NAMES or LIST.
111 This enables us to use \\[universal-argument] with NAMES and TOPIC.
112 Local to the server buffers.")
113 (defvar riece-read-point nil
114   "Point at the last input was seen.
115 Local to the server buffers.")
116 (defvar riece-send-queue nil
117   "Send queue for avoiding client flood.
118 Local to the server buffers.")
119 (defvar riece-send-size nil
120   "Size of the last send.
121 Local to the server buffers.")
122 (defvar riece-last-send-time nil
123   "Timestamp of the last send.
124 Local to the server buffers.")
125 (defvar riece-user-obarray nil
126   "USER namespace of the IRC world.
127 Local to the server buffers.")
128 (defvar riece-channel-obarray nil
129   "Channel namespace of the IRC world.
130 Local to the server buffers.")
131 (defvar riece-coding-system nil
132   "Coding system for process I/O.
133 Local to the server buffers.")
134
135 ;;; Variables local to the channel buffers:
136 (defvar riece-freeze nil
137   "If t, channel window is locked and will not be scrolled.
138 If 'own, channel window is locked until the user begins to speak.
139 Local to the channel buffers.")
140
141 (defvar riece-freeze-indicator nil
142   "String displayed on the modeline to allow the user to tell if the
143 channel buffer is locked.
144 Local to the channel buffers.")
145
146 (defvar riece-channel-buffer-window-point nil
147   "Last value of point in window which displayed the channel buffer.
148 Local to the channel buffers.")
149
150 ;;; Modeline indicators:
151 (defvar riece-channel-indicator "None"
152   "String displayed on the modeline to indicate the current channel.")
153 (defvar riece-long-channel-indicator "None"
154   "String displayed on the modeline to indicate the current channel.
155 Generally, this string will contain more information than
156 riece-channel-indicator.")
157 (defvar riece-channel-list-indicator "No channel"
158   "String displayed on the modeline to show the joined channels.")
159 (defvar riece-user-indicator nil
160   "String displayed on the modeline to show the current nickname.")
161
162 (defvar riece-away-indicator "-"
163   "String displayed on the modeline to allow the user to tell if the
164 user is away.")
165 (defvar riece-operator-indicator "-"
166   "String displayed on the modeline to allow the user to tell if the
167 user is an operator.")
168 (defvar riece-channel-status-indicator "-"
169   "String displayed on the modeline to allow the user to tell if the
170 user's status on the current channel.")
171
172 ;;; Buffers:
173 (defvar riece-command-buffer nil
174   "The command buffer.")
175 (defvar riece-dialogue-buffer nil
176   "Buffer for whole conversation.")
177 (defvar riece-others-buffer nil
178   "Buffer for other messages.")
179 (defvar riece-channel-list-buffer nil
180   "Buffer for channel list.")
181 (defvar riece-user-list-buffer nil
182   "Buffer for user list.")
183 (defvar riece-channel-buffer nil
184   "Buffer for messages arrived in the current channel.")
185 (defvar riece-temp-buffer nil
186   "Buffer for temporally use.")
187 (defvar riece-debug-buffer nil
188   "Buffer for debug output.")
189
190 (defvar riece-buffer-list nil)
191 (defvar riece-overriding-server-name nil)
192
193 (defconst riece-change-prefix "*** Change: ")
194 (defconst riece-notice-prefix "*** Notice: ")
195 (defconst riece-wallops-prefix "*** Notice: ")
196 (defconst riece-error-prefix "*** Error: ")
197 (defconst riece-info-prefix "*** Info: ")
198 (defconst riece-prefix-regexp "\\*\\*\\* \\([^:]+: \\)")
199
200 (defconst riece-time-prefix-regexp "[0-9][0-9]:[0-9][0-9] ")
201
202 (provide 'riece-globals)
203
204 ;;; riece-globals.el ends here