Commits

Anonymous committed 83f5217

packages: Sync with ERC 5.1.2

-------------------- ChangeLog entries follow: --------------------

xemacs-packages/erc/ChangeLog addition:

2006-05-01 Adrian Aichner <adrian@xemacs.org>

* CREDITS: Full sync with upstream Version 5.1.2 $Revision:
1.796.2.6 (current state of release_5_1_branch).
* ChangeLog.upstream:
* Makefile (AUTHOR_VERSION):
* Makefile.upstream:
* erc-autojoin.el (erc-autojoin-version):
* erc-autojoin.el (erc-autojoin-add):
* erc-autojoin.el (erc-autojoin-remove):
* erc-backend.el (erc-backend-version):
* erc-backend.el (erc-server-connect-function):
* erc-backend.el (erc-parse-server-response):
* erc-bbdb.el:
* erc-bbdb.el (erc-bbdb-version):
* erc-bbdb.el (erc-bbdb-electric-p): New.
* erc-bbdb.el (erc-bbdb-show-entry):
* erc-button.el:
* erc-button.el (erc-button-version):
* erc-button.el (erc-button-keymap):
* erc-button.el (erc-button-next):
* erc-button.el (erc-button-previous): New.
* erc-ezbounce.el (erc-ezb-version):
* erc-ezbounce.el (erc-ezb-add-session):
* erc-identd.el:
* erc-identd.el (erc-identd-start):
* erc-netsplit.el (erc-netsplit-version):
* erc-netsplit.el (erc-netsplit-regexp):
* erc-netsplit.el (erc-netsplit-MODE):
* erc.el:
* erc.el (erc-version-string):
* erc.el (erc-header-line): New.
* erc.el (erc-cmd-QUOTE):
* erc.el (erc-cmd-SV):
* erc.el (erc-join-channel):
* erc.el (erc-parse-user):
* erc.el (erc-send-input):
* erc.el (erc-message-target):
* erc.el (erc-header-line-face-method): New.
* erc.el (erc-update-mode-line-buffer):
* erc.texi:
* erc.texi (Concept Index):

Comments (0)

Files changed (14)

 Simon Josefsson  (jas AT extundo DOT com):
   * Changed erc.el to use tls.el instead of ssl.el.
 
+Nelson Ferreira <nelson.ferreira@ieee.org>:
+  * Made BBDB buffers not electric by default (6 lines changed).
+
+Aravind Gottipati <aravind@freeshell.org>:
+  * Made /quote work with lines that don't have leading whitespace (1
+    line changed).
+
 ----
 
 P.S.: Many people contributed small bits to ERC whose names I probably
-forgot. If you aren't listed here, simply write a mail to mlang@delysid.org,
-I'll add you then.
+forgot.  If you aren't listed here and should be, send an email to
+mwolson@gnu.org along with a list of your contributions.
+2006-05-01  Adrian Aichner  <adrian@xemacs.org>
+
+	* CREDITS: Full sync with upstream Version 5.1.2 $Revision:
+	1.796.2.6 (current state of release_5_1_branch).
+	* ChangeLog.upstream:
+	* Makefile (AUTHOR_VERSION):
+	* Makefile.upstream:
+	* erc-autojoin.el (erc-autojoin-version):
+	* erc-autojoin.el (erc-autojoin-add):
+	* erc-autojoin.el (erc-autojoin-remove):
+	* erc-backend.el (erc-backend-version):
+	* erc-backend.el (erc-server-connect-function):
+	* erc-backend.el (erc-parse-server-response):
+	* erc-bbdb.el:
+	* erc-bbdb.el (erc-bbdb-version):
+	* erc-bbdb.el (erc-bbdb-electric-p): New.
+	* erc-bbdb.el (erc-bbdb-show-entry):
+	* erc-button.el:
+	* erc-button.el (erc-button-version):
+	* erc-button.el (erc-button-keymap):
+	* erc-button.el (erc-button-next):
+	* erc-button.el (erc-button-previous): New.
+	* erc-ezbounce.el (erc-ezb-version):
+	* erc-ezbounce.el (erc-ezb-add-session):
+	* erc-identd.el:
+	* erc-identd.el (erc-identd-start):
+	* erc-netsplit.el (erc-netsplit-version):
+	* erc-netsplit.el (erc-netsplit-regexp):
+	* erc-netsplit.el (erc-netsplit-MODE):
+	* erc.el:
+	* erc.el (erc-version-string):
+	* erc.el (erc-header-line): New.
+	* erc.el (erc-cmd-QUOTE):
+	* erc.el (erc-cmd-SV):
+	* erc.el (erc-join-channel):
+	* erc.el (erc-parse-user):
+	* erc.el (erc-send-input):
+	* erc.el (erc-message-target):
+	* erc.el (erc-header-line-face-method): New.
+	* erc.el (erc-update-mode-line-buffer):
+	* erc.texi:
+	* erc.texi (Concept Index):
+
 2006-02-20  Norbert Koch  <viteno@xemacs.org>
 
 	* Makefile (VERSION): XEmacs package 0.20 released.

