diff options
| author | Miles Bader | 2007-04-01 13:36:38 +0000 |
|---|---|---|
| committer | Miles Bader | 2007-04-01 13:36:38 +0000 |
| commit | ff59d266c7dcb9c6f7cc7ff7942510bda288e167 (patch) | |
| tree | 9cc762d166a00ae8d02c9f079890afb68125072e | |
| parent | 25c8c1594fe7ba177ec0621260304181b7052af3 (diff) | |
| download | emacs-ff59d266c7dcb9c6f7cc7ff7942510bda288e167.tar.gz emacs-ff59d266c7dcb9c6f7cc7ff7942510bda288e167.zip | |
Release ERC 5.2.
I have updated the version of ERC to 5.2, since it fixes a bug with C-c
C-SPC being bound globally by default. For the full list of changes in
this version, see etc/ERC-NEWS.
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-687
Creator: Michael Olson <mwolson@gnu.org>
| -rw-r--r-- | etc/ChangeLog | 5 | ||||
| -rw-r--r-- | etc/ERC-NEWS | 252 | ||||
| -rw-r--r-- | lisp/erc/ChangeLog | 1516 | ||||
| -rw-r--r-- | lisp/erc/ChangeLog.06 | 1457 | ||||
| -rw-r--r-- | lisp/erc/erc-autoaway.el | 125 | ||||
| -rw-r--r-- | lisp/erc/erc-backend.el | 198 | ||||
| -rw-r--r-- | lisp/erc/erc-button.el | 16 | ||||
| -rw-r--r-- | lisp/erc/erc-capab.el | 30 | ||||
| -rw-r--r-- | lisp/erc/erc-compat.el | 8 | ||||
| -rw-r--r-- | lisp/erc/erc-fill.el | 11 | ||||
| -rw-r--r-- | lisp/erc/erc-ibuffer.el | 3 | ||||
| -rw-r--r-- | lisp/erc/erc-identd.el | 34 | ||||
| -rw-r--r-- | lisp/erc/erc-log.el | 78 | ||||
| -rw-r--r-- | lisp/erc/erc-match.el | 9 | ||||
| -rw-r--r-- | lisp/erc/erc-menu.el | 7 | ||||
| -rw-r--r-- | lisp/erc/erc-netsplit.el | 2 | ||||
| -rw-r--r-- | lisp/erc/erc-networks.el | 8 | ||||
| -rw-r--r-- | lisp/erc/erc-notify.el | 5 | ||||
| -rw-r--r-- | lisp/erc/erc-pcomplete.el | 4 | ||||
| -rw-r--r-- | lisp/erc/erc-ring.el | 3 | ||||
| -rw-r--r-- | lisp/erc/erc-services.el | 100 | ||||
| -rw-r--r-- | lisp/erc/erc-speedbar.el | 5 | ||||
| -rw-r--r-- | lisp/erc/erc-spelling.el | 40 | ||||
| -rw-r--r-- | lisp/erc/erc-stamp.el | 18 | ||||
| -rw-r--r-- | lisp/erc/erc-track.el | 187 | ||||
| -rw-r--r-- | lisp/erc/erc.el | 354 | ||||
| -rw-r--r-- | man/ChangeLog | 4 | ||||
| -rw-r--r-- | man/erc.texi | 296 |
28 files changed, 3002 insertions, 1773 deletions
diff --git a/etc/ChangeLog b/etc/ChangeLog index b31384e71a0..4b9f3e0c150 100644 --- a/etc/ChangeLog +++ b/etc/ChangeLog | |||
| @@ -1,3 +1,8 @@ | |||
| 1 | 2007-04-01 Michael Olson <mwolson@gnu.org> | ||
| 2 | |||
| 3 | * ERC-NEWS: Update for the ERC 5.2 release. Most of these entries | ||
| 4 | were for previously-committed changes. | ||
| 5 | |||
| 1 | 2007-03-31 Michael Albinus <michael.albinus@gmx.de> | 6 | 2007-03-31 Michael Albinus <michael.albinus@gmx.de> |
| 2 | 7 | ||
| 3 | * PROBLEMS: Remove Tramp problem; it has been fixed. | 8 | * PROBLEMS: Remove Tramp problem; it has been fixed. |
diff --git a/etc/ERC-NEWS b/etc/ERC-NEWS index dd5c113c195..e7b0dcb81bf 100644 --- a/etc/ERC-NEWS +++ b/etc/ERC-NEWS | |||
| @@ -3,8 +3,7 @@ ERC NEWS -*- outline -*- | |||
| 3 | Copyright (C) 2006, 2007 Free Software Foundation, Inc. | 3 | Copyright (C) 2006, 2007 Free Software Foundation, Inc. |
| 4 | See the end of the file for license conditions. | 4 | See the end of the file for license conditions. |
| 5 | 5 | ||
| 6 | 6 | * Changes in ERC 5.2 | |
| 7 | * Changes in ERC 5.2 (stable pre-release for Emacs 22) | ||
| 8 | 7 | ||
| 9 | ** M-x erc RET now starts ERC. | 8 | ** M-x erc RET now starts ERC. |
| 10 | `erc-select' has been changed to `erc'. `erc-select' still remains as | 9 | `erc-select' has been changed to `erc'. `erc-select' still remains as |
| @@ -12,37 +11,173 @@ an alias of `erc'. Likewise, `erc-select-ssl' has been renamed to | |||
| 12 | `erc-ssl' with `erc-select-ssl' as its alias. The function that was | 11 | `erc-ssl' with `erc-select-ssl' as its alias. The function that was |
| 13 | known as `erc' is now `erc-open'. | 12 | known as `erc' is now `erc-open'. |
| 14 | 13 | ||
| 14 | ** Open query buffers by default when private messages are received. | ||
| 15 | The default value of `erc-auto-query' has been changed to 'bury. | ||
| 16 | |||
| 15 | ** New command: /RECONNECT | 17 | ** New command: /RECONNECT |
| 16 | This command tries to reconnect to the current IRC server exactly | 18 | This command tries to reconnect to the current IRC server exactly |
| 17 | once. It does not work in server buffers (throws an error before the | 19 | once. It does not work in server buffers (throws an error before the |
| 18 | command is run), but works in query and channel buffers. | 20 | command is run), but works in query and channel buffers. |
| 19 | 21 | ||
| 22 | ** In MS-DOS environments, look for _ercrc.el rather than .ercrc.el. | ||
| 23 | |||
| 24 | ** Fix buggy interaction with multi-tty Emacs. | ||
| 25 | |||
| 26 | ** After running /QUIT, make sure that the IRC process is killed within | ||
| 27 | 4 seconds. Freenode, in particular, needs this at times. | ||
| 28 | |||
| 29 | ** If the IRC process has not responded to our PINGs within a certain | ||
| 30 | time, kill it and restart the connection. See | ||
| 31 | `erc-server-auto-reconnect', `erc-server-reconnect-attempts', | ||
| 32 | `erc-server-reconnect-timeout', `erc-server-send-ping-interval', and | ||
| 33 | `erc-server-send-ping-timeout' to fine-tune ERC's behavior. | ||
| 34 | |||
| 35 | ** Avoid getting into an infinite connection loop. | ||
| 36 | Previously, this could happen if your nick was banned, you were using | ||
| 37 | Tor, incorrect information was entered, or the connection was bad. | ||
| 38 | |||
| 39 | ** Make ban messages less confusing. | ||
| 40 | |||
| 41 | ** Restore the point correctly when reconnecting to an IRC server. | ||
| 42 | |||
| 43 | ** Make /IGNORE and /UNIGNORE prompt to determine whether their | ||
| 44 | argument is a user or a regexp. This results in less-confusing | ||
| 45 | behavior when trying to ignore someone who has a bracket in their | ||
| 46 | nick. | ||
| 47 | |||
| 48 | ** Make the default port "6667" rather than "ircd", because some | ||
| 49 | operating systems don't know what port "ircd" maps to. | ||
| 50 | |||
| 51 | ** Fix several bugs in erc-iswitchb (C-c C-b). | ||
| 52 | |||
| 53 | ** Clean up internal documentation. | ||
| 54 | Special thanks go to Juanma Barranquero for the thorough vetting of | ||
| 55 | ERC's internal documentation. | ||
| 56 | |||
| 57 | ** Display a more informative message when a module is not found. | ||
| 58 | |||
| 59 | ** Fix a bug where paths were being colored like IRC commands. | ||
| 60 | |||
| 61 | ** In the customize interface for `erc-modules', add the name of the module. | ||
| 62 | This makes it easier to find modules by name. | ||
| 63 | |||
| 64 | ** erc-server-send-ping-interval: Change to use a default of 30 seconds. | ||
| 65 | |||
| 66 | ** Some files which are included with the release of ERC 5.2 will not | ||
| 67 | appear in the version of ERC that is bundled with Emacs 22. These | ||
| 68 | extras files may be found at: | ||
| 69 | |||
| 70 | o http://ftp.gnu.org/gnu/erc/erc-5.2-extras.tar.gz, or | ||
| 71 | o http://ftp.gnu.org/gnu/erc/erc-5.2-extras.zip. | ||
| 72 | |||
| 73 | ** Renamed files | ||
| 74 | |||
| 75 | Several files were renamed so as to make them distinct to users of the | ||
| 76 | MS-DOS operating system. | ||
| 77 | |||
| 78 | o erc-autojoin.el -> erc-join.el | ||
| 79 | o erc-complete.el -> erc-hecomplete.el | ||
| 80 | o erc-nickserv.el -> erc-services.el | ||
| 81 | o ChangeLog.NNNN -> ChangeLog.NN | ||
| 82 | |||
| 83 | ** Header line changes | ||
| 84 | |||
| 85 | *** Remove "[IRC]" from the header line. | ||
| 86 | |||
| 87 | *** Add the %l format character to `erc-header-line-format', | ||
| 88 | |||
| 89 | *** Document how to remove the header line. | ||
| 90 | Namely: (setq erc-header-line-format nil). | ||
| 91 | |||
| 20 | ** New options | 92 | ** New options |
| 21 | 93 | ||
| 22 | *** erc-server-reconnect-attempts: Determines the number of | 94 | *** erc-server-reconnect-attempts: Determines the number of |
| 23 | reconnection attempts that ERC will make per server. | 95 | reconnection attempts that ERC will make per server. |
| 24 | 96 | ||
| 25 | *** erc-server-reconnect-timeout: New option that determines the | 97 | *** erc-server-reconnect-timeout: Determines the amount of time, |
| 26 | amount of time, in seconds, that ERC will wait between successive | 98 | in seconds, that ERC will wait between successive reconnect attempts. |
| 27 | reconnect attempts. | 99 | |
| 100 | *** erc-server-send-ping-timeout: Determines when to consider a connection | ||
| 101 | stalled and restart it. The default is after 120 seconds. | ||
| 102 | |||
| 103 | *** erc-system-name: Determines the system name to use when logging in. | ||
| 104 | The default is to figure this out by calling `system-name'. | ||
| 28 | 105 | ||
| 29 | ** New face: `erc-my-nick-face' | 106 | ** New face: `erc-my-nick-face' |
| 30 | This helps make it easier to distinguish messages sent by yourself | 107 | This helps make it easier to distinguish messages sent by yourself |
| 31 | from messages sent by other users when the value of the variable | 108 | from messages sent by other users when the value of the variable |
| 32 | `erc-show-my-nick' is non-nil. | 109 | `erc-show-my-nick' is non-nil. |
| 33 | 110 | ||
| 111 | ** Namespace changes | ||
| 112 | |||
| 113 | *** New macro: `erc-with-server-buffer' | ||
| 114 | Switches to the current ERC server buffer and runs some code. If no | ||
| 115 | server buffer is available, return nil. This is a useful way to | ||
| 116 | access variables in the server buffer. | ||
| 117 | |||
| 118 | *** New function: `erc-open-server-buffer-p' | ||
| 119 | Returns non-nil if the given buffer is an ERC server buffer that has | ||
| 120 | an open IRC process. | ||
| 121 | |||
| 122 | *** New function: `erc-format-lag-time' | ||
| 123 | Returns the estimated lag time to server, `erc-server-lag'. | ||
| 124 | |||
| 125 | *** Renamed items | ||
| 126 | |||
| 127 | o `erc-server-setup-periodical-server-ping' is now | ||
| 128 | `erc-server-setup-periodical-ping' | ||
| 129 | |||
| 130 | o `erc-away-p' is now `erc-away-time' | ||
| 131 | |||
| 132 | ** Changes to the ERC manual | ||
| 133 | |||
| 134 | *** New section: Sample Session. | ||
| 135 | Describes a sample ERC session for connecting to the #emacs channel on | ||
| 136 | Freenode. Also mention the #erc channel. | ||
| 137 | |||
| 138 | *** New section: Special Features. | ||
| 139 | Describes some of the special features of ERC. | ||
| 140 | |||
| 141 | *** Getting Started: Mention ~/.emacs.d/.ercrc.el and the Customize | ||
| 142 | interface. | ||
| 143 | |||
| 144 | *** Development: Mention ErcDevelopment page on emacswiki.org. | ||
| 145 | |||
| 146 | *** Tips and Tricks: Remove empty section for now. | ||
| 147 | |||
| 148 | *** Options: Mention how to see available ERC options. | ||
| 149 | |||
| 150 | *** Sample Configuration: Add an example of how to configure ERC. | ||
| 151 | |||
| 34 | ** New modules | 152 | ** New modules |
| 35 | 153 | ||
| 154 | *** Autoaway (erc-autoaway.el) | ||
| 155 | |||
| 156 | **** Make this much more reliable. | ||
| 157 | |||
| 158 | **** Avoid duplicate messages when coming back from being away. | ||
| 159 | |||
| 160 | **** Fix bug where autoaway was enabled just by loading the file. | ||
| 161 | |||
| 162 | *** BBDB (erc-bbdb.el) | ||
| 163 | |||
| 164 | **** Display information on how to cancel merging of info or how to | ||
| 165 | create a new John Doe record. | ||
| 166 | |||
| 167 | **** Make it so that information from /whois continues to come in, even | ||
| 168 | while prompting for a record to merge. | ||
| 169 | |||
| 170 | **** Make hitting C-g correctly abort merging the record. | ||
| 171 | |||
| 36 | *** Capab identify (erc-capab.el) | 172 | *** Capab identify (erc-capab.el) |
| 37 | Mark users who haven't identified to NickServ on servers supporting | 173 | Mark users who haven't identified to NickServ on servers supporting |
| 38 | CAPAB IDENTIFY-MSG. | 174 | CAPAB IDENTIFY-MSG. |
| 39 | 175 | ||
| 40 | ** Changes and additions to modules | 176 | ** Changes and additions to modules |
| 41 | 177 | ||
| 42 | *** Channel lists (erc-list.el) | 178 | *** Button (erc-button.el) |
| 43 | 179 | ||
| 44 | **** This has been removed from Emacs 22, since a major contributor | 180 | **** Make <backtab> go to the previous button. |
| 45 | to it has not yet assigned changes. | ||
| 46 | 181 | ||
| 47 | *** Channel tracking (erc-track.el) | 182 | *** Channel tracking (erc-track.el) |
| 48 | 183 | ||
| @@ -50,6 +185,103 @@ to it has not yet assigned changes. | |||
| 50 | This helps people using a mouse know that they are buttons and can be | 185 | This helps people using a mouse know that they are buttons and can be |
| 51 | clicked on. | 186 | clicked on. |
| 52 | 187 | ||
| 188 | **** Fix issue where C-c C-SPC could conflict with user-defined keybindings. | ||
| 189 | This is accomplished by moving these bindings to their own global | ||
| 190 | minor mode. Now the default is to check whether the user has bound | ||
| 191 | something to C-c C-SPC or C-c C-@. If they have, prompt them about | ||
| 192 | whether to really override that binding. This also has the effect of | ||
| 193 | preventing ERC from clobbering rcirc's keybinding, unless this is | ||
| 194 | desired. See `erc-track-enable-keybindings' for more details. | ||
| 195 | |||
| 196 | **** New option: erc-track-enable-keybindings. | ||
| 197 | Determine whether or not to enable the C-c C-SPC and C-c C-@ | ||
| 198 | keybindings. The default is to ask whether to do this if a binding to | ||
| 199 | these keys already exists. It can also be set to t or nil to always | ||
| 200 | bind or never bind, respectively. | ||
| 201 | |||
| 202 | **** Remove `track-when-inactive' module. | ||
| 203 | See `erc-track-when-inactive' for further details. | ||
| 204 | |||
| 205 | **** New option: erc-track-when-inactive. | ||
| 206 | This option replaces the track-when-inactive module. Set it to | ||
| 207 | non-nil to track activity even in visible buffers when inactive. The | ||
| 208 | default is nil. | ||
| 209 | |||
| 210 | **** Remove the `track-modified-channels' alias for the `track' module. | ||
| 211 | |||
| 212 | *** DCC support (erc-dcc.el) | ||
| 213 | |||
| 214 | **** Add Usage section to Commentary. | ||
| 215 | |||
| 216 | **** Fix a bug in the server message output. | ||
| 217 | |||
| 218 | *** Filling (erc-fill.el) | ||
| 219 | |||
| 220 | **** Fix bug involving messages that start with one or more blank lines. | ||
| 221 | |||
| 222 | *** Identd (erc-identd.el) | ||
| 223 | |||
| 224 | **** New option `erc-identd-port' | ||
| 225 | Specifies the port to use if none is given as an argument to | ||
| 226 | `erc-identd-start'. This is placed in the new customization group | ||
| 227 | `erc-identd'. | ||
| 228 | |||
| 229 | **** New function: `erc-identd-quickstart' | ||
| 230 | Ignores any arguments and calls `erc-identd-start'. | ||
| 231 | |||
| 232 | *** Channel lists (erc-list.el) | ||
| 233 | |||
| 234 | **** Enable by default, except in the version of ERC bundled with Emacs 22. | ||
| 235 | |||
| 236 | *** Logging (erc-log.el) | ||
| 237 | |||
| 238 | **** Make sure filenames are safe to use before writing to them. | ||
| 239 | |||
| 240 | **** Save all log buffers when exiting Emacs. | ||
| 241 | |||
| 242 | **** erc-generate-log-file-name-function: Add option for | ||
| 243 | `erc-generate-log-file-name-network', which is a new function that | ||
| 244 | uses the network name rather than the server name when possible. | ||
| 245 | |||
| 246 | *** Menu (erc-menu.el) | ||
| 247 | |||
| 248 | **** Name the menu "ERC" instead of "IRC" to avoid confusion with rcirc | ||
| 249 | and other clients. | ||
| 250 | |||
| 251 | **** Make this into a proper module and load it by default. | ||
| 252 | |||
| 253 | **** Add "Current channel" submenu. | ||
| 254 | |||
| 255 | *** Networks (erc-networks.el) | ||
| 256 | |||
| 257 | **** Add support for Ars OpenIRC, LinuxChix, and OFTC networks. | ||
| 258 | |||
| 259 | **** Escape periods in Konfido.Net and Kewl.Org. | ||
| 260 | |||
| 261 | *** Internet services / Nickserv (erc-nickserv.el) | ||
| 262 | |||
| 263 | **** Add new 'both method for the `erc-nickserv-identify-mode' option | ||
| 264 | and make it the default. This tries to do the right thing both when a | ||
| 265 | known nickserv message exists for an IRC network, and when it does | ||
| 266 | not. | ||
| 267 | |||
| 268 | **** Support nickserv authentication on OFTC, Azzurra, Ars, and QuakeNet. | ||
| 269 | |||
| 270 | **** Support authentication on BitlBee. | ||
| 271 | |||
| 272 | **** Make source code easier to understand by using accessor functions. | ||
| 273 | |||
| 274 | *** Sound support (erc-sound.el) | ||
| 275 | |||
| 276 | **** Make this work with both Emacs 21 and Emacs 22. | ||
| 277 | |||
| 278 | *** Timestamps (erc-stamp.el) | ||
| 279 | |||
| 280 | **** Exclude the newline from the erc-timestamp field. | ||
| 281 | |||
| 282 | **** New function: `erc-toggle-timestamps'. | ||
| 283 | Toggles display of timestamps. | ||
| 284 | |||
| 53 | * Changes in ERC 5.1.4 | 285 | * Changes in ERC 5.1.4 |
| 54 | 286 | ||
| 55 | ** Make find-function and find-variable work in Emacs 22 for | 287 | ** Make find-function and find-variable work in Emacs 22 for |
| @@ -156,6 +388,10 @@ to make the BBDB buffer electric. This defaults to not electric. | |||
| 156 | 388 | ||
| 157 | **** Don't create an extra buffer for the identd process. | 389 | **** Don't create an extra buffer for the identd process. |
| 158 | 390 | ||
| 391 | *** Channel lists (erc-list.el) | ||
| 392 | |||
| 393 | **** Enable by default, except in the version of ERC bundled with Emacs 22. | ||
| 394 | |||
| 159 | *** Logging (erc-log.el) | 395 | *** Logging (erc-log.el) |
| 160 | 396 | ||
| 161 | **** By default, don't insert old logs when opening an ERC buffer. | 397 | **** By default, don't insert old logs when opening an ERC buffer. |
diff --git a/lisp/erc/ChangeLog b/lisp/erc/ChangeLog index 62e7eaa21fe..70ffa4ede48 100644 --- a/lisp/erc/ChangeLog +++ b/lisp/erc/ChangeLog | |||
| @@ -1,3 +1,259 @@ | |||
| 1 | 2007-04-01 Michael Olson <mwolson@gnu.org> | ||
| 2 | |||
| 3 | * erc.el (erc-version-string): Release ERC 5.2. | ||
| 4 | |||
| 5 | * erc-auto.in, erc-chess.el, erc-list.el, erc-speak.el: | ||
| 6 | * erc-viper.el: Update copyright notices. | ||
| 7 | |||
| 8 | * erc.texi: Make Emacs Lisp source code in this document | ||
| 9 | essentially public domain. Update version to 5.2. | ||
| 10 | (Obtaining ERC): Mention extras tarball. | ||
| 11 | (Releases): Mention local GNU mirror. | ||
| 12 | (Sample Configuration): Remove notice. | ||
| 13 | |||
| 14 | * FOR-RELEASE (5.3): Add item for erc-nicklist. | ||
| 15 | Mark NEWS as done. Mark extras tarball as done. | ||
| 16 | |||
| 17 | * Makefile (VERSION): Increment to 5.2. | ||
| 18 | (TESTING): Remove. | ||
| 19 | (EXTRAS): New variable containing the contents of our "Emacs 22 | ||
| 20 | extras" tarball. | ||
| 21 | (SOURCE): Remove $(TESTING). | ||
| 22 | (MISC): Add COPYING and ChangeLog.06. Fix ChangeLog.NNNN -> | ||
| 23 | ChangeLog.NN. | ||
| 24 | (release): Use $(SNAPDIR) instead of erc-$(VERSION). | ||
| 25 | (extras): New rule which implements the building of the extras | ||
| 26 | tarball. | ||
| 27 | (upload-extras): New rule to upload the extras tarball. It's | ||
| 28 | yucky to replicate upload, but oh well. | ||
| 29 | |||
| 30 | * NEWS: Mention extras tarball. Note which files have been | ||
| 31 | renamed. Note that erc-list is enabled by default, except in | ||
| 32 | Emacs 22. | ||
| 33 | |||
| 34 | * README.extras: New file which serves as a README for the extras | ||
| 35 | tarball. | ||
| 36 | |||
| 37 | 2007-03-31 Michael Olson <mwolson@gnu.org> | ||
| 38 | |||
| 39 | * NEWS: Update for the 5.2 release. | ||
| 40 | |||
| 41 | * FOR-RELEASE: Finish up 5.2 manual item. Add documentation item | ||
| 42 | for 5.3. | ||
| 43 | |||
| 44 | * erc.texi (Sample Session): Flesh out. Mention #erc. | ||
| 45 | (Modules): Defer to 5.3 release. | ||
| 46 | (Advanced Usage): Move Sample Configuration chapter ahead of | ||
| 47 | unfinished chapters. | ||
| 48 | (Sample Configuration): Write. | ||
| 49 | (Options): Mention how to see available ERC options. Defer to 5.3 | ||
| 50 | release. | ||
| 51 | (Tips and Tricks): Remove, since it seems better to just include | ||
| 52 | tips and tricks in the sample configuration, commented out. | ||
| 53 | |||
| 54 | * erc-bbdb.el (erc-bbdb-search-name-and-create): Make prompt more | ||
| 55 | informative about how to skip merging. | ||
| 56 | (erc-bbdb-insinuate-and-show-entry-1): Move contents of | ||
| 57 | erc-bbdb-insinuate-and-show-entry here. | ||
| 58 | (erc-bbdb-insinuate-and-show-entry): Run | ||
| 59 | erc-bbdb-insinuate-and-show-entry-1 "outside" of the calling | ||
| 60 | function, so that we can avoid triggering a process-filter error | ||
| 61 | if the user hits C-g. | ||
| 62 | |||
| 63 | 2007-03-30 Michael Olson <mwolson@gnu.org> | ||
| 64 | |||
| 65 | * FOR-RELEASE: Solve C-c C-SPC keybinding dilemma. | ||
| 66 | |||
| 67 | * erc-autoaway.el (erc-autoaway-idle-method): Use `if' rather than | ||
| 68 | `cond' and `set' rather than `set-default'. | ||
| 69 | |||
| 70 | * erc-log.el: Avoid compiler warning by requiring erc-network | ||
| 71 | during compilation. | ||
| 72 | (erc-generate-log-file-name-function): Add tag to each option. | ||
| 73 | Add erc-generate-log-file-name-network. | ||
| 74 | (erc-generate-log-file-name-network): New function which generates | ||
| 75 | a log file name that uses network name rather than server name, | ||
| 76 | when possible. | ||
| 77 | |||
| 78 | * erc-track.el (track): Assimilate track-when-inactive module, | ||
| 79 | since there's no need to have two modules in one file -- an option | ||
| 80 | will do. Remove track-modified-channels alias. Call | ||
| 81 | erc-track-minor-mode-maybe, and tear down the minor mode when | ||
| 82 | disabling. | ||
| 83 | (erc-track-when-inactive): New option which determines whether to | ||
| 84 | track visible buffers when inactive. The default is not to do so. | ||
| 85 | (erc-track-visibility): Mention erc-track-when-inactive. | ||
| 86 | (erc-buffer-visible): Use erc-track-when-inactive. | ||
| 87 | (erc-track-enable-keybindings): New option which determines | ||
| 88 | whether to enable the global-level tracking keybindings. The | ||
| 89 | default is to do so, unless they would override another binding, | ||
| 90 | in which case we prompt the user about it. | ||
| 91 | (erc-track-minor-mode-map): Move global keybindings here. | ||
| 92 | (erc-track-minor-mode): New minor mode which only enables the | ||
| 93 | keybindings and does nothing else. | ||
| 94 | (erc-track-minor-mode-maybe): New function which starts | ||
| 95 | erc-track-minor-mode, but only if it hasn't already been started, | ||
| 96 | an ERC buffer exists, and the user OK's it, depending on the value | ||
| 97 | of `erc-track-enable-keybindings'. | ||
| 98 | (erc-track-switch-buffer): Display a message if someone calls this | ||
| 99 | without first enabling erc-track-mode. | ||
| 100 | |||
| 101 | 2007-03-17 Michael Olson <mwolson@gnu.org> | ||
| 102 | |||
| 103 | * erc.texi (Development): Mention ErcDevelopment page on | ||
| 104 | emacswiki. | ||
| 105 | (Getting Started): Mention ~/.emacs.d/.ercrc.el and the Customize | ||
| 106 | interface. | ||
| 107 | (Sample Session): New section that has a very rough draft for a | ||
| 108 | sample ERC session. | ||
| 109 | (Special Features): New section that explains some of the special | ||
| 110 | features of ERC. Taken from ErcFeatures on emacswiki, with | ||
| 111 | enhancements. | ||
| 112 | |||
| 113 | 2007-03-12 Diane Murray <disumu@x3y2z1.net> | ||
| 114 | |||
| 115 | * erc-autoaway.el (erc-autoaway-idle-method): When setting the new | ||
| 116 | value, disable and re-enable `erc-autoaway-mode' only if it was | ||
| 117 | already enabled. This fixes a bug where autoaway was enabled just | ||
| 118 | by loading the file. | ||
| 119 | |||
| 120 | 2007-03-10 Diane Murray <disumu@x3y2z1.net> | ||
| 121 | |||
| 122 | * erc-capab.el: Added more information to the Usage section. | ||
| 123 | (erc-capab-identify-prefix): Doc fix. | ||
| 124 | (erc-capab-identify-unidentified): New face. | ||
| 125 | (290): Removed. Definition moved to erc-backend.el. | ||
| 126 | (erc-capab-identify-send-messages): Renamed from | ||
| 127 | `erc-capab-send-identify-messages'. | ||
| 128 | (erc-capab-identify-setup): Use it. | ||
| 129 | (erc-capab-identify-get-unidentified-nickname): Renamed from | ||
| 130 | `erc-capab-get-unidentified-nickname'. | ||
| 131 | (erc-capab-identify-add-prefix): Use it. Use | ||
| 132 | `erc-capab-identify-unidentified' as the face. | ||
| 133 | |||
| 134 | * erc-backend.el (290): Moved here from erc-capab.el. | ||
| 135 | |||
| 136 | * erc.el (erc-select): Added an autoload cookie. | ||
| 137 | (erc-message-type-member, erc-restore-text-properties): Use | ||
| 138 | `erc-get-parsed-vector'. | ||
| 139 | (erc-auto-query): Set the default to 'bury since many new users | ||
| 140 | expect private messages from others to be in dedicated query | ||
| 141 | buffers, not the server buffer. | ||
| 142 | (erc-common-server-suffixes): Use "freenode" for freenode.net, not | ||
| 143 | "OPN". Added oftc.net. | ||
| 144 | |||
| 145 | * NEWS: Added note about erc-auto-query's new default setting. | ||
| 146 | |||
| 147 | 2007-03-03 Michael Olson <mwolson@gnu.org> | ||
| 148 | |||
| 149 | * erc.el (erc-open, erc): Docfixes. | ||
| 150 | |||
| 151 | 2007-03-02 Michael Olson <mwolson@gnu.org> | ||
| 152 | |||
| 153 | * FOR-RELEASE: Make section for 5.3 release and move erc-backend | ||
| 154 | cleanup there. Awaiting discussion before doing other things. | ||
| 155 | Add tasks for merging filename changes from the 5.2 release | ||
| 156 | branch, and for making a tarball of modules not in Emacs 22. Add | ||
| 157 | item to remind me to update NEWS. Mark backtab entry as done. | ||
| 158 | |||
| 159 | * erc-button.el (button): Add call to `erc-button-add-keys'. | ||
| 160 | (erc-button-keys-added): New variable tracking whether we've added | ||
| 161 | the keys yet. | ||
| 162 | (erc-button-add-keys): New function that adds the <backtab> key to | ||
| 163 | erc-mode-map. | ||
| 164 | |||
| 165 | * erc.texi: Change version to 5.2 (pre-release). | ||
| 166 | |||
| 167 | 2007-02-15 Michael Olson <mwolson@gnu.org> | ||
| 168 | |||
| 169 | * CREDITS: Update. | ||
| 170 | |||
| 171 | * erc-backend.el (erc-server-send-ping-interval): Change to use a | ||
| 172 | default of 30 seconds. Improve customize interface. | ||
| 173 | (erc-server-send-ping-timeout): New option that determines when to | ||
| 174 | consider a connection stalled and restart it. The default is | ||
| 175 | after 120 seconds. | ||
| 176 | (erc-server-send-ping): Use erc-server-send-ping-timeout instead | ||
| 177 | of erc-server-send-ping-interval. If | ||
| 178 | erc-server-send-ping-timeout is nil, do not ever kill and restart | ||
| 179 | a hung IRC process. | ||
| 180 | |||
| 181 | * erc.el (erc-modules): Include the name of the module in its | ||
| 182 | description. This should make it easier for people to find and | ||
| 183 | enable a particular module. | ||
| 184 | |||
| 185 | 2007-02-15 Vivek Dasmohapatra <vivek@etla.org> | ||
| 186 | |||
| 187 | * erc.el (erc-cmd-RECONNECT): Kill old process if it is still | ||
| 188 | alive. | ||
| 189 | (erc-message-english-PART): Properly escape "%" characters in | ||
| 190 | reason. | ||
| 191 | |||
| 192 | * erc-backend.el (erc-server-reconnecting): New variable that is | ||
| 193 | set when the user requests a reconnect, but the old process is | ||
| 194 | still alive. This forces the reconnect to work even though the | ||
| 195 | process is killed manually during reconnect. | ||
| 196 | (erc-server-connect): Initialize it. | ||
| 197 | (erc-server-reconnect-p): Use it. | ||
| 198 | (erc-process-sentinel-1): Set it to nil after the first reconnect | ||
| 199 | attempt. | ||
| 200 | |||
| 201 | 2007-02-07 Diane Murray <disumu@x3y2z1.net> | ||
| 202 | |||
| 203 | * erc-menu.el (erc-menu-definition): Fixed so that the separator | ||
| 204 | is between "Current channel" and "Pals, fools and other keywords", | ||
| 205 | not at the bottom of the "Current channel" submenu. | ||
| 206 | |||
| 207 | 2007-01-25 Diane Murray <disumu@x3y2z1.net> | ||
| 208 | |||
| 209 | * erc-networks.el (erc-server-alist): Removed SSL server for now | ||
| 210 | since `erc-server-select' doesn't know to use `erc-ssl'. | ||
| 211 | |||
| 212 | * erc-networks.el (erc-server-alist, erc-networks-alist): Added | ||
| 213 | definitions for oftc.net. | ||
| 214 | |||
| 215 | * erc-services.el (erc-nickserv-alist): Fixed OFTC message regexp. | ||
| 216 | |||
| 217 | 2007-01-22 Michael Olson <mwolson@gnu.org> | ||
| 218 | |||
| 219 | * erc-backend.el (erc-server-error-occurred): New variable that | ||
| 220 | indicates when an error has been signaled by the server. This | ||
| 221 | should fix an infinite reconnect bug when giving some servers a | ||
| 222 | bogus :full-name. Thanks to Angelina Carlton for the report. | ||
| 223 | (erc-server-connect): Initialize erc-server-error-occurred. | ||
| 224 | (erc-server-reconnect-p): Use it. | ||
| 225 | (ERROR): Set it. | ||
| 226 | |||
| 227 | * erc-services.el (erc-nickserv-alist): Alphabetize and add Ars | ||
| 228 | and QuakeNet. Standardize look of entries. Fix type mismatch | ||
| 229 | error in customize interface. | ||
| 230 | (erc-nickserv-passwords): Alphabetize and add missing entries from | ||
| 231 | erc-nickserv-alist. | ||
| 232 | |||
| 233 | 2007-01-21 Michael Olson <mwolson@gnu.org> | ||
| 234 | |||
| 235 | * erc.el (erc-header-line-format): Document how to disable the | ||
| 236 | header line, and add a customization type for it. Also, make the | ||
| 237 | changes take effect immediately. | ||
| 238 | |||
| 239 | 2007-01-19 Michael Olson <mwolson@gnu.org> | ||
| 240 | |||
| 241 | * erc.texi (Modules): Document new menu module. Thanks to Leo | ||
| 242 | for noticing. | ||
| 243 | |||
| 244 | 2007-01-16 Diane Murray <disumu@x3y2z1.net> | ||
| 245 | |||
| 246 | * erc-stamp.el (erc-insert-timestamp-left): Fixed so that the | ||
| 247 | whitespace string filler is hidden correctly when timestamps are | ||
| 248 | hidden. | ||
| 249 | (erc-toggle-timestamps): New function to use instead of | ||
| 250 | `erc-show-timestamps' and `erc-hide-timestamps'. | ||
| 251 | |||
| 252 | * erc.el (erc-restore-text-properties): Moved here from | ||
| 253 | erc-fill.el since it could be useful in general. | ||
| 254 | |||
| 255 | * erc-fill.el (erc-restore-text-properties): Removed. | ||
| 256 | |||
| 1 | 2007-01-13 Michael Olson <mwolson@gnu.org> | 257 | 2007-01-13 Michael Olson <mwolson@gnu.org> |
| 2 | 258 | ||
| 3 | * erc.el (erc-command-regexp): New variable that is used to match | 259 | * erc.el (erc-command-regexp): New variable that is used to match |
| @@ -73,6 +329,10 @@ | |||
| 73 | (erc-format-lag-time): New function. | 329 | (erc-format-lag-time): New function. |
| 74 | (erc-update-mode-line-buffer): Use it. | 330 | (erc-update-mode-line-buffer): Use it. |
| 75 | 331 | ||
| 332 | 2007-01-10 Michael Olson <mwolson@gnu.org> | ||
| 333 | |||
| 334 | * erc.el: Fix typo in url-irc-function instructions. | ||
| 335 | |||
| 76 | 2007-01-09 Michael Olson <mwolson@gnu.org> | 336 | 2007-01-09 Michael Olson <mwolson@gnu.org> |
| 77 | 337 | ||
| 78 | * erc.el (erc-system-name): New option that determines the system | 338 | * erc.el (erc-system-name): New option that determines the system |
| @@ -89,1260 +349,10 @@ | |||
| 89 | (erc-menu-add, erc-menu-remove): New functions that add and remove | 349 | (erc-menu-add, erc-menu-remove): New functions that add and remove |
| 90 | the ERC menu. | 350 | the ERC menu. |
| 91 | 351 | ||
| 92 | 2006-12-28 Michael Olson <mwolson@gnu.org> | ||
| 93 | |||
| 94 | * erc-list.el: Change header to mention that this is part of ERC, | ||
| 95 | rather than GNU Emacs. | ||
| 96 | |||
| 97 | * erc-networks.el (erc-server-alist): Add Ars OpenIRC and | ||
| 98 | LinuxChix networks. Thanks to Angelina Carlton for mentioning | ||
| 99 | them. Properly escape periods in Konfido.Net and Kewl.Org. | ||
| 100 | (erc-networks-alist): Add entries for Ars and LinuxChix, though | ||
| 101 | the latter does not actually provide an announced network name. | ||
| 102 | |||
| 103 | * erc-services.el (erc-nickserv-identify-mode): Add 'both method, | ||
| 104 | which waits for a NickServ message if the network supports it, | ||
| 105 | otherwise sends the password after connecting. | ||
| 106 | (erc-nickserv-identify-mode): Default to 'both. | ||
| 107 | (erc-nickserv-passwords): Add OFTC and Azzurra to custom options. | ||
| 108 | (erc-nickserv-alist): Indentation fix. | ||
| 109 | (erc-nickserv-identify-on-connect) | ||
| 110 | (erc-nickserv-identify-on-nick-change): Handle 'both method. | ||
| 111 | |||
| 112 | 2006-12-28 Leo <sdl.web@gmail.com> (tiny change) | ||
| 113 | |||
| 114 | * erc.el (erc-iswitchb): Wrap body in unwind-protect so that | ||
| 115 | hitting C-g does not leave iswitchb-mode on. | ||
| 116 | |||
| 117 | 2006-12-27 Michael Olson <mwolson@gnu.org> | ||
| 118 | |||
| 119 | * erc.el (erc-cmd-RECONNECT): New command that calls | ||
| 120 | erc-server-reconnect. | ||
| 121 | |||
| 122 | * erc-backend.el (erc-server-reconnect-count): New server variable | ||
| 123 | that keeps track of reconnection attempts. | ||
| 124 | (erc-server-reconnect-attempts): New option that determines the | ||
| 125 | number of reconnection attempts that ERC will make per server. | ||
| 126 | (erc-server-reconnect-timeout): New option that determines the | ||
| 127 | amount of time, in seconds, that ERC will wait between successive | ||
| 128 | reconnect attempts. | ||
| 129 | (erc-server-reconnect): New function that reestablishes the | ||
| 130 | current IRC connection. Move some commands from | ||
| 131 | erc-process-sentinel-1 here. | ||
| 132 | (erc-process-sentinel-1): If we have been disconnected, loop until | ||
| 133 | we either reconnect or run out of attempts. | ||
| 134 | (erc-server-reconnect-p): Move higher and make this a defsubst, | ||
| 135 | since I'm worried about the current buffer changing from | ||
| 136 | underneath us. Implement limit of number of reconnect attempts.. | ||
| 137 | |||
| 138 | * erc.texi (Getting Started): Update for /RECONNECT command. | ||
| 139 | |||
| 140 | 2006-12-26 Michael Olson <mwolson@gnu.org> | ||
| 141 | |||
| 142 | * erc.el (erc-open): Restore old point correctly, or at least get | ||
| 143 | closer to doing so than before. | ||
| 144 | |||
| 145 | 2006-12-13 Leo <sdl.web@gmail.com> (tiny change) | ||
| 146 | |||
| 147 | * erc.el (erc-iswitchb): Temporarily enable iswitchb mode if it | ||
| 148 | isn't active already, instead of leaving it on. | ||
| 149 | |||
| 150 | 2006-12-10 Juanma Barranquero <lekktu@gmail.com> | ||
| 151 | |||
| 152 | * erc-ezbounce.el (erc-ezb-init-session-list): Doc fix. | ||
| 153 | |||
| 154 | 2006-12-08 Michael Olson <mwolson@gnu.org> | ||
| 155 | |||
| 156 | * erc.el: Re-evaluate contributions from a contributor, and found | ||
| 157 | them under 15 lines of non-obvious code, so it is safe to remove | ||
| 158 | the copyright notice. | ||
| 159 | (erc-modules): Remove list module. | ||
| 160 | |||
| 161 | * erc-list.el: Remove, since a contributor who has not completed | ||
| 162 | their assignment has contributed significantly more than 15 lines | ||
| 163 | of code to this file. | ||
| 164 | |||
| 165 | 2006-11-28 Juanma Barranquero <lekktu@gmail.com> | ||
| 166 | |||
| 167 | * erc.el (erc-cmd-BANLIST, erc-cmd-MASSUNBAN): Simplify. | ||
| 168 | (erc-prompt-for-channel-key, erc-ignore-reply-list, erc-send-post-hook) | ||
| 169 | (erc-active-buffer, erc-join-buffer, erc-frame-alist, erc-with-buffer) | ||
| 170 | (erc-modules, erc-display-message-highlight, erc-process-input-line) | ||
| 171 | (erc-cmd-HELP, erc-server-hooks, erc-echo-notice-in-user-buffers) | ||
| 172 | (erc-format-my-nick, erc-echo-notice-in-user-and-target-buffers) | ||
| 173 | (erc-echo-notice-in-first-user-buffer, erc-connection-established) | ||
| 174 | (erc-update-user-nick, erc-update-channel-member, erc-highlight-notice) | ||
| 175 | (erc-command-symbol, erc-add-query, erc-process-script-line) | ||
| 176 | (erc-determine-parameters, erc-client-info, erc-popup-input-buffer): | ||
| 177 | (erc-script-echo): Fix typos in docstrings. | ||
| 178 | (erc-channel-user-op-p, erc-channel-user-voice-p, erc-startup-file-list) | ||
| 179 | (define-erc-module, erc-once-with-server-event) | ||
| 180 | (erc-once-with-server-event-global, erc-debug-irc-protocol) | ||
| 181 | (erc-log-irc-protocol, erc-cmd-LOAD, erc-update-user) | ||
| 182 | (erc-update-current-channel-member, erc-load-script): | ||
| 183 | (erc-mode-line-away-status-format): Doc fixes. | ||
| 184 | |||
| 185 | 2006-11-20 Andrea Russo <rastandy@inventati.org> (tiny change) | ||
| 186 | |||
| 187 | * erc-dcc.el (erc-dcc-chat-setup): Initialize `erc-input-marker' | ||
| 188 | before calling `erc-display-prompt'. | ||
| 189 | |||
| 190 | 2006-11-24 Juanma Barranquero <lekktu@gmail.com> | ||
| 191 | |||
| 192 | * erc.el (erc-after-connect, erc-open-ssl-stream) | ||
| 193 | (erc-display-line-1, erc-display-line): | ||
| 194 | * erc-backend.el (005): Fix space/tab mixup in docstrings. | ||
| 195 | |||
| 196 | 2006-11-20 Michael Olson <mwolson@gnu.org> | ||
| 197 | |||
| 198 | * erc.el (erc-version-string): Call this Version 5.2 stable | ||
| 199 | pre-release, since it diverges slightly from our 5.2 branch, in | ||
| 200 | that unstable features are not included. | ||
| 201 | (erc-update-modules): Display better error message when module not | ||
| 202 | found. | ||
| 203 | |||
| 204 | 2006-11-12 Michael Olson <mwolson@gnu.org> | ||
| 205 | |||
| 206 | * erc-log.el: Save all log buffers when Emacs exits, in case | ||
| 207 | someone ignores the warning about open processes. Remove the | ||
| 208 | advice code in the commentary. | ||
| 209 | (erc-save-query-buffers): Docfix. | ||
| 210 | (erc-log-save-all-buffers): New function that saves all ERC | ||
| 211 | buffers to logs. | ||
| 212 | (erc-current-logfile): Fix bug in filename selection, where the | ||
| 213 | current buffer was erroneously being preferred over the given | ||
| 214 | buffer. | ||
| 215 | |||
| 216 | 2006-11-08 Michael Olson <mwolson@gnu.org> | ||
| 217 | |||
| 218 | * erc.el (erc-string-to-port): Avoid error when a numerical port | ||
| 219 | is passed. Thanks to Zekeriya KOÇ for the report. | ||
| 220 | |||
| 221 | 2006-11-08 Łukasz Demianiuk <ldemianiuk@gmail.com> (tiny change) | ||
| 222 | |||
| 223 | * erc.el (erc-header-line): Fix typo. | ||
| 224 | |||
| 225 | 2006-11-06 Juanma Barranquero <lekktu@gmail.com> | ||
| 226 | |||
| 227 | * erc-dcc.el (erc-dcc-send-file): Fix typo in error message. | ||
| 228 | |||
| 229 | * erc.el (read-passwd): | ||
| 230 | * erc-autoaway.el (erc-autoaway-reestablish-idletimer): | ||
| 231 | * erc-truncate.el (truncate): Fix typo in docstring. | ||
| 232 | |||
| 233 | 2006-10-21 Michael Olson <mwolson@gnu.org> | ||
| 234 | |||
| 235 | * erc.el (erc-iswitchb): Fix bug when hitting C-c C-b without | ||
| 236 | first loading iswitchb. Thanks to Leo for the report. | ||
| 237 | |||
| 238 | 2006-10-10 Michael Olson <mwolson@gnu.org> | ||
| 239 | |||
| 240 | * erc.el (erc-default-port): Make the default be 6667 instead of | ||
| 241 | ircd. since Mac OS X apparently has problems with looking up that | ||
| 242 | port name. | ||
| 243 | |||
| 244 | * erc-backend.el (353): Receive names after displaying the initial | ||
| 245 | message, instead of before. | ||
| 246 | |||
| 247 | 2006-10-05 Diane Murray <disumu@x3y2z1.net> | ||
| 248 | |||
| 249 | * erc.el (erc-my-nick-face): New face. | ||
| 250 | (erc): Use FULL-NAME argument, not `erc-user-full-name'. This | ||
| 251 | fixes a bug where the :full-name argument passed to the function | ||
| 252 | was not respected. | ||
| 253 | (erc-format-my-nick): Use `erc-my-nick-face'. This should help | ||
| 254 | make it easier to find messages you sent in conversations when | ||
| 255 | `erc-show-my-nick' is non-nil. | ||
| 256 | (erc-compute-server): Doc fix. | ||
| 257 | |||
| 258 | 2006-10-01 John J Foerch <jjfoerch@earthlink.net> (tiny change) | ||
| 259 | |||
| 260 | * erc-stamp.el (erc-insert-timestamp-right): Exclude the newline | ||
| 261 | from the erc-timestamp field. | ||
| 262 | |||
| 263 | 2006-09-11 Michael Olson <mwolson@gnu.org> | ||
| 264 | |||
| 265 | * erc-nicklist.el (erc-nicklist-insert-contents): Add missing | ||
| 266 | parenthesis. Thanks to Stephan Stahl for the report. | ||
| 267 | |||
| 268 | 2006-09-10 Eric Hanchrow <offby1@blarg.net> (tiny change) | ||
| 269 | |||
| 270 | * erc.el (erc-cmd-IGNORE): Prompt user if this might be a regexp | ||
| 271 | instead of a single user. | ||
| 272 | |||
| 273 | 2006-09-10 Michael Olson <mwolson@gnu.org> | ||
| 274 | |||
| 275 | * erc.el (erc-generate-new-buffer-name): If this is a server | ||
| 276 | buffer and a process exists already, create a new buffer. | ||
| 277 | (erc-open): If the IRC session was continued, restore the old | ||
| 278 | point. Thanks to Stephan Stahl for the report. | ||
| 279 | (erc-member-ignore-case): Coding style tweak. | ||
| 280 | (erc-cmd-UNIGNORE): Quote the user before comparison. If we don't | ||
| 281 | find the user listed verbatim, try to match them against the list | ||
| 282 | using string-match. In this case, prompt as to whether the regexp | ||
| 283 | should be removed. | ||
| 284 | (erc-ignored-user-p): Remove CL-ism. | ||
| 285 | |||
| 286 | * erc-autoaway.el (erc-autoaway-possibly-set-away): Check to see | ||
| 287 | whether we are already away. | ||
| 288 | |||
| 289 | * erc-menu.el: Fix potential compiler warning. | ||
| 290 | |||
| 291 | 2006-09-07 Diane Murray <disumu@x3y2z1.net> | ||
| 292 | |||
| 293 | * erc.el: Updated Commentary and URL. | ||
| 294 | (erc-iswitchb, erc-display-line, erc-set-modes, erc-update-modes) | ||
| 295 | (erc-arrange-session-in-multiple-windows): No need to check if | ||
| 296 | `erc-server-process' is bound. | ||
| 297 | (erc-server-buffer-live-p): Doc fix. | ||
| 298 | (erc-part-from-channel): Don't use any initial contents at prompt. | ||
| 299 | (erc-format-nick, erc-format-@nick): Doc fix. Use `when'. | ||
| 300 | (s367): Fixed to support only banmask and channel which is the | ||
| 301 | standard. Also, there's no reason to add a message to each banned | ||
| 302 | user entry trying to persuade the user to use /banlist instead of | ||
| 303 | /mode #channel +b. That part of the message was a little | ||
| 304 | confusing, anyways. | ||
| 305 | (s367-set-by): New catalog entry. The user who set the ban and | ||
| 306 | the time of ban seem to be specific to only certain servers such | ||
| 307 | as freenode. | ||
| 308 | |||
| 309 | * erc-autoaway.el (erc-autoaway-idletimer): Doc fix. | ||
| 310 | |||
| 311 | * erc-backend.el (erc-server-process-alive): No need to check if | ||
| 312 | `erc-server-process' is bound. | ||
| 313 | (367): Use s367 or s367-set-by where appropriate. | ||
| 314 | |||
| 315 | * erc-compat.el: Fixed URL. | ||
| 316 | |||
| 317 | * erc-dcc.el: Updated copyright years. Added Usage section. | ||
| 318 | Changed supported Emacs version number from 21.3.50 to 22 in | ||
| 319 | Commentary. | ||
| 320 | |||
| 321 | * erc-ibuffer.el (erc-server-name, erc-target, erc-away): No need | ||
| 322 | to check if `erc-server-process' is bound. | ||
| 323 | |||
| 324 | * erc-nicklist.el: Added to the Commentary section an explanation | ||
| 325 | that `erc-nicklist-quit' should be called from within the nicklist | ||
| 326 | buffer. Set file coding to utf-8 so a contributor's name is | ||
| 327 | displayed correctly. | ||
| 328 | (erc-nicklist-icons-directory): Use customize type directory | ||
| 329 | instead of string. | ||
| 330 | (erc-nicklist-insert-contents): Set bbdb-nick to an empty string | ||
| 331 | if it wasn't found. This fixes a bug where an error would occur | ||
| 332 | when using `string=' on bbdb-nick if it was nil. | ||
| 333 | |||
| 334 | * erc-replace.el: Removed URL from file information since it | ||
| 335 | doesn't exist. | ||
| 336 | |||
| 337 | * erc-sound.el: Updated copyright years. Fixed Commentary and | ||
| 338 | added Usage section. | ||
| 339 | (define-erc-module): Add and remove `erc-ctcp-query-SOUND' to | ||
| 340 | `erc-ctcp-query-SOUND-hook' here. Removed the keybinding | ||
| 341 | definitions. | ||
| 342 | (erc-play-sound, erc-default-sound, erc-cmd-SOUND) | ||
| 343 | (erc-ctcp-query-SOUND): Doc fix. | ||
| 344 | (erc-play-command): Removed, not necessary anymore. | ||
| 345 | (erc-ctcp-query-SOUND-hook): Set to nil as default. Moved up | ||
| 346 | higher in code, added docstring. | ||
| 347 | (erc-play-sound): Use `play-sound-file'. It exists in GNU Emacs | ||
| 348 | as well since version 21 or earlier. Removed commented-out older | ||
| 349 | version of function. | ||
| 350 | |||
| 351 | * NEWS: Fixed formatting, added channel tracking change. | ||
| 352 | |||
| 353 | 2006-09-03 Diane Murray <disumu@x3y2z1.net> | ||
| 354 | |||
| 355 | * erc.el: M-x erc RET can now be used to start ERC. | ||
| 356 | (erc-open): Renamed from `erc'. | ||
| 357 | (erc-before-connect): Change erc-select to erc. | ||
| 358 | (erc): Renamed from `erc-select'. Use `erc-open'. | ||
| 359 | (erc-select): Defined as alias of `erc'. | ||
| 360 | (erc-ssl): Renamed from `erc-select-ssl'. Use `erc'. | ||
| 361 | (erc-select-ssl): Defined as alias of `erc-ssl'. | ||
| 362 | (erc-cmd-SERVER): Use `erc'. | ||
| 363 | (erc-query, erc-handle-irc-url): Use `erc-open'. | ||
| 364 | |||
| 365 | * erc-backend.el (erc-process-sentinel-1, JOIN): Use `erc-open'. | ||
| 366 | |||
| 367 | * erc-menu.el (erc-menu-definition): Use `erc'. | ||
| 368 | |||
| 369 | * erc-networks.el: Updated copyright years. | ||
| 370 | (erc-server-select): Use keyword arguments when calling `erc'. | ||
| 371 | |||
| 372 | * erc.texi (Getting Started, Connecting): Changed erc-select to | ||
| 373 | erc. | ||
| 374 | |||
| 375 | * NEWS: Added note about these changes. | ||
| 376 | |||
| 377 | 2006-08-20 Diane Murray <disumu@x3y2z1.net> | ||
| 378 | |||
| 379 | * erc-backend.el (erc-process-sentinel-1): Doc fix. Let | ||
| 380 | `erc-server-reconnect-p' check all condition cases. | ||
| 381 | (erc-server-reconnect-p): Moved rest of checks from | ||
| 382 | `erc-process-sentinel-1' to here. Now takes an argument, EVENT. | ||
| 383 | |||
| 384 | 2006-08-21 Diane Murray <disumu@x3y2z1.net> | ||
| 385 | |||
| 386 | * erc-track.el (erc-track-mode-line-mouse-face): New variable. | ||
| 387 | (erc-make-mode-line-buffer-name): Add help-echo and mouse-face | ||
| 388 | properties to channel name. | ||
| 389 | |||
| 390 | 2006-08-20 Michael Olson <mwolson@gnu.org> | ||
| 391 | |||
| 392 | * erc.el (erc-with-server-buffer): New macro that switches to the | ||
| 393 | current ERC server buffer and runs some code. If no server buffer | ||
| 394 | is available, return nil. This is a useful way to access | ||
| 395 | variables in the server buffer. | ||
| 396 | (erc-open-server-buffer-p): New function that returns non-nil if | ||
| 397 | the given buffer is an ERC server buffer that has an open IRC | ||
| 398 | process. | ||
| 399 | |||
| 400 | 2006-08-14 Diane Murray <disumu@x3y2z1.net> | ||
| 401 | |||
| 402 | * erc-menu.el: Updated copyright years. Removed EmacsWiki URL. | ||
| 403 | (erc-menu-definition): Name the menu "ERC" instead of "IRC" to | ||
| 404 | avoid confusion with rcirc and other clients. | ||
| 405 | |||
| 406 | * erc-backend.el (erc-server-banned): New variable. | ||
| 407 | (erc-server-connect): Set `erc-server-banned' to nil. | ||
| 408 | (erc-process-sentinel-1): Use `erc-server-reconnect-p'. | ||
| 409 | (erc-server-reconnect-p): New function. Return non-nil if the | ||
| 410 | user wants automatic reconnects and if the user has not been | ||
| 411 | banned from the server. This should fix a bug where ERC gets into | ||
| 412 | a loop trying to reconnect with no way to stop it when the user is | ||
| 413 | denied access to the server due to a server ban. It might also | ||
| 414 | help when Tor users are blocked from freenode if freenode servers | ||
| 415 | send the 465 message before disconnecting. | ||
| 416 | (465): Handle "banned from server" error notices. | ||
| 417 | |||
| 418 | 2006-08-13 Romain Francoise <romain@orebokech.com> | ||
| 419 | |||
| 420 | * erc-match.el (erc-log-matches-make-buffer): End `y-or-n-p' | ||
| 421 | prompt with a space. | ||
| 422 | |||
| 423 | 2006-08-11 Michael Olson <mwolson@gnu.org> | ||
| 424 | |||
| 425 | * erc-fill.el (erc-fill): Skip any initial empty lines so that we | ||
| 426 | avoid errors when inserting disconnect messages and other messages | ||
| 427 | that begin with newlines. | ||
| 428 | |||
| 429 | 2006-08-07 Michael Olson <mwolson@gnu.org> | ||
| 430 | |||
| 431 | * erc-backend.el (erc-process-sentinel-1): Use erc-display-message | ||
| 432 | in several places instead of inserting text. | ||
| 433 | (erc-process-sentinel): Move to the input-marker before removing | ||
| 434 | the prompt. | ||
| 435 | |||
| 436 | * erc.el (erc-port): Fix customization options. | ||
| 437 | (erc-display-message): Handle null type explicitly. Previously, | ||
| 438 | this was relying on a chance side-effect. Cosmetic indentation | ||
| 439 | tweak. | ||
| 440 | (english): Add 'finished and 'terminated entries to the catalog. | ||
| 441 | Add initial and terminal newlines to 'disconnected and | ||
| 442 | 'disconnected-noreconnect entries. Avoid long lines. | ||
| 443 | |||
| 444 | 2006-08-06 Michael Olson <mwolson@gnu.org> | ||
| 445 | |||
| 446 | * erc-backend.el (erc-server-send-queue): Update from Circe | ||
| 447 | version of this function. | ||
| 448 | |||
| 449 | * erc.el (erc-arrange-session-in-multiple-windows): Fix bug with | ||
| 450 | multi-tty Emacs. | ||
| 451 | (erc-select-startup-file): Fix bug introduced by recent change. | ||
| 452 | |||
| 453 | 2006-08-05 Michael Olson <mwolson@gnu.org> | ||
| 454 | |||
| 455 | * erc-log.el (erc-log-standardize-name): New function that returns | ||
| 456 | a filename that is safe for use for a log file. | ||
| 457 | (erc-current-logfile): Use it. | ||
| 458 | |||
| 459 | * erc.el (erc-startup-file-list): Search in ~/.emacs.d first, | ||
| 460 | since that is a fairly standard directory. | ||
| 461 | (erc-select-startup-file): Re-write to use | ||
| 462 | convert-standard-filename, which will ensure that MS-DOS systems | ||
| 463 | look for the _ercrc.el file. | ||
| 464 | |||
| 465 | 2006-08-02 Michael Olson <mwolson@gnu.org> | ||
| 466 | |||
| 467 | * erc.el (erc-version-string): Release ERC 5.1.4. | ||
| 468 | |||
| 469 | * Makefile, NEWS, erc.texi: Update for the 5.1.4 release. | ||
| 470 | |||
| 471 | * erc.el (erc-active-buffer): Fix bug that caused messages to go | ||
| 472 | to the wrong buffer. Thanks to offby1 for the report. | ||
| 473 | |||
| 474 | * erc-backend.el (erc-coding-system-for-target): Handle case where | ||
| 475 | target is nil. Thanks to Kai Fan for the patch. | ||
| 476 | |||
| 477 | 2006-07-29 Michael Olson <mwolson@gnu.org> | ||
| 478 | |||
| 479 | * erc-log.el (erc-log-setup-logging): Don't offer to save the | ||
| 480 | buffer. It will be saved automatically killed. Thanks to Johan | ||
| 481 | Bockgård and Tassilo Horn for pointing this out. | ||
| 482 | |||
| 483 | 2006-07-27 Johan Bockgård <bojohan@users.sourceforge.net> | ||
| 484 | |||
| 485 | * erc.el (define-erc-module): Make find-function and find-variable | ||
| 486 | find the names constructed by `define-erc-module' in Emacs 22. | ||
| 487 | |||
| 488 | 2006-07-14 Michael Olson <mwolson@gnu.org> | ||
| 489 | |||
| 490 | * erc-log.el (log): Make sure that we enable logging on | ||
| 491 | already-opened buffers as well, in case the user toggles this | ||
| 492 | module after loading ERC. Also be sure to remove logging ability | ||
| 493 | from all ERC buffers when the module is disabled. | ||
| 494 | (erc-log-setup-logging): Set buffer-file-name to nil rather than | ||
| 495 | the empty string. This should fix some errors that occur when | ||
| 496 | quitting Emacs without first killing all ERC buffers. | ||
| 497 | (erc-log-disable-logging): New function that removes the logging | ||
| 498 | ability from the current buffer. | ||
| 499 | |||
| 500 | * erc-spelling.el (spelling): Use dolist and buffer-live-p. | ||
| 501 | |||
| 502 | 2006-07-12 Michael Olson <mwolson@gnu.org> | ||
| 503 | |||
| 504 | * erc-match.el (erc-log-matches): Bind inhibit-read-only rather | ||
| 505 | than call toggle-read-only. | ||
| 506 | |||
| 507 | * erc.el (erc-handle-irc-url): Move here from erc-goodies.el and | ||
| 508 | add autoload cookie. | ||
| 509 | |||
| 510 | 2006-07-09 Michael Olson <mwolson@gnu.org> | ||
| 511 | |||
| 512 | * erc.el (erc-version-string): Release ERC 5.1.3. | ||
| 513 | |||
| 514 | * erc.texi: Update for the 5.1.3 release. | ||
| 515 | |||
| 516 | * erc-autoaway.el (erc-autoaway-set-back): Fix bug after returning | ||
| 517 | from being set automatically away and current buffer is not an ERC | ||
| 518 | buffer. | ||
| 519 | |||
| 520 | * erc-identd.el: Fix compiler error. | ||
| 521 | |||
| 522 | * erc.texi (Development): Use @subheading instead of @subsection. | ||
| 523 | (Advanced Usage): Add menu. | ||
| 524 | (Connecting): Fully document how to connect to an IRC server. | ||
| 525 | (Options, Tips and Tricks, Sample Configuration): New unwritten | ||
| 526 | sections. | ||
| 527 | |||
| 528 | * erc.el (erc-server, erc-port, erc-nick, erc-nick-uniquifier) | ||
| 529 | (erc-user-full-name, erc-password): Docfixes and customization | ||
| 530 | interface tweaks. | ||
| 531 | (erc-try-new-nick-p): Rename from | ||
| 532 | `erc-manual-set-nick-on-bad-nick-p' and invert meaning. | ||
| 533 | (erc-nickname-in-use): Use `erc-try-new-nick-p'. Check the length | ||
| 534 | of `erc-nick-uniquifier', in case someone wants multiple | ||
| 535 | characters. | ||
| 536 | (erc-compute-server, erc-compute-nick, erc-compute-full-name) | ||
| 537 | (erc-compute-port): Docfixes. | ||
| 538 | |||
| 539 | * erc-log.el (log): Move all add-hook calls here, rather than | ||
| 540 | executing them immediately, and also cause them to be un-hooked | ||
| 541 | when the module is removed. | ||
| 542 | (erc-save-buffer-on-part): Move next to | ||
| 543 | `erc-save-queries-on-quit'. | ||
| 544 | (erc-save-buffer-on-quit, erc-save-queries-on-quit): Default to t. | ||
| 545 | (erc-log-write-after-send, erc-log-write-after-insert): Default to | ||
| 546 | nil. This makes things fast, but reasonably failsafe, by default. | ||
| 547 | |||
| 548 | 2006-07-08 Michael Olson <mwolson@gnu.org> | ||
| 549 | |||
| 550 | * erc-log.el (erc-log-insert-log-on-open): Make this nil by | ||
| 551 | default, since most IRC clients don't do this. | ||
| 552 | (erc-log-write-after-send): New option that determines whether the | ||
| 553 | log file will be written to after every sent message. | ||
| 554 | (erc-log-write-after-insert): New option that determines whether | ||
| 555 | the log file will be written to when new text is added to a logged | ||
| 556 | ERC buffer. | ||
| 557 | (log): Use the aforementioned options. | ||
| 558 | |||
| 559 | * erc.texi (Modules): Document the "completion" module. | ||
| 560 | |||
| 561 | * erc-pcomplete.el (pcomplete-erc-nicks): Make sure that we don't | ||
| 562 | have a nil element in the list when ignore-self is non-nil. | ||
| 563 | |||
| 564 | 2006-07-05 Michael Olson <mwolson@gnu.org> | ||
| 565 | |||
| 566 | * erc.el (erc-modules): Add the `page' module to the list. | ||
| 567 | |||
| 568 | * erc.texi (Modules): Add entries for `list' and `page' modules. | ||
| 569 | Change "spell" to "spelling". | ||
| 570 | (History): Use past tense throughout. | ||
| 571 | |||
| 572 | 2006-07-02 Michael Olson <mwolson@gnu.org> | ||
| 573 | |||
| 574 | * erc-backend.el (erc-call-hooks): Fix (stringp nil) error that | ||
| 575 | can happen when doing /PART. | ||
| 576 | |||
| 577 | * erc.el (erc-quit-reason-various-alist) | ||
| 578 | (erc-part-reason-various-alist): In the example, use "^$" as an | ||
| 579 | example, since "" matches anything. | ||
| 580 | (erc-quit-reason-various, erc-part-reason-various): If no argument | ||
| 581 | is given, and no matches are found, use our default reason instead | ||
| 582 | of "nil". | ||
| 583 | |||
| 584 | 2006-06-30 Michael Olson <mwolson@gnu.org> | ||
| 585 | |||
| 586 | * erc.texi (Modules): Mention identd. | ||
| 587 | (Releases): Update mailing list address and download location. | ||
| 588 | (Development): Refactor. Provide updated directions for Arch. | ||
| 589 | Make URLs clickable. | ||
| 590 | (Keystroke Summary): Typo fix. Use more Texinfo syntax. | ||
| 591 | (Getting Started): Give simpler example. We do not need to | ||
| 592 | explicitly load every module. | ||
| 593 | (History): Update. | ||
| 594 | |||
| 595 | * erc.el (erc-version-modules): Remove, since we do not use this | ||
| 596 | function anymore. | ||
| 597 | (erc-latest-version, erc-ediff-latest-version): Remove, since this | ||
| 598 | was only useful back when ERC consisted of one file. | ||
| 599 | (erc-modules): Add line for identd. | ||
| 600 | (erc-get-channel-mode-from-keypress): Typo fix. | ||
| 601 | |||
| 602 | * erc-imenu.el: Remove unnecessary lines in header. | ||
| 603 | |||
| 604 | * erc-goodies.el (erc-handle-irc-url): Docfix. | ||
| 605 | |||
| 606 | * erc-identd.el: Define an ERC module for this. | ||
| 607 | (erc-identd-start): Don't create a process buffer if possible. | ||
| 608 | Otherwise, use conventional hidden names for process buffers. | ||
| 609 | |||
| 610 | 2006-06-29 Michael Olson <mwolson@gnu.org> | ||
| 611 | |||
| 612 | * erc-backend.el (erc-coding-system-for-target): Match | ||
| 613 | case-insensitively. Use a pattern match instead of `assoc', as | ||
| 614 | per the documentation for `erc-encoding-coding-alist'. | ||
| 615 | |||
| 616 | * erc-track.el (erc-track-shorten-aggressively): Fix typo. | ||
| 617 | |||
| 618 | 2006-06-27 Michael Olson <mwolson@gnu.org> | ||
| 619 | |||
| 620 | * erc.el: Update maintainer information and URLs. | ||
| 621 | |||
| 622 | 2006-06-14 Michael Olson <mwolson@gnu.org> | ||
| 623 | |||
| 624 | * erc.el (erc-active-buffer): If the active buffer has been | ||
| 625 | deleted, default to the server buffer. | ||
| 626 | (erc-toggle-flood-control): When the user hits C-c C-f, make flood | ||
| 627 | control really toggle, not unconditionally turn off. | ||
| 628 | |||
| 629 | 2006-06-12 Michael Olson <mwolson@gnu.org> | ||
| 630 | |||
| 631 | * NEWS: Add items since the 5.1.2 release. | ||
| 632 | |||
| 633 | * erc-autoaway.el (erc-autoaway-caused-away): New variable that | ||
| 634 | indicates whether the current away status was caused by this | ||
| 635 | module. | ||
| 636 | (erc-autoaway-set-back): Only set back if this module set the user | ||
| 637 | away. | ||
| 638 | (erc-autoaway-set-away): Update `erc-autoaway-caused-away'. | ||
| 639 | (erc-autoaway-reset-indicators): New function that resets some | ||
| 640 | indicators when the user is no longer away. | ||
| 641 | (autoaway): Add the above function to the 305 hook. | ||
| 642 | |||
| 643 | 2006-06-05 Romain Francoise <romain@orebokech.com> | ||
| 644 | |||
| 645 | * erc.texi (History): Fix various typos. | ||
| 646 | |||
| 647 | 2006-06-04 Michael Olson <mwolson@gnu.org> | ||
| 648 | |||
| 649 | * erc-autoaway.el (erc-autoaway-idle-method): Move after the | ||
| 650 | definition of the autoaway module. | ||
| 651 | (autoaway): Don't do anything if erc-autoaway-idle-method is | ||
| 652 | unbound. This prevents an error on startup. | ||
| 653 | |||
| 654 | 2006-06-03 Michael Olson <mwolson@gnu.org> | ||
| 655 | |||
| 656 | * erc-autoaway.el: Thanks to Mark Plaksin for the ideas and patch. | ||
| 657 | (erc-autoaway-idle-method): Renamed from | ||
| 658 | `erc-autoaway-use-emacs-idle'. We have more than two choices for | ||
| 659 | how to do this, so it's best to make this take symbol values. | ||
| 660 | Improve documentation. Remove warning against Emacs idle-time; | ||
| 661 | the point is moot now that we get user idle time via a different | ||
| 662 | method. Make sure we disable and re-enable the module when | ||
| 663 | changing this value. | ||
| 664 | (autoaway): Conditionalize on the above option. If using the idle | ||
| 665 | timer or user idle methods, don't add anything to the | ||
| 666 | send-completed or server-001 hooks, since it is unnecessary. | ||
| 667 | (erc-autoaway-reestablish-idletimer, erc-autoaway-message): | ||
| 668 | Docfix. | ||
| 669 | (erc-autoaway-idle-seconds): Use erc-autoaway-idle-method. | ||
| 670 | (erc-autoaway-reset-idle-irc): Renamed from | ||
| 671 | `erc-autoaway-reset-idle'. Don't pass line to | ||
| 672 | `erc-autoaway-set-away', since it is not used. | ||
| 673 | (erc-autoaway-reset-idle-user): New function that resets the idle | ||
| 674 | state for user idle time. | ||
| 675 | (erc-autoaway-set-back): Remove line argument, since it is not | ||
| 676 | used. | ||
| 677 | |||
| 678 | 2006-06-01 Michael Olson <mwolson@gnu.org> | ||
| 679 | |||
| 680 | * erc.el (erc-buffer-filter): Make sure all buffers returned from | ||
| 681 | this are live. | ||
| 682 | |||
| 683 | 2006-05-01 Edward O'Connor <ted@oconnor.cx> | ||
| 684 | |||
| 685 | * erc-goodies.el (erc-handle-irc-url): New function, suitable as | ||
| 686 | a value for `url-irc-function'. | ||
| 687 | |||
| 688 | 2006-04-18 Diane Murray <disumu@x3y2z1.net> | ||
| 689 | |||
| 690 | * erc-pcomplete.el (pcomplete-erc-nicks): Added new optional | ||
| 691 | argument IGNORE-SELF. If this is non-nil, don't return the user's | ||
| 692 | current nickname. Doc fix. | ||
| 693 | (pcomplete/erc-mode/complete-command): Don't complete the current | ||
| 694 | nickname. | ||
| 695 | |||
| 696 | 2006-04-05 Diane Murray <disumu@x3y2z1.net> | ||
| 697 | |||
| 698 | * erc.el (erc-cmd-SV): Removed the exclamation point. Show the | ||
| 699 | build date as it's shown in `emacs-version'. | ||
| 700 | |||
| 701 | * erc-capab.el (erc-capab-identify-add-prefix): Insert the prefix | ||
| 702 | with the same face property as the previous character. | ||
| 703 | |||
| 704 | 2006-04-02 Michael Olson <mwolson@gnu.org> | ||
| 705 | |||
| 706 | * erc-backend.el, erc-ezbounce.el, erc-join.el, erc-netsplit.el, | ||
| 707 | erc.el: Make sure to include a newline inside of negated classes, | ||
| 708 | so that a newline is not matched. | ||
| 709 | |||
| 710 | 2006-04-01 Michael Olson <mwolson@gnu.org> | ||
| 711 | |||
| 712 | * erc-backend.el (erc-server-connect-function): Don't try to | ||
| 713 | detect the existence of the `open-network-stream-nowait' function, | ||
| 714 | since I can't find it in Emacs21, XEmacs21, or Emacs22. | ||
| 715 | |||
| 716 | 2006-03-26 Michael Olson <mwolson@gnu.org> | ||
| 717 | |||
| 718 | * erc.el (erc-header-line): New face that will be used to colorize | ||
| 719 | the text of the header-line, provided that | ||
| 720 | `erc-header-line-face-method' is non-nil. | ||
| 721 | (erc-prompt-face): Fix formatting. | ||
| 722 | (erc-header-line-face-method): New option that determines the | ||
| 723 | method used for colorizing header-line text. This may be a | ||
| 724 | function, nil, or non-nil. | ||
| 725 | (erc-update-mode-line-buffer): Use the aforementioned option and | ||
| 726 | face to colorize the header-line text, if that is what the user | ||
| 727 | wants. | ||
| 728 | (erc-send-input): If flood control is not activated, don't split | ||
| 729 | the input line. | ||
| 730 | |||
| 731 | 2006-03-25 Michael Olson <mwolson@gnu.org> | ||
| 732 | |||
| 733 | * erc.el (erc-cmd-QUOTE): Install patch from Aravind Gottipati | ||
| 734 | that fixes the case where there is no leading whitespace. Only | ||
| 735 | remove the first space character, though. | ||
| 736 | |||
| 737 | * erc-identd.el (erc-identd-start): Fix a bug by making sure that | ||
| 738 | erc-identd-process is set properly. | ||
| 739 | (erc-identd-start, erc-identd-stop): Add autoload cookies. | ||
| 740 | (erc-identd-start): Pass :host parameter so this works with Emacs | ||
| 741 | 22. | ||
| 742 | |||
| 743 | 2006-03-09 Diane Murray <disumu@x3y2z1.net> | ||
| 744 | |||
| 745 | * erc-button.el (erc-button-keymap): Use <backtab> rather than | ||
| 746 | <C-tab> for `erc-button-previous' as it is a more standard key | ||
| 747 | binding for this type of function. | ||
| 748 | |||
| 749 | 2006-02-28 Diane Murray <disumu@x3y2z1.net> | ||
| 750 | |||
| 751 | * erc-capab.el: Removed things that were accidentally committed on | ||
| 752 | 2006-02-20. Removed Todo section. | ||
| 753 | (erc-capab-unidentified): Removed. | ||
| 754 | |||
| 755 | 2006-02-26 Michael Olson <mwolson@gnu.org> | ||
| 756 | |||
| 757 | * erc-capab.el: Use (eval-when-compile (require 'cl)). | ||
| 758 | (erc-capab-unidentified): Fix compiler warning by specifying | ||
| 759 | group. | ||
| 760 | |||
| 761 | 2006-02-20 Diane Murray <disumu@x3y2z1.net> | ||
| 762 | |||
| 763 | * erc-capab.el (erc-capab-send-identify-messages): Fixed comment | ||
| 764 | to explain thoughts better. `erc-server-parameters' is an | ||
| 765 | associated list when it's set, not a string. | ||
| 766 | |||
| 767 | 2006-02-19 Michael Olson <mwolson@gnu.org> | ||
| 768 | |||
| 769 | * erc-capab.el (erc-capab-send-identify-messages): Make sure some | ||
| 770 | parameters are strings before using them. Thanks to Alejandro | ||
| 771 | Benitez for the report. | ||
| 772 | |||
| 773 | * erc.el (erc-version-string): Release ERC 5.1.2. | ||
| 774 | |||
| 775 | 2006-02-19 Diane Murray <disumu@x3y2z1.net> | ||
| 776 | |||
| 777 | * erc-button.el (erc-button-keymap): Bind `erc-button-previous' to | ||
| 778 | <C-tab>. | ||
| 779 | (erc-button-previous): New function. | ||
| 780 | |||
| 781 | 2006-02-15 Michael Olson <mwolson@gnu.org> | ||
| 782 | |||
| 783 | * NEWS: Add category for ERC 5.2. | ||
| 784 | |||
| 785 | * erc.el (erc): Move to the end of the buffer when a continued | ||
| 786 | session is detected. Thanks to e1f and indio for the report and | ||
| 787 | testing a potential fix. | ||
| 788 | |||
| 789 | 2006-02-14 Michael Olson <mwolson@gnu.org> | ||
| 790 | |||
| 791 | * debian/changelog: Prepare a new Debian package. | ||
| 792 | |||
| 793 | * Makefile (debprepare): New rule that creates an ERC snapshot | ||
| 794 | directory for use in both new Debian releases and revisions for | ||
| 795 | Debian packages. | ||
| 796 | (debrelease, debrevision-mwolson): Use debprepare. | ||
| 797 | |||
| 798 | * NEWS: Bring up-to-date. | ||
| 799 | |||
| 800 | * erc-stamp.el (erc-insert-timestamp-right): For now, put | ||
| 801 | timestamps before rather than after erc-fill-column when | ||
| 802 | erc-timestamp-right-column is nil. This way we won't surprise | ||
| 803 | anyone unpleasantly, or so it is hoped. | ||
| 804 | |||
| 805 | 2006-02-13 Michael Olson <mwolson@gnu.org> | ||
| 806 | |||
| 807 | * erc-dcc.el: Use (eval-when-compile (require 'cl)). | ||
| 808 | |||
| 809 | 2006-02-12 Michael Olson <mwolson@gnu.org> | ||
| 810 | |||
| 811 | * erc-autoaway.el, erc-dcc.el, erc-ezbounce.el, erc-fill.el | ||
| 812 | * erc-goodies.el, erc-hecomplete.el, erc-ibuffer.el, erc-identd.el | ||
| 813 | * erc-imenu.el, erc-join.el, erc-lang.el, erc-list.el, erc-log.el | ||
| 814 | * erc-match.el, erc-menu.el, erc-netsplit.el, erc-networks.el | ||
| 815 | * erc-notify.el, erc-page.el, erc-pcomplete.el, erc-replace.el | ||
| 816 | * erc-ring.el, erc-services.el, erc-sound.el, erc-speedbar.el | ||
| 817 | * erc-spelling.el, erc-track.el, erc-truncate.el, erc-xdcc.el: | ||
| 818 | Add 2006 to copyright years, to comply with the changed guidelines. | ||
| 819 | |||
| 820 | 2006-02-11 Michael Olson <mwolson@gnu.org> | ||
| 821 | |||
| 822 | * erc.el (erc-update-modules): Handle erc-capab-identify | ||
| 823 | correctly. Make some requirements shorter, so that it's easier to | ||
| 824 | see why they are needed. | ||
| 825 | |||
| 826 | * erc-capab.el: Add autoload cookie for capab-identify. | ||
| 827 | (erc-capab-send-identify-messages, erc-capab-identify-activate): | ||
| 828 | Minor whitespace fix in code. | ||
| 829 | |||
| 830 | * erc-stamp.el (erc-timestamp-use-align-to): Renamed from | ||
| 831 | `erc-timestamp-right-align-by-pixel'. Set the default based on | ||
| 832 | whether we are in Emacs 22, and using X. Improve documentation. | ||
| 833 | (erc-insert-aligned): Remove calculation of offset, since | ||
| 834 | :align-to pos works after all. Unlike the previous solution, this | ||
| 835 | one works when erc-stamp.el is compiled. | ||
| 836 | (erc-insert-timestamp-right): Don't add length of string, and then | ||
| 837 | later remove its displayed width. This puts timestamps after | ||
| 838 | erc-fill-column when erc-timestamp-right-column is nil, rather | ||
| 839 | than before it. It also fixes a subtle bug. Remove use of | ||
| 840 | `current-window', since there is no variable by that name in | ||
| 841 | Emacs21, Emacs22, or XEmacs21 beta. Check to see whether | ||
| 842 | `erc-fill-column' is non-nil before using it. | ||
| 843 | |||
| 844 | 2006-02-11 Diane Murray <disumu@x3y2z1.net> | ||
| 845 | |||
| 846 | * erc-list.el: Define `list' module which sets the alias | ||
| 847 | `erc-cmd-LIST' to `erc-list-channels' when enabled and | ||
| 848 | `erc-list-channels-simple' when disabled. | ||
| 849 | (erc-list-channels): Was `erc-cmd-LIST', renamed. | ||
| 850 | (erc-list-channels-simple): New function. | ||
| 851 | |||
| 852 | * erc.el (erc-modules): Added `list' to enabled modules. Changed | ||
| 853 | `capab-identify' description. Moved customization options left in | ||
| 854 | source code. | ||
| 855 | |||
| 856 | * erc-menu.el (erc-menu-definition): Use `erc-list-channels'. | ||
| 857 | |||
| 858 | * erc-capab.el: Put a little more detail into Usage section. | ||
| 859 | (define-erc-module): Run `erc-capab-identify-setup' in all open | ||
| 860 | server buffers when enabling. | ||
| 861 | (erc-capab-identify-setup): Make PROC and PARSED optional | ||
| 862 | arguments. | ||
| 863 | (erc-capab-identify-add-prefix): Simplified nickname regexp. This | ||
| 864 | should now also match nicknames that are formatted differently | ||
| 865 | than the default. | ||
| 866 | |||
| 867 | * erc-spelling.el (define-erc-module): Make sure there's a buffer | ||
| 868 | before calling `with-current-buffer'. | ||
| 869 | |||
| 870 | 2006-02-10 Michael Olson <mwolson@gnu.org> | ||
| 871 | |||
| 872 | * Makefile (debbuild): Split from debrelease. | ||
| 873 | (debrevision-mwolson): New rule that causes a Debian revision to | ||
| 874 | be built. | ||
| 875 | |||
| 876 | * erc.el (erc-migrate-modules): Use a better algorithm. Thanks to | ||
| 877 | Johan Bockgård. | ||
| 878 | (erc-modules): Change use of 'pcomplete to 'completion. | ||
| 879 | |||
| 880 | 2006-02-09 Diane Murray <disumu@x3y2z1.net> | ||
| 881 | |||
| 882 | * erc.el (erc-get-parsed-vector, erc-get-parsed-vector-nick) | ||
| 883 | * erc-capab.el: Require erc. | ||
| 884 | (erc-capab-send-identify-messages): Use `erc-server-send'. | ||
| 885 | (erc-capab-identify-remove/set-identified-flag): Use 1 and 0 as | ||
| 886 | the flags so we can also check whether the `erc-identified' text | ||
| 887 | property is there at all. | ||
| 888 | (erc-capab-identify-add-prefix): Use `erc-capab-find-parsed'. | ||
| 889 | This fixes a bug where the prefix wasn't inserted when timestamps | ||
| 890 | are inserted on the right. Tweaked nickname regexp. | ||
| 891 | (erc-capab-find-parsed): New function. | ||
| 892 | (erc-capab-get-unidentified-nickname): Updated to check for 0 | ||
| 893 | flag. Only get nickname if there's a nickuserhost associated with | ||
| 894 | this message. | ||
| 895 | |||
| 896 | * erc-capab.el: New file. Adds the new module | ||
| 897 | `erc-capab-identify', which allows flagging of unidentified users | ||
| 898 | on servers running an ircd based on dancer - irc.freenode.net, for | ||
| 899 | example. | ||
| 900 | |||
| 901 | * erc.el (erc-modules): Added `capab-identify' to options. | ||
| 902 | (erc-get-parsed-vector, erc-get-parsed-vector-nick) | ||
| 903 | (erc-get-parsed-vector-type): Moved here from erc-match.el. | ||
| 904 | |||
| 905 | * erc-match.el (erc-get-parsed-vector, erc-get-parsed-vector-nick) | ||
| 906 | (erc-get-parsed-vector-type): Moved these functions to erc.el | ||
| 907 | since they can be useful outside of the text matching module. | ||
| 908 | |||
| 909 | * NEWS: Added erc-capab.el. | ||
| 910 | |||
| 911 | * erc-dcc.el, erc-stamp.el, erc-xdcc.el: Changed "Emacs IRC Client" | ||
| 912 | to "ERC". | ||
| 913 | |||
| 914 | 2006-02-07 Michael Olson <mwolson@gnu.org> | ||
| 915 | |||
| 916 | * ChangeLog.01, ChangeLog.02, ChangeLog.03, ChangeLog.04, | ||
| 917 | ChangeLog.05: Rename from ChangeLog.NNNN in order to disambiguate | ||
| 918 | the filenames in DOS. | ||
| 919 | |||
| 920 | * erc-goodies.el: Comment fix. | ||
| 921 | |||
| 922 | * erc-hecomplete.el: Rename from erc-complete.el. Update | ||
| 923 | commentary. Use define-erc-module so that it's possible to | ||
| 924 | actually use this. | ||
| 925 | (erc-hecomplete): Rename function from `erc-complete'. | ||
| 926 | (erc-hecomplete): Rename group from `erc-old-complete'. Docfix. | ||
| 927 | |||
| 928 | * erc-join.el: Rename from erc-autojoin.el. | ||
| 929 | |||
| 930 | * erc-networks.el: Rename from erc-nets.el. | ||
| 931 | |||
| 932 | * erc-services.el: Rename from erc-nickserv.el. | ||
| 933 | |||
| 934 | * erc-stamp.el (erc-insert-aligned): Don't take 3rd argument. Use | ||
| 935 | the simpler `indent-to' function when | ||
| 936 | `erc-timestamp-right-align-by-pixel' is nil. | ||
| 937 | (erc-insert-timestamp-right): If the timestamp goes on the | ||
| 938 | following line, don't add timestamp properties to the spaces in | ||
| 939 | front of it. | ||
| 940 | |||
| 941 | * erc.el (erc-migrate-modules): New function that eases migration | ||
| 942 | of module names. | ||
| 943 | (erc-modules): Call erc-migrate-modules in the :get accessor. | ||
| 944 | (erc-modules, erc-update-modules): Update for new modules names. | ||
| 945 | (erc-cmd-SMV): Remove, since this does not give useful output due | ||
| 946 | to the version strings being removed from ERC modules. | ||
| 947 | |||
| 948 | 2006-02-05 Michael Olson <mwolson@gnu.org> | ||
| 949 | |||
| 950 | * erc-spelling.el (erc-spelling-init): If | ||
| 951 | `erc-spelling-dictionaries' is nil, do not set | ||
| 952 | ispell-local-dictionary. Before, it was being set to nil, which | ||
| 953 | was causing a long delay while the ispell process restarted. | ||
| 954 | (erc-spelling-unhighlight-word): New function that removes | ||
| 955 | flyspell properties from a spell-checked word. | ||
| 956 | (erc-spelling-flyspell-verify): Don't spell-check nicks or words | ||
| 957 | that have '/' before them. | ||
| 958 | |||
| 959 | 2006-02-04 Michael Olson <mwolson@gnu.org> | ||
| 960 | |||
| 961 | * erc-autojoin.el: Use (eval-when-compile (require 'cl)). | ||
| 962 | |||
| 963 | * erc-complete.el (erc-nick-completion-exclude-myself) | ||
| 964 | (erc-try-complete-nick): Use better function for getting list of | ||
| 965 | channel users. | ||
| 966 | |||
| 967 | * erc-goodies.el: Docfix. | ||
| 968 | |||
| 969 | * erc-stamp.el: Use new arch tagline, since the other one wasn't | ||
| 970 | being treated properly. | ||
| 971 | |||
| 972 | * erc.el (erc-version-string): Release ERC 5.1.1. | ||
| 973 | |||
| 974 | 2006-02-03 Zhang Wei <id.brep@gmail.com> | ||
| 975 | |||
| 976 | * erc.el (erc-version-string): Don't hard-code Emacs version. | ||
| 977 | (erc-version): Use emacs-version. | ||
| 978 | |||
| 979 | 2006-01-31 Michael Olson <mwolson@gnu.org> | ||
| 980 | |||
| 981 | * erc-stamp.el: Update copyright years. | ||
| 982 | |||
| 983 | 2006-01-30 Simon Josefsson <jas@extundo.com> | ||
| 984 | |||
| 985 | * erc.el (erc-open-ssl-stream): Use tls.el. | ||
| 986 | |||
| 987 | 2006-01-30 Michael Olson <mwolson@gnu.org> | ||
| 988 | |||
| 989 | * erc-stamp.el (erc-timestamp-right-align-by-pixel): New option | ||
| 990 | that determines whether to use pixel values to align right | ||
| 991 | timestamps. The default is not to do so, since it only works with | ||
| 992 | Emacs22 on X, and even then some people have trouble. | ||
| 993 | (erc-insert-aligned): Use `erc-timestamp-right-align-by-pixel'. | ||
| 994 | |||
| 995 | 2006-01-29 Michael Olson <mwolson@gnu.org> | ||
| 996 | |||
| 997 | * ChangeLog, ChangeLog.2005, ChangeLog.2004, ChangeLog.2003, | ||
| 998 | ChangeLog.2002, ChangeLog.2001: Add "See ChangeLog.NNNN" line for | ||
| 999 | earlier changes. Use utf-8 encoding. Fix some accent typos. | ||
| 1000 | |||
| 1001 | * erc-speedbar.el (erc-speedbar-buttons): Fix reference to free | ||
| 1002 | variable. | ||
| 1003 | (erc-speedbar-goto-buffer): Fix compiler warning. | ||
| 1004 | |||
| 1005 | * erc-ibuffer.el: Use `define-ibuffer-filter' instead of | ||
| 1006 | `ibuffer-degine-limiter'. Use `define-ibuffer-column' instead of | ||
| 1007 | `ibuffer-define-column'. Require 'ibuf-ext so that the macros | ||
| 1008 | work without compiler warnings. | ||
| 1009 | |||
| 1010 | * man/erc.texi (Obtaining ERC, Installation): Note that these | ||
| 1011 | sections may be skipped if using the version of ERC that comes | ||
| 1012 | with Emacs. | ||
| 1013 | |||
| 1014 | 2006-01-29 Edward O'Connor <ted@oconnor.cx> | ||
| 1015 | |||
| 1016 | * erc-viper.el: Remove. Now that ERC is included in Emacs, these | ||
| 1017 | work-arounds live in Viper itself. | ||
| 1018 | |||
| 1019 | 2006-01-28 Michael Olson <mwolson@gnu.org> | ||
| 1020 | |||
| 1021 | * erc-*.el, erc.texi, NEWS: Add Arch taglines as per Emacs | ||
| 1022 | guidelines. | ||
| 1023 | |||
| 1024 | * erc-*.el: Space out copyright years like the rest of Emacs. Use | ||
| 1025 | the Emacs copyright statement. Refer to ourselves as ERC rather | ||
| 1026 | than "Emacs IRC Client", since there are now several IRC clients | ||
| 1027 | for Emacs. | ||
| 1028 | |||
| 1029 | * erc-compat.el (erc-emacs-build-time): Define as a variable. | ||
| 1030 | |||
| 1031 | * erc-log.el (erc-log-setup-logging): Use write-file-functions. | ||
| 1032 | |||
| 1033 | * erc-ibuffer.el: Require 'erc. | ||
| 1034 | |||
| 1035 | * erc-stamp.el (erc-insert-aligned): Only use the special text | ||
| 1036 | property when window-system is X. | ||
| 1037 | |||
| 1038 | * erc.texi: Adapt for inclusion in Emacs. | ||
| 1039 | |||
| 1040 | 2006-01-28 Johan Bockgård <bojohan@users.sourceforge.net> | ||
| 1041 | |||
| 1042 | * erc.el (erc-format-message): More `cl' breakage; don't use | ||
| 1043 | `oddp'. | ||
| 1044 | |||
| 1045 | 2006-01-27 Michael Olson <mwolson@gnu.org> | ||
| 1046 | |||
| 1047 | * debian/changelog: Update for new release. | ||
| 1048 | |||
| 1049 | * debian/control (Description): Update. | ||
| 1050 | |||
| 1051 | * debian/rules: Concatenate ChangeLog for 2005. | ||
| 1052 | |||
| 1053 | * Makefile (MISC): Include ChangeLog.2005 and erc.texi. | ||
| 1054 | (debrelease, release): Copy images directory. | ||
| 1055 | |||
| 1056 | * NEWS: Spelling fixes. Add items for recent changes. | ||
| 1057 | |||
| 1058 | * erc.el (erc): Move call to erc-update-modules before the call to | ||
| 1059 | erc-mode. This should fix a timestamp display issue. | ||
| 1060 | (erc-version-string): Release ERC 5.1. | ||
| 1061 | |||
| 1062 | 2006-01-26 Michael Olson <mwolson@gnu.org> | ||
| 1063 | |||
| 1064 | * erc-stamp.el (erc-insert-aligned): New function that inserts | ||
| 1065 | text in an perfectly-aligned way relative to the right margin. It | ||
| 1066 | only works well with Emacs22. A sane fallback is provided for | ||
| 1067 | other versions of Emacs. | ||
| 1068 | (erc-insert-timestamp-right): Use the new function. | ||
| 1069 | |||
| 1070 | 2006-01-25 Edward O'Connor <ted@oconnor.cx> | ||
| 1071 | |||
| 1072 | * erc.el (erc-modules): Ensure that `erc-button-mode' gets enabled | ||
| 1073 | before `erc-match-mode'. | ||
| 1074 | |||
| 1075 | * erc-match.el (match): Append `erc-match-message' to | ||
| 1076 | `erc-insert-modify-hook'. | ||
| 1077 | |||
| 1078 | 2006-01-25 Michael Olson <mwolson@gnu.org> | ||
| 1079 | |||
| 1080 | * FOR-RELEASE: Mark last release requirement as done. | ||
| 1081 | |||
| 1082 | * Makefile (realclean, distclean): Remove docs. | ||
| 1083 | |||
| 1084 | * erc.texi: Take care of all pre-5.1 items. | ||
| 1085 | |||
| 1086 | * erc-backend.el (erc-server-send, erc-server-send-queue): Wrap | ||
| 1087 | `process-send-string' in `condition-case' to avoid an error when | ||
| 1088 | quitting ERC. | ||
| 1089 | |||
| 1090 | * erc-stamp.el (erc-insert-timestamp-right): Try to deal with | ||
| 1091 | variable-width characters in the timestamp and on the same line. | ||
| 1092 | The latter is a kludge, but it seems to work with most of the | ||
| 1093 | input I've thrown at it so far. It's certainly better than going | ||
| 1094 | past the end of line consistently when we have variable-width | ||
| 1095 | characters on the same line. When `erc-timestamp-intangible' is | ||
| 1096 | non-nil, add intangible properties to the whitespace as well, so | ||
| 1097 | that hitting <end> does what you'd expect. | ||
| 1098 | |||
| 1099 | * erc.el (erc-flood-protect, erc-toggle-flood-control): Update | ||
| 1100 | this to only use boolean values for `erc-flood-protect'. Update | ||
| 1101 | documentation. | ||
| 1102 | (erc-cmd-QUIT): Set the active buffer to be the server buffer, so | ||
| 1103 | that any QUIT-related messages go there. | ||
| 1104 | (erc): Try to be more clever about re-using channel buffers when | ||
| 1105 | automatically re-connecting. Thanks to e1f for noticing. | ||
| 1106 | |||
| 1107 | 2006-01-23 Michael Olson <mwolson@gnu.org> | ||
| 1108 | |||
| 1109 | * ChangeLog.2005: Remove erroneous line. | ||
| 1110 | |||
| 1111 | * FOR-RELEASE: Make that the Makefile tweaking is complete. | ||
| 1112 | (NEWS): Mark as done. | ||
| 1113 | |||
| 1114 | * Makefile (MANUAL): New option indicating the name of the manual. | ||
| 1115 | (PREFIX, ELISPDIR, INFODIR): New options that specify the | ||
| 1116 | directories to install lisp code and info manuals to. PREFIX is | ||
| 1117 | used only by ELISPDIR and INFODIR. | ||
| 1118 | (all): Call `lisp' and create the manual. | ||
| 1119 | (lisp): Compile lisp code. | ||
| 1120 | (%.info, %.html): New rules that make Info files and HTML files, | ||
| 1121 | respectively, from a TexInfo source. | ||
| 1122 | (doc): Create both the Info and HTML versions of the manual. This | ||
| 1123 | is for the user -- we never call it automatically. | ||
| 1124 | (install-info): Install Info files. | ||
| 1125 | (install-bin): Install compiled and source Lisp files. | ||
| 1126 | (todo): Remove, since it seems pointless. | ||
| 1127 | |||
| 1128 | * NEWS: Update. | ||
| 1129 | |||
| 1130 | * README: Add Installation instructions. Tweak layout. | ||
| 1131 | |||
| 1132 | * erc.texi: Work on some pre-5.1 items. | ||
| 1133 | |||
| 1134 | * erc-stamp.el, erc-track.el: Move some functions and options in | ||
| 1135 | order to get rid of a few compiler warnings. | ||
| 1136 | |||
| 1137 | * erc.el (erc-modules): Enable readonly by default. This will | ||
| 1138 | prevent new users from accidentally removing old messages, which | ||
| 1139 | could be disconcerting. Also enable stamp by default, since | ||
| 1140 | timestamps are a fairly standard feature among IRC clients. | ||
| 1141 | |||
| 1142 | * erc-button.el: Munge whitespace. | ||
| 1143 | |||
| 1144 | * erc-identd.el (erc-identd-start): Instead of throwing an error, | ||
| 1145 | just try to use the obsolete function. | ||
| 1146 | |||
| 1147 | 2006-01-22 Michael Olson <mwolson@gnu.org> | ||
| 1148 | |||
| 1149 | * erc-backend.el (erc-decode-string-from-target): Make sure that | ||
| 1150 | we have a string as an argument. If not, coerce it to the empty | ||
| 1151 | string. Hopefully, this will work painlessly around an edge case | ||
| 1152 | related to quitting ERC around the same time a message comes in. | ||
| 1153 | |||
| 1154 | 2006-01-22 Johan Bockgård <bojohan@users.sourceforge.net> | ||
| 1155 | |||
| 1156 | * erc-track.el: Use `(eval-when-compile (require 'cl))' (for | ||
| 1157 | `case'). Doc fixes. | ||
| 1158 | (erc-find-parsed-property): Simplify. | ||
| 1159 | (erc-track-get-active-buffer): Fix logic. Simplify. | ||
| 1160 | (erc-track-switch-buffer): Remove unused variable `dir'. Simplify. | ||
| 1161 | |||
| 1162 | * erc-speak.el: Doc fixes. | ||
| 1163 | (erc-speak-region): `propertize' --> `erc-propertize'. | ||
| 1164 | |||
| 1165 | * erc-dcc.el (erc-dcc-chat-parse-output): `propertize' --> | ||
| 1166 | `erc-propertize'. | ||
| 1167 | |||
| 1168 | * erc-button.el (erc-button-add-button): Take erc-fill-prefix into | ||
| 1169 | account when wrapping URLs. | ||
| 1170 | |||
| 1171 | * erc-bbdb.el (erc-bbdb-elide-display): Doc fix. | ||
| 1172 | |||
| 1173 | * erc-backend.el (define-erc-response-handler): Doc fix. | ||
| 1174 | |||
| 1175 | 2006-01-22 Michael Olson <mwolson@gnu.org> | ||
| 1176 | |||
| 1177 | * erc.el (erc-update-modules): Use `require' instead of `load', | ||
| 1178 | but prevent it from causing errors, in order to preserve the | ||
| 1179 | previous behavior. | ||
| 1180 | |||
| 1181 | 2006-01-21 Michael Olson <mwolson@gnu.org> | ||
| 1182 | |||
| 1183 | * FOR-RELEASE (Source): Mark cl task as done. | ||
| 1184 | 352 | ||
| 1185 | * Makefile (erc-auto.el): Call erc-generate-autoloads rather than | 353 | See ChangeLog.06 for earlier changes. |
| 1186 | generate-autoloads. | ||
| 1187 | (erc-auto.el, %.elc): Don't show command, just its output. | ||
| 1188 | 354 | ||
| 1189 | * NEWS: Add items from 2005-01-01 to 2005-08-13. | 355 | Copyright (C) 2007 Free Software Foundation, Inc. |
| 1190 | |||
| 1191 | * debian/copyright (Copyright): Update. | ||
| 1192 | |||
| 1193 | * erc-auto.in (erc-generate-autoloads): Rename from | ||
| 1194 | generate-autoloads. | ||
| 1195 | |||
| 1196 | * erc.el, erc-autoaway.el, erc-backend.el: Use | ||
| 1197 | erc-server-process-alive instead of erc-process-alive. | ||
| 1198 | |||
| 1199 | * erc.el, erc-backend.el, erc-ezbounce.el, erc-list.el, | ||
| 1200 | erc-log.el, erc-match.el, erc-nets.el, erc-netsplit.el, | ||
| 1201 | erc-nicklist.el, erc-nickserv.el, erc-notify.el, erc-pcomplete.el: | ||
| 1202 | Use (eval-when-compile (require 'cl)), so that compilation doesn't | ||
| 1203 | fail. | ||
| 1204 | |||
| 1205 | * erc-fill.el, erc-truncate.el: Whitespace munging. | ||
| 1206 | |||
| 1207 | * erc.el: Update copyright notice. Remove eval-after-load code. | ||
| 1208 | (erc-with-buffer): Docfix. | ||
| 1209 | (erc-once-with-server-event, erc-once-with-server-event-global) | ||
| 1210 | (erc-with-buffer, erc-with-all-buffers-of-server): Use erc-gensym | ||
| 1211 | instead of gensym. | ||
| 1212 | (erc-banlist-update): Use erc-delete-if instead of delete-if. | ||
| 1213 | (erc): Call `erc-update-modules' here. | ||
| 1214 | |||
| 1215 | * erc-backend.el: Require 'erc-compat to minimize compiler | ||
| 1216 | warnings. | ||
| 1217 | (erc-decode-parsed-server-response): Docfix. | ||
| 1218 | (erc-server-process-alive): Move here from erc.el and rename from | ||
| 1219 | `erc-process-alive'. | ||
| 1220 | (erc-server-send, erc-remove-channel-users): Make sure process is | ||
| 1221 | alive before sending data to it. | ||
| 1222 | |||
| 1223 | * erc-bbdb.el: Update copyright years. | ||
| 1224 | (erc-bbdb-whois): Remove overexuberant comment. | ||
| 1225 | |||
| 1226 | * erc-button.el: Require erc-fill, since we make liberal use of | ||
| 1227 | `erc-fill-column'. | ||
| 1228 | |||
| 1229 | * erc-compat.el (erc-const-expr-p, erc-list*, erc-assert): New | ||
| 1230 | functions, the latter of which provides an `assert' equivalent. | ||
| 1231 | (erc-remove-if-not): New function that provides a simple | ||
| 1232 | implementation of `remove-if-not'. | ||
| 1233 | (erc-gensym): New function that provides a simple implementation | ||
| 1234 | of `gensym'. | ||
| 1235 | (erc-delete-if): New function that provides a simple | ||
| 1236 | implementation of `delete-if'. | ||
| 1237 | (erc-member-if): New function that provides a simple | ||
| 1238 | implementation of `member-if'. | ||
| 1239 | (field-end): Remove this, since it is unused, and later versions | ||
| 1240 | of XEmacs have this function already. | ||
| 1241 | (erc-function-arglist): Moved here from erc.el. | ||
| 1242 | (erc-delete-dups): New compatibility function for dealing with | ||
| 1243 | XEmacs. | ||
| 1244 | (erc-subseq): New function copied from cl-extra.el. | ||
| 1245 | |||
| 1246 | * erc-dcc.el: Require pcomplete during compilation to avoid | ||
| 1247 | compiler warnings. | ||
| 1248 | (erc-unpack-int, erc-dcc-send-filter) | ||
| 1249 | (erc-dcc-get-filter): Use erc-assert instead of assert. | ||
| 1250 | (pcomplete/erc-mode/DCC): Use erc-remove-if-not instead of | ||
| 1251 | remove-if-not. | ||
| 1252 | |||
| 1253 | * erc-match.el (erc-log-matches): Fix compiler warning. | ||
| 1254 | |||
| 1255 | * erc-nicklist.el: Update copyright notice. | ||
| 1256 | (erc-nicklist-menu): Change use of caadr to (car (cadr ...)). | ||
| 1257 | (erc-nicklist-bitlbee-connected-p): Remove. | ||
| 1258 | (erc-nicklist-insert-medium-name-or-icon): Accept channel | ||
| 1259 | argument. Use it to determine whether we are on bitlbee. Now | ||
| 1260 | that bitlbee names its channel "&bitlbee", this is trivial. | ||
| 1261 | (erc-nicklist-insert-contents): Pass channel as specified above. | ||
| 1262 | Don't try to determine whether we are on bitlbee here. | ||
| 1263 | (erc-nicklist-channel-users-info): Use erc-remove-if-not instead | ||
| 1264 | of remove-if-not. | ||
| 1265 | (erc-nicklist-search-for-nick): Use erc-member-if instead of | ||
| 1266 | member-if. | ||
| 1267 | |||
| 1268 | * erc-notify.el (erc-notify-QUIT): Use erc-delete-if with a | ||
| 1269 | partially-evaluated lambda expression instead of `delete' and | ||
| 1270 | `find'. | ||
| 1271 | |||
| 1272 | * erc-track.el: Use erc-assert. | ||
| 1273 | (erc-track-modified-channels): Remove use of `return'. | ||
| 1274 | (erc-track-modified-channels): Use `cadr' instead of `second', | ||
| 1275 | since otherwise we would need yet another eval-when-compile line. | ||
| 1276 | |||
| 1277 | 2006-01-19 Michael Olson <mwolson@gnu.org> | ||
| 1278 | |||
| 1279 | * erc-backend.el (erc-process-sentinel-1): Remove attempt to | ||
| 1280 | detect SIGPIPE, since it doesn't work. | ||
| 1281 | |||
| 1282 | 2006-01-10 Diane Murray <disumu@x3y2z1.net> | ||
| 1283 | |||
| 1284 | * erc-spelling.el: Updated copyright years. | ||
| 1285 | (define-erc-module): Enable/disable `flyspell-mode' for all open | ||
| 1286 | ERC buffers as well. | ||
| 1287 | (erc-spelling-dictionaries): Reworded customize description. | ||
| 1288 | |||
| 1289 | * erc.el (erc-command-symbol): New function. | ||
| 1290 | (erc-extract-command-from-line): Use `erc-command-symbol'. This | ||
| 1291 | fixes a bug where "Symbol's function definition is void: | ||
| 1292 | erc-cmd-LIST" would be shown after typing /list at the prompt (the | ||
| 1293 | command was interned because erc-menu.el uses it and is enabled by | ||
| 1294 | default whereas erc-list.el is not). | ||
| 1295 | |||
| 1296 | * NEWS: Started a list of renamed variables. | ||
| 1297 | |||
| 1298 | * erc.el: Reworded the message sent when defining variable | ||
| 1299 | aliases. | ||
| 1300 | (erc-command-indicator-face): Doc fix. | ||
| 1301 | (erc-modules): Enable the match module by default which makes | ||
| 1302 | current nickname highlighting on as the default. | ||
| 1303 | |||
| 1304 | * erc-button.el: Updated copyright years. | ||
| 1305 | (erc-button): New face. | ||
| 1306 | (erc-button-face): Use `erc-button'. | ||
| 1307 | (erc-button-nickname-face): New customizable variable. | ||
| 1308 | (erc-button-add-nickname-buttons, erc-button-add-buttons-1): Send | ||
| 1309 | new argument to `erc-button-add-button'. | ||
| 1310 | (erc-button-add-button): Doc fix. Added new argument to function | ||
| 1311 | definition, NICK-P. If it's a nickname, use | ||
| 1312 | `erc-button-nickname-face', otherwise use `erc-button-face'. This | ||
| 1313 | makes channel tracking and buttons work better together when | ||
| 1314 | `erc-button-buttonize-nicks' is enabled, since there is a nickname | ||
| 1315 | on just about every line. | ||
| 1316 | |||
| 1317 | * erc-track.el (erc-track-use-faces): Doc fix. | ||
| 1318 | (erc-track-faces-priority-list): Added `erc-button' to list. | ||
| 1319 | (erc-track-priority-faces-only): Doc fix. | ||
| 1320 | |||
| 1321 | 2006-01-09 Diane Murray <disumu@x3y2z1.net> | ||
| 1322 | |||
| 1323 | * erc-button.el (erc-button-url-regexp): Use `concat' so the | ||
| 1324 | regexp is not one long line. | ||
| 1325 | (erc-button-alist): Fixed so that customizing works correctly. | ||
| 1326 | Reorganized. Removed lambda functions with more than two lines. | ||
| 1327 | Doc fix. | ||
| 1328 | (erc-button-describe-symbol, erc-button-beats-to-time): New | ||
| 1329 | functions. Moved from `erc-button-alist'. | ||
| 1330 | |||
| 1331 | 2006-01-07 Michael Olson <mwolson@gnu.org> | ||
| 1332 | |||
| 1333 | * erc-backend.el (erc-process-sentinel-1): Don't try to re-open a | ||
| 1334 | process if a SIGPIPE occurs. This happens when a new message | ||
| 1335 | comes in at the same time a /quit is requested. | ||
| 1336 | (erc-process-sentinel): Use string-match rather than string= to do | ||
| 1337 | these comparisons. Matching literal newlines makes me nervous. | ||
| 1338 | |||
| 1339 | * erc-track.el (erc-track-remove-from-mode-line): Handle case | ||
| 1340 | where global-mode-string is not a list. Emacs22 permits this. | ||
| 1341 | |||
| 1342 | |||
| 1343 | See ChangeLog.05 for earlier changes. | ||
| 1344 | |||
| 1345 | Copyright (C) 2006, 2007 Free Software Foundation, Inc. | ||
| 1346 | 356 | ||
| 1347 | This file is part of GNU Emacs. | 357 | This file is part of GNU Emacs. |
| 1348 | 358 | ||
| @@ -1366,4 +376,4 @@ See ChangeLog.05 for earlier changes. | |||
| 1366 | ;; add-log-time-zone-rule: t | 376 | ;; add-log-time-zone-rule: t |
| 1367 | ;; End: | 377 | ;; End: |
| 1368 | 378 | ||
| 1369 | ;; arch-tag: 865a75f6-2bcb-46df-bf0c-b514dadf688a | 379 | ;; arch-tag: 3369b6e5-96b1-4b32-96cd-9a905c747496 |
diff --git a/lisp/erc/ChangeLog.06 b/lisp/erc/ChangeLog.06 new file mode 100644 index 00000000000..f7d891cb5f6 --- /dev/null +++ b/lisp/erc/ChangeLog.06 | |||
| @@ -0,0 +1,1457 @@ | |||
| 1 | 2006-12-28 Michael Olson <mwolson@gnu.org> | ||
| 2 | |||
| 3 | * erc-list.el: Change header to mention that this is part of ERC, | ||
| 4 | rather than GNU Emacs. | ||
| 5 | |||
| 6 | * erc-networks.el (erc-server-alist): Add Ars OpenIRC and | ||
| 7 | LinuxChix networks. Thanks to Angelina Carlton for mentioning | ||
| 8 | them. Properly escape periods in Konfido.Net and Kewl.Org. | ||
| 9 | (erc-networks-alist): Add entries for Ars and LinuxChix, though | ||
| 10 | the latter does not actually provide an announced network name. | ||
| 11 | |||
| 12 | * erc-services.el (erc-nickserv-identify-mode): Add 'both method, | ||
| 13 | which waits for a NickServ message if the network supports it, | ||
| 14 | otherwise sends the password after connecting. | ||
| 15 | (erc-nickserv-identify-mode): Default to 'both. | ||
| 16 | (erc-nickserv-passwords): Add OFTC and Azzurra to custom options. | ||
| 17 | (erc-nickserv-alist): Indentation fix. | ||
| 18 | (erc-nickserv-identify-on-connect) | ||
| 19 | (erc-nickserv-identify-on-nick-change): Handle 'both method. | ||
| 20 | |||
| 21 | 2006-12-28 Leo <sdl.web@gmail.com> (tiny change) | ||
| 22 | |||
| 23 | * erc.el (erc-iswitchb): Wrap body in unwind-protect so that | ||
| 24 | hitting C-g does not leave iswitchb-mode on. | ||
| 25 | |||
| 26 | 2006-12-27 Michael Olson <mwolson@gnu.org> | ||
| 27 | |||
| 28 | * erc.el (erc-cmd-RECONNECT): New command that calls | ||
| 29 | erc-server-reconnect. | ||
| 30 | |||
| 31 | * erc-backend.el (erc-server-reconnect-count): New server variable | ||
| 32 | that keeps track of reconnection attempts. | ||
| 33 | (erc-server-reconnect-attempts): New option that determines the | ||
| 34 | number of reconnection attempts that ERC will make per server. | ||
| 35 | (erc-server-reconnect-timeout): New option that determines the | ||
| 36 | amount of time, in seconds, that ERC will wait between successive | ||
| 37 | reconnect attempts. | ||
| 38 | (erc-server-reconnect): New function that reestablishes the | ||
| 39 | current IRC connection. Move some commands from | ||
| 40 | erc-process-sentinel-1 here. | ||
| 41 | (erc-process-sentinel-1): If we have been disconnected, loop until | ||
| 42 | we either reconnect or run out of attempts. | ||
| 43 | (erc-server-reconnect-p): Move higher and make this a defsubst, | ||
| 44 | since I'm worried about the current buffer changing from | ||
| 45 | underneath us. Implement limit of number of reconnect attempts.. | ||
| 46 | |||
| 47 | * erc.texi (Getting Started): Update for /RECONNECT command. | ||
| 48 | |||
| 49 | 2006-12-26 Michael Olson <mwolson@gnu.org> | ||
| 50 | |||
| 51 | * erc.el (erc-open): Restore old point correctly, or at least get | ||
| 52 | closer to doing so than before. | ||
| 53 | |||
| 54 | 2006-12-13 Leo <sdl.web@gmail.com> (tiny change) | ||
| 55 | |||
| 56 | * erc.el (erc-iswitchb): Temporarily enable iswitchb mode if it | ||
| 57 | isn't active already, instead of leaving it on. | ||
| 58 | |||
| 59 | 2006-12-10 Juanma Barranquero <lekktu@gmail.com> | ||
| 60 | |||
| 61 | * erc-ezbounce.el (erc-ezb-init-session-list): Doc fix. | ||
| 62 | |||
| 63 | 2006-12-08 Michael Olson <mwolson@gnu.org> | ||
| 64 | |||
| 65 | * erc.el: Re-evaluate contributions from a contributor, and found | ||
| 66 | them under 15 lines of non-obvious code, so it is safe to remove | ||
| 67 | the copyright notice. | ||
| 68 | (erc-modules): Remove list module. | ||
| 69 | |||
| 70 | * erc-list.el: Remove, since a contributor who has not completed | ||
| 71 | their assignment has contributed significantly more than 15 lines | ||
| 72 | of code to this file. | ||
| 73 | |||
| 74 | 2006-11-28 Juanma Barranquero <lekktu@gmail.com> | ||
| 75 | |||
| 76 | * erc.el (erc-cmd-BANLIST, erc-cmd-MASSUNBAN): Simplify. | ||
| 77 | (erc-prompt-for-channel-key, erc-ignore-reply-list, erc-send-post-hook) | ||
| 78 | (erc-active-buffer, erc-join-buffer, erc-frame-alist, erc-with-buffer) | ||
| 79 | (erc-modules, erc-display-message-highlight, erc-process-input-line) | ||
| 80 | (erc-cmd-HELP, erc-server-hooks, erc-echo-notice-in-user-buffers) | ||
| 81 | (erc-format-my-nick, erc-echo-notice-in-user-and-target-buffers) | ||
| 82 | (erc-echo-notice-in-first-user-buffer, erc-connection-established) | ||
| 83 | (erc-update-user-nick, erc-update-channel-member, erc-highlight-notice) | ||
| 84 | (erc-command-symbol, erc-add-query, erc-process-script-line) | ||
| 85 | (erc-determine-parameters, erc-client-info, erc-popup-input-buffer): | ||
| 86 | (erc-script-echo): Fix typos in docstrings. | ||
| 87 | (erc-channel-user-op-p, erc-channel-user-voice-p, erc-startup-file-list) | ||
| 88 | (define-erc-module, erc-once-with-server-event) | ||
| 89 | (erc-once-with-server-event-global, erc-debug-irc-protocol) | ||
| 90 | (erc-log-irc-protocol, erc-cmd-LOAD, erc-update-user) | ||
| 91 | (erc-update-current-channel-member, erc-load-script): | ||
| 92 | (erc-mode-line-away-status-format): Doc fixes. | ||
| 93 | |||
| 94 | 2006-11-20 Andrea Russo <rastandy@inventati.org> (tiny change) | ||
| 95 | |||
| 96 | * erc-dcc.el (erc-dcc-chat-setup): Initialize `erc-input-marker' | ||
| 97 | before calling `erc-display-prompt'. | ||
| 98 | |||
| 99 | 2006-11-24 Juanma Barranquero <lekktu@gmail.com> | ||
| 100 | |||
| 101 | * erc.el (erc-after-connect, erc-open-ssl-stream) | ||
| 102 | (erc-display-line-1, erc-display-line): | ||
| 103 | * erc-backend.el (005): Fix space/tab mixup in docstrings. | ||
| 104 | |||
| 105 | 2006-11-20 Michael Olson <mwolson@gnu.org> | ||
| 106 | |||
| 107 | * erc.el (erc-version-string): Call this Version 5.2 stable | ||
| 108 | pre-release, since it diverges slightly from our 5.2 branch, in | ||
| 109 | that unstable features are not included. | ||
| 110 | (erc-update-modules): Display better error message when module not | ||
| 111 | found. | ||
| 112 | |||
| 113 | 2006-11-12 Michael Olson <mwolson@gnu.org> | ||
| 114 | |||
| 115 | * erc-log.el: Save all log buffers when Emacs exits, in case | ||
| 116 | someone ignores the warning about open processes. Remove the | ||
| 117 | advice code in the commentary. | ||
| 118 | (erc-save-query-buffers): Docfix. | ||
| 119 | (erc-log-save-all-buffers): New function that saves all ERC | ||
| 120 | buffers to logs. | ||
| 121 | (erc-current-logfile): Fix bug in filename selection, where the | ||
| 122 | current buffer was erroneously being preferred over the given | ||
| 123 | buffer. | ||
| 124 | |||
| 125 | 2006-11-08 Michael Olson <mwolson@gnu.org> | ||
| 126 | |||
| 127 | * erc.el (erc-string-to-port): Avoid error when a numerical port | ||
| 128 | is passed. Thanks to Zekeriya KOÇ for the report. | ||
| 129 | |||
| 130 | 2006-11-08 Łukasz Demianiuk <ldemianiuk@gmail.com> (tiny change) | ||
| 131 | |||
| 132 | * erc.el (erc-header-line): Fix typo. | ||
| 133 | |||
| 134 | 2006-11-06 Juanma Barranquero <lekktu@gmail.com> | ||
| 135 | |||
| 136 | * erc-dcc.el (erc-dcc-send-file): Fix typo in error message. | ||
| 137 | |||
| 138 | * erc.el (read-passwd): | ||
| 139 | * erc-autoaway.el (erc-autoaway-reestablish-idletimer): | ||
| 140 | * erc-truncate.el (truncate): Fix typo in docstring. | ||
| 141 | |||
| 142 | 2006-10-21 Michael Olson <mwolson@gnu.org> | ||
| 143 | |||
| 144 | * erc.el (erc-iswitchb): Fix bug when hitting C-c C-b without | ||
| 145 | first loading iswitchb. Thanks to Leo for the report. | ||
| 146 | |||
| 147 | 2006-10-10 Michael Olson <mwolson@gnu.org> | ||
| 148 | |||
| 149 | * erc.el (erc-default-port): Make the default be 6667 instead of | ||
| 150 | ircd. since Mac OS X apparently has problems with looking up that | ||
| 151 | port name. | ||
| 152 | |||
| 153 | * erc-backend.el (353): Receive names after displaying the initial | ||
| 154 | message, instead of before. | ||
| 155 | |||
| 156 | 2006-10-05 Diane Murray <disumu@x3y2z1.net> | ||
| 157 | |||
| 158 | * erc.el (erc-my-nick-face): New face. | ||
| 159 | (erc): Use FULL-NAME argument, not `erc-user-full-name'. This | ||
| 160 | fixes a bug where the :full-name argument passed to the function | ||
| 161 | was not respected. | ||
| 162 | (erc-format-my-nick): Use `erc-my-nick-face'. This should help | ||
| 163 | make it easier to find messages you sent in conversations when | ||
| 164 | `erc-show-my-nick' is non-nil. | ||
| 165 | (erc-compute-server): Doc fix. | ||
| 166 | |||
| 167 | 2006-10-01 John J Foerch <jjfoerch@earthlink.net> (tiny change) | ||
| 168 | |||
| 169 | * erc-stamp.el (erc-insert-timestamp-right): Exclude the newline | ||
| 170 | from the erc-timestamp field. | ||
| 171 | |||
| 172 | 2006-09-11 Michael Olson <mwolson@gnu.org> | ||
| 173 | |||
| 174 | * erc-nicklist.el (erc-nicklist-insert-contents): Add missing | ||
| 175 | parenthesis. Thanks to Stephan Stahl for the report. | ||
| 176 | |||
| 177 | 2006-09-10 Eric Hanchrow <offby1@blarg.net> (tiny change) | ||
| 178 | |||
| 179 | * erc.el (erc-cmd-IGNORE): Prompt user if this might be a regexp | ||
| 180 | instead of a single user. | ||
| 181 | |||
| 182 | 2006-09-10 Michael Olson <mwolson@gnu.org> | ||
| 183 | |||
| 184 | * erc.el (erc-generate-new-buffer-name): If this is a server | ||
| 185 | buffer and a process exists already, create a new buffer. | ||
| 186 | (erc-open): If the IRC session was continued, restore the old | ||
| 187 | point. Thanks to Stephan Stahl for the report. | ||
| 188 | (erc-member-ignore-case): Coding style tweak. | ||
| 189 | (erc-cmd-UNIGNORE): Quote the user before comparison. If we don't | ||
| 190 | find the user listed verbatim, try to match them against the list | ||
| 191 | using string-match. In this case, prompt as to whether the regexp | ||
| 192 | should be removed. | ||
| 193 | (erc-ignored-user-p): Remove CL-ism. | ||
| 194 | |||
| 195 | * erc-autoaway.el (erc-autoaway-possibly-set-away): Check to see | ||
| 196 | whether we are already away. | ||
| 197 | |||
| 198 | * erc-menu.el: Fix potential compiler warning. | ||
| 199 | |||
| 200 | 2006-09-07 Diane Murray <disumu@x3y2z1.net> | ||
| 201 | |||
| 202 | * erc.el: Updated Commentary and URL. | ||
| 203 | (erc-iswitchb, erc-display-line, erc-set-modes, erc-update-modes) | ||
| 204 | (erc-arrange-session-in-multiple-windows): No need to check if | ||
| 205 | `erc-server-process' is bound. | ||
| 206 | (erc-server-buffer-live-p): Doc fix. | ||
| 207 | (erc-part-from-channel): Don't use any initial contents at prompt. | ||
| 208 | (erc-format-nick, erc-format-@nick): Doc fix. Use `when'. | ||
| 209 | (s367): Fixed to support only banmask and channel which is the | ||
| 210 | standard. Also, there's no reason to add a message to each banned | ||
| 211 | user entry trying to persuade the user to use /banlist instead of | ||
| 212 | /mode #channel +b. That part of the message was a little | ||
| 213 | confusing, anyways. | ||
| 214 | (s367-set-by): New catalog entry. The user who set the ban and | ||
| 215 | the time of ban seem to be specific to only certain servers such | ||
| 216 | as freenode. | ||
| 217 | |||
| 218 | * erc-autoaway.el (erc-autoaway-idletimer): Doc fix. | ||
| 219 | |||
| 220 | * erc-backend.el (erc-server-process-alive): No need to check if | ||
| 221 | `erc-server-process' is bound. | ||
| 222 | (367): Use s367 or s367-set-by where appropriate. | ||
| 223 | |||
| 224 | * erc-compat.el: Fixed URL. | ||
| 225 | |||
| 226 | * erc-dcc.el: Updated copyright years. Added Usage section. | ||
| 227 | Changed supported Emacs version number from 21.3.50 to 22 in | ||
| 228 | Commentary. | ||
| 229 | |||
| 230 | * erc-ibuffer.el (erc-server-name, erc-target, erc-away): No need | ||
| 231 | to check if `erc-server-process' is bound. | ||
| 232 | |||
| 233 | * erc-nicklist.el: Added to the Commentary section an explanation | ||
| 234 | that `erc-nicklist-quit' should be called from within the nicklist | ||
| 235 | buffer. Set file coding to utf-8 so a contributor's name is | ||
| 236 | displayed correctly. | ||
| 237 | (erc-nicklist-icons-directory): Use customize type directory | ||
| 238 | instead of string. | ||
| 239 | (erc-nicklist-insert-contents): Set bbdb-nick to an empty string | ||
| 240 | if it wasn't found. This fixes a bug where an error would occur | ||
| 241 | when using `string=' on bbdb-nick if it was nil. | ||
| 242 | |||
| 243 | * erc-replace.el: Removed URL from file information since it | ||
| 244 | doesn't exist. | ||
| 245 | |||
| 246 | * erc-sound.el: Updated copyright years. Fixed Commentary and | ||
| 247 | added Usage section. | ||
| 248 | (define-erc-module): Add and remove `erc-ctcp-query-SOUND' to | ||
| 249 | `erc-ctcp-query-SOUND-hook' here. Removed the keybinding | ||
| 250 | definitions. | ||
| 251 | (erc-play-sound, erc-default-sound, erc-cmd-SOUND) | ||
| 252 | (erc-ctcp-query-SOUND): Doc fix. | ||
| 253 | (erc-play-command): Removed, not necessary anymore. | ||
| 254 | (erc-ctcp-query-SOUND-hook): Set to nil as default. Moved up | ||
| 255 | higher in code, added docstring. | ||
| 256 | (erc-play-sound): Use `play-sound-file'. It exists in GNU Emacs | ||
| 257 | as well since version 21 or earlier. Removed commented-out older | ||
| 258 | version of function. | ||
| 259 | |||
| 260 | * NEWS: Fixed formatting, added channel tracking change. | ||
| 261 | |||
| 262 | 2006-09-03 Diane Murray <disumu@x3y2z1.net> | ||
| 263 | |||
| 264 | * erc.el: M-x erc RET can now be used to start ERC. | ||
| 265 | (erc-open): Renamed from `erc'. | ||
| 266 | (erc-before-connect): Change erc-select to erc. | ||
| 267 | (erc): Renamed from `erc-select'. Use `erc-open'. | ||
| 268 | (erc-select): Defined as alias of `erc'. | ||
| 269 | (erc-ssl): Renamed from `erc-select-ssl'. Use `erc'. | ||
| 270 | (erc-select-ssl): Defined as alias of `erc-ssl'. | ||
| 271 | (erc-cmd-SERVER): Use `erc'. | ||
| 272 | (erc-query, erc-handle-irc-url): Use `erc-open'. | ||
| 273 | |||
| 274 | * erc-backend.el (erc-process-sentinel-1, JOIN): Use `erc-open'. | ||
| 275 | |||
| 276 | * erc-menu.el (erc-menu-definition): Use `erc'. | ||
| 277 | |||
| 278 | * erc-networks.el: Updated copyright years. | ||
| 279 | (erc-server-select): Use keyword arguments when calling `erc'. | ||
| 280 | |||
| 281 | * erc.texi (Getting Started, Connecting): Changed erc-select to | ||
| 282 | erc. | ||
| 283 | |||
| 284 | * README: Changed erc-select to erc. | ||
| 285 | |||
| 286 | * NEWS: Added note about these changes. | ||
| 287 | |||
| 288 | * FOR-RELEASE: Marked this item as done. | ||
| 289 | |||
| 290 | 2006-08-21 Diane Murray <disumu@x3y2z1.net> | ||
| 291 | |||
| 292 | * erc-track.el (erc-track-mode-line-mouse-face): New variable. | ||
| 293 | (erc-make-mode-line-buffer-name): Add help-echo and mouse-face | ||
| 294 | properties to channel name. | ||
| 295 | |||
| 296 | 2006-08-20 Michael Olson <mwolson@gnu.org> | ||
| 297 | |||
| 298 | * erc-identd.el (erc-identd): New customization group. | ||
| 299 | (erc-identd-port): New option that specifies the port to use if | ||
| 300 | none is given as an argument to erc-identd-start. | ||
| 301 | (identd): Place erc-identd-quickstart in erc-connect-pre-hook | ||
| 302 | instead of erc-identd-start so that we deal with the different | ||
| 303 | meaning of the first argument. | ||
| 304 | (erc-identd-start): Use erc-identd-port. | ||
| 305 | (erc-identd-quickstart): New function that ignores any arguments | ||
| 306 | and calls erc-identd-start. | ||
| 307 | |||
| 308 | * erc.el (erc-with-server-buffer): New macro that switches to the | ||
| 309 | current ERC server buffer and runs some code. If no server buffer | ||
| 310 | is available, return nil. This is a useful way to access | ||
| 311 | variables in the server buffer. | ||
| 312 | (erc-get-server-user, erc-add-server-user) | ||
| 313 | (erc-remove-server-user, erc-change-user-nickname) | ||
| 314 | (erc-get-server-nickname-list, erc-get-server-nickname-alist) | ||
| 315 | (erc-ison-p, erc-active-buffer, erc-cmd-IGNORE) | ||
| 316 | (erc-cmd-UNIGNORE, erc-cmd-IDLE, erc-cmd-NICK, erc-cmd-BANLIST) | ||
| 317 | (erc-cmd-MASSUNBAN, erc-nickname-in-use, erc-ignored-user-p) | ||
| 318 | (erc-format-channel-modes): Use it. | ||
| 319 | (erc-once-with-server-event, erc-once-with-server-event-global) | ||
| 320 | (erc-with-buffer, erc-with-all-buffers-of-server): Use make-symbol | ||
| 321 | instead of gensym. | ||
| 322 | (erc-open-server-buffer-p): New function that returns non-nil if | ||
| 323 | the given buffer is an ERC server buffer that has an open IRC | ||
| 324 | process. | ||
| 325 | (erc-with-buffer): Use buffer-live-p here to set a good example, | ||
| 326 | though it isn't really needed here. | ||
| 327 | (erc-away): Mention erc-away-time. | ||
| 328 | (erc): Don't propagate the erc-away setting, since it makes more | ||
| 329 | sense to access it from the server buffer. Set up the prompt | ||
| 330 | before connecting rather than after. Run erc-connect-pre-hook | ||
| 331 | with the buffer as an argument, instead of no arguments. | ||
| 332 | (erc-cmd-GAWAY): Use erc-open-server-buffer-p instead of | ||
| 333 | erc-server-buffer-p so that only open connections are set away. | ||
| 334 | (erc-cmd-GQUIT): Use erc-open-server-buffer-p. | ||
| 335 | (erc-process-away): Docfix. Don't set erc-away in channel | ||
| 336 | buffers. | ||
| 337 | (erc-set-current-nick): Make this uniform with the style used in | ||
| 338 | erc-current-nick. | ||
| 339 | (erc-away-time): Rename from erc-away-p, since this is no longer a | ||
| 340 | boolean-style predicate. | ||
| 341 | (erc-format-away-status): Use it. | ||
| 342 | (erc-initialize-log-marker): Accept a `buffer' argument. | ||
| 343 | (erc-connect-pre-hook): Docfix. | ||
| 344 | (erc-connection-established): Make sure this runs in the correct | ||
| 345 | buffer. | ||
| 346 | (erc-set-initial-user-mode): Accept a `buffer' argument. | ||
| 347 | |||
| 348 | * erc-stamp.el (erc-add-timestamp): Use erc-away-time. | ||
| 349 | |||
| 350 | * erc-spelling.el (erc-spelling-init): Use | ||
| 351 | erc-with-server-buffer. Accept `buffer' argument. | ||
| 352 | (spelling): Call erc-spelling-init with the `buffer' argument. | ||
| 353 | |||
| 354 | * erc-speedbar.el (erc-speedbar-buttons): Use erc-server-buffer-p. | ||
| 355 | |||
| 356 | * erc-pcomplete.el (pcomplete/erc-mode/UNIGNORE) | ||
| 357 | (pcomplete-erc-all-nicks): Use erc-with-server-buffer. | ||
| 358 | |||
| 359 | * erc-notify.el (erc-notify-timer, erc-cmd-NOTIFY): Use | ||
| 360 | erc-with-server-buffer. | ||
| 361 | |||
| 362 | * erc-networks.el (erc-network, erc-current-network) | ||
| 363 | (erc-network-name): Use erc-with-server-buffer. | ||
| 364 | |||
| 365 | * erc-netsplit.el (erc-cmd-WHOLEFT): Use erc-with-server-buffer. | ||
| 366 | |||
| 367 | * erc-match.el (erc-log-matches, erc-log-matches-come-back): Use | ||
| 368 | erc-away-time. | ||
| 369 | |||
| 370 | * erc-log.el (log): Use erc-away-time. Remove unnecessary check. | ||
| 371 | Pass `buffer' argument to erc-log-setup-logging instead of setting | ||
| 372 | the current buffer. Ditto for erc-log-disable-logging. | ||
| 373 | (erc-log-setup-logging, erc-log-disable-loggin): Accept a `buffer' | ||
| 374 | argument. | ||
| 375 | |||
| 376 | * erc-list.el (erc-chanlist): Use erc-with-server-buffer. | ||
| 377 | |||
| 378 | * erc-ibuffer.el (erc-away): Use erc-away-time. | ||
| 379 | |||
| 380 | * erc-dcc.el (erc-dcc-get-filter): Temporarily make the buffer | ||
| 381 | read only instead of permanently doing so. | ||
| 382 | |||
| 383 | * erc-compat.el (erc-gensym, *erc-sym-counter*): Remove, since | ||
| 384 | Emacs Lisp has make-symbol, which is better. | ||
| 385 | |||
| 386 | * erc-chess.el (erc-chess-handler, erc-cmd-CHESS): Use | ||
| 387 | erc-with-server-buffer. | ||
| 388 | |||
| 389 | * erc-capab.el (capab-identify): Only deal with server buffers | ||
| 390 | that have an open IRC process. | ||
| 391 | (erc-capab-identify-add-prefix): Use erc-with-server-buffer. | ||
| 392 | |||
| 393 | * erc-backend.el (erc-server-connected): Docfix. Recommend the | ||
| 394 | `erc-server-process-alive' function. | ||
| 395 | (erc-coding-system-for-target): Supply a default target if one is | ||
| 396 | not given. | ||
| 397 | (erc-server-send): Simplify slightly. | ||
| 398 | (erc-call-hooks): Use erc-with-server-buffer. | ||
| 399 | (erc-server-connect, erc-server-setup-periodical-ping): Accept | ||
| 400 | `buffer' argument. | ||
| 401 | |||
| 402 | * erc-autoaway.el (erc-autoaway-reestablish-idletimer): Move | ||
| 403 | higher to avoid an automatic load snafu. | ||
| 404 | (erc-autoaway-some-server-buffer): New function that returns an | ||
| 405 | ERC server buffer with a live connection, or nil otherwise. | ||
| 406 | (erc-autoaway-insinuate-maybe): New function that adds the | ||
| 407 | autoaway reset function to post-command-hook if at least one ERC | ||
| 408 | process is alive. | ||
| 409 | (erc-autoaway-remove-maybe): New function that removes the | ||
| 410 | autoaway reset function from post-command-hook if no ERC process | ||
| 411 | is alive. | ||
| 412 | (autoaway): Don't touch post-command-hook unless an IRC process is | ||
| 413 | already open. Remove our addition to post-command-hook as soon as | ||
| 414 | there are no more IRC processes open. Reset the indicators before | ||
| 415 | connecting to an IRC server, which fixes a bug when re-connecting. | ||
| 416 | (erc-autoaway-reset-idle-user): Call erc-autoaway-remove-maybe if | ||
| 417 | there are no more IRC processes open. | ||
| 418 | (erc-autoaway-set-back): Pick an open IRC process. Accept an | ||
| 419 | argument which is a function call if we can't find one. | ||
| 420 | (erc-autoaway-some-open-server-buffer): New function which returns | ||
| 421 | an ERC server buffer with an open connection and a user that is | ||
| 422 | not away. | ||
| 423 | (erc-autoaway-possibly-set-away, erc-autoaway-set-away): Use it. | ||
| 424 | (erc-autoaway-set-away): Accept a `notest' argument which is used | ||
| 425 | to avoid testing the same thing twice. | ||
| 426 | (erc-autoaway-last-sent-time, erc-autoaway-caused-away): Move | ||
| 427 | higher in file to fix byte-compile warning. | ||
| 428 | |||
| 429 | 2006-08-20 Diane Murray <disumu@x3y2z1.net> | ||
| 430 | |||
| 431 | * erc-backend.el (erc-process-sentinel-1): Doc fix. Let | ||
| 432 | `erc-server-reconnect-p' check all condition cases. | ||
| 433 | (erc-server-reconnect-p): Moved rest of checks from | ||
| 434 | `erc-process-sentinel-1' to here. Now takes an argument, EVENT. | ||
| 435 | |||
| 436 | 2006-08-14 Diane Murray <disumu@x3y2z1.net> | ||
| 437 | |||
| 438 | * erc-menu.el: Updated copyright years. Removed EmacsWiki URL. | ||
| 439 | (erc-menu-definition): Name the menu "ERC" instead of "IRC" to | ||
| 440 | avoid confusion with rcirc and other clients. | ||
| 441 | |||
| 442 | * erc-backend.el (erc-server-banned): New variable. | ||
| 443 | (erc-server-connect): Set `erc-server-banned' to nil. | ||
| 444 | (erc-process-sentinel-1): Use `erc-server-reconnect-p'. | ||
| 445 | (erc-server-reconnect-p): New function. Return non-nil if the | ||
| 446 | user wants automatic reconnects and if the user has not been | ||
| 447 | banned from the server. This should fix a bug where ERC gets into | ||
| 448 | a loop trying to reconnect with no way to stop it when the user is | ||
| 449 | denied access to the server due to a server ban. It might also | ||
| 450 | help when Tor users are blocked from freenode if freenode servers | ||
| 451 | send the 465 message before disconnecting. | ||
| 452 | (465): Handle "banned from server" error notices. | ||
| 453 | |||
| 454 | 2006-08-13 Romain Francoise <romain@orebokech.com> | ||
| 455 | |||
| 456 | * erc-match.el (erc-log-matches-make-buffer): End `y-or-n-p' | ||
| 457 | prompt with a space. | ||
| 458 | |||
| 459 | 2006-08-13 Michael Olson <mwolson@gnu.org> | ||
| 460 | |||
| 461 | * erc-backend.el (erc-server-timed-out): New variable that | ||
| 462 | indicates whether the current connection has timed out due to | ||
| 463 | failure to respond to a ping. | ||
| 464 | (erc-server-send-ping): Set erc-server-timed-out to t. | ||
| 465 | (erc-server-connect): Initialize erc-server-timed-out to nil. | ||
| 466 | (erc-process-sentinel-1): Consult erc-server-timed-out. | ||
| 467 | |||
| 468 | 2006-08-11 Michael Olson <mwolson@gnu.org> | ||
| 469 | |||
| 470 | * erc-fill.el (erc-fill): Skip any initial empty lines so that we | ||
| 471 | avoid errors when inserting disconnect messages and other messages | ||
| 472 | that begin with newlines. | ||
| 473 | |||
| 474 | 2006-08-07 Michael Olson <mwolson@gnu.org> | ||
| 475 | |||
| 476 | * erc-backend.el (erc-process-sentinel-1): Use erc-display-message | ||
| 477 | in several places instead of inserting text. | ||
| 478 | (erc-process-sentinel): Move to the input-marker before removing | ||
| 479 | the prompt. | ||
| 480 | |||
| 481 | * erc.el (erc-port): Fix customization options. | ||
| 482 | (erc-display-message): Handle null type explicitly. Previously, | ||
| 483 | this was relying on a chance side-effect. Cosmetic indentation | ||
| 484 | tweak. | ||
| 485 | (english): Add 'finished and 'terminated entries to the catalog. | ||
| 486 | Add initial and terminal newlines to 'disconnected and | ||
| 487 | 'disconnected-noreconnect entries. Avoid long lines. | ||
| 488 | (erc-cmd-QUIT): Bind the current erc-server-process to | ||
| 489 | server-proc. If the IRC server responds quickly, it is possible | ||
| 490 | for the connection to close, and hence server buffer to be killed, | ||
| 491 | if erc-kill-server-buffer-on-quit is non-nil. This avoids that | ||
| 492 | problem. | ||
| 493 | |||
| 494 | 2006-08-06 Michael Olson <mwolson@gnu.org> | ||
| 495 | |||
| 496 | * erc-backend.el (erc-server-send-queue): Update from Circe | ||
| 497 | version of this function. | ||
| 498 | (erc-server-ping-timer-alist): New variable that keeps track of | ||
| 499 | ping timers according to their associated server. | ||
| 500 | (erc-server-last-received-time): New variable that specifies the | ||
| 501 | time of the last message we received from the server. This is | ||
| 502 | used to detect hung processes. | ||
| 503 | (erc-server-send-ping): New function that sends a ping to the IRC | ||
| 504 | process corresponding with the given buffer. Split from | ||
| 505 | erc-server-setup-periodical-ping. If the server buffer no longer | ||
| 506 | exists, cancel the timer. If the server process has not given us | ||
| 507 | a message, including PING responses, since the last PING, kill it. | ||
| 508 | This is necessary to deal with some aberrant freenode behavior. | ||
| 509 | Idea taken from rcirc. | ||
| 510 | (erc-server-setup-periodical-ping): Rename from | ||
| 511 | erc-server-setup-periodical-server-ping. | ||
| 512 | (erc-server-filter-function): Use erc-current-time instead of | ||
| 513 | current-time. | ||
| 514 | |||
| 515 | * erc.el (erc-arrange-session-in-multiple-windows): Fix bug with | ||
| 516 | multi-tty Emacs. | ||
| 517 | (erc-select-startup-file): Fix bug introduced by recent change. | ||
| 518 | (erc-cmd-QUIT): If the IRC process has not terminated itself | ||
| 519 | within 4 seconds of completing our quit-hook, kill it manually. | ||
| 520 | Freenode in particular needs this. | ||
| 521 | (erc-connection-established): Use erc-server-setup-periodical-ping | ||
| 522 | instead of erc-server-setup-periodical-server-ping. | ||
| 523 | |||
| 524 | 2006-08-05 Michael Olson <mwolson@gnu.org> | ||
| 525 | |||
| 526 | * erc-log.el (erc-log-standardize-name): New function that returns | ||
| 527 | a filename that is safe for use for a log file. | ||
| 528 | (erc-current-logfile): Use it. | ||
| 529 | |||
| 530 | * erc.el (erc-startup-file-list): Search in ~/.emacs.d first, | ||
| 531 | since that is a fairly standard directory. | ||
| 532 | (erc-select-startup-file): Re-write to use | ||
| 533 | convert-standard-filename, which will ensure that MS-DOS systems | ||
| 534 | look for the _ercrc.el file. | ||
| 535 | |||
| 536 | 2006-08-02 Michael Olson <mwolson@gnu.org> | ||
| 537 | |||
| 538 | * erc.el (erc-version-string): Release ERC 5.1.4. | ||
| 539 | |||
| 540 | * Makefile, NEWS, erc.texi: Update for the 5.1.4 release. | ||
| 541 | |||
| 542 | * erc.el (erc-active-buffer): Fix bug that caused messages to go | ||
| 543 | to the wrong buffer. Thanks to offby1 for the report. | ||
| 544 | |||
| 545 | * erc-backend.el (erc-coding-system-for-target): Handle case where | ||
| 546 | target is nil. Thanks to Kai Fan for the patch. | ||
| 547 | |||
| 548 | 2006-07-29 Michael Olson <mwolson@gnu.org> | ||
| 549 | |||
| 550 | * erc-log.el (erc-log-setup-logging): Don't offer to save the | ||
| 551 | buffer. It will be saved automatically killed. Thanks to Johan | ||
| 552 | Bockgård and Tassilo Horn for pointing this out. | ||
| 553 | |||
| 554 | 2006-07-27 Johan Bockgård <bojohan@users.sourceforge.net> | ||
| 555 | |||
| 556 | * erc.el (define-erc-module): Make find-function and find-variable | ||
| 557 | find the names constructed by `define-erc-module' in Emacs 22. | ||
| 558 | |||
| 559 | 2006-07-14 Michael Olson <mwolson@gnu.org> | ||
| 560 | |||
| 561 | * erc-log.el (log): Make sure that we enable logging on | ||
| 562 | already-opened buffers as well, in case the user toggles this | ||
| 563 | module after loading ERC. Also be sure to remove logging ability | ||
| 564 | from all ERC buffers when the module is disabled. | ||
| 565 | (erc-log-setup-logging): Set buffer-file-name to nil rather than | ||
| 566 | the empty string. This should fix some errors that occur when | ||
| 567 | quitting Emacs without first killing all ERC buffers. | ||
| 568 | (erc-log-disable-logging): New function that removes the logging | ||
| 569 | ability from the current buffer. | ||
| 570 | |||
| 571 | * erc-spelling.el (spelling): Use dolist and buffer-live-p. | ||
| 572 | |||
| 573 | 2006-07-12 Michael Olson <mwolson@gnu.org> | ||
| 574 | |||
| 575 | * erc-match.el (erc-log-matches): Bind inhibit-read-only rather | ||
| 576 | than call toggle-read-only. | ||
| 577 | |||
| 578 | * erc.el (erc-handle-irc-url): Move here from erc-goodies.el and | ||
| 579 | add autoload cookie. | ||
| 580 | |||
| 581 | 2006-07-09 Michael Olson <mwolson@gnu.org> | ||
| 582 | |||
| 583 | * erc.el (erc-version-string): Release ERC 5.1.3. | ||
| 584 | |||
| 585 | * erc.texi: Update for the 5.1.3 release. | ||
| 586 | |||
| 587 | * erc-autoaway.el (erc-autoaway-set-back): Fix bug after returning | ||
| 588 | from being set automatically away and current buffer is not an ERC | ||
| 589 | buffer. | ||
| 590 | |||
| 591 | * erc-identd.el: Fix compiler error. | ||
| 592 | |||
| 593 | * erc.texi (Development): Use @subheading instead of @subsection. | ||
| 594 | (Advanced Usage): Add menu. | ||
| 595 | (Connecting): Fully document how to connect to an IRC server. | ||
| 596 | (Options, Tips and Tricks, Sample Configuration): New unwritten | ||
| 597 | sections. | ||
| 598 | |||
| 599 | * erc.el (erc-server, erc-port, erc-nick, erc-nick-uniquifier) | ||
| 600 | (erc-user-full-name, erc-password): Docfixes and customization | ||
| 601 | interface tweaks. | ||
| 602 | (erc-try-new-nick-p): Rename from | ||
| 603 | `erc-manual-set-nick-on-bad-nick-p' and invert meaning. | ||
| 604 | (erc-nickname-in-use): Use `erc-try-new-nick-p'. Check the length | ||
| 605 | of `erc-nick-uniquifier', in case someone wants multiple | ||
| 606 | characters. | ||
| 607 | (erc-compute-server, erc-compute-nick, erc-compute-full-name) | ||
| 608 | (erc-compute-port): Docfixes. | ||
| 609 | |||
| 610 | * erc-log.el (log): Move all add-hook calls here, rather than | ||
| 611 | executing them immediately, and also cause them to be un-hooked | ||
| 612 | when the module is removed. | ||
| 613 | (erc-save-buffer-on-part): Move next to | ||
| 614 | `erc-save-queries-on-quit'. | ||
| 615 | (erc-save-buffer-on-quit, erc-save-queries-on-quit): Default to t. | ||
| 616 | (erc-log-write-after-send, erc-log-write-after-insert): Default to | ||
| 617 | nil. This makes things fast, but reasonably failsafe, by default. | ||
| 618 | |||
| 619 | 2006-07-08 Michael Olson <mwolson@gnu.org> | ||
| 620 | |||
| 621 | * erc-log.el (erc-log-insert-log-on-open): Make this nil by | ||
| 622 | default, since most IRC clients don't do this. | ||
| 623 | (erc-log-write-after-send): New option that determines whether the | ||
| 624 | log file will be written to after every sent message. | ||
| 625 | (erc-log-write-after-insert): New option that determines whether | ||
| 626 | the log file will be written to when new text is added to a logged | ||
| 627 | ERC buffer. | ||
| 628 | (log): Use the aforementioned options. | ||
| 629 | |||
| 630 | * erc.texi (Modules): Document the "completion" module. | ||
| 631 | |||
| 632 | * erc-pcomplete.el (pcomplete-erc-nicks): Make sure that we don't | ||
| 633 | have a nil element in the list when ignore-self is non-nil. | ||
| 634 | |||
| 635 | 2006-07-05 Michael Olson <mwolson@gnu.org> | ||
| 636 | |||
| 637 | * erc.el (erc-modules): Use `set' instead of `set-default', since | ||
| 638 | this setting should never be buffer-local. Add the `page' module | ||
| 639 | to the list. | ||
| 640 | |||
| 641 | * erc.texi (Modules): Add entries for `list' and `page' modules. | ||
| 642 | Change "spell" to "spelling". | ||
| 643 | (History): Use past tense throughout. | ||
| 644 | |||
| 645 | 2006-07-02 Michael Olson <mwolson@gnu.org> | ||
| 646 | |||
| 647 | * erc-backend.el (erc-call-hooks): Fix (stringp nil) error that | ||
| 648 | can happen when doing /PART. | ||
| 649 | |||
| 650 | * erc.el (erc-quit-reason-various-alist) | ||
| 651 | (erc-part-reason-various-alist): In the example, use "^$" as an | ||
| 652 | example, since "" matches anything. | ||
| 653 | (erc-quit-reason-various, erc-part-reason-various): If no argument | ||
| 654 | is given, and no matches are found, use our default reason instead | ||
| 655 | of "nil". | ||
| 656 | |||
| 657 | 2006-06-30 Michael Olson <mwolson@gnu.org> | ||
| 658 | |||
| 659 | * erc.texi (Modules): Mention identd. | ||
| 660 | (Releases): Update mailing list address and download location. | ||
| 661 | (Development): Refactor. Provide updated directions for Arch. | ||
| 662 | Make URLs clickable. | ||
| 663 | (Keystroke Summary): Typo fix. Use more Texinfo syntax. | ||
| 664 | (Getting Started): Give simpler example. We do not need to | ||
| 665 | explicitly load every module. | ||
| 666 | (History): Update. | ||
| 667 | |||
| 668 | * erc-autoaway.el, erc-join.el, erc-backend.el, erc-bbdb.el: | ||
| 669 | erc-button.el, erc-chess.el, erc-compat.el, erc-hecomplete.el: | ||
| 670 | erc-dcc.el, erc-ezbounce.el, erc-fill.el, erc-ibuffer.el: | ||
| 671 | erc-imenu.el, erc-list.el, erc-log.el, erc-match.el, erc-menu.el: | ||
| 672 | erc-networks.el, erc-netsplit.el, erc-nicklist.el: | ||
| 673 | erc-services.el, erc-pcomplete.el, erc-replace.el, erc-ring.el: | ||
| 674 | erc-speedbar.el, erc-spelling.el, erc-stamp.el, erc-track.el: | ||
| 675 | erc.el: Remove version strings. | ||
| 676 | |||
| 677 | * erc.el (erc-cmd-SMV): Remove, since we do not have meaningful | ||
| 678 | module versions anymore. | ||
| 679 | (erc-version-modules): Remove, since we do not use this function | ||
| 680 | anymore. | ||
| 681 | (erc-latest-version, erc-ediff-latest-version): Remove, since this | ||
| 682 | was only useful back when ERC consisted of one file. | ||
| 683 | (erc-modules): Add line for identd. | ||
| 684 | (erc-get-channel-mode-from-keypress): Typo fix. | ||
| 685 | |||
| 686 | * erc-imenu.el: Remove unnecessary lines in header. | ||
| 687 | |||
| 688 | * erc-goodies.el (erc-handle-irc-url): Docfix. | ||
| 689 | |||
| 690 | * erc-identd.el: Define an ERC module for this. | ||
| 691 | (erc-identd-start): Don't create a process buffer if possible. | ||
| 692 | Otherwise, use conventional hidden names for process buffers. | ||
| 693 | |||
| 694 | 2006-06-29 Michael Olson <mwolson@gnu.org> | ||
| 695 | |||
| 696 | * erc-backend.el (erc-coding-system-for-target): Match | ||
| 697 | case-insensitively. Use a pattern match instead of `assoc', as | ||
| 698 | per the documentation for `erc-encoding-coding-alist'. | ||
| 699 | |||
| 700 | * erc-track.el (erc-track-shorten-aggressively): Fix typo. | ||
| 701 | |||
| 702 | 2006-06-27 Michael Olson <mwolson@gnu.org> | ||
| 703 | |||
| 704 | * erc.el: Update maintainer information and URLs. | ||
| 705 | |||
| 706 | 2006-06-14 Michael Olson <mwolson@gnu.org> | ||
| 707 | |||
| 708 | * erc.el (erc-active-buffer): If the active buffer has been | ||
| 709 | deleted, default to the server buffer. | ||
| 710 | (erc-toggle-flood-control): When the user hits C-c C-f, make flood | ||
| 711 | control really toggle, not unconditionally turn off. | ||
| 712 | |||
| 713 | 2006-06-12 Michael Olson <mwolson@gnu.org> | ||
| 714 | |||
| 715 | * NEWS: Add items since the 5.1.2 release. | ||
| 716 | |||
| 717 | * erc-autoaway.el (erc-autoaway-caused-away): New variable that | ||
| 718 | indicates whether the current away status was caused by this | ||
| 719 | module. | ||
| 720 | (erc-autoaway-set-back): Only set back if this module set the user | ||
| 721 | away. | ||
| 722 | (erc-autoaway-set-away): Update `erc-autoaway-caused-away'. | ||
| 723 | (erc-autoaway-reset-indicators): New function that resets some | ||
| 724 | indicators when the user is no longer away. | ||
| 725 | (autoaway): Add the above function to the 305 hook. | ||
| 726 | |||
| 727 | 2006-06-05 Romain Francoise <romain@orebokech.com> | ||
| 728 | |||
| 729 | * erc.texi (History): Fix various typos. | ||
| 730 | |||
| 731 | 2006-06-04 Michael Olson <mwolson@gnu.org> | ||
| 732 | |||
| 733 | * erc-autoaway.el (erc-autoaway-idle-method): Move after the | ||
| 734 | definition of the autoaway module. | ||
| 735 | (autoaway): Don't do anything if erc-autoaway-idle-method is | ||
| 736 | unbound. This prevents an error on startup. | ||
| 737 | |||
| 738 | 2006-06-03 Michael Olson <mwolson@gnu.org> | ||
| 739 | |||
| 740 | * erc-autoaway.el: Thanks to Mark Plaksin for the ideas and patch. | ||
| 741 | (erc-autoaway-idle-method): Renamed from | ||
| 742 | `erc-autoaway-use-emacs-idle'. We have more than two choices for | ||
| 743 | how to do this, so it's best to make this take symbol values. | ||
| 744 | Improve documentation. Remove warning against Emacs idle-time; | ||
| 745 | the point is moot now that we get user idle time via a different | ||
| 746 | method. Make sure we disable and re-enable the module when | ||
| 747 | changing this value. | ||
| 748 | (autoaway): Conditionalize on the above option. If using the idle | ||
| 749 | timer or user idle methods, don't add anything to the | ||
| 750 | send-completed or server-001 hooks, since it is unnecessary. | ||
| 751 | (erc-autoaway-reestablish-idletimer, erc-autoaway-message): | ||
| 752 | Docfix. | ||
| 753 | (erc-autoaway-idle-seconds): Use erc-autoaway-idle-method. | ||
| 754 | (erc-autoaway-reset-idle-irc): Renamed from | ||
| 755 | `erc-autoaway-reset-idle'. Don't pass line to | ||
| 756 | `erc-autoaway-set-away', since it is not used. | ||
| 757 | (erc-autoaway-reset-idle-user): New function that resets the idle | ||
| 758 | state for user idle time. | ||
| 759 | (erc-autoaway-set-back): Remove line argument, since it is not | ||
| 760 | used. | ||
| 761 | |||
| 762 | 2006-06-01 Michael Olson <mwolson@gnu.org> | ||
| 763 | |||
| 764 | * erc.el (erc-buffer-filter): Make sure all buffers returned from | ||
| 765 | this are live. | ||
| 766 | |||
| 767 | 2006-05-01 Edward O'Connor <ted@oconnor.cx> | ||
| 768 | |||
| 769 | * erc-goodies.el (erc-handle-irc-url): New function, suitable as | ||
| 770 | a value for `url-irc-function'. | ||
| 771 | |||
| 772 | 2006-04-18 Diane Murray <disumu@x3y2z1.net> | ||
| 773 | |||
| 774 | * erc-pcomplete.el (pcomplete-erc-nicks): Added new optional | ||
| 775 | argument IGNORE-SELF. If this is non-nil, don't return the user's | ||
| 776 | current nickname. Doc fix. | ||
| 777 | (pcomplete/erc-mode/complete-command): Don't complete the current | ||
| 778 | nickname. | ||
| 779 | |||
| 780 | 2006-04-05 Diane Murray <disumu@x3y2z1.net> | ||
| 781 | |||
| 782 | * erc.el (erc-cmd-SV): Removed the exclamation point. Show the | ||
| 783 | build date as it's shown in `emacs-version'. | ||
| 784 | |||
| 785 | * erc-capab.el (erc-capab-identify-add-prefix): Insert the prefix | ||
| 786 | with the same face property as the previous character. | ||
| 787 | |||
| 788 | 2006-04-02 Michael Olson <mwolson@gnu.org> | ||
| 789 | |||
| 790 | * erc-backend.el, erc-ezbounce.el, erc-join.el, erc-netsplit.el, | ||
| 791 | erc.el: Make sure to include a newline inside of negated classes, | ||
| 792 | so that a newline is not matched. | ||
| 793 | |||
| 794 | 2006-04-01 Michael Olson <mwolson@gnu.org> | ||
| 795 | |||
| 796 | * erc-backend.el (erc-server-connect-function): Don't try to | ||
| 797 | detect the existence of the `open-network-stream-nowait' function, | ||
| 798 | since I can't find it in Emacs21, XEmacs21, or Emacs22. | ||
| 799 | |||
| 800 | 2006-03-27 Michael Olson <mwolson@gnu.org> | ||
| 801 | |||
| 802 | * erc.texi: Update direntry. Remove unneeded local variables. | ||
| 803 | |||
| 804 | 2006-03-26 Michael Olson <mwolson@gnu.org> | ||
| 805 | |||
| 806 | * erc.el (erc-header-line): New face that will be used to colorize | ||
| 807 | the text of the header-line, provided that | ||
| 808 | `erc-header-line-face-method' is non-nil. | ||
| 809 | (erc-prompt-face): Fix formatting. | ||
| 810 | (erc-header-line-face-method): New option that determines the | ||
| 811 | method used for colorizing header-line text. This may be a | ||
| 812 | function, nil, or non-nil. | ||
| 813 | (erc-update-mode-line-buffer): Use the aforementioned option and | ||
| 814 | face to colorize the header-line text, if that is what the user | ||
| 815 | wants. | ||
| 816 | (erc-send-input): If flood control is not activated, don't split | ||
| 817 | the input line. | ||
| 818 | |||
| 819 | 2006-03-25 Michael Olson <mwolson@gnu.org> | ||
| 820 | |||
| 821 | * erc.el (erc-cmd-QUOTE): Install patch from Aravind Gottipati | ||
| 822 | that fixes the case where there is no leading whitespace. Only | ||
| 823 | remove the first space character, though. | ||
| 824 | |||
| 825 | * erc-identd.el (erc-identd-start): Fix a bug by making sure that | ||
| 826 | erc-identd-process is set properly. | ||
| 827 | (erc-identd-start, erc-identd-stop): Add autoload cookies. | ||
| 828 | (erc-identd-start): Pass :host parameter so this works with Emacs | ||
| 829 | 22. | ||
| 830 | |||
| 831 | 2006-03-09 Diane Murray <disumu@x3y2z1.net> | ||
| 832 | |||
| 833 | * erc-button.el (erc-button-keymap): Use <backtab> rather than | ||
| 834 | <C-tab> for `erc-button-previous' as it is a more standard key | ||
| 835 | binding for this type of function. | ||
| 836 | |||
| 837 | 2006-02-28 Diane Murray <disumu@x3y2z1.net> | ||
| 838 | |||
| 839 | * erc-capab.el: Removed things that were accidentally committed on | ||
| 840 | 2006-02-20. Removed Todo section. | ||
| 841 | (erc-capab-unidentified): Removed. | ||
| 842 | |||
| 843 | 2006-02-26 Michael Olson <mwolson@gnu.org> | ||
| 844 | |||
| 845 | * erc-capab.el: Use (eval-when-compile (require 'cl)). | ||
| 846 | (erc-capab-unidentified): Fix compiler warning by specifying | ||
| 847 | group. | ||
| 848 | |||
| 849 | 2006-02-20 Diane Murray <disumu@x3y2z1.net> | ||
| 850 | |||
| 851 | * erc-capab.el (erc-capab-send-identify-messages): Fixed comment | ||
| 852 | to explain thoughts better. `erc-server-parameters' is an | ||
| 853 | associated list when it's set, not a string. | ||
| 854 | |||
| 855 | 2006-02-19 Michael Olson <mwolson@gnu.org> | ||
| 856 | |||
| 857 | * erc-capab.el (erc-capab-send-identify-messages): Make sure some | ||
| 858 | parameters are strings before using them. Thanks to Alejandro | ||
| 859 | Benitez for the report. | ||
| 860 | |||
| 861 | * erc.el (erc-version-string): Release ERC 5.1.2. | ||
| 862 | |||
| 863 | 2006-02-19 Diane Murray <disumu@x3y2z1.net> | ||
| 864 | |||
| 865 | * erc-button.el (erc-button-keymap): Bind `erc-button-previous' to | ||
| 866 | <C-tab>. | ||
| 867 | (erc-button-previous): New function. | ||
| 868 | |||
| 869 | 2006-02-15 Michael Olson <mwolson@gnu.org> | ||
| 870 | |||
| 871 | * NEWS: Add category for ERC 5.2. | ||
| 872 | |||
| 873 | * erc.el (erc): Move to the end of the buffer when a continued | ||
| 874 | session is detected. Thanks to e1f and indio for the report and | ||
| 875 | testing a potential fix. | ||
| 876 | |||
| 877 | 2006-02-14 Michael Olson <mwolson@gnu.org> | ||
| 878 | |||
| 879 | * debian/changelog: Prepare a new Debian package. | ||
| 880 | |||
| 881 | * Makefile (debprepare): New rule that creates an ERC snapshot | ||
| 882 | directory for use in both new Debian releases and revisions for | ||
| 883 | Debian packages. | ||
| 884 | (debrelease, debrevision-mwolson): Use debprepare. | ||
| 885 | |||
| 886 | * NEWS: Bring up-to-date. | ||
| 887 | |||
| 888 | * erc-stamp.el (erc-insert-timestamp-right): For now, put | ||
| 889 | timestamps before rather than after erc-fill-column when | ||
| 890 | erc-timestamp-right-column is nil. This way we won't surprise | ||
| 891 | anyone unpleasantly, or so it is hoped. | ||
| 892 | |||
| 893 | 2006-02-13 Michael Olson <mwolson@gnu.org> | ||
| 894 | |||
| 895 | * erc-dcc.el: Use (eval-when-compile (require 'cl)). | ||
| 896 | |||
| 897 | 2006-02-12 Michael Olson <mwolson@gnu.org> | ||
| 898 | |||
| 899 | * erc-autoaway.el, erc-dcc.el, erc-ezbounce.el, erc-fill.el | ||
| 900 | * erc-goodies.el, erc-hecomplete.el, erc-ibuffer.el, erc-identd.el | ||
| 901 | * erc-imenu.el, erc-join.el, erc-lang.el, erc-list.el, erc-log.el | ||
| 902 | * erc-match.el, erc-menu.el, erc-netsplit.el, erc-networks.el | ||
| 903 | * erc-notify.el, erc-page.el, erc-pcomplete.el, erc-replace.el | ||
| 904 | * erc-ring.el, erc-services.el, erc-sound.el, erc-speedbar.el | ||
| 905 | * erc-spelling.el, erc-track.el, erc-truncate.el, erc-xdcc.el: | ||
| 906 | Add 2006 to copyright years, to comply with the changed guidelines. | ||
| 907 | |||
| 908 | 2006-02-11 Michael Olson <mwolson@gnu.org> | ||
| 909 | |||
| 910 | * erc.el (erc-update-modules): Handle erc-capab-identify | ||
| 911 | correctly. Make some requirements shorter, so that it's easier to | ||
| 912 | see why they are needed. | ||
| 913 | |||
| 914 | * erc-capab.el: Add autoload cookie for capab-identify. | ||
| 915 | (erc-capab-send-identify-messages, erc-capab-identify-activate): | ||
| 916 | Minor whitespace fix in code. | ||
| 917 | |||
| 918 | * erc-stamp.el (erc-timestamp-use-align-to): Renamed from | ||
| 919 | `erc-timestamp-right-align-by-pixel'. Set the default based on | ||
| 920 | whether we are in Emacs 22, and using X. Improve documentation. | ||
| 921 | (erc-insert-aligned): Remove calculation of offset, since | ||
| 922 | :align-to pos works after all. Unlike the previous solution, this | ||
| 923 | one works when erc-stamp.el is compiled. | ||
| 924 | (erc-insert-timestamp-right): Don't add length of string, and then | ||
| 925 | later remove its displayed width. This puts timestamps after | ||
| 926 | erc-fill-column when erc-timestamp-right-column is nil, rather | ||
| 927 | than before it. It also fixes a subtle bug. Remove use of | ||
| 928 | `current-window', since there is no variable by that name in | ||
| 929 | Emacs21, Emacs22, or XEmacs21 beta. Check to see whether | ||
| 930 | `erc-fill-column' is non-nil before using it. | ||
| 931 | |||
| 932 | 2006-02-11 Diane Murray <disumu@x3y2z1.net> | ||
| 933 | |||
| 934 | * erc-list.el: Define `list' module which sets the alias | ||
| 935 | `erc-cmd-LIST' to `erc-list-channels' when enabled and | ||
| 936 | `erc-list-channels-simple' when disabled. | ||
| 937 | (erc-list-channels): Was `erc-cmd-LIST', renamed. | ||
| 938 | (erc-list-channels-simple): New function. | ||
| 939 | |||
| 940 | * erc.el (erc-modules): Added `list' to enabled modules. Changed | ||
| 941 | `capab-identify' description. Moved customization options left in | ||
| 942 | source code. | ||
| 943 | |||
| 944 | * erc-menu.el (erc-menu-definition): Use `erc-list-channels'. | ||
| 945 | |||
| 946 | * erc-capab.el: Put a little more detail into Usage section. | ||
| 947 | (define-erc-module): Run `erc-capab-identify-setup' in all open | ||
| 948 | server buffers when enabling. | ||
| 949 | (erc-capab-identify-setup): Make PROC and PARSED optional | ||
| 950 | arguments. | ||
| 951 | (erc-capab-identify-add-prefix): Simplified nickname regexp. This | ||
| 952 | should now also match nicknames that are formatted differently | ||
| 953 | than the default. | ||
| 954 | |||
| 955 | * erc-spelling.el (define-erc-module): Make sure there's a buffer | ||
| 956 | before calling `with-current-buffer'. | ||
| 957 | |||
| 958 | 2006-02-10 Michael Olson <mwolson@gnu.org> | ||
| 959 | |||
| 960 | * Makefile (debbuild): Split from debrelease. | ||
| 961 | (debrevision-mwolson): New rule that causes a Debian revision to | ||
| 962 | be built. | ||
| 963 | |||
| 964 | * erc.el (erc-migrate-modules): Use a better algorithm. Thanks to | ||
| 965 | Johan Bockgård. | ||
| 966 | (erc-modules): Change use of 'pcomplete to 'completion. | ||
| 967 | |||
| 968 | 2006-02-09 Diane Murray <disumu@x3y2z1.net> | ||
| 969 | |||
| 970 | * erc.el (erc-get-parsed-vector, erc-get-parsed-vector-nick) | ||
| 971 | * erc-capab.el: Require erc. | ||
| 972 | (erc-capab-send-identify-messages): Use `erc-server-send'. | ||
| 973 | (erc-capab-identify-remove/set-identified-flag): Use 1 and 0 as | ||
| 974 | the flags so we can also check whether the `erc-identified' text | ||
| 975 | property is there at all. | ||
| 976 | (erc-capab-identify-add-prefix): Use `erc-capab-find-parsed'. | ||
| 977 | This fixes a bug where the prefix wasn't inserted when timestamps | ||
| 978 | are inserted on the right. Tweaked nickname regexp. | ||
| 979 | (erc-capab-find-parsed): New function. | ||
| 980 | (erc-capab-get-unidentified-nickname): Updated to check for 0 | ||
| 981 | flag. Only get nickname if there's a nickuserhost associated with | ||
| 982 | this message. | ||
| 983 | |||
| 984 | * erc-capab.el: New file. Adds the new module | ||
| 985 | `erc-capab-identify', which allows flagging of unidentified users | ||
| 986 | on servers running an ircd based on dancer - irc.freenode.net, for | ||
| 987 | example. | ||
| 988 | |||
| 989 | * erc.el (erc-modules): Added `capab-identify' to options. | ||
| 990 | (erc-get-parsed-vector, erc-get-parsed-vector-nick) | ||
| 991 | (erc-get-parsed-vector-type): Moved here from erc-match.el. | ||
| 992 | |||
| 993 | * erc-match.el (erc-get-parsed-vector, erc-get-parsed-vector-nick) | ||
| 994 | (erc-get-parsed-vector-type): Moved these functions to erc.el | ||
| 995 | since they can be useful outside of the text matching module. | ||
| 996 | |||
| 997 | * NEWS: Added erc-capab.el. | ||
| 998 | |||
| 999 | * erc-dcc.el, erc-stamp.el, erc-xdcc.el: Changed "Emacs IRC Client" | ||
| 1000 | to "ERC". | ||
| 1001 | |||
| 1002 | 2006-02-07 Michael Olson <mwolson@gnu.org> | ||
| 1003 | |||
| 1004 | * ChangeLog.01, ChangeLog.02, ChangeLog.03, ChangeLog.04, | ||
| 1005 | ChangeLog.05: Rename from ChangeLog.NNNN in order to disambiguate | ||
| 1006 | the filenames in DOS. | ||
| 1007 | |||
| 1008 | * erc-goodies.el: Comment fix. | ||
| 1009 | |||
| 1010 | * erc-hecomplete.el: Rename from erc-complete.el. Update | ||
| 1011 | commentary. Use define-erc-module so that it's possible to | ||
| 1012 | actually use this. | ||
| 1013 | (erc-hecomplete): Rename function from `erc-complete'. | ||
| 1014 | (erc-hecomplete): Rename group from `erc-old-complete'. Docfix. | ||
| 1015 | |||
| 1016 | * erc-join.el: Rename from erc-autojoin.el. | ||
| 1017 | |||
| 1018 | * erc-networks.el: Rename from erc-nets.el. | ||
| 1019 | |||
| 1020 | * erc-services.el: Rename from erc-nickserv.el. | ||
| 1021 | |||
| 1022 | * erc-stamp.el (erc-insert-aligned): Don't take 3rd argument. Use | ||
| 1023 | the simpler `indent-to' function when | ||
| 1024 | `erc-timestamp-right-align-by-pixel' is nil. | ||
| 1025 | (erc-insert-timestamp-right): If the timestamp goes on the | ||
| 1026 | following line, don't add timestamp properties to the spaces in | ||
| 1027 | front of it. | ||
| 1028 | |||
| 1029 | * erc.el (erc-migrate-modules): New function that eases migration | ||
| 1030 | of module names. | ||
| 1031 | (erc-modules): Call erc-migrate-modules in the :get accessor. | ||
| 1032 | (erc-modules, erc-update-modules): Update for new modules names. | ||
| 1033 | (erc-cmd-SMV): Remove, since this does not give useful output due | ||
| 1034 | to the version strings being removed from ERC modules. | ||
| 1035 | |||
| 1036 | 2006-02-05 Michael Olson <mwolson@gnu.org> | ||
| 1037 | |||
| 1038 | * erc-spelling.el (erc-spelling-init): If | ||
| 1039 | `erc-spelling-dictionaries' is nil, do not set | ||
| 1040 | ispell-local-dictionary. Before, it was being set to nil, which | ||
| 1041 | was causing a long delay while the ispell process restarted. | ||
| 1042 | (erc-spelling-unhighlight-word): New function that removes | ||
| 1043 | flyspell properties from a spell-checked word. | ||
| 1044 | (erc-spelling-flyspell-verify): Don't spell-check nicks or words | ||
| 1045 | that have '/' before them. | ||
| 1046 | |||
| 1047 | 2006-02-04 Michael Olson <mwolson@gnu.org> | ||
| 1048 | |||
| 1049 | * erc-autojoin.el: Use (eval-when-compile (require 'cl)). | ||
| 1050 | |||
| 1051 | * erc-complete.el (erc-nick-completion-exclude-myself) | ||
| 1052 | (erc-try-complete-nick): Use better function for getting list of | ||
| 1053 | channel users. | ||
| 1054 | |||
| 1055 | * erc-goodies.el: Docfix. | ||
| 1056 | |||
| 1057 | * erc-stamp.el: Use new arch tagline, since the other one wasn't | ||
| 1058 | being treated properly. | ||
| 1059 | |||
| 1060 | * erc.el (erc-version-string): Release ERC 5.1.1. | ||
| 1061 | |||
| 1062 | 2006-02-03 Zhang Wei <id.brep@gmail.com> | ||
| 1063 | |||
| 1064 | * erc.el (erc-version-string): Don't hard-code Emacs version. | ||
| 1065 | (erc-version): Use emacs-version. | ||
| 1066 | |||
| 1067 | 2006-01-31 Michael Olson <mwolson@gnu.org> | ||
| 1068 | |||
| 1069 | * erc-stamp.el: Update copyright years. | ||
| 1070 | |||
| 1071 | 2006-01-30 Simon Josefsson <jas@extundo.com> | ||
| 1072 | |||
| 1073 | * erc.el (erc-open-ssl-stream): Use tls.el. | ||
| 1074 | |||
| 1075 | 2006-01-30 Michael Olson <mwolson@gnu.org> | ||
| 1076 | |||
| 1077 | * erc-stamp.el (erc-timestamp-right-align-by-pixel): New option | ||
| 1078 | that determines whether to use pixel values to align right | ||
| 1079 | timestamps. The default is not to do so, since it only works with | ||
| 1080 | Emacs22 on X, and even then some people have trouble. | ||
| 1081 | (erc-insert-aligned): Use `erc-timestamp-right-align-by-pixel'. | ||
| 1082 | |||
| 1083 | 2006-01-29 Michael Olson <mwolson@gnu.org> | ||
| 1084 | |||
| 1085 | * ChangeLog, ChangeLog.2005, ChangeLog.2004, ChangeLog.2003, | ||
| 1086 | ChangeLog.2002, ChangeLog.2001: Add "See ChangeLog.NNNN" line for | ||
| 1087 | earlier changes. Use utf-8 encoding. Fix some accent typos. | ||
| 1088 | |||
| 1089 | * erc-speedbar.el (erc-speedbar-buttons): Fix reference to free | ||
| 1090 | variable. | ||
| 1091 | (erc-speedbar-goto-buffer): Fix compiler warning. | ||
| 1092 | |||
| 1093 | * erc-ibuffer.el: Use `define-ibuffer-filter' instead of | ||
| 1094 | `ibuffer-degine-limiter'. Use `define-ibuffer-column' instead of | ||
| 1095 | `ibuffer-define-column'. Require 'ibuf-ext so that the macros | ||
| 1096 | work without compiler warnings. | ||
| 1097 | |||
| 1098 | * man/erc.texi (Obtaining ERC, Installation): Note that these | ||
| 1099 | sections may be skipped if using the version of ERC that comes | ||
| 1100 | with Emacs. | ||
| 1101 | |||
| 1102 | 2006-01-29 Edward O'Connor <ted@oconnor.cx> | ||
| 1103 | |||
| 1104 | * erc-viper.el: Remove. Now that ERC is included in Emacs, these | ||
| 1105 | work-arounds live in Viper itself. | ||
| 1106 | |||
| 1107 | 2006-01-28 Michael Olson <mwolson@gnu.org> | ||
| 1108 | |||
| 1109 | * erc-*.el, erc.texi, NEWS: Add Arch taglines as per Emacs | ||
| 1110 | guidelines. | ||
| 1111 | |||
| 1112 | * erc-*.el: Space out copyright years like the rest of Emacs. Use | ||
| 1113 | the Emacs copyright statement. Refer to ourselves as ERC rather | ||
| 1114 | than "Emacs IRC Client", since there are now several IRC clients | ||
| 1115 | for Emacs. | ||
| 1116 | |||
| 1117 | * erc-compat.el (erc-emacs-build-time): Define as a variable. | ||
| 1118 | |||
| 1119 | * erc-log.el (erc-log-setup-logging): Use write-file-functions. | ||
| 1120 | |||
| 1121 | * erc-ibuffer.el: Require 'erc. | ||
| 1122 | |||
| 1123 | * erc-stamp.el (erc-insert-aligned): Only use the special text | ||
| 1124 | property when window-system is X. | ||
| 1125 | |||
| 1126 | * erc.texi: Adapt for inclusion in Emacs. | ||
| 1127 | |||
| 1128 | 2006-01-28 Johan Bockgård <bojohan@users.sourceforge.net> | ||
| 1129 | |||
| 1130 | * erc.el (erc-format-message): More `cl' breakage; don't use | ||
| 1131 | `oddp'. | ||
| 1132 | |||
| 1133 | 2006-01-27 Michael Olson <mwolson@gnu.org> | ||
| 1134 | |||
| 1135 | * debian/changelog: Update for new release. | ||
| 1136 | |||
| 1137 | * debian/control (Description): Update. | ||
| 1138 | |||
| 1139 | * debian/rules: Concatenate ChangeLog for 2005. | ||
| 1140 | |||
| 1141 | * Makefile (MISC): Include ChangeLog.2005 and erc.texi. | ||
| 1142 | (debrelease, release): Copy images directory. | ||
| 1143 | |||
| 1144 | * NEWS: Spelling fixes. Add items for recent changes. | ||
| 1145 | |||
| 1146 | * erc.el (erc): Move call to erc-update-modules before the call to | ||
| 1147 | erc-mode. This should fix a timestamp display issue. | ||
| 1148 | (erc-version-string): Release ERC 5.1. | ||
| 1149 | |||
| 1150 | 2006-01-26 Michael Olson <mwolson@gnu.org> | ||
| 1151 | |||
| 1152 | * erc-stamp.el (erc-insert-aligned): New function that inserts | ||
| 1153 | text in an perfectly-aligned way relative to the right margin. It | ||
| 1154 | only works well with Emacs22. A sane fallback is provided for | ||
| 1155 | other versions of Emacs. | ||
| 1156 | (erc-insert-timestamp-right): Use the new function. | ||
| 1157 | |||
| 1158 | 2006-01-25 Edward O'Connor <ted@oconnor.cx> | ||
| 1159 | |||
| 1160 | * erc.el (erc-modules): Ensure that `erc-button-mode' gets enabled | ||
| 1161 | before `erc-match-mode'. | ||
| 1162 | |||
| 1163 | * erc-match.el (match): Append `erc-match-message' to | ||
| 1164 | `erc-insert-modify-hook'. | ||
| 1165 | |||
| 1166 | 2006-01-25 Michael Olson <mwolson@gnu.org> | ||
| 1167 | |||
| 1168 | * FOR-RELEASE: Mark last release requirement as done. | ||
| 1169 | |||
| 1170 | * Makefile (realclean, distclean): Remove docs. | ||
| 1171 | |||
| 1172 | * erc.texi: Take care of all pre-5.1 items. | ||
| 1173 | |||
| 1174 | * erc-backend.el (erc-server-send, erc-server-send-queue): Wrap | ||
| 1175 | `process-send-string' in `condition-case' to avoid an error when | ||
| 1176 | quitting ERC. | ||
| 1177 | |||
| 1178 | * erc-stamp.el (erc-insert-timestamp-right): Try to deal with | ||
| 1179 | variable-width characters in the timestamp and on the same line. | ||
| 1180 | The latter is a kludge, but it seems to work with most of the | ||
| 1181 | input I've thrown at it so far. It's certainly better than going | ||
| 1182 | past the end of line consistently when we have variable-width | ||
| 1183 | characters on the same line. When `erc-timestamp-intangible' is | ||
| 1184 | non-nil, add intangible properties to the whitespace as well, so | ||
| 1185 | that hitting <end> does what you'd expect. | ||
| 1186 | |||
| 1187 | * erc.el (erc-flood-protect, erc-toggle-flood-control): Update | ||
| 1188 | this to only use boolean values for `erc-flood-protect'. Update | ||
| 1189 | documentation. | ||
| 1190 | (erc-cmd-QUIT): Set the active buffer to be the server buffer, so | ||
| 1191 | that any QUIT-related messages go there. | ||
| 1192 | (erc): Try to be more clever about re-using channel buffers when | ||
| 1193 | automatically re-connecting. Thanks to e1f for noticing. | ||
| 1194 | |||
| 1195 | 2006-01-23 Michael Olson <mwolson@gnu.org> | ||
| 1196 | |||
| 1197 | * ChangeLog.2005: Remove erroneous line. | ||
| 1198 | |||
| 1199 | * FOR-RELEASE: Make that the Makefile tweaking is complete. | ||
| 1200 | (NEWS): Mark as done. | ||
| 1201 | |||
| 1202 | * Makefile (MANUAL): New option indicating the name of the manual. | ||
| 1203 | (PREFIX, ELISPDIR, INFODIR): New options that specify the | ||
| 1204 | directories to install lisp code and info manuals to. PREFIX is | ||
| 1205 | used only by ELISPDIR and INFODIR. | ||
| 1206 | (all): Call `lisp' and create the manual. | ||
| 1207 | (lisp): Compile lisp code. | ||
| 1208 | (%.info, %.html): New rules that make Info files and HTML files, | ||
| 1209 | respectively, from a TexInfo source. | ||
| 1210 | (doc): Create both the Info and HTML versions of the manual. This | ||
| 1211 | is for the user -- we never call it automatically. | ||
| 1212 | (install-info): Install Info files. | ||
| 1213 | (install-bin): Install compiled and source Lisp files. | ||
| 1214 | (todo): Remove, since it seems pointless. | ||
| 1215 | |||
| 1216 | * NEWS: Update. | ||
| 1217 | |||
| 1218 | * README: Add Installation instructions. Tweak layout. | ||
| 1219 | |||
| 1220 | * erc.texi: Work on some pre-5.1 items. | ||
| 1221 | |||
| 1222 | * erc-stamp.el, erc-track.el: Move some functions and options in | ||
| 1223 | order to get rid of a few compiler warnings. | ||
| 1224 | |||
| 1225 | * erc.el (erc-modules): Enable readonly by default. This will | ||
| 1226 | prevent new users from accidentally removing old messages, which | ||
| 1227 | could be disconcerting. Also enable stamp by default, since | ||
| 1228 | timestamps are a fairly standard feature among IRC clients. | ||
| 1229 | |||
| 1230 | * erc-button.el: Munge whitespace. | ||
| 1231 | |||
| 1232 | * erc-identd.el (erc-identd-start): Instead of throwing an error, | ||
| 1233 | just try to use the obsolete function. | ||
| 1234 | |||
| 1235 | 2006-01-22 Michael Olson <mwolson@gnu.org> | ||
| 1236 | |||
| 1237 | * erc-backend.el (erc-decode-string-from-target): Make sure that | ||
| 1238 | we have a string as an argument. If not, coerce it to the empty | ||
| 1239 | string. Hopefully, this will work painlessly around an edge case | ||
| 1240 | related to quitting ERC around the same time a message comes in. | ||
| 1241 | |||
| 1242 | 2006-01-22 Johan Bockgård <bojohan@users.sourceforge.net> | ||
| 1243 | |||
| 1244 | * erc-track.el: Use `(eval-when-compile (require 'cl))' (for | ||
| 1245 | `case'). Doc fixes. | ||
| 1246 | (erc-find-parsed-property): Simplify. | ||
| 1247 | (erc-track-get-active-buffer): Fix logic. Simplify. | ||
| 1248 | (erc-track-switch-buffer): Remove unused variable `dir'. Simplify. | ||
| 1249 | |||
| 1250 | * erc-speak.el: Doc fixes. | ||
| 1251 | (erc-speak-region): `propertize' --> `erc-propertize'. | ||
| 1252 | |||
| 1253 | * erc-dcc.el (erc-dcc-chat-parse-output): `propertize' --> | ||
| 1254 | `erc-propertize'. | ||
| 1255 | |||
| 1256 | * erc-button.el (erc-button-add-button): Take erc-fill-prefix into | ||
| 1257 | account when wrapping URLs. | ||
| 1258 | |||
| 1259 | * erc-bbdb.el (erc-bbdb-elide-display): Doc fix. | ||
| 1260 | |||
| 1261 | * erc-backend.el (define-erc-response-handler): Doc fix. | ||
| 1262 | |||
| 1263 | 2006-01-22 Michael Olson <mwolson@gnu.org> | ||
| 1264 | |||
| 1265 | * erc.el (erc-update-modules): Use `require' instead of `load', | ||
| 1266 | but prevent it from causing errors, in order to preserve the | ||
| 1267 | previous behavior. | ||
| 1268 | |||
| 1269 | 2006-01-21 Michael Olson <mwolson@gnu.org> | ||
| 1270 | |||
| 1271 | * FOR-RELEASE (Source): Mark cl task as done. | ||
| 1272 | |||
| 1273 | * Makefile (erc-auto.el): Call erc-generate-autoloads rather than | ||
| 1274 | generate-autoloads. | ||
| 1275 | (erc-auto.el, %.elc): Don't show command, just its output. | ||
| 1276 | |||
| 1277 | * NEWS: Add items from 2005-01-01 to 2005-08-13. | ||
| 1278 | |||
| 1279 | * debian/copyright (Copyright): Update. | ||
| 1280 | |||
| 1281 | * erc-auto.in (erc-generate-autoloads): Rename from | ||
| 1282 | generate-autoloads. | ||
| 1283 | |||
| 1284 | * erc.el, erc-autoaway.el, erc-backend.el: Use | ||
| 1285 | erc-server-process-alive instead of erc-process-alive. | ||
| 1286 | |||
| 1287 | * erc.el, erc-backend.el, erc-ezbounce.el, erc-list.el, | ||
| 1288 | erc-log.el, erc-match.el, erc-nets.el, erc-netsplit.el, | ||
| 1289 | erc-nicklist.el, erc-nickserv.el, erc-notify.el, erc-pcomplete.el: | ||
| 1290 | Use (eval-when-compile (require 'cl)), so that compilation doesn't | ||
| 1291 | fail. | ||
| 1292 | |||
| 1293 | * erc-fill.el, erc-truncate.el: Whitespace munging. | ||
| 1294 | |||
| 1295 | * erc.el: Update copyright notice. Remove eval-after-load code. | ||
| 1296 | (erc-with-buffer): Docfix. | ||
| 1297 | (erc-once-with-server-event, erc-once-with-server-event-global) | ||
| 1298 | (erc-with-buffer, erc-with-all-buffers-of-server): Use erc-gensym | ||
| 1299 | instead of gensym. | ||
| 1300 | (erc-banlist-update): Use erc-delete-if instead of delete-if. | ||
| 1301 | (erc): Call `erc-update-modules' here. | ||
| 1302 | |||
| 1303 | * erc-backend.el: Require 'erc-compat to minimize compiler | ||
| 1304 | warnings. | ||
| 1305 | (erc-decode-parsed-server-response): Docfix. | ||
| 1306 | (erc-server-process-alive): Move here from erc.el and rename from | ||
| 1307 | `erc-process-alive'. | ||
| 1308 | (erc-server-send, erc-remove-channel-users): Make sure process is | ||
| 1309 | alive before sending data to it. | ||
| 1310 | |||
| 1311 | * erc-bbdb.el: Update copyright years. | ||
| 1312 | (erc-bbdb-whois): Remove overexuberant comment. | ||
| 1313 | |||
| 1314 | * erc-button.el: Require erc-fill, since we make liberal use of | ||
| 1315 | `erc-fill-column'. | ||
| 1316 | |||
| 1317 | * erc-compat.el (erc-const-expr-p, erc-list*, erc-assert): New | ||
| 1318 | functions, the latter of which provides an `assert' equivalent. | ||
| 1319 | (erc-remove-if-not): New function that provides a simple | ||
| 1320 | implementation of `remove-if-not'. | ||
| 1321 | (erc-gensym): New function that provides a simple implementation | ||
| 1322 | of `gensym'. | ||
| 1323 | (erc-delete-if): New function that provides a simple | ||
| 1324 | implementation of `delete-if'. | ||
| 1325 | (erc-member-if): New function that provides a simple | ||
| 1326 | implementation of `member-if'. | ||
| 1327 | (field-end): Remove this, since it is unused, and later versions | ||
| 1328 | of XEmacs have this function already. | ||
| 1329 | (erc-function-arglist): Moved here from erc.el. | ||
| 1330 | (erc-delete-dups): New compatibility function for dealing with | ||
| 1331 | XEmacs. | ||
| 1332 | (erc-subseq): New function copied from cl-extra.el. | ||
| 1333 | |||
| 1334 | * erc-dcc.el: Require pcomplete during compilation to avoid | ||
| 1335 | compiler warnings. | ||
| 1336 | (erc-unpack-int, erc-dcc-send-filter) | ||
| 1337 | (erc-dcc-get-filter): Use erc-assert instead of assert. | ||
| 1338 | (pcomplete/erc-mode/DCC): Use erc-remove-if-not instead of | ||
| 1339 | remove-if-not. | ||
| 1340 | |||
| 1341 | * erc-match.el (erc-log-matches): Fix compiler warning. | ||
| 1342 | |||
| 1343 | * erc-nicklist.el: Update copyright notice. | ||
| 1344 | (erc-nicklist-menu): Change use of caadr to (car (cadr ...)). | ||
| 1345 | (erc-nicklist-bitlbee-connected-p): Remove. | ||
| 1346 | (erc-nicklist-insert-medium-name-or-icon): Accept channel | ||
| 1347 | argument. Use it to determine whether we are on bitlbee. Now | ||
| 1348 | that bitlbee names its channel "&bitlbee", this is trivial. | ||
| 1349 | (erc-nicklist-insert-contents): Pass channel as specified above. | ||
| 1350 | Don't try to determine whether we are on bitlbee here. | ||
| 1351 | (erc-nicklist-channel-users-info): Use erc-remove-if-not instead | ||
| 1352 | of remove-if-not. | ||
| 1353 | (erc-nicklist-search-for-nick): Use erc-member-if instead of | ||
| 1354 | member-if. | ||
| 1355 | |||
| 1356 | * erc-notify.el (erc-notify-QUIT): Use erc-delete-if with a | ||
| 1357 | partially-evaluated lambda expression instead of `delete' and | ||
| 1358 | `find'. | ||
| 1359 | |||
| 1360 | * erc-track.el: Use erc-assert. | ||
| 1361 | (erc-track-modified-channels): Remove use of `return'. | ||
| 1362 | (erc-track-modified-channels): Use `cadr' instead of `second', | ||
| 1363 | since otherwise we would need yet another eval-when-compile line. | ||
| 1364 | |||
| 1365 | 2006-01-19 Michael Olson <mwolson@gnu.org> | ||
| 1366 | |||
| 1367 | * erc-backend.el (erc-process-sentinel-1): Remove attempt to | ||
| 1368 | detect SIGPIPE, since it doesn't work. | ||
| 1369 | |||
| 1370 | 2006-01-10 Diane Murray <disumu@x3y2z1.net> | ||
| 1371 | |||
| 1372 | * erc-spelling.el: Updated copyright years. | ||
| 1373 | (define-erc-module): Enable/disable `flyspell-mode' for all open | ||
| 1374 | ERC buffers as well. | ||
| 1375 | (erc-spelling-dictionaries): Reworded customize description. | ||
| 1376 | |||
| 1377 | * erc.el (erc-command-symbol): New function. | ||
| 1378 | (erc-extract-command-from-line): Use `erc-command-symbol'. This | ||
| 1379 | fixes a bug where "Symbol's function definition is void: | ||
| 1380 | erc-cmd-LIST" would be shown after typing /list at the prompt (the | ||
| 1381 | command was interned because erc-menu.el uses it and is enabled by | ||
| 1382 | default whereas erc-list.el is not). | ||
| 1383 | |||
| 1384 | * NEWS: Started a list of renamed variables. | ||
| 1385 | |||
| 1386 | * erc.el: Reworded the message sent when defining variable | ||
| 1387 | aliases. | ||
| 1388 | (erc-command-indicator-face): Doc fix. | ||
| 1389 | (erc-modules): Enable the match module by default which makes | ||
| 1390 | current nickname highlighting on as the default. | ||
| 1391 | |||
| 1392 | * erc-button.el: Updated copyright years. | ||
| 1393 | (erc-button): New face. | ||
| 1394 | (erc-button-face): Use `erc-button'. | ||
| 1395 | (erc-button-nickname-face): New customizable variable. | ||
| 1396 | (erc-button-add-nickname-buttons, erc-button-add-buttons-1): Send | ||
| 1397 | new argument to `erc-button-add-button'. | ||
| 1398 | (erc-button-add-button): Doc fix. Added new argument to function | ||
| 1399 | definition, NICK-P. If it's a nickname, use | ||
| 1400 | `erc-button-nickname-face', otherwise use `erc-button-face'. This | ||
| 1401 | makes channel tracking and buttons work better together when | ||
| 1402 | `erc-button-buttonize-nicks' is enabled, since there is a nickname | ||
| 1403 | on just about every line. | ||
| 1404 | |||
| 1405 | * erc-track.el (erc-track-use-faces): Doc fix. | ||
| 1406 | (erc-track-faces-priority-list): Added `erc-button' to list. | ||
| 1407 | (erc-track-priority-faces-only): Doc fix. | ||
| 1408 | |||
| 1409 | 2006-01-09 Diane Murray <disumu@x3y2z1.net> | ||
| 1410 | |||
| 1411 | * erc-button.el (erc-button-url-regexp): Use `concat' so the | ||
| 1412 | regexp is not one long line. | ||
| 1413 | (erc-button-alist): Fixed so that customizing works correctly. | ||
| 1414 | Reorganized. Removed lambda functions with more than two lines. | ||
| 1415 | Doc fix. | ||
| 1416 | (erc-button-describe-symbol, erc-button-beats-to-time): New | ||
| 1417 | functions. Moved from `erc-button-alist'. | ||
| 1418 | |||
| 1419 | 2006-01-07 Michael Olson <mwolson@gnu.org> | ||
| 1420 | |||
| 1421 | * erc-backend.el (erc-process-sentinel-1): Don't try to re-open a | ||
| 1422 | process if a SIGPIPE occurs. This happens when a new message | ||
| 1423 | comes in at the same time a /quit is requested. | ||
| 1424 | (erc-process-sentinel): Use string-match rather than string= to do | ||
| 1425 | these comparisons. Matching literal newlines makes me nervous. | ||
| 1426 | |||
| 1427 | * erc-track.el (erc-track-remove-from-mode-line): Handle case | ||
| 1428 | where global-mode-string is not a list. Emacs22 permits this. | ||
| 1429 | |||
| 1430 | |||
| 1431 | See ChangeLog.05 for earlier changes. | ||
| 1432 | |||
| 1433 | Copyright (C) 2006, 2007 Free Software Foundation, Inc. | ||
| 1434 | |||
| 1435 | This file is part of GNU Emacs. | ||
| 1436 | |||
| 1437 | GNU Emacs is free software; you can redistribute it and/or modify | ||
| 1438 | it under the terms of the GNU General Public License as published by | ||
| 1439 | the Free Software Foundation; either version 2, or (at your option) | ||
| 1440 | any later version. | ||
| 1441 | |||
| 1442 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 1443 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 1444 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 1445 | GNU General Public License for more details. | ||
| 1446 | |||
| 1447 | You should have received a copy of the GNU General Public License | ||
| 1448 | along with GNU Emacs; see the file COPYING. If not, write to the | ||
| 1449 | Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||
| 1450 | Boston, MA 02110-1301, USA. | ||
| 1451 | |||
| 1452 | ;; Local Variables: | ||
| 1453 | ;; coding: utf-8 | ||
| 1454 | ;; add-log-time-zone-rule: t | ||
| 1455 | ;; End: | ||
| 1456 | |||
| 1457 | ;; arch-tag: 865a75f6-2bcb-46df-bf0c-b514dadf688a | ||
diff --git a/lisp/erc/erc-autoaway.el b/lisp/erc/erc-autoaway.el index 9d90d0ae5e9..91a1150802b 100644 --- a/lisp/erc/erc-autoaway.el +++ b/lisp/erc/erc-autoaway.el | |||
| @@ -40,6 +40,49 @@ yourself back when you type something." | |||
| 40 | "The Emacs idletimer. | 40 | "The Emacs idletimer. |
| 41 | This is only used when `erc-autoaway-idle-method' is set to 'emacs.") | 41 | This is only used when `erc-autoaway-idle-method' is set to 'emacs.") |
| 42 | 42 | ||
| 43 | (defvar erc-autoaway-last-sent-time (erc-current-time) | ||
| 44 | "The last time the user sent something.") | ||
| 45 | |||
| 46 | (defvar erc-autoaway-caused-away nil | ||
| 47 | "Indicates whether this module was responsible for setting the | ||
| 48 | user's away status.") | ||
| 49 | |||
| 50 | (eval-when-compile (defvar erc-autoaway-idle-seconds)) | ||
| 51 | |||
| 52 | (defun erc-autoaway-reestablish-idletimer () | ||
| 53 | "Reestablish the Emacs idletimer. | ||
| 54 | If `erc-autoaway-idle-method' is 'emacs, you must call this | ||
| 55 | function each time you change `erc-autoaway-idle-seconds'." | ||
| 56 | (interactive) | ||
| 57 | (when erc-autoaway-idletimer | ||
| 58 | (erc-cancel-timer erc-autoaway-idletimer)) | ||
| 59 | (setq erc-autoaway-idletimer | ||
| 60 | (run-with-idle-timer erc-autoaway-idle-seconds | ||
| 61 | t | ||
| 62 | 'erc-autoaway-set-away | ||
| 63 | erc-autoaway-idle-seconds))) | ||
| 64 | |||
| 65 | (defun erc-autoaway-some-server-buffer () | ||
| 66 | "Return some ERC server buffer if its connection is alive. | ||
| 67 | If none is found, return nil." | ||
| 68 | (car (erc-buffer-list #'erc-open-server-buffer-p))) | ||
| 69 | |||
| 70 | (defun erc-autoaway-insinuate-maybe (&optional server &rest ignored) | ||
| 71 | "Add autoaway reset function to `post-command-hook' if at least one | ||
| 72 | ERC process is alive. | ||
| 73 | |||
| 74 | This is used when `erc-autoaway-idle-method' is 'user." | ||
| 75 | (when (or server (erc-autoaway-some-server-buffer)) | ||
| 76 | (add-hook 'post-command-hook 'erc-autoaway-reset-idle-user))) | ||
| 77 | |||
| 78 | (defun erc-autoaway-remove-maybe (&rest ignored) | ||
| 79 | "Remove the autoaway reset function from `post-command-hook' if | ||
| 80 | no ERC process is alive. | ||
| 81 | |||
| 82 | This is used when `erc-autoaway-idle-method' is 'user." | ||
| 83 | (unless (erc-autoaway-some-server-buffer) | ||
| 84 | (remove-hook 'post-command-hook 'erc-autoaway-reset-idle-user))) | ||
| 85 | |||
| 43 | ;;;###autoload (autoload 'erc-autoaway-mode "erc-autoaway") | 86 | ;;;###autoload (autoload 'erc-autoaway-mode "erc-autoaway") |
| 44 | (define-erc-module autoaway nil | 87 | (define-erc-module autoaway nil |
| 45 | "In ERC autoaway mode, you can be set away automatically. | 88 | "In ERC autoaway mode, you can be set away automatically. |
| @@ -65,24 +108,31 @@ set you no longer away. | |||
| 65 | Related variables: `erc-public-away-p' and `erc-away-nickname'." | 108 | Related variables: `erc-public-away-p' and `erc-away-nickname'." |
| 66 | ;; Enable: | 109 | ;; Enable: |
| 67 | ((when (boundp 'erc-autoaway-idle-method) | 110 | ((when (boundp 'erc-autoaway-idle-method) |
| 111 | (add-hook 'erc-connect-pre-hook 'erc-autoaway-reset-indicators) | ||
| 112 | (setq erc-autoaway-last-sent-time (erc-current-time)) | ||
| 68 | (cond | 113 | (cond |
| 69 | ((eq erc-autoaway-idle-method 'irc) | 114 | ((eq erc-autoaway-idle-method 'irc) |
| 70 | (add-hook 'erc-send-completed-hook 'erc-autoaway-reset-idle-irc) | 115 | (add-hook 'erc-send-completed-hook 'erc-autoaway-reset-idle-irc) |
| 71 | (add-hook 'erc-server-001-functions 'erc-autoaway-reset-idle-irc)) | 116 | (add-hook 'erc-server-001-functions 'erc-autoaway-reset-idle-irc)) |
| 72 | ((eq erc-autoaway-idle-method 'user) | 117 | ((eq erc-autoaway-idle-method 'user) |
| 73 | (add-hook 'post-command-hook 'erc-autoaway-reset-idle-user)) | 118 | (add-hook 'erc-after-connect 'erc-autoaway-insinuate-maybe) |
| 119 | (add-hook 'erc-disconnected-hook 'erc-autoaway-remove-maybe) | ||
| 120 | (erc-autoaway-insinuate-maybe)) | ||
| 74 | ((eq erc-autoaway-idle-method 'emacs) | 121 | ((eq erc-autoaway-idle-method 'emacs) |
| 75 | (erc-autoaway-reestablish-idletimer))) | 122 | (erc-autoaway-reestablish-idletimer))) |
| 76 | (add-hook 'erc-timer-hook 'erc-autoaway-possibly-set-away) | 123 | (add-hook 'erc-timer-hook 'erc-autoaway-possibly-set-away) |
| 77 | (add-hook 'erc-server-305-functions 'erc-autoaway-reset-indicators))) | 124 | (add-hook 'erc-server-305-functions 'erc-autoaway-reset-indicators))) |
| 78 | ;; Disable: | 125 | ;; Disable: |
| 79 | ((when (boundp 'erc-autoaway-idle-method) | 126 | ((when (boundp 'erc-autoaway-idle-method) |
| 127 | (remove-hook 'erc-connect-pre-hook 'erc-autoaway-reset-indicators) | ||
| 80 | (cond | 128 | (cond |
| 81 | ((eq erc-autoaway-idle-method 'irc) | 129 | ((eq erc-autoaway-idle-method 'irc) |
| 82 | (remove-hook 'erc-send-completed-hook 'erc-autoaway-reset-idle-irc) | 130 | (remove-hook 'erc-send-completed-hook 'erc-autoaway-reset-idle-irc) |
| 83 | (remove-hook 'erc-server-001-functions 'erc-autoaway-reset-idle-irc)) | 131 | (remove-hook 'erc-server-001-functions 'erc-autoaway-reset-idle-irc)) |
| 84 | ((eq erc-autoaway-idle-method 'user) | 132 | ((eq erc-autoaway-idle-method 'user) |
| 85 | (remove-hook 'post-command-hook 'erc-autoaway-reset-idle-user)) | 133 | (remove-hook 'post-command-hook 'erc-autoaway-reset-idle-user) |
| 134 | (remove-hook 'erc-after-connect 'erc-autoaway-insinuate-maybe) | ||
| 135 | (remove-hook 'erc-disconnected-hook 'erc-autoaway-remove-maybe)) | ||
| 86 | ((eq erc-autoaway-idle-method 'emacs) | 136 | ((eq erc-autoaway-idle-method 'emacs) |
| 87 | (erc-cancel-timer erc-autoaway-idletimer) | 137 | (erc-cancel-timer erc-autoaway-idletimer) |
| 88 | (setq erc-autoaway-idletimer nil))) | 138 | (setq erc-autoaway-idletimer nil))) |
| @@ -104,9 +154,12 @@ definitions of being idle." | |||
| 104 | (const :tag "Emacs idle time" emacs) | 154 | (const :tag "Emacs idle time" emacs) |
| 105 | (const :tag "Last IRC action" irc)) | 155 | (const :tag "Last IRC action" irc)) |
| 106 | :set (lambda (sym val) | 156 | :set (lambda (sym val) |
| 107 | (erc-autoaway-disable) | 157 | (if erc-autoaway-mode |
| 108 | (set-default sym val) | 158 | (progn |
| 109 | (erc-autoaway-enable))) | 159 | (erc-autoaway-disable) |
| 160 | (set sym val) | ||
| 161 | (erc-autoaway-enable)) | ||
| 162 | (set sym val)))) | ||
| 110 | 163 | ||
| 111 | (defcustom erc-auto-set-away t | 164 | (defcustom erc-auto-set-away t |
| 112 | "*If non-nil, set away after `erc-autoaway-idle-seconds' seconds of idling. | 165 | "*If non-nil, set away after `erc-autoaway-idle-seconds' seconds of idling. |
| @@ -133,21 +186,6 @@ See `erc-auto-discard-away'." | |||
| 133 | :group 'erc-autoaway | 186 | :group 'erc-autoaway |
| 134 | :type 'regexp) | 187 | :type 'regexp) |
| 135 | 188 | ||
| 136 | (eval-when-compile (defvar erc-autoaway-idle-seconds)) | ||
| 137 | |||
| 138 | (defun erc-autoaway-reestablish-idletimer () | ||
| 139 | "Reestablish the Emacs idletimer. | ||
| 140 | If `erc-autoaway-idle-method' is 'emacs, you must call this | ||
| 141 | function each time you change `erc-autoaway-idle-seconds'." | ||
| 142 | (interactive) | ||
| 143 | (when erc-autoaway-idletimer | ||
| 144 | (erc-cancel-timer erc-autoaway-idletimer)) | ||
| 145 | (setq erc-autoaway-idletimer | ||
| 146 | (run-with-idle-timer erc-autoaway-idle-seconds | ||
| 147 | t | ||
| 148 | 'erc-autoaway-set-away | ||
| 149 | erc-autoaway-idle-seconds))) | ||
| 150 | |||
| 151 | (defcustom erc-autoaway-idle-seconds 1800 | 189 | (defcustom erc-autoaway-idle-seconds 1800 |
| 152 | "*Number of seconds after which ERC will set you automatically away. | 190 | "*Number of seconds after which ERC will set you automatically away. |
| 153 | If you are changing this variable using lisp instead of customizing it, | 191 | If you are changing this variable using lisp instead of customizing it, |
| @@ -167,19 +205,12 @@ in seconds." | |||
| 167 | :group 'erc-autoaway | 205 | :group 'erc-autoaway |
| 168 | :type 'string) | 206 | :type 'string) |
| 169 | 207 | ||
| 170 | (defvar erc-autoaway-last-sent-time (erc-current-time) | ||
| 171 | "The last time the user sent something.") | ||
| 172 | |||
| 173 | (defvar erc-autoaway-caused-away nil | ||
| 174 | "Indicates whether this module was responsible for setting the | ||
| 175 | user's away status.") | ||
| 176 | |||
| 177 | (defun erc-autoaway-reset-idle-user (&rest stuff) | 208 | (defun erc-autoaway-reset-idle-user (&rest stuff) |
| 178 | "Reset the stored user idle time. | 209 | "Reset the stored user idle time. |
| 179 | This is one global variable since a user talking on one net can | 210 | This is one global variable since a user talking on one net can |
| 180 | talk on another net too." | 211 | talk on another net too." |
| 181 | (when erc-auto-discard-away | 212 | (when erc-auto-discard-away |
| 182 | (erc-autoaway-set-back)) | 213 | (erc-autoaway-set-back #'erc-autoaway-remove-maybe)) |
| 183 | (setq erc-autoaway-last-sent-time (erc-current-time))) | 214 | (setq erc-autoaway-last-sent-time (erc-current-time))) |
| 184 | 215 | ||
| 185 | (defun erc-autoaway-reset-idle-irc (line &rest stuff) | 216 | (defun erc-autoaway-reset-idle-irc (line &rest stuff) |
| @@ -192,12 +223,24 @@ talk on another net too." | |||
| 192 | (erc-autoaway-set-back)) | 223 | (erc-autoaway-set-back)) |
| 193 | (setq erc-autoaway-last-sent-time (erc-current-time))) | 224 | (setq erc-autoaway-last-sent-time (erc-current-time))) |
| 194 | 225 | ||
| 195 | (defun erc-autoaway-set-back () | 226 | (defun erc-autoaway-set-back (&optional none-alive-func) |
| 196 | "Discard the away state globally." | 227 | "Discard the away state globally. |
| 197 | (let ((server-buffer (car (erc-buffer-list #'erc-server-buffer-p)))) | 228 | |
| 198 | (when (and erc-autoaway-caused-away | 229 | NONE-ALIVE-FUNC is the function to call if no ERC processes are alive." |
| 199 | (with-current-buffer server-buffer (erc-away-p))) | 230 | (let ((server-buffer (erc-autoaway-some-server-buffer))) |
| 200 | (erc-cmd-GAWAY "")))) | 231 | (if (and erc-autoaway-caused-away |
| 232 | (buffer-live-p server-buffer) | ||
| 233 | (with-current-buffer server-buffer erc-away)) | ||
| 234 | (erc-cmd-GAWAY "") | ||
| 235 | (when none-alive-func (funcall none-alive-func))))) | ||
| 236 | |||
| 237 | (defun erc-autoaway-some-open-server-buffer () | ||
| 238 | "Return some ERC server buffer if its connection is alive and the | ||
| 239 | user is not away. | ||
| 240 | If none is found, return nil." | ||
| 241 | (car (erc-buffer-list (lambda () | ||
| 242 | (and (erc-open-server-buffer-p) | ||
| 243 | (not erc-away)))))) | ||
| 201 | 244 | ||
| 202 | (defun erc-autoaway-possibly-set-away (current-time) | 245 | (defun erc-autoaway-possibly-set-away (current-time) |
| 203 | "Set autoaway when `erc-auto-set-away' is true and the idletime is | 246 | "Set autoaway when `erc-auto-set-away' is true and the idletime is |
| @@ -207,7 +250,7 @@ exceeds `erc-autoaway-idle-seconds'." | |||
| 207 | ;; whenever the server sends something to the client. | 250 | ;; whenever the server sends something to the client. |
| 208 | (when (and erc-auto-set-away | 251 | (when (and erc-auto-set-away |
| 209 | (not erc-autoaway-caused-away) | 252 | (not erc-autoaway-caused-away) |
| 210 | (not (erc-away-p))) | 253 | (erc-autoaway-some-open-server-buffer)) |
| 211 | (let ((idle-time (erc-time-diff erc-autoaway-last-sent-time | 254 | (let ((idle-time (erc-time-diff erc-autoaway-last-sent-time |
| 212 | current-time))) | 255 | current-time))) |
| 213 | (when (>= idle-time erc-autoaway-idle-seconds) | 256 | (when (>= idle-time erc-autoaway-idle-seconds) |
| @@ -215,15 +258,17 @@ exceeds `erc-autoaway-idle-seconds'." | |||
| 215 | nil 'notice nil | 258 | nil 'notice nil |
| 216 | (format "Setting automatically away after %i seconds of idle-time" | 259 | (format "Setting automatically away after %i seconds of idle-time" |
| 217 | idle-time)) | 260 | idle-time)) |
| 218 | (erc-autoaway-set-away idle-time))))) | 261 | (erc-autoaway-set-away idle-time t))))) |
| 262 | |||
| 263 | (defun erc-autoaway-set-away (idle-time &optional notest) | ||
| 264 | "Set the away state globally. | ||
| 219 | 265 | ||
| 220 | (defun erc-autoaway-set-away (idle-time) | 266 | If NOTEST is specified, do not check to see whether there is an |
| 221 | "Set the away state globally." | 267 | activer server buffer available." |
| 222 | ;; Note that the idle timer runs, even when Emacs is inactive. In | 268 | ;; Note that the idle timer runs, even when Emacs is inactive. In |
| 223 | ;; order to prevent flooding when we connect, we test for an | 269 | ;; order to prevent flooding when we connect, we test for an |
| 224 | ;; existing process. | 270 | ;; existing process. |
| 225 | (when (and (erc-server-process-alive) | 271 | (when (or notest (erc-autoaway-some-open-server-buffer)) |
| 226 | (not (erc-away-p))) | ||
| 227 | (setq erc-autoaway-caused-away t) | 272 | (setq erc-autoaway-caused-away t) |
| 228 | (erc-cmd-GAWAY (format erc-autoaway-message idle-time)))) | 273 | (erc-cmd-GAWAY (format erc-autoaway-message idle-time)))) |
| 229 | 274 | ||
diff --git a/lisp/erc/erc-backend.el b/lisp/erc/erc-backend.el index fbe6f22e1d6..08cb738d360 100644 --- a/lisp/erc/erc-backend.el +++ b/lisp/erc/erc-backend.el | |||
| @@ -174,9 +174,15 @@ WALLCHOPS - supports sending messages to all operators in a channel") | |||
| 174 | 174 | ||
| 175 | ;;; Server and connection state | 175 | ;;; Server and connection state |
| 176 | 176 | ||
| 177 | (defvar erc-server-ping-timer-alist nil | ||
| 178 | "Mapping of server buffers to their specific ping timer.") | ||
| 179 | |||
| 177 | (defvar erc-server-connected nil | 180 | (defvar erc-server-connected nil |
| 178 | "Non-nil if the `current-buffer' is associated with an open IRC connection. | 181 | "Non-nil if the current buffer has been used by ERC to establish |
| 179 | This variable is buffer-local.") | 182 | an IRC connection. |
| 183 | |||
| 184 | If you wish to determine whether an IRC connection is currently | ||
| 185 | active, use the `erc-server-process-alive' function instead.") | ||
| 180 | (make-variable-buffer-local 'erc-server-connected) | 186 | (make-variable-buffer-local 'erc-server-connected) |
| 181 | 187 | ||
| 182 | (defvar erc-server-reconnect-count 0 | 188 | (defvar erc-server-reconnect-count 0 |
| @@ -187,10 +193,23 @@ This variable is buffer-local.") | |||
| 187 | "Non-nil if the user requests a quit.") | 193 | "Non-nil if the user requests a quit.") |
| 188 | (make-variable-buffer-local 'erc-server-quitting) | 194 | (make-variable-buffer-local 'erc-server-quitting) |
| 189 | 195 | ||
| 196 | (defvar erc-server-reconnecting nil | ||
| 197 | "Non-nil if the user requests an explicit reconnect, and the | ||
| 198 | current IRC process is still alive.") | ||
| 199 | (make-variable-buffer-local 'erc-server-reconnecting) | ||
| 200 | |||
| 201 | (defvar erc-server-timed-out nil | ||
| 202 | "Non-nil if the IRC server failed to respond to a ping.") | ||
| 203 | (make-variable-buffer-local 'erc-server-timed-out) | ||
| 204 | |||
| 190 | (defvar erc-server-banned nil | 205 | (defvar erc-server-banned nil |
| 191 | "Non-nil if the user is denied access because of a server ban.") | 206 | "Non-nil if the user is denied access because of a server ban.") |
| 192 | (make-variable-buffer-local 'erc-server-banned) | 207 | (make-variable-buffer-local 'erc-server-banned) |
| 193 | 208 | ||
| 209 | (defvar erc-server-error-occurred nil | ||
| 210 | "Non-nil if the user triggers some server error.") | ||
| 211 | (make-variable-buffer-local 'erc-server-error-occurred) | ||
| 212 | |||
| 194 | (defvar erc-server-lines-sent nil | 213 | (defvar erc-server-lines-sent nil |
| 195 | "Line counter.") | 214 | "Line counter.") |
| 196 | (make-variable-buffer-local 'erc-server-lines-sent) | 215 | (make-variable-buffer-local 'erc-server-lines-sent) |
| @@ -210,6 +229,11 @@ This is useful for flood protection.") | |||
| 210 | This is useful for flood protection.") | 229 | This is useful for flood protection.") |
| 211 | (make-variable-buffer-local 'erc-server-last-ping-time) | 230 | (make-variable-buffer-local 'erc-server-last-ping-time) |
| 212 | 231 | ||
| 232 | (defvar erc-server-last-received-time nil | ||
| 233 | "Time the last message was received from the server. | ||
| 234 | This is useful for detecting hung connections.") | ||
| 235 | (make-variable-buffer-local 'erc-server-last-received-time) | ||
| 236 | |||
| 213 | (defvar erc-server-lag nil | 237 | (defvar erc-server-lag nil |
| 214 | "Calculated server lag time in seconds. | 238 | "Calculated server lag time in seconds. |
| 215 | This variable is only set in a server buffer.") | 239 | This variable is only set in a server buffer.") |
| @@ -387,11 +411,24 @@ protection algorithm." | |||
| 387 | 411 | ||
| 388 | ;; Ping handling | 412 | ;; Ping handling |
| 389 | 413 | ||
| 390 | (defcustom erc-server-send-ping-interval 90 | 414 | (defcustom erc-server-send-ping-interval 30 |
| 391 | "*Interval of sending pings to the server, in seconds. | 415 | "*Interval of sending pings to the server, in seconds. |
| 392 | If this is set to nil, pinging the server is disabled." | 416 | If this is set to nil, pinging the server is disabled." |
| 393 | :group 'erc-server | 417 | :group 'erc-server |
| 394 | :type '(choice (const nil) (integer :tag "Seconds"))) | 418 | :type '(choice (const :tag "Disabled" nil) |
| 419 | (integer :tag "Seconds"))) | ||
| 420 | |||
| 421 | (defcustom erc-server-send-ping-timeout 120 | ||
| 422 | "*If the time between ping and response is greater than this, reconnect. | ||
| 423 | The time is in seconds. | ||
| 424 | |||
| 425 | This must be greater than or equal to the value for | ||
| 426 | `erc-server-send-ping-interval'. | ||
| 427 | |||
| 428 | If this is set to nil, never try to reconnect." | ||
| 429 | :group 'erc-server | ||
| 430 | :type '(choice (const :tag "Disabled" nil) | ||
| 431 | (integer :tag "Seconds"))) | ||
| 395 | 432 | ||
| 396 | (defvar erc-server-ping-handler nil | 433 | (defvar erc-server-ping-handler nil |
| 397 | "This variable holds the periodic ping timer.") | 434 | "This variable holds the periodic ping timer.") |
| @@ -424,20 +461,40 @@ Currently this is called by `erc-send-input'." | |||
| 424 | (upcase-word 1) | 461 | (upcase-word 1) |
| 425 | (buffer-string))) | 462 | (buffer-string))) |
| 426 | 463 | ||
| 427 | (defun erc-server-setup-periodical-server-ping (&rest ignore) | 464 | (defun erc-server-send-ping (buf) |
| 428 | "Set up a timer to periodically ping the current server." | 465 | "Send a ping to the IRC server buffer in BUF. |
| 429 | (and erc-server-ping-handler (erc-cancel-timer erc-server-ping-handler)) | 466 | Additionally, detect whether the IRC process has hung." |
| 430 | (when erc-server-send-ping-interval | 467 | (if (buffer-live-p buf) |
| 431 | (setq erc-server-ping-handler | 468 | (with-current-buffer buf |
| 432 | (run-with-timer | 469 | (if (and erc-server-send-ping-timeout |
| 433 | 4 erc-server-send-ping-interval | 470 | (> |
| 434 | (lambda (buf) | 471 | (erc-time-diff (erc-current-time) |
| 435 | (when (buffer-live-p buf) | 472 | erc-server-last-received-time) |
| 436 | (with-current-buffer buf | 473 | erc-server-send-ping-timeout)) |
| 437 | (erc-server-send | 474 | (progn |
| 438 | (format "PING %.0f" | 475 | ;; if the process is hung, kill it |
| 439 | (erc-current-time)))))) | 476 | (setq erc-server-timed-out t) |
| 440 | (current-buffer))))) | 477 | (delete-process erc-server-process)) |
| 478 | (erc-server-send (format "PING %.0f" (erc-current-time))))) | ||
| 479 | ;; remove timer if the server buffer has been killed | ||
| 480 | (let ((timer (assq buf erc-server-ping-timer-alist))) | ||
| 481 | (when timer | ||
| 482 | (erc-cancel-timer (cdr timer)) | ||
| 483 | (setcdr timer nil))))) | ||
| 484 | |||
| 485 | (defun erc-server-setup-periodical-ping (buffer) | ||
| 486 | "Set up a timer to periodically ping the current server. | ||
| 487 | The current buffer is given by BUFFER." | ||
| 488 | (with-current-buffer buffer | ||
| 489 | (and erc-server-ping-handler (erc-cancel-timer erc-server-ping-handler)) | ||
| 490 | (when erc-server-send-ping-interval | ||
| 491 | (setq erc-server-ping-handler (run-with-timer | ||
| 492 | 4 erc-server-send-ping-interval | ||
| 493 | #'erc-server-send-ping | ||
| 494 | buffer)) | ||
| 495 | (setq erc-server-ping-timer-alist (cons (cons buffer | ||
| 496 | erc-server-ping-handler) | ||
| 497 | erc-server-ping-timer-alist))))) | ||
| 441 | 498 | ||
| 442 | (defun erc-server-process-alive () | 499 | (defun erc-server-process-alive () |
| 443 | "Return non-nil when `erc-server-process' is open or running." | 500 | "Return non-nil when `erc-server-process' is open or running." |
| @@ -447,40 +504,47 @@ Currently this is called by `erc-send-input'." | |||
| 447 | 504 | ||
| 448 | ;;;; Connecting to a server | 505 | ;;;; Connecting to a server |
| 449 | 506 | ||
| 450 | (defun erc-server-connect (server port) | 507 | (defun erc-server-connect (server port buffer) |
| 451 | "Perform the connection and login. | 508 | "Perform the connection and login using the specified SERVER and PORT. |
| 452 | We will store server variables in the current buffer." | 509 | We will store server variables in the buffer given by BUFFER." |
| 453 | (let ((msg (erc-format-message 'connect ?S server ?p port))) | 510 | (let ((msg (erc-format-message 'connect ?S server ?p port))) |
| 454 | (message "%s" msg) | 511 | (message "%s" msg) |
| 455 | (setq erc-server-process | 512 | (let ((process (funcall erc-server-connect-function |
| 456 | (funcall erc-server-connect-function | 513 | (format "erc-%s-%s" server port) |
| 457 | (format "erc-%s-%s" server port) | 514 | nil server port))) |
| 458 | (current-buffer) server port)) | 515 | (message "%s...done" msg) |
| 459 | (message "%s...done" msg)) | 516 | ;; Misc server variables |
| 460 | ;; Misc server variables | 517 | (with-current-buffer buffer |
| 461 | (setq erc-server-quitting nil) | 518 | (setq erc-server-process process) |
| 462 | (setq erc-server-banned nil) | 519 | (setq erc-server-quitting nil) |
| 463 | (setq erc-server-last-sent-time (erc-current-time)) | 520 | (setq erc-server-reconnecting nil) |
| 464 | (setq erc-server-last-ping-time (erc-current-time)) | 521 | (setq erc-server-timed-out nil) |
| 465 | (setq erc-server-lines-sent 0) | 522 | (setq erc-server-banned nil) |
| 466 | ;; last peers (sender and receiver) | 523 | (setq erc-server-error-occurred nil) |
| 467 | (setq erc-server-last-peers '(nil . nil)) | 524 | (let ((time (erc-current-time))) |
| 468 | ;; process handlers | 525 | (setq erc-server-last-sent-time time) |
| 469 | (set-process-sentinel erc-server-process 'erc-process-sentinel) | 526 | (setq erc-server-last-ping-time time) |
| 470 | (set-process-filter erc-server-process 'erc-server-filter-function) | 527 | (setq erc-server-last-received-time time)) |
| 471 | ;; we do our own encoding and decoding | 528 | (setq erc-server-lines-sent 0) |
| 472 | (when (fboundp 'set-process-coding-system) | 529 | ;; last peers (sender and receiver) |
| 473 | (set-process-coding-system erc-server-process 'raw-text)) | 530 | (setq erc-server-last-peers '(nil . nil))) |
| 474 | (set-marker (process-mark erc-server-process) (point)) | 531 | ;; we do our own encoding and decoding |
| 532 | (when (fboundp 'set-process-coding-system) | ||
| 533 | (set-process-coding-system process 'raw-text)) | ||
| 534 | ;; process handlers | ||
| 535 | (set-process-sentinel process 'erc-process-sentinel) | ||
| 536 | (set-process-filter process 'erc-server-filter-function) | ||
| 537 | (set-process-buffer process buffer))) | ||
| 475 | (erc-log "\n\n\n********************************************\n") | 538 | (erc-log "\n\n\n********************************************\n") |
| 476 | (message (erc-format-message 'login ?n (erc-current-nick))) | 539 | (message (erc-format-message |
| 540 | 'login ?n | ||
| 541 | (with-current-buffer buffer (erc-current-nick)))) | ||
| 477 | ;; wait with script loading until we receive a confirmation (first | 542 | ;; wait with script loading until we receive a confirmation (first |
| 478 | ;; MOTD line) | 543 | ;; MOTD line) |
| 479 | (if (eq erc-server-connect-function 'open-network-stream-nowait) | 544 | (if (eq erc-server-connect-function 'open-network-stream-nowait) |
| 480 | ;; it's a bit unclear otherwise that it's attempting to establish a | 545 | ;; it's a bit unclear otherwise that it's attempting to establish a |
| 481 | ;; connection | 546 | ;; connection |
| 482 | (erc-display-message nil nil (current-buffer) | 547 | (erc-display-message nil nil buffer "Opening connection..\n") |
| 483 | "Opening connection..\n") | ||
| 484 | (erc-login))) | 548 | (erc-login))) |
| 485 | 549 | ||
| 486 | (defun erc-server-reconnect () | 550 | (defun erc-server-reconnect () |
| @@ -501,6 +565,7 @@ Make sure you are in an ERC buffer when running this." | |||
| 501 | (defun erc-server-filter-function (process string) | 565 | (defun erc-server-filter-function (process string) |
| 502 | "The process filter for the ERC server." | 566 | "The process filter for the ERC server." |
| 503 | (with-current-buffer (process-buffer process) | 567 | (with-current-buffer (process-buffer process) |
| 568 | (setq erc-server-last-received-time (erc-current-time)) | ||
| 504 | ;; If you think this is written in a weird way - please refer to the | 569 | ;; If you think this is written in a weird way - please refer to the |
| 505 | ;; docstring of `erc-server-processing-p' | 570 | ;; docstring of `erc-server-processing-p' |
| 506 | (if erc-server-processing-p | 571 | (if erc-server-processing-p |
| @@ -529,16 +594,20 @@ Make sure you are in an ERC buffer when running this." | |||
| 529 | (defsubst erc-server-reconnect-p (event) | 594 | (defsubst erc-server-reconnect-p (event) |
| 530 | "Return non-nil if ERC should attempt to reconnect automatically. | 595 | "Return non-nil if ERC should attempt to reconnect automatically. |
| 531 | EVENT is the message received from the closed connection process." | 596 | EVENT is the message received from the closed connection process." |
| 532 | (and erc-server-auto-reconnect | 597 | (or erc-server-reconnecting |
| 533 | (not erc-server-banned) | 598 | (and erc-server-auto-reconnect |
| 534 | ;; make sure we don't infinitely try to reconnect, unless the | 599 | (not erc-server-banned) |
| 535 | ;; user wants that | 600 | (not erc-server-error-occurred) |
| 536 | (or (eq erc-server-reconnect-attempts t) | 601 | ;; make sure we don't infinitely try to reconnect, unless the |
| 537 | (and (integerp erc-server-reconnect-attempts) | 602 | ;; user wants that |
| 538 | (< erc-server-reconnect-count erc-server-reconnect-attempts))) | 603 | (or (eq erc-server-reconnect-attempts t) |
| 539 | (not (string-match "^deleted" event)) | 604 | (and (integerp erc-server-reconnect-attempts) |
| 540 | ;; open-network-stream-nowait error for connection refused | 605 | (< erc-server-reconnect-count |
| 541 | (not (string-match "^failed with code 111" event)))) | 606 | erc-server-reconnect-attempts))) |
| 607 | (or erc-server-timed-out | ||
| 608 | (not (string-match "^deleted" event))) | ||
| 609 | ;; open-network-stream-nowait error for connection refused | ||
| 610 | (not (string-match "^failed with code 111" event))))) | ||
| 542 | 611 | ||
| 543 | (defun erc-process-sentinel-1 (event) | 612 | (defun erc-process-sentinel-1 (event) |
| 544 | "Called when `erc-process-sentinel' has decided that we're disconnecting. | 613 | "Called when `erc-process-sentinel' has decided that we're disconnecting. |
| @@ -562,6 +631,7 @@ Conditionally try to reconnect and take appropriate action." | |||
| 562 | (if (erc-server-reconnect-p event) | 631 | (if (erc-server-reconnect-p event) |
| 563 | (condition-case err | 632 | (condition-case err |
| 564 | (progn | 633 | (progn |
| 634 | (setq erc-server-reconnecting nil) | ||
| 565 | (erc-server-reconnect) | 635 | (erc-server-reconnect) |
| 566 | (setq erc-server-reconnect-count 0)) | 636 | (setq erc-server-reconnect-count 0)) |
| 567 | (error (when (integerp erc-server-reconnect-attempts) | 637 | (error (when (integerp erc-server-reconnect-attempts) |
| @@ -611,6 +681,7 @@ Conditionally try to reconnect and take appropriate action." | |||
| 611 | "Return the coding system or cons cell appropriate for TARGET. | 681 | "Return the coding system or cons cell appropriate for TARGET. |
| 612 | This is determined via `erc-encoding-coding-alist' or | 682 | This is determined via `erc-encoding-coding-alist' or |
| 613 | `erc-server-coding-system'." | 683 | `erc-server-coding-system'." |
| 684 | (unless target (setq target (erc-default-target))) | ||
| 614 | (or (when target | 685 | (or (when target |
| 615 | (let ((case-fold-search t)) | 686 | (let ((case-fold-search t)) |
| 616 | (catch 'match | 687 | (catch 'match |
| @@ -656,14 +727,11 @@ See `erc-server-flood-margin' for an explanation of the flood | |||
| 656 | protection algorithm." | 727 | protection algorithm." |
| 657 | (erc-log (concat "erc-server-send: " string "(" (buffer-name) ")")) | 728 | (erc-log (concat "erc-server-send: " string "(" (buffer-name) ")")) |
| 658 | (setq erc-server-last-sent-time (erc-current-time)) | 729 | (setq erc-server-last-sent-time (erc-current-time)) |
| 659 | (let ((buf (erc-server-buffer)) | 730 | (let ((encoding (erc-coding-system-for-target target))) |
| 660 | (encoding (erc-coding-system-for-target | ||
| 661 | (or target (erc-default-target))))) | ||
| 662 | (when (consp encoding) | 731 | (when (consp encoding) |
| 663 | (setq encoding (car encoding))) | 732 | (setq encoding (car encoding))) |
| 664 | (if (and buf | 733 | (if (erc-server-process-alive) |
| 665 | (erc-server-process-alive)) | 734 | (erc-with-server-buffer |
| 666 | (with-current-buffer buf | ||
| 667 | (let ((str (concat string "\r\n"))) | 735 | (let ((str (concat string "\r\n"))) |
| 668 | (if forcep | 736 | (if forcep |
| 669 | (progn | 737 | (progn |
| @@ -903,10 +971,8 @@ Finds hooks by looking in the `erc-server-responses' hashtable." | |||
| 903 | (let ((hook (or (erc-get-hook (erc-response.command message)) | 971 | (let ((hook (or (erc-get-hook (erc-response.command message)) |
| 904 | 'erc-default-server-functions))) | 972 | 'erc-default-server-functions))) |
| 905 | (run-hook-with-args-until-success hook process message) | 973 | (run-hook-with-args-until-success hook process message) |
| 906 | (let ((server-buffer (erc-server-buffer))) | 974 | (erc-with-server-buffer |
| 907 | (when (buffer-live-p server-buffer) | 975 | (run-hook-with-args 'erc-timer-hook (erc-current-time))))) |
| 908 | (with-current-buffer server-buffer | ||
| 909 | (run-hook-with-args 'erc-timer-hook (erc-current-time))))))) | ||
| 910 | 976 | ||
| 911 | (add-hook 'erc-default-server-functions 'erc-handle-unknown-server-response) | 977 | (add-hook 'erc-default-server-functions 'erc-handle-unknown-server-response) |
| 912 | 978 | ||
| @@ -1062,6 +1128,7 @@ add things to `%s' instead." | |||
| 1062 | 1128 | ||
| 1063 | (define-erc-response-handler (ERROR) | 1129 | (define-erc-response-handler (ERROR) |
| 1064 | "Handle an ERROR command from the server." nil | 1130 | "Handle an ERROR command from the server." nil |
| 1131 | (setq erc-server-error-occurred t) | ||
| 1065 | (erc-display-message | 1132 | (erc-display-message |
| 1066 | parsed 'error nil 'ERROR | 1133 | parsed 'error nil 'ERROR |
| 1067 | ?s (erc-response.sender parsed) ?c (erc-response.contents parsed))) | 1134 | ?s (erc-response.sender parsed) ?c (erc-response.contents parsed))) |
| @@ -1446,6 +1513,9 @@ A server may send more than one 005 message." | |||
| 1446 | See `erc-display-server-message'." nil | 1513 | See `erc-display-server-message'." nil |
| 1447 | (erc-display-server-message proc parsed)) | 1514 | (erc-display-server-message proc parsed)) |
| 1448 | 1515 | ||
| 1516 | (define-erc-response-handler (290) | ||
| 1517 | "Handle dancer-ircd CAPAB messages." nil nil) | ||
| 1518 | |||
| 1449 | (define-erc-response-handler (301) | 1519 | (define-erc-response-handler (301) |
| 1450 | "AWAY notice." nil | 1520 | "AWAY notice." nil |
| 1451 | (erc-display-message parsed 'notice 'active 's301 | 1521 | (erc-display-message parsed 'notice 'active 's301 |
diff --git a/lisp/erc/erc-button.el b/lisp/erc/erc-button.el index 1fd224fb956..435c72bba23 100644 --- a/lisp/erc/erc-button.el +++ b/lisp/erc/erc-button.el | |||
| @@ -56,10 +56,12 @@ | |||
| 56 | "This mode buttonizes all messages according to `erc-button-alist'." | 56 | "This mode buttonizes all messages according to `erc-button-alist'." |
| 57 | ((add-hook 'erc-insert-modify-hook 'erc-button-add-buttons 'append) | 57 | ((add-hook 'erc-insert-modify-hook 'erc-button-add-buttons 'append) |
| 58 | (add-hook 'erc-send-modify-hook 'erc-button-add-buttons 'append) | 58 | (add-hook 'erc-send-modify-hook 'erc-button-add-buttons 'append) |
| 59 | (add-hook 'erc-complete-functions 'erc-button-next)) | 59 | (add-hook 'erc-complete-functions 'erc-button-next) |
| 60 | (add-hook 'erc-mode-hook 'erc-button-add-keys)) | ||
| 60 | ((remove-hook 'erc-insert-modify-hook 'erc-button-add-buttons) | 61 | ((remove-hook 'erc-insert-modify-hook 'erc-button-add-buttons) |
| 61 | (remove-hook 'erc-send-modify-hook 'erc-button-add-buttons) | 62 | (remove-hook 'erc-send-modify-hook 'erc-button-add-buttons) |
| 62 | (remove-hook 'erc-complete-functions 'erc-button-next))) | 63 | (remove-hook 'erc-complete-functions 'erc-button-next) |
| 64 | (remove-hook 'erc-mode-hook 'erc-button-add-keys))) | ||
| 63 | 65 | ||
| 64 | ;; Make XEmacs use `erc-button-face'. | 66 | ;; Make XEmacs use `erc-button-face'. |
| 65 | (when (featurep 'xemacs) | 67 | (when (featurep 'xemacs) |
| @@ -241,6 +243,16 @@ PAR is a number of a regexp grouping whose text will be passed to | |||
| 241 | This syntax table should make all the legal nick characters word | 243 | This syntax table should make all the legal nick characters word |
| 242 | constituents.") | 244 | constituents.") |
| 243 | 245 | ||
| 246 | (defvar erc-button-keys-added nil | ||
| 247 | "Internal variable used to keep track of whether we've added the | ||
| 248 | global-level ERC button keys yet.") | ||
| 249 | |||
| 250 | (defun erc-button-add-keys () | ||
| 251 | "Add ERC mode-level button movement keys. This is only done once." | ||
| 252 | (unless erc-button-keys-added | ||
| 253 | (define-key erc-mode-map (kbd "<backtab>") 'erc-button-previous) | ||
| 254 | (setq erc-button-keys-added t))) | ||
| 255 | |||
| 244 | (defun erc-button-add-buttons () | 256 | (defun erc-button-add-buttons () |
| 245 | "Find external references in the current buffer and make buttons of them. | 257 | "Find external references in the current buffer and make buttons of them. |
| 246 | \"External references\" are things like URLs, as | 258 | \"External references\" are things like URLs, as |
diff --git a/lisp/erc/erc-capab.el b/lisp/erc/erc-capab.el index 268c4bfe68a..b7ccade02e0 100644 --- a/lisp/erc/erc-capab.el +++ b/lisp/erc/erc-capab.el | |||
| @@ -56,8 +56,10 @@ | |||
| 56 | ;; (erc-capab-identify-mode 1) | 56 | ;; (erc-capab-identify-mode 1) |
| 57 | 57 | ||
| 58 | ;; `erc-capab-identify-prefix' will now be added to the beginning of | 58 | ;; `erc-capab-identify-prefix' will now be added to the beginning of |
| 59 | ;; unidentified users' nicknames. The default is an asterisk, "*". If | 59 | ;; unidentified users' nicknames. The default is an asterisk, "*". |
| 60 | ;; the value of this variable is nil or you disable this module (see | 60 | ;; You can customize the prefix and the face used to display it, |
| 61 | ;; `erc-capab-identify-unidentified'. If the value of | ||
| 62 | ;; `erc-capab-identify-prefix' is nil or you disable this module (see | ||
| 61 | ;; `erc-capab-identify-disable'), no prefix will be inserted, but the | 63 | ;; `erc-capab-identify-disable'), no prefix will be inserted, but the |
| 62 | ;; flag sent by the server will still be stripped. | 64 | ;; flag sent by the server will still be stripped. |
| 63 | 65 | ||
| @@ -73,14 +75,19 @@ | |||
| 73 | :group 'erc) | 75 | :group 'erc) |
| 74 | 76 | ||
| 75 | (defcustom erc-capab-identify-prefix "*" | 77 | (defcustom erc-capab-identify-prefix "*" |
| 76 | "The prefix used for unidentified users." | 78 | "The prefix used for unidentified users. |
| 79 | |||
| 80 | If you change this from the default \"*\", be sure to use a | ||
| 81 | character not found in IRC nicknames to avoid confusion." | ||
| 77 | :group 'erc-capab | 82 | :group 'erc-capab |
| 78 | :type '(choice string (const nil))) | 83 | :type '(choice string (const nil))) |
| 79 | 84 | ||
| 80 | ;;; Define module: | 85 | (defface erc-capab-identify-unidentified '((t)) ; same as `erc-default-face' |
| 86 | "Face to use for `erc-capab-identify-prefix'." | ||
| 87 | :group 'erc-capab | ||
| 88 | :group 'erc-faces) | ||
| 81 | 89 | ||
| 82 | (define-erc-response-handler (290) | 90 | ;;; Define module: |
| 83 | "Handle dancer-ircd CAPAB messages." nil nil) | ||
| 84 | 91 | ||
| 85 | ;;;###autoload (autoload 'erc-capab-identify-mode "erc-capab" nil t) | 92 | ;;;###autoload (autoload 'erc-capab-identify-mode "erc-capab" nil t) |
| 86 | (define-erc-module capab-identify nil | 93 | (define-erc-module capab-identify nil |
| @@ -124,9 +131,9 @@ Optional argument PARSED is the current message, a response struct. | |||
| 124 | These arguments are sent to this function when called as a hook in | 131 | These arguments are sent to this function when called as a hook in |
| 125 | `erc-server-005-functions'." | 132 | `erc-server-005-functions'." |
| 126 | (unless erc-capab-identify-sent | 133 | (unless erc-capab-identify-sent |
| 127 | (erc-capab-send-identify-messages))) | 134 | (erc-capab-identify-send-messages))) |
| 128 | 135 | ||
| 129 | (defun erc-capab-send-identify-messages () | 136 | (defun erc-capab-identify-send-messages () |
| 130 | "Send CAPAB IDENTIFY messages if the server supports it." | 137 | "Send CAPAB IDENTIFY messages if the server supports it." |
| 131 | (when (and (stringp erc-server-version) | 138 | (when (and (stringp erc-server-version) |
| 132 | (string-match "^\\(dancer-ircd\\|hyperion\\)" erc-server-version) | 139 | (string-match "^\\(dancer-ircd\\|hyperion\\)" erc-server-version) |
| @@ -175,7 +182,7 @@ PARSED is an `erc-parsed' response struct." | |||
| 175 | (when (and erc-capab-identify-prefix | 182 | (when (and erc-capab-identify-prefix |
| 176 | (erc-with-server-buffer erc-capab-identify-activated)) | 183 | (erc-with-server-buffer erc-capab-identify-activated)) |
| 177 | (goto-char (or (erc-find-parsed-property) (point-min))) | 184 | (goto-char (or (erc-find-parsed-property) (point-min))) |
| 178 | (let ((nickname (erc-capab-get-unidentified-nickname | 185 | (let ((nickname (erc-capab-identify-get-unidentified-nickname |
| 179 | (erc-get-parsed-vector (point))))) | 186 | (erc-get-parsed-vector (point))))) |
| 180 | (when (and nickname | 187 | (when (and nickname |
| 181 | (goto-char (point-min)) | 188 | (goto-char (point-min)) |
| @@ -183,10 +190,9 @@ PARSED is an `erc-parsed' response struct." | |||
| 183 | (re-search-forward (regexp-quote nickname) nil t)) | 190 | (re-search-forward (regexp-quote nickname) nil t)) |
| 184 | (goto-char (match-beginning 0)) | 191 | (goto-char (match-beginning 0)) |
| 185 | (insert (erc-propertize erc-capab-identify-prefix | 192 | (insert (erc-propertize erc-capab-identify-prefix |
| 186 | 'face (get-char-property (- (point) 1) | 193 | 'face 'erc-capab-identify-unidentified)))))) |
| 187 | 'face))))))) | ||
| 188 | 194 | ||
| 189 | (defun erc-capab-get-unidentified-nickname (parsed) | 195 | (defun erc-capab-identify-get-unidentified-nickname (parsed) |
| 190 | "Return the nickname of the user if unidentified. | 196 | "Return the nickname of the user if unidentified. |
| 191 | PARSED is an `erc-parsed' response struct." | 197 | PARSED is an `erc-parsed' response struct." |
| 192 | (when (and (erc-response-p parsed) | 198 | (when (and (erc-response-p parsed) |
diff --git a/lisp/erc/erc-compat.el b/lisp/erc/erc-compat.el index 60cbe992d19..dcfcfe84c98 100644 --- a/lisp/erc/erc-compat.el +++ b/lisp/erc/erc-compat.el | |||
| @@ -161,14 +161,6 @@ avoid corrupting the original SEQ." | |||
| 161 | (setq newseq (cons el newseq)))) | 161 | (setq newseq (cons el newseq)))) |
| 162 | (nreverse newseq))) | 162 | (nreverse newseq))) |
| 163 | 163 | ||
| 164 | ;; Provide a simpler replacement for `gensym'. | ||
| 165 | (defvar *erc-sym-counter* 0) | ||
| 166 | (defun erc-gensym () | ||
| 167 | "Generate a new uninterned symbol." | ||
| 168 | (let ((num (prog1 *erc-sym-counter* | ||
| 169 | (setq *erc-sym-counter* (1+ *erc-sym-counter*))))) | ||
| 170 | (make-symbol (format "*erc-sym-%d*" num)))) | ||
| 171 | |||
| 172 | ;; Copied from cl-extra.el | 164 | ;; Copied from cl-extra.el |
| 173 | (defun erc-subseq (seq start &optional end) | 165 | (defun erc-subseq (seq start &optional end) |
| 174 | "Return the subsequence of SEQ from START to END. | 166 | "Return the subsequence of SEQ from START to END. |
diff --git a/lisp/erc/erc-fill.el b/lisp/erc/erc-fill.el index 26ca86f04c6..fc1c71babdf 100644 --- a/lisp/erc/erc-fill.el +++ b/lisp/erc/erc-fill.el | |||
| @@ -1,6 +1,7 @@ | |||
| 1 | ;;; erc-fill.el --- Filling IRC messages in various ways | 1 | ;;; erc-fill.el --- Filling IRC messages in various ways |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 2001, 2002, 2003, 2004, 2006, 2007 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2001, 2002, 2003, 2004, 2006, |
| 4 | ;; 2007 Free Software Foundation, Inc. | ||
| 4 | 5 | ||
| 5 | ;; Author: Andreas Fuchs <asf@void.at> | 6 | ;; Author: Andreas Fuchs <asf@void.at> |
| 6 | ;; Mario Lang <mlang@delysid.org> | 7 | ;; Mario Lang <mlang@delysid.org> |
| @@ -187,14 +188,6 @@ You can put this on `erc-insert-modify-hook' and/or `erc-send-modify-hook'." | |||
| 187 | (length (format-time-string erc-timestamp-format)) | 188 | (length (format-time-string erc-timestamp-format)) |
| 188 | 0)) | 189 | 0)) |
| 189 | 190 | ||
| 190 | (defun erc-restore-text-properties () | ||
| 191 | "Restore the property 'erc-parsed for the region." | ||
| 192 | (let* ((parsed-posn (text-property-not-all (point-min) (point-max) | ||
| 193 | 'erc-parsed nil)) | ||
| 194 | (parsed-prop (when parsed-posn | ||
| 195 | (get-text-property parsed-posn 'erc-parsed)))) | ||
| 196 | (put-text-property (point-min) (point-max) 'erc-parsed parsed-prop))) | ||
| 197 | |||
| 198 | (provide 'erc-fill) | 191 | (provide 'erc-fill) |
| 199 | 192 | ||
| 200 | ;;; erc-fill.el ends here | 193 | ;;; erc-fill.el ends here |
diff --git a/lisp/erc/erc-ibuffer.el b/lisp/erc/erc-ibuffer.el index 5266d837d64..25ad1319bd6 100644 --- a/lisp/erc/erc-ibuffer.el +++ b/lisp/erc/erc-ibuffer.el | |||
| @@ -127,8 +127,7 @@ | |||
| 127 | (define-ibuffer-column erc-away (:name "A") | 127 | (define-ibuffer-column erc-away (:name "A") |
| 128 | (if (and erc-server-process | 128 | (if (and erc-server-process |
| 129 | (processp erc-server-process) | 129 | (processp erc-server-process) |
| 130 | (with-current-buffer (process-buffer erc-server-process) | 130 | (erc-away-time)) |
| 131 | erc-away)) | ||
| 132 | "A" | 131 | "A" |
| 133 | " ")) | 132 | " ")) |
| 134 | 133 | ||
diff --git a/lisp/erc/erc-identd.el b/lisp/erc/erc-identd.el index c7f7c615e92..8a70a743edb 100644 --- a/lisp/erc/erc-identd.el +++ b/lisp/erc/erc-identd.el | |||
| @@ -42,12 +42,26 @@ | |||
| 42 | 42 | ||
| 43 | (defvar erc-identd-process nil) | 43 | (defvar erc-identd-process nil) |
| 44 | 44 | ||
| 45 | (defgroup erc-identd nil | ||
| 46 | "Run a local identd server." | ||
| 47 | :group 'erc) | ||
| 48 | |||
| 49 | (defcustom erc-identd-port 8113 | ||
| 50 | "Port to run the identd server on if not specified in the argument for | ||
| 51 | `erc-identd-start'. | ||
| 52 | |||
| 53 | This can be either a string or a number." | ||
| 54 | :group 'erc-identd | ||
| 55 | :type '(choice (const :tag "None" nil) | ||
| 56 | (integer :tag "Port number") | ||
| 57 | (string :tag "Port string"))) | ||
| 58 | |||
| 45 | ;;;###autoload (autoload 'erc-identd-mode "erc-identd") | 59 | ;;;###autoload (autoload 'erc-identd-mode "erc-identd") |
| 46 | (define-erc-module identd nil | 60 | (define-erc-module identd nil |
| 47 | "This mode launches an identd server on port 8113." | 61 | "This mode launches an identd server on port 8113." |
| 48 | ((add-hook 'erc-connect-pre-hook 'erc-identd-start) | 62 | ((add-hook 'erc-connect-pre-hook 'erc-identd-quickstart) |
| 49 | (add-hook 'erc-disconnected-hook 'erc-identd-stop)) | 63 | (add-hook 'erc-disconnected-hook 'erc-identd-stop)) |
| 50 | ((remove-hook 'erc-connect-pre-hook 'erc-identd-start) | 64 | ((remove-hook 'erc-connect-pre-hook 'erc-identd-quickstart) |
| 51 | (remove-hook 'erc-disconnected-hook 'erc-identd-stop))) | 65 | (remove-hook 'erc-disconnected-hook 'erc-identd-stop))) |
| 52 | 66 | ||
| 53 | (defun erc-identd-filter (proc string) | 67 | (defun erc-identd-filter (proc string) |
| @@ -71,12 +85,11 @@ run from inetd. The idea is to provide a simple identd server | |||
| 71 | when you need one, without having to install one globally on your | 85 | when you need one, without having to install one globally on your |
| 72 | system." | 86 | system." |
| 73 | (interactive (list (read-string "Serve identd requests on port: " "8113"))) | 87 | (interactive (list (read-string "Serve identd requests on port: " "8113"))) |
| 74 | (if (null port) | 88 | (unless port (setq port erc-identd-port)) |
| 75 | (setq port 8113) | 89 | (when (stringp port) |
| 76 | (if (stringp port) | 90 | (setq port (string-to-number port))) |
| 77 | (setq port (string-to-number port)))) | 91 | (when erc-identd-process |
| 78 | (if erc-identd-process | 92 | (delete-process erc-identd-process)) |
| 79 | (delete-process erc-identd-process)) | ||
| 80 | (setq erc-identd-process | 93 | (setq erc-identd-process |
| 81 | (make-network-process :name "identd" | 94 | (make-network-process :name "identd" |
| 82 | :buffer nil | 95 | :buffer nil |
| @@ -85,6 +98,11 @@ system." | |||
| 85 | :filter 'erc-identd-filter)) | 98 | :filter 'erc-identd-filter)) |
| 86 | (set-process-query-on-exit-flag erc-identd-process nil)) | 99 | (set-process-query-on-exit-flag erc-identd-process nil)) |
| 87 | 100 | ||
| 101 | (defun erc-identd-quickstart (&rest ignored) | ||
| 102 | "Start the identd server with the default port. | ||
| 103 | The default port is specified by `erc-identd-port'." | ||
| 104 | (erc-identd-start)) | ||
| 105 | |||
| 88 | ;;;###autoload | 106 | ;;;###autoload |
| 89 | (defun erc-identd-stop (&rest ignore) | 107 | (defun erc-identd-stop (&rest ignore) |
| 90 | (interactive) | 108 | (interactive) |
diff --git a/lisp/erc/erc-log.el b/lisp/erc/erc-log.el index 22c9b3622d3..9801192bca0 100644 --- a/lisp/erc/erc-log.el +++ b/lisp/erc/erc-log.el | |||
| @@ -85,7 +85,9 @@ | |||
| 85 | ;;; Code: | 85 | ;;; Code: |
| 86 | 86 | ||
| 87 | (require 'erc) | 87 | (require 'erc) |
| 88 | (eval-when-compile (require 'cl)) | 88 | (eval-when-compile |
| 89 | (require 'erc-networks) | ||
| 90 | (require 'cl)) | ||
| 89 | 91 | ||
| 90 | (defgroup erc-log nil | 92 | (defgroup erc-log nil |
| 91 | "Logging facilities for ERC." | 93 | "Logging facilities for ERC." |
| @@ -100,10 +102,12 @@ NICK is the current nick, | |||
| 100 | SERVER and PORT are the parameters used to connect BUFFERs | 102 | SERVER and PORT are the parameters used to connect BUFFERs |
| 101 | `erc-server-process'." | 103 | `erc-server-process'." |
| 102 | :group 'erc-log | 104 | :group 'erc-log |
| 103 | :type '(choice (const erc-generate-log-file-name-long) | 105 | :type '(choice (const :tag "Long style" erc-generate-log-file-name-long) |
| 104 | (const erc-generate-log-file-name-short) | 106 | (const :tag "Long, but with network name rather than server" |
| 105 | (const erc-generate-log-file-name-with-date) | 107 | erc-generate-log-file-name-network) |
| 106 | (symbol))) | 108 | (const :tag "Short" erc-generate-log-file-name-short) |
| 109 | (const :tag "With date" erc-generate-log-file-name-with-date) | ||
| 110 | (symbol :tag "Other function"))) | ||
| 107 | 111 | ||
| 108 | (defcustom erc-truncate-buffer-on-save nil | 112 | (defcustom erc-truncate-buffer-on-save nil |
| 109 | "Truncate any ERC (channel, query, server) buffer when it is saved." | 113 | "Truncate any ERC (channel, query, server) buffer when it is saved." |
| @@ -197,7 +201,7 @@ also be a predicate function. To only log when you are not set away, use: | |||
| 197 | \(setq erc-enable-logging | 201 | \(setq erc-enable-logging |
| 198 | (lambda (buffer) | 202 | (lambda (buffer) |
| 199 | (with-current-buffer buffer | 203 | (with-current-buffer buffer |
| 200 | (not erc-away))))" | 204 | (null (erc-away-time)))))" |
| 201 | ;; enable | 205 | ;; enable |
| 202 | ((when erc-log-write-after-insert | 206 | ((when erc-log-write-after-insert |
| 203 | (add-hook 'erc-insert-post-hook 'erc-save-buffer-in-logs)) | 207 | (add-hook 'erc-insert-post-hook 'erc-save-buffer-in-logs)) |
| @@ -211,8 +215,7 @@ also be a predicate function. To only log when you are not set away, use: | |||
| 211 | ;; append, so that 'erc-initialize-log-marker runs first | 215 | ;; append, so that 'erc-initialize-log-marker runs first |
| 212 | (add-hook 'erc-connect-pre-hook 'erc-log-setup-logging 'append) | 216 | (add-hook 'erc-connect-pre-hook 'erc-log-setup-logging 'append) |
| 213 | (dolist (buffer (erc-buffer-list)) | 217 | (dolist (buffer (erc-buffer-list)) |
| 214 | (when (buffer-live-p buffer) | 218 | (erc-log-setup-logging buffer))) |
| 215 | (with-current-buffer buffer (erc-log-setup-logging))))) | ||
| 216 | ;; disable | 219 | ;; disable |
| 217 | ((remove-hook 'erc-insert-post-hook 'erc-save-buffer-in-logs) | 220 | ((remove-hook 'erc-insert-post-hook 'erc-save-buffer-in-logs) |
| 218 | (remove-hook 'erc-send-post-hook 'erc-save-buffer-in-logs) | 221 | (remove-hook 'erc-send-post-hook 'erc-save-buffer-in-logs) |
| @@ -223,30 +226,38 @@ also be a predicate function. To only log when you are not set away, use: | |||
| 223 | (remove-hook 'erc-part-hook 'erc-conditional-save-buffer) | 226 | (remove-hook 'erc-part-hook 'erc-conditional-save-buffer) |
| 224 | (remove-hook 'erc-connect-pre-hook 'erc-log-setup-logging) | 227 | (remove-hook 'erc-connect-pre-hook 'erc-log-setup-logging) |
| 225 | (dolist (buffer (erc-buffer-list)) | 228 | (dolist (buffer (erc-buffer-list)) |
| 226 | (when (buffer-live-p buffer) | 229 | (erc-log-disable-logging buffer)))) |
| 227 | (with-current-buffer buffer (erc-log-disable-logging)))))) | ||
| 228 | 230 | ||
| 229 | (define-key erc-mode-map "\C-c\C-l" 'erc-save-buffer-in-logs) | 231 | (define-key erc-mode-map "\C-c\C-l" 'erc-save-buffer-in-logs) |
| 230 | 232 | ||
| 231 | ;;; functionality referenced from erc.el | 233 | ;;; functionality referenced from erc.el |
| 232 | (defun erc-log-setup-logging () | 234 | (defun erc-log-setup-logging (buffer) |
| 233 | "Setup the buffer-local logging variables in the current buffer. | 235 | "Setup the buffer-local logging variables in the current buffer. |
| 234 | This function is destined to be run from `erc-connect-pre-hook'." | 236 | This function is destined to be run from `erc-connect-pre-hook'. |
| 235 | (when (erc-logging-enabled) | 237 | The current buffer is given by BUFFER." |
| 236 | (auto-save-mode -1) | 238 | (when (erc-logging-enabled buffer) |
| 237 | (setq buffer-file-name nil) | 239 | (with-current-buffer buffer |
| 238 | (set (make-local-variable 'write-file-functions) | 240 | (auto-save-mode -1) |
| 239 | '(erc-save-buffer-in-logs)) | 241 | (setq buffer-file-name nil) |
| 240 | (when erc-log-insert-log-on-open | 242 | (cond ((boundp 'write-file-functions) |
| 241 | (ignore-errors (insert-file-contents (erc-current-logfile)) | 243 | (set (make-local-variable 'write-file-functions) |
| 242 | (move-marker erc-last-saved-position | 244 | '(erc-save-buffer-in-logs))) |
| 243 | (1- (point-max))))))) | 245 | ((boundp 'local-write-file-hooks) |
| 244 | 246 | (setq local-write-file-hooks '(erc-save-buffer-in-logs))) | |
| 245 | (defun erc-log-disable-logging () | 247 | (t |
| 246 | "Disable logging in the current buffer." | 248 | (set (make-local-variable 'write-file-hooks) |
| 247 | (when (erc-logging-enabled) | 249 | '(erc-save-buffer-in-logs)))) |
| 248 | (setq buffer-offer-save nil | 250 | (when erc-log-insert-log-on-open |
| 249 | erc-enable-logging nil))) | 251 | (ignore-errors (insert-file-contents (erc-current-logfile)) |
| 252 | (move-marker erc-last-saved-position | ||
| 253 | (1- (point-max)))))))) | ||
| 254 | |||
| 255 | (defun erc-log-disable-logging (buffer) | ||
| 256 | "Disable logging in BUFFER." | ||
| 257 | (when (erc-logging-enabled buffer) | ||
| 258 | (with-current-buffer buffer | ||
| 259 | (setq buffer-offer-save nil | ||
| 260 | erc-enable-logging nil)))) | ||
| 250 | 261 | ||
| 251 | (defun erc-log-all-but-server-buffers (buffer) | 262 | (defun erc-log-all-but-server-buffers (buffer) |
| 252 | "Returns t if logging should be enabled in BUFFER. | 263 | "Returns t if logging should be enabled in BUFFER. |
| @@ -340,6 +351,19 @@ This function is a possible value for `erc-generate-log-file-name-function'." | |||
| 340 | ;; we need a make-safe-file-name function. | 351 | ;; we need a make-safe-file-name function. |
| 341 | (convert-standard-filename file))) | 352 | (convert-standard-filename file))) |
| 342 | 353 | ||
| 354 | (defun erc-generate-log-file-name-network (buffer target nick server port) | ||
| 355 | "Generates a log-file name using the network name rather than server name. | ||
| 356 | This results in a file name of the form #channel!nick@network.txt. | ||
| 357 | This function is a possible value for `erc-generate-log-file-name-function'." | ||
| 358 | (require 'erc-networks) | ||
| 359 | (let ((file (concat | ||
| 360 | (if target (concat target "!")) | ||
| 361 | nick "@" | ||
| 362 | (or (with-current-buffer buffer (erc-network-name)) server) | ||
| 363 | ".txt"))) | ||
| 364 | ;; we need a make-safe-file-name function. | ||
| 365 | (convert-standard-filename file))) | ||
| 366 | |||
| 343 | ;;;###autoload | 367 | ;;;###autoload |
| 344 | (defun erc-save-buffer-in-logs (&optional buffer) | 368 | (defun erc-save-buffer-in-logs (&optional buffer) |
| 345 | "Append BUFFER contents to the log file, if logging is enabled. | 369 | "Append BUFFER contents to the log file, if logging is enabled. |
diff --git a/lisp/erc/erc-match.el b/lisp/erc/erc-match.el index 50e4cfbc521..35ba1b13492 100644 --- a/lisp/erc/erc-match.el +++ b/lisp/erc/erc-match.el | |||
| @@ -1,6 +1,7 @@ | |||
| 1 | ;;; erc-match.el --- Highlight messages matching certain regexps | 1 | ;;; erc-match.el --- Highlight messages matching certain regexps |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2002, 2003, 2004, 2005, 2006, |
| 4 | ;; 2007 Free Software Foundation, Inc. | ||
| 4 | 5 | ||
| 5 | ;; Author: Andreas Fuchs <asf@void.at> | 6 | ;; Author: Andreas Fuchs <asf@void.at> |
| 6 | ;; Keywords: comm, faces | 7 | ;; Keywords: comm, faces |
| @@ -540,7 +541,7 @@ deactivate/activate match logging in the latter. See | |||
| 540 | (when (and | 541 | (when (and |
| 541 | (or (eq erc-log-matches-flag t) | 542 | (or (eq erc-log-matches-flag t) |
| 542 | (and (eq erc-log-matches-flag 'away) | 543 | (and (eq erc-log-matches-flag 'away) |
| 543 | erc-away)) | 544 | (erc-away-time))) |
| 544 | match-buffer-name) | 545 | match-buffer-name) |
| 545 | (let ((line (format-spec erc-log-match-format | 546 | (let ((line (format-spec erc-log-match-format |
| 546 | (format-spec-make | 547 | (format-spec-make |
| @@ -572,7 +573,7 @@ deactivate/activate match logging in the latter. See | |||
| 572 | 573 | ||
| 573 | (defun erc-log-matches-come-back (proc parsed) | 574 | (defun erc-log-matches-come-back (proc parsed) |
| 574 | "Display a notice that messages were logged while away." | 575 | "Display a notice that messages were logged while away." |
| 575 | (when (and erc-away | 576 | (when (and (erc-away-time) |
| 576 | (eq erc-log-matches-flag 'away)) | 577 | (eq erc-log-matches-flag 'away)) |
| 577 | (mapc | 578 | (mapc |
| 578 | (lambda (match-type) | 579 | (lambda (match-type) |
| @@ -583,7 +584,7 @@ deactivate/activate match logging in the latter. See | |||
| 583 | (with-current-buffer buffer | 584 | (with-current-buffer buffer |
| 584 | (get-text-property (1- (point-max)) | 585 | (get-text-property (1- (point-max)) |
| 585 | 'timestamp)))) | 586 | 'timestamp)))) |
| 586 | (away-time (erc-emacs-time-to-erc-time erc-away))) | 587 | (away-time (erc-emacs-time-to-erc-time (erc-away-time)))) |
| 587 | (when (and away-time last-msg-time | 588 | (when (and away-time last-msg-time |
| 588 | (erc-time-gt last-msg-time away-time)) | 589 | (erc-time-gt last-msg-time away-time)) |
| 589 | (erc-display-message | 590 | (erc-display-message |
diff --git a/lisp/erc/erc-menu.el b/lisp/erc/erc-menu.el index a5826625bde..888da702d62 100644 --- a/lisp/erc/erc-menu.el +++ b/lisp/erc/erc-menu.el | |||
| @@ -1,6 +1,7 @@ | |||
| 1 | ;; erc-menu.el -- Menu-bar definitions for ERC | 1 | ;; erc-menu.el -- Menu-bar definitions for ERC |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 2001, 2002, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2001, 2002, 2004, 2005, 2006, |
| 4 | ;; 2007 Free Software Foundation, Inc. | ||
| 4 | 5 | ||
| 5 | ;; Author: Mario Lang <mlang@delysid.org> | 6 | ;; Author: Mario Lang <mlang@delysid.org> |
| 6 | ;; Keywords: comm, processes, menu | 7 | ;; Keywords: comm, processes, menu |
| @@ -75,8 +76,8 @@ | |||
| 75 | (erc-channel-user-op-p (erc-current-nick))] | 76 | (erc-channel-user-op-p (erc-current-nick))] |
| 76 | ["Set a key..." erc-set-channel-key | 77 | ["Set a key..." erc-set-channel-key |
| 77 | (erc-channel-user-op-p (erc-current-nick))]) | 78 | (erc-channel-user-op-p (erc-current-nick))]) |
| 78 | ["Leave this channel..." erc-part-from-channel erc-channel-users] | 79 | ["Leave this channel..." erc-part-from-channel erc-channel-users]) |
| 79 | "-") | 80 | "-" |
| 80 | (list "Pals, fools and other keywords" | 81 | (list "Pals, fools and other keywords" |
| 81 | ["Add pal..." erc-add-pal] | 82 | ["Add pal..." erc-add-pal] |
| 82 | ["Delete pal..." erc-delete-pal] | 83 | ["Delete pal..." erc-delete-pal] |
diff --git a/lisp/erc/erc-netsplit.el b/lisp/erc/erc-netsplit.el index 567c91cc075..b4c26b1bb88 100644 --- a/lisp/erc/erc-netsplit.el +++ b/lisp/erc/erc-netsplit.el | |||
| @@ -184,7 +184,7 @@ join from that split has been detected or not.") | |||
| 184 | ;;;###autoload | 184 | ;;;###autoload |
| 185 | (defun erc-cmd-WHOLEFT () | 185 | (defun erc-cmd-WHOLEFT () |
| 186 | "Show who's gone." | 186 | "Show who's gone." |
| 187 | (with-current-buffer (erc-server-buffer) | 187 | (erc-with-server-buffer |
| 188 | (if (null erc-netsplit-list) | 188 | (if (null erc-netsplit-list) |
| 189 | (erc-display-message | 189 | (erc-display-message |
| 190 | nil 'notice 'active | 190 | nil 'notice 'active |
diff --git a/lisp/erc/erc-networks.el b/lisp/erc/erc-networks.el index 9f8c5528d04..4631ceae3ae 100644 --- a/lisp/erc/erc-networks.el +++ b/lisp/erc/erc-networks.el | |||
| @@ -317,6 +317,7 @@ | |||
| 317 | ("Novernet: Random server" Novernet "irc.novernet.com" ((6665 6669) 7000 )) | 317 | ("Novernet: Random server" Novernet "irc.novernet.com" ((6665 6669) 7000 )) |
| 318 | ("Nullrouted: Random server" Nullrouted "irc.nullrouted.org" ((6666 6669) 7000 )) | 318 | ("Nullrouted: Random server" Nullrouted "irc.nullrouted.org" ((6666 6669) 7000 )) |
| 319 | ("NullusNet: Random server" NullusNet "irc.nullus.net" 6667) | 319 | ("NullusNet: Random server" NullusNet "irc.nullus.net" 6667) |
| 320 | ("OFTC: Random server" OFTC "irc.oftc.net" ((6667 6670) 7000)) | ||
| 320 | ("OpChat: Random server" OpChat "irc.opchat.org" ((6667 6669))) | 321 | ("OpChat: Random server" OpChat "irc.opchat.org" ((6667 6669))) |
| 321 | ("Othernet: Random server" Othernet "irc.othernet.org" 6667) | 322 | ("Othernet: Random server" Othernet "irc.othernet.org" 6667) |
| 322 | ("Othernet: US, FL, Miami" Othernet "miami.fl.us.othernet.org" 6667) | 323 | ("Othernet: US, FL, Miami" Othernet "miami.fl.us.othernet.org" 6667) |
| @@ -611,6 +612,7 @@ PORTS is either a number, a list of numbers, or a list of port ranges." | |||
| 611 | (Novernet "novernet.com") | 612 | (Novernet "novernet.com") |
| 612 | (Nullrouted "nullrouted.org") | 613 | (Nullrouted "nullrouted.org") |
| 613 | (NullusNet "nullus.net") | 614 | (NullusNet "nullus.net") |
| 615 | (OFTC "oftc.net") | ||
| 614 | (OpChat "opchat.org") | 616 | (OpChat "opchat.org") |
| 615 | (Openprojects "openprojects.net") | 617 | (Openprojects "openprojects.net") |
| 616 | (Othernet "othernet.org") | 618 | (Othernet "othernet.org") |
| @@ -737,12 +739,12 @@ search for a match in `erc-networks-alist'." | |||
| 737 | 739 | ||
| 738 | (defun erc-network () | 740 | (defun erc-network () |
| 739 | "Return the value of `erc-network' for the current server." | 741 | "Return the value of `erc-network' for the current server." |
| 740 | (with-current-buffer (erc-server-buffer) erc-network)) | 742 | (erc-with-server-buffer erc-network)) |
| 741 | 743 | ||
| 742 | (defun erc-current-network () | 744 | (defun erc-current-network () |
| 743 | "Deprecated. Use `erc-network' instead. Return the name of this server's | 745 | "Deprecated. Use `erc-network' instead. Return the name of this server's |
| 744 | network as a symbol." | 746 | network as a symbol." |
| 745 | (with-current-buffer (erc-server-buffer) | 747 | (erc-with-server-buffer |
| 746 | (intern (downcase (symbol-name erc-network))))) | 748 | (intern (downcase (symbol-name erc-network))))) |
| 747 | 749 | ||
| 748 | (erc-make-obsolete 'erc-current-network 'erc-network | 750 | (erc-make-obsolete 'erc-current-network 'erc-network |
| @@ -750,7 +752,7 @@ network as a symbol." | |||
| 750 | 752 | ||
| 751 | (defun erc-network-name () | 753 | (defun erc-network-name () |
| 752 | "Returns the name of the current network as a string." | 754 | "Returns the name of the current network as a string." |
| 753 | (with-current-buffer (erc-server-buffer) (symbol-name erc-network))) | 755 | (erc-with-server-buffer (symbol-name erc-network))) |
| 754 | 756 | ||
| 755 | (defun erc-set-network-name (proc parsed) | 757 | (defun erc-set-network-name (proc parsed) |
| 756 | "Set `erc-network' to the value returned by `erc-determine-network'." | 758 | "Set `erc-network' to the value returned by `erc-determine-network'." |
diff --git a/lisp/erc/erc-notify.el b/lisp/erc/erc-notify.el index 82784c624c0..d34e38ade43 100644 --- a/lisp/erc/erc-notify.el +++ b/lisp/erc/erc-notify.el | |||
| @@ -121,8 +121,7 @@ changes." | |||
| 121 | (ison-list (delete "" (split-string | 121 | (ison-list (delete "" (split-string |
| 122 | (erc-response.contents parsed)))) | 122 | (erc-response.contents parsed)))) |
| 123 | (new-list ison-list) | 123 | (new-list ison-list) |
| 124 | (old-list (with-current-buffer (erc-server-buffer) | 124 | (old-list (erc-with-server-buffer erc-last-ison))) |
| 125 | erc-last-ison))) | ||
| 126 | (while new-list | 125 | (while new-list |
| 127 | (when (not (erc-member-ignore-case (car new-list) old-list)) | 126 | (when (not (erc-member-ignore-case (car new-list) old-list)) |
| 128 | (run-hook-with-args 'erc-notify-signon-hook server (car new-list)) | 127 | (run-hook-with-args 'erc-notify-signon-hook server (car new-list)) |
| @@ -204,7 +203,7 @@ with args, toggle notify status of people." | |||
| 204 | (cond | 203 | (cond |
| 205 | ((null args) | 204 | ((null args) |
| 206 | ;; Print current notificated people (online) | 205 | ;; Print current notificated people (online) |
| 207 | (let ((ison (with-current-buffer (erc-server-buffer) erc-last-ison))) | 206 | (let ((ison (erc-with-server-buffer erc-last-ison))) |
| 208 | (if (not ison) | 207 | (if (not ison) |
| 209 | (erc-display-message | 208 | (erc-display-message |
| 210 | nil 'notice 'active "No ison-list yet!") | 209 | nil 'notice 'active "No ison-list yet!") |
diff --git a/lisp/erc/erc-pcomplete.el b/lisp/erc/erc-pcomplete.el index 951ba25898c..f207bcc1b8b 100644 --- a/lisp/erc/erc-pcomplete.el +++ b/lisp/erc/erc-pcomplete.el | |||
| @@ -180,7 +180,7 @@ the most recent speakers are listed first." | |||
| 180 | (while (pcomplete-here (pcomplete-erc-nicks)))) | 180 | (while (pcomplete-here (pcomplete-erc-nicks)))) |
| 181 | 181 | ||
| 182 | (defun pcomplete/erc-mode/UNIGNORE () | 182 | (defun pcomplete/erc-mode/UNIGNORE () |
| 183 | (pcomplete-here (with-current-buffer (erc-server-buffer) erc-ignore-list))) | 183 | (pcomplete-here (erc-with-server-buffer erc-ignore-list))) |
| 184 | 184 | ||
| 185 | ;;; Functions that provide possible completions. | 185 | ;;; Functions that provide possible completions. |
| 186 | 186 | ||
| @@ -233,7 +233,7 @@ If optional argument IGNORE-SELF is non-nil, don't return the current nick." | |||
| 233 | (defun pcomplete-erc-all-nicks (&optional postfix) | 233 | (defun pcomplete-erc-all-nicks (&optional postfix) |
| 234 | "Returns a list of all nicks on the current server." | 234 | "Returns a list of all nicks on the current server." |
| 235 | (let (nicks) | 235 | (let (nicks) |
| 236 | (with-current-buffer (process-buffer erc-server-process) | 236 | (erc-with-server-buffer |
| 237 | (maphash (lambda (nick user) | 237 | (maphash (lambda (nick user) |
| 238 | (setq nicks (cons (concat nick postfix) nicks))) | 238 | (setq nicks (cons (concat nick postfix) nicks))) |
| 239 | erc-server-users)) | 239 | erc-server-users)) |
diff --git a/lisp/erc/erc-ring.el b/lisp/erc/erc-ring.el index 911a154e915..95c313a23f6 100644 --- a/lisp/erc/erc-ring.el +++ b/lisp/erc/erc-ring.el | |||
| @@ -1,6 +1,7 @@ | |||
| 1 | ;; erc-ring.el -- Command history handling for erc using ring.el | 1 | ;; erc-ring.el -- Command history handling for erc using ring.el |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 2001, 2002, 2003, 2004, 2006, 2007 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2001, 2002, 2003, 2004, 2006, |
| 4 | ;; 2007 Free Software Foundation, Inc. | ||
| 4 | 5 | ||
| 5 | ;; Author: Alex Schroeder <alex@gnu.org> | 6 | ;; Author: Alex Schroeder <alex@gnu.org> |
| 6 | ;; Keywords: comm | 7 | ;; Keywords: comm |
diff --git a/lisp/erc/erc-services.el b/lisp/erc/erc-services.el index 5d03a7b6365..a2cc1b19782 100644 --- a/lisp/erc/erc-services.el +++ b/lisp/erc/erc-services.el | |||
| @@ -168,15 +168,18 @@ Example of use: | |||
| 168 | :type '(repeat | 168 | :type '(repeat |
| 169 | (list :tag "Network" | 169 | (list :tag "Network" |
| 170 | (choice :tag "Network name" | 170 | (choice :tag "Network name" |
| 171 | (const freenode) | 171 | (const Ars) |
| 172 | (const OFTC) | 172 | (const Austnet) |
| 173 | (const Azzurra) | ||
| 174 | (const BitlBee) | ||
| 175 | (const BRASnet) | ||
| 173 | (const DALnet) | 176 | (const DALnet) |
| 177 | (const freenode) | ||
| 174 | (const GalaxyNet) | 178 | (const GalaxyNet) |
| 175 | (const SlashNET) | ||
| 176 | (const BRASnet) | ||
| 177 | (const iip) | 179 | (const iip) |
| 178 | (const Austnet) | 180 | (const OFTC) |
| 179 | (const Azzurra) | 181 | (const QuakeNet) |
| 182 | (const SlashNET) | ||
| 180 | (symbol :tag "Network name")) | 183 | (symbol :tag "Network name")) |
| 181 | (repeat :tag "Nickname and password" | 184 | (repeat :tag "Nickname and password" |
| 182 | (cons :tag "Identity" | 185 | (cons :tag "Identity" |
| @@ -186,68 +189,63 @@ Example of use: | |||
| 186 | ;; Variables: | 189 | ;; Variables: |
| 187 | 190 | ||
| 188 | (defcustom erc-nickserv-alist | 191 | (defcustom erc-nickserv-alist |
| 189 | '((BitlBee | 192 | '((Ars |
| 190 | nil | 193 | nil nil |
| 191 | nil | 194 | "Census" |
| 195 | "IDENTIFY" nil nil) | ||
| 196 | (Austnet | ||
| 197 | "NickOP!service@austnet.org" | ||
| 198 | "/msg\\s-NickOP@austnet.org\\s-identify\\s-<password>" | ||
| 199 | "nickop@austnet.org" | ||
| 200 | "identify" nil nil) | ||
| 201 | (Azzurra | ||
| 202 | "NickServ!service@azzurra.org" | ||
| 203 | "/ns\\s-IDENTIFY\\s-password" | ||
| 204 | "NickServ" | ||
| 205 | "IDENTIFY" nil nil) | ||
| 206 | (BitlBee | ||
| 207 | nil nil | ||
| 192 | "&bitlbee" | 208 | "&bitlbee" |
| 193 | "identify" | 209 | "identify" nil nil) |
| 194 | nil) | 210 | (BRASnet |
| 211 | "NickServ!services@brasnet.org" | ||
| 212 | "/NickServ\\s-IDENTIFY\\s-senha" | ||
| 213 | "NickServ" | ||
| 214 | "IDENTIFY" nil "") | ||
| 195 | (DALnet | 215 | (DALnet |
| 196 | "NickServ!service@dal.net" | 216 | "NickServ!service@dal.net" |
| 197 | "/msg\\s-NickServ@services.dal.net\\s-IDENTIFY\\s-<password>" | 217 | "/msg\\s-NickServ@services.dal.net\\s-IDENTIFY\\s-<password>" |
| 198 | "NickServ@services.dal.net" | 218 | "NickServ@services.dal.net" |
| 199 | "IDENTIFY" | 219 | "IDENTIFY" nil nil) |
| 200 | nil) | ||
| 201 | (freenode | 220 | (freenode |
| 202 | "NickServ!NickServ@services." | 221 | "NickServ!NickServ@services." |
| 203 | "/msg\\s-NickServ\\s-IDENTIFY\\s-<password>" | 222 | "/msg\\s-NickServ\\s-IDENTIFY\\s-<password>" |
| 204 | "NickServ" | 223 | "NickServ" |
| 205 | "IDENTIFY" | 224 | "IDENTIFY" nil nil) |
| 206 | nil) | ||
| 207 | (GalaxyNet | 225 | (GalaxyNet |
| 208 | "NS!nickserv@galaxynet.org" | 226 | "NS!nickserv@galaxynet.org" |
| 209 | "Please\\s-change\\s-nicks\\s-or\\s-authenticate." | 227 | "Please\\s-change\\s-nicks\\s-or\\s-authenticate." |
| 210 | "NS@services.galaxynet.org" | 228 | "NS@services.galaxynet.org" |
| 211 | "AUTH" | 229 | "AUTH" t nil) |
| 212 | t) | ||
| 213 | (SlashNET | ||
| 214 | "NickServ!services@services.slashnet.org" | ||
| 215 | "/msg\\s-NickServ\\s-IDENTIFY\\s-password" | ||
| 216 | "NickServ@services.slashnet.org" | ||
| 217 | "IDENTIFY" | ||
| 218 | nil) | ||
| 219 | (iip | 230 | (iip |
| 220 | "Trent@anon.iip" | 231 | "Trent@anon.iip" |
| 221 | "type\\s-/squery\\s-Trent\\s-identify\\s-<password>" | 232 | "type\\s-/squery\\s-Trent\\s-identify\\s-<password>" |
| 222 | "Trent@anon.iip" | 233 | "Trent@anon.iip" |
| 223 | "IDENTIFY" | 234 | "IDENTIFY" nil "SQUERY") |
| 224 | nil | ||
| 225 | "SQUERY") | ||
| 226 | (BRASnet | ||
| 227 | "NickServ!services@brasnet.org" | ||
| 228 | "/NickServ\\s-IDENTIFY\\s-senha" | ||
| 229 | "NickServ" | ||
| 230 | "IDENTIFY" | ||
| 231 | nil | ||
| 232 | "") | ||
| 233 | (Austnet | ||
| 234 | "NickOP!service@austnet.org" | ||
| 235 | "/msg\\s-NickOP@austnet.org\\s-identify\\s-<password>" | ||
| 236 | "nickop@austnet.org" | ||
| 237 | "identify" | ||
| 238 | nil) | ||
| 239 | (Azzurra | ||
| 240 | "NickServ!service@azzurra.org" | ||
| 241 | "/ns\\s-IDENTIFY\\s-password" | ||
| 242 | "NickServ" | ||
| 243 | "IDENTIFY" | ||
| 244 | nil) | ||
| 245 | (OFTC | 235 | (OFTC |
| 246 | "NickServ!services@services.oftc.net" | 236 | "NickServ!services@services.oftc.net" |
| 247 | "/msg\\s-NickServ\\s-IDENTIFY\\s-\^_password" | 237 | "type\\s-/msg\\s-NickServ\\s-IDENTIFY\\s-password." |
| 248 | "NickServ" | 238 | "NickServ" |
| 249 | "IDENTIFY" | 239 | "IDENTIFY" nil nil) |
| 250 | nil)) | 240 | (QuakeNet |
| 241 | nil nil | ||
| 242 | "Q@CServe.quakenet.org" | ||
| 243 | "auth" t nil) | ||
| 244 | (SlashNET | ||
| 245 | "NickServ!services@services.slashnet.org" | ||
| 246 | "/msg\\s-NickServ\\s-IDENTIFY\\s-password" | ||
| 247 | "NickServ@services.slashnet.org" | ||
| 248 | "IDENTIFY" nil nil)) | ||
| 251 | "Alist of NickServer details, sorted by network. | 249 | "Alist of NickServer details, sorted by network. |
| 252 | Every element in the list has the form | 250 | Every element in the list has the form |
| 253 | \(SYMBOL NICKSERV REGEXP NICK KEYWORD USE-CURRENT ANSWER) | 251 | \(SYMBOL NICKSERV REGEXP NICK KEYWORD USE-CURRENT ANSWER) |
| @@ -265,8 +263,10 @@ ANSWER is the command to use for the answer. The default is 'privmsg. | |||
| 265 | :type '(repeat | 263 | :type '(repeat |
| 266 | (list :tag "Nickserv data" | 264 | (list :tag "Nickserv data" |
| 267 | (symbol :tag "Network name") | 265 | (symbol :tag "Network name") |
| 268 | (string :tag "Nickserv's nick!user@host") | 266 | (choice (string :tag "Nickserv's nick!user@host") |
| 269 | (regexp :tag "Identify request sent by Nickserv") | 267 | (const :tag "No message sent by Nickserv" nil)) |
| 268 | (choice (regexp :tag "Identify request sent by Nickserv") | ||
| 269 | (const :tag "No message sent by Nickserv" nil)) | ||
| 270 | (string :tag "Identify to") | 270 | (string :tag "Identify to") |
| 271 | (string :tag "Identify keyword") | 271 | (string :tag "Identify keyword") |
| 272 | (boolean :tag "Use current nick in identify message?") | 272 | (boolean :tag "Use current nick in identify message?") |
diff --git a/lisp/erc/erc-speedbar.el b/lisp/erc/erc-speedbar.el index 551b83fb5ac..0d88589838e 100644 --- a/lisp/erc/erc-speedbar.el +++ b/lisp/erc/erc-speedbar.el | |||
| @@ -1,6 +1,7 @@ | |||
| 1 | ;;; erc-speedbar.el --- Speedbar support for ERC | 1 | ;;; erc-speedbar.el --- Speedbar support for ERC |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 2001, 2002, 2003, 2004, 2006, 2007 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2001, 2002, 2003, 2004, 2006, |
| 4 | ;; 2007 Free Software Foundation, Inc. | ||
| 4 | 5 | ||
| 5 | ;; Author: Mario Lang <mlang@delysid.org> | 6 | ;; Author: Mario Lang <mlang@delysid.org> |
| 6 | ;; Contributor: Eric M. Ludlam <eric@siege-engine.com> | 7 | ;; Contributor: Eric M. Ludlam <eric@siege-engine.com> |
| @@ -113,7 +114,7 @@ This will add a speedbar major display mode." | |||
| 113 | (erase-buffer) | 114 | (erase-buffer) |
| 114 | (let (serverp chanp queryp) | 115 | (let (serverp chanp queryp) |
| 115 | (with-current-buffer buffer | 116 | (with-current-buffer buffer |
| 116 | (setq serverp (eq buffer (process-buffer erc-server-process))) | 117 | (setq serverp (erc-server-buffer-p)) |
| 117 | (setq chanp (erc-channel-p (erc-default-target))) | 118 | (setq chanp (erc-channel-p (erc-default-target))) |
| 118 | (setq queryp (erc-query-buffer-p))) | 119 | (setq queryp (erc-query-buffer-p))) |
| 119 | (cond (serverp | 120 | (cond (serverp |
diff --git a/lisp/erc/erc-spelling.el b/lisp/erc/erc-spelling.el index 484ddb36d52..a15ca17987f 100644 --- a/lisp/erc/erc-spelling.el +++ b/lisp/erc/erc-spelling.el | |||
| @@ -41,12 +41,10 @@ | |||
| 41 | ;; called AFTER the server buffer is initialized. | 41 | ;; called AFTER the server buffer is initialized. |
| 42 | ((add-hook 'erc-connect-pre-hook 'erc-spelling-init) | 42 | ((add-hook 'erc-connect-pre-hook 'erc-spelling-init) |
| 43 | (dolist (buffer (erc-buffer-list)) | 43 | (dolist (buffer (erc-buffer-list)) |
| 44 | (when (buffer-live-p buffer) | 44 | (erc-spelling-init buffer))) |
| 45 | (with-current-buffer buffer (erc-spelling-init))))) | ||
| 46 | ((remove-hook 'erc-connect-pre-hook 'erc-spelling-init) | 45 | ((remove-hook 'erc-connect-pre-hook 'erc-spelling-init) |
| 47 | (dolist (buffer (erc-buffer-list)) | 46 | (dolist (buffer (erc-buffer-list)) |
| 48 | (when (buffer-live-p buffer) | 47 | (with-current-buffer buffer (flyspell-mode 0))))) |
| 49 | (with-current-buffer buffer (flyspell-mode 0)))))) | ||
| 50 | 48 | ||
| 51 | (defcustom erc-spelling-dictionaries nil | 49 | (defcustom erc-spelling-dictionaries nil |
| 52 | "An alist mapping buffer names to dictionaries. | 50 | "An alist mapping buffer names to dictionaries. |
| @@ -60,24 +58,22 @@ name here." | |||
| 60 | (string :tag "Dictionary")))) | 58 | (string :tag "Dictionary")))) |
| 61 | :group 'erc-spelling) | 59 | :group 'erc-spelling) |
| 62 | 60 | ||
| 63 | (defun erc-spelling-init () | 61 | (defun erc-spelling-init (buffer) |
| 64 | "Enable flyspell mode in an ERC buffer." | 62 | "Enable flyspell mode in an ERC buffer. |
| 65 | (let ((name (downcase (buffer-name))) | 63 | The current buffer is given by BUFFER." |
| 66 | (dicts erc-spelling-dictionaries)) | 64 | (with-current-buffer buffer |
| 67 | (when dicts | 65 | (let ((name (downcase (buffer-name))) |
| 68 | (while (and dicts | 66 | (dicts erc-spelling-dictionaries)) |
| 69 | (not (string= name (downcase (caar dicts))))) | 67 | (when dicts |
| 70 | (setq dicts (cdr dicts))) | 68 | (while (and dicts |
| 71 | (setq ispell-local-dictionary | 69 | (not (string= name (downcase (caar dicts))))) |
| 72 | (if dicts | 70 | (setq dicts (cdr dicts))) |
| 73 | (cadr (car dicts)) | 71 | (setq ispell-local-dictionary |
| 74 | (let ((server (erc-server-buffer))) | 72 | (if dicts |
| 75 | (if server | 73 | (cadr (car dicts)) |
| 76 | (with-current-buffer server | 74 | (erc-with-server-buffer ispell-local-dictionary))))) |
| 77 | ispell-local-dictionary) | 75 | (setq flyspell-generic-check-word-p 'erc-spelling-flyspell-verify) |
| 78 | nil)))))) | 76 | (flyspell-mode 1))) |
| 79 | (setq flyspell-generic-check-word-p 'erc-spelling-flyspell-verify) | ||
| 80 | (flyspell-mode 1)) | ||
| 81 | 77 | ||
| 82 | (defun erc-spelling-unhighlight-word (word) | 78 | (defun erc-spelling-unhighlight-word (word) |
| 83 | "Unhighlight the given WORD. | 79 | "Unhighlight the given WORD. |
diff --git a/lisp/erc/erc-stamp.el b/lisp/erc/erc-stamp.el index 5a9977aaead..0b8017ffe0b 100644 --- a/lisp/erc/erc-stamp.el +++ b/lisp/erc/erc-stamp.el | |||
| @@ -147,7 +147,7 @@ or `erc-send-modify-hook'." | |||
| 147 | (error "Timestamp function unbound")) | 147 | (error "Timestamp function unbound")) |
| 148 | (when (and (fboundp erc-insert-away-timestamp-function) | 148 | (when (and (fboundp erc-insert-away-timestamp-function) |
| 149 | erc-away-timestamp-format | 149 | erc-away-timestamp-format |
| 150 | (with-current-buffer (erc-server-buffer) erc-away) | 150 | (erc-away-time) |
| 151 | (not erc-timestamp-format)) | 151 | (not erc-timestamp-format)) |
| 152 | (funcall erc-insert-away-timestamp-function | 152 | (funcall erc-insert-away-timestamp-function |
| 153 | (erc-format-timestamp ct erc-away-timestamp-format))) | 153 | (erc-format-timestamp ct erc-away-timestamp-format))) |
| @@ -203,6 +203,7 @@ space before a right timestamp in any saved logs." | |||
| 203 | (s (if ignore-p (make-string len ? ) string))) | 203 | (s (if ignore-p (make-string len ? ) string))) |
| 204 | (unless ignore-p (setq erc-timestamp-last-inserted string)) | 204 | (unless ignore-p (setq erc-timestamp-last-inserted string)) |
| 205 | (erc-put-text-property 0 len 'field 'erc-timestamp s) | 205 | (erc-put-text-property 0 len 'field 'erc-timestamp s) |
| 206 | (erc-put-text-property 0 len 'invisible 'timestamp s) | ||
| 206 | (insert s))) | 207 | (insert s))) |
| 207 | 208 | ||
| 208 | (defun erc-insert-aligned (string pos) | 209 | (defun erc-insert-aligned (string pos) |
| @@ -319,6 +320,21 @@ set, and timestamping is already active." | |||
| 319 | (setq erc-hide-timestamps nil) | 320 | (setq erc-hide-timestamps nil) |
| 320 | (erc-munge-invisibility-spec)) | 321 | (erc-munge-invisibility-spec)) |
| 321 | 322 | ||
| 323 | (defun erc-toggle-timestamps () | ||
| 324 | "Hide or show timestamps in ERC buffers. | ||
| 325 | |||
| 326 | Note that timestamps can only be shown for a message using this | ||
| 327 | function if `erc-timestamp-format' was set and timestamping was | ||
| 328 | enabled when the message was inserted." | ||
| 329 | (interactive) | ||
| 330 | (if erc-hide-timestamps | ||
| 331 | (setq erc-hide-timestamps nil) | ||
| 332 | (setq erc-hide-timestamps t)) | ||
| 333 | (mapc (lambda (buffer) | ||
| 334 | (with-current-buffer buffer | ||
| 335 | (erc-munge-invisibility-spec))) | ||
| 336 | (erc-buffer-list))) | ||
| 337 | |||
| 322 | (defun erc-echo-timestamp (before now) | 338 | (defun erc-echo-timestamp (before now) |
| 323 | "Print timestamp text-property of an IRC message. | 339 | "Print timestamp text-property of an IRC message. |
| 324 | Argument BEFORE is where point was before it got moved and | 340 | Argument BEFORE is where point was before it got moved and |
diff --git a/lisp/erc/erc-track.el b/lisp/erc/erc-track.el index 0fa550a5838..4a8b673d46b 100644 --- a/lisp/erc/erc-track.el +++ b/lisp/erc/erc-track.el | |||
| @@ -1,6 +1,7 @@ | |||
| 1 | ;;; erc-track.el --- Track modified channel buffers | 1 | ;;; erc-track.el --- Track modified channel buffers |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2002, 2003, 2004, 2005, 2006, |
| 4 | ;; 2007 Free Software Foundation, Inc. | ||
| 4 | 5 | ||
| 5 | ;; Author: Mario Lang <mlang@delysid.org> | 6 | ;; Author: Mario Lang <mlang@delysid.org> |
| 6 | ;; Keywords: comm, faces | 7 | ;; Keywords: comm, faces |
| @@ -46,12 +47,33 @@ | |||
| 46 | "Track active buffers and show activity in the modeline." | 47 | "Track active buffers and show activity in the modeline." |
| 47 | :group 'erc) | 48 | :group 'erc) |
| 48 | 49 | ||
| 50 | (defcustom erc-track-enable-keybindings 'ask | ||
| 51 | "Whether to enable the ERC track keybindings, namely: | ||
| 52 | `C-c C-SPC' and `C-c C-@', which both do the same thing. | ||
| 53 | |||
| 54 | The default is to check to see whether these keys are used | ||
| 55 | already: if not, then enable the ERC track minor mode, which | ||
| 56 | provides these keys. Otherwise, do not touch the keys. | ||
| 57 | |||
| 58 | This can alternatively be set to either t or nil, which indicate | ||
| 59 | respectively always to enable ERC track minor mode or never to | ||
| 60 | enable ERC track minor mode. | ||
| 61 | |||
| 62 | The reason for using this default value is to both (1) adhere to | ||
| 63 | the Emacs development guidelines which say not to touch keys of | ||
| 64 | the form C-c C-<something> and also (2) to meet the expectations | ||
| 65 | of long-time ERC users, many of whom rely on these keybindings." | ||
| 66 | :group 'erc-track | ||
| 67 | :type '(choice (const :tag "Ask, if used already" ask) | ||
| 68 | (const :tag "Enable" t) | ||
| 69 | (const :tag "Disable" nil))) | ||
| 70 | |||
| 49 | (defcustom erc-track-visibility t | 71 | (defcustom erc-track-visibility t |
| 50 | "Where do we look for buffers to determine their visibility? | 72 | "Where do we look for buffers to determine their visibility? |
| 51 | The value of this variable determines, when a buffer is considered | 73 | The value of this variable determines, when a buffer is considered |
| 52 | visible or invisible. New messages in invisible buffers are tracked, | 74 | visible or invisible. New messages in invisible buffers are tracked, |
| 53 | while switching to visible buffers when they are tracked removes them | 75 | while switching to visible buffers when they are tracked removes them |
| 54 | from the list. See also `erc-track-when-inactive-mode'. | 76 | from the list. See also `erc-track-when-inactive'. |
| 55 | 77 | ||
| 56 | Possible values are: | 78 | Possible values are: |
| 57 | 79 | ||
| @@ -488,45 +510,124 @@ START is the minimum length of the name used." | |||
| 488 | (equal (erc-unique-substrings '("abc" "abcdefg")) | 510 | (equal (erc-unique-substrings '("abc" "abcdefg")) |
| 489 | '("abc" "abcd")))))) | 511 | '("abc" "abcd")))))) |
| 490 | 512 | ||
| 513 | ;;; Minor mode | ||
| 514 | |||
| 515 | ;; Play nice with other IRC clients (and Emacs development rules) by | ||
| 516 | ;; making this a minor mode | ||
| 517 | |||
| 518 | (defvar erc-track-minor-mode-map (make-sparse-keymap) | ||
| 519 | "Keymap for rcirc track minor mode.") | ||
| 520 | |||
| 521 | (define-key erc-track-minor-mode-map (kbd "C-c C-@") 'erc-track-switch-buffer) | ||
| 522 | (define-key erc-track-minor-mode-map (kbd "C-c C-SPC") | ||
| 523 | 'erc-track-switch-buffer) | ||
| 524 | |||
| 525 | ;;;###autoload | ||
| 526 | (define-minor-mode erc-track-minor-mode | ||
| 527 | "Global minor mode for tracking ERC buffers and showing activity in the | ||
| 528 | mode line. | ||
| 529 | |||
| 530 | This exists for the sole purpose of providing the C-c C-SPC and | ||
| 531 | C-c C-@ keybindings. Make sure that you have enabled the track | ||
| 532 | module, otherwise the keybindings will not do anything useful." | ||
| 533 | :init-value nil | ||
| 534 | :lighter "" | ||
| 535 | :keymap erc-track-minor-mode-map | ||
| 536 | :global t | ||
| 537 | :group 'erc-track) | ||
| 538 | |||
| 539 | (defun erc-track-minor-mode-maybe () | ||
| 540 | "Enable `erc-track-minor-mode', depending on `erc-track-enable-keybindings'." | ||
| 541 | (unless (or erc-track-minor-mode | ||
| 542 | ;; don't start the minor mode until we have an ERC | ||
| 543 | ;; process running, because we don't want to prompt the | ||
| 544 | ;; user while starting Emacs | ||
| 545 | (null (erc-buffer-list))) | ||
| 546 | (cond ((eq erc-track-enable-keybindings 'ask) | ||
| 547 | (let ((key (or (and (key-binding (kbd "C-c C-SPC")) "C-SPC") | ||
| 548 | (and (key-binding (kbd "C-c C-@")) "C-@")))) | ||
| 549 | (if key | ||
| 550 | (if (y-or-n-p | ||
| 551 | (concat "The C-c " key " binding is in use;" | ||
| 552 | " override it for tracking? ")) | ||
| 553 | (progn | ||
| 554 | (message (concat "Will change it; set" | ||
| 555 | " `erc-track-enable-keybindings'" | ||
| 556 | " to disable this message")) | ||
| 557 | (sleep-for 3) | ||
| 558 | (erc-track-minor-mode 1)) | ||
| 559 | (message (concat "Not changing it; set" | ||
| 560 | " `erc-track-enable-keybindings'" | ||
| 561 | " to disable this message")) | ||
| 562 | (sleep-for 3)) | ||
| 563 | (erc-track-minor-mode 1)))) | ||
| 564 | ((eq erc-track-enable-keybindings t) | ||
| 565 | (erc-track-minor-mode 1)) | ||
| 566 | (t nil)))) | ||
| 567 | |||
| 491 | ;;; Module | 568 | ;;; Module |
| 492 | 569 | ||
| 493 | ;;;###autoload (autoload 'erc-track-mode "erc-track" nil t) | 570 | ;;;###autoload (autoload 'erc-track-mode "erc-track" nil t) |
| 494 | (define-erc-module track track-modified-channels | 571 | (define-erc-module track nil |
| 495 | "This mode tracks ERC channel buffers with activity." | 572 | "This mode tracks ERC channel buffers with activity." |
| 496 | ((erc-track-add-to-mode-line erc-track-position-in-mode-line) | 573 | ;; Enable: |
| 497 | (setq erc-modified-channels-object (erc-modified-channels-object nil)) | 574 | ((when (boundp 'erc-track-when-inactive) |
| 498 | (erc-update-mode-line) | 575 | (if erc-track-when-inactive |
| 499 | (if (featurep 'xemacs) | 576 | (progn |
| 500 | (defadvice switch-to-buffer (after erc-update (&rest args) activate) | 577 | (if (featurep 'xemacs) |
| 501 | (erc-modified-channels-update)) | 578 | (defadvice switch-to-buffer (after erc-update-when-inactive |
| 502 | (add-hook 'window-configuration-change-hook 'erc-modified-channels-update)) | 579 | (&rest args) activate) |
| 503 | (add-hook 'erc-insert-post-hook 'erc-track-modified-channels) | 580 | (erc-user-is-active)) |
| 504 | (add-hook 'erc-disconnected-hook 'erc-modified-channels-update)) | 581 | (add-hook 'window-configuration-change-hook 'erc-user-is-active)) |
| 505 | ((erc-track-remove-from-mode-line) | 582 | (add-hook 'erc-send-completed-hook 'erc-user-is-active) |
| 506 | (if (featurep 'xemacs) | 583 | (add-hook 'erc-server-001-functions 'erc-user-is-active)) |
| 507 | (ad-disable-advice 'switch-to-buffer 'after 'erc-update) | 584 | (erc-track-add-to-mode-line erc-track-position-in-mode-line) |
| 508 | (remove-hook 'window-configuration-change-hook | 585 | (setq erc-modified-channels-object (erc-modified-channels-object nil)) |
| 509 | 'erc-modified-channels-update)) | 586 | (erc-update-mode-line) |
| 510 | (remove-hook 'erc-disconnected-hook 'erc-modified-channels-update) | 587 | (if (featurep 'xemacs) |
| 511 | (remove-hook 'erc-insert-post-hook 'erc-track-modified-channels))) | 588 | (defadvice switch-to-buffer (after erc-update (&rest args) activate) |
| 512 | 589 | (erc-modified-channels-update)) | |
| 513 | ;;;###autoload (autoload 'erc-track-when-inactive-mode "erc-track" nil t) | 590 | (add-hook 'window-configuration-change-hook |
| 514 | (define-erc-module track-when-inactive nil | 591 | 'erc-modified-channels-update)) |
| 515 | "This mode enables channel tracking even for visible buffers, | 592 | (add-hook 'erc-insert-post-hook 'erc-track-modified-channels) |
| 516 | if you are inactivity." | 593 | (add-hook 'erc-disconnected-hook 'erc-modified-channels-update)) |
| 517 | ((if (featurep 'xemacs) | 594 | ;; enable the tracking keybindings |
| 518 | (defadvice switch-to-buffer (after erc-update-when-inactive (&rest args) activate) | 595 | (erc-track-minor-mode-maybe))) |
| 519 | (erc-user-is-active)) | 596 | ;; Disable: |
| 520 | (add-hook 'window-configuration-change-hook 'erc-user-is-active)) | 597 | ((when (boundp 'erc-track-when-inactive) |
| 521 | (add-hook 'erc-send-completed-hook 'erc-user-is-active) | 598 | (erc-track-remove-from-mode-line) |
| 522 | (add-hook 'erc-server-001-functions 'erc-user-is-active)) | 599 | (if erc-track-when-inactive |
| 523 | ((erc-track-remove-from-mode-line) | 600 | (progn |
| 524 | (if (featurep 'xemacs) | 601 | (if (featurep 'xemacs) |
| 525 | (ad-disable-advice 'switch-to-buffer 'after 'erc-update-when-inactive) | 602 | (ad-disable-advice 'switch-to-buffer 'after |
| 526 | (remove-hook 'window-configuration-change-hook 'erc-user-is-active)) | 603 | 'erc-update-when-inactive) |
| 527 | (remove-hook 'erc-send-completed-hook 'erc-user-is-active) | 604 | (remove-hook 'window-configuration-change-hook |
| 528 | (remove-hook 'erc-server-001-functions 'erc-user-is-active) | 605 | 'erc-user-is-active)) |
| 529 | (remove-hook 'erc-timer-hook 'erc-user-is-active))) | 606 | (remove-hook 'erc-send-completed-hook 'erc-user-is-active) |
| 607 | (remove-hook 'erc-server-001-functions 'erc-user-is-active) | ||
| 608 | (remove-hook 'erc-timer-hook 'erc-user-is-active)) | ||
| 609 | (if (featurep 'xemacs) | ||
| 610 | (ad-disable-advice 'switch-to-buffer 'after 'erc-update) | ||
| 611 | (remove-hook 'window-configuration-change-hook | ||
| 612 | 'erc-modified-channels-update)) | ||
| 613 | (remove-hook 'erc-disconnected-hook 'erc-modified-channels-update) | ||
| 614 | (remove-hook 'erc-insert-post-hook 'erc-track-modified-channels)) | ||
| 615 | ;; disable the tracking keybindings | ||
| 616 | (when erc-track-minor-mode | ||
| 617 | (erc-track-minor-mode -1))))) | ||
| 618 | |||
| 619 | (defcustom erc-track-when-inactive nil | ||
| 620 | "Enable channel tracking even for visible buffers, if you are | ||
| 621 | inactive." | ||
| 622 | :group 'erc-track | ||
| 623 | :type 'boolean | ||
| 624 | :set (lambda (sym val) | ||
| 625 | (if erc-track-mode | ||
| 626 | (progn | ||
| 627 | (erc-track-disable) | ||
| 628 | (set sym val) | ||
| 629 | (erc-track-enable)) | ||
| 630 | (set sym val)))) | ||
| 530 | 631 | ||
| 531 | ;;; Visibility | 632 | ;;; Visibility |
| 532 | 633 | ||
| @@ -545,7 +646,7 @@ only consider active buffers visible.") | |||
| 545 | 646 | ||
| 546 | (defun erc-buffer-visible (buffer) | 647 | (defun erc-buffer-visible (buffer) |
| 547 | "Return non-nil when the buffer is visible." | 648 | "Return non-nil when the buffer is visible." |
| 548 | (if erc-track-when-inactive-mode | 649 | (if erc-track-when-inactive |
| 549 | (when erc-buffer-activity; could be nil | 650 | (when erc-buffer-activity; could be nil |
| 550 | (and (get-buffer-window buffer erc-track-visibility) | 651 | (and (get-buffer-window buffer erc-track-visibility) |
| 551 | (<= (erc-time-diff erc-buffer-activity (erc-current-time)) | 652 | (<= (erc-time-diff erc-buffer-activity (erc-current-time)) |
| @@ -815,7 +916,9 @@ relative to `erc-track-switch-direction'" | |||
| 815 | switch back to the last non-ERC buffer visited. Next is defined by | 916 | switch back to the last non-ERC buffer visited. Next is defined by |
| 816 | `erc-track-switch-direction', a negative argument will reverse this." | 917 | `erc-track-switch-direction', a negative argument will reverse this." |
| 817 | (interactive "p") | 918 | (interactive "p") |
| 818 | (when erc-track-mode | 919 | (if (not erc-track-mode) |
| 920 | (message (concat "Enable the ERC track module if you want to use the" | ||
| 921 | " tracking minor mode")) | ||
| 819 | (cond (erc-modified-channels-alist | 922 | (cond (erc-modified-channels-alist |
| 820 | ;; if we're not in erc-mode, set this buffer to return to | 923 | ;; if we're not in erc-mode, set this buffer to return to |
| 821 | (unless (eq major-mode 'erc-mode) | 924 | (unless (eq major-mode 'erc-mode) |
| @@ -828,12 +931,6 @@ switch back to the last non-ERC buffer visited. Next is defined by | |||
| 828 | (buffer-live-p erc-track-last-non-erc-buffer)) | 931 | (buffer-live-p erc-track-last-non-erc-buffer)) |
| 829 | (switch-to-buffer erc-track-last-non-erc-buffer))))) | 932 | (switch-to-buffer erc-track-last-non-erc-buffer))))) |
| 830 | 933 | ||
| 831 | ;; These bindings are global, because they pop us from any other | ||
| 832 | ;; buffer to an active ERC buffer! | ||
| 833 | |||
| 834 | (global-set-key (kbd "C-c C-@") 'erc-track-switch-buffer) | ||
| 835 | (global-set-key (kbd "C-c C-SPC") 'erc-track-switch-buffer) | ||
| 836 | |||
| 837 | (provide 'erc-track) | 934 | (provide 'erc-track) |
| 838 | 935 | ||
| 839 | ;;; erc-track.el ends here | 936 | ;;; erc-track.el ends here |
diff --git a/lisp/erc/erc.el b/lisp/erc/erc.el index 927dce02d64..37c2c2e0883 100644 --- a/lisp/erc/erc.el +++ b/lisp/erc/erc.el | |||
| @@ -66,7 +66,7 @@ | |||
| 66 | 66 | ||
| 67 | ;;; Code: | 67 | ;;; Code: |
| 68 | 68 | ||
| 69 | (defconst erc-version-string "Version 5.2 stable pre-release" | 69 | (defconst erc-version-string "Version 5.2" |
| 70 | "ERC version. This is used by function `erc-version'.") | 70 | "ERC version. This is used by function `erc-version'.") |
| 71 | 71 | ||
| 72 | (eval-when-compile (require 'cl)) | 72 | (eval-when-compile (require 'cl)) |
| @@ -324,7 +324,7 @@ Each function should accept two arguments, NEW-NICK and OLD-NICK." | |||
| 324 | 324 | ||
| 325 | (defcustom erc-connect-pre-hook '(erc-initialize-log-marker) | 325 | (defcustom erc-connect-pre-hook '(erc-initialize-log-marker) |
| 326 | "Hook called just before `erc' calls `erc-connect'. | 326 | "Hook called just before `erc' calls `erc-connect'. |
| 327 | Functions are run in the buffer-to-be." | 327 | Functions are passed a buffer as the first argument." |
| 328 | :group 'erc-hooks | 328 | :group 'erc-hooks |
| 329 | :type 'hook) | 329 | :type 'hook) |
| 330 | 330 | ||
| @@ -392,14 +392,14 @@ in the current buffer's `erc-channel-users' hash table." | |||
| 392 | (defsubst erc-get-server-user (nick) | 392 | (defsubst erc-get-server-user (nick) |
| 393 | "Finds the USER corresponding to NICK in the current server's | 393 | "Finds the USER corresponding to NICK in the current server's |
| 394 | `erc-server-users' hash table." | 394 | `erc-server-users' hash table." |
| 395 | (with-current-buffer (process-buffer erc-server-process) | 395 | (erc-with-server-buffer |
| 396 | (gethash (erc-downcase nick) erc-server-users))) | 396 | (gethash (erc-downcase nick) erc-server-users))) |
| 397 | 397 | ||
| 398 | (defsubst erc-add-server-user (nick user) | 398 | (defsubst erc-add-server-user (nick user) |
| 399 | "This function is for internal use only. | 399 | "This function is for internal use only. |
| 400 | 400 | ||
| 401 | Adds USER with nickname NICK to the `erc-server-users' hash table." | 401 | Adds USER with nickname NICK to the `erc-server-users' hash table." |
| 402 | (with-current-buffer (process-buffer erc-server-process) | 402 | (erc-with-server-buffer |
| 403 | (puthash (erc-downcase nick) user erc-server-users))) | 403 | (puthash (erc-downcase nick) user erc-server-users))) |
| 404 | 404 | ||
| 405 | (defsubst erc-remove-server-user (nick) | 405 | (defsubst erc-remove-server-user (nick) |
| @@ -410,7 +410,7 @@ hash table. This user is not removed from the | |||
| 410 | `erc-channel-users' lists of other buffers. | 410 | `erc-channel-users' lists of other buffers. |
| 411 | 411 | ||
| 412 | See also: `erc-remove-user'." | 412 | See also: `erc-remove-user'." |
| 413 | (with-current-buffer (process-buffer erc-server-process) | 413 | (erc-with-server-buffer |
| 414 | (remhash (erc-downcase nick) erc-server-users))) | 414 | (remhash (erc-downcase nick) erc-server-users))) |
| 415 | 415 | ||
| 416 | (defun erc-change-user-nickname (user new-nick) | 416 | (defun erc-change-user-nickname (user new-nick) |
| @@ -421,7 +421,7 @@ Changes the nickname of USER to NEW-NICK in the | |||
| 421 | other buffers are also changed." | 421 | other buffers are also changed." |
| 422 | (let ((nick (erc-server-user-nickname user))) | 422 | (let ((nick (erc-server-user-nickname user))) |
| 423 | (setf (erc-server-user-nickname user) new-nick) | 423 | (setf (erc-server-user-nickname user) new-nick) |
| 424 | (with-current-buffer (process-buffer erc-server-process) | 424 | (erc-with-server-buffer |
| 425 | (remhash (erc-downcase nick) erc-server-users) | 425 | (remhash (erc-downcase nick) erc-server-users) |
| 426 | (puthash (erc-downcase new-nick) user erc-server-users)) | 426 | (puthash (erc-downcase new-nick) user erc-server-users)) |
| 427 | (dolist (buf (erc-server-user-buffers user)) | 427 | (dolist (buf (erc-server-user-buffers user)) |
| @@ -514,16 +514,15 @@ See also: `erc-sort-channel-users-by-activity'" | |||
| 514 | 514 | ||
| 515 | (defun erc-get-server-nickname-list () | 515 | (defun erc-get-server-nickname-list () |
| 516 | "Returns a list of known nicknames on the current server." | 516 | "Returns a list of known nicknames on the current server." |
| 517 | (if (erc-server-process-alive) | 517 | (erc-with-server-buffer |
| 518 | (with-current-buffer (erc-server-buffer) | 518 | (let (nicks) |
| 519 | (let (nicks) | 519 | (when (hash-table-p erc-server-users) |
| 520 | (when (hash-table-p erc-server-users) | 520 | (maphash (lambda (n user) |
| 521 | (maphash (lambda (n user) | 521 | (setq nicks |
| 522 | (setq nicks | 522 | (cons (erc-server-user-nickname user) |
| 523 | (cons (erc-server-user-nickname user) | 523 | nicks))) |
| 524 | nicks))) | 524 | erc-server-users) |
| 525 | erc-server-users) | 525 | nicks)))) |
| 526 | nicks))))) | ||
| 527 | 526 | ||
| 528 | (defun erc-get-channel-nickname-list () | 527 | (defun erc-get-channel-nickname-list () |
| 529 | "Returns a list of known nicknames on the current channel." | 528 | "Returns a list of known nicknames on the current channel." |
| @@ -538,16 +537,15 @@ See also: `erc-sort-channel-users-by-activity'" | |||
| 538 | 537 | ||
| 539 | (defun erc-get-server-nickname-alist () | 538 | (defun erc-get-server-nickname-alist () |
| 540 | "Returns an alist of known nicknames on the current server." | 539 | "Returns an alist of known nicknames on the current server." |
| 541 | (if (erc-server-process-alive) | 540 | (erc-with-server-buffer |
| 542 | (with-current-buffer (erc-server-buffer) | 541 | (let (nicks) |
| 543 | (let (nicks) | 542 | (when (hash-table-p erc-server-users) |
| 544 | (when (hash-table-p erc-server-users) | 543 | (maphash (lambda (n user) |
| 545 | (maphash (lambda (n user) | 544 | (setq nicks |
| 546 | (setq nicks | 545 | (cons (cons (erc-server-user-nickname user) nil) |
| 547 | (cons (cons (erc-server-user-nickname user) nil) | 546 | nicks))) |
| 548 | nicks))) | 547 | erc-server-users) |
| 549 | erc-server-users) | 548 | nicks)))) |
| 550 | nicks))))) | ||
| 551 | 549 | ||
| 552 | (defun erc-get-channel-nickname-alist () | 550 | (defun erc-get-channel-nickname-alist () |
| 553 | "Returns an alist of known nicknames on the current channel." | 551 | "Returns an alist of known nicknames on the current channel." |
| @@ -1293,7 +1291,7 @@ capabilities." | |||
| 1293 | (unless (erc-server-buffer-p) | 1291 | (unless (erc-server-buffer-p) |
| 1294 | (error | 1292 | (error |
| 1295 | "You should only run `erc-once-with-server-event' in a server buffer")) | 1293 | "You should only run `erc-once-with-server-event' in a server buffer")) |
| 1296 | (let ((fun (erc-gensym)) | 1294 | (let ((fun (make-symbol "fun")) |
| 1297 | (hook (erc-get-hook event))) | 1295 | (hook (erc-get-hook event))) |
| 1298 | (put fun 'erc-original-buffer (current-buffer)) | 1296 | (put fun 'erc-original-buffer (current-buffer)) |
| 1299 | (fset fun `(lambda (proc parsed) | 1297 | (fset fun `(lambda (proc parsed) |
| @@ -1316,7 +1314,7 @@ not be run. | |||
| 1316 | 1314 | ||
| 1317 | When FORMS execute, the current buffer is the server buffer associated with the | 1315 | When FORMS execute, the current buffer is the server buffer associated with the |
| 1318 | connection over which the data was received that triggered EVENT." | 1316 | connection over which the data was received that triggered EVENT." |
| 1319 | (let ((fun (erc-gensym)) | 1317 | (let ((fun (make-symbol "fun")) |
| 1320 | (hook (erc-get-hook event))) | 1318 | (hook (erc-get-hook event))) |
| 1321 | (fset fun `(lambda (proc parsed) | 1319 | (fset fun `(lambda (proc parsed) |
| 1322 | (remove-hook ',hook ',fun) | 1320 | (remove-hook ',hook ',fun) |
| @@ -1370,7 +1368,7 @@ If BUFFER is nil, the current buffer is used." | |||
| 1370 | (defun erc-ison-p (nick) | 1368 | (defun erc-ison-p (nick) |
| 1371 | "Return non-nil if NICK is online." | 1369 | "Return non-nil if NICK is online." |
| 1372 | (interactive "sNick: ") | 1370 | (interactive "sNick: ") |
| 1373 | (with-current-buffer (erc-server-buffer) | 1371 | (erc-with-server-buffer |
| 1374 | (let ((erc-online-p 'unknown)) | 1372 | (let ((erc-online-p 'unknown)) |
| 1375 | (erc-once-with-server-event | 1373 | (erc-once-with-server-event |
| 1376 | 303 | 1374 | 303 |
| @@ -1420,7 +1418,7 @@ server buffer.") | |||
| 1420 | (defun erc-active-buffer () | 1418 | (defun erc-active-buffer () |
| 1421 | "Return the value of `erc-active-buffer' for the current server. | 1419 | "Return the value of `erc-active-buffer' for the current server. |
| 1422 | Defaults to the server buffer." | 1420 | Defaults to the server buffer." |
| 1423 | (with-current-buffer (erc-server-buffer) | 1421 | (erc-with-server-buffer |
| 1424 | (if (buffer-live-p erc-active-buffer) | 1422 | (if (buffer-live-p erc-active-buffer) |
| 1425 | erc-active-buffer | 1423 | erc-active-buffer |
| 1426 | (setq erc-active-buffer (current-buffer))))) | 1424 | (setq erc-active-buffer (current-buffer))))) |
| @@ -1603,10 +1601,10 @@ See `erc-get-buffer' for details. | |||
| 1603 | See also `with-current-buffer'. | 1601 | See also `with-current-buffer'. |
| 1604 | 1602 | ||
| 1605 | \(fn (TARGET [PROCESS]) BODY...)" | 1603 | \(fn (TARGET [PROCESS]) BODY...)" |
| 1606 | (let ((buf (erc-gensym)) | 1604 | (let ((buf (make-symbol "buf")) |
| 1607 | (proc (erc-gensym)) | 1605 | (proc (make-symbol "proc")) |
| 1608 | (target (erc-gensym)) | 1606 | (target (make-symbol "target")) |
| 1609 | (process (erc-gensym))) | 1607 | (process (make-symbol "process"))) |
| 1610 | `(let* ((,target ,(car spec)) | 1608 | `(let* ((,target ,(car spec)) |
| 1611 | (,process ,(cadr spec)) | 1609 | (,process ,(cadr spec)) |
| 1612 | (,buf (if (bufferp ,target) | 1610 | (,buf (if (bufferp ,target) |
| @@ -1616,7 +1614,7 @@ See also `with-current-buffer'. | |||
| 1616 | erc-server-process)))) | 1614 | erc-server-process)))) |
| 1617 | (if (and ,target ,proc) | 1615 | (if (and ,target ,proc) |
| 1618 | (erc-get-buffer ,target ,proc)))))) | 1616 | (erc-get-buffer ,target ,proc)))))) |
| 1619 | (when ,buf | 1617 | (when (buffer-live-p ,buf) |
| 1620 | (with-current-buffer ,buf | 1618 | (with-current-buffer ,buf |
| 1621 | ,@body))))) | 1619 | ,@body))))) |
| 1622 | (put 'erc-with-buffer 'lisp-indent-function 1) | 1620 | (put 'erc-with-buffer 'lisp-indent-function 1) |
| @@ -1671,8 +1669,8 @@ FORMS will be evaluated in all buffers having the process PROCESS and | |||
| 1671 | where PRED matches or in all buffers of the server process if PRED is | 1669 | where PRED matches or in all buffers of the server process if PRED is |
| 1672 | nil." | 1670 | nil." |
| 1673 | ;; Make the evaluation have the correct order | 1671 | ;; Make the evaluation have the correct order |
| 1674 | (let ((pre (erc-gensym)) | 1672 | (let ((pre (make-symbol "pre")) |
| 1675 | (pro (erc-gensym))) | 1673 | (pro (make-symbol "pro"))) |
| 1676 | `(let ((,pro ,process) | 1674 | `(let ((,pro ,process) |
| 1677 | (,pre ,pred)) | 1675 | (,pre ,pred)) |
| 1678 | (mapcar (lambda (buffer) | 1676 | (mapcar (lambda (buffer) |
| @@ -1755,7 +1753,10 @@ all channel buffers on all servers." | |||
| 1755 | (make-variable-buffer-local 'erc-invitation) | 1753 | (make-variable-buffer-local 'erc-invitation) |
| 1756 | 1754 | ||
| 1757 | (defvar erc-away nil | 1755 | (defvar erc-away nil |
| 1758 | "Non-nil indicates that we are away.") | 1756 | "Non-nil indicates that we are away. |
| 1757 | |||
| 1758 | Use `erc-away-time' to access this if you might be in a channel | ||
| 1759 | buffer rather than a server buffer.") | ||
| 1759 | (make-variable-buffer-local 'erc-away) | 1760 | (make-variable-buffer-local 'erc-away) |
| 1760 | 1761 | ||
| 1761 | (defvar erc-channel-list nil | 1762 | (defvar erc-channel-list nil |
| @@ -1813,43 +1814,43 @@ removed from the list will be disabled." | |||
| 1813 | :type | 1814 | :type |
| 1814 | '(set | 1815 | '(set |
| 1815 | :greedy t | 1816 | :greedy t |
| 1816 | (const :tag "Set away status automatically" autoaway) | 1817 | (const :tag "autoaway: Set away status automatically" autoaway) |
| 1817 | (const :tag "Join channels automatically" autojoin) | 1818 | (const :tag "autojoin: Join channels automatically" autojoin) |
| 1818 | (const :tag "Buttonize URLs, nicknames, and other text" button) | 1819 | (const :tag "button: Buttonize URLs, nicknames, and other text" button) |
| 1819 | (const | 1820 | (const :tag "capab: Mark unidentified users on servers supporting CAPAB" |
| 1820 | :tag | 1821 | capab-identify) |
| 1821 | "Mark unidentified users on freenode and other servers supporting CAPAB" | 1822 | (const :tag "completion: Complete nicknames and commands (programmable)" |
| 1822 | capab-identify) | 1823 | completion) |
| 1823 | (const :tag "Wrap long lines" fill) | 1824 | (const :tag "hecomplete: Complete nicknames and commands (old)" hecomplete) |
| 1824 | (const :tag "Launch an identd server on port 8113" identd) | 1825 | (const :tag "fill: Wrap long lines" fill) |
| 1825 | (const :tag "Highlight or remove IRC control characters" | 1826 | (const :tag "identd: Launch an identd server on port 8113" identd) |
| 1827 | (const :tag "irccontrols: Highlight or remove IRC control characters" | ||
| 1826 | irccontrols) | 1828 | irccontrols) |
| 1827 | (const :tag "Save buffers in logs" log) | 1829 | (const :tag "log: Save buffers in logs" log) |
| 1828 | (const :tag "Highlight pals, fools, and other keywords" match) | 1830 | (const :tag "match: Highlight pals, fools, and other keywords" match) |
| 1829 | (const :tag "Display a menu in ERC buffers" menu) | 1831 | (const :tag "menu: Display a menu in ERC buffers" menu) |
| 1830 | (const :tag "Detect netsplits" netsplit) | 1832 | (const :tag "netsplit: Detect netsplits" netsplit) |
| 1831 | (const :tag "Don't display non-IRC commands after evaluation" | 1833 | (const :tag "noncommands: Don't display non-IRC commands after evaluation" |
| 1832 | noncommands) | 1834 | noncommands) |
| 1833 | (const :tag "Notify when the online status of certain users changes" | 1835 | (const :tag |
| 1836 | "notify: Notify when the online status of certain users changes" | ||
| 1834 | notify) | 1837 | notify) |
| 1835 | (const :tag "Complete nicknames and commands (programmable)" | 1838 | (const :tag "page: Process CTCP PAGE requests from IRC" page) |
| 1836 | completion) | 1839 | (const :tag "readonly: Make displayed lines read-only" readonly) |
| 1837 | (const :tag "Complete nicknames and commands (old)" hecomplete) | 1840 | (const :tag "replace: Replace text in messages" replace) |
| 1838 | (const :tag "Process CTCP PAGE requests from IRC" page) | 1841 | (const :tag "ring: Enable an input history" ring) |
| 1839 | (const :tag "Make displayed lines read-only" readonly) | 1842 | (const :tag "scrolltobottom: Scroll to the bottom of the buffer" |
| 1840 | (const :tag "Replace text in messages" replace) | 1843 | scrolltobottom) |
| 1841 | (const :tag "Enable an input history" ring) | 1844 | (const :tag "services: Identify to Nickserv (IRC Services) automatically" |
| 1842 | (const :tag "Scroll to the bottom of the buffer" scrolltobottom) | ||
| 1843 | (const :tag "Identify to Nickserv (IRC Services) automatically" | ||
| 1844 | services) | 1845 | services) |
| 1845 | (const :tag "Convert smileys to pretty icons" smiley) | 1846 | (const :tag "smiley: Convert smileys to pretty icons" smiley) |
| 1846 | (const :tag "Play sounds when you receive CTCP SOUND requests" | 1847 | (const :tag "sound: Play sounds when you receive CTCP SOUND requests" |
| 1847 | sound) | 1848 | sound) |
| 1848 | (const :tag "Add timestamps to messages" stamp) | 1849 | (const :tag "stamp: Add timestamps to messages" stamp) |
| 1849 | (const :tag "Check spelling" spelling) | 1850 | (const :tag "spelling: Check spelling" spelling) |
| 1850 | (const :tag "Track channel activity in the mode-line" track) | 1851 | (const :tag "track: Track channel activity in the mode-line" track) |
| 1851 | (const :tag "Truncate buffers to a certain size" truncate) | 1852 | (const :tag "truncate: Truncate buffers to a certain size" truncate) |
| 1852 | (const :tag "Translate morse code in messages" unmorse) | 1853 | (const :tag "unmorse: Translate morse code in messages" unmorse) |
| 1853 | (repeat :tag "Others" :inline t symbol)) | 1854 | (repeat :tag "Others" :inline t symbol)) |
| 1854 | :group 'erc) | 1855 | :group 'erc) |
| 1855 | 1856 | ||
| @@ -1902,9 +1903,7 @@ removed from the list will be disabled." | |||
| 1902 | 1903 | ||
| 1903 | (defun erc-open (&optional server port nick full-name | 1904 | (defun erc-open (&optional server port nick full-name |
| 1904 | connect passwd tgt-list channel process) | 1905 | connect passwd tgt-list channel process) |
| 1905 | "ERC is a powerful, modular, and extensible IRC client. | 1906 | "Connect to SERVER on PORT as NICK with FULL-NAME. |
| 1906 | |||
| 1907 | Connect to SERVER on PORT as NICK with FULL-NAME. | ||
| 1908 | 1907 | ||
| 1909 | If CONNECT is non-nil, connect to the server. Otherwise assume | 1908 | If CONNECT is non-nil, connect to the server. Otherwise assume |
| 1910 | already connected and just create a separate buffer for the new | 1909 | already connected and just create a separate buffer for the new |
| @@ -1969,10 +1968,6 @@ Returns the buffer for the given server or channel." | |||
| 1969 | (erc-set-active-buffer buffer) | 1968 | (erc-set-active-buffer buffer) |
| 1970 | ;; last invitation channel | 1969 | ;; last invitation channel |
| 1971 | (setq erc-invitation nil) | 1970 | (setq erc-invitation nil) |
| 1972 | ;; away flag | ||
| 1973 | ;; Should only be used in session-buffers | ||
| 1974 | (setq erc-away (let ((serverbuf (erc-server-buffer))) | ||
| 1975 | (and serverbuf (with-current-buffer serverbuf erc-away)))) | ||
| 1976 | ;; Server channel list | 1971 | ;; Server channel list |
| 1977 | (setq erc-channel-list ()) | 1972 | (setq erc-channel-list ()) |
| 1978 | ;; login-time 'nick in use' error | 1973 | ;; login-time 'nick in use' error |
| @@ -1987,25 +1982,25 @@ Returns the buffer for the given server or channel." | |||
| 1987 | (setq erc-dbuf | 1982 | (setq erc-dbuf |
| 1988 | (when erc-log-p | 1983 | (when erc-log-p |
| 1989 | (get-buffer-create (concat "*ERC-DEBUG: " server "*")))) | 1984 | (get-buffer-create (concat "*ERC-DEBUG: " server "*")))) |
| 1990 | (erc-determine-parameters server port nick full-name) | 1985 | ;; set up prompt |
| 1991 | |||
| 1992 | ;; Saving log file on exit | ||
| 1993 | (run-hooks 'erc-connect-pre-hook) | ||
| 1994 | |||
| 1995 | (when connect | ||
| 1996 | (erc-server-connect erc-session-server erc-session-port)) | ||
| 1997 | (erc-update-mode-line) | ||
| 1998 | (set-marker erc-insert-marker (point)) | ||
| 1999 | (unless continued-session | 1986 | (unless continued-session |
| 2000 | (goto-char (point-max)) | 1987 | (goto-char (point-max)) |
| 2001 | (insert "\n")) | 1988 | (insert "\n")) |
| 2002 | (set-marker (process-mark erc-server-process) (point)) | ||
| 2003 | (if continued-session | 1989 | (if continued-session |
| 2004 | (goto-char old-point) | 1990 | (goto-char old-point) |
| 2005 | (set-marker erc-insert-marker (point)) | 1991 | (set-marker erc-insert-marker (point)) |
| 2006 | (erc-display-prompt) | 1992 | (erc-display-prompt) |
| 2007 | (goto-char (point-max))) | 1993 | (goto-char (point-max))) |
| 2008 | 1994 | ||
| 1995 | (erc-determine-parameters server port nick full-name) | ||
| 1996 | |||
| 1997 | ;; Saving log file on exit | ||
| 1998 | (run-hook-with-args 'erc-connect-pre-hook buffer) | ||
| 1999 | |||
| 2000 | (when connect | ||
| 2001 | (erc-server-connect erc-session-server erc-session-port buffer)) | ||
| 2002 | (erc-update-mode-line) | ||
| 2003 | |||
| 2009 | ;; Now display the buffer in a window as per user wishes. | 2004 | ;; Now display the buffer in a window as per user wishes. |
| 2010 | (unless (eq buffer old-buffer) | 2005 | (unless (eq buffer old-buffer) |
| 2011 | (when erc-log-p | 2006 | (when erc-log-p |
| @@ -2016,11 +2011,13 @@ Returns the buffer for the given server or channel." | |||
| 2016 | 2011 | ||
| 2017 | buffer)) | 2012 | buffer)) |
| 2018 | 2013 | ||
| 2019 | (defun erc-initialize-log-marker () | 2014 | (defun erc-initialize-log-marker (buffer) |
| 2020 | "Initialize the `erc-last-saved-position' marker to a sensible position." | 2015 | "Initialize the `erc-last-saved-position' marker to a sensible position. |
| 2016 | BUFFER is the current buffer." | ||
| 2017 | (with-current-buffer buffer | ||
| 2021 | (setq erc-last-saved-position (make-marker)) | 2018 | (setq erc-last-saved-position (make-marker)) |
| 2022 | (move-marker erc-last-saved-position | 2019 | (move-marker erc-last-saved-position |
| 2023 | (1- (marker-position erc-insert-marker)))) | 2020 | (1- (marker-position erc-insert-marker))))) |
| 2024 | 2021 | ||
| 2025 | ;; interactive startup | 2022 | ;; interactive startup |
| 2026 | 2023 | ||
| @@ -2120,8 +2117,12 @@ functions in here get called with the parameters SERVER and NICK." | |||
| 2120 | (nick (erc-compute-nick)) | 2117 | (nick (erc-compute-nick)) |
| 2121 | password | 2118 | password |
| 2122 | (full-name (erc-compute-full-name))) | 2119 | (full-name (erc-compute-full-name))) |
| 2123 | "Select connection parameters and run ERC. | 2120 | "ERC is a powerful, modular, and extensible IRC client. |
| 2124 | Non-interactively, it takes keyword arguments | 2121 | This function is the main entry point for ERC. |
| 2122 | |||
| 2123 | It permits you to select connection parameters, and then starts ERC. | ||
| 2124 | |||
| 2125 | Non-interactively, it takes the keyword arguments | ||
| 2125 | (server (erc-compute-server)) | 2126 | (server (erc-compute-server)) |
| 2126 | (port (erc-compute-port)) | 2127 | (port (erc-compute-port)) |
| 2127 | (nick (erc-compute-nick)) | 2128 | (nick (erc-compute-nick)) |
| @@ -2132,12 +2133,13 @@ That is, if called with | |||
| 2132 | 2133 | ||
| 2133 | (erc :server \"irc.freenode.net\" :full-name \"Harry S Truman\") | 2134 | (erc :server \"irc.freenode.net\" :full-name \"Harry S Truman\") |
| 2134 | 2135 | ||
| 2135 | server and full-name will be set to those values, whereas | 2136 | then the server and full-name will be set to those values, whereas |
| 2136 | `erc-compute-port', `erc-compute-nick' and `erc-compute-full-name' will | 2137 | `erc-compute-port', `erc-compute-nick' and `erc-compute-full-name' will |
| 2137 | be invoked for the values of the other parameters." | 2138 | be invoked for the values of the other parameters." |
| 2138 | (interactive (erc-select-read-args)) | 2139 | (interactive (erc-select-read-args)) |
| 2139 | (erc-open server port nick full-name t password)) | 2140 | (erc-open server port nick full-name t password)) |
| 2140 | 2141 | ||
| 2142 | ;;;###autoload | ||
| 2141 | (defalias 'erc-select 'erc) | 2143 | (defalias 'erc-select 'erc) |
| 2142 | 2144 | ||
| 2143 | (defun erc-ssl (&rest r) | 2145 | (defun erc-ssl (&rest r) |
| @@ -2428,7 +2430,7 @@ See also `erc-format-message' and `erc-display-line'." | |||
| 2428 | 2430 | ||
| 2429 | This function relies on the erc-parsed text-property being | 2431 | This function relies on the erc-parsed text-property being |
| 2430 | present." | 2432 | present." |
| 2431 | (let ((prop-val (get-text-property position 'erc-parsed))) | 2433 | (let ((prop-val (erc-get-parsed-vector position))) |
| 2432 | (and prop-val (member (erc-response.command prop-val) list)))) | 2434 | (and prop-val (member (erc-response.command prop-val) list)))) |
| 2433 | 2435 | ||
| 2434 | (defvar erc-send-input-line-function 'erc-send-input-line) | 2436 | (defvar erc-send-input-line-function 'erc-send-input-line) |
| @@ -2586,20 +2588,19 @@ If no USER argument is specified, list the contents of `erc-ignore-list'." | |||
| 2586 | (erc-display-line | 2588 | (erc-display-line |
| 2587 | (erc-make-notice (format "Now ignoring %s" user)) | 2589 | (erc-make-notice (format "Now ignoring %s" user)) |
| 2588 | 'active) | 2590 | 'active) |
| 2589 | (with-current-buffer (erc-server-buffer) | 2591 | (erc-with-server-buffer (add-to-list 'erc-ignore-list user))) |
| 2590 | (add-to-list 'erc-ignore-list user))) | 2592 | (if (null (erc-with-server-buffer erc-ignore-list)) |
| 2591 | (if (null (with-current-buffer (erc-server-buffer) erc-ignore-list)) | ||
| 2592 | (erc-display-line (erc-make-notice "Ignore list is empty") 'active) | 2593 | (erc-display-line (erc-make-notice "Ignore list is empty") 'active) |
| 2593 | (erc-display-line (erc-make-notice "Ignore list:") 'active) | 2594 | (erc-display-line (erc-make-notice "Ignore list:") 'active) |
| 2594 | (mapc #'(lambda (item) | 2595 | (mapc #'(lambda (item) |
| 2595 | (erc-display-line (erc-make-notice item) | 2596 | (erc-display-line (erc-make-notice item) |
| 2596 | 'active)) | 2597 | 'active)) |
| 2597 | (with-current-buffer (erc-server-buffer) erc-ignore-list)))) | 2598 | (erc-with-server-buffer erc-ignore-list)))) |
| 2598 | t) | 2599 | t) |
| 2599 | 2600 | ||
| 2600 | (defun erc-cmd-UNIGNORE (user) | 2601 | (defun erc-cmd-UNIGNORE (user) |
| 2601 | "Remove the user specified in USER from the ignore list." | 2602 | "Remove the user specified in USER from the ignore list." |
| 2602 | (let ((ignored-nick (car (with-current-buffer (erc-server-buffer) | 2603 | (let ((ignored-nick (car (erc-with-server-buffer |
| 2603 | (erc-member-ignore-case (regexp-quote user) | 2604 | (erc-member-ignore-case (regexp-quote user) |
| 2604 | erc-ignore-list))))) | 2605 | erc-ignore-list))))) |
| 2605 | (unless ignored-nick | 2606 | (unless ignored-nick |
| @@ -2614,7 +2615,7 @@ If no USER argument is specified, list the contents of `erc-ignore-list'." | |||
| 2614 | (erc-display-line | 2615 | (erc-display-line |
| 2615 | (erc-make-notice (format "No longer ignoring %s" user)) | 2616 | (erc-make-notice (format "No longer ignoring %s" user)) |
| 2616 | 'active) | 2617 | 'active) |
| 2617 | (with-current-buffer (erc-server-buffer) | 2618 | (erc-with-server-buffer |
| 2618 | (setq erc-ignore-list (delete ignored-nick erc-ignore-list))))) | 2619 | (setq erc-ignore-list (delete ignored-nick erc-ignore-list))))) |
| 2619 | t) | 2620 | t) |
| 2620 | 2621 | ||
| @@ -2673,8 +2674,8 @@ If no reason is given, unset away status." | |||
| 2673 | "Mark the user as being away everywhere, the reason being indicated by LINE." | 2674 | "Mark the user as being away everywhere, the reason being indicated by LINE." |
| 2674 | ;; on all server buffers. | 2675 | ;; on all server buffers. |
| 2675 | (erc-with-all-buffers-of-server nil | 2676 | (erc-with-all-buffers-of-server nil |
| 2676 | #'erc-server-buffer-p | 2677 | #'erc-open-server-buffer-p |
| 2677 | (erc-cmd-AWAY line))) | 2678 | (erc-cmd-AWAY line))) |
| 2678 | (put 'erc-cmd-GAWAY 'do-not-parse-args t) | 2679 | (put 'erc-cmd-GAWAY 'do-not-parse-args t) |
| 2679 | 2680 | ||
| 2680 | (defun erc-cmd-CTCP (nick cmd &rest args) | 2681 | (defun erc-cmd-CTCP (nick cmd &rest args) |
| @@ -2866,10 +2867,9 @@ If SERVER is non-nil, use that, rather than the current server." | |||
| 2866 | 2867 | ||
| 2867 | (defun erc-cmd-IDLE (nick) | 2868 | (defun erc-cmd-IDLE (nick) |
| 2868 | "Show the length of time NICK has been idle." | 2869 | "Show the length of time NICK has been idle." |
| 2869 | (let ((serverbuf (erc-server-buffer)) | 2870 | (let ((origbuf (current-buffer)) |
| 2870 | (origbuf (current-buffer)) | ||
| 2871 | symlist) | 2871 | symlist) |
| 2872 | (with-current-buffer serverbuf | 2872 | (erc-with-server-buffer |
| 2873 | (add-to-list 'symlist | 2873 | (add-to-list 'symlist |
| 2874 | (cons (erc-once-with-server-event | 2874 | (cons (erc-once-with-server-event |
| 2875 | 311 `(string= ,nick | 2875 | 311 `(string= ,nick |
| @@ -3027,8 +3027,8 @@ The rest of LINE is the message to send." | |||
| 3027 | (defun erc-cmd-NICK (nick) | 3027 | (defun erc-cmd-NICK (nick) |
| 3028 | "Change current nickname to NICK." | 3028 | "Change current nickname to NICK." |
| 3029 | (erc-log (format "cmd: NICK: %s (erc-bad-nick: %S)" nick erc-bad-nick)) | 3029 | (erc-log (format "cmd: NICK: %s (erc-bad-nick: %S)" nick erc-bad-nick)) |
| 3030 | (let ((nicklen (cdr (assoc "NICKLEN" (with-current-buffer (erc-server-buffer) | 3030 | (let ((nicklen (cdr (assoc "NICKLEN" (erc-with-server-buffer |
| 3031 | erc-server-parameters))))) | 3031 | erc-server-parameters))))) |
| 3032 | (and nicklen (> (length nick) (string-to-number nicklen)) | 3032 | (and nicklen (> (length nick) (string-to-number nicklen)) |
| 3033 | (erc-display-message | 3033 | (erc-display-message |
| 3034 | nil 'notice 'active 'nick-too-long | 3034 | nil 'notice 'active 'nick-too-long |
| @@ -3167,7 +3167,8 @@ the message given by REASON." | |||
| 3167 | ((string-match "^\\s-*\\(.*\\)$" reason) | 3167 | ((string-match "^\\s-*\\(.*\\)$" reason) |
| 3168 | (let* ((s (match-string 1 reason)) | 3168 | (let* ((s (match-string 1 reason)) |
| 3169 | (buffer (erc-server-buffer)) | 3169 | (buffer (erc-server-buffer)) |
| 3170 | (reason (funcall erc-quit-reason (if (equal s "") nil s)))) | 3170 | (reason (funcall erc-quit-reason (if (equal s "") nil s))) |
| 3171 | server-proc) | ||
| 3171 | (with-current-buffer (if (and buffer | 3172 | (with-current-buffer (if (and buffer |
| 3172 | (bufferp buffer)) | 3173 | (bufferp buffer)) |
| 3173 | buffer | 3174 | buffer |
| @@ -3175,10 +3176,18 @@ the message given by REASON." | |||
| 3175 | (erc-log (format "cmd: QUIT: %s" reason)) | 3176 | (erc-log (format "cmd: QUIT: %s" reason)) |
| 3176 | (setq erc-server-quitting t) | 3177 | (setq erc-server-quitting t) |
| 3177 | (erc-set-active-buffer (erc-server-buffer)) | 3178 | (erc-set-active-buffer (erc-server-buffer)) |
| 3179 | (setq server-proc erc-server-process) | ||
| 3178 | (erc-server-send (format "QUIT :%s" reason))) | 3180 | (erc-server-send (format "QUIT :%s" reason))) |
| 3179 | (run-hook-with-args 'erc-quit-hook erc-server-process) | 3181 | (run-hook-with-args 'erc-quit-hook server-proc) |
| 3180 | (when erc-kill-queries-on-quit | 3182 | (when erc-kill-queries-on-quit |
| 3181 | (erc-kill-query-buffers erc-server-process))) | 3183 | (erc-kill-query-buffers server-proc)) |
| 3184 | ;; if the process has not been killed within 4 seconds, kill it | ||
| 3185 | (run-at-time 4 nil | ||
| 3186 | (lambda (proc) | ||
| 3187 | (when (and (processp proc) | ||
| 3188 | (memq (process-status proc) '(run open))) | ||
| 3189 | (delete-process proc))) | ||
| 3190 | server-proc)) | ||
| 3182 | t) | 3191 | t) |
| 3183 | (t nil))) | 3192 | (t nil))) |
| 3184 | 3193 | ||
| @@ -3189,9 +3198,7 @@ the message given by REASON." | |||
| 3189 | 3198 | ||
| 3190 | (defun erc-cmd-GQUIT (reason) | 3199 | (defun erc-cmd-GQUIT (reason) |
| 3191 | "Disconnect from all servers at once with the same quit REASON." | 3200 | "Disconnect from all servers at once with the same quit REASON." |
| 3192 | (erc-with-all-buffers-of-server nil #'(lambda () | 3201 | (erc-with-all-buffers-of-server nil #'erc-open-server-buffer-p |
| 3193 | (and (erc-server-buffer-p) | ||
| 3194 | (erc-server-process-alive))) | ||
| 3195 | (erc-cmd-QUIT reason))) | 3202 | (erc-cmd-QUIT reason))) |
| 3196 | 3203 | ||
| 3197 | (defalias 'erc-cmd-GQ 'erc-cmd-GQUIT) | 3204 | (defalias 'erc-cmd-GQ 'erc-cmd-GQUIT) |
| @@ -3199,8 +3206,17 @@ the message given by REASON." | |||
| 3199 | 3206 | ||
| 3200 | (defun erc-cmd-RECONNECT () | 3207 | (defun erc-cmd-RECONNECT () |
| 3201 | "Try to reconnect to the current IRC server." | 3208 | "Try to reconnect to the current IRC server." |
| 3202 | (setq erc-server-reconnect-count 0) | 3209 | (let ((buffer (or (erc-server-buffer) (current-buffer))) |
| 3203 | (erc-server-reconnect) | 3210 | (process nil)) |
| 3211 | (with-current-buffer (if (bufferp buffer) buffer (current-buffer)) | ||
| 3212 | (setq erc-server-quitting nil) | ||
| 3213 | (setq erc-server-reconnecting t) | ||
| 3214 | (setq erc-server-reconnect-count 0) | ||
| 3215 | (setq process (get-buffer-process (erc-server-buffer))) | ||
| 3216 | (if process | ||
| 3217 | (delete-process process) | ||
| 3218 | (erc-server-reconnect)) | ||
| 3219 | (setq erc-server-reconnecting nil))) | ||
| 3204 | t) | 3220 | t) |
| 3205 | 3221 | ||
| 3206 | (defun erc-cmd-SERVER (server) | 3222 | (defun erc-cmd-SERVER (server) |
| @@ -3373,7 +3389,7 @@ The ban list is fetched from the server if necessary." | |||
| 3373 | (setq erc-server-367-functions 'erc-banlist-store | 3389 | (setq erc-server-367-functions 'erc-banlist-store |
| 3374 | erc-channel-banlist nil) | 3390 | erc-channel-banlist nil) |
| 3375 | ;; fetch the ban list then callback | 3391 | ;; fetch the ban list then callback |
| 3376 | (with-current-buffer (erc-server-buffer) | 3392 | (erc-with-server-buffer |
| 3377 | (erc-once-with-server-event | 3393 | (erc-once-with-server-event |
| 3378 | 368 | 3394 | 368 |
| 3379 | `(with-current-buffer ,chnl-name | 3395 | `(with-current-buffer ,chnl-name |
| @@ -3443,7 +3459,7 @@ Unban all currently banned users in the current channel." | |||
| 3443 | (let ((old-367-hook erc-server-367-functions)) | 3459 | (let ((old-367-hook erc-server-367-functions)) |
| 3444 | (setq erc-server-367-functions 'erc-banlist-store) | 3460 | (setq erc-server-367-functions 'erc-banlist-store) |
| 3445 | ;; fetch the ban list then callback | 3461 | ;; fetch the ban list then callback |
| 3446 | (with-current-buffer (erc-server-buffer) | 3462 | (erc-with-server-buffer |
| 3447 | (erc-once-with-server-event | 3463 | (erc-once-with-server-event |
| 3448 | 368 | 3464 | 368 |
| 3449 | `(with-current-buffer ,chnl | 3465 | `(with-current-buffer ,chnl |
| @@ -3737,7 +3753,7 @@ To change how this query window is displayed, use `let' to bind | |||
| 3737 | (erc-update-mode-line) | 3753 | (erc-update-mode-line) |
| 3738 | buf)) | 3754 | buf)) |
| 3739 | 3755 | ||
| 3740 | (defcustom erc-auto-query nil | 3756 | (defcustom erc-auto-query 'bury |
| 3741 | "If non-nil, create a query buffer each time you receive a private message. | 3757 | "If non-nil, create a query buffer each time you receive a private message. |
| 3742 | 3758 | ||
| 3743 | If the buffer doesn't already exist it is created. This can be | 3759 | If the buffer doesn't already exist it is created. This can be |
| @@ -3811,7 +3827,7 @@ See also `erc-display-error-notice'." | |||
| 3811 | (setq erc-nick-change-attempt-count (+ erc-nick-change-attempt-count 1)) | 3827 | (setq erc-nick-change-attempt-count (+ erc-nick-change-attempt-count 1)) |
| 3812 | (let ((newnick (nth 1 erc-default-nicks)) | 3828 | (let ((newnick (nth 1 erc-default-nicks)) |
| 3813 | (nicklen (cdr (assoc "NICKLEN" | 3829 | (nicklen (cdr (assoc "NICKLEN" |
| 3814 | (with-current-buffer (erc-server-buffer) | 3830 | (erc-with-server-buffer |
| 3815 | erc-server-parameters))))) | 3831 | erc-server-parameters))))) |
| 3816 | (setq erc-bad-nick t) | 3832 | (setq erc-bad-nick t) |
| 3817 | ;; try to use a different nick | 3833 | ;; try to use a different nick |
| @@ -4101,24 +4117,29 @@ See also: `erc-echo-notice-in-user-buffers', | |||
| 4101 | "Run just after connection. | 4117 | "Run just after connection. |
| 4102 | 4118 | ||
| 4103 | Set user modes and run `erc-after-connect' hook." | 4119 | Set user modes and run `erc-after-connect' hook." |
| 4104 | (unless erc-server-connected ; only once per session | 4120 | (with-current-buffer (process-buffer proc) |
| 4105 | (let ((server (or erc-server-announced-name (erc-response.sender parsed))) | 4121 | (unless erc-server-connected ; only once per session |
| 4106 | (nick (car (erc-response.command-args parsed )))) | 4122 | (let ((server (or erc-server-announced-name |
| 4107 | (setq erc-server-connected t) | 4123 | (erc-response.sender parsed))) |
| 4108 | (erc-update-mode-line) | 4124 | (nick (car (erc-response.command-args parsed))) |
| 4109 | (erc-set-initial-user-mode nick) | 4125 | (buffer (process-buffer proc))) |
| 4110 | (erc-server-setup-periodical-server-ping) | 4126 | (setq erc-server-connected t) |
| 4111 | (run-hook-with-args 'erc-after-connect server nick)))) | 4127 | (erc-update-mode-line) |
| 4112 | 4128 | (erc-set-initial-user-mode nick buffer) | |
| 4113 | (defun erc-set-initial-user-mode (nick) | 4129 | (erc-server-setup-periodical-ping buffer) |
| 4114 | "If `erc-user-mode' is non-nil for NICK, set the user modes." | 4130 | (run-hook-with-args 'erc-after-connect server nick))))) |
| 4115 | (when erc-user-mode | 4131 | |
| 4116 | (let ((mode (if (functionp erc-user-mode) | 4132 | (defun erc-set-initial-user-mode (nick buffer) |
| 4117 | (funcall erc-user-mode) | 4133 | "If `erc-user-mode' is non-nil for NICK, set the user modes. |
| 4118 | erc-user-mode))) | 4134 | The server buffer is given by BUFFER." |
| 4119 | (when (stringp mode) | 4135 | (with-current-buffer buffer |
| 4120 | (erc-log (format "changing mode for %s to %s" nick mode)) | 4136 | (when erc-user-mode |
| 4121 | (erc-server-send (format "MODE %s %s" nick mode)))))) | 4137 | (let ((mode (if (functionp erc-user-mode) |
| 4138 | (funcall erc-user-mode) | ||
| 4139 | erc-user-mode))) | ||
| 4140 | (when (stringp mode) | ||
| 4141 | (erc-log (format "changing mode for %s to %s" nick mode)) | ||
| 4142 | (erc-server-send (format "MODE %s %s" nick mode))))))) | ||
| 4122 | 4143 | ||
| 4123 | (defun erc-display-error-notice (parsed string) | 4144 | (defun erc-display-error-notice (parsed string) |
| 4124 | "Display STRING as an error notice. | 4145 | "Display STRING as an error notice. |
| @@ -4345,14 +4366,12 @@ If non-nil, return from being away." | |||
| 4345 | erc-nick))) | 4366 | erc-nick))) |
| 4346 | (cond | 4367 | (cond |
| 4347 | (away-p | 4368 | (away-p |
| 4348 | (erc-with-all-buffers-of-server proc nil | 4369 | (setq erc-away (current-time))) |
| 4349 | (setq erc-away (current-time)))) | ||
| 4350 | (t | 4370 | (t |
| 4351 | (let ((away-time erc-away)) | 4371 | (let ((away-time erc-away)) |
| 4352 | ;; away must be set to NIL BEFORE sending anything to prevent | 4372 | ;; away must be set to NIL BEFORE sending anything to prevent |
| 4353 | ;; an infinite recursion | 4373 | ;; an infinite recursion |
| 4354 | (erc-with-all-buffers-of-server proc nil | 4374 | (setq erc-away nil) |
| 4355 | (setq erc-away nil)) | ||
| 4356 | (save-excursion | 4375 | (save-excursion |
| 4357 | (set-buffer (erc-active-buffer)) | 4376 | (set-buffer (erc-active-buffer)) |
| 4358 | (when erc-public-away-p | 4377 | (when erc-public-away-p |
| @@ -5037,8 +5056,9 @@ strings over to the next call." | |||
| 5037 | 5056 | ||
| 5038 | (defun erc-set-current-nick (nick) | 5057 | (defun erc-set-current-nick (nick) |
| 5039 | "Set the current nickname to NICK." | 5058 | "Set the current nickname to NICK." |
| 5040 | (with-current-buffer (or (erc-server-buffer) | 5059 | (with-current-buffer (if (buffer-live-p (erc-server-buffer)) |
| 5041 | (current-buffer)) | 5060 | (erc-server-buffer) |
| 5061 | (current-buffer)) | ||
| 5042 | (setq erc-server-current-nick nick))) | 5062 | (setq erc-server-current-nick nick))) |
| 5043 | 5063 | ||
| 5044 | (defun erc-current-nick () | 5064 | (defun erc-current-nick () |
| @@ -5119,7 +5139,7 @@ Takes a full SPEC of a user in the form \"nick!login@host\", and | |||
| 5119 | matches against all the regexp's in `erc-ignore-list'. If any | 5139 | matches against all the regexp's in `erc-ignore-list'. If any |
| 5120 | match, returns that regexp." | 5140 | match, returns that regexp." |
| 5121 | (catch 'found | 5141 | (catch 'found |
| 5122 | (dolist (ignored (with-current-buffer (erc-server-buffer) erc-ignore-list)) | 5142 | (dolist (ignored (erc-with-server-buffer erc-ignore-list)) |
| 5123 | (if (string-match ignored spec) | 5143 | (if (string-match ignored spec) |
| 5124 | (throw 'found ignored))))) | 5144 | (throw 'found ignored))))) |
| 5125 | 5145 | ||
| @@ -5673,12 +5693,12 @@ entry of `channel-members'." | |||
| 5673 | "")) | 5693 | "")) |
| 5674 | user)))) | 5694 | user)))) |
| 5675 | 5695 | ||
| 5676 | (defun erc-away-p () | 5696 | (defun erc-away-time () |
| 5677 | "Return t if the current ERC process is set away." | 5697 | "Return non-nil if the current ERC process is set away. |
| 5678 | (save-excursion | 5698 | |
| 5679 | (and (erc-server-buffer-live-p) | 5699 | In particular, the time that we were set away is returned. |
| 5680 | (set-buffer (process-buffer erc-server-process)) | 5700 | See `current-time' for details on the time format." |
| 5681 | erc-away))) | 5701 | (erc-with-server-buffer erc-away)) |
| 5682 | 5702 | ||
| 5683 | ;; Mode line handling | 5703 | ;; Mode line handling |
| 5684 | 5704 | ||
| @@ -5706,9 +5726,17 @@ The following characters are replaced: | |||
| 5706 | "A string to be formatted and shown in the header-line in `erc-mode'. | 5726 | "A string to be formatted and shown in the header-line in `erc-mode'. |
| 5707 | Only used starting in Emacs 21. | 5727 | Only used starting in Emacs 21. |
| 5708 | 5728 | ||
| 5729 | Set this to nil if you do not want the header line to be | ||
| 5730 | displayed. | ||
| 5731 | |||
| 5709 | See `erc-mode-line-format' for which characters are can be used." | 5732 | See `erc-mode-line-format' for which characters are can be used." |
| 5710 | :group 'erc-mode-line-and-header | 5733 | :group 'erc-mode-line-and-header |
| 5711 | :type 'string) | 5734 | :set (lambda (sym val) |
| 5735 | (set sym val) | ||
| 5736 | (when (fboundp 'erc-update-mode-line) | ||
| 5737 | (erc-update-mode-line nil))) | ||
| 5738 | :type '(choice (const :tag "Disabled" nil) | ||
| 5739 | string)) | ||
| 5712 | 5740 | ||
| 5713 | (defcustom erc-header-line-uses-help-echo-p t | 5741 | (defcustom erc-header-line-uses-help-echo-p t |
| 5714 | "Show the contents of the header line in the echo area or as a tooltip | 5742 | "Show the contents of the header line in the echo area or as a tooltip |
| @@ -5734,7 +5762,8 @@ Otherwise, use the `erc-header-line' face." | |||
| 5734 | 5762 | ||
| 5735 | (defcustom erc-common-server-suffixes | 5763 | (defcustom erc-common-server-suffixes |
| 5736 | '(("openprojects.net$" . "OPN") | 5764 | '(("openprojects.net$" . "OPN") |
| 5737 | ("freenode.net$" . "OPN")) | 5765 | ("freenode.net$" . "freenode") |
| 5766 | ("oftc.net$" . "OFTC")) | ||
| 5738 | "Alist of common server name suffixes. | 5767 | "Alist of common server name suffixes. |
| 5739 | This variable is used in mode-line display to save screen | 5768 | This variable is used in mode-line display to save screen |
| 5740 | real estate. Set it to nil if you want to avoid changing | 5769 | real estate. Set it to nil if you want to avoid changing |
| @@ -5786,9 +5815,7 @@ This should be a string with substitution variables recognized by | |||
| 5786 | (defun erc-format-away-status () | 5815 | (defun erc-format-away-status () |
| 5787 | "Return a formatted `erc-mode-line-away-status-format' | 5816 | "Return a formatted `erc-mode-line-away-status-format' |
| 5788 | if `erc-away' is non-nil." | 5817 | if `erc-away' is non-nil." |
| 5789 | (let ((a (when (erc-server-buffer-live-p) | 5818 | (let ((a (erc-away-time))) |
| 5790 | (with-current-buffer (process-buffer erc-server-process) | ||
| 5791 | erc-away)))) | ||
| 5792 | (if a | 5819 | (if a |
| 5793 | (format-time-string erc-mode-line-away-status-format a) | 5820 | (format-time-string erc-mode-line-away-status-format a) |
| 5794 | ""))) | 5821 | ""))) |
| @@ -5813,9 +5840,7 @@ if `erc-away' is non-nil." | |||
| 5813 | 5840 | ||
| 5814 | (defun erc-format-lag-time () | 5841 | (defun erc-format-lag-time () |
| 5815 | "Return the estimated lag time to server, `erc-server-lag'." | 5842 | "Return the estimated lag time to server, `erc-server-lag'." |
| 5816 | (let ((lag (when (erc-server-buffer-live-p) | 5843 | (let ((lag (erc-with-server-buffer erc-server-lag))) |
| 5817 | (with-current-buffer (process-buffer erc-server-process) | ||
| 5818 | erc-server-lag)))) | ||
| 5819 | (cond (lag (format "lag:%.0f" lag)) | 5844 | (cond (lag (format "lag:%.0f" lag)) |
| 5820 | (t "")))) | 5845 | (t "")))) |
| 5821 | 5846 | ||
| @@ -6137,7 +6162,8 @@ functions." | |||
| 6137 | (format "%s (%s@%s) has left channel %s%s" | 6162 | (format "%s (%s@%s) has left channel %s%s" |
| 6138 | nick user host channel | 6163 | nick user host channel |
| 6139 | (if (not (string= reason "")) | 6164 | (if (not (string= reason "")) |
| 6140 | (format ": %s" reason) | 6165 | (format ": %s" |
| 6166 | (erc-replace-regexp-in-string "%" "%%" reason)) | ||
| 6141 | ""))))) | 6167 | ""))))) |
| 6142 | 6168 | ||
| 6143 | 6169 | ||
| @@ -6232,6 +6258,13 @@ This function should be on `erc-kill-channel-hook'." | |||
| 6232 | "Find the next occurrence of the `erc-parsed' text property." | 6258 | "Find the next occurrence of the `erc-parsed' text property." |
| 6233 | (text-property-not-all (point-min) (point-max) 'erc-parsed nil)) | 6259 | (text-property-not-all (point-min) (point-max) 'erc-parsed nil)) |
| 6234 | 6260 | ||
| 6261 | (defun erc-restore-text-properties () | ||
| 6262 | "Restore the property 'erc-parsed for the region." | ||
| 6263 | (let ((parsed-posn (erc-find-parsed-property))) | ||
| 6264 | (put-text-property | ||
| 6265 | (point-min) (point-max) | ||
| 6266 | 'erc-parsed (when parsed-posn (erc-get-parsed-vector parsed-posn))))) | ||
| 6267 | |||
| 6235 | (defun erc-get-parsed-vector (point) | 6268 | (defun erc-get-parsed-vector (point) |
| 6236 | "Return the whole parsed vector on POINT." | 6269 | "Return the whole parsed vector on POINT." |
| 6237 | (get-text-property point 'erc-parsed)) | 6270 | (get-text-property point 'erc-parsed)) |
| @@ -6263,8 +6296,7 @@ Otherwise, connect to HOST:PORT as USER and /join CHANNEL." | |||
| 6263 | (lambda () | 6296 | (lambda () |
| 6264 | (and (string-equal erc-session-server host) | 6297 | (and (string-equal erc-session-server host) |
| 6265 | (= erc-session-port port) | 6298 | (= erc-session-port port) |
| 6266 | erc-server-connected | 6299 | (erc-open-server-buffer-p))))))) |
| 6267 | (eq (erc-server-buffer) (current-buffer)))))))) | ||
| 6268 | (with-current-buffer (or server-buffer (current-buffer)) | 6300 | (with-current-buffer (or server-buffer (current-buffer)) |
| 6269 | (if (and server-buffer channel) | 6301 | (if (and server-buffer channel) |
| 6270 | (erc-cmd-JOIN channel) | 6302 | (erc-cmd-JOIN channel) |
diff --git a/man/ChangeLog b/man/ChangeLog index 7431f616638..bcdbeac7bc4 100644 --- a/man/ChangeLog +++ b/man/ChangeLog | |||
| @@ -1,3 +1,7 @@ | |||
| 1 | 2007-04-01 Michael Olson <mwolson@gnu.org> | ||
| 2 | |||
| 3 | * erc.texi: Update for the ERC 5.2 release. | ||
| 4 | |||
| 1 | 2007-03-31 David Kastrup <dak@gnu.org> | 5 | 2007-03-31 David Kastrup <dak@gnu.org> |
| 2 | 6 | ||
| 3 | * woman.texi (Topic, Interface Options): Explain changes semantics of | 7 | * woman.texi (Topic, Interface Options): Explain changes semantics of |
diff --git a/man/erc.texi b/man/erc.texi index 60c682b892f..3f9f506bef8 100644 --- a/man/erc.texi +++ b/man/erc.texi | |||
| @@ -12,7 +12,7 @@ | |||
| 12 | @syncodeindex fn cp | 12 | @syncodeindex fn cp |
| 13 | 13 | ||
| 14 | @copying | 14 | @copying |
| 15 | This manual is for ERC version 5.2 stable pre-release. | 15 | This manual is for ERC version 5.2. |
| 16 | 16 | ||
| 17 | Copyright @copyright{} 2005, 2006, 2007 Free Software Foundation, Inc. | 17 | Copyright @copyright{} 2005, 2006, 2007 Free Software Foundation, Inc. |
| 18 | 18 | ||
| @@ -21,6 +21,9 @@ Permission is granted to copy, distribute and/or modify this document | |||
| 21 | under the terms of the GNU Free Documentation License, Version 1.2 or | 21 | under the terms of the GNU Free Documentation License, Version 1.2 or |
| 22 | any later version published by the Free Software Foundation; with no | 22 | any later version published by the Free Software Foundation; with no |
| 23 | Invariant Sections, Front-Cover texts, or Back-Cover Texts. | 23 | Invariant Sections, Front-Cover texts, or Back-Cover Texts. |
| 24 | |||
| 25 | All Emacs Lisp code contained in this document may be used, distributed, | ||
| 26 | and modified without restriction. | ||
| 24 | @end quotation | 27 | @end quotation |
| 25 | @end copying | 28 | @end copying |
| 26 | 29 | ||
| @@ -68,12 +71,16 @@ Obtaining ERC | |||
| 68 | * Releases:: Released versions of ERC. | 71 | * Releases:: Released versions of ERC. |
| 69 | * Development:: Latest unreleased development changes. | 72 | * Development:: Latest unreleased development changes. |
| 70 | 73 | ||
| 74 | Getting Started | ||
| 75 | |||
| 76 | * Sample Session:: Example of connecting to the #emacs channel | ||
| 77 | * Special Features:: Differences from standalone IRC clients | ||
| 78 | |||
| 71 | Advanced Usage | 79 | Advanced Usage |
| 72 | 80 | ||
| 73 | * Connecting:: Ways of connecting to an IRC server. | 81 | * Connecting:: Ways of connecting to an IRC server. |
| 74 | * Options:: Options that are available for ERC. | ||
| 75 | * Tips and Tricks:: Ways of enhancing your ERC experience. | ||
| 76 | * Sample Configuration:: An example configuration file. | 82 | * Sample Configuration:: An example configuration file. |
| 83 | * Options:: Options that are available for ERC. | ||
| 77 | 84 | ||
| 78 | @end detailmenu | 85 | @end detailmenu |
| 79 | @end menu | 86 | @end menu |
| @@ -111,8 +118,17 @@ It comes with the following capabilities enabled by default. | |||
| 111 | * Development:: Latest unreleased development changes. | 118 | * Development:: Latest unreleased development changes. |
| 112 | @end menu | 119 | @end menu |
| 113 | 120 | ||
| 114 | These sections may be skipped if you are using the version of ERC that | 121 | Note that some ERC files are not included with Emacs due to copyright or |
| 115 | comes with Emacs. | 122 | dependency issues. If desired, they may be found at the following |
| 123 | locations, or from your local GNU mirror. | ||
| 124 | |||
| 125 | @itemize @bullet | ||
| 126 | @item @uref{http://ftp.gnu.org/gnu/erc/erc-5.2-extras.tar.gz} | ||
| 127 | @item @uref{http://ftp.gnu.org/gnu/erc/erc-5.2-extras.zip} | ||
| 128 | @end itemize | ||
| 129 | |||
| 130 | The rest of this chapter may be skipped if you are using the version of | ||
| 131 | ERC that comes with Emacs. | ||
| 116 | 132 | ||
| 117 | @node Releases, Development, Obtaining ERC, Obtaining ERC | 133 | @node Releases, Development, Obtaining ERC, Obtaining ERC |
| 118 | @comment node-name, next, previous, up | 134 | @comment node-name, next, previous, up |
| @@ -131,7 +147,7 @@ available in the official Debian repository. | |||
| 131 | 147 | ||
| 132 | @cindex releases, from source | 148 | @cindex releases, from source |
| 133 | Alternatively, you can download the latest release from | 149 | Alternatively, you can download the latest release from |
| 134 | @uref{http://ftp.gnu.org/gnu/erc}. | 150 | @uref{http://ftp.gnu.org/gnu/erc}, or your local GNU mirror. |
| 135 | 151 | ||
| 136 | @node Development, , Releases, Obtaining ERC | 152 | @node Development, , Releases, Obtaining ERC |
| 137 | @comment node-name, next, previous, up | 153 | @comment node-name, next, previous, up |
| @@ -188,9 +204,9 @@ tla update | |||
| 188 | 204 | ||
| 189 | @end enumerate | 205 | @end enumerate |
| 190 | 206 | ||
| 191 | If you are new to Arch and want to learn more about developing with it, | 207 | If you are new to Arch and want to learn more about developing ERC with |
| 192 | you might find this tutorial helpful: | 208 | it, visit @uref{http://emacswiki.org/cgi-bin/wiki/ErcDevelopment} for |
| 193 | @uref{http://www.mwolson.org/projects/ArchTutorial.html}. | 209 | full instructions. |
| 194 | 210 | ||
| 195 | @subheading Development snapshots | 211 | @subheading Development snapshots |
| 196 | 212 | ||
| @@ -261,8 +277,6 @@ locations that require this. | |||
| 261 | @chapter Getting Started | 277 | @chapter Getting Started |
| 262 | @cindex settings | 278 | @cindex settings |
| 263 | 279 | ||
| 264 | @c PRE5_2: Mention .ercrc.el | ||
| 265 | |||
| 266 | To use ERC, add the directory containing its files to your | 280 | To use ERC, add the directory containing its files to your |
| 267 | @code{load-path} variable, in your @file{.emacs} file. Then, load ERC | 281 | @code{load-path} variable, in your @file{.emacs} file. Then, load ERC |
| 268 | itself. An example follows. | 282 | itself. An example follows. |
| @@ -274,20 +288,151 @@ itself. An example follows. | |||
| 274 | Once ERC is loaded, the command @kbd{M-x erc} will start ERC and | 288 | Once ERC is loaded, the command @kbd{M-x erc} will start ERC and |
| 275 | prompt for the server to connect to. | 289 | prompt for the server to connect to. |
| 276 | 290 | ||
| 291 | If you want to place ERC settings in their own file, you can place them | ||
| 292 | in @file{~/.emacs.d/.ercrc.el}, creating it if necessary. | ||
| 293 | |||
| 294 | If you would rather use the Customize interface to change how ERC works, | ||
| 295 | do @kbd{M-x customize-group RET erc RET}. In particular, ERC comes with | ||
| 296 | lots of modules that may be enabled or disabled; to select which ones | ||
| 297 | you want, do @kbd{M-x customize-variable RET erc-modules RET}. | ||
| 298 | |||
| 299 | @menu | ||
| 300 | * Sample Session:: Example of connecting to the #emacs channel | ||
| 301 | * Special Features:: Differences from standalone IRC clients | ||
| 302 | @end menu | ||
| 303 | |||
| 304 | @node Sample Session, Special Features, Getting Started, Getting Started | ||
| 305 | @comment node-name, next, previous, up | ||
| 306 | @section Sample Session | ||
| 307 | |||
| 308 | This is an example ERC session which shows how to connect to the #emacs | ||
| 309 | channel on Freenode. Another IRC channel on Freenode that may be of | ||
| 310 | interest is #erc, which is a channel where ERC users and developers hang | ||
| 311 | out. | ||
| 312 | |||
| 313 | @itemize @bullet | ||
| 314 | |||
| 315 | @item Connect to Freenode | ||
| 316 | |||
| 317 | Run @kbd{M-x erc}. Use ``irc.freenode.net'' as the IRC server, ``6667'' | ||
| 318 | as the port, and choose a nickname. | ||
| 319 | |||
| 320 | @item Get used to the interface | ||
| 321 | |||
| 322 | Switch to the ``irc.freenode.net:6667'' buffer, if you're not already | ||
| 323 | there. You will see first some messages about checking for ident, and | ||
| 324 | then a bunch of other messages that describe the current IRC server. | ||
| 325 | |||
| 326 | @item Join the #emacs channel | ||
| 327 | |||
| 328 | In that buffer, type ``/join SPC #emacs'' and hit @kbd{RET}. Depending | ||
| 329 | on how you've set up ERC, either a new buffer for ``#emacs'' will be | ||
| 330 | displayed, or a new buffer called ``#emacs'' will be created in the | ||
| 331 | background. If the latter, switch to the ``#emacs'' buffer. You will | ||
| 332 | see the channel topic and a list of the people who are currently on the | ||
| 333 | channel. | ||
| 334 | |||
| 335 | @item Register your nickname with Freenode | ||
| 336 | |||
| 337 | If you would like to be able to talk with people privately on the | ||
| 338 | Freenode network, you will have to ``register'' your nickname. To do | ||
| 339 | so, switch to the ``irc.freenode.net:6667'' buffer and type ``/msg | ||
| 340 | NickServ register <password>'', replacing ``<password>'' with your | ||
| 341 | desired password. It should tell you that the operation was successful. | ||
| 342 | |||
| 343 | @item Talk to people in the channel | ||
| 344 | |||
| 345 | If you switch back to the ``#emacs'' buffer, you can type a message, and | ||
| 346 | everyone on the channel will see it. | ||
| 347 | |||
| 348 | @item Open a query buffer to talk to someone | ||
| 349 | |||
| 350 | If you want to talk with someone in private (this should usually not be | ||
| 351 | done for technical help, only for personal questions), type ``/query | ||
| 352 | <nick>'', replacing ``<nick>'' with the nickname of the person you would | ||
| 353 | like to talk to. Depending on how ERC is set up, you will either see a | ||
| 354 | new buffer with the name of the person, or such a buffer will be created | ||
| 355 | in the background and you will have to switch to it. Begin typing | ||
| 356 | messages, and you will be able to have a conversation. | ||
| 357 | |||
| 358 | Note that if the other person is not registered, you will not be able to | ||
| 359 | talk with them. | ||
| 360 | |||
| 361 | @end itemize | ||
| 362 | |||
| 363 | @node Special Features, , Sample Session, Getting Started | ||
| 364 | @comment node-name, next, previous, up | ||
| 365 | @section Special Features | ||
| 366 | |||
| 367 | ERC has some features that distinguish it from some IRC clients. | ||
| 368 | |||
| 369 | @itemize @bullet | ||
| 370 | |||
| 371 | @item multiple channels and multiple servers | ||
| 372 | |||
| 373 | Every channel is put in a separate buffer. Several IRC servers may be | ||
| 374 | connected to at the same time. | ||
| 375 | |||
| 376 | @cindex query buffers | ||
| 377 | @item private message separation | ||
| 378 | |||
| 379 | Private conversations are treated as channels, and are put into separate | ||
| 380 | buffers in Emacs. We call these ``query buffers''. | ||
| 381 | |||
| 382 | @item highlighting | ||
| 383 | |||
| 384 | Some occurences of words can be highlighted, which makes it easier to | ||
| 385 | track different kinds of conversations. | ||
| 386 | |||
| 387 | @item notification | ||
| 388 | |||
| 389 | ERC can notify you that certain users are online. | ||
| 390 | |||
| 391 | @item channel tracking | ||
| 392 | |||
| 393 | Channels can be hidden and conversation continue in the background. You | ||
| 394 | are notified when something is said in such a channel that is not | ||
| 395 | currently visible. This makes it easy to get Real Work done while still | ||
| 396 | maintaining an IRC presence. | ||
| 397 | |||
| 398 | @item nick completion | ||
| 399 | |||
| 400 | ERC can complete words upon hitting @kbd{TAB}, which eases the writing | ||
| 401 | of nicknames in messages. | ||
| 402 | |||
| 403 | @cindex history ring | ||
| 404 | @item history | ||
| 405 | |||
| 406 | Past actions are kept in history rings for future use. To navigate a | ||
| 407 | history ring, hit @kbd{M-p} to go backwards and @kbd{M-n} to go | ||
| 408 | forwards. | ||
| 409 | |||
| 410 | @item multiple languages | ||
| 411 | |||
| 412 | Different channels and servers may have different language encodings. | ||
| 413 | |||
| 414 | In addition, it is possible to translate the messages that ERC uses into | ||
| 415 | multiple languages. Please contact the developers of ERC at | ||
| 416 | @email{erc-discuss@@gnu.org} if you are interested in helping with the | ||
| 417 | translation effort. | ||
| 418 | |||
| 419 | @item user scripting | ||
| 420 | |||
| 421 | Users can load scripts (e.g. auto greeting scripts) when ERC starts up. | ||
| 422 | |||
| 423 | It is also possible to make custom IRC commands, if you know a little | ||
| 424 | Emacs Lisp. Just make an Emacs Lisp function and call it | ||
| 425 | @code{erc-cmd-NEWCOMMAND}, where @code{NEWCOMMAND} is the name of the | ||
| 426 | new command in capital letters. | ||
| 427 | |||
| 428 | @item auto reconnect | ||
| 429 | |||
| 277 | If the connection goes away at some point, ERC will try to reconnect | 430 | If the connection goes away at some point, ERC will try to reconnect |
| 278 | automatically. If it fails to reconnect, and you want to try to | 431 | automatically. If it fails to reconnect, and you want to try to |
| 279 | manually reestablish the connection at some later point, switch to an | 432 | manually reestablish the connection at some later point, switch to an |
| 280 | ERC buffer and run the /RECONNECT command. | 433 | ERC buffer and run the @code{/RECONNECT} command. |
| 281 | 434 | ||
| 282 | @c PRE5_2: Sample session, including: | 435 | @end itemize |
| 283 | @c - connect to Freenode | ||
| 284 | @c - /join #emacs | ||
| 285 | @c - see messages flying past, point out topic lines, messages, channel | ||
| 286 | @c members | ||
| 287 | @c - identifying your nick with NickServ (most IRC servers have this) | ||
| 288 | @c - talking to the channel | ||
| 289 | @c - open a /query buffer to talk to someone (must identify first in | ||
| 290 | @c FreeNode) | ||
| 291 | 436 | ||
| 292 | 437 | ||
| 293 | @node Keystroke Summary, Modules, Getting Started, Top | 438 | @node Keystroke Summary, Modules, Getting Started, Top |
| @@ -439,6 +584,10 @@ Save buffers in logs | |||
| 439 | @item match | 584 | @item match |
| 440 | Highlight pals, fools, and other keywords | 585 | Highlight pals, fools, and other keywords |
| 441 | 586 | ||
| 587 | @cindex modules, menu | ||
| 588 | @item menu | ||
| 589 | Display a menu in ERC buffers | ||
| 590 | |||
| 442 | @cindex modules, netsplit | 591 | @cindex modules, netsplit |
| 443 | @item netsplit | 592 | @item netsplit |
| 444 | Detect netsplits | 593 | Detect netsplits |
| @@ -505,7 +654,7 @@ Translate morse code in messages | |||
| 505 | 654 | ||
| 506 | @end table | 655 | @end table |
| 507 | 656 | ||
| 508 | @c PRE5_2: Document every option of every module in its own subnode | 657 | @c PRE5_3: Document every option of every module in its own subnode |
| 509 | 658 | ||
| 510 | 659 | ||
| 511 | @node Advanced Usage, Getting Help and Reporting Bugs, Modules, Top | 660 | @node Advanced Usage, Getting Help and Reporting Bugs, Modules, Top |
| @@ -515,12 +664,11 @@ Translate morse code in messages | |||
| 515 | 664 | ||
| 516 | @menu | 665 | @menu |
| 517 | * Connecting:: Ways of connecting to an IRC server. | 666 | * Connecting:: Ways of connecting to an IRC server. |
| 518 | * Options:: Options that are available for ERC. | ||
| 519 | * Tips and Tricks:: Ways of enhancing your ERC experience. | ||
| 520 | * Sample Configuration:: An example configuration file. | 667 | * Sample Configuration:: An example configuration file. |
| 668 | * Options:: Options that are available for ERC. | ||
| 521 | @end menu | 669 | @end menu |
| 522 | 670 | ||
| 523 | @node Connecting, Options, Advanced Usage, Advanced Usage | 671 | @node Connecting, Sample Configuration, Advanced Usage, Advanced Usage |
| 524 | @comment node-name, next, previous, up | 672 | @comment node-name, next, previous, up |
| 525 | @section Connecting to an IRC Server | 673 | @section Connecting to an IRC Server |
| 526 | @cindex connecting | 674 | @cindex connecting |
| @@ -654,33 +802,97 @@ User full name. | |||
| 654 | This can be either a string or a function to call. | 802 | This can be either a string or a function to call. |
| 655 | @end defopt | 803 | @end defopt |
| 656 | 804 | ||
| 657 | @node Options, Tips and Tricks, Connecting, Advanced Usage | 805 | @node Sample Configuration, Options, Connecting, Advanced Usage |
| 658 | @comment node-name, next, previous, up | 806 | @comment node-name, next, previous, up |
| 659 | @section Options | 807 | @section Sample Configuration |
| 660 | @cindex options | 808 | @cindex configuration, sample |
| 661 | 809 | ||
| 662 | @c PRE5_2: (Node) Document every ERC option (module options go in | 810 | Here is an example of configuration settings for ERC. This can go into |
| 663 | @c previous chapter) | 811 | your Emacs configuration file. Everything after the @code{(require |
| 812 | 'erc)} command can optionally go into @file{~/.emacs.d/.ercrc.el}. | ||
| 664 | 813 | ||
| 665 | This section has not yet been written. | 814 | @lisp |
| 815 | ;;; Sample ERC configuration | ||
| 666 | 816 | ||
| 667 | @node Tips and Tricks, Sample Configuration, Options, Advanced Usage | 817 | ;; Add the ERC directory to load path -- you don't need this if you are |
| 668 | @comment node-name, next, previous, up | 818 | ;; using the version of ERC that comes with Emacs |
| 669 | @section Tips and Tricks | 819 | (add-to-list 'load-path "~/elisp/erc") |
| 670 | @cindex tips and tricks | ||
| 671 | 820 | ||
| 672 | @c PRE5_2: (Node) Tips and tricks | 821 | ;; Load ERC |
| 822 | (require 'erc) | ||
| 673 | 823 | ||
| 674 | This section has not yet been written. | 824 | ;; Load authentication info from an external source. Put sensitive |
| 825 | ;; passwords and the like in here. | ||
| 826 | (load "~/.emacs.d/.erc-auth") | ||
| 827 | |||
| 828 | ;; This is an example of how to make a new command. Type "/uptime" to | ||
| 829 | ;; use it. | ||
| 830 | (defun erc-cmd-UPTIME (&rest ignore) | ||
| 831 | "Display the uptime of the system, as well as some load-related | ||
| 832 | stuff, to the current ERC buffer." | ||
| 833 | (let ((uname-output | ||
| 834 | (replace-regexp-in-string | ||
| 835 | ", load average: " "] @{Load average@} [" | ||
| 836 | ;; Collapse spaces, remove | ||
| 837 | (replace-regexp-in-string | ||
| 838 | " +" " " | ||
| 839 | ;; Remove beginning and trailing whitespace | ||
| 840 | (replace-regexp-in-string | ||
| 841 | "^ +\\|[ \n]+$" "" | ||
| 842 | (shell-command-to-string "uptime")))))) | ||
| 843 | (erc-send-message | ||
| 844 | (concat "@{Uptime@} [" uname-output "]")))) | ||
| 845 | |||
| 846 | ;; This causes ERC to connect to the Freenode network upon hitting | ||
| 847 | ;; C-c e f. Replace MYNICK with your IRC nick. | ||
| 848 | (global-set-key "\C-cef" (lambda () (interactive) | ||
| 849 | (erc :server "irc.freenode.net" :port "6667" | ||
| 850 | :nick "MYNICK"))) | ||
| 851 | |||
| 852 | ;; This causes ERC to connect to the IRC server on your own machine (if | ||
| 853 | ;; you have one) upon hitting C-c e b. Replace MYNICK with your IRC | ||
| 854 | ;; nick. Often, people like to run bitlbee (http://bitlbee.org/) as an | ||
| 855 | ;; AIM/Jabber/MSN to IRC gateway, so that they can use ERC to chat with | ||
| 856 | ;; people on those networks. | ||
| 857 | (global-set-key "\C-ceb" (lambda () (interactive) | ||
| 858 | (erc :server "localhost" :port "6667" | ||
| 859 | :nick "MYNICK"))) | ||
| 860 | |||
| 861 | ;; Make C-c RET (or C-c C-RET) send messages instead of RET. This has | ||
| 862 | ;; been commented out to avoid confusing new users. | ||
| 863 | ;; (define-key erc-mode-map (kbd "RET") nil) | ||
| 864 | ;; (define-key erc-mode-map (kbd "C-c RET") 'erc-send-current-line) | ||
| 865 | ;; (define-key erc-mode-map (kbd "C-c C-RET") 'erc-send-current-line) | ||
| 866 | |||
| 867 | ;;; Options | ||
| 868 | |||
| 869 | ;; Join the #emacs and #erc channels whenever connecting to Freenode. | ||
| 870 | (setq erc-autojoin-channels-alist '(("freenode.net" "#emacs" "#erc"))) | ||
| 871 | |||
| 872 | ;; Interpret mIRC-style color commands in IRC chats | ||
| 873 | (setq erc-interpret-mirc-color t) | ||
| 874 | |||
| 875 | ;; The following are commented out by default, but users of other | ||
| 876 | ;; non-Emacs IRC clients might find them useful. | ||
| 877 | ;; Kill buffers for channels after /part | ||
| 878 | ;; (setq erc-kill-buffer-on-part t) | ||
| 879 | ;; Kill buffers for private queries after quitting the server | ||
| 880 | ;; (setq erc-kill-queries-on-quit t) | ||
| 881 | ;; Kill buffers for server messages after quitting the server | ||
| 882 | ;; (setq erc-kill-server-buffer-on-quit t) | ||
| 883 | @end lisp | ||
| 675 | 884 | ||
| 676 | @node Sample Configuration, , Tips and Tricks, Advanced Usage | 885 | @node Options, , Sample Configuration, Advanced Usage |
| 677 | @comment node-name, next, previous, up | 886 | @comment node-name, next, previous, up |
| 678 | @section Sample Configuration | 887 | @section Options |
| 679 | @cindex configuration, sample | 888 | @cindex options |
| 680 | 889 | ||
| 681 | @c PRE5_2: (Node) Sample configs | 890 | @c PRE5_3: (Node) Document every ERC option (module options go in |
| 891 | @c previous chapter) | ||
| 682 | 892 | ||
| 683 | This section has not yet been written. | 893 | This section has not yet been written. For now, the easiest way to |
| 894 | check out the available option for ERC is to do | ||
| 895 | @kbd{M-x customize-group erc RET}. | ||
| 684 | 896 | ||
| 685 | 897 | ||
| 686 | @node Getting Help and Reporting Bugs, History, Advanced Usage, Top | 898 | @node Getting Help and Reporting Bugs, History, Advanced Usage, Top |