;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs; see the file COPYING. If not, write to the
-;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
+;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
;;; Code:
(require 'riece-globals)
(require 'riece-misc)
+(require 'riece-mcat)
+(require 'riece-commands)
(eval-when-compile
(autoload 'riece-default-handle-numeric-reply "riece-handle"))
"ERR_ERRONEUSNICKNAME \"<nick> :Erroneous nickname\"."
(let ((nickname
(riece-handle-read-string
- (format "Erroneous nickname \"%s\". Choose a new one: "
+ (format (riece-mcat "Erroneous nickname \"%s\". Choose a new one: ")
(car (riece-split-parameters string))))))
(if nickname
(riece-send-string (format "NICK %s\r\n" nickname)))))
"ERR_NICKNAMEINUSE \"<nick> :Nickname is already in use\"."
(let ((nickname
(riece-handle-read-string
- (format "Nickname \"%s\" already in use. Choose a new one: "
+ (format (riece-mcat "Nickname \"%s\" already in use. Choose a new one: ")
(car (riece-split-parameters string))))))
(if nickname
(riece-send-string (format "NICK %s\r\n" nickname)))))
(defun riece-handle-464-message (prefix number name string)
"ERR_PASSWDMISMATCH \":Password incorrect\"."
- (message "Password incorrect from %s." prefix)
+ (message (riece-mcat "Password incorrect from %s.") prefix)
(setq riece-reconnect-with-password t))
+(defun riece-handle-475-message (prefix number name string)
+ "ERR_BADCHANNELKEY \"<channel> :Cannot join channel (+k)\"."
+ (let* ((parameters (riece-split-parameters string))
+ (channel-identity (riece-make-identity (car parameters)
+ riece-server-name))
+ key)
+ (setq key
+ (condition-case nil
+ (let (inhibit-quit)
+ (riece-read-passwd
+ (format (riece-mcat "Key for %s: ")
+ (riece-format-identity channel-identity t))))
+ (quit
+ (message (riece-mcat "Key for %s: Quit")
+ (riece-format-identity channel-identity t))
+ 'quit)))
+ (unless (eq key 'quit)
+ (riece-command-join-channel channel-identity key))))
+
(provide 'riece-400)
;;; riece-400.el ends here