ChangeLog.upstream

+2006-04-05  Diane Murray  <disumu@x3y2z1.net>
+
+	* erc.el (erc-cmd-SV): Removed the exclamation point.  Show the
+	build date as it's shown in `emacs-version'.
+
+	* erc-capab.el (erc-capab-identify-add-prefix): Insert the prefix
+	with the same face property as the previous character.
+
+2006-04-02  Michael Olson  <mwolson@gnu.org>
+
+	* erc-backend.el, erc-ezbounce.el, erc-join.el, erc-netsplit.el,
+	erc.el: Make sure to include a newline inside of negated classes,
+	so that a newline is not matched.
+
+2006-04-01  Michael Olson  <mwolson@gnu.org>
+
+	* erc-backend.el (erc-server-connect-function): Don't try to
+	detect the existence of the `open-network-stream-nowait' function,
+	since I can't find it in Emacs21, XEmacs21, or Emacs22.
+
+2006-03-27  Michael Olson  <mwolson@gnu.org>
+
+	* erc.texi: Update direntry.  Remove unneeded local variables.
+
+2006-03-26  Michael Olson  <mwolson@gnu.org>
+
+	* erc.el (erc-header-line): New face that will be used to colorize
+	the text of the header-line, provided that
+	`erc-header-line-face-method' is non-nil.
+	(erc-prompt-face): Fix formatting.
+	(erc-header-line-face-method): New option that determines the
+	method used for colorizing header-line text.  This may be a
+	function, nil, or non-nil.
+	(erc-update-mode-line-buffer): Use the aforementioned option and
+	face to colorize the header-line text, if that is what the user
+	wants.
+	(erc-send-input): If flood control is not activated, don't split
+	the input line.
+
+2006-03-25  Michael Olson  <mwolson@gnu.org>
+
+	* erc.el (erc-cmd-QUOTE): Install patch from Aravind Gottipati
+	that fixes the case where there is no leading whitespace.  Only
+	remove the first space character, though.
+
+	* erc-identd.el (erc-identd-start): Fix a bug by making sure that
+	erc-identd-process is set properly.
+	(erc-identd-start, erc-identd-stop): Add autoload cookies.
+	(erc-identd-start): Pass :host parameter so this works with Emacs
+	22.
+
+2006-03-21  Michael Olson  <mwolson@gnu.org>
+
+	* CREDITS: Add Nelson Ferreira.  Change contact address.
+
+	* erc-bbdb.el: Install patch from Nelson Ferreira.
+	(erc-bbdb-electric-p): New option that indicates whether to make
+	the BBDB buffer electric.  Defaults to "not electric".
+	(erc-bbdb-show-entry): Use `erc-bbdb-electric-p'.
+
+2006-03-09  Diane Murray  <disumu@x3y2z1.net>
+
+	* erc-button.el (erc-button-keymap): Use <backtab> rather than
+	<C-tab> for `erc-button-previous' as it is a more standard key
+	binding for this type of function.
+
+2006-02-19  Michael Olson  <mwolson@gnu.org>
+
+	* erc.el (erc-version-string): Release ERC 5.1.2.
+
+2006-02-19  Diane Murray  <disumu@x3y2z1.net>
+
+	* erc-button.el (erc-button-keymap): Bind `erc-button-previous' to
+	<C-tab>.
+	(erc-button-previous): New function.
+
 2006-02-15  Michael Olson  <mwolson@gnu.org>
 
 	* erc.el (erc): Move to the end of the buffer when a continued
 
 	* erc.texi (History): Note that ERC is now included with Emacs.
 
-	* erc.el (erc-version-string): Release ERC 5.1.1
+	* erc.el (erc-version-string): Release ERC 5.1.1.
 
 2006-01-31  Michael Olson  <mwolson@gnu.org>
 
 ;; End:
 
 ;; arch-tag: 865a75f6-2bcb-46df-bf0c-b514dadf688a
-
-;; arch-tag: cceaf370-9880-4031-842b-223ab2bb597d
 
 
 VERSION = 0.20
-AUTHOR_VERSION = Version 5.1.1 Revision: 1.796.2.3
+AUTHOR_VERSION = Version 5.1.2 Revision: 1.796.2.6
 MAINTAINER = Adrian Aichner <adrian@xemacs.org>
 PACKAGE = erc
 PKG_TYPE = regular

Makefile.upstream

-VERSION=5.1.1
+VERSION=5.1.2
 SNAPDIR=erc-$(VERSION)
-LASTUPLOAD = 5.1.1-2
+LASTUPLOAD = 5.1.1-3
 BUILDOPTS  =
 
 SPECIAL = erc-auto.el
 		   (or erc-server-announced-name erc-session-server))))
     (when (erc-current-nick-p nick)
       (when (and erc-autojoin-domain-only
-		 (string-match "[^.]+\\.\\([^.]+\\.[^.]+\\)$" server))
+		 (string-match "[^.\n]+\\.\\([^.\n]+\\.[^.\n]+\\)$" server))
 	(setq server (match-string 1 server)))
       (let ((elem (assoc server erc-autojoin-channels-alist)))
 	(if elem
 		   (or erc-server-announced-name erc-session-server))))
     (when (erc-current-nick-p nick)
       (when (and erc-autojoin-domain-only
-		 (string-match "[^.]+\\.\\([^.]+\\.[^.]+\\)$" server))
+		 (string-match "[^.\n]+\\.\\([^.\n]+\\.[^.\n]+\\)$" server))
 	(setq server (match-string 1 server)))
       (let ((elem (assoc server erc-autojoin-channels-alist)))
 	(when elem
   :type '(repeat (cons (string :tag "Target")
                        coding-system)))
 
-(defcustom erc-server-connect-function
-  (if (and (fboundp 'open-network-stream-nowait)
-           ;; CVS Emacs claims to define open-network-stream-nowait on
-           ;; windows, however, it does, in fact, not work.
-           (not (memq system-type '(windows-nt cygwin ms-dos darwin))))
-      'open-network-stream-nowait
-    'open-network-stream)
+(defcustom erc-server-connect-function 'open-network-stream
   "Function used to initiate a connection.
 It should take same arguments as `open-network-stream' does."
   :group 'erc-server
                 (substring string 1 posn)))
 
         (setf (erc-response.command msg)
-              (let* ((bposn (string-match "[^ ]" string posn))
+              (let* ((bposn (string-match "[^ \n]" string posn))
                      (eposn (string-match " " string bposn)))
                 (setq posn (and eposn
-                                (string-match "[^ ]" string eposn)))
+                                (string-match "[^ \n]" string eposn)))
                 (substring string bposn eposn)))
 
         (while (and posn
           (push (let* ((bposn posn)
                        (eposn (string-match " " string bposn)))
                   (setq posn (and eposn
-                                  (string-match "[^ ]" string eposn)))
+                                  (string-match "[^ \n]" string eposn)))
                   (substring string bposn eposn))
                 (erc-response.command-args msg)))
         (when posn
   :group 'erc-bbdb
   :type 'boolean)
 
+(defcustom erc-bbdb-electric-p nil
+  "*If t, BBDB popup buffer is electric."
+  :group 'erc-bbdb
+  :type 'boolean)
+
 (defun erc-bbdb-search-name-and-create (create-p name nick finger-host silent)
   (let* ((ircnick (cons erc-bbdb-irc-nick-field (concat "^"
 							(regexp-quote nick))))
       record)))
 
 (defun erc-bbdb-show-entry (record channel proc)
-  (let ((bbdb-display-layout (bbdb-grovel-elide-arg erc-bbdb-elide-display)))
+  (let ((bbdb-display-layout (bbdb-grovel-elide-arg erc-bbdb-elide-display))
+	(bbdb-electric-p erc-bbdb-electric-p))
     (when (and record (or (eq erc-bbdb-popup-type t)
 			  (and (eq erc-bbdb-popup-type 'visible)
 			       (and channel
         (define-key map (kbd "<button2>") 'erc-button-click-button)
       (define-key map (kbd "<mouse-2>") 'erc-button-click-button))
     (define-key map (kbd "TAB") 'erc-button-next)
+    (define-key map (kbd "<backtab>") 'erc-button-previous)
     (set-keymap-parent map erc-mode-map)
     map)
   "Local keymap for ERC buttons.")
         (error "No next button"))
       t)))
 
+(defun erc-button-previous ()
+  "Go to the previous button in this buffer."
+  (interactive)
+  (let ((here (point)))
+    (when (< here (erc-beg-of-input-line))
+      (while (and (get-text-property here 'erc-callback)
+                  (not (= here (point-min))))
+        (setq here (1- here)))
+      (while (and (not (get-text-property here 'erc-callback))
+                  (not (= here (point-min))))
+        (setq here (1- here)))
+      (if (> here (point-min))
+          (goto-char here)
+        (error "No previous button"))
+      t)))
+
 (defun erc-browse-emacswiki (thing)
   "Browse to thing in the emacs-wiki."
   (browse-url (concat erc-emacswiki-url thing)))
 (defun erc-ezb-add-session (message)
   "Add an EZBounce session to the session list."
   (when (and erc-ezb-inside-session-listing
-	     (string-match "^\\([^ ]+\\) +\\([^ ]+\\) +\\([^ ]+\\) +\\([^ ]+\\)$" message))
+	     (string-match "^\\([^ \n]+\\) +\\([^ \n]+\\) +\\([^ \n]+\\) +\\([^ \n]+\\)$" message))
     (let ((id (match-string 1 message))
 	  (nick (match-string 2 message))
 	  (to   (match-string 3 message)))
 ;;; erc-identd.el --- RFC1413 (identd authentication protocol) server
 
-;; Copyright (C) 2003 Free Software Foundation, Inc.
+;; Copyright (C) 2003, 2006 Free Software Foundation, Inc.
 
 ;; Author: John Wiegley <johnw@gnu.org>
 ;; Keywords: comm, processes
 			     system-type (user-login-name)))
 	(process-send-eof erc-identd-process)))))
 
+;;;###autoload
 (defun erc-identd-start (&optional port)
   "Start an identd server listening to port 8113.
 Port 113 (auth) will need to be redirected to port 8113 on your
 	(setq port (string-to-number port))))
   (if erc-identd-process
       (delete-process erc-identd-process))
-  (if (fboundp 'make-network-process)
-      (setq erc-identd-process
+  (setq erc-identd-process
+	(if (fboundp 'make-network-process)
 	    (make-network-process :name "identd"
 				  :buffer (generate-new-buffer "identd")
-				  :service port :server t :noquery t
-				  :filter 'erc-identd-filter))
-    (open-network-stream-server "identd" (generate-new-buffer "identd")
-				port nil 'erc-identd-filter)))
+				  :host 'local :service port
+				  :server t :noquery t
+				  :filter 'erc-identd-filter)
+	  (open-network-stream-server "identd" (generate-new-buffer "identd")
+				      port nil 'erc-identd-filter))))
 
+;;;###autoload
 (defun erc-identd-stop (&rest ignore)
   (interactive)
   (when erc-identd-process
   :group 'erc-netsplit
   :type 'boolean)
 
-(defcustom erc-netsplit-regexp "^[^ @!\"]+\\.[^ @!]+ [^ @!]+\\.[^ @!\"]+$"
+(defcustom erc-netsplit-regexp
+  "^[^ @!\"\n]+\\.[^ @!\n]+ [^ @!\n]+\\.[^ @!\"\n]+$"
   "This regular expression should match quit reasons produced
 by netsplits."
   :group 'erc-netsplit
 (defun erc-netsplit-MODE (proc parsed)
   "Hide mode changes from servers."
   ;; regexp matches things with a . in them, and no ! or @ in them.
-  (when (string-match "^[^@!]+\\.[^@!]+$" (erc-response.sender parsed))
+  (when (string-match "^[^@!\n]+\\.[^@!\n]+$" (erc-response.sender parsed))
     (and erc-netsplit-debug
 	 (erc-display-message
 	  parsed 'notice (process-buffer proc)
 
 ;;; Code:
 
-(defconst erc-version-string "Version 5.1.1 $Revision$"
+(defconst erc-version-string "Version 5.1.2 $Revision$"
   "ERC version.  This is used by function `erc-version'.")
 
 (eval-when-compile (require 'cl))
   "ERC face used for messages you receive in the main erc buffer."
   :group 'erc-faces)
 
+(defface erc-header-line
+  '((t (:foreground "grey20" :background "grey90")))
+  "ERC face used for the header line.
+
+This will only be used if `erc-header-line-face-method' is non-nil."
+  :group 'erc-faces)
+
 (defface erc-input-face '((t (:foreground "brown")))
   "ERC face used for your input."
   :group 'erc-faces)
 
 (defface erc-prompt-face
-  '((t (:bold t :foreground "Black" :background"lightBlue2")))
+  '((t (:bold t :foreground "Black" :background "lightBlue2")))
   "ERC face for the prompt."
   :group 'erc-faces)
 
 All the text given as argument is sent to the sever as unmodified,
 just as you provided it.  Use this command with care!"
   (cond
-   ((string-match "^\\s-\\(.+\\)$" line)
+   ((string-match "^ ?\\(.+\\)$" line)
     (erc-server-send (match-string 1 line)))
    (t nil)))
 (put 'erc-cmd-QUOTE 'do-not-parse-args t)
 
 (defun erc-cmd-SV ()
   "Say the current ERC and Emacs version into channel."
-  (erc-send-message (format "I'm using ERC %s with %s %s (%s%s%s)!"
+  (erc-send-message (format "I'm using ERC %s with %s %s (%s%s) of %s."
 			    erc-version-string
 			    (if (featurep 'xemacs) "XEmacs" "GNU Emacs")
 			    emacs-version
 						      x-toolkit-scroll-bars)))
 			       "")
 			     (if (featurep 'multi-tty) ", multi-tty" ""))
-			    (concat ", built " erc-emacs-build-time)))
+			    erc-emacs-build-time))
   t)
 
 (defun erc-cmd-SM ()
 If `point' is at the beginning of a channel name, use that as default."
   (interactive
    (list
-    (let ((chnl (if (looking-at "\\([&#+!][^ ]+\\)") (match-string 1) ""))
+    (let ((chnl (if (looking-at "\\([&#+!][^ \n]+\\)") (match-string 1) ""))
 	  (table (when (erc-server-buffer-live-p)
 		   (set-buffer (process-buffer erc-server-process))
 		   erc-channel-list)))
 
 Return a list of the three separate tokens."
   (cond
-   ((string-match "^\\([^!]*\\)!\\([^@]*\\)@\\(.*\\)$" string)
+   ((string-match "^\\([^!\n]*\\)!\\([^@\n]*\\)@\\(.*\\)$" string)
     (list (match-string 1 string)
 	  (match-string 2 string)
 	  (match-string 3 string)))
    ;; Some bogus bouncers send Nick!(null), try to live with that.
-   ((string-match "^\\([^!]*\\)!\\(.*\\)$" string)
+   ((string-match "^\\([^!\n]*\\)!\\(.*\\)$" string)
     (list (match-string 1 string)
 	  ""
 	  (match-string 2 string)))
 		  (erc-display-msg line)
 		  (erc-process-input-line (concat line "\n")
 					  (null erc-flood-protect) t))
-		(erc-split-line line)))
+		(or (and erc-flood-protect (erc-split-line line))
+		    (list line))))
 	     (split-string str "\n"))
 	  ;; Insert the prompt along with the command.
 	  (erc-display-command str)
   "Return the addressed target in MSG.
 
 The addressed target is the string before the first colon in MSG."
-  (if (string-match "^\\([^: ]*\\):" msg)
+  (if (string-match "^\\([^: \n]*\\):" msg)
       (match-string 1 msg)
     nil))
 
   :group 'erc-mode-line-and-header
   :type 'boolean)
 
+(defcustom erc-header-line-face-method nil
+  "Determine what method to use when colorizing the header line text.
+
+If nil, don't colorize the header text.
+If given a function, call it and use the resulting face name.
+Otherwise, use the `erc-header-line' face."
+  :group 'erc-mode-line-and-header
+  :type '(choice (const :tag "Don't colorize" nil)
+		 (const :tag "Use the erc-header-line face" t)
+		 (function :tag "Call a function")))
+
 (defcustom erc-show-channel-key-p t
   "Show the the channel key in the header line."
   :group 'erc-paranoia
 				((erc-server-process-alive)
 				 "")
 				(t
-				 ": CLOSED"))))
+				 ": CLOSED")))
+	  (face (cond ((eq erc-header-line-face-method nil)
+		       nil)
+		      ((functionp erc-header-line-face-method)
+		       (funcall erc-header-line-face-method))
+		      (t
+		       erc-header-line))))
       (cond ((featurep 'xemacs)
 	     (setq modeline-buffer-identification
 		   (list (format-spec erc-mode-line-format spec)))
 			 (erc-replace-regexp-in-string
 			  "%"
 			  "%%"
-			  (erc-propertize header 'help-echo help-echo)))))
+			  (if face
+			      (erc-propertize header 'help-echo help-echo
+					      'face face)
+			    (erc-propertize header 'help-echo help-echo))))))
 		(t (setq header-line-format header))))))
     (if (featurep 'xemacs)
 	(redraw-modeline)
 
 @dircategory Emacs
 @direntry
-* ERC: (erc). Full-featured IRC client for Emacs.
+* ERC: (erc).           Powerful, modular, and extensible IRC client for Emacs.
 @end direntry
 
 @syncodeindex fn cp
 
 @copying
-This manual is for ERC version 5.1.1.
+This manual is for ERC version 5.1.2.
 
 Copyright @copyright{} 2005, 2006 Free Software Foundation, Inc.
 
 
 @bye
 
-@c Local Variables:
-@c ispell-local-pdict: "ispell-dict"
-@c End:
-
 @ignore
    arch-tag: cf9cfaff-fc12-4297-ad15-ec2493002b1e
 @end ignore