[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
rcirc changes
From: |
Ryan Yeske |
Subject: |
rcirc changes |
Date: |
Tue, 14 Feb 2006 22:28:27 -0800 |
Some more misc bugfixes.
Index: ChangeLog
===================================================================
RCS file: /sources/emacs/emacs/lisp/ChangeLog,v
retrieving revision 1.9118
diff -c -r1.9118 ChangeLog
*** ChangeLog 12 Feb 2006 00:29:59 -0000 1.9118
--- ChangeLog 15 Feb 2006 06:20:04 -0000
***************
*** 1,3 ****
--- 1,22 ----
+ 2006-02-14 Ryan Yeske <address@hidden>
+
+ * net/rcirc.el (rcirc-connect): Make all arguments optional, and
+ default to global variable values for unsupplied args.
+ (rcirc-get-buffer-create): Fix bug with setting the target.
+ (rcirc-any-buffer): Rename from rcirc-get-any-buffer, and include
+ test for rcirc-always-use-server-buffer-flag here.
+ (rcirc-response-formats): Add %N, which is a facified nick. %n
+ uses the default face. Change the ACTION format string. If the
+ "nick" is the server, don't print anything for that field.
+ Comment fixes.
+ (rcirc-target-buffer): Don't test
+ rcirc-always-use-server-buffer-flag here.
+ (rcirc-print): Squeeze extra spaces out of the text before
+ message.
+ (rcirc-put-nick-channel): Strip potential "@" char from nick
+ before adding them to nick table.
+ (rcirc-url-regexp): Improve to match address like "foo.com".
+
2006-02-12 Mathias Dahl <address@hidden>
* tumme.el (tumme-write-tag): Fix small bug (file name did not
Index: net/rcirc.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/net/rcirc.el,v
retrieving revision 1.14
diff -c -r1.14 rcirc.el
*** net/rcirc.el 11 Feb 2006 21:42:23 -0000 1.14
--- net/rcirc.el 15 Feb 2006 06:20:07 -0000
***************
*** 49,55 ****
(defgroup rcirc nil
"Simple IRC client."
:version "22.1"
! :prefix "rcirc"
:group 'applications)
(defcustom rcirc-server "irc.freenode.net"
--- 49,55 ----
(defgroup rcirc nil
"Simple IRC client."
:version "22.1"
! :prefix "rcirc-"
:group 'applications)
(defcustom rcirc-server "irc.freenode.net"
***************
*** 295,310 ****
(defvar rcirc-topic nil)
(defvar rcirc-keepalive-timer nil)
(defvar rcirc-last-server-message-time nil)
! (defun rcirc-connect (server port nick user-name full-name startup-channels)
(add-hook 'window-configuration-change-hook
'rcirc-window-configuration-change)
(save-excursion
(message "Connecting to %s..." server)
(let* ((inhibit-eol-conversion)
! (port-number (if (stringp port)
! (string-to-number port)
! port))
(process (open-network-stream server nil server port-number)))
;; set up process
(set-process-coding-system process 'raw-text 'raw-text)
--- 295,317 ----
(defvar rcirc-topic nil)
(defvar rcirc-keepalive-timer nil)
(defvar rcirc-last-server-message-time nil)
! (defun rcirc-connect (&optional server port nick user-name full-name
startup-channels)
(add-hook 'window-configuration-change-hook
'rcirc-window-configuration-change)
(save-excursion
(message "Connecting to %s..." server)
(let* ((inhibit-eol-conversion)
! (port-number (if port
! (if (stringp port)
! (string-to-number port)
! port)
! rcirc-port))
! (server (or server rcirc-server))
! (nick (or nick rcirc-nick))
! (user-name (or user-name rcirc-user-name))
! (full-name (or full-name rcirc-user-full-name))
! (startup-channels (or startup-channels (rcirc-startup-channels
server)))
(process (open-network-stream server nil server port-number)))
;; set up process
(set-process-coding-system process 'raw-text 'raw-text)
***************
*** 758,766 ****
Create the buffer if it doesn't exist."
(let ((buffer (rcirc-get-buffer process target)))
(if buffer
! (progn
(when (not rcirc-target)
! (setq rcirc-target target))
buffer)
;; create the buffer
(with-rcirc-process-buffer process
--- 765,773 ----
Create the buffer if it doesn't exist."
(let ((buffer (rcirc-get-buffer process target)))
(if buffer
! (with-current-buffer buffer
(when (not rcirc-target)
! (setq rcirc-target target))
buffer)
;; create the buffer
(with-rcirc-process-buffer process
***************
*** 896,915 ****
(kill-buffer (current-buffer))
(set-window-configuration rcirc-window-configuration))
! (defun rcirc-get-any-buffer (process)
"Return a buffer for PROCESS, either the one selected or the process
buffer."
! (let ((buffer (window-buffer (selected-window))))
! (if (and buffer
! (with-current-buffer buffer
! (and (eq major-mode 'rcirc-mode)
! (eq rcirc-process process))))
! buffer
! (process-buffer process))))
(defcustom rcirc-response-formats
! '(("PRIVMSG" . "%T<%n> %m")
! ("NOTICE" . "%T-%n- %m")
! ("ACTION" . "%T[%n] %m")
("COMMAND" . "%T%m")
("ERROR" . "%T%fw!!! %m")
(t . "%T%fp*** %fs%n %r %m"))
--- 903,924 ----
(kill-buffer (current-buffer))
(set-window-configuration rcirc-window-configuration))
! (defun rcirc-any-buffer (process)
"Return a buffer for PROCESS, either the one selected or the process
buffer."
! (if rcirc-always-use-server-buffer-flag
! (process-buffer process)
! (let ((buffer (window-buffer (selected-window))))
! (if (and buffer
! (with-current-buffer buffer
! (and (eq major-mode 'rcirc-mode)
! (eq rcirc-process process))))
! buffer
! (process-buffer process)))))
(defcustom rcirc-response-formats
! '(("PRIVMSG" . "%T<%N> %m")
! ("NOTICE" . "%T-%N- %m")
! ("ACTION" . "%T[%N %m]")
("COMMAND" . "%T%m")
("ERROR" . "%T%fw!!! %m")
(t . "%T%fp*** %fs%n %r %m"))
***************
*** 921,927 ****
the of the following escape sequences replaced by the described values:
%m The message text
! %n The sender's nick (with face `rcirc-my-nick' or
`rcirc-other-nick')
%r The response-type
%T The timestamp (with face `rcirc-timestamp')
%t The target
--- 930,937 ----
the of the following escape sequences replaced by the described values:
%m The message text
! %n The sender's nick
! %N The sender's nick (with face `rcirc-my-nick' or
`rcirc-other-nick')
%r The response-type
%T The timestamp (with face `rcirc-timestamp')
%t The target
***************
*** 957,1014 ****
(setq chunk (substring chunk 1)))
(setq repl
(cond ((eq key ?%)
! ;; %% -- literal % character ;
"%")
! ((eq key ?n)
! ;; %n -- nick ;
! (rcirc-facify (concat (rcirc-abbrev-nick sender)
! (and target (concat "," target)))
! (if (string= sender (rcirc-nick process))
! 'rcirc-my-nick
! 'rcirc-other-nick)))
((eq key ?T)
! ;; %T -- timestamp ;
(rcirc-facify
(format-time-string rcirc-time-format (current-time))
'rcirc-timestamp))
((eq key ?m)
! ;; %m -- message text ;
;; We add the text property `rcirc-text' to identify this ;
! ;; as the body text. ;
(propertize
(rcirc-mangle-text process (rcirc-facify text face))
'rcirc-text text))
((eq key ?t)
! ;; %t -- target ;
(rcirc-facify (or rcirc-target "") face))
((eq key ?r)
! ;; %r -- response ;
(rcirc-facify response face))
((eq key ?f)
! ;; %f -- change face ;
(setq face-key (aref chunk 0))
(cond ((eq face-key ?w)
! ;; %fw -- warning face ;
(setq face 'font-lock-warning-face))
((eq face-key ?p)
! ;; %fp -- server-prefix face ;
(setq face 'rcirc-server-prefix))
((eq face-key ?s)
! ;; %fs -- warning face ;
(setq face 'rcirc-server))
((eq face-key ?-)
! ;; %fs -- warning face ;
(setq face nil))
((and (eq face-key ?\[)
(string-match "^[[]\\([^]]*\\)[]]" chunk)
(facep (match-string 1 chunk)))
! ;; %f[...] -- named face ;
(setq face (intern (match-string 1 chunk)))
(setq chunk (substring chunk (match-end 1)))))
(setq chunk (substring chunk 1))
"")
(t
! ;; just insert the key literally ;
(rcirc-facify (substring chunk 0 1) face))))
(setq result (concat result repl (rcirc-facify chunk face))))
result))
--- 967,1031 ----
(setq chunk (substring chunk 1)))
(setq repl
(cond ((eq key ?%)
! ;; %% -- literal % character
"%")
! ((or (eq key ?n) (eq key ?N))
! ;; %n/%N -- nick
! (let ((nick (concat (if (string= (with-rcirc-process-buffer
! process rcirc-server)
! sender)
! ""
! (rcirc-abbrev-nick sender))
! (and target (concat "," target)))))
! (rcirc-facify nick
! (if (eq key ?n)
! face
! (if (string= sender (rcirc-nick process))
! 'rcirc-my-nick
! 'rcirc-other-nick)))))
((eq key ?T)
! ;; %T -- timestamp
(rcirc-facify
(format-time-string rcirc-time-format (current-time))
'rcirc-timestamp))
((eq key ?m)
! ;; %m -- message text
;; We add the text property `rcirc-text' to identify this ;
! ;; as the body text.
(propertize
(rcirc-mangle-text process (rcirc-facify text face))
'rcirc-text text))
((eq key ?t)
! ;; %t -- target
(rcirc-facify (or rcirc-target "") face))
((eq key ?r)
! ;; %r -- response
(rcirc-facify response face))
((eq key ?f)
! ;; %f -- change face
(setq face-key (aref chunk 0))
(cond ((eq face-key ?w)
! ;; %fw -- warning face
(setq face 'font-lock-warning-face))
((eq face-key ?p)
! ;; %fp -- server-prefix face
(setq face 'rcirc-server-prefix))
((eq face-key ?s)
! ;; %fs -- server face
(setq face 'rcirc-server))
((eq face-key ?-)
! ;; %f- -- default face
(setq face nil))
((and (eq face-key ?\[)
(string-match "^[[]\\([^]]*\\)[]]" chunk)
(facep (match-string 1 chunk)))
! ;; %f[...] -- named face
(setq face (intern (match-string 1 chunk)))
(setq chunk (substring chunk (match-end 1)))))
(setq chunk (substring chunk 1))
"")
(t
! ;; just insert the key literally
(rcirc-facify (substring chunk 0 1) face))))
(setq result (concat result repl (rcirc-facify chunk face))))
result))
***************
*** 1018,1026 ****
(assert (not (bufferp target)))
(with-rcirc-process-buffer process
(cond ((not target)
! (if rcirc-always-use-server-buffer-flag
! (process-buffer process)
! (rcirc-get-any-buffer process)))
((not (rcirc-channel-p target))
;; message from another user
(if (string= response "PRIVMSG")
--- 1035,1041 ----
(assert (not (bufferp target)))
(with-rcirc-process-buffer process
(cond ((not target)
! (rcirc-any-buffer process))
((not (rcirc-channel-p target))
;; message from another user
(if (string= response "PRIVMSG")
***************
*** 1029,1035 ****
sender))
(rcirc-get-buffer process target t)))
((or (rcirc-get-buffer process target)
! (rcirc-get-any-buffer process))))))
(defvar rcirc-activity-type nil)
(make-variable-buffer-local 'rcirc-activity-type)
--- 1044,1050 ----
sender))
(rcirc-get-buffer process target t)))
((or (rcirc-get-buffer process target)
! (rcirc-any-buffer process))))))
(defvar rcirc-activity-type nil)
(make-variable-buffer-local 'rcirc-activity-type)
***************
*** 1072,1093 ****
(set-marker-insertion-type rcirc-prompt-start-marker nil)
(set-marker-insertion-type rcirc-prompt-end-marker nil)
! ;; fill the text we just inserted, maybe
! (when (and rcirc-fill-flag
! (not (string= response "372"))) ;/motd
! (let ((fill-prefix
! (or rcirc-fill-prefix
! (make-string
! (or (next-single-property-change 0 'rcirc-text
! fmted-text)
! 8)
! ?\s)))
! (fill-column (cond ((eq rcirc-fill-column 'frame-width)
! (1- (frame-width)))
! (rcirc-fill-column
! rcirc-fill-column)
! (t fill-column))))
! (fill-region fill-start rcirc-prompt-start-marker 'left t))))
;; set inserted text to be read-only
(when rcirc-read-only-flag
--- 1087,1112 ----
(set-marker-insertion-type rcirc-prompt-start-marker nil)
(set-marker-insertion-type rcirc-prompt-end-marker nil)
! (let ((text-start (make-marker)))
! (set-marker text-start
! (or (next-single-property-change fill-start
! 'rcirc-text)
! (point-max)))
! ;; squeeze spaces out of text before rcirc-text
! (fill-region fill-start (1- text-start))
!
! ;; fill the text we just inserted, maybe
! (when (and rcirc-fill-flag
! (not (string= response "372"))) ;/motd
! (let ((fill-prefix
! (or rcirc-fill-prefix
! (make-string (- text-start fill-start) ?\s)))
! (fill-column (cond ((eq rcirc-fill-column 'frame-width)
! (1- (frame-width)))
! (rcirc-fill-column
! rcirc-fill-column)
! (t fill-column))))
! (fill-region fill-start rcirc-prompt-start-marker 'left t)))))
;; set inserted text to be read-only
(when rcirc-read-only-flag
***************
*** 1178,1191 ****
(defun rcirc-put-nick-channel (process nick channel)
"Add CHANNEL to list associated with NICK."
! (with-rcirc-process-buffer process
! (let* ((chans (gethash nick rcirc-nick-table))
! (record (assoc-string channel chans t)))
! (if record
! (setcdr record (current-time))
! (puthash nick (cons (cons channel (current-time))
! chans)
! rcirc-nick-table)))))
(defun rcirc-nick-remove (process nick)
"Remove NICK from table."
--- 1197,1211 ----
(defun rcirc-put-nick-channel (process nick channel)
"Add CHANNEL to list associated with NICK."
! (let ((nick (rcirc-user-nick nick)))
! (with-rcirc-process-buffer process
! (let* ((chans (gethash nick rcirc-nick-table))
! (record (assoc-string channel chans t)))
! (if record
! (setcdr record (current-time))
! (puthash nick (cons (cons channel (current-time))
! chans)
! rcirc-nick-table))))))
(defun rcirc-nick-remove (process nick)
"Remove NICK from table."
***************
*** 1616,1630 ****
(propertize (or string "") 'face face 'rear-nonsticky t))
(defvar rcirc-url-regexp
! (rx word-boundary
! (or "www."
! (and (or "http" "https" "ftp" "file" "gopher" "news" "telnet" "wais"
! "mailto")
! "://"
! (1+ (char "a-zA-Z0-9_."))
! (optional ":" (1+ (char "0-9")))))
! (1+ (char "address@hidden&*+|\\/:;.,{}[]"))
! (char "address@hidden&*+|\\/:;{}[]"))
"Regexp matching URLs. Set to nil to disable URL features in rcirc.")
(defun rcirc-browse-url (&optional arg)
--- 1636,1656 ----
(propertize (or string "") 'face face 'rear-nonsticky t))
(defvar rcirc-url-regexp
! (rx-to-string
! `(and word-boundary
! (or "www."
! (and (or "http" "https" "ftp" "file" "gopher" "news" "telnet"
! "wais" "mailto")
! "://"
! (1+ (char "-a-zA-Z0-9_."))
! (optional ":" (1+ (char "0-9"))))
! (and (1+ (char "-a-zA-Z0-9_."))
! (or ".com" ".net" ".org")
! word-boundary))
! (optional
! (and "/"
! (1+ (char "address@hidden&*+|\\/:;.,{}[]"))
! (char "address@hidden&*+|\\/:;{}[]")))))
"Regexp matching URLs. Set to nil to disable URL features in rcirc.")
(defun rcirc-browse-url (&optional arg)
- Re: rcirc changes, (continued)
- Re: rcirc changes, Ryan Yeske, 2006/02/15
- Re: rcirc changes, Richard M. Stallman, 2006/02/15
- Re: rcirc changes, Miles Bader, 2006/02/16
- Re: rcirc changes, Ryan Yeske, 2006/02/16
- Re: rcirc changes, Miles Bader, 2006/02/16
- Re: rcirc changes, Björn Lindström, 2006/02/17
- Re: rcirc changes, Miles Bader, 2006/02/18
- Re: rcirc changes, David Kastrup, 2006/02/18
- Re: rcirc changes, Miles Bader, 2006/02/18
- Re: rcirc changes, Alex Schroeder, 2006/02/18
rcirc changes,
Ryan Yeske <=