diff options
author | Miles Bader <miles@gnu.org> | 2007-07-31 05:50:45 +0000 |
---|---|---|
committer | Miles Bader <miles@gnu.org> | 2007-07-31 05:50:45 +0000 |
commit | 9899d01a0ccec166e04caa60657a44e614be50cd (patch) | |
tree | 6f7874938065fd9808765059213ff7a94ab3268b /lisp/erc | |
parent | 96157d113ae5828cc280488211610db1960d572c (diff) | |
parent | 2f12b713116a4e15b4744fc78d5f0dbb57fcd1ca (diff) | |
download | emacs-9899d01a0ccec166e04caa60657a44e614be50cd.tar.gz |
Merge from emacs--devo--0
Patches applied:
* emacs--devo--0 (patch 824-838)
- Update from CVS
- Merge from emacs--rel--22
- Remove lisp/erc/erc-nicklist.el
- Update some .arch-inventory files
- Fix void function definition error in cus-edit.el
- Restore lisp/emacs-lisp/cl-loaddefs.el
* emacs--rel--22 (patch 70-83)
- Update from CVS
- Remove lisp/erc/erc-nicklist.el
- Update some .arch-inventory files
- Indicate that emacs--devo--0--patch-834 does not need to be applied
- Merge from gnus--rel--5.10
- Restore lisp/emacs-lisp/cl-loaddefs.el
* gnus--rel--5.10 (patch 239-241)
- Merge from emacs--devo--0
- Update from CVS
Revision: emacs@sv.gnu.org/emacs--multi-tty--0--patch-28
Diffstat (limited to 'lisp/erc')
42 files changed, 51 insertions, 455 deletions
diff --git a/lisp/erc/ChangeLog b/lisp/erc/ChangeLog index 33206ab6cd9..a5b2a8100a8 100644 --- a/lisp/erc/ChangeLog +++ b/lisp/erc/ChangeLog @@ -1,3 +1,13 @@ +2007-07-30 Michael Olson <mwolson@gnu.org> + + * erc-nicklist.el: Remove from the Emacs source tree. This file + is not release quality, and relies heavily on a module which + cannot be distributed with ERC due to licensing reasons. + +2007-07-25 Glenn Morris <rgm@gnu.org> + + * Relicense all FSF files to GPLv3 or later. + 2007-06-14 Juanma Barranquero <lekktu@gmail.com> * erc-goodies.el (erc-scroll-to-bottom): Remove redundant check. @@ -367,7 +377,7 @@ See ChangeLog.06 for earlier changes. GNU Emacs is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) + the Free Software Foundation; either version 3, or (at your option) any later version. GNU Emacs is distributed in the hope that it will be useful, diff --git a/lisp/erc/ChangeLog.01 b/lisp/erc/ChangeLog.01 index 51373669902..0700567a81e 100644 --- a/lisp/erc/ChangeLog.01 +++ b/lisp/erc/ChangeLog.01 @@ -1041,7 +1041,7 @@ GNU Emacs is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) + the Free Software Foundation; either version 3, or (at your option) any later version. GNU Emacs is distributed in the hope that it will be useful, diff --git a/lisp/erc/ChangeLog.02 b/lisp/erc/ChangeLog.02 index 811199b8e38..5b5acdbe8f0 100644 --- a/lisp/erc/ChangeLog.02 +++ b/lisp/erc/ChangeLog.02 @@ -2602,7 +2602,7 @@ See ChangeLog.01 for earlier changes. GNU Emacs is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) + the Free Software Foundation; either version 3, or (at your option) any later version. GNU Emacs is distributed in the hope that it will be useful, diff --git a/lisp/erc/ChangeLog.03 b/lisp/erc/ChangeLog.03 index be68faf255d..e0367e52acc 100644 --- a/lisp/erc/ChangeLog.03 +++ b/lisp/erc/ChangeLog.03 @@ -2146,7 +2146,7 @@ See ChangeLog.02 for earlier changes. GNU Emacs is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) + the Free Software Foundation; either version 3, or (at your option) any later version. GNU Emacs is distributed in the hope that it will be useful, diff --git a/lisp/erc/ChangeLog.04 b/lisp/erc/ChangeLog.04 index b8cb4298787..63eb563255c 100644 --- a/lisp/erc/ChangeLog.04 +++ b/lisp/erc/ChangeLog.04 @@ -2075,7 +2075,7 @@ See ChangeLog.03 for earlier changes. GNU Emacs is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) + the Free Software Foundation; either version 3, or (at your option) any later version. GNU Emacs is distributed in the hope that it will be useful, diff --git a/lisp/erc/ChangeLog.05 b/lisp/erc/ChangeLog.05 index 12a51bb44ed..68224cde8ef 100644 --- a/lisp/erc/ChangeLog.05 +++ b/lisp/erc/ChangeLog.05 @@ -1223,7 +1223,7 @@ See ChangeLog.04 for earlier changes. GNU Emacs is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) + the Free Software Foundation; either version 3, or (at your option) any later version. GNU Emacs is distributed in the hope that it will be useful, diff --git a/lisp/erc/ChangeLog.06 b/lisp/erc/ChangeLog.06 index f7d891cb5f6..08180f19b0f 100644 --- a/lisp/erc/ChangeLog.06 +++ b/lisp/erc/ChangeLog.06 @@ -1436,7 +1436,7 @@ See ChangeLog.05 for earlier changes. GNU Emacs is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) + the Free Software Foundation; either version 3, or (at your option) any later version. GNU Emacs is distributed in the hope that it will be useful, diff --git a/lisp/erc/erc-autoaway.el b/lisp/erc/erc-autoaway.el index 91a1150802b..c70beb112e2 100644 --- a/lisp/erc/erc-autoaway.el +++ b/lisp/erc/erc-autoaway.el @@ -9,7 +9,7 @@ ;; GNU Emacs is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 2, or (at your option) +;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; GNU Emacs is distributed in the hope that it will be useful, diff --git a/lisp/erc/erc-backend.el b/lisp/erc/erc-backend.el index 08cb738d360..349f9137066 100644 --- a/lisp/erc/erc-backend.el +++ b/lisp/erc/erc-backend.el @@ -11,7 +11,7 @@ ;; GNU Emacs is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 2, or (at your option) +;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; GNU Emacs is distributed in the hope that it will be useful, diff --git a/lisp/erc/erc-button.el b/lisp/erc/erc-button.el index 435c72bba23..35a20d5279f 100644 --- a/lisp/erc/erc-button.el +++ b/lisp/erc/erc-button.el @@ -11,7 +11,7 @@ ;; GNU Emacs is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 2, or (at your option) +;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; GNU Emacs is distributed in the hope that it will be useful, diff --git a/lisp/erc/erc-capab.el b/lisp/erc/erc-capab.el index b7ccade02e0..27410296491 100644 --- a/lisp/erc/erc-capab.el +++ b/lisp/erc/erc-capab.el @@ -4,7 +4,7 @@ ;; GNU Emacs is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 2, or (at your option) +;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; GNU Emacs is distributed in the hope that it will be useful, diff --git a/lisp/erc/erc-compat.el b/lisp/erc/erc-compat.el index dcfcfe84c98..8be3bed1a78 100644 --- a/lisp/erc/erc-compat.el +++ b/lisp/erc/erc-compat.el @@ -9,7 +9,7 @@ ;; GNU Emacs is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 2, or (at your option) +;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; GNU Emacs is distributed in the hope that it will be useful, diff --git a/lisp/erc/erc-dcc.el b/lisp/erc/erc-dcc.el index 2c906af4516..ed69e4553f5 100644 --- a/lisp/erc/erc-dcc.el +++ b/lisp/erc/erc-dcc.el @@ -14,7 +14,7 @@ ;; GNU Emacs is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 2, or (at your option) +;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; GNU Emacs is distributed in the hope that it will be useful, diff --git a/lisp/erc/erc-ezbounce.el b/lisp/erc/erc-ezbounce.el index f63682c51ff..58d886a06a9 100644 --- a/lisp/erc/erc-ezbounce.el +++ b/lisp/erc/erc-ezbounce.el @@ -9,7 +9,7 @@ ;; GNU Emacs is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 2, or (at your option) +;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; GNU Emacs is distributed in the hope that it will be useful, diff --git a/lisp/erc/erc-fill.el b/lisp/erc/erc-fill.el index fc1c71babdf..98180e98150 100644 --- a/lisp/erc/erc-fill.el +++ b/lisp/erc/erc-fill.el @@ -11,7 +11,7 @@ ;; GNU Emacs is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 2, or (at your option) +;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; GNU Emacs is distributed in the hope that it will be useful, diff --git a/lisp/erc/erc-goodies.el b/lisp/erc/erc-goodies.el index 6820f91628a..49a04513733 100644 --- a/lisp/erc/erc-goodies.el +++ b/lisp/erc/erc-goodies.el @@ -12,7 +12,7 @@ ;; GNU Emacs is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 2, or (at your option) +;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; GNU Emacs is distributed in the hope that it will be useful, diff --git a/lisp/erc/erc-hecomplete.el b/lisp/erc/erc-hecomplete.el index e6f91ce8998..6876637c7d7 100644 --- a/lisp/erc/erc-hecomplete.el +++ b/lisp/erc/erc-hecomplete.el @@ -9,7 +9,7 @@ ;; GNU Emacs is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 2, or (at your option) +;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; GNU Emacs is distributed in the hope that it will be useful, diff --git a/lisp/erc/erc-ibuffer.el b/lisp/erc/erc-ibuffer.el index 25ad1319bd6..ae256b877fa 100644 --- a/lisp/erc/erc-ibuffer.el +++ b/lisp/erc/erc-ibuffer.el @@ -10,7 +10,7 @@ ;; GNU Emacs is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 2, or (at your option) +;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; GNU Emacs is distributed in the hope that it will be useful, diff --git a/lisp/erc/erc-identd.el b/lisp/erc/erc-identd.el index 8a70a743edb..4b72ee171b3 100644 --- a/lisp/erc/erc-identd.el +++ b/lisp/erc/erc-identd.el @@ -9,7 +9,7 @@ ;; GNU Emacs is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 2, or (at your option) +;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; GNU Emacs is distributed in the hope that it will be useful, diff --git a/lisp/erc/erc-imenu.el b/lisp/erc/erc-imenu.el index 5e005181b7b..cd5923f2449 100644 --- a/lisp/erc/erc-imenu.el +++ b/lisp/erc/erc-imenu.el @@ -10,7 +10,7 @@ ;; GNU Emacs is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 2, or (at your option) +;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; GNU Emacs is distributed in the hope that it will be useful, diff --git a/lisp/erc/erc-join.el b/lisp/erc/erc-join.el index fb59cd905a6..dcc7e7f7c9e 100644 --- a/lisp/erc/erc-join.el +++ b/lisp/erc/erc-join.el @@ -10,7 +10,7 @@ ;; GNU Emacs is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 2, or (at your option) +;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; GNU Emacs is distributed in the hope that it will be useful, diff --git a/lisp/erc/erc-lang.el b/lisp/erc/erc-lang.el index c4d103a0f4a..e61156f3d5a 100644 --- a/lisp/erc/erc-lang.el +++ b/lisp/erc/erc-lang.el @@ -12,7 +12,7 @@ ;; GNU Emacs is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 2, or (at your option) +;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; GNU Emacs is distributed in the hope that it will be useful, diff --git a/lisp/erc/erc-log.el b/lisp/erc/erc-log.el index 9801192bca0..194f8ae6bf1 100644 --- a/lisp/erc/erc-log.el +++ b/lisp/erc/erc-log.el @@ -12,7 +12,7 @@ ;; GNU Emacs is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 2, or (at your option) +;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; GNU Emacs is distributed in the hope that it will be useful, diff --git a/lisp/erc/erc-match.el b/lisp/erc/erc-match.el index 35ba1b13492..c147b6566f8 100644 --- a/lisp/erc/erc-match.el +++ b/lisp/erc/erc-match.el @@ -11,7 +11,7 @@ ;; GNU Emacs is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 2, or (at your option) +;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; GNU Emacs is distributed in the hope that it will be useful, diff --git a/lisp/erc/erc-menu.el b/lisp/erc/erc-menu.el index 888da702d62..dd2d9c2a666 100644 --- a/lisp/erc/erc-menu.el +++ b/lisp/erc/erc-menu.el @@ -10,7 +10,7 @@ ;; GNU Emacs is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 2, or (at your option) +;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; GNU Emacs is distributed in the hope that it will be useful, diff --git a/lisp/erc/erc-netsplit.el b/lisp/erc/erc-netsplit.el index b4c26b1bb88..83bc0dffc0c 100644 --- a/lisp/erc/erc-netsplit.el +++ b/lisp/erc/erc-netsplit.el @@ -9,7 +9,7 @@ ;; GNU Emacs is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 2, or (at your option) +;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; GNU Emacs is distributed in the hope that it will be useful, diff --git a/lisp/erc/erc-networks.el b/lisp/erc/erc-networks.el index 4631ceae3ae..28f6f0d7722 100644 --- a/lisp/erc/erc-networks.el +++ b/lisp/erc/erc-networks.el @@ -9,7 +9,7 @@ ;; GNU Emacs is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 2, or (at your option) +;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; GNU Emacs is distributed in the hope that it will be useful, diff --git a/lisp/erc/erc-nicklist.el b/lisp/erc/erc-nicklist.el deleted file mode 100644 index f37b8eab996..00000000000 --- a/lisp/erc/erc-nicklist.el +++ /dev/null @@ -1,414 +0,0 @@ -;;; erc-nicklist.el --- Display channel nicknames in a side buffer. - -;; Copyright (C) 2004, 2005, 2006, 2007 Free Software Foundation, Inc. - -;; Filename: erc-nicklist.el -;; Author: Lawrence Mitchell <wence@gmx.li> -;; Created: 2004-04-30 -;; Keywords: IRC chat client Internet - -;; This file is part of GNU Emacs. - -;; GNU Emacs is free software; you can redistribute it and/or modify -;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 2, or (at your option) -;; any later version. - -;; GNU Emacs is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;; GNU General Public License for more details. - -;; 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., 51 Franklin Street, Fifth Floor, -;; Boston, MA 02110-1301, USA. - -;;; Commentary: -;; -;; This provides a minimal mIRC style nicklist buffer for ERC. To -;; activate, do M-x erc-nicklist RET in the channel buffer you want -;; the nicklist to appear for. To close and quit the nicklist -;; buffer, do M-x erc-nicklist-quit RET from within the nicklist buffer. -;; -;; TODO: -;; o Somehow associate nicklist windows with channel windows so they -;; appear together, and if one gets buried, then the other does. -;; -;; o Make "Query" and "Message" work. -;; -;; o Prettify the actual list of nicks in some way. -;; -;; o Add a proper erc-module that people can turn on and off, figure -;; out a way of creating the nicklist window at an appropriate time -;; --- probably in `erc-join-hook'. -;; -;; o Ensure XEmacs compatibility --- the mouse-menu support is likely -;; broken. -;; -;; o Add option to display in a separate frame --- will again need to -;; be able to associate the nicklist with the currently active -;; channel buffer or something similar. -;; -;; o Allow toggling of visibility of nicklist via ERC commands. - -;;; History: -;; - -;; Changes by Edgar Gonçalves <edgar.goncalves@inesc-id.pt> -;; Jun 25 2005: -;; - images are changed to a standard set of names. -;; - /images now contain gaim's status icons. -;; May 31 2005: -;; - tooltips are improved. they try to access bbdb for a nice nick! -;; Apr 26 2005: -;; - erc-nicklist-channel-users-info was fixed (sorting bug) -;; - Away names don't need parenthesis when using icons -;; Apr 26 2005: -;; - nicks can display icons of their connection type (msn, icq, for now) -;; Mar 15 2005: -;; - nicks now are different for unvoiced and op users -;; - nicks now have tooltips displaying more info -;; Mar 18 2005: -;; - queries now work ok, both on menu and keyb shortcut RET. -;; - nicklist is now sorted ignoring the case. Voiced nicks will -;; appear according to `erc-nicklist-voiced-position'. - -;;; Code: - -(require 'erc) -(condition-case nil - (require 'erc-bbdb) - (error nil)) -(eval-when-compile (require 'cl)) - -(defgroup erc-nicklist nil - "Display a list of nicknames in a separate window." - :group 'erc) - -(defcustom erc-nicklist-use-icons t - "*If non-nil, display an icon instead of the name of the chat medium. -By \"chat medium\", we mean IRC, AOL, MSN, ICQ, etc." - :group 'erc-nicklist - :type 'boolean) - -(defcustom erc-nicklist-icons-directory - (concat default-directory "images/") - "*Directory of the PNG files for chat icons. -Icons are displayed if `erc-nicklist-use-icons' is non-nil." - :group 'erc-nicklist - :type 'directory) - -(defcustom erc-nicklist-voiced-position 'bottom - "*Position of voiced nicks in the nicklist. -The value can be `top', `bottom' or nil (don't sort)." - :group 'erc-nicklist - :type '(choice - (const :tag "Top" 'top) - (const :tag "Bottom" 'bottom) - (const :tag "Mixed" nil))) - -(defcustom erc-nicklist-window-size 20.0 - "*The size of the nicklist window. - -This specifies a percentage of the channel window width. - -A negative value means the nicklist window appears on the left of the -channel window, and vice versa." - :group 'erc-nicklist - :type 'float) - - -(defun erc-nicklist-buffer-name (&optional buffer) - "Return the buffer name for a nicklist associated with BUFFER. - -If BUFFER is nil, use the value of `current-buffer'." - (format " *%s-nicklist*" (buffer-name (or buffer (current-buffer))))) - -(defun erc-nicklist-make-window () - "Create an ERC nicklist window. - -See also `erc-nicklist-window-size'." - (let ((width (floor (* (window-width) (/ erc-nicklist-window-size 100.0)))) - (buffer (erc-nicklist-buffer-name)) - window) - (split-window-horizontally (- width)) - (setq window (next-window)) - (set-window-buffer window (get-buffer-create buffer)) - (with-current-buffer buffer - (set-window-dedicated-p window t)))) - - -(defvar erc-nicklist-images-alist '() - "Alist that maps a connection type to an icon.") - -(defun erc-nicklist-insert-medium-name-or-icon (host channel is-away) - "Inserts an icon or a string identifying the current host type. -This is configured using `erc-nicklist-use-icons' and -`erc-nicklist-icons-directory'." - ;; identify the network (for bitlebee usage): - (let ((bitlbee-p (save-match-data - (string-match "\\`&bitlbee\\b" - (buffer-name channel))))) - (cond ((and bitlbee-p - (string= "login.icq.com" host)) - (if erc-nicklist-use-icons - (if is-away - (insert-image (cdr (assoc 'icq-away - erc-nicklist-images-alist))) - (insert-image (cdr (assoc 'icq - erc-nicklist-images-alist)))) - (insert "ICQ"))) - (bitlbee-p - (if erc-nicklist-use-icons - (if is-away - (insert-image (cdr (assoc 'msn-away - erc-nicklist-images-alist))) - (insert-image (cdr (assoc 'msn - erc-nicklist-images-alist)))) - (insert "MSN"))) - (t - (if erc-nicklist-use-icons - (if is-away - (insert-image (cdr (assoc 'irc-away - erc-nicklist-images-alist))) - (insert-image (cdr (assoc 'irc - erc-nicklist-images-alist)))) - (insert "IRC")))) - (insert " "))) - -(defun erc-nicklist-search-for-nick (finger-host) - "Return the bitlbee-nick field for this contact given FINGER-HOST. -Seach for the BBDB record of this contact. If not found, return nil." - (when (boundp 'erc-bbdb-bitlbee-name-field) - (let ((record (car - (erc-member-if - #'(lambda (r) - (let ((fingers (bbdb-record-finger-host r))) - (when fingers - (string-match finger-host - (car (bbdb-record-finger-host r)))))) - (bbdb-records))))) - (when record - (bbdb-get-field record erc-bbdb-bitlbee-name-field))))) - -(defun erc-nicklist-insert-contents (channel) - "Insert the nicklist contents, with text properties and the optional images." - (setq buffer-read-only nil) - (erase-buffer) - (dolist (u (erc-nicklist-channel-users-info channel)) - (let* ((server-user (car u)) - (channel-user (cdr u)) - (nick (erc-server-user-nickname server-user)) - (host (erc-server-user-host server-user)) - (login (erc-server-user-login server-user)) - (full-name(erc-server-user-full-name server-user)) - (info (erc-server-user-info server-user)) - (channels (erc-server-user-buffers server-user)) - (op (erc-channel-user-op channel-user)) - (voice (erc-channel-user-voice channel-user)) - (bbdb-nick (or (erc-nicklist-search-for-nick - (concat login "@" host)) - "")) - (away-status (if voice "" "\n(Away)")) - (balloon-text (concat bbdb-nick (if (string= "" bbdb-nick) - "" "\n") - "Login: " login "@" host - away-status))) - (erc-nicklist-insert-medium-name-or-icon host channel (not voice)) - (unless (or voice erc-nicklist-use-icons) - (setq nick (concat "(" nick ")"))) - (when op - (setq nick (concat nick " (OP)"))) - (insert (erc-propertize nick - 'erc-nicklist-nick nick - 'mouse-face 'highlight - 'erc-nicklist-channel channel - 'help-echo balloon-text) - "\n"))) - (erc-nicklist-mode)) - - -(defun erc-nicklist () - "Create an ERC nicklist buffer." - (interactive) - (let ((channel (current-buffer))) - (unless (or (not erc-nicklist-use-icons) - erc-nicklist-images-alist) - (setq erc-nicklist-images-alist - `((msn . ,(create-image (concat erc-nicklist-icons-directory - "msn-online.png"))) - (msn-away . ,(create-image (concat erc-nicklist-icons-directory - "msn-offline.png"))) - (irc . ,(create-image (concat erc-nicklist-icons-directory - "irc-online.png"))) - (irc-away . ,(create-image (concat erc-nicklist-icons-directory - "irc-offline.png"))) - (icq . ,(create-image (concat erc-nicklist-icons-directory - "icq-online.png"))) - (icq-away . ,(create-image (concat erc-nicklist-icons-directory - "icq-offline.png")))))) - (erc-nicklist-make-window) - (with-current-buffer (get-buffer (erc-nicklist-buffer-name channel)) - (erc-nicklist-insert-contents channel))) - (add-hook 'erc-channel-members-changed-hook #'erc-nicklist-update)) - -(defun erc-nicklist-update () - "Update the ERC nicklist buffer." - (let ((b (get-buffer (erc-nicklist-buffer-name))) - (channel (current-buffer))) - (when b - (with-current-buffer b - (erc-nicklist-insert-contents channel))))) - -(defvar erc-nicklist-mode-map - (let ((map (make-sparse-keymap))) - (define-key map (kbd "<down-mouse-3>") 'erc-nicklist-menu) - (define-key map "\C-j" 'erc-nicklist-kbd-menu) - (define-key map "q" 'erc-nicklist-quit) - (define-key map (kbd "RET") 'erc-nicklist-kbd-cmd-QUERY) - map) - "Keymap for `erc-nicklist-mode'.") - -(define-derived-mode erc-nicklist-mode fundamental-mode - "Nicklist" - "Major mode for the ERC nicklist buffer." - (setq buffer-read-only t)) - -(defun erc-nicklist-call-erc-command (command point buffer window) - "Call an ERC COMMAND. - -Depending on what COMMAND is, it's called with one of POINT, BUFFER, -or WINDOW as arguments." - (when command - (let* ((p (text-properties-at point)) - (b (plist-get p 'erc-nicklist-channel))) - (if (memq command '(erc-nicklist-quit ignore)) - (funcall command window) - ;; EEEK! Horrble, but it's the only way we can ensure the - ;; response goes to the correct buffer. - (erc-set-active-buffer b) - (switch-to-buffer-other-window b) - (funcall command (plist-get p 'erc-nicklist-nick)))))) - -(defun erc-nicklist-cmd-QUERY (user &optional server) - "Opens a query buffer with USER." - ;; FIXME: find a way to switch to that buffer afterwards... - (let ((send (if server - (format "QUERY %s %s" user server) - (format "QUERY %s" user)))) - (erc-cmd-QUERY user) - t)) - -(defun erc-nicklist-kbd-cmd-QUERY (&optional window) - (interactive) - (let* ((p (text-properties-at (point))) - (server (plist-get p 'erc-nicklist-channel)) - (nick (plist-get p 'erc-nicklist-nick)) - (nick (or (and (string-match "(\\(.*\\))" nick) - (match-string 1 nick)) - nick)) - (nick (or (and (string-match "\\+\\(.*\\)" nick) - (match-string 1 nick)) - nick)) - (send (format "QUERY %s %s" nick server))) - (switch-to-buffer-other-window server) - (erc-cmd-QUERY nick))) - - -(defvar erc-nicklist-menu - (let ((map (make-sparse-keymap "Action"))) - (define-key map [erc-cmd-WHOIS] - '("Whois" . erc-cmd-WHOIS)) - (define-key map [erc-cmd-DEOP] - '("Deop" . erc-cmd-DEOP)) - (define-key map [erc-cmd-MSG] - '("Message" . erc-cmd-MSG)) ;; TODO! - (define-key map [erc-nicklist-cmd-QUERY] - '("Query" . erc-nicklist-kbd-cmd-QUERY)) - (define-key map [ignore] - '("Cancel" . ignore)) - (define-key map [erc-nicklist-quit] - '("Close nicklist" . erc-nicklist-quit)) - map) - "Menu keymap for the ERC nicklist.") - -(defun erc-nicklist-quit (&optional window) - "Delete the ERC nicklist. - -Deletes WINDOW and stops updating the nicklist buffer." - (interactive) - (let ((b (window-buffer window))) - (with-current-buffer b - (set-buffer-modified-p nil) - (kill-this-buffer) - (remove-hook 'erc-channel-members-changed-hook 'erc-nicklist-update)))) - - -(defun erc-nicklist-kbd-menu () - "Show the ERC nicklist menu." - (interactive) - (let* ((point (point)) - (window (selected-window)) - (buffer (current-buffer))) - (with-current-buffer buffer - (erc-nicklist-call-erc-command - (car (x-popup-menu point - erc-nicklist-menu)) - point - buffer - window)))) - -(defun erc-nicklist-menu (&optional arg) - "Show the ERC nicklist menu. - -ARG is a parametrized event (see `interactive')." - (interactive "e") - (let* ((point (nth 1 (cadr arg))) - (window (car (cadr arg))) - (buffer (window-buffer window))) - (with-current-buffer buffer - (erc-nicklist-call-erc-command - (car (x-popup-menu arg - erc-nicklist-menu)) - point - buffer - window)))) - - -(defun erc-nicklist-channel-users-info (channel) - "Return a nick-sorted list of all users on CHANNEL. -Result are elements in the form (SERVER-USER . CHANNEL-USER). The -list has all the voiced users according to -`erc-nicklist-voiced-position'." - (let* ((nicks (erc-sort-channel-users-alphabetically - (with-current-buffer channel (erc-get-channel-user-list))))) - (if erc-nicklist-voiced-position - (let ((voiced-nicks (erc-remove-if-not - #'(lambda (x) - (null (erc-channel-user-voice (cdr x)))) - nicks)) - (devoiced-nicks (erc-remove-if-not - #'(lambda (x) - (erc-channel-user-voice - (cdr x))) - nicks))) - (cond ((eq erc-nicklist-voiced-position 'top) - (append devoiced-nicks voiced-nicks)) - ((eq erc-nicklist-voiced-position 'bottom) - (append voiced-nicks devoiced-nicks)))) - nicks))) - - - -(provide 'erc-nicklist) - -;;; erc-nicklist.el ends here -;; -;; Local Variables: -;; indent-tabs-mode: t -;; tab-width: 8 -;; coding: utf-8 -;; End: - -;; arch-tag: db37a256-87a7-4544-bd90-e5f16c9f5ca5 diff --git a/lisp/erc/erc-notify.el b/lisp/erc/erc-notify.el index d34e38ade43..9216631a9b4 100644 --- a/lisp/erc/erc-notify.el +++ b/lisp/erc/erc-notify.el @@ -9,7 +9,7 @@ ;; GNU Emacs is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 2, or (at your option) +;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; GNU Emacs is distributed in the hope that it will be useful, diff --git a/lisp/erc/erc-page.el b/lisp/erc/erc-page.el index de13c6037a6..535c871956a 100644 --- a/lisp/erc/erc-page.el +++ b/lisp/erc/erc-page.el @@ -6,7 +6,7 @@ ;; GNU Emacs is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 2, or (at your option) +;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; GNU Emacs is distributed in the hope that it will be useful, diff --git a/lisp/erc/erc-pcomplete.el b/lisp/erc/erc-pcomplete.el index f207bcc1b8b..a5a1bbaaf9e 100644 --- a/lisp/erc/erc-pcomplete.el +++ b/lisp/erc/erc-pcomplete.el @@ -10,7 +10,7 @@ ;; GNU Emacs is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 2, or (at your option) +;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; GNU Emacs is distributed in the hope that it will be useful, diff --git a/lisp/erc/erc-replace.el b/lisp/erc/erc-replace.el index 5e63f8d7d4f..8bc5fe3ba8d 100644 --- a/lisp/erc/erc-replace.el +++ b/lisp/erc/erc-replace.el @@ -10,7 +10,7 @@ ;; GNU Emacs is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 2, or (at your option) +;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; GNU Emacs is distributed in the hope that it will be useful, diff --git a/lisp/erc/erc-ring.el b/lisp/erc/erc-ring.el index 95c313a23f6..ae526c193c3 100644 --- a/lisp/erc/erc-ring.el +++ b/lisp/erc/erc-ring.el @@ -11,7 +11,7 @@ ;; GNU Emacs is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 2, or (at your option) +;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; GNU Emacs is distributed in the hope that it will be useful, diff --git a/lisp/erc/erc-services.el b/lisp/erc/erc-services.el index a2cc1b19782..e6f6c40d7e8 100644 --- a/lisp/erc/erc-services.el +++ b/lisp/erc/erc-services.el @@ -6,7 +6,7 @@ ;; GNU Emacs is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 2, or (at your option) +;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; GNU Emacs is distributed in the hope that it will be useful, diff --git a/lisp/erc/erc-sound.el b/lisp/erc/erc-sound.el index fdac1cc3be0..4d3d792b1b8 100644 --- a/lisp/erc/erc-sound.el +++ b/lisp/erc/erc-sound.el @@ -6,7 +6,7 @@ ;; GNU Emacs is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 2, or (at your option) +;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; GNU Emacs is distributed in the hope that it will be useful, diff --git a/lisp/erc/erc-speedbar.el b/lisp/erc/erc-speedbar.el index 0d88589838e..b11296cccca 100644 --- a/lisp/erc/erc-speedbar.el +++ b/lisp/erc/erc-speedbar.el @@ -10,7 +10,7 @@ ;; GNU Emacs is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 2, or (at your option) +;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; GNU Emacs is distributed in the hope that it will be useful, diff --git a/lisp/erc/erc-spelling.el b/lisp/erc/erc-spelling.el index a15ca17987f..3445be363ba 100644 --- a/lisp/erc/erc-spelling.el +++ b/lisp/erc/erc-spelling.el @@ -10,7 +10,7 @@ ;; GNU Emacs is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 2, or (at your option) +;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; GNU Emacs is distributed in the hope that it will be useful, diff --git a/lisp/erc/erc-stamp.el b/lisp/erc/erc-stamp.el index 0b8017ffe0b..d67dffeaede 100644 --- a/lisp/erc/erc-stamp.el +++ b/lisp/erc/erc-stamp.el @@ -10,7 +10,7 @@ ;; GNU Emacs is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 2, or (at your option) +;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; GNU Emacs is distributed in the hope that it will be useful, diff --git a/lisp/erc/erc-track.el b/lisp/erc/erc-track.el index 4a8b673d46b..f72a5be1de1 100644 --- a/lisp/erc/erc-track.el +++ b/lisp/erc/erc-track.el @@ -11,7 +11,7 @@ ;; GNU Emacs is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 2, or (at your option) +;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; GNU Emacs is distributed in the hope that it will be useful, diff --git a/lisp/erc/erc-truncate.el b/lisp/erc/erc-truncate.el index 440dc870e2c..599e49e706a 100644 --- a/lisp/erc/erc-truncate.el +++ b/lisp/erc/erc-truncate.el @@ -9,7 +9,7 @@ ;; GNU Emacs is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 2, or (at your option) +;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; GNU Emacs is distributed in the hope that it will be useful, diff --git a/lisp/erc/erc-xdcc.el b/lisp/erc/erc-xdcc.el index ea1fa27bf4b..0aed1122b0e 100644 --- a/lisp/erc/erc-xdcc.el +++ b/lisp/erc/erc-xdcc.el @@ -9,7 +9,7 @@ ;; GNU Emacs is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 2, or (at your option) +;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; GNU Emacs is distributed in the hope that it will be useful, diff --git a/lisp/erc/erc.el b/lisp/erc/erc.el index d6875ffc4af..d5a823ac825 100644 --- a/lisp/erc/erc.el +++ b/lisp/erc/erc.el @@ -17,7 +17,7 @@ ;; GNU Emacs is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 2, or (at your option) +;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; GNU Emacs is distributed in the hope that it will be useful, |