Function: rcirc-mode
rcirc-mode is a byte-compiled function defined in rcirc.el.gz.
Signature
(rcirc-mode PROCESS TARGET)
Documentation
Initialize an IRC buffer for writing with TARGET.
PROCESS is the process object used for communication.
C-c C-a rcirc-jump-to-first-unread-line
C-c C-b rcirc-browse-url
C-c C-c rcirc-edit-multiline
C-c C-d rcirc-cmd-mode
C-c C-f C-b rcirc-format-bold
C-c C-f C-d rcirc-unformat
C-c C-f C-f rcirc-format-fixed-width
C-c C-f C-s rcirc-format-strike-through
C-c C-f C-t rcirc-format-fixed-width
C-c C-f C-u rcirc-format-underline
C-c C-f TAB rcirc-format-italic
C-c C-j rcirc-cmd-join
C-c C-k rcirc-cmd-kick
C-c C-l rcirc-toggle-low-priority
C-c C-n rcirc-cmd-names
C-c C-o rcirc-omit-mode(var)/rcirc-omit-mode(fun)
C-c C-p rcirc-cmd-part
C-c C-q rcirc-cmd-query
C-c C-r rcirc-cmd-nick
C-c C-s rcirc-switch-to-server-buffer
C-c C-t rcirc-cmd-topic
C-c C-w rcirc-cmd-whois
C-c C-x rcirc-cmd-quit
C-c RET rcirc-cmd-msg
C-c TAB rcirc-toggle-ignore-buffer-activity
M-n rcirc-insert-next-input
M-p rcirc-insert-prev-input
RET rcirc-send-input
TAB completion-at-point
Source Code
;; Defined in /usr/src/emacs/lisp/net/rcirc.el.gz
(defun rcirc-mode (process target)
"Initialize an IRC buffer for writing with TARGET.
PROCESS is the process object used for communication.
\\{rcirc-mode-map}"
;; FIXME: Use define-derived-mode.
(kill-all-local-variables)
(use-local-map rcirc-mode-map)
(setq mode-name "rcirc")
(setq major-mode 'rcirc-mode)
(setq mode-line-process nil)
(setq rcirc-input-ring
;; If rcirc-input-ring is already a ring with desired
;; size do not re-initialize.
(if (and (ring-p rcirc-input-ring)
(= (ring-size rcirc-input-ring)
rcirc-input-ring-size))
rcirc-input-ring
(make-ring rcirc-input-ring-size)))
(setq rcirc-server-buffer (process-buffer process))
(setq rcirc-target target)
(setq rcirc-last-post-time (current-time))
(setq-local fill-paragraph-function 'rcirc-fill-paragraph)
(setq rcirc-current-line 0)
(use-hard-newlines t)
;; setup for omitting responses
(setq buffer-invisibility-spec '())
(setq buffer-display-table (make-display-table))
(set-display-table-slot buffer-display-table 4
(let ((glyph (make-glyph-code
?. 'font-lock-keyword-face)))
(make-vector 3 glyph)))
(dolist (i rcirc-coding-system-alist)
(let ((chan (if (consp (car i)) (caar i) (car i)))
(serv (if (consp (car i)) (cdar i) "")))
(when (and (string-match chan (or target ""))
(string-match serv (rcirc-server-name process)))
(setq-local rcirc-decode-coding-system
(if (consp (cdr i)) (cadr i) (cdr i)))
(setq-local rcirc-encode-coding-system
(if (consp (cdr i)) (cddr i) (cdr i))))))
;; setup the prompt and markers
(setq rcirc-prompt-start-marker (point-max-marker))
(setq rcirc-prompt-end-marker (point-max-marker))
(rcirc-update-prompt)
(goto-char rcirc-prompt-end-marker)
(setq-local overlay-arrow-position (make-marker))
;; if the user changes the major mode or kills the buffer, there is
;; cleanup work to do
(add-hook 'change-major-mode-hook 'rcirc-change-major-mode-hook nil t)
(add-hook 'kill-buffer-hook 'rcirc-kill-buffer-hook nil t)
;; add to buffer list, and update buffer abbrevs
(when target ; skip server buffer
(let ((buffer (current-buffer)))
(with-rcirc-process-buffer process
(push (cons target buffer) rcirc-buffer-alist)))
(rcirc-update-short-buffer-names))
(add-hook 'completion-at-point-functions
'rcirc-completion-at-point nil 'local)
(when rcirc-cycle-completion-flag
(setq-local completion-cycle-threshold t))
(setq-local electric-pair-inhibit-predicate
#'rcirc--electric-pair-inhibit)
(run-mode-hooks 'rcirc-mode-hook))