;;; Code:
+(require 'riece-compat) ;riece-make-interval-regexp
+
;;; Constants:
-(defconst riece-channel-regexp
- "\\([+&#]\\|![A-Z0-9]\\{5\\}\\)[^\0\7\r\n ,:]*\\(:[^\0\7\r\n ,:]*\\)?")
-(defconst riece-user-regexp
- "[][\\\\`_^{|}A-Za-z][][\\\\`_^{|}A-Za-z0-9-]\\{0,8\\}")
+(defconst riece-strict-channel-regexp
+ (concat "\\([+&#]\\|!"
+ (riece-make-interval-regexp "[A-Z0-9]" 5)
+ "\\|!!\\)[^\0\7\r\n ,:]*\\(:[^\0\7\r\n ,:]*\\)?"))
+
+(defconst riece-strict-user-regexp
+ (concat "[][\\\\`_^{|}A-Za-z]"
+ (riece-make-interval-regexp "[][\\\\`_^{|}A-Za-z0-9-]" 0 8)))
+
+(defconst riece-laxed-channel-regexp
+ "[+&#!][^\0\7\r\n ,:]*\\(:[^\0\7\r\n ,:]*\\)?")
+
+(defconst riece-laxed-user-regexp
+ "[][\\\\`_^{|}A-Za-z][][\\\\`_^{|}A-Za-z0-9-]*")
-;;; Miscellaneous global variables:
-(defvar riece-process-list nil
- "List of processes opened in the current session.")
+(defvar riece-channel-regexp riece-laxed-channel-regexp)
+(defvar riece-user-regexp riece-laxed-user-regexp)
+
+;;; Global variables:
+(defvar riece-server-process-alist nil
+ "An alist mapping server names to processes.")
(defvar riece-current-channel nil
"The channel you currently have joined.")
(defvar riece-current-channels nil
"The channels you have currently joined.")
-(defvar riece-channel-history nil
- "List of channels user has visited.")
+(defvar riece-join-channel-candidate nil
+ "The candidate for channel to be used with the next join command.")
(defvar riece-save-variables-are-dirty nil
"Non nil if the variables in `riece-saved-forms' are changed.")
(defvar riece-reconnect-with-password nil
"If non-nil, attempt to reconnect with password.")
-(defvar riece-obarray-size 1327
- "The size of obarray used by riece on channelname and username space.")
+(defvar riece-user-obarray-size 1327
+ "The size of obarray used by riece on username space.")
+
+(defvar riece-channel-obarray-size 103
+ "The size of obarray used by riece on channelname space.")
;;; Variables local to the server buffers:
(defvar riece-server-name nil
(defvar riece-read-point nil
"Point at the last input was seen.
Local to the server buffers.")
-(defvar riece-obarray nil
- "Namespace of the IRC world.
+(defvar riece-send-queue nil
+ "Send queue for avoiding client flood.
+Local to the server buffers.")
+(defvar riece-send-size nil
+ "Size of the last send.
+Local to the server buffers.")
+(defvar riece-last-send-time nil
+ "Timestamp of the last send.
+Local to the server buffers.")
+(defvar riece-user-obarray nil
+ "USER namespace of the IRC world.
+Local to the server buffers.")
+(defvar riece-channel-obarray nil
+ "Channel namespace of the IRC world.
Local to the server buffers.")
(defvar riece-coding-system nil
"Coding system for process I/O.
;;; Variables local to the channel buffers:
(defvar riece-freeze nil
- "If t, channel window is not scrolled.
-If 'own, channel window is not scrolled until you speak.
+ "If t, channel window is locked and will not be scrolled.
+If 'own, channel window is locked until the user begins to speak.
+Local to the channel buffers.")
+
+(defvar riece-freeze-indicator nil
+ "String displayed on the modeline to allow the user to tell if the
+channel buffer is locked.
+Local to the channel buffers.")
+
+(defvar riece-channel-buffer-window-point nil
+ "Last value of point in window which displayed the channel buffer.
Local to the channel buffers.")
;;; Modeline indicators:
(defvar riece-channel-indicator "None"
- "A modeline indicator of the current channel.")
+ "String displayed on the modeline to indicate the current channel.")
+(defvar riece-long-channel-indicator "None"
+ "String displayed on the modeline to indicate the current channel.
+Generally, this string will contain more information than
+riece-channel-indicator.")
(defvar riece-channel-list-indicator "No channel"
- "A modeline indicator of the current joined channels.")
-(defvar riece-short-channel-indicator "None"
- "A modeline indicator of the current channel.")
-(defvar riece-user-indicator nil)
-
-(defvar riece-away-indicator "-")
-(defvar riece-operator-indicator "-")
-(defvar riece-freeze-indicator "-")
+ "String displayed on the modeline to show the joined channels.")
+(defvar riece-user-indicator nil
+ "String displayed on the modeline to show the current nickname.")
+
+(defvar riece-away-indicator "-"
+ "String displayed on the modeline to allow the user to tell if the
+user is away.")
+(defvar riece-operator-indicator "-"
+ "String displayed on the modeline to allow the user to tell if the
+user is an operator.")
+(defvar riece-channel-status-indicator "-"
+ "String displayed on the modeline to allow the user to tell if the
+user's status on the current channel.")
;;; Buffers:
-(defvar riece-command-buffer "*Commands*"
- "Name of command input buffer.")
-(defvar riece-dialogue-buffer "*Dialogue*"
- "Name of dialogue output buffer.")
-(defvar riece-private-buffer "*Private*"
- "Name of private message buffer.")
-(defvar riece-others-buffer "*Others*"
- "Name of others message buffer.")
+(defvar riece-command-buffer nil
+ "The command buffer.")
+(defvar riece-dialogue-buffer nil
+ "Buffer for whole conversation.")
+(defvar riece-others-buffer nil
+ "Buffer for other messages.")
+(defvar riece-channel-list-buffer nil
+ "Buffer for channel list.")
+(defvar riece-user-list-buffer nil
+ "Buffer for user list.")
(defvar riece-channel-buffer nil
- "Name of channel message buffer.")
-(defvar riece-channel-buffer-format "*Channel:%s*"
- "Format of channel message buffer.")
-(defvar riece-channel-list-buffer "*Channels*"
- "Name of channel list buffer.")
-(defvar riece-user-list-buffer " *Users*"
- "Name of user list buffer.")
-(defvar riece-wallops-buffer " *WALLOPS*")
+ "Buffer for messages arrived in the current channel.")
+(defvar riece-temp-buffer nil
+ "Buffer for temporally use.")
(defvar riece-buffer-list nil)
(defvar riece-overriding-server-name nil)