diff options
| author | Karoly Lorentey | 2007-04-22 12:42:47 +0000 |
|---|---|---|
| committer | Karoly Lorentey | 2007-04-22 12:42:47 +0000 |
| commit | 9d0799072a0d09bc14a99eaf372b262d1ba61399 (patch) | |
| tree | 76acd4ae0559776a5ec27fbd5c25598285ec71d1 /lisp | |
| parent | e18c709364b095ea0be8ecabe458ac9a642a252f (diff) | |
| parent | a20becf321f023c6dc1831595712576d64e2ef4b (diff) | |
| download | emacs-9d0799072a0d09bc14a99eaf372b262d1ba61399.tar.gz emacs-9d0799072a0d09bc14a99eaf372b262d1ba61399.zip | |
Merged from emacs@sv.gnu.org
Patches applied:
* emacs@sv.gnu.org/emacs--devo--0--patch-674
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-675
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-676
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-677
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-678
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-679
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-680
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-681
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-682
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-683
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-684
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-685
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-686
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-687
Release ERC 5.2.
* emacs@sv.gnu.org/emacs--devo--0--patch-688
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-689
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-690
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-691
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-692
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-693
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-694
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-695
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-696
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-697
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-698
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-699
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-700
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-701
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-209
Merge from emacs--devo--0
* emacs@sv.gnu.org/gnus--rel--5.10--patch-210
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-211
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-212
Merge from emacs--devo--0
* emacs@sv.gnu.org/gnus--rel--5.10--patch-213
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-214
Merge from emacs--devo--0
* emacs@sv.gnu.org/gnus--rel--5.10--patch-215
Update from CVS
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-601
Diffstat (limited to 'lisp')
170 files changed, 5134 insertions, 2946 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 47b9b292aa7..9fc26846057 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,694 @@ | |||
| 1 | 2007-04-17 Glenn Morris <rgm@gnu.org> | ||
| 2 | |||
| 3 | * calendar/cal-dst.el (calendar-dst-find-startend): If YEAR cannot | ||
| 4 | be encoded, fall back to current year. | ||
| 5 | |||
| 6 | 2007-04-14 Kevin Ryde <user42@zip.com.au> | ||
| 7 | |||
| 8 | * arc-mode.el (archive-lzh-summarize): Only apply the "downcase if | ||
| 9 | all upcase" rule to OS-ID 0 "generic". Always downcase for OS-ID | ||
| 10 | M "MSDOS". | ||
| 11 | |||
| 12 | 2007-04-16 Chong Yidong <cyd@stupidchicken.com> | ||
| 13 | |||
| 14 | * progmodes/python.el (python-end-of-block): Avoid looping forever | ||
| 15 | if python-next-statement fails. | ||
| 16 | |||
| 17 | 2007-04-16 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> | ||
| 18 | |||
| 19 | * textmodes/bibtex.el (bibtex-entry-field-alist): Use defcustom. | ||
| 20 | |||
| 21 | 2007-04-16 Dan Nicolaescu <dann@ics.uci.edu> | ||
| 22 | |||
| 23 | * progmodes/perl-mode.el (perl-indent-level): Mark as safe local var. | ||
| 24 | * progmodes/cperl-mode.el (cperl-indent-level): Likewise. | ||
| 25 | |||
| 26 | 2007-04-15 Jay Belanger <belanger@truman.edu> | ||
| 27 | |||
| 28 | * calc/calc.el (calc-version): New function. | ||
| 29 | (calc-trail-mode): Shorten the title. | ||
| 30 | |||
| 31 | 2007-04-15 Chong Yidong <cyd@stupidchicken.com> | ||
| 32 | |||
| 33 | * mail/footnote.el (footnote-style): Clarify docstring to state | ||
| 34 | that customizing this only applies to future footnotes. | ||
| 35 | |||
| 36 | 2007-04-15 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> | ||
| 37 | |||
| 38 | * textmodes/bibtex.el (bibtex-field-list): Use functionp. | ||
| 39 | (bibtex-make-field): Check that INIT is a string. Use functionp. | ||
| 40 | |||
| 41 | 2007-04-14 Glenn Morris <rgm@gnu.org> | ||
| 42 | |||
| 43 | * complete.el (PC-goto-end): New buffer-local variable. | ||
| 44 | (PC-do-completion-end): Make buffer-local. | ||
| 45 | (partial-completion-mode) <choose-completion-string-functions>: | ||
| 46 | Do not go to the end of the minibuffer if PC-goto-end is non-nil. | ||
| 47 | (PC-do-completion): New optional fourth argument GOTO-END. Add a | ||
| 48 | doc string. Set PC-goto-end for choose-completion. | ||
| 49 | (PC-lisp-complete-symbol): Pass non-nil GOTO-END arg to | ||
| 50 | PC-do-completion. | ||
| 51 | |||
| 52 | * textmodes/bibtex.el (bibtex-insert-kill): Pass non-nil NODELIM | ||
| 53 | arg to bibtex-make-field. | ||
| 54 | (bibtex-make-field): Add optional fourth arg NODELIM. Insert | ||
| 55 | delimiters around INIT unless this arg is non-nil. | ||
| 56 | |||
| 57 | 2007-04-14 Nick Roberts <nickrob@snap.net.nz> | ||
| 58 | |||
| 59 | * tmm.el (tmm-get-keybind): Use copy-sequence to ensure that the | ||
| 60 | global map isn't modified | ||
| 61 | |||
| 62 | 2007-04-14 Glenn Morris <rgm@gnu.org> | ||
| 63 | |||
| 64 | * calendar/appt.el (appt-disp-window): Do not split small windows. | ||
| 65 | Suggested by Jeff Miller <jmiller@cablespeed.com>. | ||
| 66 | |||
| 67 | 2007-04-13 Chong Yidong <cyd@stupidchicken.com> | ||
| 68 | |||
| 69 | * progmodes/compile.el (compilation-start): Revert 2007-03-25 | ||
| 70 | change. | ||
| 71 | |||
| 72 | * files.el: Ditto. | ||
| 73 | |||
| 74 | 2007-04-13 Juanma Barranquero <lekktu@gmail.com> | ||
| 75 | |||
| 76 | * cus-edit.el (minibuffer, auto-save): Fix typos in docstrings. | ||
| 77 | |||
| 78 | * term.el (term-buffer-maximum-size, term-exec, term-escape-char) | ||
| 79 | (term-set-escape-char, term-termcap-format, term-get-old-input-default) | ||
| 80 | (term-skip-prompt, term-send-string, term-send-region, term-pager-page) | ||
| 81 | (term-pager-help): Fix typos in docstrings. | ||
| 82 | |||
| 83 | * wid-edit.el (widget-documentation): Fix typo in docstring. | ||
| 84 | |||
| 85 | * progmodes/ebnf2ps.el (ebnf-insert-style, ebnf-merge-style): | ||
| 86 | Fix typos in error messages. | ||
| 87 | |||
| 88 | 2007-04-13 Martin Rudalics <rudalics@gmx.at> | ||
| 89 | |||
| 90 | * emacs-lisp/edebug.el (edebug-pop-to-buffer): Don't select | ||
| 91 | window marked as dedicated. | ||
| 92 | |||
| 93 | * mail/footnote.el (footnote-latin-string): New variable. | ||
| 94 | (footnote-latin-regexp): Redefined as regexp alternative. | ||
| 95 | (Footnote-latin): Use footnote-latin-string instead of | ||
| 96 | footnote-latin-regexp. | ||
| 97 | |||
| 98 | 2007-04-13 Glenn Morris <rgm@gnu.org> | ||
| 99 | |||
| 100 | * tmm.el (tmm-get-keybind): Use car-safe to avoid errors with | ||
| 101 | inherited keymaps. | ||
| 102 | |||
| 103 | 2007-04-12 Chong Yidong <cyd@stupidchicken.com> | ||
| 104 | |||
| 105 | * outline.el (outline-get-next-sibling): Clarify docstring. | ||
| 106 | (outline-get-last-sibling): Handle case where we are at the first | ||
| 107 | heading. Clarify docstring. | ||
| 108 | |||
| 109 | 2007-04-12 Nick Roberts <nickrob@snap.net.nz> | ||
| 110 | |||
| 111 | * progmodes/gud.el (gud-minor-mode-map): Make go button same | ||
| 112 | length as stop button to lessen flicker. | ||
| 113 | (jdb): Add gud-print. | ||
| 114 | (gud-find-expr): Jdb prints the expression with the value, so | ||
| 115 | don't insert it in the output. | ||
| 116 | |||
| 117 | 2007-04-11 Jason Rumney <jasonr@gnu.org> | ||
| 118 | |||
| 119 | * dnd.el (dnd-get-local-file-name): Decode both upper and lower | ||
| 120 | case hex. Do not try to decode non-hex letters. | ||
| 121 | |||
| 122 | 2007-04-11 Markus Triska <markus.triska@gmx.at> | ||
| 123 | |||
| 124 | * emacs-lisp/byte-opt.el (byte-optimize-backward-char) | ||
| 125 | (byte-optimize-backward-word): Remove (move to bytecomp.el). | ||
| 126 | (byte-optimize-form-code-walker): Evaluate pure function calls if | ||
| 127 | possible. | ||
| 128 | (byte-optimize-all-constp): New function. | ||
| 129 | |||
| 130 | * emacs-lisp/bytecomp.el (byte-compile-char-before): Improve | ||
| 131 | numeric argument case. | ||
| 132 | (byte-compile-backward-char, byte-compile-backward-word): New | ||
| 133 | functions, performing rewriting previously done in byte-opt.el. | ||
| 134 | Fix their "Fixme" item (restriction to numeric arguments). | ||
| 135 | |||
| 136 | 2007-04-11 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 137 | |||
| 138 | * desktop.el (desktop-save, desktop-create-buffer): Replace mapcar with | ||
| 139 | dolist. | ||
| 140 | (after-init-hook): Don't quote lambda. | ||
| 141 | (desktop-first-buffer): Don't wrap it in eval-when-compile. | ||
| 142 | (desktop-internal-v2s): Remove unused var `el'. | ||
| 143 | (desktop-buffer-major-mode, desktop-buffer-locals): Move out of | ||
| 144 | desktop-restore-file-buffer. | ||
| 145 | (desktop-buffer-ok-count, desktop-buffer-fail-count): Move out of | ||
| 146 | desktop-create-buffer. | ||
| 147 | |||
| 148 | 2007-04-10 Chong Yidong <cyd@stupidchicken.com> | ||
| 149 | |||
| 150 | * woman.el (woman-decode-buffer): Postpone macro-set check... | ||
| 151 | (woman-decode-region): ...to here. | ||
| 152 | |||
| 153 | 2007-04-10 Thien-Thi Nguyen <ttn@gnu.org> | ||
| 154 | |||
| 155 | * startup.el (tty-handle-args): Use %S to log ARGS. | ||
| 156 | |||
| 157 | 2007-04-10 Glenn Morris <rgm@gnu.org> | ||
| 158 | |||
| 159 | * dframe.el (dframe-frame-mode): Do not set auto-show-mode, since | ||
| 160 | it is obsolete and has no effect. | ||
| 161 | |||
| 162 | * dos-w32.el (default-buffer-file-type): Add defvar to quieten | ||
| 163 | byte-compiler. | ||
| 164 | |||
| 165 | * progmodes/cperl-mode.el (cperl-mode): Remove unnecessary call to | ||
| 166 | obsolete function make-local-hook. | ||
| 167 | |||
| 168 | * progmodes/dcl-mode.el (top-level): Move (require 'tempo) to | ||
| 169 | start to quieten byte-compiler. | ||
| 170 | |||
| 171 | 2007-04-10 Markus Triska <markus.triska@gmx.at> | ||
| 172 | |||
| 173 | * emacs-lisp/byte-opt.el (byte-optimize-char-before): Remove (move | ||
| 174 | to bytecomp.el as byte-compile-char-before). | ||
| 175 | * emacs-lisp/bytecomp.el (byte-compile-char-before): | ||
| 176 | New function (modified replacement for byte-optimize-char-before in | ||
| 177 | byte-opt.el). | ||
| 178 | |||
| 179 | 2007-04-09 Alan Mackenzie <acm@muc.de> | ||
| 180 | |||
| 181 | * startup.el (inhibit-splash-screen): Emphatically state that it | ||
| 182 | can't be set in site-start.el. | ||
| 183 | |||
| 184 | 2007-04-09 Masatake YAMATO <jet@gyve.org> | ||
| 185 | |||
| 186 | * progmodes/cc-subword.el (c-capitalize-subword): More closely | ||
| 187 | mimic the behavior of `capitalize-word'. Do not move point with a | ||
| 188 | negative argument. Based on tiny change by Paul Curry. | ||
| 189 | |||
| 190 | 2007-04-09 Paul Curry <dashteacup@gmail.com> (tiny change) | ||
| 191 | |||
| 192 | * progmodes/cc-subword.el (c-downcase-subword, c-upcase-subword): | ||
| 193 | Don't move point if ARG is negative. | ||
| 194 | |||
| 195 | 2007-04-09 Alan Mackenzie <acm@muc.de> | ||
| 196 | |||
| 197 | Changes to make `narrow-to-defun' and `mark-defun' work properly | ||
| 198 | in CC Mode: | ||
| 199 | |||
| 200 | * progmodes/cc-defs.el (c-beginning-of-defun-1): | ||
| 201 | * progmodes/cc-cmds.el (c-beginning-of-defun, c-end-of-defun): | ||
| 202 | Bind beginning/end-of-defun-function to nil around calls to | ||
| 203 | beginning/end-of-defun. | ||
| 204 | |||
| 205 | * progmodes/cc-langs.el (beginning-of-defun-function) | ||
| 206 | (end-of-defun-function): New c-lang-setvar's. | ||
| 207 | |||
| 208 | * progmodes/cc-awk.el (c-awk-beginning-of-defun): Add "(or arg | ||
| 209 | (setq arg 1))" to enable non-interactive call. | ||
| 210 | |||
| 211 | 2007-04-09 Eli Zaretskii <eliz@gnu.org> | ||
| 212 | |||
| 213 | * simple.el (set-mark-command): Doc fix. | ||
| 214 | |||
| 215 | 2007-04-09 Nick Roberts <nickrob@snap.net.nz> | ||
| 216 | |||
| 217 | * progmodes/gud.el (gdb): Restore existing session if user | ||
| 218 | tries to start a second one in graphical mode. | ||
| 219 | |||
| 220 | 2007-04-08 Martin Rudalics <rudalics@gmx.at> | ||
| 221 | |||
| 222 | * cus-start.el <scroll-preserve-screen-position>: Add choices. | ||
| 223 | |||
| 224 | 2007-04-08 Johan Bockg,Ae(Brd <bojohan+news@dd.chalmers.se> | ||
| 225 | |||
| 226 | * term/xterm.el (terminal-init-xterm): Fix key definitions. | ||
| 227 | Add binding for C-M-SPC. | ||
| 228 | |||
| 229 | 2007-04-08 Richard Stallman <rms@gnu.org> | ||
| 230 | |||
| 231 | * pcomplete.el (pcomplete-read-event): One single definition, | ||
| 232 | and not a defsubst. | ||
| 233 | |||
| 234 | 2007-04-08 Chong Yidong <cyd@stupidchicken.com> | ||
| 235 | |||
| 236 | * progmodes/cc-cmds.el (c-end-of-defun): Tidy up, to eliminate | ||
| 237 | byte-compiler warning "value unused". | ||
| 238 | |||
| 239 | 2007-04-08 Andreas Schwab <schwab@suse.de> | ||
| 240 | |||
| 241 | * term/xterm.el (terminal-init-xterm): Add bindings for keypad keys. | ||
| 242 | |||
| 243 | 2007-04-07 Glenn Morris <rgm@gnu.org> | ||
| 244 | |||
| 245 | * calendar/calendar.el (diary-font-lock-keywords, diary-live-p): | ||
| 246 | Autoload these functions. | ||
| 247 | (diary-date-forms): Add a custom :set form. | ||
| 248 | |||
| 249 | * calendar/diary-lib.el (diary-set-maybe-redraw): Move definition | ||
| 250 | before first use. | ||
| 251 | (diary-font-lock-keywords): New function with old code for | ||
| 252 | initialization of variable of same name. | ||
| 253 | |||
| 254 | 2007-04-07 David Hansen <david.hansen@gmx.net> (tiny change) | ||
| 255 | |||
| 256 | * progmodes/cc-cmds.el (c-electric-paren): Fix space-before-funcall | ||
| 257 | clean-up: only insert space when on identifier, etc. | ||
| 258 | |||
| 259 | 2007-04-07 Chong Yidong <cyd@stupidchicken.com> | ||
| 260 | |||
| 261 | * progmodes/grep.el (grep-find-use-xargs): Rewrite docstring. | ||
| 262 | |||
| 263 | * net/tls.el (open-tls-stream): Properly handle case where there | ||
| 264 | is no associated buffer. | ||
| 265 | |||
| 266 | 2007-04-07 Glenn Morris <rgm@gnu.org> | ||
| 267 | |||
| 268 | * ffap.el (ffap-file-at-point): Lower the priority of the | ||
| 269 | ffap-ftp-sans-slash-regexp check. | ||
| 270 | |||
| 271 | 2007-04-06 Alan Mackenzie <acm@muc.de> | ||
| 272 | |||
| 273 | Fix fontification of labels, and other things with ":". | ||
| 274 | |||
| 275 | * progmodes/cc-engine.el (c-forward-label): The function now | ||
| 276 | returns 'goto-target, 'qt-2kwds-colon, 'qt-1kwd-colon, as well as | ||
| 277 | the former t. | ||
| 278 | |||
| 279 | * progmodes/cc-fonts.el (c-font-lock-declarations): Interpret the | ||
| 280 | new return code from c-forward-label, fontifying tokens properly. | ||
| 281 | Add some general comments throughout the file. | ||
| 282 | |||
| 283 | 2007-04-06 Chong Yidong <cyd@stupidchicken.com> | ||
| 284 | |||
| 285 | * textmodes/flyspell.el (flyspell-duplicate, flyspell-incorrect): | ||
| 286 | Revert 2006-01-27 change. | ||
| 287 | |||
| 288 | * diff-mode.el (diff-mode): Revert 2007-03-04 change. | ||
| 289 | |||
| 290 | * menu-bar.el (menu-bar-tools-menu): Revert 2003-07-25 change. | ||
| 291 | |||
| 292 | * desktop.el (desktop-create-buffer, desktop-save): | ||
| 293 | Revert 2004-11-12 change for lack of copyright papers. | ||
| 294 | |||
| 295 | * dired-x.el (dired-guess-shell-case-fold-search): Delete var. | ||
| 296 | (dired-guess-default): Respect case. | ||
| 297 | |||
| 298 | * isearch.el (isearch-forward): Revert 1998-08-26 doc change. | ||
| 299 | |||
| 300 | * emacs-lisp/byte-opt.el (byte-optimize-pure-func): Remove function; | ||
| 301 | was originally checked in as byte-optimize-concat on 1997-11-02. | ||
| 302 | |||
| 303 | * mail/sendmail.el (mail-text, mail-mode): Revert extant pieces of | ||
| 304 | 1995-05-19 doc changes. | ||
| 305 | |||
| 306 | 2007-04-06 Kim F. Storm <storm@cua.dk> | ||
| 307 | |||
| 308 | * loadhist.el (read-feature): Reimplement. New optional arg LOADED-P. | ||
| 309 | (unload-feature): Update interactive spec accordingly. | ||
| 310 | |||
| 311 | * progmodes/grep.el (grep-program): Remove commentary about zgrep. | ||
| 312 | |||
| 313 | 2007-04-06 John Paul Wallington <jpw@pobox.com> | ||
| 314 | |||
| 315 | * subr.el (with-case-table): Use `make-symbol' to avoid variable | ||
| 316 | capture. Restore the table in the same buffer. | ||
| 317 | |||
| 318 | * font-lock.el (lisp-font-lock-keywords-2): Add `with-case-table'. | ||
| 319 | |||
| 320 | 2007-04-05 Chong Yidong <cyd@stupidchicken.com> | ||
| 321 | |||
| 322 | * emacs-lisp/byte-opt.el (byte-optimize-form-code-walker): | ||
| 323 | Print entire form. | ||
| 324 | |||
| 325 | 2007-04-05 Nick Roberts <nickrob@snap.net.nz> | ||
| 326 | |||
| 327 | * progmodes/gdb-ui.el (breakpoint-disabled): Tweak face (again) | ||
| 328 | for low-color displays. | ||
| 329 | |||
| 330 | 2007-04-05 Glenn Morris <rgm@gnu.org> | ||
| 331 | |||
| 332 | * play/5x5.el, play/animate.el, play/dissociate.el, play/doctor.el, | ||
| 333 | * play/gomoku.el, play/landmark.el, play/tetris.el, play/zone.el: | ||
| 334 | Seed random number generator on loading. | ||
| 335 | |||
| 336 | * emacs-lisp/authors.el (top-level): Provide self. | ||
| 337 | |||
| 338 | * play/animate.el (top-level): Provide self. | ||
| 339 | |||
| 340 | 2007-04-04 Alan Mackenzie <acm@muc.de> | ||
| 341 | |||
| 342 | * progmodes/cc-vars.el (c-special-indent-hook): Amend doc-string | ||
| 343 | to mention c-syntactic-indentation. | ||
| 344 | |||
| 345 | 2007-04-04 Chong Yidong <cyd@stupidchicken.com> | ||
| 346 | |||
| 347 | * subr.el (with-case-table): New macro. | ||
| 348 | |||
| 349 | * international/mule.el (ascii-case-table): New var. | ||
| 350 | |||
| 351 | * mail/smtpmail.el (smtpmail-via-smtp): Use ascii-case-table when | ||
| 352 | downcasing. | ||
| 353 | |||
| 354 | 2007-04-03 Nick Roberts <nickrob@snap.net.nz> | ||
| 355 | |||
| 356 | * progmodes/gud.el (gud-minor-mode-map): Simplify. | ||
| 357 | |||
| 358 | * t-mouse.el (t-mouse-make-event-element): Don't use the left edge | ||
| 359 | of the window if we're outside it e.g menu-bar. | ||
| 360 | |||
| 361 | * xt-mouse.el (xterm-mouse-event): Don't use the left edge of the | ||
| 362 | window if we're outside it e.g menu-bar. | ||
| 363 | |||
| 364 | 2007-04-03 Eli Zaretskii <eliz@gnu.org> | ||
| 365 | |||
| 366 | * mail/rmail.el (rmail-convert-to-babyl-format): Don't try to | ||
| 367 | decode base-64 encoded body if its content-type is something other | ||
| 368 | than text/* or message/*. | ||
| 369 | |||
| 370 | 2007-04-03 Juanma Barranquero <lekktu@gmail.com> | ||
| 371 | |||
| 372 | * simple.el (activate-mark-hook): Fix typo in docstring. | ||
| 373 | |||
| 374 | 2007-04-03 Nick Roberts <nickrob@snap.net.nz> | ||
| 375 | |||
| 376 | * tmm.el (tmm-c-prompt): Initialize. | ||
| 377 | (tmm-menubar): Deal with extended menu-items at top level. | ||
| 378 | (tmm-get-keybind): Handle bindings redefined/undefined locally. | ||
| 379 | (tmm-prompt): Handle visibility of top level menu-items. | ||
| 380 | |||
| 381 | * progmodes/gud.el (gud-menu-map): Simplify. | ||
| 382 | (gud-minor-mode-map): Add tool-bar like bindings to the text mode | ||
| 383 | menubar. | ||
| 384 | |||
| 385 | 2007-04-02 Chong Yidong <cyd@stupidchicken.com> | ||
| 386 | |||
| 387 | * mail/smtpmail.el (smtpmail-via-smtp): Revert last change. | ||
| 388 | |||
| 389 | * comint.el (comint-send-input): Widen the buffer first. | ||
| 390 | |||
| 391 | * info.el (Info-fontify-maximum-menu-size): Revert to 100000. | ||
| 392 | |||
| 393 | 2007-04-01 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 394 | |||
| 395 | * emacs-lisp/lisp-mode.el (lisp-fill-paragraph): Only obey | ||
| 396 | emacs-lisp-docstring-fill-column in emacs-lisp-mode. | ||
| 397 | |||
| 398 | * newcomment.el (comment-search-forward): Discard comment starters | ||
| 399 | before point. | ||
| 400 | |||
| 401 | 2007-04-01 Guanpeng Xu <herberteuler@hotmail.com> | ||
| 402 | |||
| 403 | * mouse.el (mouse-set-secondary): Update mouse-secondary-overlay. | ||
| 404 | |||
| 405 | 2007-04-01 Chong Yidong <cyd@stupidchicken.com> | ||
| 406 | |||
| 407 | * mail/smtpmail.el (smtpmail-via-smtp): Use standard case table | ||
| 408 | when downcasing. | ||
| 409 | |||
| 410 | * button.el (previous-button): Rewrite to account for adjacent buttons. | ||
| 411 | |||
| 412 | 2007-04-01 J.D. Smith <jdsmith@as.arizona.edu> | ||
| 413 | |||
| 414 | * progmodes/idlwave.el (idlwave-auto-fill): | ||
| 415 | Revert paragraph-separate change. | ||
| 416 | |||
| 417 | * progmodes/idlw-shell.el (idlwave-shell-break-in): | ||
| 418 | Simplify module calc. | ||
| 419 | (idlwave-shell-set-bp-in-module): Compute module. | ||
| 420 | |||
| 421 | 2007-03-31 Glenn Morris <rgm@gnu.org> | ||
| 422 | |||
| 423 | * emacs-lisp/timer.el (run-at-time): Doc fix. | ||
| 424 | |||
| 425 | * emacs-lisp/warnings.el (display-warning): If we create the | ||
| 426 | buffer displaying the warning, disable undo there. | ||
| 427 | |||
| 428 | 2007-03-31 Michael Albinus <michael.albinus@gmx.de> | ||
| 429 | |||
| 430 | * net/tramp.el (tramp-register-file-name-handler) | ||
| 431 | (tramp-register-completion-file-name-handler): New defsubst, | ||
| 432 | derived from `tramp-register-file-name-handlers'. The split is | ||
| 433 | necessary because Tramp's file name handlers must be registered at | ||
| 434 | different startup places. | ||
| 435 | |||
| 436 | 2007-03-31 Chong Yidong <cyd@stupidchicken.com> | ||
| 437 | |||
| 438 | * progmodes/hideshow.el (turn-off-hideshow): New function. | ||
| 439 | (hs-minor-mode): Use it instead of a lambda expression in | ||
| 440 | change-major-mode-hook. | ||
| 441 | |||
| 442 | 2007-03-31 David Kastrup <dak@gnu.org> | ||
| 443 | |||
| 444 | * woman.el (woman-Cyg-to-Win): Don't convert cons cells | ||
| 445 | corresponding to MANPATH_MAP entries. | ||
| 446 | (woman-man.conf-path, woman-parse-man.conf): Doc fix. | ||
| 447 | (woman-parse-man.conf): Use more discriminating man.conf name. | ||
| 448 | (woman-parse-man.conf): Parse MANPATH_MAP entries. | ||
| 449 | (woman-manpath): Doc fix and type fix. | ||
| 450 | (woman-cached-data): Check for MANPATH_MAP entries. | ||
| 451 | (woman-expand-directory-path): Treat MANPATH_MAP entries. | ||
| 452 | |||
| 453 | 2007-03-31 Stuart Herring <herring@lanl.gov> | ||
| 454 | |||
| 455 | * emacs-lisp/sregex.el (sregexq): Doc fix. | ||
| 456 | |||
| 457 | 2007-03-31 Markus Triska <markus.triska@gmx.at> | ||
| 458 | |||
| 459 | * flymake.el (flymake-err-line-patterns): Doc fix. | ||
| 460 | |||
| 461 | 2007-03-30 Reiner Steib <Reiner.Steib@gmx.de> | ||
| 462 | |||
| 463 | * info.el (info-tool-bar-map): Use "exit" for Info-exit. | ||
| 464 | Move to the right. | ||
| 465 | |||
| 466 | 2007-03-30 Alan Mackenzie <acm@muc.de> | ||
| 467 | |||
| 468 | * progmodes/cc-cmds.el (c-forward-to-nth-EOF-}): Fix EOB bug. | ||
| 469 | |||
| 470 | 2007-03-30 Thien-Thi Nguyen <ttn@gnu.org> | ||
| 471 | |||
| 472 | * emacs-lisp/ewoc.el (ewoc--insert-new-node): Take additional arg DLL. | ||
| 473 | Use it, passed in explicitly, instead of from the dynamic binding. | ||
| 474 | (ewoc-create, ewoc-enter-before): Update to use new call sequence. | ||
| 475 | |||
| 476 | 2007-03-30 Juanma Barranquero <lekktu@gmail.com> | ||
| 477 | |||
| 478 | * simple.el (blink-matching-open): When in minibuffer, don't | ||
| 479 | search for a match inside the prompt. | ||
| 480 | |||
| 481 | 2007-03-30 Nick Roberts <nickrob@snap.net.nz> | ||
| 482 | |||
| 483 | * tmm.el (tmm-menubar): Select the right menu item with the mouse. | ||
| 484 | (tmm-prompt): Don't make the mouse user select the first menu | ||
| 485 | item twice. | ||
| 486 | |||
| 487 | 2007-03-30 Chong Yidong <cyd@stupidchicken.com> | ||
| 488 | |||
| 489 | * eshell/esh-proc.el (eshell/kill): Tweak regexp to recognize | ||
| 490 | SIGUSR1 and SIGUSR2. | ||
| 491 | |||
| 492 | 2007-03-29 Kim F. Storm <storm@cua.dk> | ||
| 493 | |||
| 494 | * ido.el (ido-read-internal): When reading file or dir, only override | ||
| 495 | minibuffer-local-filename-completion-map, otherwise only override | ||
| 496 | minibuffer-local-completion-map. | ||
| 497 | |||
| 498 | 2007-03-29 Glenn Morris <rgm@gnu.org> | ||
| 499 | |||
| 500 | * complete.el (partial-completion-mode): Set PC-do-completion-end | ||
| 501 | to nil after use. | ||
| 502 | (PC-lisp-complete-symbol): Create and use a marker at `end', | ||
| 503 | rather than using point-marker. | ||
| 504 | |||
| 505 | 2007-03-28 Chong Yidong <cyd@stupidchicken.com> | ||
| 506 | |||
| 507 | * simple.el (next-error-highlight): Doc fix. | ||
| 508 | (compose-mail): Revert 2007-03-19 change. | ||
| 509 | |||
| 510 | 2007-03-28 Richard Stallman <rms@gnu.org> | ||
| 511 | |||
| 512 | * emacs-lisp/edebug.el (edebug-display): Don't go to | ||
| 513 | edebug-outside-buffer if it is dead. | ||
| 514 | |||
| 515 | 2007-03-28 Juanma Barranquero <lekktu@gmail.com> | ||
| 516 | |||
| 517 | * view.el (view-mode): Fix typos in docstring. | ||
| 518 | |||
| 519 | 2007-03-28 Stephen Berman <Stephen.Berman@gmx.net> | ||
| 520 | |||
| 521 | * recentf.el (recentf-save-file): Add a custom :set function. | ||
| 522 | |||
| 523 | 2007-03-28 Glenn Morris <rgm@gnu.org> | ||
| 524 | |||
| 525 | * complete.el (PC-do-completion-end): New variable. | ||
| 526 | (partial-completion-mode) <choose-completion-string-functions>: | ||
| 527 | Use PC-do-completion-end in the non-minibuffer case to replace the | ||
| 528 | correct amount of text. | ||
| 529 | (PC-do-completion): Set PC-do-completion-end for c-c-s-f. | ||
| 530 | (PC-lisp-complete-symbol): Give marker the after-insertion type, | ||
| 531 | to deal with improvements inserted after point. | ||
| 532 | |||
| 533 | 2007-03-28 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 534 | |||
| 535 | * button.el (make-text-button): Add explicit `button' property. | ||
| 536 | (default-button): Don't put a `button' property on it. | ||
| 537 | |||
| 538 | * progmodes/python.el (python-mode): Skip comments when parsing. | ||
| 539 | |||
| 540 | * vc-arch.el (vc-with-current-file-buffer): New macro. | ||
| 541 | (vc-arch-file-source-p): Use it to avoid infloop. | ||
| 542 | |||
| 543 | 2007-03-28 David Hansen <david.hansen@gmx.net> (tiny change) | ||
| 544 | |||
| 545 | * emacs-lisp/lisp.el (lisp-complete-symbol): | ||
| 546 | Fix call to get-buffer-window to find windows in other frames. | ||
| 547 | |||
| 548 | 2007-03-28 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 549 | |||
| 550 | * comint.el (comint-proc-query, comint-dynamic-list-completions): | ||
| 551 | Fix calls to get-buffer-window to find windows in other frames. | ||
| 552 | Reported by David Hansen <david.hansen@gmx.net>. | ||
| 553 | |||
| 554 | 2007-03-27 Kevin Ryde <user42@zip.com.au> | ||
| 555 | |||
| 556 | * info.el (Info-display-images-node): On a text-only terminal, | ||
| 557 | show the "text" or "alt" parts of the image blobs. | ||
| 558 | |||
| 559 | 2007-03-27 Glenn Morris <rgm@gnu.org> | ||
| 560 | |||
| 561 | * complete.el (PC-do-completion): Compute completion-base-size in | ||
| 562 | the non-filename case, rather than setting to nil. | ||
| 563 | (PC-lisp-complete-end): New variable. | ||
| 564 | (PC-lisp-complete-symbol): Use PC-lisp-complete-end to store the | ||
| 565 | original end in a series of consecutive invocations. | ||
| 566 | |||
| 567 | * calendar/calendar.el (calendar-mode-hook): Declare it. | ||
| 568 | |||
| 569 | * calendar/diary-lib.el (diary-live-p): Do not check for | ||
| 570 | diary-selective-display. | ||
| 571 | |||
| 572 | 2007-03-26 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 573 | |||
| 574 | * replace.el (occur-next-error): *Occur* might not be displayed in the | ||
| 575 | selected frame. Reported by David Hansen <david.hansen@gmx.net>. | ||
| 576 | |||
| 577 | 2007-03-26 Richard Stallman <rms@gnu.org> | ||
| 578 | |||
| 579 | * textmodes/flyspell.el (flyspell-large-region): | ||
| 580 | Use ispell-call-process-region. | ||
| 581 | |||
| 582 | 2007-03-26 Johan Bockg,Ae(Brd <bojohan+sf@dd.chalmers.se> | ||
| 583 | |||
| 584 | * emacs-lisp/bytecomp.el (byte-compile-file-form-defmumble): | ||
| 585 | Use prin1 instead of princ. | ||
| 586 | |||
| 587 | 2007-03-25 Chong Yidong <cyd@stupidchicken.com> | ||
| 588 | |||
| 589 | * faces.el (face-set-after-frame-default): Revert 2007-03-10 change. | ||
| 590 | Merge in X resources before global face. | ||
| 591 | |||
| 592 | * progmodes/compile.el (compilation-start): Save compilation-directory | ||
| 593 | rather than default-directory as local var. | ||
| 594 | (compilation-directory): Mark as safe local var. | ||
| 595 | |||
| 596 | * files.el: Don't mark default-directory as a safe local var. | ||
| 597 | |||
| 598 | 2007-03-25 Alan Mackenzie <acm@muc.de> | ||
| 599 | |||
| 600 | * progmodes/cc-mode.el (c-before-change): Fix BOB bug. | ||
| 601 | * progmodes/cc-engine.el: Fix typo. | ||
| 602 | |||
| 603 | 2007-03-25 Juri Linkov <juri@jurta.org> | ||
| 604 | |||
| 605 | * compare-w.el (compare-windows): Rename customization group | ||
| 606 | `compare-w' to `compare-windows'. | ||
| 607 | (compare-windows-whitespace, compare-ignore-whitespace) | ||
| 608 | (compare-ignore-case, compare-windows-sync) | ||
| 609 | (compare-windows-sync-string-size, compare-windows-recenter) | ||
| 610 | (compare-windows-highlight, compare-windows): Change group name in | ||
| 611 | the `group' tag from `compare-w' to `compare-windows'. | ||
| 612 | (compare-windows-sync): Add option `nil' for no sync. Doc fix. | ||
| 613 | |||
| 614 | 2007-03-24 Markus Triska <markus.triska@gmx.at> | ||
| 615 | |||
| 616 | * expand.el: Change example to always enable abbrev-mode, | ||
| 617 | and remove redundant `function'. | ||
| 618 | (expand-abbrev-hook): Add autoload cookie. | ||
| 619 | |||
| 620 | 2007-03-24 Ryan Yeske <rcyeske@gmail.com> | ||
| 621 | |||
| 622 | * emacs-lisp/testcover.el (testcover-start, testcover-end) | ||
| 623 | (testcover-mark-all, testcover-unmark-all): Add prompts to | ||
| 624 | interactive specs. | ||
| 625 | |||
| 626 | 2007-03-24 Jason Rumney <jasonr@gnu.org> | ||
| 627 | |||
| 628 | * autorevert.el (find-file-hook, auto-revert-tail-mode): | ||
| 629 | Use file size in bytes for auto-revert-tail-pos not characters. | ||
| 630 | |||
| 631 | 2007-03-24 Thien-Thi Nguyen <ttn@gnu.org> | ||
| 632 | |||
| 633 | * vc-rcs.el (vc-rcs-annotate-command): | ||
| 634 | Set text property :vc-annotate-prefix on the annotation text. | ||
| 635 | (vc-rcs-annotate-time): Instead of searching for ": ", | ||
| 636 | search for end of text propertized with :vc-annotate-prefix. | ||
| 637 | |||
| 638 | 2007-03-24 Martin Rudalics <rudalics@gmx.at> | ||
| 639 | |||
| 640 | * whitespace.el (top level): Remove calls putting | ||
| 641 | permanent-local nil property since these are no-ops. | ||
| 642 | |||
| 643 | * man.el (Man-support-local-filenames): Assure that | ||
| 644 | default-directory exists when doing call-process. | ||
| 645 | |||
| 646 | 2007-03-23 David Vazquez <xeos00@gmail.com> (tiny change) | ||
| 647 | |||
| 648 | * progmodes/m4-mode.el (m4-m4-buffer, m4-m4-region): | ||
| 649 | Fix omission bug: Use m4-program-options to construct shell command. | ||
| 650 | |||
| 651 | 2007-03-23 David Kastrup <dak@gnu.org> | ||
| 652 | |||
| 653 | * progmodes/cc-mode.el (c-make-emacs-variables-local): | ||
| 654 | Use `mapcar' rather than `mapcan' to silence compiler warning. | ||
| 655 | |||
| 656 | 2007-03-22 Ralf Angeli <angeli@caeruleus.net> | ||
| 657 | |||
| 658 | * textmodes/reftex.el, textmodes/reftex-vars.el, | ||
| 659 | * textmodes/reftex-toc.el, textmodes/reftex-sel.el, | ||
| 660 | * textmodes/reftex-ref.el, textmodes/reftex-parse.el, | ||
| 661 | * textmodes/reftex-index.el, textmodes/reftex-global.el, | ||
| 662 | * textmodes/reftex-dcr.el, textmodes/reftex-cite.el, | ||
| 663 | * textmodes/reftex-auc.el: Add maintainer address. | ||
| 664 | |||
| 665 | 2007-03-22 Carsten Dominik <dominik@science.uva.nl> | ||
| 666 | |||
| 667 | * textmodes/org.el (org-agenda-mode, org-table-edit-formulas): | ||
| 668 | Make sure that `global-font-lock-mode' does not turn on font-lock | ||
| 669 | in these buffers. | ||
| 670 | |||
| 671 | 2007-03-21 Kim F. Storm <storm@cua.dk> | ||
| 672 | |||
| 673 | * xt-mouse.el (xt-mouse-epoch): New variable. | ||
| 674 | (xterm-mouse-event): Use float-time. | ||
| 675 | |||
| 676 | 2007-03-21 Nick Roberts <nickrob@snap.net.nz> | ||
| 677 | |||
| 678 | * xt-mouse.el (xterm-mouse-event): Compute a timestamp using | ||
| 679 | current-time. | ||
| 680 | |||
| 681 | 2007-03-21 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 682 | |||
| 683 | * complete.el (read-file-name-internal): Don't add the final > if the | ||
| 684 | completion is not finished (re-application of this patch, which was | ||
| 685 | accidentally undone by Eli). | ||
| 686 | |||
| 687 | 2007-03-21 Chong Yidong <cyd@stupidchicken.com> | ||
| 688 | |||
| 689 | * emulation/viper.el (viper-non-hook-settings): Handle mouse | ||
| 690 | clicks in describe-key and describe-key-briefly advice a little better. | ||
| 691 | |||
| 1 | 2007-03-21 Juanma Barranquero <lekktu@gmail.com> | 692 | 2007-03-21 Juanma Barranquero <lekktu@gmail.com> |
| 2 | 693 | ||
| 3 | * server.el (server-process-filter): Cancel any pending isearch. | 694 | * server.el (server-process-filter): Cancel any pending isearch. |
| @@ -71,8 +762,8 @@ | |||
| 71 | 762 | ||
| 72 | 2007-03-19 Martin Rudalics <rudalics@gmx.at> | 763 | 2007-03-19 Martin Rudalics <rudalics@gmx.at> |
| 73 | 764 | ||
| 74 | * font-lock.el (lisp-font-lock-keywords-1): Highlight | 765 | * font-lock.el (lisp-font-lock-keywords-1): |
| 75 | define-globalized-minor-mode as a keyword. | 766 | Highlight define-globalized-minor-mode as a keyword. |
| 76 | 767 | ||
| 77 | 2007-03-19 Kim F. Storm <storm@cua.dk> | 768 | 2007-03-19 Kim F. Storm <storm@cua.dk> |
| 78 | 769 | ||
| @@ -110,8 +801,7 @@ | |||
| 110 | 2007-03-18 Detlev Zundel <dzu@gnu.org> | 801 | 2007-03-18 Detlev Zundel <dzu@gnu.org> |
| 111 | 802 | ||
| 112 | * emacs-lisp/re-builder.el (reb-update-overlays): Do not mark | 803 | * emacs-lisp/re-builder.el (reb-update-overlays): Do not mark |
| 113 | zero-width regexps as invalid but rather at least count them | 804 | zero-width regexps as invalid but rather at least count them correctly. |
| 114 | correctly. | ||
| 115 | 805 | ||
| 116 | 2007-03-18 Thien-Thi Nguyen <ttn@gnu.org> | 806 | 2007-03-18 Thien-Thi Nguyen <ttn@gnu.org> |
| 117 | 807 | ||
| @@ -143,8 +833,8 @@ | |||
| 143 | 833 | ||
| 144 | 2007-03-17 Chong Yidong <cyd@stupidchicken.com> | 834 | 2007-03-17 Chong Yidong <cyd@stupidchicken.com> |
| 145 | 835 | ||
| 146 | * simple.el (line-move-1): Respect | 836 | * simple.el (line-move-1): |
| 147 | `inhibit-line-move-field-capture' property. | 837 | Respect `inhibit-line-move-field-capture' property. |
| 148 | 838 | ||
| 149 | 2007-03-13 Chong Yidong <cyd@stupidchicken.com> | 839 | 2007-03-13 Chong Yidong <cyd@stupidchicken.com> |
| 150 | 840 | ||
| @@ -157,7 +847,7 @@ | |||
| 157 | 2007-03-12 Lawrence Mitchell <wence@gmx.li> (tiny change) | 847 | 2007-03-12 Lawrence Mitchell <wence@gmx.li> (tiny change) |
| 158 | 848 | ||
| 159 | * tempo.el (tempo-insert): Deal with 'r> if it appears | 849 | * tempo.el (tempo-insert): Deal with 'r> if it appears |
| 160 | specified with a prompt argument. | 850 | specified with a prompt argument. |
| 161 | 851 | ||
| 162 | 2007-03-12 Carsten Dominik <dominik@science.uva.nl> | 852 | 2007-03-12 Carsten Dominik <dominik@science.uva.nl> |
| 163 | 853 | ||
| @@ -403,7 +1093,7 @@ | |||
| 403 | * emacs-lisp/lisp-mode.el (calculate-lisp-indent): | 1093 | * emacs-lisp/lisp-mode.el (calculate-lisp-indent): |
| 404 | Redo previous change. | 1094 | Redo previous change. |
| 405 | 1095 | ||
| 406 | 2007-03-04 Kevin Rodgers <kevin.d.rodgers@gmail.com> (tiny change) | 1096 | 2007-03-04 Kevin Rodgers <kevin.d.rodgers@gmail.com> (tiny change) |
| 407 | 1097 | ||
| 408 | * diff-mode.el (diff-mode): Doc fix. | 1098 | * diff-mode.el (diff-mode): Doc fix. |
| 409 | 1099 | ||
| @@ -493,7 +1183,7 @@ | |||
| 493 | * ps-print.el: Replace (defvar VAR nil) by (defvar VAR). | 1183 | * ps-print.el: Replace (defvar VAR nil) by (defvar VAR). |
| 494 | (ps-setup): Print which Emacsen is running ps-print package. | 1184 | (ps-setup): Print which Emacsen is running ps-print package. |
| 495 | 1185 | ||
| 496 | 2007-03-01 Stuart Herring <herring@lanl.gov> (tiny change) | 1186 | 2007-03-01 Stuart Herring <herring@lanl.gov> |
| 497 | 1187 | ||
| 498 | * files.el (set-auto-mode-0): Use `indirect-function'. | 1188 | * files.el (set-auto-mode-0): Use `indirect-function'. |
| 499 | (hack-one-local-variable): Don't reapply current major mode. | 1189 | (hack-one-local-variable): Don't reapply current major mode. |
| @@ -537,7 +1227,7 @@ | |||
| 537 | 1227 | ||
| 538 | * help.el (where-is): Fail gracefully when not passed a command. | 1228 | * help.el (where-is): Fail gracefully when not passed a command. |
| 539 | 1229 | ||
| 540 | 2007-02-28 Stuart Herring <herring@lanl.gov> (tiny change) | 1230 | 2007-02-28 Stuart Herring <herring@lanl.gov> |
| 541 | 1231 | ||
| 542 | * find-lisp.el (find-lisp-default-directory-predicate): | 1232 | * find-lisp.el (find-lisp-default-directory-predicate): |
| 543 | Fix bug: Do symlink check on expanded filename. | 1233 | Fix bug: Do symlink check on expanded filename. |
| @@ -1437,7 +2127,7 @@ | |||
| 1437 | 2007-01-27 Guanpeng Xu <herberteuler@hotmail.com> | 2127 | 2007-01-27 Guanpeng Xu <herberteuler@hotmail.com> |
| 1438 | 2128 | ||
| 1439 | * add-log.el (add-log-current-defun): Skip the semicolon ``;'' for | 2129 | * add-log.el (add-log-current-defun): Skip the semicolon ``;'' for |
| 1440 | enum/union/struct/class definition. | 2130 | enum/union/struct/class definition. |
| 1441 | Revert change to call `forward-sexp' multiple times. | 2131 | Revert change to call `forward-sexp' multiple times. |
| 1442 | 2132 | ||
| 1443 | 2007-01-27 Chong Yidong <cyd@stupidchicken.com> | 2133 | 2007-01-27 Chong Yidong <cyd@stupidchicken.com> |
| @@ -2044,7 +2734,7 @@ | |||
| 2044 | * international/mule-cmds.el (select-safe-coding-system-interactively): | 2734 | * international/mule-cmds.el (select-safe-coding-system-interactively): |
| 2045 | Fix message. | 2735 | Fix message. |
| 2046 | 2736 | ||
| 2047 | 2006-12-30 Kevin Rodgers <kevin.d.rodgers@gmail.com> (tiny change) | 2737 | 2006-12-30 Kevin Rodgers <kevin.d.rodgers@gmail.com> (tiny change) |
| 2048 | 2738 | ||
| 2049 | * files.el (backup-buffer): Show entire backup file name in msg. | 2739 | * files.el (backup-buffer): Show entire backup file name in msg. |
| 2050 | 2740 | ||
| @@ -2501,20 +3191,20 @@ | |||
| 2501 | 2006-12-09 Martin Rudalics <rudalics@gmx.at> | 3191 | 2006-12-09 Martin Rudalics <rudalics@gmx.at> |
| 2502 | 3192 | ||
| 2503 | * wdired.el (wdired-change-to-wdired-mode, wdired-finish-edit) | 3193 | * wdired.el (wdired-change-to-wdired-mode, wdired-finish-edit) |
| 2504 | (wdired-search-and-rename): Simplify code. | 3194 | (wdired-search-and-rename): Simplify code. |
| 2505 | (wdired-preprocess-files, wdired-preprocess-perms): Make | 3195 | (wdired-preprocess-files, wdired-preprocess-perms): Make |
| 2506 | read-only property of preceding character rear-nonsticky to | 3196 | read-only property of preceding character rear-nonsticky to |
| 2507 | avoid that it can be modified. Put old-name and old-link | 3197 | avoid that it can be modified. Put old-name and old-link |
| 2508 | properties on character preceding name and replace | 3198 | properties on character preceding name and replace |
| 2509 | put-text-property by add-text-properties. | 3199 | put-text-property by add-text-properties. |
| 2510 | (wdired-get-filename, wdired-get-previous-link): Get old-name | 3200 | (wdired-get-filename, wdired-get-previous-link): Get old-name |
| 2511 | and old-link properties from character preceding name and | 3201 | and old-link properties from character preceding name and |
| 2512 | simplify code. | 3202 | simplify code. |
| 2513 | (wdired-preprocess-perms, wdired-set-bit, wdired-toggle-bit) | 3203 | (wdired-preprocess-perms, wdired-set-bit, wdired-toggle-bit) |
| 2514 | (wdired-perms-to-number): Make local-map property | 3204 | (wdired-perms-to-number): Make local-map property |
| 2515 | rear-nonsticky to avoid that text following permissions may be | 3205 | rear-nonsticky to avoid that text following permissions may be |
| 2516 | modified. Use add-text-properties instead of put-text-property | 3206 | modified. Use add-text-properties instead of put-text-property |
| 2517 | when changing a permission bit. | 3207 | when changing a permission bit. |
| 2518 | (wdired-change-to-dired-mode): Remove stickiness properties. | 3208 | (wdired-change-to-dired-mode): Remove stickiness properties. |
| 2519 | 3209 | ||
| 2520 | 2006-12-09 Juanma Barranquero <lekktu@gmail.com> | 3210 | 2006-12-09 Juanma Barranquero <lekktu@gmail.com> |
| @@ -12650,7 +13340,7 @@ | |||
| 12650 | English aspell dictionary is installed, use the first entry of | 13340 | English aspell dictionary is installed, use the first entry of |
| 12651 | ispell-dictionary-alist-1. | 13341 | ispell-dictionary-alist-1. |
| 12652 | 13342 | ||
| 12653 | 2006-01-27 Kevin Rodgers <ihs_4664@yahoo.com> (tiny change) | 13343 | 2006-01-27 Kevin Rodgers <ihs_4664@yahoo.com> (tiny change) |
| 12654 | 13344 | ||
| 12655 | * textmodes/flyspell.el (flyspell-incorrect, flyspell-duplicate): | 13345 | * textmodes/flyspell.el (flyspell-incorrect, flyspell-duplicate): |
| 12656 | Doc fix. | 13346 | Doc fix. |
| @@ -14672,7 +15362,7 @@ | |||
| 14672 | (hi-lock-find-patterns, hi-lock-font-lock-hook): | 15362 | (hi-lock-find-patterns, hi-lock-font-lock-hook): |
| 14673 | Replace hi-lock-buffer-mode with hi-lock-mode. | 15363 | Replace hi-lock-buffer-mode with hi-lock-mode. |
| 14674 | 15364 | ||
| 14675 | 2005-12-10 Kevin Rodgers <ihs_4664@yahoo.com> (tiny change) | 15365 | 2005-12-10 Kevin Rodgers <ihs_4664@yahoo.com> (tiny change) |
| 14676 | 15366 | ||
| 14677 | * emacs-lisp/lisp.el (lisp-complete-symbol): Regenerate the | 15367 | * emacs-lisp/lisp.el (lisp-complete-symbol): Regenerate the |
| 14678 | completion list, even after a partial completion has been | 15368 | completion list, even after a partial completion has been |
diff --git a/lisp/arc-mode.el b/lisp/arc-mode.el index 1b0f3a3d584..8630d3e8b06 100644 --- a/lisp/arc-mode.el +++ b/lisp/arc-mode.el | |||
| @@ -1415,7 +1415,7 @@ This doesn't recover lost files, it just undoes changes in the buffer itself." | |||
| 1415 | (time2 (archive-l-e (+ p 17) 2)) ;and UNIX format in level 2 header.) | 1415 | (time2 (archive-l-e (+ p 17) 2)) ;and UNIX format in level 2 header.) |
| 1416 | (hdrlvl (char-after (+ p 20))) ;header level | 1416 | (hdrlvl (char-after (+ p 20))) ;header level |
| 1417 | thsize ;total header size (base + extensions) | 1417 | thsize ;total header size (base + extensions) |
| 1418 | fnlen efnname fiddle ifnname width p2 | 1418 | fnlen efnname osid fiddle ifnname width p2 |
| 1419 | neh ;beginning of next extension header (level 1 and 2) | 1419 | neh ;beginning of next extension header (level 1 and 2) |
| 1420 | mode modestr uid gid text dir prname | 1420 | mode modestr uid gid text dir prname |
| 1421 | gname uname modtime moddate) | 1421 | gname uname modtime moddate) |
| @@ -1474,7 +1474,22 @@ This doesn't recover lost files, it just undoes changes in the buffer itself." | |||
| 1474 | (setq thsize (- neh p)))) | 1474 | (setq thsize (- neh p)))) |
| 1475 | (if (= hdrlvl 0) ;total header size | 1475 | (if (= hdrlvl 0) ;total header size |
| 1476 | (setq thsize hsize)) | 1476 | (setq thsize hsize)) |
| 1477 | (setq fiddle (if efnname (string= efnname (upcase efnname)))) | 1477 | ;; OS ID field not present in level 0 header, use code 0 "generic" |
| 1478 | ;; in that case as per lha program header.c get_header() | ||
| 1479 | (setq osid (cond ((= hdrlvl 0) 0) | ||
| 1480 | ((= hdrlvl 1) (char-after (+ p 22 fnlen 2))) | ||
| 1481 | ((= hdrlvl 2) (char-after (+ p 23))))) | ||
| 1482 | ;; Filename fiddling must follow the lha program, otherwise the name | ||
| 1483 | ;; passed to "lha pq" etc won't match (which for an extract silently | ||
| 1484 | ;; results in no output). As of version 1.14i it goes from the OS ID, | ||
| 1485 | ;; - For 'M' MSDOS: msdos_to_unix_filename() downcases always, and | ||
| 1486 | ;; converts "\" to "/". | ||
| 1487 | ;; - For 0 generic: generic_to_unix_filename() downcases if there's | ||
| 1488 | ;; no lower case already present, and converts "\" to "/". | ||
| 1489 | ;; - For 'm' MacOS: macos_to_unix_filename() changes "/" to ":" and | ||
| 1490 | ;; ":" to "/" | ||
| 1491 | (setq fiddle (cond ((= ?M osid) t) | ||
| 1492 | ((= 0 osid) (string= efnname (upcase efnname))))) | ||
| 1478 | (setq ifnname (if fiddle (downcase efnname) efnname)) | 1493 | (setq ifnname (if fiddle (downcase efnname) efnname)) |
| 1479 | (setq prname (if dir (concat dir ifnname) ifnname)) | 1494 | (setq prname (if dir (concat dir ifnname) ifnname)) |
| 1480 | (setq width (if prname (string-width prname) 0)) | 1495 | (setq width (if prname (string-width prname) 0)) |
diff --git a/lisp/autorevert.el b/lisp/autorevert.el index bd9d6fe76e8..170ca4b88c2 100644 --- a/lisp/autorevert.el +++ b/lisp/autorevert.el | |||
| @@ -278,7 +278,7 @@ the list of old buffers.") | |||
| 278 | (add-hook 'find-file-hook | 278 | (add-hook 'find-file-hook |
| 279 | (lambda () | 279 | (lambda () |
| 280 | (set (make-local-variable 'auto-revert-tail-pos) | 280 | (set (make-local-variable 'auto-revert-tail-pos) |
| 281 | (save-restriction (widen) (1- (point-max)))))) | 281 | (nth 7 (file-attributes buffer-file-name))))) |
| 282 | 282 | ||
| 283 | ;; Functions: | 283 | ;; Functions: |
| 284 | 284 | ||
| @@ -341,7 +341,7 @@ Use `auto-revert-mode' for changes other than appends!" | |||
| 341 | (add-hook 'before-save-hook (lambda () (auto-revert-tail-mode 0)) nil t) | 341 | (add-hook 'before-save-hook (lambda () (auto-revert-tail-mode 0)) nil t) |
| 342 | (or (local-variable-p 'auto-revert-tail-pos) ; don't lose prior position | 342 | (or (local-variable-p 'auto-revert-tail-pos) ; don't lose prior position |
| 343 | (set (make-local-variable 'auto-revert-tail-pos) | 343 | (set (make-local-variable 'auto-revert-tail-pos) |
| 344 | (save-restriction (widen) (1- (point-max))))) | 344 | (nth 7 (file-attributes buffer-file-name)))) |
| 345 | ;; let auto-revert-mode set up the mechanism for us if it isn't already | 345 | ;; let auto-revert-mode set up the mechanism for us if it isn't already |
| 346 | (or auto-revert-mode | 346 | (or auto-revert-mode |
| 347 | (let ((auto-revert-tail-mode t)) | 347 | (let ((auto-revert-tail-mode t)) |
diff --git a/lisp/button.el b/lisp/button.el index d3c4cd8ea9e..423aef5f78f 100644 --- a/lisp/button.el +++ b/lisp/button.el | |||
| @@ -89,9 +89,6 @@ Mode-specific keymaps may want to use this as their parent keymap.") | |||
| 89 | ;; Prevent insertions adjacent to the text-property buttons from | 89 | ;; Prevent insertions adjacent to the text-property buttons from |
| 90 | ;; inheriting its properties. | 90 | ;; inheriting its properties. |
| 91 | (put 'default-button 'rear-nonsticky t) | 91 | (put 'default-button 'rear-nonsticky t) |
| 92 | ;; Text property buttons don't have a `button' property of their own, so | ||
| 93 | ;; they inherit this. | ||
| 94 | (put 'default-button 'button t) | ||
| 95 | 92 | ||
| 96 | ;; A `category-symbol' property for the default button type | 93 | ;; A `category-symbol' property for the default button type |
| 97 | (put 'button 'button-category-symbol 'default-button) | 94 | (put 'button 'button-category-symbol 'default-button) |
| @@ -316,7 +313,11 @@ Also see `insert-text-button'." | |||
| 316 | (setcar (cdr type-entry) | 313 | (setcar (cdr type-entry) |
| 317 | (button-category-symbol (car (cdr type-entry)))))) | 314 | (button-category-symbol (car (cdr type-entry)))))) |
| 318 | ;; Now add all the text properties at once | 315 | ;; Now add all the text properties at once |
| 319 | (add-text-properties beg end properties) | 316 | (add-text-properties beg end |
| 317 | ;; Each button should have a non-eq `button' | ||
| 318 | ;; property so that next-single-property-change can | ||
| 319 | ;; detect boundaries reliably. | ||
| 320 | (cons 'button (cons (list t) properties))) | ||
| 320 | ;; Return something that can be used to get at the button. | 321 | ;; Return something that can be used to get at the button. |
| 321 | beg) | 322 | beg) |
| 322 | 323 | ||
| @@ -365,16 +366,29 @@ instead of starting at the next button." | |||
| 365 | (next-button pos)))) | 366 | (next-button pos)))) |
| 366 | 367 | ||
| 367 | (defun previous-button (pos &optional count-current) | 368 | (defun previous-button (pos &optional count-current) |
| 368 | "Return the Nth button before position POS in the current buffer. | 369 | "Return the previous button before position POS in the current buffer. |
| 369 | If COUNT-CURRENT is non-nil, count any button at POS in the search, | 370 | If COUNT-CURRENT is non-nil, count any button at POS in the search, |
| 370 | instead of starting at the next button." | 371 | instead of starting at the next button." |
| 371 | (unless count-current | 372 | (let ((button (button-at pos))) |
| 372 | (setq pos (previous-single-char-property-change pos 'button))) | 373 | (if button |
| 373 | (and (> pos (point-min)) | 374 | (if count-current |
| 374 | (or (button-at (1- pos)) | 375 | button |
| 375 | ;; We must have originally been on a button, and are now in | 376 | ;; We started out on a button, so move to its start and look |
| 376 | ;; the inter-button space. Recurse to find a button. | 377 | ;; for the previous button boundary. |
| 377 | (previous-button pos)))) | 378 | (setq pos (previous-single-char-property-change |
| 379 | (button-start button) 'button)) | ||
| 380 | (let ((new-button (button-at pos))) | ||
| 381 | (if new-button | ||
| 382 | ;; We are in a button again; this can happen if there | ||
| 383 | ;; are adjacent buttons (or at bob). | ||
| 384 | (unless (= pos (button-start button)) new-button) | ||
| 385 | ;; We are now in the space between buttons. | ||
| 386 | (previous-button pos)))) | ||
| 387 | ;; We started out in the space between buttons. | ||
| 388 | (setq pos (previous-single-char-property-change pos 'button)) | ||
| 389 | (or (button-at pos) | ||
| 390 | (and (> pos (point-min)) | ||
| 391 | (button-at (1- pos))))))) | ||
| 378 | 392 | ||
| 379 | 393 | ||
| 380 | ;; User commands | 394 | ;; User commands |
diff --git a/lisp/calc/calc.el b/lisp/calc/calc.el index 75e1c83df03..12b1dc6da02 100644 --- a/lisp/calc/calc.el +++ b/lisp/calc/calc.el | |||
| @@ -1148,6 +1148,11 @@ If nil, selections displayed but ignored.") | |||
| 1148 | 1148 | ||
| 1149 | (defvar calc-alg-map) ; Defined in calc-ext.el | 1149 | (defvar calc-alg-map) ; Defined in calc-ext.el |
| 1150 | 1150 | ||
| 1151 | (defun calc-version () | ||
| 1152 | "Return version of this version of Calc." | ||
| 1153 | (interactive) | ||
| 1154 | (message (concat "Calc version " calc-version))) | ||
| 1155 | |||
| 1151 | (defun calc-mode () | 1156 | (defun calc-mode () |
| 1152 | "Calculator major mode. | 1157 | "Calculator major mode. |
| 1153 | 1158 | ||
| @@ -1258,8 +1263,7 @@ commands given here will actually operate on the *Calculator* stack." | |||
| 1258 | (set (make-local-variable 'calc-main-buffer) buf)) | 1263 | (set (make-local-variable 'calc-main-buffer) buf)) |
| 1259 | (when (= (buffer-size) 0) | 1264 | (when (= (buffer-size) 0) |
| 1260 | (let ((buffer-read-only nil)) | 1265 | (let ((buffer-read-only nil)) |
| 1261 | (insert (propertize (concat "Emacs Calculator v" calc-version | 1266 | (insert (propertize (concat "Emacs Calculator Trail\n") |
| 1262 | " by Dave Gillespie\n") | ||
| 1263 | 'font-lock-face 'italic)))) | 1267 | 'font-lock-face 'italic)))) |
| 1264 | (run-mode-hooks 'calc-trail-mode-hook)) | 1268 | (run-mode-hooks 'calc-trail-mode-hook)) |
| 1265 | 1269 | ||
diff --git a/lisp/calendar/appt.el b/lisp/calendar/appt.el index 82fa0e66dbf..02865c994e3 100644 --- a/lisp/calendar/appt.el +++ b/lisp/calendar/appt.el | |||
| @@ -233,8 +233,8 @@ The variable `appt-audible' controls the audible reminder." | |||
| 233 | ;; vars appt-msg-window and appt-visible are dropped. | 233 | ;; vars appt-msg-window and appt-visible are dropped. |
| 234 | (let ((appt-display-format | 234 | (let ((appt-display-format |
| 235 | (if (eq appt-display-format 'ignore) | 235 | (if (eq appt-display-format 'ignore) |
| 236 | (cond (appt-msg-window 'window) | 236 | (cond (appt-msg-window 'window) |
| 237 | (appt-visible 'echo)) | 237 | (appt-visible 'echo)) |
| 238 | appt-display-format))) | 238 | appt-display-format))) |
| 239 | (cond ((eq appt-display-format 'window) | 239 | (cond ((eq appt-display-format 'window) |
| 240 | (funcall appt-disp-window-function | 240 | (funcall appt-disp-window-function |
| @@ -457,7 +457,9 @@ NEW-TIME is a string giving the date." | |||
| 457 | (same-window-p (buffer-name appt-disp-buf))) | 457 | (same-window-p (buffer-name appt-disp-buf))) |
| 458 | ;; By default, split the bottom window and use the lower part. | 458 | ;; By default, split the bottom window and use the lower part. |
| 459 | (appt-select-lowest-window) | 459 | (appt-select-lowest-window) |
| 460 | (select-window (split-window))) | 460 | ;; Split the window, unless it's too small to do so. |
| 461 | (when (>= (window-height) (* 2 window-min-height)) | ||
| 462 | (select-window (split-window)))) | ||
| 461 | (switch-to-buffer appt-disp-buf)) | 463 | (switch-to-buffer appt-disp-buf)) |
| 462 | (calendar-set-mode-line | 464 | (calendar-set-mode-line |
| 463 | (format " Appointment in %s minutes. %s " min-to-app new-time)) | 465 | (format " Appointment in %s minutes. %s " min-to-app new-time)) |
diff --git a/lisp/calendar/cal-china.el b/lisp/calendar/cal-china.el index a838141db1c..7f6646dda64 100644 --- a/lisp/calendar/cal-china.el +++ b/lisp/calendar/cal-china.el | |||
| @@ -43,12 +43,6 @@ | |||
| 43 | ;; ``Calendrical Calculations: The Millennium Edition'' by Edward M. Reingold | 43 | ;; ``Calendrical Calculations: The Millennium Edition'' by Edward M. Reingold |
| 44 | ;; and Nachum Dershowitz, Cambridge University Press (2001). | 44 | ;; and Nachum Dershowitz, Cambridge University Press (2001). |
| 45 | 45 | ||
| 46 | ;; Comments, corrections, and improvements should be sent to | ||
| 47 | ;; Edward M. Reingold Department of Computer Science | ||
| 48 | ;; (217) 333-6733 University of Illinois at Urbana-Champaign | ||
| 49 | ;; reingold@cs.uiuc.edu 1304 West Springfield Avenue | ||
| 50 | ;; Urbana, Illinois 61801 | ||
| 51 | |||
| 52 | ;;; Code: | 46 | ;;; Code: |
| 53 | 47 | ||
| 54 | (defvar date) | 48 | (defvar date) |
diff --git a/lisp/calendar/cal-coptic.el b/lisp/calendar/cal-coptic.el index 23de17a16a8..b5cf96949c6 100644 --- a/lisp/calendar/cal-coptic.el +++ b/lisp/calendar/cal-coptic.el | |||
| @@ -34,12 +34,6 @@ | |||
| 34 | ;; ``Calendrical Calculations: The Millennium Edition'' by Edward M. Reingold | 34 | ;; ``Calendrical Calculations: The Millennium Edition'' by Edward M. Reingold |
| 35 | ;; and Nachum Dershowitz, Cambridge University Press (2001). | 35 | ;; and Nachum Dershowitz, Cambridge University Press (2001). |
| 36 | 36 | ||
| 37 | ;; Comments, corrections, and improvements should be sent to | ||
| 38 | ;; Edward M. Reingold Department of Computer Science | ||
| 39 | ;; (217) 333-6733 University of Illinois at Urbana-Champaign | ||
| 40 | ;; reingold@cs.uiuc.edu 1304 West Springfield Avenue | ||
| 41 | ;; Urbana, Illinois 61801 | ||
| 42 | |||
| 43 | ;;; Code: | 37 | ;;; Code: |
| 44 | 38 | ||
| 45 | (defvar date) | 39 | (defvar date) |
diff --git a/lisp/calendar/cal-dst.el b/lisp/calendar/cal-dst.el index 3aea69b8ccf..6159d7e9dc1 100644 --- a/lisp/calendar/cal-dst.el +++ b/lisp/calendar/cal-dst.el | |||
| @@ -31,12 +31,6 @@ | |||
| 31 | ;; This collection of functions implements the features of calendar.el and | 31 | ;; This collection of functions implements the features of calendar.el and |
| 32 | ;; holiday.el that deal with daylight saving time. | 32 | ;; holiday.el that deal with daylight saving time. |
| 33 | 33 | ||
| 34 | ;; Comments, corrections, and improvements should be sent to | ||
| 35 | ;; Edward M. Reingold Department of Computer Science | ||
| 36 | ;; (217) 333-6733 University of Illinois at Urbana-Champaign | ||
| 37 | ;; reingold@cs.uiuc.edu 1304 West Springfield Avenue | ||
| 38 | ;; Urbana, Illinois 61801 | ||
| 39 | |||
| 40 | ;;; Code: | 34 | ;;; Code: |
| 41 | 35 | ||
| 42 | (require 'calendar) | 36 | (require 'calendar) |
| @@ -266,12 +260,20 @@ Returns a list (YEAR START END), where START and END are | |||
| 266 | expressions that when evaluated return the start and end dates, | 260 | expressions that when evaluated return the start and end dates, |
| 267 | respectively. This function first attempts to use pre-calculated | 261 | respectively. This function first attempts to use pre-calculated |
| 268 | data from `calendar-dst-transition-cache', otherwise it calls | 262 | data from `calendar-dst-transition-cache', otherwise it calls |
| 269 | `calendar-dst-find-data' (and adds the results to the cache)." | 263 | `calendar-dst-find-data' (and adds the results to the cache). |
| 264 | If dates in YEAR cannot be handled by `encode-time' (e.g. if they | ||
| 265 | are too large to be represented as a lisp integer), then rather | ||
| 266 | than an error this function returns the result appropriate for | ||
| 267 | the current year." | ||
| 270 | (let ((e (assoc year calendar-dst-transition-cache)) | 268 | (let ((e (assoc year calendar-dst-transition-cache)) |
| 271 | f) | 269 | f) |
| 272 | (or e | 270 | (or e |
| 273 | (progn | 271 | (progn |
| 274 | (setq e (calendar-dst-find-data (encode-time 1 0 0 1 1 year)) | 272 | (setq e (calendar-dst-find-data |
| 273 | (condition-case nil | ||
| 274 | (encode-time 1 0 0 1 1 year) | ||
| 275 | (error | ||
| 276 | (encode-time 1 0 0 1 1 (nth 5 (decode-time)))))) | ||
| 275 | f (nth 4 e) | 277 | f (nth 4 e) |
| 276 | e (list year f (nth 5 e)) | 278 | e (list year f (nth 5 e)) |
| 277 | calendar-dst-transition-cache | 279 | calendar-dst-transition-cache |
diff --git a/lisp/calendar/cal-french.el b/lisp/calendar/cal-french.el index 99af7042472..439dbd34632 100644 --- a/lisp/calendar/cal-french.el +++ b/lisp/calendar/cal-french.el | |||
| @@ -37,12 +37,6 @@ | |||
| 37 | ;; E. M. Reingold, N. Dershowitz, and S. M. Clamen, Software--Practice and | 37 | ;; E. M. Reingold, N. Dershowitz, and S. M. Clamen, Software--Practice and |
| 38 | ;; Experience, Volume 23, Number 4 (April, 1993), pages 383-404. | 38 | ;; Experience, Volume 23, Number 4 (April, 1993), pages 383-404. |
| 39 | 39 | ||
| 40 | ;; Comments, corrections, and improvements should be sent to | ||
| 41 | ;; Edward M. Reingold Department of Computer Science | ||
| 42 | ;; (217) 333-6733 University of Illinois at Urbana-Champaign | ||
| 43 | ;; reingold@cs.uiuc.edu 1304 West Springfield Avenue | ||
| 44 | ;; Urbana, Illinois 61801 | ||
| 45 | |||
| 46 | ;;; Code: | 40 | ;;; Code: |
| 47 | 41 | ||
| 48 | (defvar date) | 42 | (defvar date) |
diff --git a/lisp/calendar/cal-hebrew.el b/lisp/calendar/cal-hebrew.el index a61bea8eacf..9f32d9df471 100644 --- a/lisp/calendar/cal-hebrew.el +++ b/lisp/calendar/cal-hebrew.el | |||
| @@ -35,12 +35,6 @@ | |||
| 35 | ;; ``Calendrical Calculations: The Millennium Edition'' by Edward M. Reingold | 35 | ;; ``Calendrical Calculations: The Millennium Edition'' by Edward M. Reingold |
| 36 | ;; and Nachum Dershowitz, Cambridge University Press (2001). | 36 | ;; and Nachum Dershowitz, Cambridge University Press (2001). |
| 37 | 37 | ||
| 38 | ;; Comments, corrections, and improvements should be sent to | ||
| 39 | ;; Edward M. Reingold Department of Computer Science | ||
| 40 | ;; (217) 333-6733 University of Illinois at Urbana-Champaign | ||
| 41 | ;; reingold@cs.uiuc.edu 1304 West Springfield Avenue | ||
| 42 | ;; Urbana, Illinois 61801 | ||
| 43 | |||
| 44 | ;;; Code: | 38 | ;;; Code: |
| 45 | 39 | ||
| 46 | (defvar date) | 40 | (defvar date) |
diff --git a/lisp/calendar/cal-islam.el b/lisp/calendar/cal-islam.el index 28faed4d397..57c0f9de65e 100644 --- a/lisp/calendar/cal-islam.el +++ b/lisp/calendar/cal-islam.el | |||
| @@ -34,12 +34,6 @@ | |||
| 34 | ;; ``Calendrical Calculations: The Millennium Edition'' by Edward M. Reingold | 34 | ;; ``Calendrical Calculations: The Millennium Edition'' by Edward M. Reingold |
| 35 | ;; and Nachum Dershowitz, Cambridge University Press (2001). | 35 | ;; and Nachum Dershowitz, Cambridge University Press (2001). |
| 36 | 36 | ||
| 37 | ;; Comments, corrections, and improvements should be sent to | ||
| 38 | ;; Edward M. Reingold Department of Computer Science | ||
| 39 | ;; (217) 333-6733 University of Illinois at Urbana-Champaign | ||
| 40 | ;; reingold@cs.uiuc.edu 1304 West Springfield Avenue | ||
| 41 | ;; Urbana, Illinois 61801 | ||
| 42 | |||
| 43 | ;;; Code: | 37 | ;;; Code: |
| 44 | 38 | ||
| 45 | (defvar date) | 39 | (defvar date) |
diff --git a/lisp/calendar/cal-iso.el b/lisp/calendar/cal-iso.el index 93b39cd4d15..052087e2558 100644 --- a/lisp/calendar/cal-iso.el +++ b/lisp/calendar/cal-iso.el | |||
| @@ -34,12 +34,6 @@ | |||
| 34 | ;; ``Calendrical Calculations: The Millennium Edition'' by Edward M. Reingold | 34 | ;; ``Calendrical Calculations: The Millennium Edition'' by Edward M. Reingold |
| 35 | ;; and Nachum Dershowitz, Cambridge University Press (2001). | 35 | ;; and Nachum Dershowitz, Cambridge University Press (2001). |
| 36 | 36 | ||
| 37 | ;; Comments, corrections, and improvements should be sent to | ||
| 38 | ;; Edward M. Reingold Department of Computer Science | ||
| 39 | ;; (217) 333-6733 University of Illinois at Urbana-Champaign | ||
| 40 | ;; reingold@cs.uiuc.edu 1304 West Springfield Avenue | ||
| 41 | ;; Urbana, Illinois 61801 | ||
| 42 | |||
| 43 | ;;; Code: | 37 | ;;; Code: |
| 44 | 38 | ||
| 45 | (defvar date) | 39 | (defvar date) |
diff --git a/lisp/calendar/cal-julian.el b/lisp/calendar/cal-julian.el index 768e57bbab5..ff6a3f72e1b 100644 --- a/lisp/calendar/cal-julian.el +++ b/lisp/calendar/cal-julian.el | |||
| @@ -34,12 +34,6 @@ | |||
| 34 | ;; ``Calendrical Calculations: The Millennium Edition'' by Edward M. Reingold | 34 | ;; ``Calendrical Calculations: The Millennium Edition'' by Edward M. Reingold |
| 35 | ;; and Nachum Dershowitz, Cambridge University Press (2001). | 35 | ;; and Nachum Dershowitz, Cambridge University Press (2001). |
| 36 | 36 | ||
| 37 | ;; Comments, corrections, and improvements should be sent to | ||
| 38 | ;; Edward M. Reingold Department of Computer Science | ||
| 39 | ;; (217) 333-6733 University of Illinois at Urbana-Champaign | ||
| 40 | ;; reingold@cs.uiuc.edu 1304 West Springfield Avenue | ||
| 41 | ;; Urbana, Illinois 61801 | ||
| 42 | |||
| 43 | ;;; Code: | 37 | ;;; Code: |
| 44 | 38 | ||
| 45 | (defvar date) | 39 | (defvar date) |
diff --git a/lisp/calendar/cal-mayan.el b/lisp/calendar/cal-mayan.el index 20703cb85b6..2cb6d31022e 100644 --- a/lisp/calendar/cal-mayan.el +++ b/lisp/calendar/cal-mayan.el | |||
| @@ -43,8 +43,6 @@ | |||
| 43 | ;; reingold@cs.uiuc.edu 1304 West Springfield Avenue | 43 | ;; reingold@cs.uiuc.edu 1304 West Springfield Avenue |
| 44 | ;; Urbana, Illinois 61801 | 44 | ;; Urbana, Illinois 61801 |
| 45 | 45 | ||
| 46 | ;; Comments, improvements, and bug reports should be sent to Reingold. | ||
| 47 | |||
| 48 | ;; Technical details of the Mayan calendrical calculations can be found in | 46 | ;; Technical details of the Mayan calendrical calculations can be found in |
| 49 | ;; ``Calendrical Calculations: The Millennium Edition'' by Edward M. Reingold | 47 | ;; ``Calendrical Calculations: The Millennium Edition'' by Edward M. Reingold |
| 50 | ;; and Nachum Dershowitz, Cambridge University Press (2001), and in | 48 | ;; and Nachum Dershowitz, Cambridge University Press (2001), and in |
diff --git a/lisp/calendar/cal-menu.el b/lisp/calendar/cal-menu.el index 1320f778cc6..25929976dbd 100644 --- a/lisp/calendar/cal-menu.el +++ b/lisp/calendar/cal-menu.el | |||
| @@ -31,12 +31,6 @@ | |||
| 31 | ;; This collection of functions implements menu bar and popup menu support for | 31 | ;; This collection of functions implements menu bar and popup menu support for |
| 32 | ;; calendar.el. | 32 | ;; calendar.el. |
| 33 | 33 | ||
| 34 | ;; Comments, corrections, and improvements should be sent to | ||
| 35 | ;; Edward M. Reingold Department of Computer Science | ||
| 36 | ;; (217) 333-6733 University of Illinois at Urbana-Champaign | ||
| 37 | ;; reingold@cs.uiuc.edu 1304 West Springfield Avenue | ||
| 38 | ;; Urbana, Illinois 61801 | ||
| 39 | |||
| 40 | ;;; Code: | 34 | ;;; Code: |
| 41 | 35 | ||
| 42 | (defvar displayed-month) | 36 | (defvar displayed-month) |
diff --git a/lisp/calendar/cal-move.el b/lisp/calendar/cal-move.el index b12289c7456..3a08b98bf00 100644 --- a/lisp/calendar/cal-move.el +++ b/lisp/calendar/cal-move.el | |||
| @@ -30,12 +30,6 @@ | |||
| 30 | ;; This collection of functions implements movement in the calendar for | 30 | ;; This collection of functions implements movement in the calendar for |
| 31 | ;; calendar.el. | 31 | ;; calendar.el. |
| 32 | 32 | ||
| 33 | ;; Comments, corrections, and improvements should be sent to | ||
| 34 | ;; Edward M. Reingold Department of Computer Science | ||
| 35 | ;; (217) 333-6733 University of Illinois at Urbana-Champaign | ||
| 36 | ;; reingold@cs.uiuc.edu 1304 West Springfield Avenue | ||
| 37 | ;; Urbana, Illinois 61801 | ||
| 38 | |||
| 39 | ;;; Code: | 33 | ;;; Code: |
| 40 | 34 | ||
| 41 | (defvar displayed-month) | 35 | (defvar displayed-month) |
diff --git a/lisp/calendar/cal-persia.el b/lisp/calendar/cal-persia.el index 6055de121af..a37f9c1f27e 100644 --- a/lisp/calendar/cal-persia.el +++ b/lisp/calendar/cal-persia.el | |||
| @@ -30,16 +30,6 @@ | |||
| 30 | ;; This collection of functions implements the features of calendar.el and | 30 | ;; This collection of functions implements the features of calendar.el and |
| 31 | ;; diary.el that deal with the Persian calendar. | 31 | ;; diary.el that deal with the Persian calendar. |
| 32 | 32 | ||
| 33 | ;; Technical details of all the calendrical calculations can be found in | ||
| 34 | ;; ``Calendrical Calculations: The Millennium Edition'' by Edward M. Reingold | ||
| 35 | ;; and Nachum Dershowitz, Cambridge University Press (2001). | ||
| 36 | |||
| 37 | ;; Comments, corrections, and improvements should be sent to | ||
| 38 | ;; Edward M. Reingold Department of Computer Science | ||
| 39 | ;; (217) 333-6733 University of Illinois at Urbana-Champaign | ||
| 40 | ;; reingold@cs.uiuc.edu 1304 West Springfield Avenue | ||
| 41 | ;; Urbana, Illinois 61801 | ||
| 42 | |||
| 43 | ;;; Code: | 33 | ;;; Code: |
| 44 | 34 | ||
| 45 | (defvar date) | 35 | (defvar date) |
diff --git a/lisp/calendar/cal-x.el b/lisp/calendar/cal-x.el index b7f1748ff34..5f2c89e82c5 100644 --- a/lisp/calendar/cal-x.el +++ b/lisp/calendar/cal-x.el | |||
| @@ -31,12 +31,6 @@ | |||
| 31 | ;; This collection of functions implements dedicated frames in X for | 31 | ;; This collection of functions implements dedicated frames in X for |
| 32 | ;; calendar.el. | 32 | ;; calendar.el. |
| 33 | 33 | ||
| 34 | ;; Comments, corrections, and improvements should be sent to | ||
| 35 | ;; Edward M. Reingold Department of Computer Science | ||
| 36 | ;; (217) 333-6733 University of Illinois at Urbana-Champaign | ||
| 37 | ;; reingold@cs.uiuc.edu 1304 West Springfield Avenue | ||
| 38 | ;; Urbana, Illinois 61801 | ||
| 39 | |||
| 40 | ;;; Code: | 34 | ;;; Code: |
| 41 | 35 | ||
| 42 | (require 'calendar) | 36 | (require 'calendar) |
diff --git a/lisp/calendar/calendar.el b/lisp/calendar/calendar.el index fa7a68acd30..03f9a95fe37 100644 --- a/lisp/calendar/calendar.el +++ b/lisp/calendar/calendar.el | |||
| @@ -90,12 +90,6 @@ | |||
| 90 | ;; reingold@cs.uiuc.edu with the SUBJECT "send-paper-cal" (no quotes) and | 90 | ;; reingold@cs.uiuc.edu with the SUBJECT "send-paper-cal" (no quotes) and |
| 91 | ;; the message BODY containing your mailing address (snail). | 91 | ;; the message BODY containing your mailing address (snail). |
| 92 | 92 | ||
| 93 | ;; Comments, corrections, and improvements should be sent to | ||
| 94 | ;; Edward M. Reingold Department of Computer Science | ||
| 95 | ;; (217) 333-6733 University of Illinois at Urbana-Champaign | ||
| 96 | ;; reingold@cs.uiuc.edu 1304 West Springfield Avenue | ||
| 97 | ;; Urbana, Illinois 61801 | ||
| 98 | |||
| 99 | ;;; Code: | 93 | ;;; Code: |
| 100 | 94 | ||
| 101 | (defvar displayed-month) | 95 | (defvar displayed-month) |
| @@ -301,6 +295,11 @@ calendar." | |||
| 301 | :type 'boolean | 295 | :type 'boolean |
| 302 | :group 'holidays) | 296 | :group 'holidays) |
| 303 | 297 | ||
| 298 | (defcustom calendar-mode-hook nil | ||
| 299 | "Hook run when entering `calendar-mode'." | ||
| 300 | :type 'hook | ||
| 301 | :group 'calendar-hooks) | ||
| 302 | |||
| 304 | ;;;###autoload | 303 | ;;;###autoload |
| 305 | (defcustom calendar-load-hook nil | 304 | (defcustom calendar-load-hook nil |
| 306 | "List of functions to be called after the calendar is first loaded. | 305 | "List of functions to be called after the calendar is first loaded. |
| @@ -624,6 +623,10 @@ See the documentation of `diary-date-forms' for an explanation." | |||
| 624 | (choice symbol regexp))))) | 623 | (choice symbol regexp))))) |
| 625 | :group 'diary) | 624 | :group 'diary) |
| 626 | 625 | ||
| 626 | (autoload 'diary-font-lock-keywords "diary-lib") | ||
| 627 | (autoload 'diary-live-p "diary-lib") | ||
| 628 | (defvar diary-font-lock-keywords) | ||
| 629 | |||
| 627 | (defcustom diary-date-forms | 630 | (defcustom diary-date-forms |
| 628 | (if european-calendar-style | 631 | (if european-calendar-style |
| 629 | european-date-diary-pattern | 632 | european-date-diary-pattern |
| @@ -661,6 +664,15 @@ a portion of the first word of the diary entry." | |||
| 661 | (repeat (list :inline t :format "%v" | 664 | (repeat (list :inline t :format "%v" |
| 662 | (symbol :tag "Keyword") | 665 | (symbol :tag "Keyword") |
| 663 | (choice symbol regexp))))) | 666 | (choice symbol regexp))))) |
| 667 | :initialize 'custom-initialize-default | ||
| 668 | :set (lambda (symbol value) | ||
| 669 | (unless (equal value (eval symbol)) | ||
| 670 | (custom-set-default symbol value) | ||
| 671 | (setq diary-font-lock-keywords (diary-font-lock-keywords)) | ||
| 672 | ;; Need to redraw not just to get new font-locking, but also | ||
| 673 | ;; to pick up any newly recognized entries. | ||
| 674 | (and (diary-live-p) | ||
| 675 | (diary)))) | ||
| 664 | :group 'diary) | 676 | :group 'diary) |
| 665 | 677 | ||
| 666 | ;;;###autoload | 678 | ;;;###autoload |
diff --git a/lisp/calendar/diary-lib.el b/lisp/calendar/diary-lib.el index 72620a7f9bb..df01a508031 100644 --- a/lisp/calendar/diary-lib.el +++ b/lisp/calendar/diary-lib.el | |||
| @@ -29,12 +29,6 @@ | |||
| 29 | ;; This collection of functions implements the diary features as described | 29 | ;; This collection of functions implements the diary features as described |
| 30 | ;; in calendar.el. | 30 | ;; in calendar.el. |
| 31 | 31 | ||
| 32 | ;; Comments, corrections, and improvements should be sent to | ||
| 33 | ;; Edward M. Reingold Department of Computer Science | ||
| 34 | ;; (217) 333-6733 University of Illinois at Urbana-Champaign | ||
| 35 | ;; reingold@cs.uiuc.edu 1304 West Springfield Avenue | ||
| 36 | ;; Urbana, Illinois 61801 | ||
| 37 | |||
| 38 | ;;; Code: | 32 | ;;; Code: |
| 39 | 33 | ||
| 40 | (require 'calendar) | 34 | (require 'calendar) |
| @@ -263,6 +257,16 @@ search." | |||
| 263 | (setq attr-list (cdr attr-list))))) | 257 | (setq attr-list (cdr attr-list))))) |
| 264 | (list entry ret-attr)))) | 258 | (list entry ret-attr)))) |
| 265 | 259 | ||
| 260 | (defun diary-set-maybe-redraw (symbol value) | ||
| 261 | "Set SYMBOL's value to VALUE, and redraw the diary if necessary. | ||
| 262 | Redraws the diary if it is being displayed (note this is not the same as | ||
| 263 | just visiting the `diary-file'), and SYMBOL's value is to be changed." | ||
| 264 | (let ((oldvalue (eval symbol))) | ||
| 265 | (custom-set-default symbol value) | ||
| 266 | (and (not (equal value oldvalue)) | ||
| 267 | (diary-live-p) | ||
| 268 | ;; Note this assumes diary was called without prefix arg. | ||
| 269 | (diary)))) | ||
| 266 | 270 | ||
| 267 | ;; This can be removed once the kill/yank treatment of invisible text | 271 | ;; This can be removed once the kill/yank treatment of invisible text |
| 268 | ;; (see etc/TODO) is fixed. -- gm | 272 | ;; (see etc/TODO) is fixed. -- gm |
| @@ -292,27 +296,22 @@ Only used if `diary-header-line-flag' is non-nil." | |||
| 292 | 296 | ||
| 293 | (defvar diary-saved-point) ; internal | 297 | (defvar diary-saved-point) ; internal |
| 294 | 298 | ||
| 299 | ;; The first version of this also checked for diary-selective-display | ||
| 300 | ;; in the non-fancy case. This was an attempt to distinguish between | ||
| 301 | ;; displaying the diary and just visiting the diary file. However, | ||
| 302 | ;; when using fancy diary, calling diary when there are no entries to | ||
| 303 | ;; display does not create the fancy buffer, nor does it switch on | ||
| 304 | ;; selective-display in the diary buffer. This means some | ||
| 305 | ;; customizations will not take effect, eg: | ||
| 306 | ;; http://lists.gnu.org/archive/html/emacs-pretest-bug/2007-03/msg00466.html | ||
| 307 | ;; So the check for selective-display was dropped. This means the | ||
| 308 | ;; diary will be displayed if one customizes a diary variable while | ||
| 309 | ;; just visiting the diary-file. This is i) unlikely, and ii) no great loss. | ||
| 295 | (defun diary-live-p () | 310 | (defun diary-live-p () |
| 296 | "Return non-nil if the diary is being displayed. | 311 | "Return non-nil if the diary is being displayed." |
| 297 | This is not the same as just visiting the `diary-file'." | ||
| 298 | (or (get-buffer fancy-diary-buffer) | 312 | (or (get-buffer fancy-diary-buffer) |
| 299 | (when diary-file | 313 | (and diary-file |
| 300 | (let ((dbuff (find-buffer-visiting | 314 | (find-buffer-visiting (substitute-in-file-name diary-file))))) |
| 301 | (substitute-in-file-name diary-file)))) | ||
| 302 | (when dbuff | ||
| 303 | (with-current-buffer dbuff | ||
| 304 | diary-selective-display)))))) | ||
| 305 | |||
| 306 | (defun diary-set-maybe-redraw (symbol value) | ||
| 307 | "Set SYMBOL's value to VALUE, and redraw the diary if necessary. | ||
| 308 | Redraws the diary if it is being displayed (note this is not the same as | ||
| 309 | just visiting the `diary-file'), and SYMBOL's value is to be changed." | ||
| 310 | (let ((oldvalue (eval symbol))) | ||
| 311 | (custom-set-default symbol value) | ||
| 312 | (and (not (equal value oldvalue)) | ||
| 313 | (diary-live-p) | ||
| 314 | ;; Note this assumes diary was called without prefix arg. | ||
| 315 | (diary)))) | ||
| 316 | 315 | ||
| 317 | (defcustom number-of-diary-entries 1 | 316 | (defcustom number-of-diary-entries 1 |
| 318 | "Specifies how many days of diary entries are to be displayed initially. | 317 | "Specifies how many days of diary entries are to be displayed initially. |
| @@ -1990,51 +1989,53 @@ names." | |||
| 1990 | (eval-when-compile (require 'cal-hebrew) | 1989 | (eval-when-compile (require 'cal-hebrew) |
| 1991 | (require 'cal-islam)) | 1990 | (require 'cal-islam)) |
| 1992 | 1991 | ||
| 1993 | (defvar diary-font-lock-keywords | 1992 | (defun diary-font-lock-keywords () |
| 1994 | (append | 1993 | "Return a value for the variable `diary-font-lock-keywords'." |
| 1995 | (diary-font-lock-date-forms calendar-month-name-array | 1994 | (append |
| 1996 | nil calendar-month-abbrev-array) | 1995 | (diary-font-lock-date-forms calendar-month-name-array |
| 1997 | (when (or (memq 'mark-hebrew-diary-entries | 1996 | nil calendar-month-abbrev-array) |
| 1998 | nongregorian-diary-marking-hook) | 1997 | (when (or (memq 'mark-hebrew-diary-entries |
| 1999 | (memq 'list-hebrew-diary-entries | 1998 | nongregorian-diary-marking-hook) |
| 2000 | nongregorian-diary-listing-hook)) | 1999 | (memq 'list-hebrew-diary-entries |
| 2001 | (require 'cal-hebrew) | 2000 | nongregorian-diary-listing-hook)) |
| 2002 | (diary-font-lock-date-forms | 2001 | (require 'cal-hebrew) |
| 2003 | calendar-hebrew-month-name-array-leap-year | 2002 | (diary-font-lock-date-forms |
| 2004 | hebrew-diary-entry-symbol)) | 2003 | calendar-hebrew-month-name-array-leap-year |
| 2005 | (when (or (memq 'mark-islamic-diary-entries | 2004 | hebrew-diary-entry-symbol)) |
| 2006 | nongregorian-diary-marking-hook) | 2005 | (when (or (memq 'mark-islamic-diary-entries |
| 2007 | (memq 'list-islamic-diary-entries | 2006 | nongregorian-diary-marking-hook) |
| 2008 | nongregorian-diary-listing-hook)) | 2007 | (memq 'list-islamic-diary-entries |
| 2009 | (require 'cal-islam) | 2008 | nongregorian-diary-listing-hook)) |
| 2010 | (diary-font-lock-date-forms | 2009 | (require 'cal-islam) |
| 2011 | calendar-islamic-month-name-array | 2010 | (diary-font-lock-date-forms |
| 2012 | islamic-diary-entry-symbol)) | 2011 | calendar-islamic-month-name-array |
| 2013 | (list | 2012 | islamic-diary-entry-symbol)) |
| 2014 | (cons | 2013 | (list |
| 2015 | (concat "^" (regexp-quote diary-include-string) ".*$") | 2014 | (cons |
| 2016 | 'font-lock-keyword-face) | 2015 | (concat "^" (regexp-quote diary-include-string) ".*$") |
| 2017 | (cons | 2016 | 'font-lock-keyword-face) |
| 2018 | (concat "^" (regexp-quote diary-nonmarking-symbol) | 2017 | (cons |
| 2019 | "?\\(" (regexp-quote sexp-diary-entry-symbol) "\\)") | 2018 | (concat "^" (regexp-quote diary-nonmarking-symbol) |
| 2020 | '(1 font-lock-reference-face)) | 2019 | "?\\(" (regexp-quote sexp-diary-entry-symbol) "\\)") |
| 2021 | (cons | 2020 | '(1 font-lock-reference-face)) |
| 2022 | (concat "^" (regexp-quote diary-nonmarking-symbol)) | 2021 | (cons |
| 2023 | 'font-lock-reference-face) | 2022 | (concat "^" (regexp-quote diary-nonmarking-symbol)) |
| 2024 | (cons | 2023 | 'font-lock-reference-face) |
| 2025 | (concat "^" (regexp-quote diary-nonmarking-symbol) | 2024 | (cons |
| 2026 | "?\\(" (regexp-quote hebrew-diary-entry-symbol) "\\)") | 2025 | (concat "^" (regexp-quote diary-nonmarking-symbol) |
| 2027 | '(1 font-lock-reference-face)) | 2026 | "?\\(" (regexp-quote hebrew-diary-entry-symbol) "\\)") |
| 2028 | (cons | 2027 | '(1 font-lock-reference-face)) |
| 2029 | (concat "^" (regexp-quote diary-nonmarking-symbol) | 2028 | (cons |
| 2030 | "?\\(" (regexp-quote islamic-diary-entry-symbol) "\\)") | 2029 | (concat "^" (regexp-quote diary-nonmarking-symbol) |
| 2031 | '(1 font-lock-reference-face)) | 2030 | "?\\(" (regexp-quote islamic-diary-entry-symbol) "\\)") |
| 2032 | '(diary-font-lock-sexps . font-lock-keyword-face) | 2031 | '(1 font-lock-reference-face)) |
| 2033 | `(,(concat "\\(^\\|\\s-\\)" | 2032 | '(diary-font-lock-sexps . font-lock-keyword-face) |
| 2034 | diary-time-regexp "\\(-" diary-time-regexp "\\)?") | 2033 | `(,(concat "\\(^\\|\\s-\\)" |
| 2035 | . 'diary-time))) | 2034 | diary-time-regexp "\\(-" diary-time-regexp "\\)?") |
| 2036 | "Forms to highlight in `diary-mode'.") | 2035 | . 'diary-time)))) |
| 2037 | 2036 | ||
| 2037 | (defvar diary-font-lock-keywords (diary-font-lock-keywords) | ||
| 2038 | "Forms to highlight in `diary-mode'.") | ||
| 2038 | 2039 | ||
| 2039 | ;; Following code from Dave Love <fx@gnu.org>. | 2040 | ;; Following code from Dave Love <fx@gnu.org>. |
| 2040 | ;; Import Outlook-format appointments from mail messages in Gnus or | 2041 | ;; Import Outlook-format appointments from mail messages in Gnus or |
diff --git a/lisp/calendar/holidays.el b/lisp/calendar/holidays.el index 6f53a47221a..fc6e6315916 100644 --- a/lisp/calendar/holidays.el +++ b/lisp/calendar/holidays.el | |||
| @@ -45,12 +45,6 @@ | |||
| 45 | ;; reingold@cs.uiuc.edu with the SUBJECT "send-paper-cal" (no quotes) and | 45 | ;; reingold@cs.uiuc.edu with the SUBJECT "send-paper-cal" (no quotes) and |
| 46 | ;; the message BODY containing your mailing address (snail). | 46 | ;; the message BODY containing your mailing address (snail). |
| 47 | 47 | ||
| 48 | ;; Comments, corrections, and improvements should be sent to | ||
| 49 | ;; Edward M. Reingold Department of Computer Science | ||
| 50 | ;; (217) 333-6733 University of Illinois at Urbana-Champaign | ||
| 51 | ;; reingold@cs.uiuc.edu 1304 West Springfield Avenue | ||
| 52 | ;; Urbana, Illinois 61801 | ||
| 53 | |||
| 54 | ;;; Code: | 48 | ;;; Code: |
| 55 | 49 | ||
| 56 | (defvar displayed-month) | 50 | (defvar displayed-month) |
diff --git a/lisp/calendar/lunar.el b/lisp/calendar/lunar.el index 33da7cef8e0..8aa062d69c3 100644 --- a/lisp/calendar/lunar.el +++ b/lisp/calendar/lunar.el | |||
| @@ -43,12 +43,6 @@ | |||
| 43 | ;; ``Calendrical Calculations: The Millennium Edition'' by Edward M. Reingold | 43 | ;; ``Calendrical Calculations: The Millennium Edition'' by Edward M. Reingold |
| 44 | ;; and Nachum Dershowitz, Cambridge University Press (2001). | 44 | ;; and Nachum Dershowitz, Cambridge University Press (2001). |
| 45 | 45 | ||
| 46 | ;; Comments, corrections, and improvements should be sent to | ||
| 47 | ;; Edward M. Reingold Department of Computer Science | ||
| 48 | ;; (217) 333-6733 University of Illinois at Urbana-Champaign | ||
| 49 | ;; reingold@cs.uiuc.edu 1304 West Springfield Avenue | ||
| 50 | ;; Urbana, Illinois 61801 | ||
| 51 | |||
| 52 | ;;; Code: | 46 | ;;; Code: |
| 53 | 47 | ||
| 54 | (defvar date) | 48 | (defvar date) |
diff --git a/lisp/calendar/solar.el b/lisp/calendar/solar.el index c4a8352a8d8..4281c0e1307 100644 --- a/lisp/calendar/solar.el +++ b/lisp/calendar/solar.el | |||
| @@ -53,12 +53,6 @@ | |||
| 53 | ;; ``Calendrical Calculations: The Millennium Edition'' by Edward M. Reingold | 53 | ;; ``Calendrical Calculations: The Millennium Edition'' by Edward M. Reingold |
| 54 | ;; and Nachum Dershowitz, Cambridge University Press (2001). | 54 | ;; and Nachum Dershowitz, Cambridge University Press (2001). |
| 55 | 55 | ||
| 56 | ;; Comments, corrections, and improvements should be sent to | ||
| 57 | ;; Edward M. Reingold Department of Computer Science | ||
| 58 | ;; (217) 333-6733 University of Illinois at Urbana-Champaign | ||
| 59 | ;; reingold@cs.uiuc.edu 1304 West Springfield Avenue | ||
| 60 | ;; Urbana, Illinois 61801 | ||
| 61 | |||
| 62 | ;;; Code: | 56 | ;;; Code: |
| 63 | 57 | ||
| 64 | (defvar date) | 58 | (defvar date) |
diff --git a/lisp/comint.el b/lisp/comint.el index ee102c423b4..7d81f357e22 100644 --- a/lisp/comint.el +++ b/lisp/comint.el | |||
| @@ -1502,6 +1502,7 @@ Similarly for Soar, Scheme, etc." | |||
| 1502 | ;; Note that the input string does not include its terminal newline. | 1502 | ;; Note that the input string does not include its terminal newline. |
| 1503 | (let ((proc (get-buffer-process (current-buffer)))) | 1503 | (let ((proc (get-buffer-process (current-buffer)))) |
| 1504 | (if (not proc) (error "Current buffer has no process") | 1504 | (if (not proc) (error "Current buffer has no process") |
| 1505 | (widen) | ||
| 1505 | (let* ((pmark (process-mark proc)) | 1506 | (let* ((pmark (process-mark proc)) |
| 1506 | (intxt (if (>= (point) (marker-position pmark)) | 1507 | (intxt (if (>= (point) (marker-position pmark)) |
| 1507 | (progn (if comint-eol-on-send (end-of-line)) | 1508 | (progn (if comint-eol-on-send (end-of-line)) |
| @@ -1646,8 +1647,8 @@ and moves the prompt overlay." | |||
| 1646 | (let ((inhibit-read-only t) | 1647 | (let ((inhibit-read-only t) |
| 1647 | (inhibit-modification-hooks t)) | 1648 | (inhibit-modification-hooks t)) |
| 1648 | (add-text-properties (overlay-start comint-last-prompt-overlay) | 1649 | (add-text-properties (overlay-start comint-last-prompt-overlay) |
| 1649 | (overlay-end comint-last-prompt-overlay) | 1650 | (overlay-end comint-last-prompt-overlay) |
| 1650 | (overlay-properties comint-last-prompt-overlay))))) | 1651 | (overlay-properties comint-last-prompt-overlay))))) |
| 1651 | 1652 | ||
| 1652 | (defun comint-carriage-motion (start end) | 1653 | (defun comint-carriage-motion (start end) |
| 1653 | "Interpret carriage control characters in the region from START to END. | 1654 | "Interpret carriage control characters in the region from START to END. |
| @@ -2593,7 +2594,7 @@ its response can be seen." | |||
| 2593 | (proc-mark (process-mark proc))) | 2594 | (proc-mark (process-mark proc))) |
| 2594 | (display-buffer proc-buf) | 2595 | (display-buffer proc-buf) |
| 2595 | (set-buffer proc-buf) ; but it's not the selected *window* | 2596 | (set-buffer proc-buf) ; but it's not the selected *window* |
| 2596 | (let ((proc-win (get-buffer-window proc-buf)) | 2597 | (let ((proc-win (get-buffer-window proc-buf 0)) |
| 2597 | (proc-pt (marker-position proc-mark))) | 2598 | (proc-pt (marker-position proc-mark))) |
| 2598 | (comint-send-string proc str) ; send the query | 2599 | (comint-send-string proc str) ; send the query |
| 2599 | (accept-process-output proc) ; wait for some output | 2600 | (accept-process-output proc) ; wait for some output |
| @@ -2959,7 +2960,7 @@ See also `comint-dynamic-complete-filename'." | |||
| 2959 | (defun comint-dynamic-list-completions (completions) | 2960 | (defun comint-dynamic-list-completions (completions) |
| 2960 | "List in help buffer sorted COMPLETIONS. | 2961 | "List in help buffer sorted COMPLETIONS. |
| 2961 | Typing SPC flushes the help buffer." | 2962 | Typing SPC flushes the help buffer." |
| 2962 | (let ((window (get-buffer-window "*Completions*"))) | 2963 | (let ((window (get-buffer-window "*Completions*" 0))) |
| 2963 | (setq completions (sort completions 'string-lessp)) | 2964 | (setq completions (sort completions 'string-lessp)) |
| 2964 | (if (and (eq last-command this-command) | 2965 | (if (and (eq last-command this-command) |
| 2965 | window (window-live-p window) (window-buffer window) | 2966 | window (window-live-p window) (window-buffer window) |
diff --git a/lisp/compare-w.el b/lisp/compare-w.el index e81c6cd3bc2..19ad84e11c0 100644 --- a/lisp/compare-w.el +++ b/lisp/compare-w.el | |||
| @@ -32,7 +32,7 @@ | |||
| 32 | 32 | ||
| 33 | ;;; Code: | 33 | ;;; Code: |
| 34 | 34 | ||
| 35 | (defgroup compare-w nil | 35 | (defgroup compare-windows nil |
| 36 | "Compare text between windows." | 36 | "Compare text between windows." |
| 37 | :prefix "compare-" | 37 | :prefix "compare-" |
| 38 | :group 'tools) | 38 | :group 'tools) |
| @@ -52,18 +52,18 @@ any text before that point. | |||
| 52 | If the function returns the same value for both windows, then the | 52 | If the function returns the same value for both windows, then the |
| 53 | whitespace is considered to match, and is skipped." | 53 | whitespace is considered to match, and is skipped." |
| 54 | :type '(choice regexp function) | 54 | :type '(choice regexp function) |
| 55 | :group 'compare-w) | 55 | :group 'compare-windows) |
| 56 | 56 | ||
| 57 | (defcustom compare-ignore-whitespace nil | 57 | (defcustom compare-ignore-whitespace nil |
| 58 | "*Non-nil means `compare-windows' ignores whitespace." | 58 | "*Non-nil means `compare-windows' ignores whitespace." |
| 59 | :type 'boolean | 59 | :type 'boolean |
| 60 | :group 'compare-w | 60 | :group 'compare-windows |
| 61 | :version "22.1") | 61 | :version "22.1") |
| 62 | 62 | ||
| 63 | (defcustom compare-ignore-case nil | 63 | (defcustom compare-ignore-case nil |
| 64 | "*Non-nil means `compare-windows' ignores case differences." | 64 | "*Non-nil means `compare-windows' ignores case differences." |
| 65 | :type 'boolean | 65 | :type 'boolean |
| 66 | :group 'compare-w) | 66 | :group 'compare-windows) |
| 67 | 67 | ||
| 68 | (defcustom compare-windows-sync 'compare-windows-sync-default-function | 68 | (defcustom compare-windows-sync 'compare-windows-sync-default-function |
| 69 | "*Function or regexp that is used to synchronize points in two | 69 | "*Function or regexp that is used to synchronize points in two |
| @@ -87,10 +87,11 @@ regexp containing some field separator or a newline, depending on | |||
| 87 | the nature of the difference units separator. The variable can | 87 | the nature of the difference units separator. The variable can |
| 88 | be made buffer-local. | 88 | be made buffer-local. |
| 89 | 89 | ||
| 90 | If the value of this variable is `nil', then function `ding' is | 90 | If the value of this variable is `nil' (option \"No sync\"), then |
| 91 | called to beep or flash the screen when points are mismatched." | 91 | no synchronization is performed, and the function `ding' is called |
| 92 | :type '(choice regexp function) | 92 | to beep or flash the screen when points are mismatched." |
| 93 | :group 'compare-w | 93 | :type '(choice function regexp (const :tag "No sync" nil)) |
| 94 | :group 'compare-windows | ||
| 94 | :version "22.1") | 95 | :version "22.1") |
| 95 | 96 | ||
| 96 | (defcustom compare-windows-sync-string-size 32 | 97 | (defcustom compare-windows-sync-string-size 32 |
| @@ -102,7 +103,7 @@ difference regions more coarse-grained. | |||
| 102 | 103 | ||
| 103 | The default value 32 is good for the most cases." | 104 | The default value 32 is good for the most cases." |
| 104 | :type 'integer | 105 | :type 'integer |
| 105 | :group 'compare-w | 106 | :group 'compare-windows |
| 106 | :version "22.1") | 107 | :version "22.1") |
| 107 | 108 | ||
| 108 | (defcustom compare-windows-recenter nil | 109 | (defcustom compare-windows-recenter nil |
| @@ -113,7 +114,7 @@ matching points side-by-side. | |||
| 113 | The value `(-1 0)' is useful if windows are split vertically, | 114 | The value `(-1 0)' is useful if windows are split vertically, |
| 114 | and the value `((4) (4))' for horizontally split windows." | 115 | and the value `((4) (4))' for horizontally split windows." |
| 115 | :type '(list sexp sexp) | 116 | :type '(list sexp sexp) |
| 116 | :group 'compare-w | 117 | :group 'compare-windows |
| 117 | :version "22.1") | 118 | :version "22.1") |
| 118 | 119 | ||
| 119 | (defcustom compare-windows-highlight t | 120 | (defcustom compare-windows-highlight t |
| @@ -125,13 +126,13 @@ out all highlighting later with the command `compare-windows-dehighlight'." | |||
| 125 | :type '(choice (const :tag "No highlighting" nil) | 126 | :type '(choice (const :tag "No highlighting" nil) |
| 126 | (const :tag "Persistent highlighting" persistent) | 127 | (const :tag "Persistent highlighting" persistent) |
| 127 | (other :tag "Highlight until next command" t)) | 128 | (other :tag "Highlight until next command" t)) |
| 128 | :group 'compare-w | 129 | :group 'compare-windows |
| 129 | :version "22.1") | 130 | :version "22.1") |
| 130 | 131 | ||
| 131 | (defface compare-windows | 132 | (defface compare-windows |
| 132 | '((t :inherit lazy-highlight)) | 133 | '((t :inherit lazy-highlight)) |
| 133 | "Face for highlighting of compare-windows difference regions." | 134 | "Face for highlighting of compare-windows difference regions." |
| 134 | :group 'compare-w | 135 | :group 'compare-windows |
| 135 | :version "22.1") | 136 | :version "22.1") |
| 136 | 137 | ||
| 137 | (defvar compare-windows-overlay1 nil) | 138 | (defvar compare-windows-overlay1 nil) |
diff --git a/lisp/complete.el b/lisp/complete.el index ce5094d1aef..b1bb36f9dfa 100644 --- a/lisp/complete.el +++ b/lisp/complete.el | |||
| @@ -187,6 +187,17 @@ If nil, means use the colon-separated path in the variable $INCPATH instead." | |||
| 187 | 187 | ||
| 188 | (define-key global-map [remap lisp-complete-symbol] 'PC-lisp-complete-symbol))))) | 188 | (define-key global-map [remap lisp-complete-symbol] 'PC-lisp-complete-symbol))))) |
| 189 | 189 | ||
| 190 | (defvar PC-do-completion-end nil | ||
| 191 | "Internal variable used by `PC-do-completion'.") | ||
| 192 | |||
| 193 | (make-variable-buffer-local 'PC-do-completion-end) | ||
| 194 | |||
| 195 | (defvar PC-goto-end nil | ||
| 196 | "Internal variable set in `PC-do-completion', used in | ||
| 197 | `choose-completion-string-functions'.") | ||
| 198 | |||
| 199 | (make-variable-buffer-local 'PC-goto-end) | ||
| 200 | |||
| 190 | ;;;###autoload | 201 | ;;;###autoload |
| 191 | (define-minor-mode partial-completion-mode | 202 | (define-minor-mode partial-completion-mode |
| 192 | "Toggle Partial Completion mode. | 203 | "Toggle Partial Completion mode. |
| @@ -239,7 +250,16 @@ second TAB brings up the `*Completions*' buffer." | |||
| 239 | (if partial-completion-mode 'add-hook 'remove-hook) | 250 | (if partial-completion-mode 'add-hook 'remove-hook) |
| 240 | 'choose-completion-string-functions | 251 | 'choose-completion-string-functions |
| 241 | (lambda (choice buffer mini-p base-size) | 252 | (lambda (choice buffer mini-p base-size) |
| 242 | (if mini-p (goto-char (point-max))) | 253 | ;; When completing M-: (lisp- ) with point before the ), it is |
| 254 | ;; not appropriate to go to point-max (unlike the filename case). | ||
| 255 | (if (and (not PC-goto-end) | ||
| 256 | mini-p) | ||
| 257 | (goto-char (point-max)) | ||
| 258 | ;; Need a similar hack for the non-minibuffer-case -- gm. | ||
| 259 | (when PC-do-completion-end | ||
| 260 | (goto-char PC-do-completion-end) | ||
| 261 | (setq PC-do-completion-end nil))) | ||
| 262 | (setq PC-goto-end nil) | ||
| 243 | nil)) | 263 | nil)) |
| 244 | ;; Build the env-completion and mapping table. | 264 | ;; Build the env-completion and mapping table. |
| 245 | (when (and partial-completion-mode (null PC-env-vars-alist)) | 265 | (when (and partial-completion-mode (null PC-env-vars-alist)) |
| @@ -410,13 +430,19 @@ of `minibuffer-completion-table' and the minibuffer contents.") | |||
| 410 | (let ((result (try-completion string alist predicate))) | 430 | (let ((result (try-completion string alist predicate))) |
| 411 | (if (eq result t) string result))) | 431 | (if (eq result t) string result))) |
| 412 | 432 | ||
| 413 | (defun PC-do-completion (&optional mode beg end) | 433 | ;; TODO document MODE magic... |
| 434 | (defun PC-do-completion (&optional mode beg end goto-end) | ||
| 435 | "Internal function to do the work of partial completion. | ||
| 436 | Text to be completed lies between BEG and END. Normally when | ||
| 437 | replacing text in the minibuffer, this function replaces up to | ||
| 438 | point-max (as is appropriate for completing a file name). If | ||
| 439 | GOTO-END is non-nil, however, it instead replaces up to END." | ||
| 414 | (or beg (setq beg (minibuffer-prompt-end))) | 440 | (or beg (setq beg (minibuffer-prompt-end))) |
| 415 | (or end (setq end (point-max))) | 441 | (or end (setq end (point-max))) |
| 416 | (let* ((table minibuffer-completion-table) | 442 | (let* ((table minibuffer-completion-table) |
| 417 | (pred minibuffer-completion-predicate) | 443 | (pred minibuffer-completion-predicate) |
| 418 | (filename (funcall PC-completion-as-file-name-predicate)) | 444 | (filename (funcall PC-completion-as-file-name-predicate)) |
| 419 | (dirname nil) ; non-nil only if a filename is being completed | 445 | (dirname nil) ; non-nil only if a filename is being completed |
| 420 | ;; The following used to be "(dirlength 0)" which caused the erasure of | 446 | ;; The following used to be "(dirlength 0)" which caused the erasure of |
| 421 | ;; the entire buffer text before `point' when inserting a completion | 447 | ;; the entire buffer text before `point' when inserting a completion |
| 422 | ;; into a buffer. | 448 | ;; into a buffer. |
| @@ -681,7 +707,7 @@ of `minibuffer-completion-table' and the minibuffer contents.") | |||
| 681 | (forward-char 1) | 707 | (forward-char 1) |
| 682 | (if (and (< (point) end) | 708 | (if (and (< (point) end) |
| 683 | (and (looking-at " ") | 709 | (and (looking-at " ") |
| 684 | (memq (aref prefix i) | 710 | (memq (aref prefix i) |
| 685 | PC-delims-list))) | 711 | PC-delims-list))) |
| 686 | ;; replace " " by the actual delimiter | 712 | ;; replace " " by the actual delimiter |
| 687 | (progn | 713 | (progn |
| @@ -689,12 +715,12 @@ of `minibuffer-completion-table' and the minibuffer contents.") | |||
| 689 | (insert (substring prefix i (1+ i)))) | 715 | (insert (substring prefix i (1+ i)))) |
| 690 | ;; insert a new character | 716 | ;; insert a new character |
| 691 | (progn | 717 | (progn |
| 692 | (and filename (looking-at "\\*") | 718 | (and filename (looking-at "\\*") |
| 693 | (progn | 719 | (progn |
| 694 | (delete-char 1) | 720 | (delete-char 1) |
| 695 | (setq end (1- end)))) | 721 | (setq end (1- end)))) |
| 696 | (setq improved t) | 722 | (setq improved t) |
| 697 | (insert (substring prefix i (1+ i))) | 723 | (insert (substring prefix i (1+ i))) |
| 698 | (setq end (1+ end))))) | 724 | (setq end (1+ end))))) |
| 699 | (setq i (1+ i))) | 725 | (setq i (1+ i))) |
| 700 | (or pt (setq pt (point))) | 726 | (or pt (setq pt (point))) |
| @@ -729,7 +755,7 @@ of `minibuffer-completion-table' and the minibuffer contents.") | |||
| 729 | 755 | ||
| 730 | ;; We changed it... would it be complete without the space? | 756 | ;; We changed it... would it be complete without the space? |
| 731 | (if (test-completion (buffer-substring 1 (1- end)) | 757 | (if (test-completion (buffer-substring 1 (1- end)) |
| 732 | table pred) | 758 | table pred) |
| 733 | (delete-region (1- end) end))) | 759 | (delete-region (1- end) end))) |
| 734 | 760 | ||
| 735 | (if improved | 761 | (if improved |
| @@ -743,13 +769,30 @@ of `minibuffer-completion-table' and the minibuffer contents.") | |||
| 743 | (and completion-auto-help | 769 | (and completion-auto-help |
| 744 | (eq last-command this-command)) | 770 | (eq last-command this-command)) |
| 745 | (eq mode 'help)) | 771 | (eq mode 'help)) |
| 746 | (with-output-to-temp-buffer "*Completions*" | 772 | (let ((prompt-end (minibuffer-prompt-end))) |
| 747 | (display-completion-list (sort helpposs 'string-lessp)) | 773 | (with-output-to-temp-buffer "*Completions*" |
| 748 | (with-current-buffer standard-output | 774 | (display-completion-list (sort helpposs 'string-lessp)) |
| 749 | ;; Record which part of the buffer we are completing | 775 | (setq PC-do-completion-end end |
| 750 | ;; so that choosing a completion from the list | 776 | PC-goto-end goto-end) |
| 751 | ;; knows how much old text to replace. | 777 | (with-current-buffer standard-output |
| 752 | (setq completion-base-size dirlength))) | 778 | ;; Record which part of the buffer we are completing |
| 779 | ;; so that choosing a completion from the list | ||
| 780 | ;; knows how much old text to replace. | ||
| 781 | ;; This was briefly nil in the non-dirname case. | ||
| 782 | ;; However, if one calls PC-lisp-complete-symbol | ||
| 783 | ;; on "(ne-f" with point on the hyphen, PC offers | ||
| 784 | ;; all completions starting with "(ne", some of | ||
| 785 | ;; which do not match the "-f" part (maybe it | ||
| 786 | ;; should not, but it does). In such cases, | ||
| 787 | ;; completion gets confused trying to figure out | ||
| 788 | ;; how much to replace, so we tell it explicitly | ||
| 789 | ;; (ie, the number of chars in the buffer before beg). | ||
| 790 | ;; | ||
| 791 | ;; Note that choose-completion-string-functions | ||
| 792 | ;; plays around with point. | ||
| 793 | (setq completion-base-size (if dirname | ||
| 794 | dirlength | ||
| 795 | (- beg prompt-end)))))) | ||
| 753 | (PC-temp-minibuffer-message " [Next char not unique]")) | 796 | (PC-temp-minibuffer-message " [Next char not unique]")) |
| 754 | nil))))) | 797 | nil))))) |
| 755 | 798 | ||
| @@ -799,6 +842,10 @@ of `minibuffer-completion-table' and the minibuffer contents.") | |||
| 799 | (setq quit-flag nil | 842 | (setq quit-flag nil |
| 800 | unread-command-events '(7)))))))) | 843 | unread-command-events '(7)))))))) |
| 801 | 844 | ||
| 845 | ;; Does not need to be buffer-local (?) because only used when one | ||
| 846 | ;; PC-l-c-s immediately follows another. | ||
| 847 | (defvar PC-lisp-complete-end nil | ||
| 848 | "Internal variable used by `PC-lisp-complete-symbol'.") | ||
| 802 | 849 | ||
| 803 | (defun PC-lisp-complete-symbol () | 850 | (defun PC-lisp-complete-symbol () |
| 804 | "Perform completion on Lisp symbol preceding point. | 851 | "Perform completion on Lisp symbol preceding point. |
| @@ -811,6 +858,12 @@ Otherwise, all symbols with function definitions, values | |||
| 811 | or properties are considered." | 858 | or properties are considered." |
| 812 | (interactive) | 859 | (interactive) |
| 813 | (let* ((end (point)) | 860 | (let* ((end (point)) |
| 861 | ;; To complete the word under point, rather than just the portion | ||
| 862 | ;; before point, use this: | ||
| 863 | ;;; (save-excursion | ||
| 864 | ;;; (with-syntax-table lisp-mode-syntax-table | ||
| 865 | ;;; (forward-sexp 1) | ||
| 866 | ;;; (point)))) | ||
| 814 | (beg (save-excursion | 867 | (beg (save-excursion |
| 815 | (with-syntax-table lisp-mode-syntax-table | 868 | (with-syntax-table lisp-mode-syntax-table |
| 816 | (backward-sexp 1) | 869 | (backward-sexp 1) |
| @@ -825,7 +878,39 @@ or properties are considered." | |||
| 825 | (or (boundp sym) (fboundp sym) | 878 | (or (boundp sym) (fboundp sym) |
| 826 | (symbol-plist sym)))))) | 879 | (symbol-plist sym)))))) |
| 827 | (PC-not-minibuffer t)) | 880 | (PC-not-minibuffer t)) |
| 828 | (PC-do-completion nil beg end))) | 881 | ;; http://lists.gnu.org/archive/html/emacs-devel/2007-03/msg01211.html |
| 882 | ;; | ||
| 883 | ;; This deals with cases like running PC-l-c-s on "M-: (n-f". | ||
| 884 | ;; The first call to PC-l-c-s expands this to "(ne-f", and moves | ||
| 885 | ;; point to the hyphen [1]. If one calls PC-l-c-s immediately after, | ||
| 886 | ;; then without the last-command check, one is offered all | ||
| 887 | ;; completions of "(ne", which is presumably not what one wants. | ||
| 888 | ;; | ||
| 889 | ;; This is arguably (at least, it seems to be the existing intended | ||
| 890 | ;; behaviour) what one _does_ want if point has been explicitly | ||
| 891 | ;; positioned on the hyphen. Note that if PC-do-completion (qv) binds | ||
| 892 | ;; completion-base-size to nil, then completion does not replace the | ||
| 893 | ;; correct amount of text in such cases. | ||
| 894 | ;; | ||
| 895 | ;; Neither of these problems occur when using PC for filenames in the | ||
| 896 | ;; minibuffer, because in that case PC-do-completion is called without | ||
| 897 | ;; an explicit value for END, and so uses (point-max). This is fine for | ||
| 898 | ;; a filename, because the end of the filename must be at the end of | ||
| 899 | ;; the minibuffer. The same is not true for lisp symbols. | ||
| 900 | ;; | ||
| 901 | ;; [1] An alternate fix would be to not move point to the hyphen | ||
| 902 | ;; in such cases, but that would make the behaviour different from | ||
| 903 | ;; that for filenames. It seems PC moves point to the site of the | ||
| 904 | ;; first difference between the possible completions. | ||
| 905 | ;; | ||
| 906 | ;; Alternatively alternatively, maybe end should be computed in | ||
| 907 | ;; the same way as beg. That would change the behaviour though. | ||
| 908 | (if (equal last-command 'PC-lisp-complete-symbol) | ||
| 909 | (PC-do-completion nil beg PC-lisp-complete-end t) | ||
| 910 | (if PC-lisp-complete-end | ||
| 911 | (move-marker PC-lisp-complete-end end) | ||
| 912 | (setq PC-lisp-complete-end (copy-marker end t))) | ||
| 913 | (PC-do-completion nil beg end t)))) | ||
| 829 | 914 | ||
| 830 | (defun PC-complete-as-file-name () | 915 | (defun PC-complete-as-file-name () |
| 831 | "Perform completion on file names preceding point. | 916 | "Perform completion on file names preceding point. |
| @@ -1026,10 +1111,11 @@ absolute rather than relative to some directory on the SEARCH-PATH." | |||
| 1026 | (if (string-match "<\\([^\"<>]*\\)>?\\'" (ad-get-arg 0)) | 1111 | (if (string-match "<\\([^\"<>]*\\)>?\\'" (ad-get-arg 0)) |
| 1027 | (let* ((string (ad-get-arg 0)) | 1112 | (let* ((string (ad-get-arg 0)) |
| 1028 | (action (ad-get-arg 2)) | 1113 | (action (ad-get-arg 2)) |
| 1029 | (name (substring string (match-beginning 1) (match-end 1))) | 1114 | (name (match-string 1 string)) |
| 1030 | (str2 (substring string (match-beginning 0))) | 1115 | (str2 (substring string (match-beginning 0))) |
| 1031 | (completion-table | 1116 | (completion-table |
| 1032 | (mapcar (lambda (x) (format "<%s>" x)) | 1117 | (mapcar (lambda (x) |
| 1118 | (format (if (string-match "/\\'" x) "<%s" "<%s>") x)) | ||
| 1033 | (PC-include-file-all-completions | 1119 | (PC-include-file-all-completions |
| 1034 | name (PC-include-file-path))))) | 1120 | name (PC-include-file-path))))) |
| 1035 | (setq ad-return-value | 1121 | (setq ad-return-value |
diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el index d8fdf966374..4dae3bab018 100644 --- a/lisp/cus-edit.el +++ b/lisp/cus-edit.el | |||
| @@ -422,7 +422,7 @@ | |||
| 422 | :group 'development) | 422 | :group 'development) |
| 423 | 423 | ||
| 424 | (defgroup minibuffer nil | 424 | (defgroup minibuffer nil |
| 425 | "Controling the behavior of the minibuffer." | 425 | "Controlling the behavior of the minibuffer." |
| 426 | :link '(custom-manual "(emacs)Minibuffer") | 426 | :link '(custom-manual "(emacs)Minibuffer") |
| 427 | :group 'environment) | 427 | :group 'environment) |
| 428 | 428 | ||
| @@ -443,7 +443,7 @@ | |||
| 443 | :group 'environment) | 443 | :group 'environment) |
| 444 | 444 | ||
| 445 | (defgroup auto-save nil | 445 | (defgroup auto-save nil |
| 446 | "Preventing accidential loss of data." | 446 | "Preventing accidental loss of data." |
| 447 | :group 'files) | 447 | :group 'files) |
| 448 | 448 | ||
| 449 | (defgroup processes-basics nil | 449 | (defgroup processes-basics nil |
diff --git a/lisp/cus-start.el b/lisp/cus-start.el index b7aa673f1b8..a4f5d580718 100644 --- a/lisp/cus-start.el +++ b/lisp/cus-start.el | |||
| @@ -338,7 +338,11 @@ since it could result in memory overflow and make Emacs crash." | |||
| 338 | (split-height-threshold windows integer) | 338 | (split-height-threshold windows integer) |
| 339 | (window-min-height windows integer) | 339 | (window-min-height windows integer) |
| 340 | (window-min-width windows integer) | 340 | (window-min-width windows integer) |
| 341 | (scroll-preserve-screen-position windows boolean) | 341 | (scroll-preserve-screen-position |
| 342 | windows (choice | ||
| 343 | (const :tag "Off (nil)" :value nil) | ||
| 344 | (const :tag "Full screen (t)" :value t) | ||
| 345 | (other :tag "Always" 1))) | ||
| 342 | (display-buffer-reuse-frames windows boolean "21.1") | 346 | (display-buffer-reuse-frames windows boolean "21.1") |
| 343 | ;; xdisp.c | 347 | ;; xdisp.c |
| 344 | (scroll-step windows integer) | 348 | (scroll-step windows integer) |
diff --git a/lisp/desktop.el b/lisp/desktop.el index 4328b8e3839..92f6a448574 100644 --- a/lisp/desktop.el +++ b/lisp/desktop.el | |||
| @@ -45,9 +45,9 @@ | |||
| 45 | ;; "Saving Emacs Sessions" in the GNU Emacs Manual. | 45 | ;; "Saving Emacs Sessions" in the GNU Emacs Manual. |
| 46 | 46 | ||
| 47 | ;; When the desktop module is loaded, the function `desktop-kill' is | 47 | ;; When the desktop module is loaded, the function `desktop-kill' is |
| 48 | ;; added to the `kill-emacs-hook'. This function is responsible for | 48 | ;; added to the `kill-emacs-hook'. This function is responsible for |
| 49 | ;; saving the desktop when Emacs is killed. Furthermore an anonymous | 49 | ;; saving the desktop when Emacs is killed. Furthermore an anonymous |
| 50 | ;; function is added to the `after-init-hook'. This function is | 50 | ;; function is added to the `after-init-hook'. This function is |
| 51 | ;; responsible for loading the desktop when Emacs is started. | 51 | ;; responsible for loading the desktop when Emacs is started. |
| 52 | 52 | ||
| 53 | ;; Special handling. | 53 | ;; Special handling. |
| @@ -55,12 +55,12 @@ | |||
| 55 | ;; Variables `desktop-buffer-mode-handlers' and `desktop-minor-mode-handlers' | 55 | ;; Variables `desktop-buffer-mode-handlers' and `desktop-minor-mode-handlers' |
| 56 | ;; are supplied to handle special major and minor modes respectively. | 56 | ;; are supplied to handle special major and minor modes respectively. |
| 57 | ;; `desktop-buffer-mode-handlers' is an alist of major mode specific functions | 57 | ;; `desktop-buffer-mode-handlers' is an alist of major mode specific functions |
| 58 | ;; to restore a desktop buffer. Elements must have the form | 58 | ;; to restore a desktop buffer. Elements must have the form |
| 59 | ;; | 59 | ;; |
| 60 | ;; (MAJOR-MODE . RESTORE-BUFFER-FUNCTION). | 60 | ;; (MAJOR-MODE . RESTORE-BUFFER-FUNCTION). |
| 61 | ;; | 61 | ;; |
| 62 | ;; Functions listed are called by `desktop-create-buffer' when `desktop-read' | 62 | ;; Functions listed are called by `desktop-create-buffer' when `desktop-read' |
| 63 | ;; evaluates the desktop file. Buffers with a major mode not specified here, | 63 | ;; evaluates the desktop file. Buffers with a major mode not specified here, |
| 64 | ;; are restored by the default handler `desktop-restore-file-buffer'. | 64 | ;; are restored by the default handler `desktop-restore-file-buffer'. |
| 65 | ;; `desktop-minor-mode-handlers' is an alist of functions to restore | 65 | ;; `desktop-minor-mode-handlers' is an alist of functions to restore |
| 66 | ;; non-standard minor modes. Elements must have the form | 66 | ;; non-standard minor modes. Elements must have the form |
| @@ -85,7 +85,7 @@ | |||
| 85 | ;; '(bar-mode . bar-desktop-restore)) | 85 | ;; '(bar-mode . bar-desktop-restore)) |
| 86 | 86 | ||
| 87 | ;; in the module itself, and make shure that the mode function is | 87 | ;; in the module itself, and make shure that the mode function is |
| 88 | ;; autoloaded. See the docstrings of `desktop-buffer-mode-handlers' and | 88 | ;; autoloaded. See the docstrings of `desktop-buffer-mode-handlers' and |
| 89 | ;; `desktop-minor-mode-handlers' for more info. | 89 | ;; `desktop-minor-mode-handlers' for more info. |
| 90 | 90 | ||
| 91 | ;; Minor modes. | 91 | ;; Minor modes. |
| @@ -100,7 +100,7 @@ | |||
| 100 | ;; The variables `desktop-minor-mode-table' and `desktop-minor-mode-handlers' | 100 | ;; The variables `desktop-minor-mode-table' and `desktop-minor-mode-handlers' |
| 101 | ;; are used to handle non-conventional minor modes. `desktop-save' uses | 101 | ;; are used to handle non-conventional minor modes. `desktop-save' uses |
| 102 | ;; `desktop-minor-mode-table' to map minor mode variables to minor mode | 102 | ;; `desktop-minor-mode-table' to map minor mode variables to minor mode |
| 103 | ;; functions before writing `desktop-minor-modes'. If a minor mode has a | 103 | ;; functions before writing `desktop-minor-modes'. If a minor mode has a |
| 104 | ;; variable name that is different form its function name, an entry | 104 | ;; variable name that is different form its function name, an entry |
| 105 | 105 | ||
| 106 | ;; (NAME RESTORE-FUNCTION) | 106 | ;; (NAME RESTORE-FUNCTION) |
| @@ -619,8 +619,7 @@ QUOTE may be `may' (value may be quoted), | |||
| 619 | (setq newlist (cons q.txt newlist))) | 619 | (setq newlist (cons q.txt newlist))) |
| 620 | (setq p (cdr p))) | 620 | (setq p (cdr p))) |
| 621 | (if p | 621 | (if p |
| 622 | (let ((last (desktop-internal-v2s p)) | 622 | (let ((last (desktop-internal-v2s p))) |
| 623 | (el (car newlist))) | ||
| 624 | (or anynil (setq anynil (null (car last)))) | 623 | (or anynil (setq anynil (null (car last)))) |
| 625 | (or anynil | 624 | (or anynil |
| 626 | (setq newlist (cons '(must . ".") newlist))) | 625 | (setq newlist (cons '(must . ".") newlist))) |
| @@ -782,7 +781,8 @@ See also `desktop-base-file-name'." | |||
| 782 | ";; Desktop file format version " desktop-file-version "\n" | 781 | ";; Desktop file format version " desktop-file-version "\n" |
| 783 | ";; Emacs version " emacs-version "\n\n" | 782 | ";; Emacs version " emacs-version "\n\n" |
| 784 | ";; Global section:\n") | 783 | ";; Global section:\n") |
| 785 | (mapc (function desktop-outvar) desktop-globals-to-save) | 784 | (dolist (varspec desktop-globals-to-save) |
| 785 | (desktop-outvar varspec)) | ||
| 786 | (if (memq 'kill-ring desktop-globals-to-save) | 786 | (if (memq 'kill-ring desktop-globals-to-save) |
| 787 | (insert | 787 | (insert |
| 788 | "(setq kill-ring-yank-pointer (nthcdr " | 788 | "(setq kill-ring-yank-pointer (nthcdr " |
| @@ -790,22 +790,20 @@ See also `desktop-base-file-name'." | |||
| 790 | " kill-ring))\n")) | 790 | " kill-ring))\n")) |
| 791 | 791 | ||
| 792 | (insert "\n;; Buffer section -- buffers listed in same order as in buffer list:\n") | 792 | (insert "\n;; Buffer section -- buffers listed in same order as in buffer list:\n") |
| 793 | (mapc #'(lambda (l) | 793 | (dolist (l info) |
| 794 | (when (apply 'desktop-save-buffer-p l) | 794 | (when (apply 'desktop-save-buffer-p l) |
| 795 | (insert "(" | 795 | (insert "(" |
| 796 | (if (or (not (integerp eager)) | 796 | (if (or (not (integerp eager)) |
| 797 | (unless (zerop eager) | 797 | (unless (zerop eager) |
| 798 | (setq eager (1- eager)) | 798 | (setq eager (1- eager)) |
| 799 | t)) | 799 | t)) |
| 800 | "desktop-create-buffer" | 800 | "desktop-create-buffer" |
| 801 | "desktop-append-buffer-args") | 801 | "desktop-append-buffer-args") |
| 802 | " " | 802 | " " |
| 803 | desktop-file-version) | 803 | desktop-file-version) |
| 804 | (mapc #'(lambda (e) | 804 | (dolist (e l) |
| 805 | (insert "\n " (desktop-value-to-string e))) | 805 | (insert "\n " (desktop-value-to-string e))) |
| 806 | l) | 806 | (insert ")\n\n"))) |
| 807 | (insert ")\n\n"))) | ||
| 808 | info) | ||
| 809 | (setq default-directory dirname) | 807 | (setq default-directory dirname) |
| 810 | (let ((coding-system-for-write 'emacs-mule)) | 808 | (let ((coding-system-for-write 'emacs-mule)) |
| 811 | (write-region (point-min) (point-max) filename nil 'nomessage))))) | 809 | (write-region (point-min) (point-max) filename nil 'nomessage))))) |
| @@ -941,14 +939,13 @@ directory DIRNAME." | |||
| 941 | (desktop-clear) | 939 | (desktop-clear) |
| 942 | (desktop-read desktop-dirname)) | 940 | (desktop-read desktop-dirname)) |
| 943 | 941 | ||
| 942 | (defvar desktop-buffer-major-mode) | ||
| 943 | (defvar desktop-buffer-locals) | ||
| 944 | ;; ---------------------------------------------------------------------------- | 944 | ;; ---------------------------------------------------------------------------- |
| 945 | (defun desktop-restore-file-buffer (desktop-buffer-file-name | 945 | (defun desktop-restore-file-buffer (desktop-buffer-file-name |
| 946 | desktop-buffer-name | 946 | desktop-buffer-name |
| 947 | desktop-buffer-misc) | 947 | desktop-buffer-misc) |
| 948 | "Restore a file buffer." | 948 | "Restore a file buffer." |
| 949 | (eval-when-compile ; Just to silence the byte compiler | ||
| 950 | (defvar desktop-buffer-major-mode) | ||
| 951 | (defvar desktop-buffer-locals)) | ||
| 952 | (if desktop-buffer-file-name | 949 | (if desktop-buffer-file-name |
| 953 | (if (or (file-exists-p desktop-buffer-file-name) | 950 | (if (or (file-exists-p desktop-buffer-file-name) |
| 954 | (let ((msg (format "Desktop: File \"%s\" no longer exists." | 951 | (let ((msg (format "Desktop: File \"%s\" no longer exists." |
| @@ -985,8 +982,12 @@ directory DIRNAME." | |||
| 985 | ;; called from Desktop file only. | 982 | ;; called from Desktop file only. |
| 986 | 983 | ||
| 987 | ;; Just to silence the byte compiler. | 984 | ;; Just to silence the byte compiler. |
| 988 | (eval-when-compile | 985 | |
| 989 | (defvar desktop-first-buffer)) ; Dynamically bound in `desktop-read' | 986 | (defvar desktop-first-buffer) ; Dynamically bound in `desktop-read' |
| 987 | |||
| 988 | ;; Bound locally in `desktop-read'. | ||
| 989 | (defvar desktop-buffer-ok-count) | ||
| 990 | (defvar desktop-buffer-fail-count) | ||
| 990 | 991 | ||
| 991 | (defun desktop-create-buffer | 992 | (defun desktop-create-buffer |
| 992 | (desktop-file-version | 993 | (desktop-file-version |
| @@ -1000,10 +1001,6 @@ directory DIRNAME." | |||
| 1000 | desktop-buffer-misc | 1001 | desktop-buffer-misc |
| 1001 | &optional | 1002 | &optional |
| 1002 | desktop-buffer-locals) | 1003 | desktop-buffer-locals) |
| 1003 | ;; Just to silence the byte compiler. Bound locally in `desktop-read'. | ||
| 1004 | (eval-when-compile | ||
| 1005 | (defvar desktop-buffer-ok-count) | ||
| 1006 | (defvar desktop-buffer-fail-count)) | ||
| 1007 | ;; To make desktop files with relative file names possible, we cannot | 1004 | ;; To make desktop files with relative file names possible, we cannot |
| 1008 | ;; allow `default-directory' to change. Therefore we save current buffer. | 1005 | ;; allow `default-directory' to change. Therefore we save current buffer. |
| 1009 | (save-current-buffer | 1006 | (save-current-buffer |
| @@ -1045,21 +1042,22 @@ directory DIRNAME." | |||
| 1045 | ((equal '(nil) desktop-buffer-minor-modes) ; backwards compatible | 1042 | ((equal '(nil) desktop-buffer-minor-modes) ; backwards compatible |
| 1046 | (auto-fill-mode 0)) | 1043 | (auto-fill-mode 0)) |
| 1047 | (t | 1044 | (t |
| 1048 | (mapc #'(lambda (minor-mode) | 1045 | (dolist (minor-mode desktop-buffer-minor-modes) |
| 1049 | ;; Give minor mode module a chance to add a handler. | 1046 | ;; Give minor mode module a chance to add a handler. |
| 1050 | (desktop-load-file minor-mode) | 1047 | (desktop-load-file minor-mode) |
| 1051 | (let ((handler (cdr (assq minor-mode desktop-minor-mode-handlers)))) | 1048 | (let ((handler (cdr (assq minor-mode desktop-minor-mode-handlers)))) |
| 1052 | (if handler | 1049 | (if handler |
| 1053 | (funcall handler desktop-buffer-locals) | 1050 | (funcall handler desktop-buffer-locals) |
| 1054 | (when (functionp minor-mode) | 1051 | (when (functionp minor-mode) |
| 1055 | (funcall minor-mode 1))))) | 1052 | (funcall minor-mode 1))))))) |
| 1056 | desktop-buffer-minor-modes))) | 1053 | ;; Even though point and mark are non-nil when written by |
| 1057 | ;; Even though point and mark are non-nil when written by `desktop-save', | 1054 | ;; `desktop-save', they may be modified by handlers wanting to set |
| 1058 | ;; they may be modified by handlers wanting to set point or mark themselves. | 1055 | ;; point or mark themselves. |
| 1059 | (when desktop-buffer-point | 1056 | (when desktop-buffer-point |
| 1060 | (goto-char | 1057 | (goto-char |
| 1061 | (condition-case err | 1058 | (condition-case err |
| 1062 | ;; Evaluate point. Thus point can be something like '(search-forward ... | 1059 | ;; Evaluate point. Thus point can be something like |
| 1060 | ;; '(search-forward ... | ||
| 1063 | (eval desktop-buffer-point) | 1061 | (eval desktop-buffer-point) |
| 1064 | (error (message "%s" (error-message-string err)) 1)))) | 1062 | (error (message "%s" (error-message-string err)) 1)))) |
| 1065 | (when desktop-buffer-mark | 1063 | (when desktop-buffer-mark |
| @@ -1167,7 +1165,7 @@ If there are no buffers left to create, kill the timer." | |||
| 1167 | ;; functions are processed after `after-init-hook'. | 1165 | ;; functions are processed after `after-init-hook'. |
| 1168 | (add-hook | 1166 | (add-hook |
| 1169 | 'after-init-hook | 1167 | 'after-init-hook |
| 1170 | '(lambda () | 1168 | (lambda () |
| 1171 | (let ((key "--no-desktop")) | 1169 | (let ((key "--no-desktop")) |
| 1172 | (when (member key command-line-args) | 1170 | (when (member key command-line-args) |
| 1173 | (setq command-line-args (delete key command-line-args)) | 1171 | (setq command-line-args (delete key command-line-args)) |
| @@ -1176,5 +1174,5 @@ If there are no buffers left to create, kill the timer." | |||
| 1176 | 1174 | ||
| 1177 | (provide 'desktop) | 1175 | (provide 'desktop) |
| 1178 | 1176 | ||
| 1179 | ;;; arch-tag: 221907c3-1771-4fd3-9c2e-c6f700c6ede9 | 1177 | ;; arch-tag: 221907c3-1771-4fd3-9c2e-c6f700c6ede9 |
| 1180 | ;;; desktop.el ends here | 1178 | ;;; desktop.el ends here |
diff --git a/lisp/dframe.el b/lisp/dframe.el index a640540a46a..eda6d45bf21 100644 --- a/lisp/dframe.el +++ b/lisp/dframe.el | |||
| @@ -354,9 +354,7 @@ CREATE-HOOK are hooks to run after creating a frame." | |||
| 354 | t)))) | 354 | t)))) |
| 355 | ;; Enable mouse tracking in emacs | 355 | ;; Enable mouse tracking in emacs |
| 356 | (if dframe-track-mouse-function | 356 | (if dframe-track-mouse-function |
| 357 | (set (make-local-variable 'track-mouse) t)) ;this could be messy. | 357 | (set (make-local-variable 'track-mouse) t))) ;this could be messy. |
| 358 | ;; disable auto-show-mode for Emacs | ||
| 359 | (setq auto-show-mode nil)) | ||
| 360 | ;;;; DISABLED: This causes problems for users with multiple frames. | 358 | ;;;; DISABLED: This causes problems for users with multiple frames. |
| 361 | ;;;; ;; Set this up special just for the passed in buffer | 359 | ;;;; ;; Set this up special just for the passed in buffer |
| 362 | ;;;; ;; Terminal minibuffer stuff does not require this. | 360 | ;;;; ;; Terminal minibuffer stuff does not require this. |
diff --git a/lisp/diff-mode.el b/lisp/diff-mode.el index 543e1bd6a39..3cd2fb37dbb 100644 --- a/lisp/diff-mode.el +++ b/lisp/diff-mode.el | |||
| @@ -985,8 +985,7 @@ See `after-change-functions' for the meaning of BEG, END and LEN." | |||
| 985 | (define-derived-mode diff-mode fundamental-mode "Diff" | 985 | (define-derived-mode diff-mode fundamental-mode "Diff" |
| 986 | "Major mode for viewing/editing context diffs. | 986 | "Major mode for viewing/editing context diffs. |
| 987 | Supports unified and context diffs as well as (to a lesser extent) | 987 | Supports unified and context diffs as well as (to a lesser extent) |
| 988 | normal diffs. If you edit the buffer manually, diff-mode will try | 988 | normal diffs. |
| 989 | to update the hunk headers for you on-the-fly. | ||
| 990 | 989 | ||
| 991 | When the buffer is read-only, the ESC prefix is not necessary. | 990 | When the buffer is read-only, the ESC prefix is not necessary. |
| 992 | If you edit the buffer manually, diff-mode will try to update the hunk | 991 | If you edit the buffer manually, diff-mode will try to update the hunk |
| @@ -996,9 +995,6 @@ You can also switch between context diff and unified diff with \\[diff-context-> | |||
| 996 | or vice versa with \\[diff-unified->context] and you can also reverse the direction of | 995 | or vice versa with \\[diff-unified->context] and you can also reverse the direction of |
| 997 | a diff with \\[diff-reverse-direction]. | 996 | a diff with \\[diff-reverse-direction]. |
| 998 | 997 | ||
| 999 | When the buffer is read-only, the Meta- modifier is not necessary | ||
| 1000 | to run the Diff mode commands: | ||
| 1001 | |||
| 1002 | \\{diff-mode-map}" | 998 | \\{diff-mode-map}" |
| 1003 | 999 | ||
| 1004 | (set (make-local-variable 'font-lock-defaults) diff-font-lock-defaults) | 1000 | (set (make-local-variable 'font-lock-defaults) diff-font-lock-defaults) |
diff --git a/lisp/dired-x.el b/lisp/dired-x.el index 1a1cdd5a542..f5e6250b475 100644 --- a/lisp/dired-x.el +++ b/lisp/dired-x.el | |||
| @@ -45,12 +45,8 @@ | |||
| 45 | ;; (add-hook 'dired-load-hook | 45 | ;; (add-hook 'dired-load-hook |
| 46 | ;; (function (lambda () | 46 | ;; (function (lambda () |
| 47 | ;; (load "dired-x") | 47 | ;; (load "dired-x") |
| 48 | ;; ;; Set global variables here. For example: | 48 | ;; ;; Set variables here. For example: |
| 49 | ;; ;; (setq dired-guess-shell-gnutar "gtar") | 49 | ;; ;; (setq dired-guess-shell-gnutar "gtar") |
| 50 | ;; ))) | ||
| 51 | ;; (add-hook 'dired-mode-hook | ||
| 52 | ;; (function (lambda () | ||
| 53 | ;; ;; Set buffer-local variables here. For example: | ||
| 54 | ;; ;; (dired-omit-mode 1) | 50 | ;; ;; (dired-omit-mode 1) |
| 55 | ;; ))) | 51 | ;; ))) |
| 56 | ;; | 52 | ;; |
| @@ -1130,17 +1126,11 @@ You can set this variable in your ~/.emacs. For example, to add rules for | |||
| 1130 | :group 'dired-x | 1126 | :group 'dired-x |
| 1131 | :type '(alist :key-type regexp :value-type (repeat sexp))) | 1127 | :type '(alist :key-type regexp :value-type (repeat sexp))) |
| 1132 | 1128 | ||
| 1133 | (defcustom dired-guess-shell-case-fold-search t | ||
| 1134 | "If non-nil, `dired-guess-shell-alist-default' and | ||
| 1135 | `dired-guess-shell-alist-user' are matched case-insensitively." | ||
| 1136 | :group 'dired-x | ||
| 1137 | :type 'boolean) | ||
| 1138 | |||
| 1139 | (defun dired-guess-default (files) | 1129 | (defun dired-guess-default (files) |
| 1140 | "Guess a shell commands for FILES. Return command or list of commands. | 1130 | "Guess a shell commands for FILES. Return command or list of commands. |
| 1141 | See `dired-guess-shell-alist-user'." | 1131 | See `dired-guess-shell-alist-user'." |
| 1142 | 1132 | ||
| 1143 | (let* ((case-fold-search dired-guess-shell-case-fold-search) | 1133 | (let* ((case-fold-search t) |
| 1144 | ;; Prepend the user's alist to the default alist. | 1134 | ;; Prepend the user's alist to the default alist. |
| 1145 | (alist (append dired-guess-shell-alist-user | 1135 | (alist (append dired-guess-shell-alist-user |
| 1146 | dired-guess-shell-alist-default)) | 1136 | dired-guess-shell-alist-default)) |
diff --git a/lisp/dnd.el b/lisp/dnd.el index 2b523476a4f..df081539cf0 100644 --- a/lisp/dnd.el +++ b/lisp/dnd.el | |||
| @@ -146,7 +146,7 @@ Return nil if URI is not a local file." | |||
| 146 | (substring uri (match-end 0)))))) | 146 | (substring uri (match-end 0)))))) |
| 147 | (when (and f must-exist) | 147 | (when (and f must-exist) |
| 148 | (setq f (replace-regexp-in-string | 148 | (setq f (replace-regexp-in-string |
| 149 | "%[A-Z0-9][A-Z0-9]" | 149 | "%[A-Fa-f0-9][A-Fa-f0-9]" |
| 150 | (lambda (arg) | 150 | (lambda (arg) |
| 151 | (format "%c" (string-to-number (substring arg 1) 16))) | 151 | (format "%c" (string-to-number (substring arg 1) 16))) |
| 152 | f nil t)) | 152 | f nil t)) |
diff --git a/lisp/dos-w32.el b/lisp/dos-w32.el index 94ba5def7b5..aeebb9c3d08 100644 --- a/lisp/dos-w32.el +++ b/lisp/dos-w32.el | |||
| @@ -74,6 +74,9 @@ against the file name, and TYPE is nil for text, t for binary.") | |||
| 74 | (setq alist (cdr alist))) | 74 | (setq alist (cdr alist))) |
| 75 | found))) | 75 | found))) |
| 76 | 76 | ||
| 77 | ;; Silence compiler. Defined in src/buffer.c on DOS_NT. | ||
| 78 | (defvar default-buffer-file-type) | ||
| 79 | |||
| 77 | ;; Don't check for untranslated file systems here. | 80 | ;; Don't check for untranslated file systems here. |
| 78 | (defun find-buffer-file-type (filename) | 81 | (defun find-buffer-file-type (filename) |
| 79 | (let ((match (find-buffer-file-type-match filename)) | 82 | (let ((match (find-buffer-file-type-match filename)) |
diff --git a/lisp/emacs-lisp/authors.el b/lisp/emacs-lisp/authors.el index d93d80e0c8e..31464269567 100644 --- a/lisp/emacs-lisp/authors.el +++ b/lisp/emacs-lisp/authors.el | |||
| @@ -688,5 +688,7 @@ the Emacs source tree, from which to build the file." | |||
| 688 | (authors root) | 688 | (authors root) |
| 689 | (write-file file))) | 689 | (write-file file))) |
| 690 | 690 | ||
| 691 | (provide 'authors) | ||
| 692 | |||
| 691 | ;;; arch-tag: 659d5900-5ff2-43b0-954c-a315cc1e4dc1 | 693 | ;;; arch-tag: 659d5900-5ff2-43b0-954c-a315cc1e4dc1 |
| 692 | ;;; authors.el ends here | 694 | ;;; authors.el ends here |
diff --git a/lisp/emacs-lisp/byte-opt.el b/lisp/emacs-lisp/byte-opt.el index dd7e042499c..2c9dc8e3314 100644 --- a/lisp/emacs-lisp/byte-opt.el +++ b/lisp/emacs-lisp/byte-opt.el | |||
| @@ -545,8 +545,8 @@ | |||
| 545 | (eq (car-safe (nth 2 last)) 'cdr) | 545 | (eq (car-safe (nth 2 last)) 'cdr) |
| 546 | (eq (cadr (nth 2 last)) var)))) | 546 | (eq (cadr (nth 2 last)) var)))) |
| 547 | (progn | 547 | (progn |
| 548 | (byte-compile-warn "value returned by `%s' is not used" | 548 | (byte-compile-warn "value returned from %s is unused" |
| 549 | (prin1-to-string (car form))) | 549 | (prin1-to-string form)) |
| 550 | nil))) | 550 | nil))) |
| 551 | (byte-compile-log " %s called for effect; deleted" fn) | 551 | (byte-compile-log " %s called for effect; deleted" fn) |
| 552 | ;; appending a nil here might not be necessary, but it can't hurt. | 552 | ;; appending a nil here might not be necessary, but it can't hurt. |
| @@ -557,8 +557,20 @@ | |||
| 557 | ;; Otherwise, no args can be considered to be for-effect, | 557 | ;; Otherwise, no args can be considered to be for-effect, |
| 558 | ;; even if the called function is for-effect, because we | 558 | ;; even if the called function is for-effect, because we |
| 559 | ;; don't know anything about that function. | 559 | ;; don't know anything about that function. |
| 560 | (cons fn (mapcar 'byte-optimize-form (cdr form))))))) | 560 | (let ((args (mapcar #'byte-optimize-form (cdr form)))) |
| 561 | 561 | (if (and (get fn 'pure) | |
| 562 | (byte-optimize-all-constp args)) | ||
| 563 | (list 'quote (apply fn (mapcar #'eval args))) | ||
| 564 | (cons fn args))))))) | ||
| 565 | |||
| 566 | (defun byte-optimize-all-constp (list) | ||
| 567 | "Non-nil iff all elements of LIST satisfy `byte-compile-constp'." | ||
| 568 | (let ((constant t)) | ||
| 569 | (while (and list constant) | ||
| 570 | (unless (byte-compile-constp (car list)) | ||
| 571 | (setq constant nil)) | ||
| 572 | (setq list (cdr list))) | ||
| 573 | constant)) | ||
| 562 | 574 | ||
| 563 | (defun byte-optimize-form (form &optional for-effect) | 575 | (defun byte-optimize-form (form &optional for-effect) |
| 564 | "The source-level pass of the optimizer." | 576 | "The source-level pass of the optimizer." |
| @@ -1117,55 +1129,6 @@ | |||
| 1117 | (byte-optimize-predicate form)) | 1129 | (byte-optimize-predicate form)) |
| 1118 | form)) | 1130 | form)) |
| 1119 | 1131 | ||
| 1120 | (put 'concat 'byte-optimizer 'byte-optimize-pure-func) | ||
| 1121 | (put 'symbol-name 'byte-optimizer 'byte-optimize-pure-func) | ||
| 1122 | (put 'regexp-opt 'byte-optimizer 'byte-optimize-pure-func) | ||
| 1123 | (put 'regexp-quote 'byte-optimizer 'byte-optimize-pure-func) | ||
| 1124 | (put 'string-to-syntax 'byte-optimizer 'byte-optimize-pure-func) | ||
| 1125 | (defun byte-optimize-pure-func (form) | ||
| 1126 | "Do constant folding for pure functions. | ||
| 1127 | This assumes that the function will not have any side-effects and that | ||
| 1128 | its return value depends solely on its arguments. | ||
| 1129 | If the function can signal an error, this might change the semantics | ||
| 1130 | of FORM by signaling the error at compile-time." | ||
| 1131 | (let ((args (cdr form)) | ||
| 1132 | (constant t)) | ||
| 1133 | (while (and args constant) | ||
| 1134 | (or (byte-compile-constp (car args)) | ||
| 1135 | (setq constant nil)) | ||
| 1136 | (setq args (cdr args))) | ||
| 1137 | (if constant | ||
| 1138 | (list 'quote (eval form)) | ||
| 1139 | form))) | ||
| 1140 | |||
| 1141 | ;; Avoid having to write forward-... with a negative arg for speed. | ||
| 1142 | ;; Fixme: don't be limited to constant args. | ||
| 1143 | (put 'backward-char 'byte-optimizer 'byte-optimize-backward-char) | ||
| 1144 | (defun byte-optimize-backward-char (form) | ||
| 1145 | (cond ((and (= 2 (safe-length form)) | ||
| 1146 | (numberp (nth 1 form))) | ||
| 1147 | (list 'forward-char (eval (- (nth 1 form))))) | ||
| 1148 | ((= 1 (safe-length form)) | ||
| 1149 | '(forward-char -1)) | ||
| 1150 | (t form))) | ||
| 1151 | |||
| 1152 | (put 'backward-word 'byte-optimizer 'byte-optimize-backward-word) | ||
| 1153 | (defun byte-optimize-backward-word (form) | ||
| 1154 | (cond ((and (= 2 (safe-length form)) | ||
| 1155 | (numberp (nth 1 form))) | ||
| 1156 | (list 'forward-word (eval (- (nth 1 form))))) | ||
| 1157 | ((= 1 (safe-length form)) | ||
| 1158 | '(forward-word -1)) | ||
| 1159 | (t form))) | ||
| 1160 | |||
| 1161 | (put 'char-before 'byte-optimizer 'byte-optimize-char-before) | ||
| 1162 | (defun byte-optimize-char-before (form) | ||
| 1163 | (cond ((= 2 (safe-length form)) | ||
| 1164 | `(char-after (1- ,(nth 1 form)))) | ||
| 1165 | ((= 1 (safe-length form)) | ||
| 1166 | '(char-after (1- (point)))) | ||
| 1167 | (t form))) | ||
| 1168 | |||
| 1169 | ;; Fixme: delete-char -> delete-region (byte-coded) | 1132 | ;; Fixme: delete-char -> delete-region (byte-coded) |
| 1170 | ;; optimize string-as-unibyte, string-as-multibyte, string-make-unibyte, | 1133 | ;; optimize string-as-unibyte, string-as-multibyte, string-make-unibyte, |
| 1171 | ;; string-make-multibyte for constant args. | 1134 | ;; string-make-multibyte for constant args. |
| @@ -1290,6 +1253,18 @@ of FORM by signaling the error at compile-time." | |||
| 1290 | (setq side-effect-and-error-free-fns (cdr side-effect-and-error-free-fns))) | 1253 | (setq side-effect-and-error-free-fns (cdr side-effect-and-error-free-fns))) |
| 1291 | nil) | 1254 | nil) |
| 1292 | 1255 | ||
| 1256 | |||
| 1257 | ;; pure functions are side-effect free functions whose values depend | ||
| 1258 | ;; only on their arguments. For these functions, calls with constant | ||
| 1259 | ;; arguments can be evaluated at compile time. This may shift run time | ||
| 1260 | ;; errors to compile time. | ||
| 1261 | |||
| 1262 | (let ((pure-fns | ||
| 1263 | '(concat symbol-name regexp-opt regexp-quote string-to-syntax))) | ||
| 1264 | (while pure-fns | ||
| 1265 | (put (car pure-fns) 'pure t) | ||
| 1266 | (setq pure-fns (cdr pure-fns))) | ||
| 1267 | nil) | ||
| 1293 | 1268 | ||
| 1294 | (defun byte-compile-splice-in-already-compiled-code (form) | 1269 | (defun byte-compile-splice-in-already-compiled-code (form) |
| 1295 | ;; form is (byte-code "..." [...] n) | 1270 | ;; form is (byte-code "..." [...] n) |
diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el index f74e48c4635..f1761c125ac 100644 --- a/lisp/emacs-lisp/bytecomp.el +++ b/lisp/emacs-lisp/bytecomp.el | |||
| @@ -2341,7 +2341,7 @@ list that represents a doc string reference. | |||
| 2341 | (eq (car (car (cdr tail))) 'declare)) | 2341 | (eq (car (car (cdr tail))) 'declare)) |
| 2342 | (let ((declaration (car (cdr tail)))) | 2342 | (let ((declaration (car (cdr tail)))) |
| 2343 | (setcdr tail (cdr (cdr tail))) | 2343 | (setcdr tail (cdr (cdr tail))) |
| 2344 | (princ `(if macro-declaration-function | 2344 | (prin1 `(if macro-declaration-function |
| 2345 | (funcall macro-declaration-function | 2345 | (funcall macro-declaration-function |
| 2346 | ',name ',declaration)) | 2346 | ',name ',declaration)) |
| 2347 | outbuffer))))) | 2347 | outbuffer))))) |
| @@ -3148,6 +3148,9 @@ That command is designed for interactive use only" fn)) | |||
| 3148 | 3148 | ||
| 3149 | ;; more complicated compiler macros | 3149 | ;; more complicated compiler macros |
| 3150 | 3150 | ||
| 3151 | (byte-defop-compiler char-before) | ||
| 3152 | (byte-defop-compiler backward-char) | ||
| 3153 | (byte-defop-compiler backward-word) | ||
| 3151 | (byte-defop-compiler list) | 3154 | (byte-defop-compiler list) |
| 3152 | (byte-defop-compiler concat) | 3155 | (byte-defop-compiler concat) |
| 3153 | (byte-defop-compiler fset) | 3156 | (byte-defop-compiler fset) |
| @@ -3159,6 +3162,34 @@ That command is designed for interactive use only" fn)) | |||
| 3159 | (byte-defop-compiler19 (/ byte-quo) byte-compile-quo) | 3162 | (byte-defop-compiler19 (/ byte-quo) byte-compile-quo) |
| 3160 | (byte-defop-compiler19 nconc) | 3163 | (byte-defop-compiler19 nconc) |
| 3161 | 3164 | ||
| 3165 | (defun byte-compile-char-before (form) | ||
| 3166 | (cond ((= 2 (length form)) | ||
| 3167 | (byte-compile-form (list 'char-after (if (numberp (nth 1 form)) | ||
| 3168 | (1- (nth 1 form)) | ||
| 3169 | `(1- ,(nth 1 form)))))) | ||
| 3170 | ((= 1 (length form)) | ||
| 3171 | (byte-compile-form '(char-after (1- (point))))) | ||
| 3172 | (t (byte-compile-subr-wrong-args form "0-1")))) | ||
| 3173 | |||
| 3174 | ;; backward-... ==> forward-... with negated argument. | ||
| 3175 | (defun byte-compile-backward-char (form) | ||
| 3176 | (cond ((= 2 (length form)) | ||
| 3177 | (byte-compile-form (list 'forward-char (if (numberp (nth 1 form)) | ||
| 3178 | (- (nth 1 form)) | ||
| 3179 | `(- ,(nth 1 form)))))) | ||
| 3180 | ((= 1 (length form)) | ||
| 3181 | (byte-compile-form '(forward-char -1))) | ||
| 3182 | (t (byte-compile-subr-wrong-args form "0-1")))) | ||
| 3183 | |||
| 3184 | (defun byte-compile-backward-word (form) | ||
| 3185 | (cond ((= 2 (length form)) | ||
| 3186 | (byte-compile-form (list 'forward-word (if (numberp (nth 1 form)) | ||
| 3187 | (- (nth 1 form)) | ||
| 3188 | `(- ,(nth 1 form)))))) | ||
| 3189 | ((= 1 (length form)) | ||
| 3190 | (byte-compile-form '(forward-word -1))) | ||
| 3191 | (t (byte-compile-subr-wrong-args form "0-1")))) | ||
| 3192 | |||
| 3162 | (defun byte-compile-list (form) | 3193 | (defun byte-compile-list (form) |
| 3163 | (let ((count (length (cdr form)))) | 3194 | (let ((count (length (cdr form)))) |
| 3164 | (cond ((= count 0) | 3195 | (cond ((= count 0) |
diff --git a/lisp/emacs-lisp/edebug.el b/lisp/emacs-lisp/edebug.el index 2777ea775e9..9ae33599f09 100644 --- a/lisp/emacs-lisp/edebug.el +++ b/lisp/emacs-lisp/edebug.el | |||
| @@ -364,31 +364,39 @@ Return the result of the last expression in BODY." | |||
| 364 | 364 | ||
| 365 | (defun edebug-pop-to-buffer (buffer &optional window) | 365 | (defun edebug-pop-to-buffer (buffer &optional window) |
| 366 | ;; Like pop-to-buffer, but select window where BUFFER was last shown. | 366 | ;; Like pop-to-buffer, but select window where BUFFER was last shown. |
| 367 | ;; Select WINDOW if it provided and it still exists. Otherwise, | 367 | ;; Select WINDOW if it is provided and still exists. Otherwise, |
| 368 | ;; if buffer is currently shown in several windows, choose one. | 368 | ;; if buffer is currently shown in several windows, choose one. |
| 369 | ;; Otherwise, find a new window, possibly splitting one. | 369 | ;; Otherwise, find a new window, possibly splitting one. |
| 370 | (setq window (if (and (windowp window) (edebug-window-live-p window) | 370 | (setq window |
| 371 | (eq (window-buffer window) buffer)) | 371 | (cond |
| 372 | window | 372 | ((and (windowp window) (edebug-window-live-p window) |
| 373 | (if (eq (window-buffer (selected-window)) buffer) | 373 | (eq (window-buffer window) buffer)) |
| 374 | (selected-window) | 374 | window) |
| 375 | (edebug-get-buffer-window buffer)))) | 375 | ((eq (window-buffer (selected-window)) buffer) |
| 376 | (if window | 376 | ;; Selected window already displays BUFFER. |
| 377 | (select-window window) | 377 | (selected-window)) |
| 378 | (if (one-window-p) | 378 | ((edebug-get-buffer-window buffer)) |
| 379 | (split-window)) | 379 | ((one-window-p 'nomini) |
| 380 | ;; (message "next window: %s" (next-window)) (sit-for 1) | 380 | ;; When there's one window only, split it. |
| 381 | (if (eq (get-buffer-window edebug-trace-buffer) (next-window)) | 381 | (split-window)) |
| 382 | ;; Don't select trace window | 382 | ((let ((trace-window (get-buffer-window edebug-trace-buffer))) |
| 383 | nil | 383 | (catch 'found |
| 384 | (select-window (next-window)))) | 384 | (dolist (elt (window-list nil 'nomini)) |
| 385 | (set-window-buffer (selected-window) buffer) | 385 | (unless (or (eq elt (selected-window)) (eq elt trace-window) |
| 386 | (set-window-hscroll (selected-window) 0);; should this be?? | 386 | (window-dedicated-p elt)) |
| 387 | ;; Found a non-dedicated window not showing | ||
| 388 | ;; `edebug-trace-buffer', use it. | ||
| 389 | (throw 'found elt)))))) | ||
| 390 | ;; All windows are dedicated or show `edebug-trace-buffer', split | ||
| 391 | ;; selected one. | ||
| 392 | (t (split-window)))) | ||
| 393 | (select-window window) | ||
| 394 | (set-window-buffer window buffer) | ||
| 395 | (set-window-hscroll window 0);; should this be?? | ||
| 387 | ;; Selecting the window does not set the buffer until command loop. | 396 | ;; Selecting the window does not set the buffer until command loop. |
| 388 | ;;(set-buffer buffer) | 397 | ;;(set-buffer buffer) |
| 389 | ) | 398 | ) |
| 390 | 399 | ||
| 391 | |||
| 392 | (defun edebug-get-displayed-buffer-points () | 400 | (defun edebug-get-displayed-buffer-points () |
| 393 | ;; Return a list of buffer point pairs, for all displayed buffers. | 401 | ;; Return a list of buffer point pairs, for all displayed buffers. |
| 394 | (let (list) | 402 | (let (list) |
| @@ -2755,7 +2763,8 @@ MSG is printed after `::::} '." | |||
| 2755 | ) ; if edebug-save-windows | 2763 | ) ; if edebug-save-windows |
| 2756 | 2764 | ||
| 2757 | ;; Restore current buffer always, in case application needs it. | 2765 | ;; Restore current buffer always, in case application needs it. |
| 2758 | (set-buffer edebug-outside-buffer) | 2766 | (if (buffer-name edebug-outside-buffer) |
| 2767 | (set-buffer edebug-outside-buffer)) | ||
| 2759 | ;; Restore point, and mark. | 2768 | ;; Restore point, and mark. |
| 2760 | ;; Needed even if restoring windows because | 2769 | ;; Needed even if restoring windows because |
| 2761 | ;; that doesn't restore point and mark in the current buffer. | 2770 | ;; that doesn't restore point and mark in the current buffer. |
diff --git a/lisp/emacs-lisp/ewoc.el b/lisp/emacs-lisp/ewoc.el index 3649757f782..9fec81ec2c5 100644 --- a/lisp/emacs-lisp/ewoc.el +++ b/lisp/emacs-lisp/ewoc.el | |||
| @@ -191,8 +191,9 @@ BUT if it is the header or the footer in EWOC return nil instead." | |||
| 191 | (not (eq dll node)))) | 191 | (not (eq dll node)))) |
| 192 | (setq node (ewoc--node-right node)))))) | 192 | (setq node (ewoc--node-right node)))))) |
| 193 | 193 | ||
| 194 | (defun ewoc--insert-new-node (node data pretty-printer) | 194 | (defun ewoc--insert-new-node (node data pretty-printer dll) |
| 195 | "Insert before NODE a new node for DATA, displayed by PRETTY-PRINTER. | 195 | "Insert before NODE a new node for DATA, displayed by PRETTY-PRINTER. |
| 196 | Fourth arg DLL -- from `(ewoc--dll EWOC)' -- is for internal purposes. | ||
| 196 | Call PRETTY-PRINTER with point at NODE's start, thus pushing back | 197 | Call PRETTY-PRINTER with point at NODE's start, thus pushing back |
| 197 | NODE and leaving the new node's start there. Return the new node." | 198 | NODE and leaving the new node's start there. Return the new node." |
| 198 | (save-excursion | 199 | (save-excursion |
| @@ -262,8 +263,8 @@ fourth arg NOSEP non-nil inhibits this." | |||
| 262 | (unless header (setq header "")) | 263 | (unless header (setq header "")) |
| 263 | (unless footer (setq footer "")) | 264 | (unless footer (setq footer "")) |
| 264 | (setf (ewoc--node-start-marker dll) (copy-marker pos) | 265 | (setf (ewoc--node-start-marker dll) (copy-marker pos) |
| 265 | foot (ewoc--insert-new-node dll footer hf-pp) | 266 | foot (ewoc--insert-new-node dll footer hf-pp dll) |
| 266 | head (ewoc--insert-new-node foot header hf-pp) | 267 | head (ewoc--insert-new-node foot header hf-pp dll) |
| 267 | (ewoc--hf-pp new-ewoc) hf-pp | 268 | (ewoc--hf-pp new-ewoc) hf-pp |
| 268 | (ewoc--footer new-ewoc) foot | 269 | (ewoc--footer new-ewoc) foot |
| 269 | (ewoc--header new-ewoc) head)) | 270 | (ewoc--header new-ewoc) head)) |
| @@ -301,7 +302,7 @@ Return the new node." | |||
| 301 | "Enter a new element DATA before NODE in EWOC. | 302 | "Enter a new element DATA before NODE in EWOC. |
| 302 | Return the new node." | 303 | Return the new node." |
| 303 | (ewoc--set-buffer-bind-dll ewoc | 304 | (ewoc--set-buffer-bind-dll ewoc |
| 304 | (ewoc--insert-new-node node data (ewoc--pretty-printer ewoc)))) | 305 | (ewoc--insert-new-node node data (ewoc--pretty-printer ewoc) dll))) |
| 305 | 306 | ||
| 306 | (defun ewoc-next (ewoc node) | 307 | (defun ewoc-next (ewoc node) |
| 307 | "Return the node in EWOC that follows NODE. | 308 | "Return the node in EWOC that follows NODE. |
diff --git a/lisp/emacs-lisp/lisp-mode.el b/lisp/emacs-lisp/lisp-mode.el index 09cb8436c89..164756dfdc3 100644 --- a/lisp/emacs-lisp/lisp-mode.el +++ b/lisp/emacs-lisp/lisp-mode.el | |||
| @@ -1280,7 +1280,8 @@ and initial semicolons." | |||
| 1280 | "\\|\\s-*\\([(;:\"]\\|`(\\|#'(\\)")) | 1280 | "\\|\\s-*\\([(;:\"]\\|`(\\|#'(\\)")) |
| 1281 | (paragraph-separate | 1281 | (paragraph-separate |
| 1282 | (concat paragraph-separate "\\|\\s-*\".*[,\\.]$")) | 1282 | (concat paragraph-separate "\\|\\s-*\".*[,\\.]$")) |
| 1283 | (fill-column (if (integerp emacs-lisp-docstring-fill-column) | 1283 | (fill-column (if (and (integerp emacs-lisp-docstring-fill-column) |
| 1284 | (derived-mode-p 'emacs-lisp-mode)) | ||
| 1284 | emacs-lisp-docstring-fill-column | 1285 | emacs-lisp-docstring-fill-column |
| 1285 | fill-column))) | 1286 | fill-column))) |
| 1286 | (fill-paragraph justify)) | 1287 | (fill-paragraph justify)) |
diff --git a/lisp/emacs-lisp/lisp.el b/lisp/emacs-lisp/lisp.el index 947b4063ad4..5254a8389b4 100644 --- a/lisp/emacs-lisp/lisp.el +++ b/lisp/emacs-lisp/lisp.el | |||
| @@ -582,8 +582,7 @@ symbols with function definitions are considered. Otherwise, all | |||
| 582 | symbols with function definitions, values or properties are | 582 | symbols with function definitions, values or properties are |
| 583 | considered." | 583 | considered." |
| 584 | (interactive) | 584 | (interactive) |
| 585 | 585 | (let ((window (get-buffer-window "*Completions*" 0))) | |
| 586 | (let ((window (get-buffer-window "*Completions*"))) | ||
| 587 | (if (and (eq last-command this-command) | 586 | (if (and (eq last-command this-command) |
| 588 | window (window-live-p window) (window-buffer window) | 587 | window (window-live-p window) (window-buffer window) |
| 589 | (buffer-name (window-buffer window))) | 588 | (buffer-name (window-buffer window))) |
diff --git a/lisp/emacs-lisp/sregex.el b/lisp/emacs-lisp/sregex.el index 447691d4046..8041aefc077 100644 --- a/lisp/emacs-lisp/sregex.el +++ b/lisp/emacs-lisp/sregex.el | |||
| @@ -425,7 +425,7 @@ Here are the clauses allowed in an `sregex' or `sregexq' expression: | |||
| 425 | Stands for \"\\\\'\", matching the empty string at the end of text. | 425 | Stands for \"\\\\'\", matching the empty string at the end of text. |
| 426 | 426 | ||
| 427 | - the symbol `point' | 427 | - the symbol `point' |
| 428 | Stands for \"\\\\=\", matching the empty string at point. | 428 | Stands for \"\\\\=\\=\", matching the empty string at point. |
| 429 | 429 | ||
| 430 | - the symbol `word-boundary' | 430 | - the symbol `word-boundary' |
| 431 | Stands for \"\\\\b\", matching the empty string at the beginning or | 431 | Stands for \"\\\\b\", matching the empty string at the beginning or |
diff --git a/lisp/emacs-lisp/testcover.el b/lisp/emacs-lisp/testcover.el index d8c171e111d..7d7e788523b 100644 --- a/lisp/emacs-lisp/testcover.el +++ b/lisp/emacs-lisp/testcover.el | |||
| @@ -190,7 +190,7 @@ call to one of the `testcover-1value-functions'." | |||
| 190 | changes the instrumentation from edebug to testcover--much faster, no | 190 | changes the instrumentation from edebug to testcover--much faster, no |
| 191 | problems with type-ahead or post-command-hook, etc. If BYTE-COMPILE is | 191 | problems with type-ahead or post-command-hook, etc. If BYTE-COMPILE is |
| 192 | non-nil, byte-compiles each function after instrumenting." | 192 | non-nil, byte-compiles each function after instrumenting." |
| 193 | (interactive "f") | 193 | (interactive "fStart covering file: ") |
| 194 | (let ((buf (find-file filename)) | 194 | (let ((buf (find-file filename)) |
| 195 | (load-read-function 'testcover-read) | 195 | (load-read-function 'testcover-read) |
| 196 | (edebug-all-defs t)) | 196 | (edebug-all-defs t)) |
| @@ -428,10 +428,10 @@ FUN should be `testcover-reinstrument' for compositional functions, | |||
| 428 | list) | 428 | list) |
| 429 | result)) | 429 | result)) |
| 430 | 430 | ||
| 431 | (defun testcover-end (buffer) | 431 | (defun testcover-end (filename) |
| 432 | "Turn off instrumentation of all macros and functions in FILENAME." | 432 | "Turn off instrumentation of all macros and functions in FILENAME." |
| 433 | (interactive "b") | 433 | (interactive "fStop covering file: ") |
| 434 | (let ((buf (find-file-noselect buffer))) | 434 | (let ((buf (find-file-noselect filename))) |
| 435 | (eval-buffer buf t))) | 435 | (eval-buffer buf t))) |
| 436 | 436 | ||
| 437 | 437 | ||
| @@ -513,7 +513,7 @@ eliminated by adding more test cases." | |||
| 513 | (defun testcover-mark-all (&optional buffer) | 513 | (defun testcover-mark-all (&optional buffer) |
| 514 | "Mark all forms in BUFFER that did not get completley tested during | 514 | "Mark all forms in BUFFER that did not get completley tested during |
| 515 | coverage tests. This function creates many overlays." | 515 | coverage tests. This function creates many overlays." |
| 516 | (interactive "b") | 516 | (interactive "bMark forms in buffer: ") |
| 517 | (if buffer | 517 | (if buffer |
| 518 | (switch-to-buffer buffer)) | 518 | (switch-to-buffer buffer)) |
| 519 | (goto-char 1) | 519 | (goto-char 1) |
| @@ -523,7 +523,7 @@ coverage tests. This function creates many overlays." | |||
| 523 | 523 | ||
| 524 | (defun testcover-unmark-all (buffer) | 524 | (defun testcover-unmark-all (buffer) |
| 525 | "Remove all overlays from FILENAME." | 525 | "Remove all overlays from FILENAME." |
| 526 | (interactive "b") | 526 | (interactive "bUnmark forms in buffer: ") |
| 527 | (condition-case nil | 527 | (condition-case nil |
| 528 | (progn | 528 | (progn |
| 529 | (set-buffer buffer) | 529 | (set-buffer buffer) |
diff --git a/lisp/emacs-lisp/timer.el b/lisp/emacs-lisp/timer.el index db6586838bb..092611632ca 100644 --- a/lisp/emacs-lisp/timer.el +++ b/lisp/emacs-lisp/timer.el | |||
| @@ -360,11 +360,16 @@ This function is called, by name, directly by the C code." | |||
| 360 | (defun run-at-time (time repeat function &rest args) | 360 | (defun run-at-time (time repeat function &rest args) |
| 361 | "Perform an action at time TIME. | 361 | "Perform an action at time TIME. |
| 362 | Repeat the action every REPEAT seconds, if REPEAT is non-nil. | 362 | Repeat the action every REPEAT seconds, if REPEAT is non-nil. |
| 363 | TIME should be a string like \"11:23pm\", nil meaning now, a number of seconds | 363 | TIME should be one of: a string giving an absolute time like |
| 364 | from now, a value from `current-time', or t (with non-nil REPEAT) | 364 | \"11:23pm\" (the acceptable formats are those recognized by |
| 365 | meaning the next integral multiple of REPEAT. | 365 | `diary-entry-time'; note that such times are interpreted as times |
| 366 | REPEAT may be an integer or floating point number. | 366 | today, even if in the past); a string giving a relative time like |
| 367 | The action is to call FUNCTION with arguments ARGS. | 367 | \"2 hours 35 minutes\" (the acceptable formats are those |
| 368 | recognized by `timer-duration'); nil meaning now; a number of | ||
| 369 | seconds from now; a value from `encode-time'; or t (with non-nil | ||
| 370 | REPEAT) meaning the next integral multiple of REPEAT. REPEAT may | ||
| 371 | be an integer or floating point number. The action is to call | ||
| 372 | FUNCTION with arguments ARGS. | ||
| 368 | 373 | ||
| 369 | This function returns a timer object which you can use in `cancel-timer'." | 374 | This function returns a timer object which you can use in `cancel-timer'." |
| 370 | (interactive "sRun at time: \nNRepeat interval: \naFunction: ") | 375 | (interactive "sRun at time: \nNRepeat interval: \naFunction: ") |
| @@ -385,7 +390,7 @@ This function returns a timer object which you can use in `cancel-timer'." | |||
| 385 | (if (numberp time) | 390 | (if (numberp time) |
| 386 | (setq time (timer-relative-time (current-time) time))) | 391 | (setq time (timer-relative-time (current-time) time))) |
| 387 | 392 | ||
| 388 | ;; Handle relative times like "2 hours and 35 minutes" | 393 | ;; Handle relative times like "2 hours 35 minutes" |
| 389 | (if (stringp time) | 394 | (if (stringp time) |
| 390 | (let ((secs (timer-duration time))) | 395 | (let ((secs (timer-duration time))) |
| 391 | (if secs | 396 | (if secs |
diff --git a/lisp/emacs-lisp/warnings.el b/lisp/emacs-lisp/warnings.el index b75f0fd242f..99b0b3f3448 100644 --- a/lisp/emacs-lisp/warnings.el +++ b/lisp/emacs-lisp/warnings.el | |||
| @@ -218,8 +218,9 @@ Default is :warning. | |||
| 218 | but raise suspicion of a possible problem. | 218 | but raise suspicion of a possible problem. |
| 219 | :debug -- info for debugging only. | 219 | :debug -- info for debugging only. |
| 220 | 220 | ||
| 221 | BUFFER-NAME, if specified, is the name of the buffer for logging the | 221 | BUFFER-NAME, if specified, is the name of the buffer for logging |
| 222 | warning. By default, it is `*Warnings*'. | 222 | the warning. By default, it is `*Warnings*'. If this function |
| 223 | has to create the buffer, it disables undo in the buffer. | ||
| 223 | 224 | ||
| 224 | See the `warnings' custom group for user customization features. | 225 | See the `warnings' custom group for user customization features. |
| 225 | 226 | ||
| @@ -227,16 +228,22 @@ See also `warning-series', `warning-prefix-function' and | |||
| 227 | `warning-fill-prefix' for additional programming features." | 228 | `warning-fill-prefix' for additional programming features." |
| 228 | (unless level | 229 | (unless level |
| 229 | (setq level :warning)) | 230 | (setq level :warning)) |
| 231 | (unless buffer-name | ||
| 232 | (setq buffer-name "*Warnings*")) | ||
| 230 | (if (assq level warning-level-aliases) | 233 | (if (assq level warning-level-aliases) |
| 231 | (setq level (cdr (assq level warning-level-aliases)))) | 234 | (setq level (cdr (assq level warning-level-aliases)))) |
| 232 | (or (< (warning-numeric-level level) | 235 | (or (< (warning-numeric-level level) |
| 233 | (warning-numeric-level warning-minimum-log-level)) | 236 | (warning-numeric-level warning-minimum-log-level)) |
| 234 | (warning-suppress-p type warning-suppress-log-types) | 237 | (warning-suppress-p type warning-suppress-log-types) |
| 235 | (let* ((typename (if (consp type) (car type) type)) | 238 | (let* ((typename (if (consp type) (car type) type)) |
| 236 | (buffer (get-buffer-create (or buffer-name "*Warnings*"))) | 239 | (old (get-buffer buffer-name)) |
| 240 | (buffer (get-buffer-create buffer-name)) | ||
| 237 | (level-info (assq level warning-levels)) | 241 | (level-info (assq level warning-levels)) |
| 238 | start end) | 242 | start end) |
| 239 | (with-current-buffer buffer | 243 | (with-current-buffer buffer |
| 244 | ;; If we created the buffer, disable undo. | ||
| 245 | (unless old | ||
| 246 | (setq buffer-undo-list t)) | ||
| 240 | (goto-char (point-max)) | 247 | (goto-char (point-max)) |
| 241 | (when (and warning-series (symbolp warning-series)) | 248 | (when (and warning-series (symbolp warning-series)) |
| 242 | (setq warning-series | 249 | (setq warning-series |
diff --git a/lisp/emulation/viper.el b/lisp/emulation/viper.el index ddd37b16cc2..67ec3660c65 100644 --- a/lisp/emulation/viper.el +++ b/lisp/emulation/viper.el | |||
| @@ -1027,14 +1027,46 @@ It also can't undo some Viper settings." | |||
| 1027 | 1027 | ||
| 1028 | (defadvice describe-key (before viper-describe-key-ad protect activate) | 1028 | (defadvice describe-key (before viper-describe-key-ad protect activate) |
| 1029 | "Force to read key via `viper-read-key-sequence'." | 1029 | "Force to read key via `viper-read-key-sequence'." |
| 1030 | (interactive (list (viper-read-key-sequence "Describe key: ")) | 1030 | (interactive (let (key) |
| 1031 | )) | 1031 | (setq key (viper-read-key-sequence |
| 1032 | "Describe key (or click or menu item): ")) | ||
| 1033 | (list key | ||
| 1034 | (prefix-numeric-value current-prefix-arg) | ||
| 1035 | ;; If KEY is a down-event, read also the | ||
| 1036 | ;; corresponding up-event. | ||
| 1037 | (and (vectorp key) | ||
| 1038 | (let ((last-idx (1- (length key)))) | ||
| 1039 | (and (eventp (aref key last-idx)) | ||
| 1040 | (memq 'down (event-modifiers | ||
| 1041 | (aref key last-idx))))) | ||
| 1042 | (or (and (eventp (aref key 0)) | ||
| 1043 | (memq 'down (event-modifiers | ||
| 1044 | (aref key 0))) | ||
| 1045 | ;; For the C-down-mouse-2 popup | ||
| 1046 | ;; menu, there is no subsequent up-event. | ||
| 1047 | (= (length key) 1)) | ||
| 1048 | (and (> (length key) 1) | ||
| 1049 | (eventp (aref key 1)) | ||
| 1050 | (memq 'down (event-modifiers (aref key 1))))) | ||
| 1051 | (read-event)))))) | ||
| 1032 | 1052 | ||
| 1033 | (defadvice describe-key-briefly | 1053 | (defadvice describe-key-briefly |
| 1034 | (before viper-describe-key-briefly-ad protect activate) | 1054 | (before viper-describe-key-briefly-ad protect activate) |
| 1035 | "Force to read key via `viper-read-key-sequence'." | 1055 | "Force to read key via `viper-read-key-sequence'." |
| 1036 | (interactive (list (viper-read-key-sequence "Describe key briefly: ")))) | 1056 | (interactive (let (key) |
| 1037 | 1057 | (setq key (viper-read-key-sequence | |
| 1058 | "Describe key (or click or menu item): ")) | ||
| 1059 | ;; If KEY is a down-event, read and discard the | ||
| 1060 | ;; corresponding up-event. | ||
| 1061 | (and (vectorp key) | ||
| 1062 | (let ((last-idx (1- (length key)))) | ||
| 1063 | (and (eventp (aref key last-idx)) | ||
| 1064 | (memq 'down (event-modifiers (aref key last-idx))))) | ||
| 1065 | (read-event)) | ||
| 1066 | (list key | ||
| 1067 | (if current-prefix-arg | ||
| 1068 | (prefix-numeric-value current-prefix-arg)) | ||
| 1069 | 1)))) | ||
| 1038 | 1070 | ||
| 1039 | (defadvice find-file (before viper-add-suffix-advice activate) | 1071 | (defadvice find-file (before viper-add-suffix-advice activate) |
| 1040 | "Use `read-file-name' for reading arguments." | 1072 | "Use `read-file-name' for reading arguments." |
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/lisp/eshell/esh-proc.el b/lisp/eshell/esh-proc.el index d3dabbf04b5..96d8255a3ab 100644 --- a/lisp/eshell/esh-proc.el +++ b/lisp/eshell/esh-proc.el | |||
| @@ -181,7 +181,7 @@ The signals which will cause this to happen are matched by | |||
| 181 | (setq signum (abs (string-to-number id)))) | 181 | (setq signum (abs (string-to-number id)))) |
| 182 | ((stringp id) | 182 | ((stringp id) |
| 183 | (let (case-fold-search) | 183 | (let (case-fold-search) |
| 184 | (if (string-match "^-\\([A-Z]+\\)$" id) | 184 | (if (string-match "^-\\([A-Z]+[12]?\\)$" id) |
| 185 | (setq signum | 185 | (setq signum |
| 186 | (intern (concat "SIG" (match-string 1 id)))) | 186 | (intern (concat "SIG" (match-string 1 id)))) |
| 187 | (error "kill: bad signal spec `%s'" id)))) | 187 | (error "kill: bad signal spec `%s'" id)))) |
diff --git a/lisp/expand.el b/lisp/expand.el index ebcf90ccfc2..c34c18b4483 100644 --- a/lisp/expand.el +++ b/lisp/expand.el | |||
| @@ -51,17 +51,17 @@ | |||
| 51 | ;; | 51 | ;; |
| 52 | ;; and enter Abbrev mode with the following hook : | 52 | ;; and enter Abbrev mode with the following hook : |
| 53 | ;; | 53 | ;; |
| 54 | ;; (add-hook 'c-mode-hook (function (lambda () | 54 | ;; (add-hook 'c-mode-hook |
| 55 | ;; (expand-add-abbrevs c-mode-abbrev-table c-expand-list) | 55 | ;; (lambda () |
| 56 | ;; (abbrev-mode)))) | 56 | ;; (expand-add-abbrevs c-mode-abbrev-table c-expand-list) |
| 57 | ;; (abbrev-mode 1))) | ||
| 57 | ;; | 58 | ;; |
| 58 | ;; you can also init some post-process hooks : | 59 | ;; you can also init some post-process hooks : |
| 59 | ;; | 60 | ;; |
| 60 | ;; (add-hook 'expand-load-hook | 61 | ;; (add-hook 'expand-load-hook |
| 61 | ;; (function | 62 | ;; (lambda () |
| 62 | ;; (lambda () | 63 | ;; (add-hook 'expand-expand-hook 'indent-according-to-mode) |
| 63 | ;; (add-hook 'expand-expand-hook 'indent-according-to-mode) | 64 | ;; (add-hook 'expand-jump-hook 'indent-according-to-mode))) |
| 64 | ;; (add-hook 'expand-jump-hook 'indent-according-to-mode)))) | ||
| 65 | ;; | 65 | ;; |
| 66 | ;; Remarks: | 66 | ;; Remarks: |
| 67 | ;; | 67 | ;; |
| @@ -336,6 +336,7 @@ This variable is local to a buffer.") | |||
| 336 | 'expand-abbrev-hook))) | 336 | 'expand-abbrev-hook))) |
| 337 | 337 | ||
| 338 | (put 'expand-abbrev-hook 'no-self-insert t) | 338 | (put 'expand-abbrev-hook 'no-self-insert t) |
| 339 | ;;;###autoload | ||
| 339 | (defun expand-abbrev-hook () | 340 | (defun expand-abbrev-hook () |
| 340 | "Abbrev hook used to do the expansion job of expand abbrevs. | 341 | "Abbrev hook used to do the expansion job of expand abbrevs. |
| 341 | See `expand-add-abbrevs'. Value is non-nil if expansion was done." | 342 | See `expand-add-abbrevs'. Value is non-nil if expansion was done." |
diff --git a/lisp/faces.el b/lisp/faces.el index 904db10efa5..47fb2fa0295 100644 --- a/lisp/faces.el +++ b/lisp/faces.el | |||
| @@ -1803,13 +1803,9 @@ Initialize colors of certain faces from frame parameters." | |||
| 1803 | (condition-case () | 1803 | (condition-case () |
| 1804 | (progn | 1804 | (progn |
| 1805 | (face-spec-set face (face-user-default-spec face) frame) | 1805 | (face-spec-set face (face-user-default-spec face) frame) |
| 1806 | (internal-merge-in-global-face face frame) | ||
| 1807 | (if (memq (window-system frame) '(x w32 mac)) | 1806 | (if (memq (window-system frame) '(x w32 mac)) |
| 1808 | (make-face-x-resource-internal face frame)) | 1807 | (make-face-x-resource-internal face frame)) |
| 1809 | ;; If the user has customized the face, don't let X | 1808 | (internal-merge-in-global-face face frame)) |
| 1810 | ;; resources override the customizations. | ||
| 1811 | (if (get face 'theme-face) | ||
| 1812 | (custom-theme-recalc-face face))) | ||
| 1813 | (error nil))) | 1809 | (error nil))) |
| 1814 | ;; Apply the attributes specified by frame parameters. This | 1810 | ;; Apply the attributes specified by frame parameters. This |
| 1815 | ;; rewrites parameters changed by make-face-x-resource-internal | 1811 | ;; rewrites parameters changed by make-face-x-resource-internal |
diff --git a/lisp/ffap.el b/lisp/ffap.el index e49c77f4d47..5bba729fce3 100644 --- a/lisp/ffap.el +++ b/lisp/ffap.el | |||
| @@ -1147,7 +1147,8 @@ which may actually result in an url rather than a filename." | |||
| 1147 | (error nil)) | 1147 | (error nil)) |
| 1148 | string)) | 1148 | string)) |
| 1149 | (abs (file-name-absolute-p name)) | 1149 | (abs (file-name-absolute-p name)) |
| 1150 | (default-directory default-directory)) | 1150 | (default-directory default-directory) |
| 1151 | (oname name)) | ||
| 1151 | (unwind-protect | 1152 | (unwind-protect |
| 1152 | (cond | 1153 | (cond |
| 1153 | ;; Immediate rejects (/ and // and /* are too common in C/C++): | 1154 | ;; Immediate rejects (/ and // and /* are too common in C/C++): |
| @@ -1164,13 +1165,7 @@ which may actually result in an url rather than a filename." | |||
| 1164 | (not abs) (string-match ffap-shell-prompt-regexp name) | 1165 | (not abs) (string-match ffap-shell-prompt-regexp name) |
| 1165 | (ffap-file-exists-string (substring name (match-end 0))))) | 1166 | (ffap-file-exists-string (substring name (match-end 0))))) |
| 1166 | ;; Accept remote names without actual checking (too slow): | 1167 | ;; Accept remote names without actual checking (too slow): |
| 1167 | ((if abs | 1168 | ((and abs (ffap-file-remote-p name))) |
| 1168 | (ffap-file-remote-p name) | ||
| 1169 | ;; Try adding a leading "/" (common omission in ftp file names): | ||
| 1170 | (and | ||
| 1171 | ffap-ftp-sans-slash-regexp | ||
| 1172 | (string-match ffap-ftp-sans-slash-regexp name) | ||
| 1173 | (ffap-file-remote-p (concat "/" name))))) | ||
| 1174 | ;; Ok, not remote, try the existence test even if it is absolute: | 1169 | ;; Ok, not remote, try the existence test even if it is absolute: |
| 1175 | ((and abs (ffap-file-exists-string name))) | 1170 | ((and abs (ffap-file-exists-string name))) |
| 1176 | ;; If it contains a colon, get rid of it (and return if exists) | 1171 | ;; If it contains a colon, get rid of it (and return if exists) |
| @@ -1193,6 +1188,14 @@ which may actually result in an url rather than a filename." | |||
| 1193 | (ffap-file-remote-p try) | 1188 | (ffap-file-remote-p try) |
| 1194 | (ffap-file-exists-string try)))))) | 1189 | (ffap-file-exists-string try)))))) |
| 1195 | try)) | 1190 | try)) |
| 1191 | ;; Try adding a leading "/" (common omission in ftp file names). | ||
| 1192 | ;; Note that this uses oname, which still has any colon part. | ||
| 1193 | ;; This should have a lower priority than the alist stuff, | ||
| 1194 | ;; else it matches things like "ffap.el:1234:56:Warning". | ||
| 1195 | ((and (not abs) | ||
| 1196 | ffap-ftp-sans-slash-regexp | ||
| 1197 | (string-match ffap-ftp-sans-slash-regexp oname) | ||
| 1198 | (ffap-file-remote-p (concat "/" oname)))) | ||
| 1196 | ;; Alist failed? Try to guess an active remote connection | 1199 | ;; Alist failed? Try to guess an active remote connection |
| 1197 | ;; from buffer variables, and try once more, both as an | 1200 | ;; from buffer variables, and try once more, both as an |
| 1198 | ;; absolute and relative file name on that remote host. | 1201 | ;; absolute and relative file name on that remote host. |
diff --git a/lisp/files.el b/lisp/files.el index f11c6d37834..39d9d6a78b2 100644 --- a/lisp/files.el +++ b/lisp/files.el | |||
| @@ -2435,14 +2435,14 @@ asking you for confirmation." | |||
| 2435 | 2435 | ||
| 2436 | (mapc (lambda (pair) | 2436 | (mapc (lambda (pair) |
| 2437 | (put (car pair) 'safe-local-variable (cdr pair))) | 2437 | (put (car pair) 'safe-local-variable (cdr pair))) |
| 2438 | '((buffer-read-only . booleanp) ;; C source code | 2438 | '((buffer-read-only . booleanp) ;; C source code |
| 2439 | (default-directory . stringp) ;; C source code | 2439 | (default-directory . stringp) ;; C source code |
| 2440 | (fill-column . integerp) ;; C source code | 2440 | (fill-column . integerp) ;; C source code |
| 2441 | (indent-tabs-mode . booleanp) ;; C source code | 2441 | (indent-tabs-mode . booleanp) ;; C source code |
| 2442 | (left-margin . integerp) ;; C source code | 2442 | (left-margin . integerp) ;; C source code |
| 2443 | (no-update-autoloads . booleanp) | 2443 | (no-update-autoloads . booleanp) |
| 2444 | (tab-width . integerp) ;; C source code | 2444 | (tab-width . integerp) ;; C source code |
| 2445 | (truncate-lines . booleanp))) ;; C source code | 2445 | (truncate-lines . booleanp))) ;; C source code |
| 2446 | 2446 | ||
| 2447 | (put 'c-set-style 'safe-local-eval-function t) | 2447 | (put 'c-set-style 'safe-local-eval-function t) |
| 2448 | 2448 | ||
diff --git a/lisp/font-lock.el b/lisp/font-lock.el index eb2a7964cec..162db36311f 100644 --- a/lisp/font-lock.el +++ b/lisp/font-lock.el | |||
| @@ -2226,7 +2226,7 @@ other modes in which C preprocessor directives are used. e.g. `asm-mode' and | |||
| 2226 | "condition-case" "track-mouse" | 2226 | "condition-case" "track-mouse" |
| 2227 | "eval-after-load" "eval-and-compile" "eval-when-compile" | 2227 | "eval-after-load" "eval-and-compile" "eval-when-compile" |
| 2228 | "eval-when" "eval-at-startup" "eval-next-after-load" | 2228 | "eval-when" "eval-at-startup" "eval-next-after-load" |
| 2229 | "with-category-table" | 2229 | "with-case-table" "with-category-table" |
| 2230 | "with-current-buffer" "with-electric-help" | 2230 | "with-current-buffer" "with-electric-help" |
| 2231 | "with-local-quit" "with-no-warnings" | 2231 | "with-local-quit" "with-no-warnings" |
| 2232 | "with-output-to-string" "with-output-to-temp-buffer" | 2232 | "with-output-to-string" "with-output-to-temp-buffer" |
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index add0bb47c25..8f094dd6537 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog | |||
| @@ -1,3 +1,73 @@ | |||
| 1 | 2007-04-10 Katsumi Yamaoka <yamaoka@jpl.org> | ||
| 2 | |||
| 3 | * gnus-msg.el (gnus-inews-yank-articles): Use | ||
| 4 | message-exchange-point-and-mark instead of exchange-point-and-mark. | ||
| 5 | |||
| 6 | 2007-04-09 Katsumi Yamaoka <yamaoka@jpl.org> | ||
| 7 | |||
| 8 | * message.el (message-yank-original): Make sure cited text ends with | ||
| 9 | newline; don't exchange point and mark. | ||
| 10 | |||
| 11 | 2007-04-07 Chong Yidong <cyd@stupidchicken.com> | ||
| 12 | |||
| 13 | * tls.el (open-tls-stream): Properly handle case where there | ||
| 14 | is no associated buffer. | ||
| 15 | |||
| 16 | 2007-04-03 Thien-Thi Nguyen <ttn@gnu.org> | ||
| 17 | |||
| 18 | * gnus-msg.el (gnus-inews-yank-articles): Fix bug: After | ||
| 19 | message-yank-original, make sure (< mark TEXT point). | ||
| 20 | |||
| 21 | 2007-03-31 Reiner Steib <Reiner.Steib@gmx.de> | ||
| 22 | |||
| 23 | * nnmail.el (nnmail-spool-file): Mark as obsolete. | ||
| 24 | (nnmail-get-new-mail): Reformat. | ||
| 25 | |||
| 26 | * gnus-registry.el (gnus-registry-cache-save): Add FIXME comment. | ||
| 27 | |||
| 28 | * gmm-utils.el: Fix Commentary. | ||
| 29 | (gmm-tool-bar-from-list): Fix typo in doc string. | ||
| 30 | |||
| 31 | 2007-03-27 Thien-Thi Nguyen <ttn@gnu.org> | ||
| 32 | |||
| 33 | * message.el (message-yank-original): Fix bug: | ||
| 34 | Don't switch point and mark unnecessarily. | ||
| 35 | |||
| 36 | 2007-03-25 Andreas Seltenreich <uwi7@rz.uni-karlsruhe.de> | ||
| 37 | |||
| 38 | * gnus-msg.el (gnus-setup-message, gnus-inews-add-send-actions): Move | ||
| 39 | evaluation of gnus-extended-version to ensure correct generation of the | ||
| 40 | User-Agent header when message-generate-headers-first is used. | ||
| 41 | |||
| 42 | 2007-03-24 Reiner Steib <Reiner.Steib@gmx.de> | ||
| 43 | |||
| 44 | * gnus-art.el (gnus-button-alist): Also catch `<f1> k ...'. | ||
| 45 | (gnus-treat-display-x-face): Fix doc string. | ||
| 46 | |||
| 47 | 2007-03-20 Andreas Seltenreich <uwi7@rz.uni-karlsruhe.de> | ||
| 48 | |||
| 49 | * message.el (message-required-news-headers): | ||
| 50 | * gnus-util.el (gnus-intern-safe): Fix typo in docstring. | ||
| 51 | |||
| 52 | 2007-03-15 Katsumi Yamaoka <yamaoka@jpl.org> | ||
| 53 | |||
| 54 | * message.el (message-generate-new-buffers): Change the meaning of the | ||
| 55 | nil value; add `standard' to the choices; treat t as `unique'; improve | ||
| 56 | doc string. | ||
| 57 | (gnus-select-frame-set-input-focus): Autoload. | ||
| 58 | (message-buffer-name): Search for the existing message buffer if | ||
| 59 | message-generate-new-buffers is nil or `standard'; treat the value t of | ||
| 60 | message-generate-new-buffers as `unique'. | ||
| 61 | (message-pop-to-buffer): Raise the frame already displaying the message | ||
| 62 | buffer; clear the echo area after querying. | ||
| 63 | (message-setup): Pass the `continue' argument to compose-mail. | ||
| 64 | (message-mail): Prefer `switch-function' if it is given; search for the | ||
| 65 | existing message buffer if the `continue' argument is non-nil; pass | ||
| 66 | continue and switch-function arguments to compose-mail by way of | ||
| 67 | message-setup. | ||
| 68 | (message-mail-other-window): Adjust argument of message-setup. | ||
| 69 | (message-mail-other-frame): Ditto. | ||
| 70 | |||
| 1 | 2007-02-28 Katsumi Yamaoka <yamaoka@jpl.org> | 71 | 2007-02-28 Katsumi Yamaoka <yamaoka@jpl.org> |
| 2 | 72 | ||
| 3 | * message.el (message-make-in-reply-to): Quote name containing | 73 | * message.el (message-make-in-reply-to): Quote name containing |
| @@ -1514,15 +1584,6 @@ | |||
| 1514 | * gnus-start.el (gnus-no-server-1): Mention | 1584 | * gnus-start.el (gnus-no-server-1): Mention |
| 1515 | `gnus-level-default-subscribed' in doc string. | 1585 | `gnus-level-default-subscribed' in doc string. |
| 1516 | 1586 | ||
| 1517 | 2005-11-26 Dave Love <fx@gnu.org> | ||
| 1518 | |||
| 1519 | * tls.el (open-tls-stream): Rename arg SERVICE to PORT. | ||
| 1520 | (tls-program, tls-success): Provide openssl alternative. | ||
| 1521 | |||
| 1522 | * starttls.el: Doc fixes. | ||
| 1523 | (starttls-open-stream-gnutls, starttls-open-stream): Rename arg | ||
| 1524 | SERVICE to PORT. | ||
| 1525 | |||
| 1526 | 2005-12-09 Reiner Steib <Reiner.Steib@gmx.de> | 1587 | 2005-12-09 Reiner Steib <Reiner.Steib@gmx.de> |
| 1527 | 1588 | ||
| 1528 | * gnus-start.el (gnus-start-draft-setup): Enforce | 1589 | * gnus-start.el (gnus-start-draft-setup): Enforce |
| @@ -2577,14 +2638,6 @@ | |||
| 2577 | 2638 | ||
| 2578 | * gnus-art.el (gnus-emphasis-alist): Disable the strikethru thingy. | 2639 | * gnus-art.el (gnus-emphasis-alist): Disable the strikethru thingy. |
| 2579 | 2640 | ||
| 2580 | 2005-06-02 Katsumi Yamaoka <yamaoka@jpl.org> | ||
| 2581 | |||
| 2582 | * pop3.el (pop3-md5): Run md5 in the binary mode. | ||
| 2583 | (pop3-md5-program-args): New variable. | ||
| 2584 | |||
| 2585 | * starttls.el (starttls-set-process-query-on-exit-flag): | ||
| 2586 | Use eval-and-compile. | ||
| 2587 | |||
| 2588 | 2005-05-31 Katsumi Yamaoka <yamaoka@jpl.org> | 2641 | 2005-05-31 Katsumi Yamaoka <yamaoka@jpl.org> |
| 2589 | 2642 | ||
| 2590 | * gnus-art.el (article-display-x-face): Replace | 2643 | * gnus-art.el (article-display-x-face): Replace |
| @@ -2620,16 +2673,6 @@ | |||
| 2620 | (nntp-open-ssl-stream): Ditto. | 2673 | (nntp-open-ssl-stream): Ditto. |
| 2621 | (nntp-open-tls-stream): Ditto. | 2674 | (nntp-open-tls-stream): Ditto. |
| 2622 | 2675 | ||
| 2623 | * pgg.el: Don't bind itimer vars; don't autoload itimer functions. | ||
| 2624 | (pgg-run-at-time-1): New macro. | ||
| 2625 | (pgg-run-at-time): Use it. | ||
| 2626 | |||
| 2627 | * starttls.el (starttls-set-process-query-on-exit-flag): Alias to | ||
| 2628 | set-process-query-on-exit-flag or process-kill-without-query. | ||
| 2629 | (starttls-open-stream-gnutls): Use it instead of | ||
| 2630 | process-kill-without-query. | ||
| 2631 | (starttls-open-stream): Ditto. | ||
| 2632 | |||
| 2633 | 2005-05-31 Simon Josefsson <jas@extundo.com> | 2676 | 2005-05-31 Simon Josefsson <jas@extundo.com> |
| 2634 | 2677 | ||
| 2635 | * imap.el (imap-ssl-open): Use imap-process-connection-type, | 2678 | * imap.el (imap-ssl-open): Use imap-process-connection-type, |
| @@ -3547,13 +3590,6 @@ | |||
| 3547 | 3590 | ||
| 3548 | * gnus-msg.el (gnus-summary-resend-default-address): Add :version. | 3591 | * gnus-msg.el (gnus-summary-resend-default-address): Add :version. |
| 3549 | 3592 | ||
| 3550 | * tls.el (tls-process-connection-type, tls-success) | ||
| 3551 | (tls-certtool-program): Add :version. | ||
| 3552 | |||
| 3553 | * starttls.el (starttls-gnutls-program, starttls-use-gnutls) | ||
| 3554 | (starttls-extra-arguments, starttls-process-connection-type) | ||
| 3555 | (starttls-connect, starttls-failure, starttls-success): | ||
| 3556 | |||
| 3557 | * spam-stat.el (spam-stat): Add :version. | 3593 | * spam-stat.el (spam-stat): Add :version. |
| 3558 | 3594 | ||
| 3559 | * sieve.el (sieve): Add :version. | 3595 | * sieve.el (sieve): Add :version. |
| @@ -4041,12 +4077,6 @@ | |||
| 4041 | * message.el (message-tokenize-header): Fix 2004-09-06 change | 4077 | * message.el (message-tokenize-header): Fix 2004-09-06 change |
| 4042 | which used point-min in the wrong place. | 4078 | which used point-min in the wrong place. |
| 4043 | 4079 | ||
| 4044 | 2004-10-12 Simon Josefsson <jas@extundo.com> | ||
| 4045 | |||
| 4046 | * net/tls.el (tls-certtool-program): New variable. | ||
| 4047 | (tls-certificate-information): New function, based on | ||
| 4048 | ssl-certificate-information. | ||
| 4049 | |||
| 4050 | 2004-10-11 Reiner Steib <Reiner.Steib@gmx.de> | 4080 | 2004-10-11 Reiner Steib <Reiner.Steib@gmx.de> |
| 4051 | 4081 | ||
| 4052 | * message.el (message-bury): Use `window-dedicated-p'. | 4082 | * message.el (message-bury): Use `window-dedicated-p'. |
| @@ -4486,19 +4516,6 @@ | |||
| 4486 | 4516 | ||
| 4487 | * sieve.el (sieve-deactivate-all): Fix format string mismatch. | 4517 | * sieve.el (sieve-deactivate-all): Fix format string mismatch. |
| 4488 | 4518 | ||
| 4489 | 2004-05-26 Simon Josefsson <jas@extundo.com> | ||
| 4490 | |||
| 4491 | * starttls.el: Merge with my GNUTLS based starttls.el. | ||
| 4492 | (starttls-gnutls-program, starttls-use-gnutls) | ||
| 4493 | (starttls-extra-arguments, starttls-process-connection-type) | ||
| 4494 | (starttls-connect, starttls-failure, starttls-success): New variables. | ||
| 4495 | (starttls-program, starttls-extra-args): Doc fix. | ||
| 4496 | (starttls-negotiate-gnutls, starttls-open-stream-gnutls): | ||
| 4497 | New functions. | ||
| 4498 | (starttls-negotiate, starttls-open-stream): | ||
| 4499 | Check `starttls-use-gnutls' and pass on to corresponding *-gnutls | ||
| 4500 | function if it is set. | ||
| 4501 | |||
| 4502 | 2004-08-30 Andreas Schwab <schwab@suse.de> | 4519 | 2004-08-30 Andreas Schwab <schwab@suse.de> |
| 4503 | 4520 | ||
| 4504 | * rfc2231.el (rfc2231-parse-string): Restore whitespace syntax for | 4521 | * rfc2231.el (rfc2231-parse-string): Restore whitespace syntax for |
diff --git a/lisp/gnus/gmm-utils.el b/lisp/gnus/gmm-utils.el index 84b69edb575..9241e96d042 100644 --- a/lisp/gnus/gmm-utils.el +++ b/lisp/gnus/gmm-utils.el | |||
| @@ -26,7 +26,7 @@ | |||
| 26 | 26 | ||
| 27 | ;; This library provides self-contained utility functions. The functions are | 27 | ;; This library provides self-contained utility functions. The functions are |
| 28 | ;; used in Gnus, Message and MML, but within this library there are no | 28 | ;; used in Gnus, Message and MML, but within this library there are no |
| 29 | ;; dependencies on Gnus, Message, or MML or Gnus. | 29 | ;; dependencies on Gnus, Message, or MML. |
| 30 | 30 | ||
| 31 | ;;; Code: | 31 | ;;; Code: |
| 32 | 32 | ||
| @@ -217,7 +217,7 @@ Within each entry of ICON-LIST, the first element is a menu | |||
| 217 | command, the second element is an icon file name and the third | 217 | command, the second element is an icon file name and the third |
| 218 | element is a test function. You can use \\[describe-key] | 218 | element is a test function. You can use \\[describe-key] |
| 219 | <menu-entry> to find out the name of a menu command. The fourth | 219 | <menu-entry> to find out the name of a menu command. The fourth |
| 220 | and all following elements are passed a the PROPS argument to the | 220 | and all following elements are passed as the PROPS argument to the |
| 221 | function `tool-bar-local-item'. | 221 | function `tool-bar-local-item'. |
| 222 | 222 | ||
| 223 | If ZAP-LIST is a list, remove those item from the default | 223 | If ZAP-LIST is a list, remove those item from the default |
diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el index c6ac13af6c9..552f3a68f49 100644 --- a/lisp/gnus/gnus-art.el +++ b/lisp/gnus/gnus-art.el | |||
| @@ -1332,7 +1332,7 @@ See Info node `(gnus)Customizing Articles' for details." | |||
| 1332 | (executable-find "icontopbm"))) | 1332 | (executable-find "icontopbm"))) |
| 1333 | 'head) | 1333 | 'head) |
| 1334 | "Display X-Face headers. | 1334 | "Display X-Face headers. |
| 1335 | Valid values are nil, t, `head', `last', an integer or a predicate. | 1335 | Valid values are nil and `head'. |
| 1336 | See Info node `(gnus)Customizing Articles' and Info node | 1336 | See Info node `(gnus)Customizing Articles' and Info node |
| 1337 | `(gnus)X-Face' for details." | 1337 | `(gnus)X-Face' for details." |
| 1338 | :group 'gnus-article-treat | 1338 | :group 'gnus-article-treat |
| @@ -6620,7 +6620,7 @@ positives are possible." | |||
| 6620 | 0 (>= gnus-button-emacs-level 1) gnus-button-handle-describe-function 2) | 6620 | 0 (>= gnus-button-emacs-level 1) gnus-button-handle-describe-function 2) |
| 6621 | ("\\b\\(C-h\\|<?[Ff]1>?\\)[ \t\n]+v[ \t\n]+\\([^ \t\n]+\\)[ \t\n]+RET" | 6621 | ("\\b\\(C-h\\|<?[Ff]1>?\\)[ \t\n]+v[ \t\n]+\\([^ \t\n]+\\)[ \t\n]+RET" |
| 6622 | 0 (>= gnus-button-emacs-level 1) gnus-button-handle-describe-variable 2) | 6622 | 0 (>= gnus-button-emacs-level 1) gnus-button-handle-describe-variable 2) |
| 6623 | ("`\\(\\b\\(C-h\\|<?[Ff]1>?\\)[ \t\n]+k[ \t\n]+\\([^']+\\)\\)'" | 6623 | ("`\\(\\(C-h\\|<?[Ff]1>?\\)[ \t\n]+k[ \t\n]+\\([^']+\\)\\)'" |
| 6624 | ;; Unlike the other regexps we really have to require quoting | 6624 | ;; Unlike the other regexps we really have to require quoting |
| 6625 | ;; here to determine where it ends. | 6625 | ;; here to determine where it ends. |
| 6626 | 1 (>= gnus-button-emacs-level 1) gnus-button-handle-describe-key 3) | 6626 | 1 (>= gnus-button-emacs-level 1) gnus-button-handle-describe-key 3) |
diff --git a/lisp/gnus/gnus-msg.el b/lisp/gnus/gnus-msg.el index cace5028f96..055fc75626a 100644 --- a/lisp/gnus/gnus-msg.el +++ b/lisp/gnus/gnus-msg.el | |||
| @@ -393,6 +393,13 @@ Thank you for your help in stamping out bugs. | |||
| 393 | (setq mml-buffer-list nil) | 393 | (setq mml-buffer-list nil) |
| 394 | (add-hook 'message-header-setup-hook 'gnus-inews-insert-gcc) | 394 | (add-hook 'message-header-setup-hook 'gnus-inews-insert-gcc) |
| 395 | (add-hook 'message-header-setup-hook 'gnus-inews-insert-archive-gcc) | 395 | (add-hook 'message-header-setup-hook 'gnus-inews-insert-archive-gcc) |
| 396 | ;; message-newsreader and message-mailer were formerly set in | ||
| 397 | ;; gnus-inews-add-send-actions, but this is too late when | ||
| 398 | ;; message-generate-headers-first is used. --ansel | ||
| 399 | (add-hook 'message-mode-hook | ||
| 400 | (lambda nil | ||
| 401 | (setq message-newsreader | ||
| 402 | (setq message-mailer (gnus-extended-version))))) | ||
| 396 | ;; #### FIXME: for a reason that I did not manage to identify yet, | 403 | ;; #### FIXME: for a reason that I did not manage to identify yet, |
| 397 | ;; the variable `gnus-newsgroup-name' does not honor a dynamically | 404 | ;; the variable `gnus-newsgroup-name' does not honor a dynamically |
| 398 | ;; scoped or setq'ed value from a caller like `C-u gnus-summary-mail'. | 405 | ;; scoped or setq'ed value from a caller like `C-u gnus-summary-mail'. |
| @@ -514,7 +521,6 @@ Gcc: header for archiving purposes." | |||
| 514 | (setq message-post-method | 521 | (setq message-post-method |
| 515 | `(lambda (arg) | 522 | `(lambda (arg) |
| 516 | (gnus-post-method arg ,gnus-newsgroup-name))) | 523 | (gnus-post-method arg ,gnus-newsgroup-name))) |
| 517 | (setq message-newsreader (setq message-mailer (gnus-extended-version))) | ||
| 518 | (message-add-action | 524 | (message-add-action |
| 519 | `(when (gnus-buffer-exists-p ,buffer) | 525 | `(when (gnus-buffer-exists-p ,buffer) |
| 520 | (set-window-configuration ,winconf)) | 526 | (set-window-configuration ,winconf)) |
| @@ -765,6 +771,7 @@ active, the entire article will be yanked." | |||
| 765 | (nnheader-narrow-to-headers) | 771 | (nnheader-narrow-to-headers) |
| 766 | (nnheader-parse-naked-head))))) | 772 | (nnheader-parse-naked-head))))) |
| 767 | (message-yank-original) | 773 | (message-yank-original) |
| 774 | (message-exchange-point-and-mark) | ||
| 768 | (setq beg (or beg (mark t)))) | 775 | (setq beg (or beg (mark t)))) |
| 769 | (when articles | 776 | (when articles |
| 770 | (insert "\n"))) | 777 | (insert "\n"))) |
diff --git a/lisp/gnus/gnus-registry.el b/lisp/gnus/gnus-registry.el index f32ed6f1414..3e4d3d0127c 100644 --- a/lisp/gnus/gnus-registry.el +++ b/lisp/gnus/gnus-registry.el | |||
| @@ -154,6 +154,8 @@ way." | |||
| 154 | (gnus-load file) | 154 | (gnus-load file) |
| 155 | (gnus-message 5 "Reading %s...done" file)))) | 155 | (gnus-message 5 "Reading %s...done" file)))) |
| 156 | 156 | ||
| 157 | ;; FIXME: Get rid of duplicated code, cf. `gnus-save-newsrc-file' in | ||
| 158 | ;; `gnus-start.el'. --rsteib | ||
| 157 | (defun gnus-registry-cache-save () | 159 | (defun gnus-registry-cache-save () |
| 158 | "Save the registry cache file." | 160 | "Save the registry cache file." |
| 159 | (interactive) | 161 | (interactive) |
diff --git a/lisp/gnus/gnus-util.el b/lisp/gnus/gnus-util.el index 4f8e8539e88..25d6dfd47b6 100644 --- a/lisp/gnus/gnus-util.el +++ b/lisp/gnus/gnus-util.el | |||
| @@ -122,7 +122,7 @@ This is a compatibility function for different Emacsen." | |||
| 122 | (put 'gnus-eval-in-buffer-window 'edebug-form-spec '(form body)) | 122 | (put 'gnus-eval-in-buffer-window 'edebug-form-spec '(form body)) |
| 123 | 123 | ||
| 124 | (defmacro gnus-intern-safe (string hashtable) | 124 | (defmacro gnus-intern-safe (string hashtable) |
| 125 | "Set hash value. Arguments are STRING, VALUE, and HASHTABLE." | 125 | "Get hash value. Arguments are STRING and HASHTABLE." |
| 126 | `(let ((symbol (intern ,string ,hashtable))) | 126 | `(let ((symbol (intern ,string ,hashtable))) |
| 127 | (or (boundp symbol) | 127 | (or (boundp symbol) |
| 128 | (set symbol nil)) | 128 | (set symbol nil)) |
diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el index 55a7653dba1..baf98611308 100644 --- a/lisp/gnus/message.el +++ b/lisp/gnus/message.el | |||
| @@ -226,7 +226,7 @@ Also see `message-required-news-headers' and | |||
| 226 | "*Headers to be generated or prompted for when posting an article. | 226 | "*Headers to be generated or prompted for when posting an article. |
| 227 | RFC977 and RFC1036 require From, Date, Newsgroups, Subject, | 227 | RFC977 and RFC1036 require From, Date, Newsgroups, Subject, |
| 228 | Message-ID. Organization, Lines, In-Reply-To, Expires, and | 228 | Message-ID. Organization, Lines, In-Reply-To, Expires, and |
| 229 | User-Agent are optional. If don't you want message to insert some | 229 | User-Agent are optional. If you don't want message to insert some |
| 230 | header, remove it from this list." | 230 | header, remove it from this list." |
| 231 | :group 'message-news | 231 | :group 'message-news |
| 232 | :group 'message-headers | 232 | :group 'message-headers |
| @@ -433,16 +433,36 @@ nil means let mailer mail back a message to report errors." | |||
| 433 | :type 'boolean) | 433 | :type 'boolean) |
| 434 | 434 | ||
| 435 | (defcustom message-generate-new-buffers 'unique | 435 | (defcustom message-generate-new-buffers 'unique |
| 436 | "*Non-nil means create a new message buffer whenever `message-setup' is called. | 436 | "*Say whether to create a new message buffer to compose a message. |
| 437 | If this is a function, call that function with three parameters: The type, | 437 | Valid values include: |
| 438 | the to address and the group name. (Any of these may be nil.) The function | 438 | |
| 439 | should return the new buffer name." | 439 | nil |
| 440 | Generate the buffer name in the Message way (e.g., *mail*, *news*, | ||
| 441 | *mail to whom*, *news on group*, etc.) and continue editing in the | ||
| 442 | existing buffer of that name. If there is no such buffer, it will | ||
| 443 | be newly created. | ||
| 444 | |||
| 445 | `unique' or t | ||
| 446 | Create the new buffer with the name generated in the Message way. | ||
| 447 | |||
| 448 | `unsent' | ||
| 449 | Similar to `unique' but the buffer name begins with \"*unsent \". | ||
| 450 | |||
| 451 | `standard' | ||
| 452 | Similar to nil but the buffer name is simpler like *mail message*. | ||
| 453 | |||
| 454 | function | ||
| 455 | If this is a function, call that function with three parameters: | ||
| 456 | The type, the To address and the group name (any of these may be nil). | ||
| 457 | The function should return the new buffer name." | ||
| 440 | :group 'message-buffers | 458 | :group 'message-buffers |
| 441 | :link '(custom-manual "(message)Message Buffers") | 459 | :link '(custom-manual "(message)Message Buffers") |
| 442 | :type '(choice (const :tag "off" nil) | 460 | :type '(choice (const nil) |
| 443 | (const :tag "unique" unique) | 461 | (sexp :tag "unique" :format "unique\n" :value unique |
| 444 | (const :tag "unsent" unsent) | 462 | :match (lambda (widget value) (memq value '(unique t)))) |
| 445 | (function fun))) | 463 | (const unsent) |
| 464 | (const standard) | ||
| 465 | (function :format "\n %{%t%}: %v"))) | ||
| 446 | 466 | ||
| 447 | (defcustom message-kill-buffer-on-exit nil | 467 | (defcustom message-kill-buffer-on-exit nil |
| 448 | "*Non-nil means that the message buffer will be killed after sending a message." | 468 | "*Non-nil means that the message buffer will be killed after sending a message." |
| @@ -1622,7 +1642,8 @@ functionality to work." | |||
| 1622 | (autoload 'rmail-output "rmailout") | 1642 | (autoload 'rmail-output "rmailout") |
| 1623 | (autoload 'gnus-delay-article "gnus-delay") | 1643 | (autoload 'gnus-delay-article "gnus-delay") |
| 1624 | (autoload 'gnus-make-local-hook "gnus-util") | 1644 | (autoload 'gnus-make-local-hook "gnus-util") |
| 1625 | (autoload 'gnus-extract-address-components "gnus-util")) | 1645 | (autoload 'gnus-extract-address-components "gnus-util") |
| 1646 | (autoload 'gnus-select-frame-set-input-focus "gnus-util")) | ||
| 1626 | 1647 | ||
| 1627 | 1648 | ||
| 1628 | 1649 | ||
| @@ -3325,12 +3346,16 @@ prefix, and don't delete any headers." | |||
| 3325 | (delete-windows-on message-reply-buffer t) | 3346 | (delete-windows-on message-reply-buffer t) |
| 3326 | (push-mark (save-excursion | 3347 | (push-mark (save-excursion |
| 3327 | (insert-buffer-substring message-reply-buffer) | 3348 | (insert-buffer-substring message-reply-buffer) |
| 3349 | (unless (bolp) | ||
| 3350 | (insert ?\n)) | ||
| 3328 | (point))) | 3351 | (point))) |
| 3329 | (unless arg | 3352 | (unless arg |
| 3330 | (funcall message-cite-function)) | 3353 | (funcall message-cite-function) |
| 3331 | (message-exchange-point-and-mark) | 3354 | (unless (eq (char-before (mark t)) ?\n) |
| 3332 | (unless (bolp) | 3355 | (let ((pt (point))) |
| 3333 | (insert ?\n)) | 3356 | (goto-char (mark t)) |
| 3357 | (insert-before-markers ?\n) | ||
| 3358 | (goto-char pt)))) | ||
| 3334 | (unless modified | 3359 | (unless modified |
| 3335 | (setq message-checksum (message-checksum)))))) | 3360 | (setq message-checksum (message-checksum)))))) |
| 3336 | 3361 | ||
| @@ -5501,7 +5526,7 @@ between beginning of field and beginning of line." | |||
| 5501 | "Return a new (unique) buffer name based on TYPE and TO." | 5526 | "Return a new (unique) buffer name based on TYPE and TO." |
| 5502 | (cond | 5527 | (cond |
| 5503 | ;; Generate a new buffer name The Message Way. | 5528 | ;; Generate a new buffer name The Message Way. |
| 5504 | ((eq message-generate-new-buffers 'unique) | 5529 | ((memq message-generate-new-buffers '(unique t)) |
| 5505 | (generate-new-buffer-name | 5530 | (generate-new-buffer-name |
| 5506 | (concat "*" type | 5531 | (concat "*" type |
| 5507 | (if to | 5532 | (if to |
| @@ -5525,20 +5550,51 @@ between beginning of field and beginning of line." | |||
| 5525 | "") | 5550 | "") |
| 5526 | (if (and group (not (string= group ""))) (concat " on " group) "") | 5551 | (if (and group (not (string= group ""))) (concat " on " group) "") |
| 5527 | "*"))) | 5552 | "*"))) |
| 5528 | ;; Use standard name. | 5553 | ;; Search for the existing message buffer with the specified name. |
| 5529 | (t | 5554 | (t |
| 5530 | (format "*%s message*" type)))) | 5555 | (let* ((new (if (eq message-generate-new-buffers 'standard) |
| 5556 | (generate-new-buffer-name (concat "*" type " message*")) | ||
| 5557 | (let ((message-generate-new-buffers 'unique)) | ||
| 5558 | (message-buffer-name type to group)))) | ||
| 5559 | (regexp (concat "\\`" | ||
| 5560 | (regexp-quote | ||
| 5561 | (if (string-match "<[0-9]+>\\'" new) | ||
| 5562 | (substring new 0 (match-beginning 0)) | ||
| 5563 | new)) | ||
| 5564 | "\\(?:<\\([0-9]+\\)>\\)?\\'")) | ||
| 5565 | (case-fold-search nil)) | ||
| 5566 | (or (cdar | ||
| 5567 | (last | ||
| 5568 | (sort | ||
| 5569 | (delq nil | ||
| 5570 | (mapcar | ||
| 5571 | (lambda (b) | ||
| 5572 | (when (and (string-match regexp (setq b (buffer-name b))) | ||
| 5573 | (eq (with-current-buffer b major-mode) | ||
| 5574 | 'message-mode)) | ||
| 5575 | (cons (string-to-number (or (match-string 1 b) "1")) | ||
| 5576 | b))) | ||
| 5577 | (buffer-list))) | ||
| 5578 | 'car-less-than-car))) | ||
| 5579 | new))))) | ||
| 5531 | 5580 | ||
| 5532 | (defun message-pop-to-buffer (name) | 5581 | (defun message-pop-to-buffer (name) |
| 5533 | "Pop to buffer NAME, and warn if it already exists and is modified." | 5582 | "Pop to buffer NAME, and warn if it already exists and is modified." |
| 5534 | (let ((buffer (get-buffer name))) | 5583 | (let ((buffer (get-buffer name))) |
| 5535 | (if (and buffer | 5584 | (if (and buffer |
| 5536 | (buffer-name buffer)) | 5585 | (buffer-name buffer)) |
| 5537 | (progn | 5586 | (let ((window (get-buffer-window buffer 0))) |
| 5538 | (set-buffer (pop-to-buffer buffer)) | 5587 | (if window |
| 5588 | ;; Raise the frame already displaying the message buffer. | ||
| 5589 | (progn | ||
| 5590 | (gnus-select-frame-set-input-focus (window-frame window)) | ||
| 5591 | (select-window window)) | ||
| 5592 | (set-buffer (pop-to-buffer buffer))) | ||
| 5539 | (when (and (buffer-modified-p) | 5593 | (when (and (buffer-modified-p) |
| 5540 | (not (y-or-n-p | 5594 | (not (prog1 |
| 5541 | "Message already being composed; erase? "))) | 5595 | (y-or-n-p |
| 5596 | "Message already being composed; erase? ") | ||
| 5597 | (message nil)))) | ||
| 5542 | (error "Message being composed"))) | 5598 | (error "Message being composed"))) |
| 5543 | (set-buffer (pop-to-buffer name))) | 5599 | (set-buffer (pop-to-buffer name))) |
| 5544 | (erase-buffer) | 5600 | (erase-buffer) |
| @@ -5598,7 +5654,8 @@ between beginning of field and beginning of line." | |||
| 5598 | nil | 5654 | nil |
| 5599 | mua))) | 5655 | mua))) |
| 5600 | 5656 | ||
| 5601 | (defun message-setup (headers &optional replybuffer actions switch-function) | 5657 | (defun message-setup (headers &optional replybuffer actions |
| 5658 | continue switch-function) | ||
| 5602 | (let ((mua (message-mail-user-agent)) | 5659 | (let ((mua (message-mail-user-agent)) |
| 5603 | subject to field yank-action) | 5660 | subject to field yank-action) |
| 5604 | (if (not (and message-this-is-mail mua)) | 5661 | (if (not (and message-this-is-mail mua)) |
| @@ -5621,7 +5678,7 @@ between beginning of field and beginning of line." | |||
| 5621 | (format "%s" (car item)) | 5678 | (format "%s" (car item)) |
| 5622 | (cdr item))) | 5679 | (cdr item))) |
| 5623 | headers) | 5680 | headers) |
| 5624 | nil switch-function yank-action actions))))) | 5681 | continue switch-function yank-action actions))))) |
| 5625 | 5682 | ||
| 5626 | (defun message-headers-to-generate (headers included-headers excluded-headers) | 5683 | (defun message-headers-to-generate (headers included-headers excluded-headers) |
| 5627 | "Return a list that includes all headers from HEADERS. | 5684 | "Return a list that includes all headers from HEADERS. |
| @@ -5770,11 +5827,21 @@ are not included." | |||
| 5770 | other-headers continue switch-function | 5827 | other-headers continue switch-function |
| 5771 | yank-action send-actions) | 5828 | yank-action send-actions) |
| 5772 | "Start editing a mail message to be sent. | 5829 | "Start editing a mail message to be sent. |
| 5773 | OTHER-HEADERS is an alist of header/value pairs." | 5830 | OTHER-HEADERS is an alist of header/value pairs. CONTINUE says whether |
| 5831 | to continue editing a message already being composed. SWITCH-FUNCTION | ||
| 5832 | is a function used to switch to and display the mail buffer." | ||
| 5774 | (interactive) | 5833 | (interactive) |
| 5775 | (let ((message-this-is-mail t) replybuffer) | 5834 | (let ((message-this-is-mail t) replybuffer) |
| 5776 | (unless (message-mail-user-agent) | 5835 | (unless (message-mail-user-agent) |
| 5777 | (message-pop-to-buffer (message-buffer-name "mail" to))) | 5836 | (funcall |
| 5837 | (or switch-function 'message-pop-to-buffer) | ||
| 5838 | ;; Search for the existing message buffer if `continue' is non-nil. | ||
| 5839 | (let ((message-generate-new-buffers | ||
| 5840 | (when (or (not continue) | ||
| 5841 | (eq message-generate-new-buffers 'standard) | ||
| 5842 | (functionp message-generate-new-buffers)) | ||
| 5843 | message-generate-new-buffers))) | ||
| 5844 | (message-buffer-name "mail" to)))) | ||
| 5778 | ;; FIXME: message-mail should do something if YANK-ACTION is not | 5845 | ;; FIXME: message-mail should do something if YANK-ACTION is not |
| 5779 | ;; insert-buffer. | 5846 | ;; insert-buffer. |
| 5780 | (and (consp yank-action) (eq (car yank-action) 'insert-buffer) | 5847 | (and (consp yank-action) (eq (car yank-action) 'insert-buffer) |
| @@ -5783,7 +5850,7 @@ OTHER-HEADERS is an alist of header/value pairs." | |||
| 5783 | (nconc | 5850 | (nconc |
| 5784 | `((To . ,(or to "")) (Subject . ,(or subject ""))) | 5851 | `((To . ,(or to "")) (Subject . ,(or subject ""))) |
| 5785 | (when other-headers other-headers)) | 5852 | (when other-headers other-headers)) |
| 5786 | replybuffer send-actions) | 5853 | replybuffer send-actions continue switch-function) |
| 5787 | ;; FIXME: Should return nil if failure. | 5854 | ;; FIXME: Should return nil if failure. |
| 5788 | t)) | 5855 | t)) |
| 5789 | 5856 | ||
| @@ -6655,7 +6722,7 @@ you." | |||
| 6655 | (message-pop-to-buffer (message-buffer-name "mail" to)))) | 6722 | (message-pop-to-buffer (message-buffer-name "mail" to)))) |
| 6656 | (let ((message-this-is-mail t)) | 6723 | (let ((message-this-is-mail t)) |
| 6657 | (message-setup `((To . ,(or to "")) (Subject . ,(or subject ""))) | 6724 | (message-setup `((To . ,(or to "")) (Subject . ,(or subject ""))) |
| 6658 | nil nil 'switch-to-buffer-other-window))) | 6725 | nil nil nil 'switch-to-buffer-other-window))) |
| 6659 | 6726 | ||
| 6660 | ;;;###autoload | 6727 | ;;;###autoload |
| 6661 | (defun message-mail-other-frame (&optional to subject) | 6728 | (defun message-mail-other-frame (&optional to subject) |
| @@ -6670,7 +6737,7 @@ you." | |||
| 6670 | (message-pop-to-buffer (message-buffer-name "mail" to)))) | 6737 | (message-pop-to-buffer (message-buffer-name "mail" to)))) |
| 6671 | (let ((message-this-is-mail t)) | 6738 | (let ((message-this-is-mail t)) |
| 6672 | (message-setup `((To . ,(or to "")) (Subject . ,(or subject ""))) | 6739 | (message-setup `((To . ,(or to "")) (Subject . ,(or subject ""))) |
| 6673 | nil nil 'switch-to-buffer-other-frame))) | 6740 | nil nil nil 'switch-to-buffer-other-frame))) |
| 6674 | 6741 | ||
| 6675 | ;;;###autoload | 6742 | ;;;###autoload |
| 6676 | (defun message-news-other-window (&optional newsgroups subject) | 6743 | (defun message-news-other-window (&optional newsgroups subject) |
diff --git a/lisp/gnus/nnmail.el b/lisp/gnus/nnmail.el index 736e58cd5a2..b080088b2ef 100644 --- a/lisp/gnus/nnmail.el +++ b/lisp/gnus/nnmail.el | |||
| @@ -247,6 +247,10 @@ This variable is a list of mail source specifiers. | |||
| 247 | This variable is obsolete; `mail-sources' should be used instead." | 247 | This variable is obsolete; `mail-sources' should be used instead." |
| 248 | :group 'nnmail-files | 248 | :group 'nnmail-files |
| 249 | :type 'sexp) | 249 | :type 'sexp) |
| 250 | (make-obsolete-variable 'nnmail-spool-file | ||
| 251 | "This option is obsolete in Gnus 5.9. \ | ||
| 252 | Use `mail-sources' instead.") | ||
| 253 | ;; revision 5.29 / p0-85 / Gnus 5.9 | ||
| 250 | 254 | ||
| 251 | (defcustom nnmail-resplit-incoming nil | 255 | (defcustom nnmail-resplit-incoming nil |
| 252 | "*If non-nil, re-split incoming procmail sorted mail." | 256 | "*If non-nil, re-split incoming procmail sorted mail." |
| @@ -1749,7 +1753,8 @@ See the Info node `(gnus)Fancy Mail Splitting' for more details." | |||
| 1749 | &optional group spool-func) | 1753 | &optional group spool-func) |
| 1750 | "Read new incoming mail." | 1754 | "Read new incoming mail." |
| 1751 | (let* ((sources (or mail-sources | 1755 | (let* ((sources (or mail-sources |
| 1752 | (if (listp nnmail-spool-file) nnmail-spool-file | 1756 | (if (listp nnmail-spool-file) |
| 1757 | nnmail-spool-file | ||
| 1753 | (list nnmail-spool-file)))) | 1758 | (list nnmail-spool-file)))) |
| 1754 | fetching-sources | 1759 | fetching-sources |
| 1755 | (group-in group) | 1760 | (group-in group) |
diff --git a/lisp/help.el b/lisp/help.el index d0783dd0351..926c43c300d 100644 --- a/lisp/help.el +++ b/lisp/help.el | |||
| @@ -642,7 +642,7 @@ temporarily enables it to allow getting help on disabled items and buttons." | |||
| 642 | (list | 642 | (list |
| 643 | key | 643 | key |
| 644 | (prefix-numeric-value current-prefix-arg) | 644 | (prefix-numeric-value current-prefix-arg) |
| 645 | ;; If KEY is a down-event, read and discard the | 645 | ;; If KEY is a down-event, read and include the |
| 646 | ;; corresponding up-event. Note that there are also | 646 | ;; corresponding up-event. Note that there are also |
| 647 | ;; down-events on scroll bars and mode lines: the actual | 647 | ;; down-events on scroll bars and mode lines: the actual |
| 648 | ;; event then is in the second element of the vector. | 648 | ;; event then is in the second element of the vector. |
diff --git a/lisp/ido.el b/lisp/ido.el index 3eef048390e..80ed82c2583 100644 --- a/lisp/ido.el +++ b/lisp/ido.el | |||
| @@ -1940,8 +1940,14 @@ If INITIAL is non-nil, it specifies the initial input string." | |||
| 1940 | (if (and ido-matches (eq ido-try-merged-list 'auto)) | 1940 | (if (and ido-matches (eq ido-try-merged-list 'auto)) |
| 1941 | (setq ido-try-merged-list t)) | 1941 | (setq ido-try-merged-list t)) |
| 1942 | (let | 1942 | (let |
| 1943 | ((minibuffer-local-completion-map ido-completion-map) | 1943 | ((minibuffer-local-completion-map |
| 1944 | (minibuffer-local-filename-completion-map ido-completion-map) | 1944 | (if (memq ido-cur-item '(file dir)) |
| 1945 | minibuffer-local-completion-map | ||
| 1946 | ido-completion-map)) | ||
| 1947 | (minibuffer-local-filename-completion-map | ||
| 1948 | (if (memq ido-cur-item '(file dir)) | ||
| 1949 | ido-completion-map | ||
| 1950 | minibuffer-local-filename-completion-map)) | ||
| 1945 | (max-mini-window-height (or ido-max-window-height | 1951 | (max-mini-window-height (or ido-max-window-height |
| 1946 | (and (boundp 'max-mini-window-height) max-mini-window-height))) | 1952 | (and (boundp 'max-mini-window-height) max-mini-window-height))) |
| 1947 | (ido-completing-read t) | 1953 | (ido-completing-read t) |
diff --git a/lisp/info.el b/lisp/info.el index ec2ff23b57e..6f9b1863ee4 100644 --- a/lisp/info.el +++ b/lisp/info.el | |||
| @@ -145,7 +145,7 @@ The Lisp code is executed when the node is selected.") | |||
| 145 | :type 'boolean | 145 | :type 'boolean |
| 146 | :group 'info) | 146 | :group 'info) |
| 147 | 147 | ||
| 148 | (defcustom Info-fontify-maximum-menu-size 1000000 | 148 | (defcustom Info-fontify-maximum-menu-size 100000 |
| 149 | "*Maximum size of menu to fontify if `font-lock-mode' is non-nil. | 149 | "*Maximum size of menu to fontify if `font-lock-mode' is non-nil. |
| 150 | Set to nil to disable node fontification." | 150 | Set to nil to disable node fontification." |
| 151 | :type 'integer | 151 | :type 'integer |
| @@ -1315,16 +1315,25 @@ any double quotes or backslashes must be escaped (\\\",\\\\)." | |||
| 1315 | nil t) | 1315 | nil t) |
| 1316 | (let* ((start (match-beginning 1)) | 1316 | (let* ((start (match-beginning 1)) |
| 1317 | (parameter-alist (Info-split-parameter-string (match-string 2))) | 1317 | (parameter-alist (Info-split-parameter-string (match-string 2))) |
| 1318 | (src (cdr (assoc-string "src" parameter-alist))) | 1318 | (src (cdr (assoc-string "src" parameter-alist)))) |
| 1319 | (image-file (if src (if (file-name-absolute-p src) src | 1319 | (if (display-images-p) |
| 1320 | (concat default-directory src)) | 1320 | (let* ((image-file (if src (if (file-name-absolute-p src) src |
| 1321 | "")) | 1321 | (concat default-directory src)) |
| 1322 | (image (if (file-exists-p image-file) | 1322 | "")) |
| 1323 | (create-image image-file) | 1323 | (image (if (file-exists-p image-file) |
| 1324 | "[broken image]"))) | 1324 | (create-image image-file) |
| 1325 | (if (not (get-text-property start 'display)) | 1325 | "[broken image]"))) |
| 1326 | (add-text-properties | 1326 | (if (not (get-text-property start 'display)) |
| 1327 | start (point) `(display ,image rear-nonsticky (display))))))) | 1327 | (add-text-properties |
| 1328 | start (point) `(display ,image rear-nonsticky (display))))) | ||
| 1329 | ;; text-only display, show alternative text if provided, or | ||
| 1330 | ;; otherwise a clue that there's meant to be a picture | ||
| 1331 | (delete-region start (point)) | ||
| 1332 | (insert (or (cdr (assoc-string "text" parameter-alist)) | ||
| 1333 | (cdr (assoc-string "alt" parameter-alist)) | ||
| 1334 | (and src | ||
| 1335 | (concat "[image:" src "]")) | ||
| 1336 | "[image]")))))) | ||
| 1328 | (set-buffer-modified-p nil))) | 1337 | (set-buffer-modified-p nil))) |
| 1329 | 1338 | ||
| 1330 | ;; Texinfo 4.7 adds cookies of the form ^@^H[NAME CONTENTS ^@^H]. | 1339 | ;; Texinfo 4.7 adds cookies of the form ^@^H[NAME CONTENTS ^@^H]. |
| @@ -3235,7 +3244,6 @@ If FORK is non-nil, it i spassed to `Info-goto-node'." | |||
| 3235 | (defvar info-tool-bar-map | 3244 | (defvar info-tool-bar-map |
| 3236 | (if (display-graphic-p) | 3245 | (if (display-graphic-p) |
| 3237 | (let ((map (make-sparse-keymap))) | 3246 | (let ((map (make-sparse-keymap))) |
| 3238 | (tool-bar-local-item-from-menu 'Info-exit "close" map Info-mode-map) | ||
| 3239 | (tool-bar-local-item-from-menu 'Info-history-back "left-arrow" map Info-mode-map) | 3247 | (tool-bar-local-item-from-menu 'Info-history-back "left-arrow" map Info-mode-map) |
| 3240 | (tool-bar-local-item-from-menu 'Info-history-forward "right-arrow" map Info-mode-map) | 3248 | (tool-bar-local-item-from-menu 'Info-history-forward "right-arrow" map Info-mode-map) |
| 3241 | (tool-bar-local-item-from-menu 'Info-prev "prev-node" map Info-mode-map) | 3249 | (tool-bar-local-item-from-menu 'Info-prev "prev-node" map Info-mode-map) |
| @@ -3245,6 +3253,7 @@ If FORK is non-nil, it i spassed to `Info-goto-node'." | |||
| 3245 | (tool-bar-local-item-from-menu 'Info-goto-node "jump-to" map Info-mode-map) | 3253 | (tool-bar-local-item-from-menu 'Info-goto-node "jump-to" map Info-mode-map) |
| 3246 | (tool-bar-local-item-from-menu 'Info-index "index" map Info-mode-map) | 3254 | (tool-bar-local-item-from-menu 'Info-index "index" map Info-mode-map) |
| 3247 | (tool-bar-local-item-from-menu 'Info-search "search" map Info-mode-map) | 3255 | (tool-bar-local-item-from-menu 'Info-search "search" map Info-mode-map) |
| 3256 | (tool-bar-local-item-from-menu 'Info-exit "exit" map Info-mode-map) | ||
| 3248 | map))) | 3257 | map))) |
| 3249 | 3258 | ||
| 3250 | (defvar Info-menu-last-node nil) | 3259 | (defvar Info-menu-last-node nil) |
diff --git a/lisp/international/mule.el b/lisp/international/mule.el index fc7b0276a0f..e873aadb8b4 100644 --- a/lisp/international/mule.el +++ b/lisp/international/mule.el | |||
| @@ -392,6 +392,20 @@ code-point in CCS. Currently not supported and just ignored." | |||
| 392 | char)))))))) | 392 | char)))))))) |
| 393 | 393 | ||
| 394 | 394 | ||
| 395 | ;; Save the ASCII case table in case we need it later. Some locales | ||
| 396 | ;; (such as Turkish) modify the case behavior of ASCII characters, | ||
| 397 | ;; which can interfere with networking code that uses ASCII strings. | ||
| 398 | |||
| 399 | (defvar ascii-case-table | ||
| 400 | ;; Code copied from copy-case-table to avoid requiring case-table.el | ||
| 401 | (let ((tbl (copy-sequence (standard-case-table))) | ||
| 402 | (up (char-table-extra-slot (standard-case-table) 0))) | ||
| 403 | (if up (set-char-table-extra-slot tbl 0 (copy-sequence up))) | ||
| 404 | (set-char-table-extra-slot tbl 1 nil) | ||
| 405 | (set-char-table-extra-slot tbl 2 nil) | ||
| 406 | tbl) | ||
| 407 | "Case table for the ASCII character set.") | ||
| 408 | |||
| 395 | ;; Coding system stuff | 409 | ;; Coding system stuff |
| 396 | 410 | ||
| 397 | ;; Coding system is a symbol that has the property `coding-system'. | 411 | ;; Coding system is a symbol that has the property `coding-system'. |
diff --git a/lisp/isearch.el b/lisp/isearch.el index 8c248dbc255..f246de141f4 100644 --- a/lisp/isearch.el +++ b/lisp/isearch.el | |||
| @@ -531,8 +531,7 @@ Type \\[isearch-yank-char] to yank char from buffer onto end of search\ | |||
| 531 | string and search for it. | 531 | string and search for it. |
| 532 | Type \\[isearch-yank-line] to yank rest of line onto end of search string\ | 532 | Type \\[isearch-yank-line] to yank rest of line onto end of search string\ |
| 533 | and search for it. | 533 | and search for it. |
| 534 | Type \\[isearch-yank-kill] to yank last killed text onto end of search string\ | 534 | Type \\[isearch-yank-kill] to yank the last string of killed text. |
| 535 | and search for it. | ||
| 536 | Type \\[isearch-quote-char] to quote control character to search for it. | 535 | Type \\[isearch-quote-char] to quote control character to search for it. |
| 537 | \\[isearch-abort] while searching or when search has failed cancels input\ | 536 | \\[isearch-abort] while searching or when search has failed cancels input\ |
| 538 | back to what has | 537 | back to what has |
diff --git a/lisp/ldefs-boot.el b/lisp/ldefs-boot.el index f9dac3493f1..3932fd83f52 100644 --- a/lisp/ldefs-boot.el +++ b/lisp/ldefs-boot.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;;;### (autoloads (5x5-crack 5x5-crack-xor-mutate 5x5-crack-mutating-best | 5 | ;;;### (autoloads (5x5-crack 5x5-crack-xor-mutate 5x5-crack-mutating-best |
| 6 | ;;;;;; 5x5-crack-mutating-current 5x5-crack-randomly 5x5) "5x5" | 6 | ;;;;;; 5x5-crack-mutating-current 5x5-crack-randomly 5x5) "5x5" |
| 7 | ;;;;;; "play/5x5.el" (17888 36936)) | 7 | ;;;;;; "play/5x5.el" (17963 21010)) |
| 8 | ;;; Generated autoloads from play/5x5.el | 8 | ;;; Generated autoloads from play/5x5.el |
| 9 | 9 | ||
| 10 | (autoload (quote 5x5) "5x5" "\ | 10 | (autoload (quote 5x5) "5x5" "\ |
| @@ -852,7 +852,7 @@ Not documented | |||
| 852 | ;;;*** | 852 | ;;;*** |
| 853 | 853 | ||
| 854 | ;;;### (autoloads (animate-birthday-present animate-sequence animate-string) | 854 | ;;;### (autoloads (animate-birthday-present animate-sequence animate-string) |
| 855 | ;;;;;; "animate" "play/animate.el" (17888 32280)) | 855 | ;;;;;; "animate" "play/animate.el" (17963 21010)) |
| 856 | ;;; Generated autoloads from play/animate.el | 856 | ;;; Generated autoloads from play/animate.el |
| 857 | 857 | ||
| 858 | (autoload (quote animate-string) "animate" "\ | 858 | (autoload (quote animate-string) "animate" "\ |
| @@ -1611,7 +1611,7 @@ Calls `update-directory-autoloads' on the command line arguments. | |||
| 1611 | 1611 | ||
| 1612 | ;;;### (autoloads (global-auto-revert-mode turn-on-auto-revert-tail-mode | 1612 | ;;;### (autoloads (global-auto-revert-mode turn-on-auto-revert-tail-mode |
| 1613 | ;;;;;; auto-revert-tail-mode turn-on-auto-revert-mode auto-revert-mode) | 1613 | ;;;;;; auto-revert-tail-mode turn-on-auto-revert-mode auto-revert-mode) |
| 1614 | ;;;;;; "autorevert" "autorevert.el" (17963 19298)) | 1614 | ;;;;;; "autorevert" "autorevert.el" (17963 20867)) |
| 1615 | ;;; Generated autoloads from autorevert.el | 1615 | ;;; Generated autoloads from autorevert.el |
| 1616 | 1616 | ||
| 1617 | (autoload (quote auto-revert-mode) "autorevert" "\ | 1617 | (autoload (quote auto-revert-mode) "autorevert" "\ |
| @@ -2598,8 +2598,8 @@ name of buffer configuration. | |||
| 2598 | ;;;*** | 2598 | ;;;*** |
| 2599 | 2599 | ||
| 2600 | ;;;### (autoloads (insert-text-button make-text-button insert-button | 2600 | ;;;### (autoloads (insert-text-button make-text-button insert-button |
| 2601 | ;;;;;; make-button define-button-type) "button" "button.el" (17888 | 2601 | ;;;;;; make-button define-button-type) "button" "button.el" (17963 |
| 2602 | ;;;;;; 32278)) | 2602 | ;;;;;; 21008)) |
| 2603 | ;;; Generated autoloads from button.el | 2603 | ;;; Generated autoloads from button.el |
| 2604 | 2604 | ||
| 2605 | (defvar button-map (let ((map (make-sparse-keymap))) (define-key map " " (quote push-button)) (define-key map [mouse-2] (quote push-button)) map) "\ | 2605 | (defvar button-map (let ((map (make-sparse-keymap))) (define-key map " " (quote push-button)) (define-key map [mouse-2] (quote push-button)) map) "\ |
| @@ -2687,7 +2687,7 @@ Also see `make-text-button'. | |||
| 2687 | ;;;;;; batch-byte-compile-if-not-done display-call-tree byte-compile | 2687 | ;;;;;; batch-byte-compile-if-not-done display-call-tree byte-compile |
| 2688 | ;;;;;; compile-defun byte-compile-file byte-recompile-directory | 2688 | ;;;;;; compile-defun byte-compile-file byte-recompile-directory |
| 2689 | ;;;;;; byte-force-recompile byte-compile-warnings-safe-p) "bytecomp" | 2689 | ;;;;;; byte-force-recompile byte-compile-warnings-safe-p) "bytecomp" |
| 2690 | ;;;;;; "emacs-lisp/bytecomp.el" (17963 19282)) | 2690 | ;;;;;; "emacs-lisp/bytecomp.el" (17963 20998)) |
| 2691 | ;;; Generated autoloads from emacs-lisp/bytecomp.el | 2691 | ;;; Generated autoloads from emacs-lisp/bytecomp.el |
| 2692 | (put 'byte-compile-dynamic 'safe-local-variable 'booleanp) | 2692 | (put 'byte-compile-dynamic 'safe-local-variable 'booleanp) |
| 2693 | (put 'byte-compile-disable-print-circle 'safe-local-variable 'booleanp) | 2693 | (put 'byte-compile-disable-print-circle 'safe-local-variable 'booleanp) |
| @@ -2925,7 +2925,7 @@ See the documentation for `calculator-mode' for more information. | |||
| 2925 | ;;;;;; mark-holidays-in-calendar view-calendar-holidays-initially | 2925 | ;;;;;; mark-holidays-in-calendar view-calendar-holidays-initially |
| 2926 | ;;;;;; calendar-remove-frame-by-deleting mark-diary-entries-in-calendar | 2926 | ;;;;;; calendar-remove-frame-by-deleting mark-diary-entries-in-calendar |
| 2927 | ;;;;;; view-diary-entries-initially calendar-offset) "calendar" | 2927 | ;;;;;; view-diary-entries-initially calendar-offset) "calendar" |
| 2928 | ;;;;;; "calendar/calendar.el" (17963 20580)) | 2928 | ;;;;;; "calendar/calendar.el" (17963 20998)) |
| 2929 | ;;; Generated autoloads from calendar/calendar.el | 2929 | ;;; Generated autoloads from calendar/calendar.el |
| 2930 | 2930 | ||
| 2931 | (defvar calendar-offset 0 "\ | 2931 | (defvar calendar-offset 0 "\ |
| @@ -3523,7 +3523,7 @@ it fails. | |||
| 3523 | ;;;*** | 3523 | ;;;*** |
| 3524 | 3524 | ||
| 3525 | ;;;### (autoloads (c-guess-basic-syntax) "cc-engine" "progmodes/cc-engine.el" | 3525 | ;;;### (autoloads (c-guess-basic-syntax) "cc-engine" "progmodes/cc-engine.el" |
| 3526 | ;;;;;; (17963 19063)) | 3526 | ;;;;;; (17963 20867)) |
| 3527 | ;;; Generated autoloads from progmodes/cc-engine.el | 3527 | ;;; Generated autoloads from progmodes/cc-engine.el |
| 3528 | 3528 | ||
| 3529 | (autoload (quote c-guess-basic-syntax) "cc-engine" "\ | 3529 | (autoload (quote c-guess-basic-syntax) "cc-engine" "\ |
| @@ -3535,7 +3535,7 @@ Return the syntactic context of the current line. | |||
| 3535 | 3535 | ||
| 3536 | ;;;### (autoloads (pike-mode idl-mode java-mode objc-mode c++-mode | 3536 | ;;;### (autoloads (pike-mode idl-mode java-mode objc-mode c++-mode |
| 3537 | ;;;;;; c-mode c-initialize-cc-mode) "cc-mode" "progmodes/cc-mode.el" | 3537 | ;;;;;; c-mode c-initialize-cc-mode) "cc-mode" "progmodes/cc-mode.el" |
| 3538 | ;;;;;; (17963 19063)) | 3538 | ;;;;;; (17963 20867)) |
| 3539 | ;;; Generated autoloads from progmodes/cc-mode.el | 3539 | ;;; Generated autoloads from progmodes/cc-mode.el |
| 3540 | 3540 | ||
| 3541 | (autoload (quote c-initialize-cc-mode) "cc-mode" "\ | 3541 | (autoload (quote c-initialize-cc-mode) "cc-mode" "\ |
| @@ -3751,7 +3751,7 @@ and exists only for compatibility reasons. | |||
| 3751 | 3751 | ||
| 3752 | ;;;*** | 3752 | ;;;*** |
| 3753 | 3753 | ||
| 3754 | ;;;### (autoloads nil "cc-vars" "progmodes/cc-vars.el" (17888 36581)) | 3754 | ;;;### (autoloads nil "cc-vars" "progmodes/cc-vars.el" (17963 21010)) |
| 3755 | ;;; Generated autoloads from progmodes/cc-vars.el | 3755 | ;;; Generated autoloads from progmodes/cc-vars.el |
| 3756 | (put 'c-basic-offset 'safe-local-variable 'integerp) | 3756 | (put 'c-basic-offset 'safe-local-variable 'integerp) |
| 3757 | (put 'c-backslash-column 'safe-local-variable 'integerp) | 3757 | (put 'c-backslash-column 'safe-local-variable 'integerp) |
| @@ -4483,7 +4483,7 @@ read/written by MS-DOS software, or for display on the MS-DOS terminal. | |||
| 4483 | ;;;### (autoloads (comint-redirect-results-list-from-process comint-redirect-results-list | 4483 | ;;;### (autoloads (comint-redirect-results-list-from-process comint-redirect-results-list |
| 4484 | ;;;;;; comint-redirect-send-command-to-process comint-redirect-send-command | 4484 | ;;;;;; comint-redirect-send-command-to-process comint-redirect-send-command |
| 4485 | ;;;;;; comint-run make-comint make-comint-in-buffer) "comint" "comint.el" | 4485 | ;;;;;; comint-run make-comint make-comint-in-buffer) "comint" "comint.el" |
| 4486 | ;;;;;; (17963 19298)) | 4486 | ;;;;;; (17963 21008)) |
| 4487 | ;;; Generated autoloads from comint.el | 4487 | ;;; Generated autoloads from comint.el |
| 4488 | 4488 | ||
| 4489 | (defvar comint-output-filter-functions (quote (comint-postoutput-scroll-to-bottom comint-watch-for-password-prompt)) "\ | 4489 | (defvar comint-output-filter-functions (quote (comint-postoutput-scroll-to-bottom comint-watch-for-password-prompt)) "\ |
| @@ -4573,8 +4573,8 @@ REGEXP-GROUP is the regular expression group in REGEXP to use. | |||
| 4573 | 4573 | ||
| 4574 | ;;;*** | 4574 | ;;;*** |
| 4575 | 4575 | ||
| 4576 | ;;;### (autoloads (compare-windows) "compare-w" "compare-w.el" (17888 | 4576 | ;;;### (autoloads (compare-windows) "compare-w" "compare-w.el" (17963 |
| 4577 | ;;;;;; 32279)) | 4577 | ;;;;;; 20867)) |
| 4578 | ;;; Generated autoloads from compare-w.el | 4578 | ;;; Generated autoloads from compare-w.el |
| 4579 | 4579 | ||
| 4580 | (autoload (quote compare-windows) "compare-w" "\ | 4580 | (autoload (quote compare-windows) "compare-w" "\ |
| @@ -4611,7 +4611,7 @@ on third call it again advances points to the next difference and so on. | |||
| 4611 | ;;;;;; compilation-shell-minor-mode compilation-mode compilation-start | 4611 | ;;;;;; compilation-shell-minor-mode compilation-mode compilation-start |
| 4612 | ;;;;;; compile compilation-disable-input compile-command compilation-search-path | 4612 | ;;;;;; compile compilation-disable-input compile-command compilation-search-path |
| 4613 | ;;;;;; compilation-ask-about-save compilation-window-height compilation-mode-hook) | 4613 | ;;;;;; compilation-ask-about-save compilation-window-height compilation-mode-hook) |
| 4614 | ;;;;;; "compile" "progmodes/compile.el" (17963 19298)) | 4614 | ;;;;;; "compile" "progmodes/compile.el" (17963 20998)) |
| 4615 | ;;; Generated autoloads from progmodes/compile.el | 4615 | ;;; Generated autoloads from progmodes/compile.el |
| 4616 | 4616 | ||
| 4617 | (defvar compilation-mode-hook nil "\ | 4617 | (defvar compilation-mode-hook nil "\ |
| @@ -4647,6 +4647,7 @@ describing how the process finished.") | |||
| 4647 | Functions to call when a compilation process finishes. | 4647 | Functions to call when a compilation process finishes. |
| 4648 | Each function is called with two arguments: the compilation buffer, | 4648 | Each function is called with two arguments: the compilation buffer, |
| 4649 | and a string describing how the process finished.") | 4649 | and a string describing how the process finished.") |
| 4650 | (put 'compilation-directory 'safe-local-variable 'stringp) | ||
| 4650 | 4651 | ||
| 4651 | (defvar compilation-ask-about-save t "\ | 4652 | (defvar compilation-ask-about-save t "\ |
| 4652 | *Non-nil means \\[compile] asks which buffers to save before compiling. | 4653 | *Non-nil means \\[compile] asks which buffers to save before compiling. |
| @@ -4773,7 +4774,7 @@ This is the value of `next-error-function' in Compilation buffers. | |||
| 4773 | ;;;*** | 4774 | ;;;*** |
| 4774 | 4775 | ||
| 4775 | ;;;### (autoloads (partial-completion-mode) "complete" "complete.el" | 4776 | ;;;### (autoloads (partial-completion-mode) "complete" "complete.el" |
| 4776 | ;;;;;; (17963 19063)) | 4777 | ;;;;;; (17963 21000)) |
| 4777 | ;;; Generated autoloads from complete.el | 4778 | ;;; Generated autoloads from complete.el |
| 4778 | 4779 | ||
| 4779 | (defvar partial-completion-mode nil "\ | 4780 | (defvar partial-completion-mode nil "\ |
| @@ -6751,7 +6752,7 @@ Not documented | |||
| 6751 | ;;;*** | 6752 | ;;;*** |
| 6752 | 6753 | ||
| 6753 | ;;;### (autoloads (diary-mode diary-mail-entries diary) "diary-lib" | 6754 | ;;;### (autoloads (diary-mode diary-mail-entries diary) "diary-lib" |
| 6754 | ;;;;;; "calendar/diary-lib.el" (17963 20580)) | 6755 | ;;;;;; "calendar/diary-lib.el" (17963 20998)) |
| 6755 | ;;; Generated autoloads from calendar/diary-lib.el | 6756 | ;;; Generated autoloads from calendar/diary-lib.el |
| 6756 | 6757 | ||
| 6757 | (autoload (quote diary) "diary-lib" "\ | 6758 | (autoload (quote diary) "diary-lib" "\ |
| @@ -6848,9 +6849,6 @@ You can also switch between context diff and unified diff with \\[diff-context-> | |||
| 6848 | or vice versa with \\[diff-unified->context] and you can also reverse the direction of | 6849 | or vice versa with \\[diff-unified->context] and you can also reverse the direction of |
| 6849 | a diff with \\[diff-reverse-direction]. | 6850 | a diff with \\[diff-reverse-direction]. |
| 6850 | 6851 | ||
| 6851 | When the buffer is read-only, the Meta- modifier is not necessary | ||
| 6852 | to run the Diff mode commands: | ||
| 6853 | |||
| 6854 | \\{diff-mode-map} | 6852 | \\{diff-mode-map} |
| 6855 | 6853 | ||
| 6856 | \(fn)" t nil) | 6854 | \(fn)" t nil) |
| @@ -7671,7 +7669,7 @@ for users who call this function in `.emacs'. | |||
| 7671 | ;;;*** | 7669 | ;;;*** |
| 7672 | 7670 | ||
| 7673 | ;;;### (autoloads (dissociated-press) "dissociate" "play/dissociate.el" | 7671 | ;;;### (autoloads (dissociated-press) "dissociate" "play/dissociate.el" |
| 7674 | ;;;;;; (17888 32280)) | 7672 | ;;;;;; (17963 21010)) |
| 7675 | ;;; Generated autoloads from play/dissociate.el | 7673 | ;;; Generated autoloads from play/dissociate.el |
| 7676 | 7674 | ||
| 7677 | (autoload (quote dissociated-press) "dissociate" "\ | 7675 | (autoload (quote dissociated-press) "dissociate" "\ |
| @@ -7732,7 +7730,7 @@ Locate SOA record and increment the serial field. | |||
| 7732 | 7730 | ||
| 7733 | ;;;*** | 7731 | ;;;*** |
| 7734 | 7732 | ||
| 7735 | ;;;### (autoloads (doctor) "doctor" "play/doctor.el" (17888 32280)) | 7733 | ;;;### (autoloads (doctor) "doctor" "play/doctor.el" (17963 21010)) |
| 7736 | ;;; Generated autoloads from play/doctor.el | 7734 | ;;; Generated autoloads from play/doctor.el |
| 7737 | 7735 | ||
| 7738 | (autoload (quote doctor) "doctor" "\ | 7736 | (autoload (quote doctor) "doctor" "\ |
| @@ -8488,7 +8486,7 @@ With prefix arg NOCONFIRM, execute current line as-is without editing. | |||
| 8488 | 8486 | ||
| 8489 | ;;;### (autoloads (edebug-all-forms edebug-all-defs edebug-eval-top-level-form | 8487 | ;;;### (autoloads (edebug-all-forms edebug-all-defs edebug-eval-top-level-form |
| 8490 | ;;;;;; edebug-basic-spec edebug-all-forms edebug-all-defs) "edebug" | 8488 | ;;;;;; edebug-basic-spec edebug-all-forms edebug-all-defs) "edebug" |
| 8491 | ;;;;;; "emacs-lisp/edebug.el" (17963 19041)) | 8489 | ;;;;;; "emacs-lisp/edebug.el" (17963 20999)) |
| 8492 | ;;; Generated autoloads from emacs-lisp/edebug.el | 8490 | ;;; Generated autoloads from emacs-lisp/edebug.el |
| 8493 | 8491 | ||
| 8494 | (defvar edebug-all-defs nil "\ | 8492 | (defvar edebug-all-defs nil "\ |
| @@ -9196,7 +9194,7 @@ Not documented | |||
| 9196 | ;;;*** | 9194 | ;;;*** |
| 9197 | 9195 | ||
| 9198 | ;;;### (autoloads (erc-handle-irc-url erc erc-select-read-args) "erc" | 9196 | ;;;### (autoloads (erc-handle-irc-url erc erc-select-read-args) "erc" |
| 9199 | ;;;;;; "erc/erc.el" (17888 32279)) | 9197 | ;;;;;; "erc/erc.el" (17963 21006)) |
| 9200 | ;;; Generated autoloads from erc/erc.el | 9198 | ;;; Generated autoloads from erc/erc.el |
| 9201 | 9199 | ||
| 9202 | (autoload (quote erc-select-read-args) "erc" "\ | 9200 | (autoload (quote erc-select-read-args) "erc" "\ |
| @@ -9205,8 +9203,12 @@ Prompt the user for values of nick, server, port, and password. | |||
| 9205 | \(fn)" nil nil) | 9203 | \(fn)" nil nil) |
| 9206 | 9204 | ||
| 9207 | (autoload (quote erc) "erc" "\ | 9205 | (autoload (quote erc) "erc" "\ |
| 9208 | Select connection parameters and run ERC. | 9206 | ERC is a powerful, modular, and extensible IRC client. |
| 9209 | Non-interactively, it takes keyword arguments | 9207 | This function is the main entry point for ERC. |
| 9208 | |||
| 9209 | It permits you to select connection parameters, and then starts ERC. | ||
| 9210 | |||
| 9211 | Non-interactively, it takes the keyword arguments | ||
| 9210 | (server (erc-compute-server)) | 9212 | (server (erc-compute-server)) |
| 9211 | (port (erc-compute-port)) | 9213 | (port (erc-compute-port)) |
| 9212 | (nick (erc-compute-nick)) | 9214 | (nick (erc-compute-nick)) |
| @@ -9217,12 +9219,14 @@ That is, if called with | |||
| 9217 | 9219 | ||
| 9218 | (erc :server \"irc.freenode.net\" :full-name \"Harry S Truman\") | 9220 | (erc :server \"irc.freenode.net\" :full-name \"Harry S Truman\") |
| 9219 | 9221 | ||
| 9220 | server and full-name will be set to those values, whereas | 9222 | then the server and full-name will be set to those values, whereas |
| 9221 | `erc-compute-port', `erc-compute-nick' and `erc-compute-full-name' will | 9223 | `erc-compute-port', `erc-compute-nick' and `erc-compute-full-name' will |
| 9222 | be invoked for the values of the other parameters. | 9224 | be invoked for the values of the other parameters. |
| 9223 | 9225 | ||
| 9224 | \(fn &key (SERVER (erc-compute-server)) (PORT (erc-compute-port)) (NICK (erc-compute-nick)) PASSWORD (FULL-NAME (erc-compute-full-name)))" t nil) | 9226 | \(fn &key (SERVER (erc-compute-server)) (PORT (erc-compute-port)) (NICK (erc-compute-nick)) PASSWORD (FULL-NAME (erc-compute-full-name)))" t nil) |
| 9225 | 9227 | ||
| 9228 | (defalias (quote erc-select) (quote erc)) | ||
| 9229 | |||
| 9226 | (autoload (quote erc-handle-irc-url) "erc" "\ | 9230 | (autoload (quote erc-handle-irc-url) "erc" "\ |
| 9227 | Use ERC to IRC on HOST:PORT in CHANNEL as USER with PASSWORD. | 9231 | Use ERC to IRC on HOST:PORT in CHANNEL as USER with PASSWORD. |
| 9228 | If ERC is already connected to HOST:PORT, simply /join CHANNEL. | 9232 | If ERC is already connected to HOST:PORT, simply /join CHANNEL. |
| @@ -9232,26 +9236,26 @@ Otherwise, connect to HOST:PORT as USER and /join CHANNEL. | |||
| 9232 | 9236 | ||
| 9233 | ;;;*** | 9237 | ;;;*** |
| 9234 | 9238 | ||
| 9235 | ;;;### (autoloads nil "erc-autoaway" "erc/erc-autoaway.el" (17888 | 9239 | ;;;### (autoloads nil "erc-autoaway" "erc/erc-autoaway.el" (17963 |
| 9236 | ;;;;;; 32279)) | 9240 | ;;;;;; 21006)) |
| 9237 | ;;; Generated autoloads from erc/erc-autoaway.el | 9241 | ;;; Generated autoloads from erc/erc-autoaway.el |
| 9238 | (autoload 'erc-autoaway-mode "erc-autoaway") | 9242 | (autoload 'erc-autoaway-mode "erc-autoaway") |
| 9239 | 9243 | ||
| 9240 | ;;;*** | 9244 | ;;;*** |
| 9241 | 9245 | ||
| 9242 | ;;;### (autoloads nil "erc-button" "erc/erc-button.el" (17888 32279)) | 9246 | ;;;### (autoloads nil "erc-button" "erc/erc-button.el" (17963 21006)) |
| 9243 | ;;; Generated autoloads from erc/erc-button.el | 9247 | ;;; Generated autoloads from erc/erc-button.el |
| 9244 | (autoload 'erc-button-mode "erc-button" nil t) | 9248 | (autoload 'erc-button-mode "erc-button" nil t) |
| 9245 | 9249 | ||
| 9246 | ;;;*** | 9250 | ;;;*** |
| 9247 | 9251 | ||
| 9248 | ;;;### (autoloads nil "erc-capab" "erc/erc-capab.el" (17888 32277)) | 9252 | ;;;### (autoloads nil "erc-capab" "erc/erc-capab.el" (17963 21006)) |
| 9249 | ;;; Generated autoloads from erc/erc-capab.el | 9253 | ;;; Generated autoloads from erc/erc-capab.el |
| 9250 | (autoload 'erc-capab-identify-mode "erc-capab" nil t) | 9254 | (autoload 'erc-capab-identify-mode "erc-capab" nil t) |
| 9251 | 9255 | ||
| 9252 | ;;;*** | 9256 | ;;;*** |
| 9253 | 9257 | ||
| 9254 | ;;;### (autoloads nil "erc-compat" "erc/erc-compat.el" (17888 32279)) | 9258 | ;;;### (autoloads nil "erc-compat" "erc/erc-compat.el" (17963 21006)) |
| 9255 | ;;; Generated autoloads from erc/erc-compat.el | 9259 | ;;; Generated autoloads from erc/erc-compat.el |
| 9256 | (autoload 'erc-define-minor-mode "erc-compat") | 9260 | (autoload 'erc-define-minor-mode "erc-compat") |
| 9257 | 9261 | ||
| @@ -9352,8 +9356,8 @@ Add EZBouncer convenience functions to ERC. | |||
| 9352 | 9356 | ||
| 9353 | ;;;*** | 9357 | ;;;*** |
| 9354 | 9358 | ||
| 9355 | ;;;### (autoloads (erc-fill) "erc-fill" "erc/erc-fill.el" (17888 | 9359 | ;;;### (autoloads (erc-fill) "erc-fill" "erc/erc-fill.el" (17963 |
| 9356 | ;;;;;; 32279)) | 9360 | ;;;;;; 21006)) |
| 9357 | ;;; Generated autoloads from erc/erc-fill.el | 9361 | ;;; Generated autoloads from erc/erc-fill.el |
| 9358 | (autoload 'erc-fill-mode "erc-fill" nil t) | 9362 | (autoload 'erc-fill-mode "erc-fill" nil t) |
| 9359 | 9363 | ||
| @@ -9373,7 +9377,7 @@ You can put this on `erc-insert-modify-hook' and/or `erc-send-modify-hook'. | |||
| 9373 | ;;;*** | 9377 | ;;;*** |
| 9374 | 9378 | ||
| 9375 | ;;;### (autoloads (erc-identd-stop erc-identd-start) "erc-identd" | 9379 | ;;;### (autoloads (erc-identd-stop erc-identd-start) "erc-identd" |
| 9376 | ;;;;;; "erc/erc-identd.el" (17888 32279)) | 9380 | ;;;;;; "erc/erc-identd.el" (17963 21006)) |
| 9377 | ;;; Generated autoloads from erc/erc-identd.el | 9381 | ;;; Generated autoloads from erc/erc-identd.el |
| 9378 | (autoload 'erc-identd-mode "erc-identd") | 9382 | (autoload 'erc-identd-mode "erc-identd") |
| 9379 | 9383 | ||
| @@ -9412,7 +9416,7 @@ Not documented | |||
| 9412 | ;;;*** | 9416 | ;;;*** |
| 9413 | 9417 | ||
| 9414 | ;;;### (autoloads (erc-save-buffer-in-logs erc-logging-enabled) "erc-log" | 9418 | ;;;### (autoloads (erc-save-buffer-in-logs erc-logging-enabled) "erc-log" |
| 9415 | ;;;;;; "erc/erc-log.el" (17888 32279)) | 9419 | ;;;;;; "erc/erc-log.el" (17963 21006)) |
| 9416 | ;;; Generated autoloads from erc/erc-log.el | 9420 | ;;; Generated autoloads from erc/erc-log.el |
| 9417 | (autoload 'erc-log-mode "erc-log" nil t) | 9421 | (autoload 'erc-log-mode "erc-log" nil t) |
| 9418 | 9422 | ||
| @@ -9444,7 +9448,7 @@ You can save every individual message by putting this function on | |||
| 9444 | ;;;### (autoloads (erc-delete-dangerous-host erc-add-dangerous-host | 9448 | ;;;### (autoloads (erc-delete-dangerous-host erc-add-dangerous-host |
| 9445 | ;;;;;; erc-delete-keyword erc-add-keyword erc-delete-fool erc-add-fool | 9449 | ;;;;;; erc-delete-keyword erc-add-keyword erc-delete-fool erc-add-fool |
| 9446 | ;;;;;; erc-delete-pal erc-add-pal) "erc-match" "erc/erc-match.el" | 9450 | ;;;;;; erc-delete-pal erc-add-pal) "erc-match" "erc/erc-match.el" |
| 9447 | ;;;;;; (17888 32279)) | 9451 | ;;;;;; (17963 21006)) |
| 9448 | ;;; Generated autoloads from erc/erc-match.el | 9452 | ;;; Generated autoloads from erc/erc-match.el |
| 9449 | (autoload 'erc-match-mode "erc-match") | 9453 | (autoload 'erc-match-mode "erc-match") |
| 9450 | 9454 | ||
| @@ -9490,14 +9494,14 @@ Delete dangerous-host interactively to `erc-dangerous-hosts'. | |||
| 9490 | 9494 | ||
| 9491 | ;;;*** | 9495 | ;;;*** |
| 9492 | 9496 | ||
| 9493 | ;;;### (autoloads nil "erc-menu" "erc/erc-menu.el" (17888 32279)) | 9497 | ;;;### (autoloads nil "erc-menu" "erc/erc-menu.el" (17963 21006)) |
| 9494 | ;;; Generated autoloads from erc/erc-menu.el | 9498 | ;;; Generated autoloads from erc/erc-menu.el |
| 9495 | (autoload 'erc-menu-mode "erc-menu" nil t) | 9499 | (autoload 'erc-menu-mode "erc-menu" nil t) |
| 9496 | 9500 | ||
| 9497 | ;;;*** | 9501 | ;;;*** |
| 9498 | 9502 | ||
| 9499 | ;;;### (autoloads (erc-cmd-WHOLEFT) "erc-netsplit" "erc/erc-netsplit.el" | 9503 | ;;;### (autoloads (erc-cmd-WHOLEFT) "erc-netsplit" "erc/erc-netsplit.el" |
| 9500 | ;;;;;; (17888 32279)) | 9504 | ;;;;;; (17963 21006)) |
| 9501 | ;;; Generated autoloads from erc/erc-netsplit.el | 9505 | ;;; Generated autoloads from erc/erc-netsplit.el |
| 9502 | (autoload 'erc-netsplit-mode "erc-netsplit") | 9506 | (autoload 'erc-netsplit-mode "erc-netsplit") |
| 9503 | 9507 | ||
| @@ -9509,7 +9513,7 @@ Show who's gone. | |||
| 9509 | ;;;*** | 9513 | ;;;*** |
| 9510 | 9514 | ||
| 9511 | ;;;### (autoloads (erc-server-select erc-determine-network) "erc-networks" | 9515 | ;;;### (autoloads (erc-server-select erc-determine-network) "erc-networks" |
| 9512 | ;;;;;; "erc/erc-networks.el" (17888 32279)) | 9516 | ;;;;;; "erc/erc-networks.el" (17963 21006)) |
| 9513 | ;;; Generated autoloads from erc/erc-networks.el | 9517 | ;;; Generated autoloads from erc/erc-networks.el |
| 9514 | 9518 | ||
| 9515 | (autoload (quote erc-determine-network) "erc-networks" "\ | 9519 | (autoload (quote erc-determine-network) "erc-networks" "\ |
| @@ -9527,7 +9531,7 @@ Interactively select a server to connect to using `erc-server-alist'. | |||
| 9527 | ;;;*** | 9531 | ;;;*** |
| 9528 | 9532 | ||
| 9529 | ;;;### (autoloads (pcomplete/erc-mode/NOTIFY erc-cmd-NOTIFY) "erc-notify" | 9533 | ;;;### (autoloads (pcomplete/erc-mode/NOTIFY erc-cmd-NOTIFY) "erc-notify" |
| 9530 | ;;;;;; "erc/erc-notify.el" (17888 32279)) | 9534 | ;;;;;; "erc/erc-notify.el" (17963 21006)) |
| 9531 | ;;; Generated autoloads from erc/erc-notify.el | 9535 | ;;; Generated autoloads from erc/erc-notify.el |
| 9532 | (autoload 'erc-notify-mode "erc-notify" nil t) | 9536 | (autoload 'erc-notify-mode "erc-notify" nil t) |
| 9533 | 9537 | ||
| @@ -9551,8 +9555,8 @@ Not documented | |||
| 9551 | 9555 | ||
| 9552 | ;;;*** | 9556 | ;;;*** |
| 9553 | 9557 | ||
| 9554 | ;;;### (autoloads nil "erc-pcomplete" "erc/erc-pcomplete.el" (17888 | 9558 | ;;;### (autoloads nil "erc-pcomplete" "erc/erc-pcomplete.el" (17963 |
| 9555 | ;;;;;; 32279)) | 9559 | ;;;;;; 21006)) |
| 9556 | ;;; Generated autoloads from erc/erc-pcomplete.el | 9560 | ;;; Generated autoloads from erc/erc-pcomplete.el |
| 9557 | (autoload 'erc-completion-mode "erc-pcomplete" nil t) | 9561 | (autoload 'erc-completion-mode "erc-pcomplete" nil t) |
| 9558 | 9562 | ||
| @@ -9564,14 +9568,14 @@ Not documented | |||
| 9564 | 9568 | ||
| 9565 | ;;;*** | 9569 | ;;;*** |
| 9566 | 9570 | ||
| 9567 | ;;;### (autoloads nil "erc-ring" "erc/erc-ring.el" (17888 32279)) | 9571 | ;;;### (autoloads nil "erc-ring" "erc/erc-ring.el" (17963 21006)) |
| 9568 | ;;; Generated autoloads from erc/erc-ring.el | 9572 | ;;; Generated autoloads from erc/erc-ring.el |
| 9569 | (autoload 'erc-ring-mode "erc-ring" nil t) | 9573 | (autoload 'erc-ring-mode "erc-ring" nil t) |
| 9570 | 9574 | ||
| 9571 | ;;;*** | 9575 | ;;;*** |
| 9572 | 9576 | ||
| 9573 | ;;;### (autoloads (erc-nickserv-identify erc-nickserv-identify-mode) | 9577 | ;;;### (autoloads (erc-nickserv-identify erc-nickserv-identify-mode) |
| 9574 | ;;;;;; "erc-services" "erc/erc-services.el" (17888 32279)) | 9578 | ;;;;;; "erc-services" "erc/erc-services.el" (17963 21006)) |
| 9575 | ;;; Generated autoloads from erc/erc-services.el | 9579 | ;;; Generated autoloads from erc/erc-services.el |
| 9576 | (autoload 'erc-services-mode "erc-services" nil t) | 9580 | (autoload 'erc-services-mode "erc-services" nil t) |
| 9577 | 9581 | ||
| @@ -9595,7 +9599,7 @@ When called interactively, read the password using `read-passwd'. | |||
| 9595 | ;;;*** | 9599 | ;;;*** |
| 9596 | 9600 | ||
| 9597 | ;;;### (autoloads (erc-speedbar-browser) "erc-speedbar" "erc/erc-speedbar.el" | 9601 | ;;;### (autoloads (erc-speedbar-browser) "erc-speedbar" "erc/erc-speedbar.el" |
| 9598 | ;;;;;; (17888 32279)) | 9602 | ;;;;;; (17963 21006)) |
| 9599 | ;;; Generated autoloads from erc/erc-speedbar.el | 9603 | ;;; Generated autoloads from erc/erc-speedbar.el |
| 9600 | 9604 | ||
| 9601 | (autoload (quote erc-speedbar-browser) "erc-speedbar" "\ | 9605 | (autoload (quote erc-speedbar-browser) "erc-speedbar" "\ |
| @@ -9606,23 +9610,39 @@ This will add a speedbar major display mode. | |||
| 9606 | 9610 | ||
| 9607 | ;;;*** | 9611 | ;;;*** |
| 9608 | 9612 | ||
| 9609 | ;;;### (autoloads nil "erc-spelling" "erc/erc-spelling.el" (17888 | 9613 | ;;;### (autoloads nil "erc-spelling" "erc/erc-spelling.el" (17963 |
| 9610 | ;;;;;; 32279)) | 9614 | ;;;;;; 21006)) |
| 9611 | ;;; Generated autoloads from erc/erc-spelling.el | 9615 | ;;; Generated autoloads from erc/erc-spelling.el |
| 9612 | (autoload 'erc-spelling-mode "erc-spelling" nil t) | 9616 | (autoload 'erc-spelling-mode "erc-spelling" nil t) |
| 9613 | 9617 | ||
| 9614 | ;;;*** | 9618 | ;;;*** |
| 9615 | 9619 | ||
| 9616 | ;;;### (autoloads nil "erc-stamp" "erc/erc-stamp.el" (17888 32279)) | 9620 | ;;;### (autoloads nil "erc-stamp" "erc/erc-stamp.el" (17963 21006)) |
| 9617 | ;;; Generated autoloads from erc/erc-stamp.el | 9621 | ;;; Generated autoloads from erc/erc-stamp.el |
| 9618 | (autoload 'erc-timestamp-mode "erc-stamp" nil t) | 9622 | (autoload 'erc-timestamp-mode "erc-stamp" nil t) |
| 9619 | 9623 | ||
| 9620 | ;;;*** | 9624 | ;;;*** |
| 9621 | 9625 | ||
| 9622 | ;;;### (autoloads nil "erc-track" "erc/erc-track.el" (17888 32279)) | 9626 | ;;;### (autoloads (erc-track-minor-mode) "erc-track" "erc/erc-track.el" |
| 9627 | ;;;;;; (17963 21006)) | ||
| 9623 | ;;; Generated autoloads from erc/erc-track.el | 9628 | ;;; Generated autoloads from erc/erc-track.el |
| 9629 | |||
| 9630 | (defvar erc-track-minor-mode nil "\ | ||
| 9631 | Non-nil if Erc-Track minor mode is enabled. | ||
| 9632 | See the command `erc-track-minor-mode' for a description of this minor-mode.") | ||
| 9633 | |||
| 9634 | (custom-autoload (quote erc-track-minor-mode) "erc-track" nil) | ||
| 9635 | |||
| 9636 | (autoload (quote erc-track-minor-mode) "erc-track" "\ | ||
| 9637 | Global minor mode for tracking ERC buffers and showing activity in the | ||
| 9638 | mode line. | ||
| 9639 | |||
| 9640 | This exists for the sole purpose of providing the C-c C-SPC and | ||
| 9641 | C-c C-@ keybindings. Make sure that you have enabled the track | ||
| 9642 | module, otherwise the keybindings will not do anything useful. | ||
| 9643 | |||
| 9644 | \(fn &optional ARG)" t nil) | ||
| 9624 | (autoload 'erc-track-mode "erc-track" nil t) | 9645 | (autoload 'erc-track-mode "erc-track" nil t) |
| 9625 | (autoload 'erc-track-when-inactive-mode "erc-track" nil t) | ||
| 9626 | 9646 | ||
| 9627 | ;;;*** | 9647 | ;;;*** |
| 9628 | 9648 | ||
| @@ -10344,8 +10364,8 @@ Edit the hotlist of directory servers in a specialized buffer. | |||
| 10344 | 10364 | ||
| 10345 | ;;;*** | 10365 | ;;;*** |
| 10346 | 10366 | ||
| 10347 | ;;;### (autoloads (ewoc-create) "ewoc" "emacs-lisp/ewoc.el" (17888 | 10367 | ;;;### (autoloads (ewoc-create) "ewoc" "emacs-lisp/ewoc.el" (17963 |
| 10348 | ;;;;;; 32279)) | 10368 | ;;;;;; 21003)) |
| 10349 | ;;; Generated autoloads from emacs-lisp/ewoc.el | 10369 | ;;; Generated autoloads from emacs-lisp/ewoc.el |
| 10350 | 10370 | ||
| 10351 | (autoload (quote ewoc-create) "ewoc" "\ | 10371 | (autoload (quote ewoc-create) "ewoc" "\ |
| @@ -10416,7 +10436,8 @@ file modes. | |||
| 10416 | ;;;*** | 10436 | ;;;*** |
| 10417 | 10437 | ||
| 10418 | ;;;### (autoloads (expand-jump-to-next-slot expand-jump-to-previous-slot | 10438 | ;;;### (autoloads (expand-jump-to-next-slot expand-jump-to-previous-slot |
| 10419 | ;;;;;; expand-add-abbrevs) "expand" "expand.el" (17888 32279)) | 10439 | ;;;;;; expand-abbrev-hook expand-add-abbrevs) "expand" "expand.el" |
| 10440 | ;;;;;; (17963 20867)) | ||
| 10420 | ;;; Generated autoloads from expand.el | 10441 | ;;; Generated autoloads from expand.el |
| 10421 | 10442 | ||
| 10422 | (autoload (quote expand-add-abbrevs) "expand" "\ | 10443 | (autoload (quote expand-add-abbrevs) "expand" "\ |
| @@ -10443,6 +10464,12 @@ If ARG is omitted, point is placed at the end of the expanded text. | |||
| 10443 | 10464 | ||
| 10444 | \(fn TABLE ABBREVS)" nil nil) | 10465 | \(fn TABLE ABBREVS)" nil nil) |
| 10445 | 10466 | ||
| 10467 | (autoload (quote expand-abbrev-hook) "expand" "\ | ||
| 10468 | Abbrev hook used to do the expansion job of expand abbrevs. | ||
| 10469 | See `expand-add-abbrevs'. Value is non-nil if expansion was done. | ||
| 10470 | |||
| 10471 | \(fn)" nil nil) | ||
| 10472 | |||
| 10446 | (autoload (quote expand-jump-to-previous-slot) "expand" "\ | 10473 | (autoload (quote expand-jump-to-previous-slot) "expand" "\ |
| 10447 | Move the cursor to the previous slot in the last abbrev expansion. | 10474 | Move the cursor to the previous slot in the last abbrev expansion. |
| 10448 | This is used only in conjunction with `expand-add-abbrevs'. | 10475 | This is used only in conjunction with `expand-add-abbrevs'. |
| @@ -11317,7 +11344,7 @@ Not documented | |||
| 11317 | ;;;*** | 11344 | ;;;*** |
| 11318 | 11345 | ||
| 11319 | ;;;### (autoloads (flymake-mode-off flymake-mode-on flymake-mode) | 11346 | ;;;### (autoloads (flymake-mode-off flymake-mode-on flymake-mode) |
| 11320 | ;;;;;; "flymake" "progmodes/flymake.el" (17888 36581)) | 11347 | ;;;;;; "flymake" "progmodes/flymake.el" (17963 21005)) |
| 11321 | ;;; Generated autoloads from progmodes/flymake.el | 11348 | ;;; Generated autoloads from progmodes/flymake.el |
| 11322 | 11349 | ||
| 11323 | (autoload (quote flymake-mode) "flymake" "\ | 11350 | (autoload (quote flymake-mode) "flymake" "\ |
| @@ -11341,7 +11368,7 @@ Turn flymake mode off. | |||
| 11341 | 11368 | ||
| 11342 | ;;;### (autoloads (flyspell-buffer flyspell-region flyspell-mode-off | 11369 | ;;;### (autoloads (flyspell-buffer flyspell-region flyspell-mode-off |
| 11343 | ;;;;;; turn-off-flyspell turn-on-flyspell flyspell-mode flyspell-prog-mode) | 11370 | ;;;;;; turn-off-flyspell turn-on-flyspell flyspell-mode flyspell-prog-mode) |
| 11344 | ;;;;;; "flyspell" "textmodes/flyspell.el" (17888 32281)) | 11371 | ;;;;;; "flyspell" "textmodes/flyspell.el" (17963 20998)) |
| 11345 | ;;; Generated autoloads from textmodes/flyspell.el | 11372 | ;;; Generated autoloads from textmodes/flyspell.el |
| 11346 | 11373 | ||
| 11347 | (autoload (quote flyspell-prog-mode) "flyspell" "\ | 11374 | (autoload (quote flyspell-prog-mode) "flyspell" "\ |
| @@ -11679,7 +11706,7 @@ and choose the directory as the fortune-file. | |||
| 11679 | ;;;*** | 11706 | ;;;*** |
| 11680 | 11707 | ||
| 11681 | ;;;### (autoloads (gdb-enable-debug gdba) "gdb-ui" "progmodes/gdb-ui.el" | 11708 | ;;;### (autoloads (gdb-enable-debug gdba) "gdb-ui" "progmodes/gdb-ui.el" |
| 11682 | ;;;;;; (17963 18447)) | 11709 | ;;;;;; (17963 21011)) |
| 11683 | ;;; Generated autoloads from progmodes/gdb-ui.el | 11710 | ;;; Generated autoloads from progmodes/gdb-ui.el |
| 11684 | 11711 | ||
| 11685 | (autoload (quote gdba) "gdb-ui" "\ | 11712 | (autoload (quote gdba) "gdb-ui" "\ |
| @@ -11831,7 +11858,7 @@ at places they belong to. | |||
| 11831 | ;;;*** | 11858 | ;;;*** |
| 11832 | 11859 | ||
| 11833 | ;;;### (autoloads (gmm-tool-bar-from-list gmm-widget-p gmm-error | 11860 | ;;;### (autoloads (gmm-tool-bar-from-list gmm-widget-p gmm-error |
| 11834 | ;;;;;; gmm-message) "gmm-utils" "gnus/gmm-utils.el" (17888 32279)) | 11861 | ;;;;;; gmm-message) "gmm-utils" "gnus/gmm-utils.el" (17963 21006)) |
| 11835 | ;;; Generated autoloads from gnus/gmm-utils.el | 11862 | ;;; Generated autoloads from gnus/gmm-utils.el |
| 11836 | 11863 | ||
| 11837 | (autoload (quote gmm-message) "gmm-utils" "\ | 11864 | (autoload (quote gmm-message) "gmm-utils" "\ |
| @@ -11862,7 +11889,7 @@ Within each entry of ICON-LIST, the first element is a menu | |||
| 11862 | command, the second element is an icon file name and the third | 11889 | command, the second element is an icon file name and the third |
| 11863 | element is a test function. You can use \\[describe-key] | 11890 | element is a test function. You can use \\[describe-key] |
| 11864 | <menu-entry> to find out the name of a menu command. The fourth | 11891 | <menu-entry> to find out the name of a menu command. The fourth |
| 11865 | and all following elements are passed a the PROPS argument to the | 11892 | and all following elements are passed as the PROPS argument to the |
| 11866 | function `tool-bar-local-item'. | 11893 | function `tool-bar-local-item'. |
| 11867 | 11894 | ||
| 11868 | If ZAP-LIST is a list, remove those item from the default | 11895 | If ZAP-LIST is a list, remove those item from the default |
| @@ -12022,7 +12049,7 @@ If CLEAN, obsolete (ignore). | |||
| 12022 | ;;;*** | 12049 | ;;;*** |
| 12023 | 12050 | ||
| 12024 | ;;;### (autoloads (gnus-article-prepare-display) "gnus-art" "gnus/gnus-art.el" | 12051 | ;;;### (autoloads (gnus-article-prepare-display) "gnus-art" "gnus/gnus-art.el" |
| 12025 | ;;;;;; (17888 36581)) | 12052 | ;;;;;; (17963 21004)) |
| 12026 | ;;; Generated autoloads from gnus/gnus-art.el | 12053 | ;;; Generated autoloads from gnus/gnus-art.el |
| 12027 | 12054 | ||
| 12028 | (autoload (quote gnus-article-prepare-display) "gnus-art" "\ | 12055 | (autoload (quote gnus-article-prepare-display) "gnus-art" "\ |
| @@ -12373,7 +12400,7 @@ Update the .newsrc.eld file to reflect the change of nntp server. | |||
| 12373 | ;;;*** | 12400 | ;;;*** |
| 12374 | 12401 | ||
| 12375 | ;;;### (autoloads (gnus-button-reply gnus-button-mailto gnus-msg-mail) | 12402 | ;;;### (autoloads (gnus-button-reply gnus-button-mailto gnus-msg-mail) |
| 12376 | ;;;;;; "gnus-msg" "gnus/gnus-msg.el" (17888 32279)) | 12403 | ;;;;;; "gnus-msg" "gnus/gnus-msg.el" (17963 21010)) |
| 12377 | ;;; Generated autoloads from gnus/gnus-msg.el | 12404 | ;;; Generated autoloads from gnus/gnus-msg.el |
| 12378 | 12405 | ||
| 12379 | (autoload (quote gnus-msg-mail) "gnus-msg" "\ | 12406 | (autoload (quote gnus-msg-mail) "gnus-msg" "\ |
| @@ -12510,7 +12537,7 @@ Add NUM into sorted LIST by side effect. | |||
| 12510 | ;;;*** | 12537 | ;;;*** |
| 12511 | 12538 | ||
| 12512 | ;;;### (autoloads (gnus-registry-install-hooks gnus-registry-initialize) | 12539 | ;;;### (autoloads (gnus-registry-install-hooks gnus-registry-initialize) |
| 12513 | ;;;;;; "gnus-registry" "gnus/gnus-registry.el" (17888 32279)) | 12540 | ;;;;;; "gnus-registry" "gnus/gnus-registry.el" (17963 21006)) |
| 12514 | ;;; Generated autoloads from gnus/gnus-registry.el | 12541 | ;;; Generated autoloads from gnus/gnus-registry.el |
| 12515 | 12542 | ||
| 12516 | (autoload (quote gnus-registry-initialize) "gnus-registry" "\ | 12543 | (autoload (quote gnus-registry-initialize) "gnus-registry" "\ |
| @@ -12613,7 +12640,7 @@ Add the window configuration CONF to `gnus-buffer-configuration'. | |||
| 12613 | 12640 | ||
| 12614 | ;;;*** | 12641 | ;;;*** |
| 12615 | 12642 | ||
| 12616 | ;;;### (autoloads (gomoku) "gomoku" "play/gomoku.el" (17888 32280)) | 12643 | ;;;### (autoloads (gomoku) "gomoku" "play/gomoku.el" (17963 21010)) |
| 12617 | ;;; Generated autoloads from play/gomoku.el | 12644 | ;;; Generated autoloads from play/gomoku.el |
| 12618 | 12645 | ||
| 12619 | (autoload (quote gomoku) "gomoku" "\ | 12646 | (autoload (quote gomoku) "gomoku" "\ |
| @@ -12713,10 +12740,10 @@ The default find program for `grep-find-command'. | |||
| 12713 | This variable's value takes effect when `grep-compute-defaults' is called.") | 12740 | This variable's value takes effect when `grep-compute-defaults' is called.") |
| 12714 | 12741 | ||
| 12715 | (defvar grep-find-use-xargs nil "\ | 12742 | (defvar grep-find-use-xargs nil "\ |
| 12716 | Whether \\[grep-find] uses the `xargs' utility by default. | 12743 | Non-nil means that `grep-find' uses the `xargs' utility by default. |
| 12717 | 12744 | If `exec', use `find -exec'. | |
| 12718 | If `exec', it uses `find -exec'; if `gnu', it uses `find -print0' and `xargs -0'; | 12745 | If `gnu', use `find -print0' and `xargs -0'. |
| 12719 | if not nil and not `gnu', it uses `find -print' and `xargs'. | 12746 | Any other non-nil value means to use `find -print' and `xargs'. |
| 12720 | 12747 | ||
| 12721 | This variable's value takes effect when `grep-compute-defaults' is called.") | 12748 | This variable's value takes effect when `grep-compute-defaults' is called.") |
| 12722 | 12749 | ||
| @@ -12824,7 +12851,7 @@ the form \"WINDOW-ID PIXMAP-ID\". Value is non-nil if successful. | |||
| 12824 | ;;;*** | 12851 | ;;;*** |
| 12825 | 12852 | ||
| 12826 | ;;;### (autoloads (gdb-script-mode jdb pdb perldb xdb dbx sdb gdb) | 12853 | ;;;### (autoloads (gdb-script-mode jdb pdb perldb xdb dbx sdb gdb) |
| 12827 | ;;;;;; "gud" "progmodes/gud.el" (17963 19063)) | 12854 | ;;;;;; "gud" "progmodes/gud.el" (17963 21011)) |
| 12828 | ;;; Generated autoloads from progmodes/gud.el | 12855 | ;;; Generated autoloads from progmodes/gud.el |
| 12829 | 12856 | ||
| 12830 | (autoload (quote gdb) "gud" "\ | 12857 | (autoload (quote gdb) "gud" "\ |
| @@ -13535,8 +13562,8 @@ how the hiding is done: | |||
| 13535 | 13562 | ||
| 13536 | ;;;*** | 13563 | ;;;*** |
| 13537 | 13564 | ||
| 13538 | ;;;### (autoloads (hs-minor-mode) "hideshow" "progmodes/hideshow.el" | 13565 | ;;;### (autoloads (turn-off-hideshow hs-minor-mode) "hideshow" "progmodes/hideshow.el" |
| 13539 | ;;;;;; (17963 19041)) | 13566 | ;;;;;; (17963 21006)) |
| 13540 | ;;; Generated autoloads from progmodes/hideshow.el | 13567 | ;;; Generated autoloads from progmodes/hideshow.el |
| 13541 | 13568 | ||
| 13542 | (defvar hs-special-modes-alist (quote ((c-mode "{" "}" "/[*/]" nil hs-c-like-adjust-block-beginning) (c++-mode "{" "}" "/[*/]" nil hs-c-like-adjust-block-beginning) (bibtex-mode ("^@\\S(*\\(\\s(\\)" 1)) (java-mode "{" "}" "/[*/]" nil hs-c-like-adjust-block-beginning))) "\ | 13569 | (defvar hs-special-modes-alist (quote ((c-mode "{" "}" "/[*/]" nil hs-c-like-adjust-block-beginning) (c++-mode "{" "}" "/[*/]" nil hs-c-like-adjust-block-beginning) (bibtex-mode ("^@\\S(*\\(\\s(\\)" 1)) (java-mode "{" "}" "/[*/]" nil hs-c-like-adjust-block-beginning))) "\ |
| @@ -13588,6 +13615,11 @@ Key bindings: | |||
| 13588 | 13615 | ||
| 13589 | \(fn &optional ARG)" t nil) | 13616 | \(fn &optional ARG)" t nil) |
| 13590 | 13617 | ||
| 13618 | (autoload (quote turn-off-hideshow) "hideshow" "\ | ||
| 13619 | Unconditionally turn off `hs-minor-mode'. | ||
| 13620 | |||
| 13621 | \(fn)" nil nil) | ||
| 13622 | |||
| 13591 | ;;;*** | 13623 | ;;;*** |
| 13592 | 13624 | ||
| 13593 | ;;;### (autoloads (global-highlight-changes highlight-compare-with-file | 13625 | ;;;### (autoloads (global-highlight-changes highlight-compare-with-file |
| @@ -14545,7 +14577,7 @@ with no args, if that value is non-nil. | |||
| 14545 | ;;;*** | 14577 | ;;;*** |
| 14546 | 14578 | ||
| 14547 | ;;;### (autoloads (idlwave-shell) "idlw-shell" "progmodes/idlw-shell.el" | 14579 | ;;;### (autoloads (idlwave-shell) "idlw-shell" "progmodes/idlw-shell.el" |
| 14548 | ;;;;;; (17888 37036)) | 14580 | ;;;;;; (17963 21008)) |
| 14549 | ;;; Generated autoloads from progmodes/idlw-shell.el | 14581 | ;;; Generated autoloads from progmodes/idlw-shell.el |
| 14550 | 14582 | ||
| 14551 | (autoload (quote idlwave-shell) "idlw-shell" "\ | 14583 | (autoload (quote idlwave-shell) "idlw-shell" "\ |
| @@ -14571,7 +14603,7 @@ See also the variable `idlwave-shell-prompt-pattern'. | |||
| 14571 | ;;;*** | 14603 | ;;;*** |
| 14572 | 14604 | ||
| 14573 | ;;;### (autoloads (idlwave-mode) "idlwave" "progmodes/idlwave.el" | 14605 | ;;;### (autoloads (idlwave-mode) "idlwave" "progmodes/idlwave.el" |
| 14574 | ;;;;;; (17888 36588)) | 14606 | ;;;;;; (17963 21008)) |
| 14575 | ;;; Generated autoloads from progmodes/idlwave.el | 14607 | ;;; Generated autoloads from progmodes/idlwave.el |
| 14576 | 14608 | ||
| 14577 | (autoload (quote idlwave-mode) "idlwave" "\ | 14609 | (autoload (quote idlwave-mode) "idlwave" "\ |
| @@ -14707,7 +14739,7 @@ The main features of this mode are | |||
| 14707 | ;;;;;; ido-find-file-in-dir ido-switch-buffer-other-frame ido-insert-buffer | 14739 | ;;;;;; ido-find-file-in-dir ido-switch-buffer-other-frame ido-insert-buffer |
| 14708 | ;;;;;; ido-kill-buffer ido-display-buffer ido-switch-buffer-other-window | 14740 | ;;;;;; ido-kill-buffer ido-display-buffer ido-switch-buffer-other-window |
| 14709 | ;;;;;; ido-switch-buffer ido-mode ido-mode) "ido" "ido.el" (17963 | 14741 | ;;;;;; ido-switch-buffer ido-mode ido-mode) "ido" "ido.el" (17963 |
| 14710 | ;;;;;; 19298)) | 14742 | ;;;;;; 21001)) |
| 14711 | ;;; Generated autoloads from ido.el | 14743 | ;;; Generated autoloads from ido.el |
| 14712 | 14744 | ||
| 14713 | (defvar ido-mode nil "\ | 14745 | (defvar ido-mode nil "\ |
| @@ -15501,7 +15533,7 @@ of `inferior-lisp-program'). Runs the hooks from | |||
| 15501 | ;;;### (autoloads (Info-speedbar-browser Info-goto-emacs-key-command-node | 15533 | ;;;### (autoloads (Info-speedbar-browser Info-goto-emacs-key-command-node |
| 15502 | ;;;;;; Info-goto-emacs-command-node Info-mode info-apropos Info-index | 15534 | ;;;;;; Info-goto-emacs-command-node Info-mode info-apropos Info-index |
| 15503 | ;;;;;; Info-directory Info-on-current-buffer info-standalone info-emacs-manual | 15535 | ;;;;;; Info-directory Info-on-current-buffer info-standalone info-emacs-manual |
| 15504 | ;;;;;; info info-other-window) "info" "info.el" (17888 36929)) | 15536 | ;;;;;; info info-other-window) "info" "info.el" (17963 21008)) |
| 15505 | ;;; Generated autoloads from info.el | 15537 | ;;; Generated autoloads from info.el |
| 15506 | 15538 | ||
| 15507 | (autoload (quote info-other-window) "info" "\ | 15539 | (autoload (quote info-other-window) "info" "\ |
| @@ -16612,7 +16644,7 @@ Not documented | |||
| 16612 | ;;;*** | 16644 | ;;;*** |
| 16613 | 16645 | ||
| 16614 | ;;;### (autoloads (lm lm-test-run) "landmark" "play/landmark.el" | 16646 | ;;;### (autoloads (lm lm-test-run) "landmark" "play/landmark.el" |
| 16615 | ;;;;;; (17888 32280)) | 16647 | ;;;;;; (17963 21010)) |
| 16616 | ;;; Generated autoloads from play/landmark.el | 16648 | ;;; Generated autoloads from play/landmark.el |
| 16617 | 16649 | ||
| 16618 | (defalias (quote landmark-repeat) (quote lm-test-run)) | 16650 | (defalias (quote landmark-repeat) (quote lm-test-run)) |
| @@ -17148,8 +17180,8 @@ This function is suitable for execution in a .emacs file. | |||
| 17148 | 17180 | ||
| 17149 | ;;;*** | 17181 | ;;;*** |
| 17150 | 17182 | ||
| 17151 | ;;;### (autoloads (m4-mode) "m4-mode" "progmodes/m4-mode.el" (17888 | 17183 | ;;;### (autoloads (m4-mode) "m4-mode" "progmodes/m4-mode.el" (17963 |
| 17152 | ;;;;;; 32281)) | 17184 | ;;;;;; 20866)) |
| 17153 | ;;; Generated autoloads from progmodes/m4-mode.el | 17185 | ;;; Generated autoloads from progmodes/m4-mode.el |
| 17154 | 17186 | ||
| 17155 | (autoload (quote m4-mode) "m4-mode" "\ | 17187 | (autoload (quote m4-mode) "m4-mode" "\ |
| @@ -17593,7 +17625,7 @@ Previous contents of that buffer are killed first. | |||
| 17593 | 17625 | ||
| 17594 | ;;;*** | 17626 | ;;;*** |
| 17595 | 17627 | ||
| 17596 | ;;;### (autoloads (man-follow man) "man" "man.el" (17888 32280)) | 17628 | ;;;### (autoloads (man-follow man) "man" "man.el" (17963 20867)) |
| 17597 | ;;; Generated autoloads from man.el | 17629 | ;;; Generated autoloads from man.el |
| 17598 | 17630 | ||
| 17599 | (defalias (quote manual-entry) (quote man)) | 17631 | (defalias (quote manual-entry) (quote man)) |
| @@ -17678,7 +17710,7 @@ turn on menu bars; otherwise, turn off menu bars. | |||
| 17678 | ;;;;;; message-cite-function message-yank-prefix message-citation-line-function | 17710 | ;;;;;; message-cite-function message-yank-prefix message-citation-line-function |
| 17679 | ;;;;;; message-send-mail-function message-user-organization-file | 17711 | ;;;;;; message-send-mail-function message-user-organization-file |
| 17680 | ;;;;;; message-signature-separator message-from-style) "message" | 17712 | ;;;;;; message-signature-separator message-from-style) "message" |
| 17681 | ;;;;;; "gnus/message.el" (17963 18449)) | 17713 | ;;;;;; "gnus/message.el" (17963 20999)) |
| 17682 | ;;; Generated autoloads from gnus/message.el | 17714 | ;;; Generated autoloads from gnus/message.el |
| 17683 | 17715 | ||
| 17684 | (defvar message-from-style (quote default) "\ | 17716 | (defvar message-from-style (quote default) "\ |
| @@ -17816,7 +17848,9 @@ M-RET `message-newline-and-reformat' (break the line and reformat). | |||
| 17816 | 17848 | ||
| 17817 | (autoload (quote message-mail) "message" "\ | 17849 | (autoload (quote message-mail) "message" "\ |
| 17818 | Start editing a mail message to be sent. | 17850 | Start editing a mail message to be sent. |
| 17819 | OTHER-HEADERS is an alist of header/value pairs. | 17851 | OTHER-HEADERS is an alist of header/value pairs. CONTINUE says whether |
| 17852 | to continue editing a message already being composed. SWITCH-FUNCTION | ||
| 17853 | is a function used to switch to and display the mail buffer. | ||
| 17820 | 17854 | ||
| 17821 | \(fn &optional TO SUBJECT OTHER-HEADERS CONTINUE SWITCH-FUNCTION YANK-ACTION SEND-ACTIONS)" t nil) | 17855 | \(fn &optional TO SUBJECT OTHER-HEADERS CONTINUE SWITCH-FUNCTION YANK-ACTION SEND-ACTIONS)" t nil) |
| 17822 | 17856 | ||
| @@ -18976,7 +19010,7 @@ Open a network connection to HOST on PORT. | |||
| 18976 | ;;;;;; uncomment-region comment-kill comment-set-column comment-indent | 19010 | ;;;;;; uncomment-region comment-kill comment-set-column comment-indent |
| 18977 | ;;;;;; comment-indent-default comment-normalize-vars comment-multi-line | 19011 | ;;;;;; comment-indent-default comment-normalize-vars comment-multi-line |
| 18978 | ;;;;;; comment-padding comment-style comment-column) "newcomment" | 19012 | ;;;;;; comment-padding comment-style comment-column) "newcomment" |
| 18979 | ;;;;;; "newcomment.el" (17888 32280)) | 19013 | ;;;;;; "newcomment.el" (17963 21008)) |
| 18980 | ;;; Generated autoloads from newcomment.el | 19014 | ;;; Generated autoloads from newcomment.el |
| 18981 | 19015 | ||
| 18982 | (defalias (quote indent-for-comment) (quote comment-indent)) | 19016 | (defalias (quote indent-for-comment) (quote comment-indent)) |
| @@ -19507,7 +19541,7 @@ The Custom feature is intended to make this obsolete. | |||
| 19507 | ;;;;;; org-remember-handler org-remember org-remember-apply-template | 19541 | ;;;;;; org-remember-handler org-remember org-remember-apply-template |
| 19508 | ;;;;;; org-remember-annotation org-store-link orgtbl-mode turn-on-orgtbl | 19542 | ;;;;;; org-remember-annotation org-store-link orgtbl-mode turn-on-orgtbl |
| 19509 | ;;;;;; org-global-cycle org-cycle org-mode) "org" "textmodes/org.el" | 19543 | ;;;;;; org-global-cycle org-cycle org-mode) "org" "textmodes/org.el" |
| 19510 | ;;;;;; (17963 19299)) | 19544 | ;;;;;; (17963 20865)) |
| 19511 | ;;; Generated autoloads from textmodes/org.el | 19545 | ;;; Generated autoloads from textmodes/org.el |
| 19512 | 19546 | ||
| 19513 | (autoload (quote org-mode) "org" "\ | 19547 | (autoload (quote org-mode) "org" "\ |
| @@ -21663,7 +21697,7 @@ If EXTENSION is any other symbol, it is ignored. | |||
| 21663 | ;;;*** | 21697 | ;;;*** |
| 21664 | 21698 | ||
| 21665 | ;;;### (autoloads (jython-mode python-mode run-python) "python" "progmodes/python.el" | 21699 | ;;;### (autoloads (jython-mode python-mode run-python) "python" "progmodes/python.el" |
| 21666 | ;;;;;; (17963 19313)) | 21700 | ;;;;;; (17963 20999)) |
| 21667 | ;;; Generated autoloads from progmodes/python.el | 21701 | ;;; Generated autoloads from progmodes/python.el |
| 21668 | 21702 | ||
| 21669 | (add-to-list (quote interpreter-mode-alist) (quote ("jython" . jython-mode))) | 21703 | (add-to-list (quote interpreter-mode-alist) (quote ("jython" . jython-mode))) |
| @@ -22122,7 +22156,7 @@ Construct a regexp interactively. | |||
| 22122 | 22156 | ||
| 22123 | ;;;*** | 22157 | ;;;*** |
| 22124 | 22158 | ||
| 22125 | ;;;### (autoloads (recentf-mode) "recentf" "recentf.el" (17888 32281)) | 22159 | ;;;### (autoloads (recentf-mode) "recentf" "recentf.el" (17963 20999)) |
| 22126 | ;;; Generated autoloads from recentf.el | 22160 | ;;; Generated autoloads from recentf.el |
| 22127 | 22161 | ||
| 22128 | (defvar recentf-mode nil "\ | 22162 | (defvar recentf-mode nil "\ |
| @@ -22295,7 +22329,7 @@ refilling if they would cause auto-filling. | |||
| 22295 | ;;;*** | 22329 | ;;;*** |
| 22296 | 22330 | ||
| 22297 | ;;;### (autoloads (reftex-reset-scanning-information reftex-mode | 22331 | ;;;### (autoloads (reftex-reset-scanning-information reftex-mode |
| 22298 | ;;;;;; turn-on-reftex) "reftex" "textmodes/reftex.el" (17888 32281)) | 22332 | ;;;;;; turn-on-reftex) "reftex" "textmodes/reftex.el" (17963 20865)) |
| 22299 | ;;; Generated autoloads from textmodes/reftex.el | 22333 | ;;; Generated autoloads from textmodes/reftex.el |
| 22300 | 22334 | ||
| 22301 | (autoload (quote turn-on-reftex) "reftex" "\ | 22335 | (autoload (quote turn-on-reftex) "reftex" "\ |
| @@ -22345,7 +22379,7 @@ This enforces rescanning the buffer on next use. | |||
| 22345 | ;;;*** | 22379 | ;;;*** |
| 22346 | 22380 | ||
| 22347 | ;;;### (autoloads (reftex-citation) "reftex-cite" "textmodes/reftex-cite.el" | 22381 | ;;;### (autoloads (reftex-citation) "reftex-cite" "textmodes/reftex-cite.el" |
| 22348 | ;;;;;; (17888 32281)) | 22382 | ;;;;;; (17963 20865)) |
| 22349 | ;;; Generated autoloads from textmodes/reftex-cite.el | 22383 | ;;; Generated autoloads from textmodes/reftex-cite.el |
| 22350 | 22384 | ||
| 22351 | (autoload (quote reftex-citation) "reftex-cite" "\ | 22385 | (autoload (quote reftex-citation) "reftex-cite" "\ |
| @@ -22375,7 +22409,7 @@ While entering the regexp, completion on knows citation keys is possible. | |||
| 22375 | ;;;*** | 22409 | ;;;*** |
| 22376 | 22410 | ||
| 22377 | ;;;### (autoloads (reftex-isearch-minor-mode) "reftex-global" "textmodes/reftex-global.el" | 22411 | ;;;### (autoloads (reftex-isearch-minor-mode) "reftex-global" "textmodes/reftex-global.el" |
| 22378 | ;;;;;; (17888 32281)) | 22412 | ;;;;;; (17963 20865)) |
| 22379 | ;;; Generated autoloads from textmodes/reftex-global.el | 22413 | ;;; Generated autoloads from textmodes/reftex-global.el |
| 22380 | 22414 | ||
| 22381 | (autoload (quote reftex-isearch-minor-mode) "reftex-global" "\ | 22415 | (autoload (quote reftex-isearch-minor-mode) "reftex-global" "\ |
| @@ -22392,7 +22426,7 @@ With no argument, this command toggles | |||
| 22392 | ;;;*** | 22426 | ;;;*** |
| 22393 | 22427 | ||
| 22394 | ;;;### (autoloads (reftex-index-phrases-mode) "reftex-index" "textmodes/reftex-index.el" | 22428 | ;;;### (autoloads (reftex-index-phrases-mode) "reftex-index" "textmodes/reftex-index.el" |
| 22395 | ;;;;;; (17888 32281)) | 22429 | ;;;;;; (17963 20865)) |
| 22396 | ;;; Generated autoloads from textmodes/reftex-index.el | 22430 | ;;; Generated autoloads from textmodes/reftex-index.el |
| 22397 | 22431 | ||
| 22398 | (autoload (quote reftex-index-phrases-mode) "reftex-index" "\ | 22432 | (autoload (quote reftex-index-phrases-mode) "reftex-index" "\ |
| @@ -22425,7 +22459,7 @@ Here are all local bindings. | |||
| 22425 | ;;;*** | 22459 | ;;;*** |
| 22426 | 22460 | ||
| 22427 | ;;;### (autoloads (reftex-all-document-files) "reftex-parse" "textmodes/reftex-parse.el" | 22461 | ;;;### (autoloads (reftex-all-document-files) "reftex-parse" "textmodes/reftex-parse.el" |
| 22428 | ;;;;;; (17888 32281)) | 22462 | ;;;;;; (17963 20865)) |
| 22429 | ;;; Generated autoloads from textmodes/reftex-parse.el | 22463 | ;;; Generated autoloads from textmodes/reftex-parse.el |
| 22430 | 22464 | ||
| 22431 | (autoload (quote reftex-all-document-files) "reftex-parse" "\ | 22465 | (autoload (quote reftex-all-document-files) "reftex-parse" "\ |
| @@ -22437,8 +22471,8 @@ of master file. | |||
| 22437 | 22471 | ||
| 22438 | ;;;*** | 22472 | ;;;*** |
| 22439 | 22473 | ||
| 22440 | ;;;### (autoloads nil "reftex-vars" "textmodes/reftex-vars.el" (17888 | 22474 | ;;;### (autoloads nil "reftex-vars" "textmodes/reftex-vars.el" (17963 |
| 22441 | ;;;;;; 32281)) | 22475 | ;;;;;; 20865)) |
| 22442 | ;;; Generated autoloads from textmodes/reftex-vars.el | 22476 | ;;; Generated autoloads from textmodes/reftex-vars.el |
| 22443 | (put 'reftex-vref-is-default 'safe-local-variable (lambda (x) (or (stringp x) (symbolp x)))) | 22477 | (put 'reftex-vref-is-default 'safe-local-variable (lambda (x) (or (stringp x) (symbolp x)))) |
| 22444 | (put 'reftex-fref-is-default 'safe-local-variable (lambda (x) (or (stringp x) (symbolp x)))) | 22478 | (put 'reftex-fref-is-default 'safe-local-variable (lambda (x) (or (stringp x) (symbolp x)))) |
| @@ -22666,7 +22700,7 @@ variable. | |||
| 22666 | ;;;;;; rmail-highlight-face rmail-highlighted-headers rmail-retry-ignored-headers | 22700 | ;;;;;; rmail-highlight-face rmail-highlighted-headers rmail-retry-ignored-headers |
| 22667 | ;;;;;; rmail-displayed-headers rmail-ignored-headers rmail-dont-reply-to-names | 22701 | ;;;;;; rmail-displayed-headers rmail-ignored-headers rmail-dont-reply-to-names |
| 22668 | ;;;;;; rmail-movemail-variant-p) "rmail" "mail/rmail.el" (17963 | 22702 | ;;;;;; rmail-movemail-variant-p) "rmail" "mail/rmail.el" (17963 |
| 22669 | ;;;;;; 18438)) | 22703 | ;;;;;; 21010)) |
| 22670 | ;;; Generated autoloads from mail/rmail.el | 22704 | ;;; Generated autoloads from mail/rmail.el |
| 22671 | 22705 | ||
| 22672 | (autoload (quote rmail-movemail-variant-p) "rmail" "\ | 22706 | (autoload (quote rmail-movemail-variant-p) "rmail" "\ |
| @@ -23961,16 +23995,16 @@ Like Text Mode but with these additional commands: | |||
| 23961 | \\[mail-send-and-exit] mail-send-and-exit (send the message and exit) | 23995 | \\[mail-send-and-exit] mail-send-and-exit (send the message and exit) |
| 23962 | 23996 | ||
| 23963 | Here are commands that move to a header field (and create it if there isn't): | 23997 | Here are commands that move to a header field (and create it if there isn't): |
| 23964 | \\[mail-to] move to To: \\[mail-subject] move to Subject: | 23998 | \\[mail-to] move to To: \\[mail-subject] move to Subj: |
| 23965 | \\[mail-cc] move to CC: \\[mail-bcc] move to BCC: | 23999 | \\[mail-bcc] move to BCC: \\[mail-cc] move to CC: |
| 23966 | \\[mail-fcc] move to FCC: \\[mail-reply-to] move to Reply-To: | 24000 | \\[mail-fcc] move to FCC: \\[mail-reply-to] move to Reply-To: |
| 23967 | \\[mail-mail-reply-to] move to Mail-Reply-To: | 24001 | \\[mail-mail-reply-to] move to Mail-Reply-To: |
| 23968 | \\[mail-mail-followup-to] move to Mail-Followup-To: | 24002 | \\[mail-mail-followup-to] move to Mail-Followup-To: |
| 23969 | \\[mail-text] mail-text (move to beginning of message text). | 24003 | \\[mail-text] move to message text. |
| 23970 | \\[mail-signature] mail-signature (insert `mail-signature-file' file). | 24004 | \\[mail-signature] mail-signature (insert `mail-signature-file' file). |
| 23971 | \\[mail-yank-original] mail-yank-original (insert current message, in Rmail). | 24005 | \\[mail-yank-original] mail-yank-original (insert current message, in Rmail). |
| 23972 | \\[mail-fill-yanked-message] mail-fill-yanked-message (fill what was yanked). | 24006 | \\[mail-fill-yanked-message] mail-fill-yanked-message (fill what was yanked). |
| 23973 | \\[mail-sent-via] mail-sent-via (add a Sent-via field for each To or CC). | 24007 | \\[mail-sent-via] mail-sent-via (add a sent-via field for each To or CC). |
| 23974 | Turning on Mail mode runs the normal hooks `text-mode-hook' and | 24008 | Turning on Mail mode runs the normal hooks `text-mode-hook' and |
| 23975 | `mail-mode-hook' (in that order). | 24009 | `mail-mode-hook' (in that order). |
| 23976 | 24010 | ||
| @@ -24445,7 +24479,7 @@ Turning on Sieve mode runs `sieve-mode-hook'. | |||
| 24445 | 24479 | ||
| 24446 | ;;;*** | 24480 | ;;;*** |
| 24447 | 24481 | ||
| 24448 | ;;;### (autoloads nil "simple" "simple.el" (17963 19313)) | 24482 | ;;;### (autoloads nil "simple" "simple.el" (17963 21011)) |
| 24449 | ;;; Generated autoloads from simple.el | 24483 | ;;; Generated autoloads from simple.el |
| 24450 | (put 'fill-prefix 'safe-local-variable 'string-or-null-p) | 24484 | (put 'fill-prefix 'safe-local-variable 'string-or-null-p) |
| 24451 | 24485 | ||
| @@ -24648,7 +24682,7 @@ interactively. If there's no argument, do it at the current buffer | |||
| 24648 | ;;;*** | 24682 | ;;;*** |
| 24649 | 24683 | ||
| 24650 | ;;;### (autoloads (smtpmail-send-queued-mail smtpmail-send-it) "smtpmail" | 24684 | ;;;### (autoloads (smtpmail-send-queued-mail smtpmail-send-it) "smtpmail" |
| 24651 | ;;;;;; "mail/smtpmail.el" (17888 36928)) | 24685 | ;;;;;; "mail/smtpmail.el" (17963 21010)) |
| 24652 | ;;; Generated autoloads from mail/smtpmail.el | 24686 | ;;; Generated autoloads from mail/smtpmail.el |
| 24653 | 24687 | ||
| 24654 | (autoload (quote smtpmail-send-it) "smtpmail" "\ | 24688 | (autoload (quote smtpmail-send-it) "smtpmail" "\ |
| @@ -25708,7 +25742,7 @@ Studlify-case the current buffer. | |||
| 25708 | 25742 | ||
| 25709 | ;;;*** | 25743 | ;;;*** |
| 25710 | 25744 | ||
| 25711 | ;;;### (autoloads (locate-library) "subr" "subr.el" (17963 19313)) | 25745 | ;;;### (autoloads (locate-library) "subr" "subr.el" (17963 21011)) |
| 25712 | ;;; Generated autoloads from subr.el | 25746 | ;;; Generated autoloads from subr.el |
| 25713 | 25747 | ||
| 25714 | (autoload (quote locate-library) "subr" "\ | 25748 | (autoload (quote locate-library) "subr" "\ |
| @@ -25762,7 +25796,7 @@ before, and `sc-post-hook' is run after the guts of this function. | |||
| 25762 | 25796 | ||
| 25763 | ;;;*** | 25797 | ;;;*** |
| 25764 | 25798 | ||
| 25765 | ;;;### (autoloads (t-mouse-mode) "t-mouse" "t-mouse.el" (17963 19313)) | 25799 | ;;;### (autoloads (t-mouse-mode) "t-mouse" "t-mouse.el" (17963 21011)) |
| 25766 | ;;; Generated autoloads from t-mouse.el | 25800 | ;;; Generated autoloads from t-mouse.el |
| 25767 | 25801 | ||
| 25768 | (defvar t-mouse-mode nil "\ | 25802 | (defvar t-mouse-mode nil "\ |
| @@ -26591,7 +26625,7 @@ subprocess started. | |||
| 26591 | ;;;*** | 26625 | ;;;*** |
| 26592 | 26626 | ||
| 26593 | ;;;### (autoloads (testcover-this-defun) "testcover" "emacs-lisp/testcover.el" | 26627 | ;;;### (autoloads (testcover-this-defun) "testcover" "emacs-lisp/testcover.el" |
| 26594 | ;;;;;; (17888 32279)) | 26628 | ;;;;;; (17963 20867)) |
| 26595 | ;;; Generated autoloads from emacs-lisp/testcover.el | 26629 | ;;; Generated autoloads from emacs-lisp/testcover.el |
| 26596 | 26630 | ||
| 26597 | (autoload (quote testcover-this-defun) "testcover" "\ | 26631 | (autoload (quote testcover-this-defun) "testcover" "\ |
| @@ -26601,7 +26635,7 @@ Start coverage on function under point. | |||
| 26601 | 26635 | ||
| 26602 | ;;;*** | 26636 | ;;;*** |
| 26603 | 26637 | ||
| 26604 | ;;;### (autoloads (tetris) "tetris" "play/tetris.el" (17963 18455)) | 26638 | ;;;### (autoloads (tetris) "tetris" "play/tetris.el" (17963 21010)) |
| 26605 | ;;; Generated autoloads from play/tetris.el | 26639 | ;;; Generated autoloads from play/tetris.el |
| 26606 | 26640 | ||
| 26607 | (autoload (quote tetris) "tetris" "\ | 26641 | (autoload (quote tetris) "tetris" "\ |
| @@ -27577,7 +27611,7 @@ relative only to the time worked today, and not to past time. | |||
| 27577 | 27611 | ||
| 27578 | ;;;### (autoloads (with-timeout run-with-idle-timer add-timeout run-with-timer | 27612 | ;;;### (autoloads (with-timeout run-with-idle-timer add-timeout run-with-timer |
| 27579 | ;;;;;; run-at-time cancel-function-timers cancel-timer) "timer" | 27613 | ;;;;;; run-at-time cancel-function-timers cancel-timer) "timer" |
| 27580 | ;;;;;; "emacs-lisp/timer.el" (17888 32279)) | 27614 | ;;;;;; "emacs-lisp/timer.el" (17963 21006)) |
| 27581 | ;;; Generated autoloads from emacs-lisp/timer.el | 27615 | ;;; Generated autoloads from emacs-lisp/timer.el |
| 27582 | 27616 | ||
| 27583 | (defalias (quote disable-timeout) (quote cancel-timer)) | 27617 | (defalias (quote disable-timeout) (quote cancel-timer)) |
| @@ -27597,11 +27631,16 @@ and idle timers such as are scheduled by `run-with-idle-timer'. | |||
| 27597 | (autoload (quote run-at-time) "timer" "\ | 27631 | (autoload (quote run-at-time) "timer" "\ |
| 27598 | Perform an action at time TIME. | 27632 | Perform an action at time TIME. |
| 27599 | Repeat the action every REPEAT seconds, if REPEAT is non-nil. | 27633 | Repeat the action every REPEAT seconds, if REPEAT is non-nil. |
| 27600 | TIME should be a string like \"11:23pm\", nil meaning now, a number of seconds | 27634 | TIME should be one of: a string giving an absolute time like |
| 27601 | from now, a value from `current-time', or t (with non-nil REPEAT) | 27635 | \"11:23pm\" (the acceptable formats are those recognized by |
| 27602 | meaning the next integral multiple of REPEAT. | 27636 | `diary-entry-time'; note that such times are interpreted as times |
| 27603 | REPEAT may be an integer or floating point number. | 27637 | today, even if in the past); a string giving a relative time like |
| 27604 | The action is to call FUNCTION with arguments ARGS. | 27638 | \"2 hours 35 minutes\" (the acceptable formats are those |
| 27639 | recognized by `timer-duration'); nil meaning now; a number of | ||
| 27640 | seconds from now; a value from `encode-time'; or t (with non-nil | ||
| 27641 | REPEAT) meaning the next integral multiple of REPEAT. REPEAT may | ||
| 27642 | be an integer or floating point number. The action is to call | ||
| 27643 | FUNCTION with arguments ARGS. | ||
| 27605 | 27644 | ||
| 27606 | This function returns a timer object which you can use in `cancel-timer'. | 27645 | This function returns a timer object which you can use in `cancel-timer'. |
| 27607 | 27646 | ||
| @@ -27700,7 +27739,7 @@ PATTERN regexp. | |||
| 27700 | ;;;*** | 27739 | ;;;*** |
| 27701 | 27740 | ||
| 27702 | ;;;### (autoloads (tmm-prompt tmm-menubar-mouse tmm-menubar) "tmm" | 27741 | ;;;### (autoloads (tmm-prompt tmm-menubar-mouse tmm-menubar) "tmm" |
| 27703 | ;;;;;; "tmm.el" (17888 32281)) | 27742 | ;;;;;; "tmm.el" (17963 21011)) |
| 27704 | ;;; Generated autoloads from tmm.el | 27743 | ;;; Generated autoloads from tmm.el |
| 27705 | (define-key global-map "\M-`" 'tmm-menubar) | 27744 | (define-key global-map "\M-`" 'tmm-menubar) |
| 27706 | (define-key global-map [menu-bar mouse-1] 'tmm-menubar-mouse) | 27745 | (define-key global-map [menu-bar mouse-1] 'tmm-menubar-mouse) |
| @@ -27972,7 +28011,7 @@ BUFFER defaults to `trace-buffer'. | |||
| 27972 | ;;;### (autoloads (tramp-unload-tramp tramp-completion-handle-file-name-completion | 28011 | ;;;### (autoloads (tramp-unload-tramp tramp-completion-handle-file-name-completion |
| 27973 | ;;;;;; tramp-completion-handle-file-name-all-completions tramp-unload-file-name-handlers | 28012 | ;;;;;; tramp-completion-handle-file-name-all-completions tramp-unload-file-name-handlers |
| 27974 | ;;;;;; tramp-file-name-handler tramp-completion-file-name-regexp | 28013 | ;;;;;; tramp-file-name-handler tramp-completion-file-name-regexp |
| 27975 | ;;;;;; tramp-file-name-regexp) "tramp" "net/tramp.el" (17963 19047)) | 28014 | ;;;;;; tramp-file-name-regexp) "tramp" "net/tramp.el" (17963 21006)) |
| 27976 | ;;; Generated autoloads from net/tramp.el | 28015 | ;;; Generated autoloads from net/tramp.el |
| 27977 | 28016 | ||
| 27978 | (defvar tramp-unified-filenames (not (featurep (quote xemacs))) "\ | 28017 | (defvar tramp-unified-filenames (not (featurep (quote xemacs))) "\ |
| @@ -28056,11 +28095,15 @@ Falls back to normal file name handler if no tramp file name handler exists. | |||
| 28056 | Invoke tramp file name completion handler. | 28095 | Invoke tramp file name completion handler. |
| 28057 | Falls back to normal file name handler if no tramp file name handler exists." (let ((fn (assoc operation tramp-completion-file-name-handler-alist))) (if fn (save-match-data (apply (cdr fn) args)) (tramp-completion-run-real-handler operation args)))) | 28096 | Falls back to normal file name handler if no tramp file name handler exists." (let ((fn (assoc operation tramp-completion-file-name-handler-alist))) (if fn (save-match-data (apply (cdr fn) args)) (tramp-completion-run-real-handler operation args)))) |
| 28058 | 28097 | ||
| 28059 | (defsubst tramp-register-file-name-handlers nil "\ | 28098 | (defsubst tramp-register-file-name-handler nil "\ |
| 28060 | Add tramp file name handlers to `file-name-handler-alist'." (add-to-list (quote file-name-handler-alist) (cons tramp-file-name-regexp (quote tramp-file-name-handler))) (when (or (not (boundp (quote partial-completion-mode))) (symbol-value (quote partial-completion-mode)) (featurep (quote ido))) (add-to-list (quote file-name-handler-alist) (cons tramp-completion-file-name-regexp (quote tramp-completion-file-name-handler))) (put (quote tramp-completion-file-name-handler) (quote safe-magic) t)) (let ((jka (rassoc (quote jka-compr-handler) file-name-handler-alist))) (when jka (setq file-name-handler-alist (cons jka (delete jka file-name-handler-alist)))))) | 28099 | Add tramp file name handler to `file-name-handler-alist'." (add-to-list (quote file-name-handler-alist) (cons tramp-file-name-regexp (quote tramp-file-name-handler))) (let ((jka (rassoc (quote jka-compr-handler) file-name-handler-alist))) (when jka (setq file-name-handler-alist (cons jka (delete jka file-name-handler-alist)))))) |
| 28100 | |||
| 28101 | (defsubst tramp-register-completion-file-name-handler nil "\ | ||
| 28102 | Add tramp completion file name handler to `file-name-handler-alist'." (when (or (not (boundp (quote partial-completion-mode))) (symbol-value (quote partial-completion-mode)) (featurep (quote ido))) (add-to-list (quote file-name-handler-alist) (cons tramp-completion-file-name-regexp (quote tramp-completion-file-name-handler))) (put (quote tramp-completion-file-name-handler) (quote safe-magic) t)) (let ((jka (rassoc (quote jka-compr-handler) file-name-handler-alist))) (when jka (setq file-name-handler-alist (cons jka (delete jka file-name-handler-alist)))))) | ||
| 28103 | (tramp-register-file-name-handler) | ||
| 28061 | (add-hook | 28104 | (add-hook |
| 28062 | 'after-init-hook | 28105 | 'after-init-hook |
| 28063 | '(lambda () (tramp-register-file-name-handlers))) | 28106 | '(lambda () (tramp-register-completion-file-name-handler))) |
| 28064 | 28107 | ||
| 28065 | (autoload (quote tramp-unload-file-name-handlers) "tramp" "\ | 28108 | (autoload (quote tramp-unload-file-name-handlers) "tramp" "\ |
| 28066 | Not documented | 28109 | Not documented |
| @@ -28774,7 +28817,7 @@ Not documented | |||
| 28774 | ;;;*** | 28817 | ;;;*** |
| 28775 | 28818 | ||
| 28776 | ;;;### (autoloads (url-http-options url-http-file-attributes url-http-file-exists-p | 28819 | ;;;### (autoloads (url-http-options url-http-file-attributes url-http-file-exists-p |
| 28777 | ;;;;;; url-http) "url-http" "url/url-http.el" (17888 36646)) | 28820 | ;;;;;; url-http) "url-http" "url/url-http.el" (17963 21008)) |
| 28778 | ;;; Generated autoloads from url/url-http.el | 28821 | ;;; Generated autoloads from url/url-http.el |
| 28779 | 28822 | ||
| 28780 | (autoload (quote url-http) "url-http" "\ | 28823 | (autoload (quote url-http) "url-http" "\ |
| @@ -29487,7 +29530,7 @@ colors. `vc-annotate-background' specifies the background color. | |||
| 29487 | 29530 | ||
| 29488 | ;;;*** | 29531 | ;;;*** |
| 29489 | 29532 | ||
| 29490 | ;;;### (autoloads nil "vc-arch" "vc-arch.el" (17888 32281)) | 29533 | ;;;### (autoloads nil "vc-arch" "vc-arch.el" (17963 20999)) |
| 29491 | ;;; Generated autoloads from vc-arch.el | 29534 | ;;; Generated autoloads from vc-arch.el |
| 29492 | (defun vc-arch-registered (file) | 29535 | (defun vc-arch-registered (file) |
| 29493 | (if (vc-find-root file "{arch}/=tagging-method") | 29536 | (if (vc-find-root file "{arch}/=tagging-method") |
| @@ -29518,7 +29561,7 @@ colors. `vc-annotate-background' specifies the background color. | |||
| 29518 | ;;;*** | 29561 | ;;;*** |
| 29519 | 29562 | ||
| 29520 | ;;;### (autoloads (vc-rcs-master-templates) "vc-rcs" "vc-rcs.el" | 29563 | ;;;### (autoloads (vc-rcs-master-templates) "vc-rcs" "vc-rcs.el" |
| 29521 | ;;;;;; (17888 32281)) | 29564 | ;;;;;; (17963 20867)) |
| 29522 | ;;; Generated autoloads from vc-rcs.el | 29565 | ;;; Generated autoloads from vc-rcs.el |
| 29523 | 29566 | ||
| 29524 | (defvar vc-rcs-master-templates (quote ("%sRCS/%s,v" "%s%s,v" "%sRCS/%s")) "\ | 29567 | (defvar vc-rcs-master-templates (quote ("%sRCS/%s,v" "%s%s,v" "%sRCS/%s")) "\ |
| @@ -30208,8 +30251,8 @@ Not documented | |||
| 30208 | 30251 | ||
| 30209 | ;;;### (autoloads (View-exit-and-edit view-mode-enter view-mode view-buffer-other-frame | 30252 | ;;;### (autoloads (View-exit-and-edit view-mode-enter view-mode view-buffer-other-frame |
| 30210 | ;;;;;; view-buffer-other-window view-buffer view-file-other-frame | 30253 | ;;;;;; view-buffer-other-window view-buffer view-file-other-frame |
| 30211 | ;;;;;; view-file-other-window view-file) "view" "view.el" (17888 | 30254 | ;;;;;; view-file-other-window view-file) "view" "view.el" (17963 |
| 30212 | ;;;;;; 32281)) | 30255 | ;;;;;; 20999)) |
| 30213 | ;;; Generated autoloads from view.el | 30256 | ;;; Generated autoloads from view.el |
| 30214 | 30257 | ||
| 30215 | (defvar view-mode nil "\ | 30258 | (defvar view-mode nil "\ |
| @@ -30372,7 +30415,7 @@ p searches backward for last regular expression. | |||
| 30372 | \\[View-leave] quit View mode and maybe switch buffers, but don't kill this buffer. | 30415 | \\[View-leave] quit View mode and maybe switch buffers, but don't kill this buffer. |
| 30373 | \\[View-kill-and-leave] quit View mode, kill current buffer and go back to other buffer. | 30416 | \\[View-kill-and-leave] quit View mode, kill current buffer and go back to other buffer. |
| 30374 | 30417 | ||
| 30375 | The effect of \\[View-leave] , \\[View-quit] and \\[View-kill-and-leave] depends on how view-mode was entered. If it was | 30418 | The effect of \\[View-leave], \\[View-quit] and \\[View-kill-and-leave] depends on how view-mode was entered. If it was |
| 30376 | entered by view-file, view-file-other-window, view-file-other-frame, or | 30419 | entered by view-file, view-file-other-window, view-file-other-frame, or |
| 30377 | \\[dired-view-file] (\\[view-file], \\[view-file-other-window], | 30420 | \\[dired-view-file] (\\[view-file], \\[view-file-other-window], |
| 30378 | \\[view-file-other-frame], or the Dired mode v command), | 30421 | \\[view-file-other-frame], or the Dired mode v command), |
| @@ -30380,7 +30423,7 @@ then \\[View-quit] will try to kill the current buffer. | |||
| 30380 | If view-mode was entered from another buffer, by \\[view-buffer], | 30423 | If view-mode was entered from another buffer, by \\[view-buffer], |
| 30381 | \\[view-buffer-other-window], \\[view-buffer-other frame], \\[view-file], | 30424 | \\[view-buffer-other-window], \\[view-buffer-other frame], \\[view-file], |
| 30382 | \\[view-file-other-window], or \\[view-file-other-frame], | 30425 | \\[view-file-other-window], or \\[view-file-other-frame], |
| 30383 | then \\[View-leave] , \\[View-quit] and \\[View-kill-and-leave] will return to that buffer. | 30426 | then \\[View-leave], \\[View-quit] and \\[View-kill-and-leave] will return to that buffer. |
| 30384 | 30427 | ||
| 30385 | Entry to view-mode runs the normal hook `view-mode-hook'. | 30428 | Entry to view-mode runs the normal hook `view-mode-hook'. |
| 30386 | 30429 | ||
| @@ -30435,7 +30478,7 @@ Turn on VIP emulation of VI. | |||
| 30435 | ;;;*** | 30478 | ;;;*** |
| 30436 | 30479 | ||
| 30437 | ;;;### (autoloads (viper-mode toggle-viper-mode) "viper" "emulation/viper.el" | 30480 | ;;;### (autoloads (viper-mode toggle-viper-mode) "viper" "emulation/viper.el" |
| 30438 | ;;;;;; (17888 32279)) | 30481 | ;;;;;; (17963 20865)) |
| 30439 | ;;; Generated autoloads from emulation/viper.el | 30482 | ;;; Generated autoloads from emulation/viper.el |
| 30440 | 30483 | ||
| 30441 | (autoload (quote toggle-viper-mode) "viper" "\ | 30484 | (autoload (quote toggle-viper-mode) "viper" "\ |
| @@ -30452,7 +30495,7 @@ Turn on Viper emulation of Vi in Emacs. See Info node `(viper)Top'. | |||
| 30452 | ;;;*** | 30495 | ;;;*** |
| 30453 | 30496 | ||
| 30454 | ;;;### (autoloads (warn lwarn display-warning) "warnings" "emacs-lisp/warnings.el" | 30497 | ;;;### (autoloads (warn lwarn display-warning) "warnings" "emacs-lisp/warnings.el" |
| 30455 | ;;;;;; (17888 32279)) | 30498 | ;;;;;; (17963 21006)) |
| 30456 | ;;; Generated autoloads from emacs-lisp/warnings.el | 30499 | ;;; Generated autoloads from emacs-lisp/warnings.el |
| 30457 | 30500 | ||
| 30458 | (defvar warning-prefix-function nil "\ | 30501 | (defvar warning-prefix-function nil "\ |
| @@ -30499,8 +30542,9 @@ Default is :warning. | |||
| 30499 | but raise suspicion of a possible problem. | 30542 | but raise suspicion of a possible problem. |
| 30500 | :debug -- info for debugging only. | 30543 | :debug -- info for debugging only. |
| 30501 | 30544 | ||
| 30502 | BUFFER-NAME, if specified, is the name of the buffer for logging the | 30545 | BUFFER-NAME, if specified, is the name of the buffer for logging |
| 30503 | warning. By default, it is `*Warnings*'. | 30546 | the warning. By default, it is `*Warnings*'. If this function |
| 30547 | has to create the buffer, it disables undo in the buffer. | ||
| 30504 | 30548 | ||
| 30505 | See the `warnings' custom group for user customization features. | 30549 | See the `warnings' custom group for user customization features. |
| 30506 | 30550 | ||
| @@ -30607,7 +30651,7 @@ and off otherwise. | |||
| 30607 | ;;;;;; whitespace-buffer whitespace-toggle-ateol-check whitespace-toggle-spacetab-check | 30651 | ;;;;;; whitespace-buffer whitespace-toggle-ateol-check whitespace-toggle-spacetab-check |
| 30608 | ;;;;;; whitespace-toggle-indent-check whitespace-toggle-trailing-check | 30652 | ;;;;;; whitespace-toggle-indent-check whitespace-toggle-trailing-check |
| 30609 | ;;;;;; whitespace-toggle-leading-check) "whitespace" "whitespace.el" | 30653 | ;;;;;; whitespace-toggle-leading-check) "whitespace" "whitespace.el" |
| 30610 | ;;;;;; (17888 32281)) | 30654 | ;;;;;; (17963 20867)) |
| 30611 | ;;; Generated autoloads from whitespace.el | 30655 | ;;; Generated autoloads from whitespace.el |
| 30612 | 30656 | ||
| 30613 | (autoload (quote whitespace-toggle-leading-check) "whitespace" "\ | 30657 | (autoload (quote whitespace-toggle-leading-check) "whitespace" "\ |
| @@ -30843,7 +30887,7 @@ With arg, turn Winner mode on if and only if arg is positive. | |||
| 30843 | ;;;*** | 30887 | ;;;*** |
| 30844 | 30888 | ||
| 30845 | ;;;### (autoloads (woman-find-file woman-dired-find-file woman) "woman" | 30889 | ;;;### (autoloads (woman-find-file woman-dired-find-file woman) "woman" |
| 30846 | ;;;;;; "woman.el" (17963 19299)) | 30890 | ;;;;;; "woman.el" (17963 21006)) |
| 30847 | ;;; Generated autoloads from woman.el | 30891 | ;;; Generated autoloads from woman.el |
| 30848 | 30892 | ||
| 30849 | (autoload (quote woman) "woman" "\ | 30893 | (autoload (quote woman) "woman" "\ |
| @@ -31017,8 +31061,8 @@ If PARSE-NS is non-nil, then QNAMES are expanded. | |||
| 31017 | 31061 | ||
| 31018 | ;;;*** | 31062 | ;;;*** |
| 31019 | 31063 | ||
| 31020 | ;;;### (autoloads (xterm-mouse-mode) "xt-mouse" "xt-mouse.el" (17888 | 31064 | ;;;### (autoloads (xterm-mouse-mode) "xt-mouse" "xt-mouse.el" (17963 |
| 31021 | ;;;;;; 32281)) | 31065 | ;;;;;; 21011)) |
| 31022 | ;;; Generated autoloads from xt-mouse.el | 31066 | ;;; Generated autoloads from xt-mouse.el |
| 31023 | 31067 | ||
| 31024 | (defvar xterm-mouse-mode nil "\ | 31068 | (defvar xterm-mouse-mode nil "\ |
| @@ -31088,7 +31132,7 @@ Zippy goes to the analyst. | |||
| 31088 | 31132 | ||
| 31089 | ;;;*** | 31133 | ;;;*** |
| 31090 | 31134 | ||
| 31091 | ;;;### (autoloads (zone) "zone" "play/zone.el" (17888 32281)) | 31135 | ;;;### (autoloads (zone) "zone" "play/zone.el" (17963 21010)) |
| 31092 | ;;; Generated autoloads from play/zone.el | 31136 | ;;; Generated autoloads from play/zone.el |
| 31093 | 31137 | ||
| 31094 | (autoload (quote zone) "zone" "\ | 31138 | (autoload (quote zone) "zone" "\ |
| @@ -31228,7 +31272,7 @@ Zone out, completely. | |||
| 31228 | ;;;;;; "url/url-vars.el" "url/vc-dav.el" "vc-hooks.el" "vcursor.el" | 31272 | ;;;;;; "url/url-vars.el" "url/vc-dav.el" "vc-hooks.el" "vcursor.el" |
| 31229 | ;;;;;; "version.el" "vms-patch.el" "vmsproc.el" "vt-control.el" | 31273 | ;;;;;; "version.el" "vms-patch.el" "vmsproc.el" "vt-control.el" |
| 31230 | ;;;;;; "vt100-led.el" "w32-fns.el" "w32-vars.el" "widget.el" "window.el" | 31274 | ;;;;;; "vt100-led.el" "w32-fns.el" "w32-vars.el" "widget.el" "window.el" |
| 31231 | ;;;;;; "x-dnd.el") (17963 20717 345010)) | 31275 | ;;;;;; "x-dnd.el") (17963 21179 886390)) |
| 31232 | 31276 | ||
| 31233 | ;;;*** | 31277 | ;;;*** |
| 31234 | 31278 | ||
diff --git a/lisp/loadhist.el b/lisp/loadhist.el index 39d51a280f5..84a865573af 100644 --- a/lisp/loadhist.el +++ b/lisp/loadhist.el | |||
| @@ -111,17 +111,18 @@ A library name is equivalent to the file name that `load-library' would load." | |||
| 111 | (setq dependents (cons (car x) dependents)))) | 111 | (setq dependents (cons (car x) dependents)))) |
| 112 | dependents)) | 112 | dependents)) |
| 113 | 113 | ||
| 114 | (defun read-feature (prompt) | 114 | (defun read-feature (prompt &optional loaded-p) |
| 115 | "Read a feature name \(string\) from the minibuffer. | 115 | "Read feature name from the minibuffer, prompting with string PROMPT. |
| 116 | Prompt with PROMPT and completing from `features', and | 116 | If optional second arg LOADED-P is non-nil, the feature must be loaded |
| 117 | return the feature \(symbol\)." | 117 | from a file." |
| 118 | (intern (completing-read prompt | 118 | (intern |
| 119 | (mapcar (lambda (feature) | 119 | (completing-read prompt |
| 120 | (list (symbol-name feature))) | 120 | (cons nil features) |
| 121 | features) | 121 | (and loaded-p |
| 122 | ;; Complete only features loaded from a file | 122 | #'(lambda (f) |
| 123 | #'(lambda (f) (feature-file (intern (car f)))) | 123 | (and f ; ignore nil |
| 124 | t))) | 124 | (feature-file f)))) |
| 125 | loaded-p))) | ||
| 125 | 126 | ||
| 126 | (defvaralias 'loadhist-hook-functions 'unload-feature-special-hooks) | 127 | (defvaralias 'loadhist-hook-functions 'unload-feature-special-hooks) |
| 127 | (defvar unload-feature-special-hooks | 128 | (defvar unload-feature-special-hooks |
| @@ -162,7 +163,10 @@ the package's feature list (before anything is unbound) in the | |||
| 162 | variable `unload-hook-features-list' and could remove features from it | 163 | variable `unload-hook-features-list' and could remove features from it |
| 163 | in the event that the package has done something normally-ill-advised, | 164 | in the event that the package has done something normally-ill-advised, |
| 164 | such as redefining an Emacs function." | 165 | such as redefining an Emacs function." |
| 165 | (interactive (list (read-feature "Feature: ") current-prefix-arg)) | 166 | (interactive |
| 167 | (list | ||
| 168 | (read-feature "Unload feature: " t) | ||
| 169 | current-prefix-arg)) | ||
| 166 | (unless (featurep feature) | 170 | (unless (featurep feature) |
| 167 | (error "%s is not a currently loaded feature" (symbol-name feature))) | 171 | (error "%s is not a currently loaded feature" (symbol-name feature))) |
| 168 | (unless force | 172 | (unless force |
diff --git a/lisp/mail/footnote.el b/lisp/mail/footnote.el index 2dd2e7af175..7992438df25 100644 --- a/lisp/mail/footnote.el +++ b/lisp/mail/footnote.el | |||
| @@ -267,14 +267,17 @@ Wrapping around the alphabet implies successive repetitions of letters." | |||
| 267 | 267 | ||
| 268 | ;; Latin-1 | 268 | ;; Latin-1 |
| 269 | 269 | ||
| 270 | (defconst footnote-latin-regexp "¹²³ºª§¶" | 270 | (defconst footnote-latin-string "¹²³ºª§¶" |
| 271 | "String of Latin-1 footnoting characters.") | ||
| 272 | |||
| 273 | (defconst footnote-latin-regexp (concat "[" footnote-latin-string "]") | ||
| 271 | "Regexp for Latin-1 footnoting characters.") | 274 | "Regexp for Latin-1 footnoting characters.") |
| 272 | 275 | ||
| 273 | (defun Footnote-latin (n) | 276 | (defun Footnote-latin (n) |
| 274 | "Latin-1 footnote style. | 277 | "Latin-1 footnote style. |
| 275 | Use a range of Latin-1 non-ASCII characters for footnoting." | 278 | Use a range of Latin-1 non-ASCII characters for footnoting." |
| 276 | (string (aref footnote-latin-regexp | 279 | (string (aref footnote-latin-string |
| 277 | (mod (1- n) (length footnote-latin-regexp))))) | 280 | (mod (1- n) (length footnote-latin-string))))) |
| 278 | 281 | ||
| 279 | ;;; list of all footnote styles | 282 | ;;; list of all footnote styles |
| 280 | (defvar footnote-style-alist | 283 | (defvar footnote-style-alist |
| @@ -291,14 +294,18 @@ See footnote-han.el, footnote-greek.el and footnote-hebrew.el for more | |||
| 291 | exciting styles.") | 294 | exciting styles.") |
| 292 | 295 | ||
| 293 | (defcustom footnote-style 'numeric | 296 | (defcustom footnote-style 'numeric |
| 294 | "*Style used for footnoting. | 297 | "*Default style used for footnoting. |
| 295 | numeric == 1, 2, 3, ... | 298 | numeric == 1, 2, 3, ... |
| 296 | english-lower == a, b, c, ... | 299 | english-lower == a, b, c, ... |
| 297 | english-upper == A, B, C, ... | 300 | english-upper == A, B, C, ... |
| 298 | roman-lower == i, ii, iii, iv, v, ... | 301 | roman-lower == i, ii, iii, iv, v, ... |
| 299 | roman-upper == I, II, III, IV, V, ... | 302 | roman-upper == I, II, III, IV, V, ... |
| 300 | latin == ¹ ² ³ º ª § ¶ | 303 | latin == ¹ ² ³ º ª § ¶ |
| 301 | See also variables `footnote-start-tag' and `footnote-end-tag'." | 304 | See also variables `footnote-start-tag' and `footnote-end-tag'. |
| 305 | |||
| 306 | Customizing this variable has no effect on buffers already | ||
| 307 | displaying footnotes. You can change the style of existing | ||
| 308 | buffers using the command `Footnote-set-style'." | ||
| 302 | :type (cons 'choice (mapcar (lambda (x) (list 'const (car x))) | 309 | :type (cons 'choice (mapcar (lambda (x) (list 'const (car x))) |
| 303 | footnote-style-alist)) | 310 | footnote-style-alist)) |
| 304 | :group 'footnote) | 311 | :group 'footnote) |
| @@ -654,7 +661,7 @@ delete the footnote with that number." | |||
| 654 | (while (< i notes) | 661 | (while (< i notes) |
| 655 | (setq alist-ptr (nth i footnote-pointer-marker-alist)) | 662 | (setq alist-ptr (nth i footnote-pointer-marker-alist)) |
| 656 | (setq alist-txt (nth i footnote-text-marker-alist)) | 663 | (setq alist-txt (nth i footnote-text-marker-alist)) |
| 657 | (unless (eq (1+ i) (car alist-ptr)) | 664 | (unless (= (1+ i) (car alist-ptr)) |
| 658 | (Footnote-renumber (car alist-ptr) (1+ i) alist-ptr alist-txt)) | 665 | (Footnote-renumber (car alist-ptr) (1+ i) alist-ptr alist-txt)) |
| 659 | (setq i (1+ i)))))) | 666 | (setq i (1+ i)))))) |
| 660 | 667 | ||
diff --git a/lisp/mail/rmail.el b/lisp/mail/rmail.el index 5e534b2d47d..bfdd5048877 100644 --- a/lisp/mail/rmail.el +++ b/lisp/mail/rmail.el | |||
| @@ -1959,9 +1959,13 @@ is non-nil if the user has supplied the password interactively. | |||
| 1959 | (base64-header-field-end | 1959 | (base64-header-field-end |
| 1960 | (save-excursion | 1960 | (save-excursion |
| 1961 | (goto-char start) | 1961 | (goto-char start) |
| 1962 | (re-search-forward | 1962 | (and (re-search-forward |
| 1963 | "^content-transfer-encoding:\\(\n?[\t ]\\)*base64\\(\n?[\t ]\\)*" | 1963 | "^content-transfer-encoding:\\(\n?[\t ]\\)*base64\\(\n?[\t ]\\)*" |
| 1964 | header-end t)))) | 1964 | header-end t) |
| 1965 | ;; Don't try to decode non-text data. | ||
| 1966 | (re-search-forward | ||
| 1967 | "^content-type:\\(\n?[\t ]\\)\\(text\\|message\\)/" | ||
| 1968 | header-end t))))) | ||
| 1965 | (if quoted-printable-header-field-end | 1969 | (if quoted-printable-header-field-end |
| 1966 | (save-excursion | 1970 | (save-excursion |
| 1967 | (unless | 1971 | (unless |
| @@ -2061,10 +2065,16 @@ is non-nil if the user has supplied the password interactively. | |||
| 2061 | "^content-transfer-encoding:\\(\n?[\t ]\\)*quoted-printable\\(\n?[\t ]\\)*" | 2065 | "^content-transfer-encoding:\\(\n?[\t ]\\)*quoted-printable\\(\n?[\t ]\\)*" |
| 2062 | header-end t))) | 2066 | header-end t))) |
| 2063 | (base64-header-field-end | 2067 | (base64-header-field-end |
| 2064 | (save-excursion | 2068 | (and |
| 2065 | (re-search-forward | 2069 | (save-excursion |
| 2066 | "^content-transfer-encoding:\\(\n?[\t ]\\)*base64\\(\n?[\t ]\\)*" | 2070 | (re-search-forward |
| 2067 | header-end t))) | 2071 | "^content-transfer-encoding:\\(\n?[\t ]\\)*base64\\(\n?[\t ]\\)*" |
| 2072 | header-end t)) | ||
| 2073 | ;; Don't decode non-text data. | ||
| 2074 | (save-excursion | ||
| 2075 | (re-search-forward | ||
| 2076 | "^content-type:\\(\n?[\t ]\\)\\(text\\|message\\)/" | ||
| 2077 | header-end t)))) | ||
| 2068 | (size | 2078 | (size |
| 2069 | ;; Get the numeric value from the Content-Length field. | 2079 | ;; Get the numeric value from the Content-Length field. |
| 2070 | (save-excursion | 2080 | (save-excursion |
diff --git a/lisp/mail/sendmail.el b/lisp/mail/sendmail.el index 2bb1a6ed0fa..c0fcdf8ff43 100644 --- a/lisp/mail/sendmail.el +++ b/lisp/mail/sendmail.el | |||
| @@ -620,16 +620,16 @@ Like Text Mode but with these additional commands: | |||
| 620 | \\[mail-send-and-exit] mail-send-and-exit (send the message and exit) | 620 | \\[mail-send-and-exit] mail-send-and-exit (send the message and exit) |
| 621 | 621 | ||
| 622 | Here are commands that move to a header field (and create it if there isn't): | 622 | Here are commands that move to a header field (and create it if there isn't): |
| 623 | \\[mail-to] move to To: \\[mail-subject] move to Subject: | 623 | \\[mail-to] move to To: \\[mail-subject] move to Subj: |
| 624 | \\[mail-cc] move to CC: \\[mail-bcc] move to BCC: | 624 | \\[mail-bcc] move to BCC: \\[mail-cc] move to CC: |
| 625 | \\[mail-fcc] move to FCC: \\[mail-reply-to] move to Reply-To: | 625 | \\[mail-fcc] move to FCC: \\[mail-reply-to] move to Reply-To: |
| 626 | \\[mail-mail-reply-to] move to Mail-Reply-To: | 626 | \\[mail-mail-reply-to] move to Mail-Reply-To: |
| 627 | \\[mail-mail-followup-to] move to Mail-Followup-To: | 627 | \\[mail-mail-followup-to] move to Mail-Followup-To: |
| 628 | \\[mail-text] mail-text (move to beginning of message text). | 628 | \\[mail-text] move to message text. |
| 629 | \\[mail-signature] mail-signature (insert `mail-signature-file' file). | 629 | \\[mail-signature] mail-signature (insert `mail-signature-file' file). |
| 630 | \\[mail-yank-original] mail-yank-original (insert current message, in Rmail). | 630 | \\[mail-yank-original] mail-yank-original (insert current message, in Rmail). |
| 631 | \\[mail-fill-yanked-message] mail-fill-yanked-message (fill what was yanked). | 631 | \\[mail-fill-yanked-message] mail-fill-yanked-message (fill what was yanked). |
| 632 | \\[mail-sent-via] mail-sent-via (add a Sent-via field for each To or CC). | 632 | \\[mail-sent-via] mail-sent-via (add a sent-via field for each To or CC). |
| 633 | Turning on Mail mode runs the normal hooks `text-mode-hook' and | 633 | Turning on Mail mode runs the normal hooks `text-mode-hook' and |
| 634 | `mail-mode-hook' (in that order)." | 634 | `mail-mode-hook' (in that order)." |
| 635 | (make-local-variable 'mail-reply-action) | 635 | (make-local-variable 'mail-reply-action) |
| @@ -1392,7 +1392,7 @@ Create a Mail-Followup-To field if none." | |||
| 1392 | nil))) | 1392 | nil))) |
| 1393 | 1393 | ||
| 1394 | (defun mail-text () | 1394 | (defun mail-text () |
| 1395 | "Move point to beginning of message text." | 1395 | "Move point to beginning of text field." |
| 1396 | (interactive) | 1396 | (interactive) |
| 1397 | (expand-abbrev) | 1397 | (expand-abbrev) |
| 1398 | (goto-char (mail-text-start))) | 1398 | (goto-char (mail-text-start))) |
diff --git a/lisp/mail/smtpmail.el b/lisp/mail/smtpmail.el index e1e742a1d72..66c4bdd8df7 100644 --- a/lisp/mail/smtpmail.el +++ b/lisp/mail/smtpmail.el | |||
| @@ -691,20 +691,22 @@ This is relative to `smtpmail-queue-dir'.") | |||
| 691 | (>= (car response-code) 400)) | 691 | (>= (car response-code) 400)) |
| 692 | (throw 'done nil))) | 692 | (throw 'done nil))) |
| 693 | (dolist (line (cdr (cdr response-code))) | 693 | (dolist (line (cdr (cdr response-code))) |
| 694 | (let ((name (mapcar (lambda (s) (intern (downcase s))) | 694 | (let ((name |
| 695 | (split-string (substring line 4) "[ ]")))) | 695 | (with-case-table ascii-case-table |
| 696 | (mapcar (lambda (s) (intern (downcase s))) | ||
| 697 | (split-string (substring line 4) "[ ]"))))) | ||
| 696 | (and (eq (length name) 1) | 698 | (and (eq (length name) 1) |
| 697 | (setq name (car name))) | 699 | (setq name (car name))) |
| 698 | (and name | 700 | (and name |
| 699 | (cond ((memq (if (consp name) (car name) name) | 701 | (cond ((memq (if (consp name) (car name) name) |
| 700 | '(verb xvrb 8bitmime onex xone | 702 | '(verb xvrb 8bitmime onex xone |
| 701 | expn size dsn etrn | 703 | expn size dsn etrn |
| 702 | enhancedstatuscodes | 704 | enhancedstatuscodes |
| 703 | help xusr | 705 | help xusr |
| 704 | auth=login auth starttls)) | 706 | auth=login auth starttls)) |
| 705 | (setq supported-extensions | 707 | (setq supported-extensions |
| 706 | (cons name supported-extensions))) | 708 | (cons name supported-extensions))) |
| 707 | (smtpmail-warn-about-unknown-extensions | 709 | (smtpmail-warn-about-unknown-extensions |
| 708 | (message "Unknown extension %s" name))))))) | 710 | (message "Unknown extension %s" name))))))) |
| 709 | 711 | ||
| 710 | (if (and do-starttls | 712 | (if (and do-starttls |
diff --git a/lisp/man.el b/lisp/man.el index a6aced25e3d..0484c032e34 100644 --- a/lisp/man.el +++ b/lisp/man.el | |||
| @@ -628,7 +628,14 @@ a new value." | |||
| 628 | (setq Man-support-local-filenames | 628 | (setq Man-support-local-filenames |
| 629 | (with-temp-buffer | 629 | (with-temp-buffer |
| 630 | (and (equal (condition-case nil | 630 | (and (equal (condition-case nil |
| 631 | (call-process manual-program nil t nil "--help") | 631 | (let ((default-directory |
| 632 | ;; Assure that `default-directory' exists | ||
| 633 | ;; and is readable. | ||
| 634 | (if (and (file-directory-p default-directory) | ||
| 635 | (file-readable-p default-directory)) | ||
| 636 | default-directory | ||
| 637 | (expand-file-name "~/")))) | ||
| 638 | (call-process manual-program nil t nil "--help")) | ||
| 632 | (error nil)) | 639 | (error nil)) |
| 633 | 0) | 640 | 0) |
| 634 | (progn | 641 | (progn |
diff --git a/lisp/menu-bar.el b/lisp/menu-bar.el index 9595fb941f1..023e5286815 100644 --- a/lisp/menu-bar.el +++ b/lisp/menu-bar.el | |||
| @@ -1201,8 +1201,8 @@ mail status in mode line")) | |||
| 1201 | '(menu-item "Compile..." compile | 1201 | '(menu-item "Compile..." compile |
| 1202 | :help "Invoke compiler or Make, view compilation errors")) | 1202 | :help "Invoke compiler or Make, view compilation errors")) |
| 1203 | (define-key menu-bar-tools-menu [grep] | 1203 | (define-key menu-bar-tools-menu [grep] |
| 1204 | '(menu-item "Search Files (with grep)..." grep | 1204 | '(menu-item "Search Files (Grep)..." grep |
| 1205 | :help "Search files for strings or regexps (with grep)")) | 1205 | :help "Search files for strings or regexps (with Grep)")) |
| 1206 | 1206 | ||
| 1207 | 1207 | ||
| 1208 | ;; The "Help" menu items | 1208 | ;; The "Help" menu items |
diff --git a/lisp/mouse.el b/lisp/mouse.el index 8e9d931c15c..94d19d99a21 100644 --- a/lisp/mouse.el +++ b/lisp/mouse.el | |||
| @@ -1521,7 +1521,11 @@ This must be bound to a mouse drag event." | |||
| 1521 | (with-current-buffer (window-buffer (posn-window posn)) | 1521 | (with-current-buffer (window-buffer (posn-window posn)) |
| 1522 | (if (numberp (posn-point posn)) | 1522 | (if (numberp (posn-point posn)) |
| 1523 | (setq beg (posn-point posn))) | 1523 | (setq beg (posn-point posn))) |
| 1524 | (move-overlay mouse-secondary-overlay beg (posn-point end))))) | 1524 | (move-overlay mouse-secondary-overlay beg (posn-point end)) |
| 1525 | (x-set-selection | ||
| 1526 | 'SECONDARY | ||
| 1527 | (buffer-substring (overlay-start mouse-secondary-overlay) | ||
| 1528 | (overlay-end mouse-secondary-overlay)))))) | ||
| 1525 | 1529 | ||
| 1526 | (defun mouse-drag-secondary (start-event) | 1530 | (defun mouse-drag-secondary (start-event) |
| 1527 | "Set the secondary selection to the text that the mouse is dragged over. | 1531 | "Set the secondary selection to the text that the mouse is dragged over. |
diff --git a/lisp/net/tls.el b/lisp/net/tls.el index 9de74ca19d4..cdbb7bef5a7 100644 --- a/lisp/net/tls.el +++ b/lisp/net/tls.el | |||
| @@ -125,12 +125,17 @@ BUFFER is the buffer (or buffer-name) to associate with the process. | |||
| 125 | with any buffer | 125 | with any buffer |
| 126 | Third arg is name of the host to connect to, or its IP address. | 126 | Third arg is name of the host to connect to, or its IP address. |
| 127 | Fourth arg PORT is an integer specifying a port to connect to." | 127 | Fourth arg PORT is an integer specifying a port to connect to." |
| 128 | (let ((cmds tls-program) cmd done) | 128 | (let ((cmds tls-program) |
| 129 | (use-temp-buffer (null buffer)) | ||
| 130 | process cmd done) | ||
| 131 | (if use-temp-buffer | ||
| 132 | (setq buffer (generate-new-buffer " TLS"))) | ||
| 129 | (message "Opening TLS connection to `%s'..." host) | 133 | (message "Opening TLS connection to `%s'..." host) |
| 130 | (while (and (not done) (setq cmd (pop cmds))) | 134 | (while (and (not done) (setq cmd (pop cmds))) |
| 131 | (message "Opening TLS connection with `%s'..." cmd) | 135 | (message "Opening TLS connection with `%s'..." cmd) |
| 132 | (let* ((process-connection-type tls-process-connection-type) | 136 | (let ((process-connection-type tls-process-connection-type) |
| 133 | (process (start-process | 137 | response) |
| 138 | (setq process (start-process | ||
| 134 | name buffer shell-file-name shell-command-switch | 139 | name buffer shell-file-name shell-command-switch |
| 135 | (format-spec | 140 | (format-spec |
| 136 | cmd | 141 | cmd |
| @@ -139,7 +144,6 @@ Fourth arg PORT is an integer specifying a port to connect to." | |||
| 139 | ?p (if (integerp port) | 144 | ?p (if (integerp port) |
| 140 | (int-to-string port) | 145 | (int-to-string port) |
| 141 | port))))) | 146 | port))))) |
| 142 | response) | ||
| 143 | (while (and process | 147 | (while (and process |
| 144 | (memq (process-status process) '(open run)) | 148 | (memq (process-status process) '(open run)) |
| 145 | (save-excursion | 149 | (save-excursion |
| @@ -155,6 +159,9 @@ Fourth arg PORT is an integer specifying a port to connect to." | |||
| 155 | (delete-process process)))) | 159 | (delete-process process)))) |
| 156 | (message "Opening TLS connection to `%s'...%s" | 160 | (message "Opening TLS connection to `%s'...%s" |
| 157 | host (if done "done" "failed")) | 161 | host (if done "done" "failed")) |
| 162 | (when use-temp-buffer | ||
| 163 | (if done (set-process-buffer process nil)) | ||
| 164 | (kill-buffer buffer)) | ||
| 158 | done)) | 165 | done)) |
| 159 | 166 | ||
| 160 | (provide 'tls) | 167 | (provide 'tls) |
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el index 7ff9b2d956b..20ac73d0f75 100644 --- a/lisp/net/tramp.el +++ b/lisp/net/tramp.el | |||
| @@ -4422,10 +4422,20 @@ Falls back to normal file name handler if no tramp file name handler exists." | |||
| 4422 | (tramp-completion-run-real-handler operation args))))) | 4422 | (tramp-completion-run-real-handler operation args))))) |
| 4423 | 4423 | ||
| 4424 | ;;;###autoload | 4424 | ;;;###autoload |
| 4425 | (defsubst tramp-register-file-name-handlers () | 4425 | (defsubst tramp-register-file-name-handler () |
| 4426 | "Add tramp file name handlers to `file-name-handler-alist'." | 4426 | "Add tramp file name handler to `file-name-handler-alist'." |
| 4427 | (add-to-list 'file-name-handler-alist | 4427 | (add-to-list 'file-name-handler-alist |
| 4428 | (cons tramp-file-name-regexp 'tramp-file-name-handler)) | 4428 | (cons tramp-file-name-regexp 'tramp-file-name-handler)) |
| 4429 | ;; If jka-compr is already loaded, move it to the front of | ||
| 4430 | ;; `file-name-handler-alist'. | ||
| 4431 | (let ((jka (rassoc 'jka-compr-handler file-name-handler-alist))) | ||
| 4432 | (when jka | ||
| 4433 | (setq file-name-handler-alist | ||
| 4434 | (cons jka (delete jka file-name-handler-alist)))))) | ||
| 4435 | |||
| 4436 | ;;;###autoload | ||
| 4437 | (defsubst tramp-register-completion-file-name-handler () | ||
| 4438 | "Add tramp completion file name handler to `file-name-handler-alist'." | ||
| 4429 | ;; `partial-completion-mode' is unknown in XEmacs. So we should | 4439 | ;; `partial-completion-mode' is unknown in XEmacs. So we should |
| 4430 | ;; load it unconditionally there. In the GNU Emacs case, method/ | 4440 | ;; load it unconditionally there. In the GNU Emacs case, method/ |
| 4431 | ;; user/host name completion shall be bound to `partial-completion-mode'. | 4441 | ;; user/host name completion shall be bound to `partial-completion-mode'. |
| @@ -4443,13 +4453,18 @@ Falls back to normal file name handler if no tramp file name handler exists." | |||
| 4443 | (setq file-name-handler-alist | 4453 | (setq file-name-handler-alist |
| 4444 | (cons jka (delete jka file-name-handler-alist)))))) | 4454 | (cons jka (delete jka file-name-handler-alist)))))) |
| 4445 | 4455 | ||
| 4456 | ;; `tramp-file-name-handler' must be registered before evaluation of | ||
| 4457 | ;; site-start and init files, because there might exist remote files | ||
| 4458 | ;; already, f.e. files kept via recentf-mode. | ||
| 4459 | ;;;###autoload(tramp-register-file-name-handler) | ||
| 4446 | ;; During autoload, it shall be checked whether | 4460 | ;; During autoload, it shall be checked whether |
| 4447 | ;; `partial-completion-mode' is active. Therefore registering will be | 4461 | ;; `partial-completion-mode' is active. Therefore registering of |
| 4448 | ;; delayed. | 4462 | ;; `tramp-completion-file-name-handler' will be delayed. |
| 4449 | ;;;###autoload(add-hook | 4463 | ;;;###autoload(add-hook |
| 4450 | ;;;###autoload 'after-init-hook | 4464 | ;;;###autoload 'after-init-hook |
| 4451 | ;;;###autoload '(lambda () (tramp-register-file-name-handlers))) | 4465 | ;;;###autoload '(lambda () (tramp-register-completion-file-name-handler))) |
| 4452 | (tramp-register-file-name-handlers) | 4466 | (tramp-register-file-name-handler) |
| 4467 | (tramp-register-completion-file-name-handler) | ||
| 4453 | 4468 | ||
| 4454 | ;;;###autoload | 4469 | ;;;###autoload |
| 4455 | (defun tramp-unload-file-name-handlers () | 4470 | (defun tramp-unload-file-name-handlers () |
diff --git a/lisp/newcomment.el b/lisp/newcomment.el index 7fce0f7bde8..b0a166465fa 100644 --- a/lisp/newcomment.el +++ b/lisp/newcomment.el | |||
| @@ -391,7 +391,9 @@ and raises an error or returns nil if NOERROR is non-nil." | |||
| 391 | pt (or limit (point-max)) nil nil | 391 | pt (or limit (point-max)) nil nil |
| 392 | (list nil nil nil (nth 3 s) nil nil nil nil) | 392 | (list nil nil nil (nth 3 s) nil nil nil nil) |
| 393 | t))) | 393 | t))) |
| 394 | (if (not (and (nth 8 s) (not (nth 3 s)))) | 394 | (if (or (not (and (nth 8 s) (not (nth 3 s)))) |
| 395 | ;; Make sure the comment starts after PT. | ||
| 396 | (< (nth 8 s) pt)) | ||
| 395 | (unless noerror (error "No comment")) | 397 | (unless noerror (error "No comment")) |
| 396 | ;; We found the comment. | 398 | ;; We found the comment. |
| 397 | (let ((pos (point)) | 399 | (let ((pos (point)) |
diff --git a/lisp/outline.el b/lisp/outline.el index 579997754f2..d0c121a12c4 100644 --- a/lisp/outline.el +++ b/lisp/outline.el | |||
| @@ -1000,7 +1000,8 @@ Stop at the first and last subheadings of a superior heading." | |||
| 1000 | (error "No following same-level heading")))))) | 1000 | (error "No following same-level heading")))))) |
| 1001 | 1001 | ||
| 1002 | (defun outline-get-next-sibling () | 1002 | (defun outline-get-next-sibling () |
| 1003 | "Move to next heading of the same level, and return point or nil if none." | 1003 | "Move to next heading of the same level, and return point. |
| 1004 | If there is no such heading, return nil." | ||
| 1004 | (let ((level (funcall outline-level))) | 1005 | (let ((level (funcall outline-level))) |
| 1005 | (outline-next-visible-heading 1) | 1006 | (outline-next-visible-heading 1) |
| 1006 | (while (and (not (eobp)) (> (funcall outline-level) level)) | 1007 | (while (and (not (eobp)) (> (funcall outline-level) level)) |
| @@ -1026,15 +1027,18 @@ Stop at the first and last subheadings of a superior heading." | |||
| 1026 | (error "No previous same-level heading")))))) | 1027 | (error "No previous same-level heading")))))) |
| 1027 | 1028 | ||
| 1028 | (defun outline-get-last-sibling () | 1029 | (defun outline-get-last-sibling () |
| 1029 | "Move to previous heading of the same level, and return point or nil if none." | 1030 | "Move to previous heading of the same level, and return point. |
| 1030 | (let ((level (funcall outline-level))) | 1031 | If there is no such heading, return nil." |
| 1032 | (let ((opoint (point)) | ||
| 1033 | (level (funcall outline-level))) | ||
| 1031 | (outline-previous-visible-heading 1) | 1034 | (outline-previous-visible-heading 1) |
| 1032 | (while (and (> (funcall outline-level) level) | 1035 | (when (and (/= (point) opoint) (outline-on-heading-p)) |
| 1033 | (not (bobp))) | 1036 | (while (and (> (funcall outline-level) level) |
| 1034 | (outline-previous-visible-heading 1)) | 1037 | (not (bobp))) |
| 1035 | (if (< (funcall outline-level) level) | 1038 | (outline-previous-visible-heading 1)) |
| 1036 | nil | 1039 | (if (< (funcall outline-level) level) |
| 1037 | (point)))) | 1040 | nil |
| 1041 | (point))))) | ||
| 1038 | 1042 | ||
| 1039 | (defun outline-headers-as-kill (beg end) | 1043 | (defun outline-headers-as-kill (beg end) |
| 1040 | "Save the visible outline headers in region at the start of the kill ring. | 1044 | "Save the visible outline headers in region at the start of the kill ring. |
diff --git a/lisp/pcomplete.el b/lisp/pcomplete.el index c4840059f64..c1da9fb9132 100644 --- a/lisp/pcomplete.el +++ b/lisp/pcomplete.el | |||
| @@ -33,7 +33,6 @@ | |||
| 33 | ;; To use pcomplete with shell-mode, for example, you will need the | 33 | ;; To use pcomplete with shell-mode, for example, you will need the |
| 34 | ;; following in your .emacs file: | 34 | ;; following in your .emacs file: |
| 35 | ;; | 35 | ;; |
| 36 | ;; (load "pcmpl-auto") | ||
| 37 | ;; (add-hook 'shell-mode-hook 'pcomplete-shell-setup) | 36 | ;; (add-hook 'shell-mode-hook 'pcomplete-shell-setup) |
| 38 | ;; | 37 | ;; |
| 39 | ;; Most of the code below simply provides support mechanisms for | 38 | ;; Most of the code below simply provides support mechanisms for |
| @@ -947,10 +946,9 @@ generate the completions list. This means that the hook | |||
| 947 | (unless (fboundp 'event-matches-key-specifier-p) | 946 | (unless (fboundp 'event-matches-key-specifier-p) |
| 948 | (defalias 'event-matches-key-specifier-p 'eq)) | 947 | (defalias 'event-matches-key-specifier-p 'eq)) |
| 949 | 948 | ||
| 950 | (if (fboundp 'read-event) | 949 | (defun pcomplete-read-event (&optional prompt) |
| 951 | (defsubst pcomplete-read-event (&optional prompt) | 950 | (if (fboundp 'read-event) |
| 952 | (read-event prompt)) | 951 | (read-event prompt) |
| 953 | (defsubst pcomplete-read-event (&optional prompt) | ||
| 954 | (aref (read-key-sequence prompt) 0))) | 952 | (aref (read-key-sequence prompt) 0))) |
| 955 | 953 | ||
| 956 | (unless (fboundp 'event-basic-type) | 954 | (unless (fboundp 'event-basic-type) |
diff --git a/lisp/play/5x5.el b/lisp/play/5x5.el index 5dad84fadc5..5cf0c37fb62 100644 --- a/lisp/play/5x5.el +++ b/lisp/play/5x5.el | |||
| @@ -519,6 +519,8 @@ in progress because it is an animated attempt." | |||
| 519 | (y-or-n-p prompt) | 519 | (y-or-n-p prompt) |
| 520 | t)) | 520 | t)) |
| 521 | 521 | ||
| 522 | (random t) | ||
| 523 | |||
| 522 | (provide '5x5) | 524 | (provide '5x5) |
| 523 | 525 | ||
| 524 | ;;; arch-tag: ec4dabd5-572d-41ea-b48c-ec5ce0d68fa9 | 526 | ;;; arch-tag: ec4dabd5-572d-41ea-b48c-ec5ce0d68fa9 |
diff --git a/lisp/play/animate.el b/lisp/play/animate.el index 9bad228315a..9d180a5f338 100644 --- a/lisp/play/animate.el +++ b/lisp/play/animate.el | |||
| @@ -189,5 +189,9 @@ You can specify the one's name by NAME; the default value is \"Sarah\"." | |||
| 189 | (animate-string "my sunshine" 18 34) | 189 | (animate-string "my sunshine" 18 34) |
| 190 | (animate-string "to stay!" 19 34)) | 190 | (animate-string "to stay!" 19 34)) |
| 191 | 191 | ||
| 192 | (random t) | ||
| 193 | |||
| 194 | (provide 'animate) | ||
| 195 | |||
| 192 | ;;; arch-tag: 275289a3-6ac4-41da-b527-a1147045392f | 196 | ;;; arch-tag: 275289a3-6ac4-41da-b527-a1147045392f |
| 193 | ;;; animate.el ends here | 197 | ;;; animate.el ends here |
diff --git a/lisp/play/dissociate.el b/lisp/play/dissociate.el index 8f88bdb9788..1c0e89e7c7d 100644 --- a/lisp/play/dissociate.el +++ b/lisp/play/dissociate.el | |||
| @@ -99,6 +99,8 @@ Default is 2." | |||
| 99 | (funcall search-function overlap opoint t)))))) | 99 | (funcall search-function overlap opoint t)))))) |
| 100 | (sit-for 0)))) | 100 | (sit-for 0)))) |
| 101 | 101 | ||
| 102 | (random t) | ||
| 103 | |||
| 102 | (provide 'dissociate) | 104 | (provide 'dissociate) |
| 103 | 105 | ||
| 104 | ;;; arch-tag: 90d197d1-409b-45c5-a0b5-fbfb2e06334f | 106 | ;;; arch-tag: 90d197d1-409b-45c5-a0b5-fbfb2e06334f |
diff --git a/lisp/play/doctor.el b/lisp/play/doctor.el index cd88b9cb315..4c3cc5b4ce8 100644 --- a/lisp/play/doctor.el +++ b/lisp/play/doctor.el | |||
| @@ -1657,6 +1657,8 @@ Hack on previous word, setting global variable OWNER to correct result." | |||
| 1657 | 1657 | ||
| 1658 | (defun doctor-chat () (doctor-type (doc$ chatlst))) | 1658 | (defun doctor-chat () (doctor-type (doc$ chatlst))) |
| 1659 | 1659 | ||
| 1660 | (random t) | ||
| 1661 | |||
| 1660 | (provide 'doctor) | 1662 | (provide 'doctor) |
| 1661 | 1663 | ||
| 1662 | ;; arch-tag: 579380f6-4902-4ea5-bccb-6339e30e1257 | 1664 | ;; arch-tag: 579380f6-4902-4ea5-bccb-6339e30e1257 |
diff --git a/lisp/play/gomoku.el b/lisp/play/gomoku.el index c05a46b90f6..8c04f254a0b 100644 --- a/lisp/play/gomoku.el +++ b/lisp/play/gomoku.el | |||
| @@ -1209,6 +1209,8 @@ If the game is finished, this command requests for another game." | |||
| 1209 | (move-to-column (+ gomoku-x-offset | 1209 | (move-to-column (+ gomoku-x-offset |
| 1210 | (* gomoku-square-width (1- gomoku-board-width))))) | 1210 | (* gomoku-square-width (1- gomoku-board-width))))) |
| 1211 | 1211 | ||
| 1212 | (random t) | ||
| 1213 | |||
| 1212 | (provide 'gomoku) | 1214 | (provide 'gomoku) |
| 1213 | 1215 | ||
| 1214 | ;;; arch-tag: b1b8205e-77fc-4597-b373-3ea2c04311eb | 1216 | ;;; arch-tag: b1b8205e-77fc-4597-b373-3ea2c04311eb |
diff --git a/lisp/play/landmark.el b/lisp/play/landmark.el index 4fe126fec0a..e8d0b21f47d 100644 --- a/lisp/play/landmark.el +++ b/lisp/play/landmark.el | |||
| @@ -1705,6 +1705,8 @@ Use \\[describe-mode] for more info." | |||
| 1705 | ;;;allout-layout: (0 : -1 -1 0) | 1705 | ;;;allout-layout: (0 : -1 -1 0) |
| 1706 | ;;;End: | 1706 | ;;;End: |
| 1707 | 1707 | ||
| 1708 | (random t) | ||
| 1709 | |||
| 1708 | (provide 'landmark) | 1710 | (provide 'landmark) |
| 1709 | 1711 | ||
| 1710 | ;;; arch-tag: ae5031be-96e6-459e-a3df-1df53117d3f2 | 1712 | ;;; arch-tag: ae5031be-96e6-459e-a3df-1df53117d3f2 |
diff --git a/lisp/play/tetris.el b/lisp/play/tetris.el index f1901a129dd..11f6364e609 100644 --- a/lisp/play/tetris.el +++ b/lisp/play/tetris.el | |||
| @@ -652,6 +652,8 @@ tetris-mode keybindings: | |||
| 652 | (tetris-mode) | 652 | (tetris-mode) |
| 653 | (tetris-start-game)) | 653 | (tetris-start-game)) |
| 654 | 654 | ||
| 655 | (random t) | ||
| 656 | |||
| 655 | (provide 'tetris) | 657 | (provide 'tetris) |
| 656 | 658 | ||
| 657 | ;;; arch-tag: fb780d53-3ff0-49f0-8e19-f7f13cf2d49e | 659 | ;;; arch-tag: fb780d53-3ff0-49f0-8e19-f7f13cf2d49e |
diff --git a/lisp/play/zone.el b/lisp/play/zone.el index 05f73b8030a..256a316c3cf 100644 --- a/lisp/play/zone.el +++ b/lisp/play/zone.el | |||
| @@ -692,6 +692,7 @@ If nil, `zone-pgm-random-life' chooses a value from 0-3 (inclusive).") | |||
| 692 | (life (or zone-pgm-random-life-wait (random 4))) | 692 | (life (or zone-pgm-random-life-wait (random 4))) |
| 693 | (kill-buffer nil)))) | 693 | (kill-buffer nil)))) |
| 694 | 694 | ||
| 695 | (random t) | ||
| 695 | 696 | ||
| 696 | ;;;;;;;;;;;;;;; | 697 | ;;;;;;;;;;;;;;; |
| 697 | (provide 'zone) | 698 | (provide 'zone) |
diff --git a/lisp/progmodes/cc-awk.el b/lisp/progmodes/cc-awk.el index b0c15bff903..b3e0e381135 100644 --- a/lisp/progmodes/cc-awk.el +++ b/lisp/progmodes/cc-awk.el | |||
| @@ -988,6 +988,7 @@ nor helpful. | |||
| 988 | Note that this function might do hidden buffer changes. See the | 988 | Note that this function might do hidden buffer changes. See the |
| 989 | comment at the start of cc-engine.el for more info." | 989 | comment at the start of cc-engine.el for more info." |
| 990 | (interactive "p") | 990 | (interactive "p") |
| 991 | (or arg (setq arg 1)) | ||
| 991 | (save-match-data | 992 | (save-match-data |
| 992 | (c-save-buffer-state ; ensures the buffer is writable. | 993 | (c-save-buffer-state ; ensures the buffer is writable. |
| 993 | nil | 994 | nil |
diff --git a/lisp/progmodes/cc-cmds.el b/lisp/progmodes/cc-cmds.el index 4f9e1947738..79043c87b63 100644 --- a/lisp/progmodes/cc-cmds.el +++ b/lisp/progmodes/cc-cmds.el | |||
| @@ -1262,11 +1262,11 @@ newline cleanups are done if appropriate; see the variable `c-cleanup-list'." | |||
| 1262 | (backward-char) | 1262 | (backward-char) |
| 1263 | (skip-chars-backward " \t") | 1263 | (skip-chars-backward " \t") |
| 1264 | (setq beg (point)) | 1264 | (setq beg (point)) |
| 1265 | (c-save-buffer-state () (c-on-identifier)) | 1265 | (and (c-save-buffer-state () (c-on-identifier)) |
| 1266 | ;; Don't add a space into #define FOO().... | 1266 | ;; Don't add a space into #define FOO().... |
| 1267 | (not (and (c-beginning-of-macro) | 1267 | (not (and (c-beginning-of-macro) |
| 1268 | (c-forward-over-cpp-define-id) | 1268 | (c-forward-over-cpp-define-id) |
| 1269 | (eq (point) beg))))) | 1269 | (eq (point) beg)))))) |
| 1270 | (save-excursion | 1270 | (save-excursion |
| 1271 | (delete-region beg end) | 1271 | (delete-region beg end) |
| 1272 | (goto-char beg) | 1272 | (goto-char beg) |
| @@ -1477,9 +1477,7 @@ No indentation or other \"electric\" behavior is performed." | |||
| 1477 | (c-syntactic-re-search-forward "{") | 1477 | (c-syntactic-re-search-forward "{") |
| 1478 | (backward-char) | 1478 | (backward-char) |
| 1479 | (setq n (1- n))) | 1479 | (setq n (1- n))) |
| 1480 | (;; (or (eq where 'at-header) (eq where 'outwith-function) | 1480 | ((memq where '(at-header outwith-function at-function-end in-trailer)) |
| 1481 | ;; (eq where 'at-function-end) (eq where 'in-trailer)) | ||
| 1482 | (memq where '(at-header outwith-function at-function-end in-trailer)) | ||
| 1483 | (c-syntactic-skip-backward "^}") | 1481 | (c-syntactic-skip-backward "^}") |
| 1484 | (when (eq (char-before) ?\}) | 1482 | (when (eq (char-before) ?\}) |
| 1485 | (backward-sexp) | 1483 | (backward-sexp) |
| @@ -1513,7 +1511,8 @@ defun." | |||
| 1513 | (or arg (setq arg 1)) | 1511 | (or arg (setq arg 1)) |
| 1514 | 1512 | ||
| 1515 | (c-save-buffer-state | 1513 | (c-save-buffer-state |
| 1516 | ((start (point)) | 1514 | (beginning-of-defun-function end-of-defun-function |
| 1515 | (start (point)) | ||
| 1517 | where paren-state pos) | 1516 | where paren-state pos) |
| 1518 | 1517 | ||
| 1519 | ;; Move back out of any macro/comment/string we happen to be in. | 1518 | ;; Move back out of any macro/comment/string we happen to be in. |
| @@ -1526,8 +1525,7 @@ defun." | |||
| 1526 | (if (< arg 0) | 1525 | (if (< arg 0) |
| 1527 | ;; Move forward to the closing brace of a function. | 1526 | ;; Move forward to the closing brace of a function. |
| 1528 | (progn | 1527 | (progn |
| 1529 | (if ;; (or (eq where 'at-function-end) (eq where 'outwith-function)) | 1528 | (if (memq where '(at-function-end outwith-function)) |
| 1530 | (memq where '(at-function-end outwith-function)) | ||
| 1531 | (setq arg (1+ arg))) | 1529 | (setq arg (1+ arg))) |
| 1532 | (if (< arg 0) | 1530 | (if (< arg 0) |
| 1533 | (setq arg (c-forward-to-nth-EOF-} (- arg) where))) | 1531 | (setq arg (c-forward-to-nth-EOF-} (- arg) where))) |
| @@ -1587,13 +1585,11 @@ defun." | |||
| 1587 | ((eq where 'in-trailer) | 1585 | ((eq where 'in-trailer) |
| 1588 | (c-syntactic-skip-backward "^}") | 1586 | (c-syntactic-skip-backward "^}") |
| 1589 | (setq n (1- n))) | 1587 | (setq n (1- n))) |
| 1590 | (;; (or (eq where 'at-function-end) (eq where 'outwith-function) | 1588 | ((memq where '(at-function-end outwith-function at-header in-header)) |
| 1591 | ;; (eq where 'at-header) (eq where 'in-header)) | 1589 | (when (c-syntactic-re-search-forward "{" nil 'eob) |
| 1592 | (memq where '(at-function-end outwith-function at-header in-header)) | 1590 | (backward-char) |
| 1593 | (c-syntactic-re-search-forward "{") | 1591 | (forward-sexp) |
| 1594 | (backward-char) | 1592 | (setq n (1- n)))) |
| 1595 | (forward-sexp) | ||
| 1596 | (setq n (1- n))) | ||
| 1597 | (t (error "c-forward-to-nth-EOF-}: `where' is %s" where))) | 1593 | (t (error "c-forward-to-nth-EOF-}: `where' is %s" where))) |
| 1598 | 1594 | ||
| 1599 | ;; Each time round the loop, go forward to a "}" at the outermost level. | 1595 | ;; Each time round the loop, go forward to a "}" at the outermost level. |
| @@ -1618,7 +1614,8 @@ the open-parenthesis that starts a defun; see `beginning-of-defun'." | |||
| 1618 | (or arg (setq arg 1)) | 1614 | (or arg (setq arg 1)) |
| 1619 | 1615 | ||
| 1620 | (c-save-buffer-state | 1616 | (c-save-buffer-state |
| 1621 | ((start (point)) | 1617 | (beginning-of-defun-function end-of-defun-function |
| 1618 | (start (point)) | ||
| 1622 | where paren-state pos) | 1619 | where paren-state pos) |
| 1623 | 1620 | ||
| 1624 | ;; Move back out of any macro/comment/string we happen to be in. | 1621 | ;; Move back out of any macro/comment/string we happen to be in. |
| @@ -1631,15 +1628,12 @@ the open-parenthesis that starts a defun; see `beginning-of-defun'." | |||
| 1631 | (if (< arg 0) | 1628 | (if (< arg 0) |
| 1632 | ;; Move backwards to the } of a function | 1629 | ;; Move backwards to the } of a function |
| 1633 | (progn | 1630 | (progn |
| 1634 | (if ;; (or (eq where 'at-header) (eq where 'outwith-function)) | 1631 | (if (memq where '(at-header outwith-function)) |
| 1635 | (memq where '(at-header outwith-function)) | ||
| 1636 | (setq arg (1+ arg))) | 1632 | (setq arg (1+ arg))) |
| 1637 | (if (< arg 0) | 1633 | (if (< arg 0) |
| 1638 | (setq arg (c-backward-to-nth-BOF-{ (- arg) where))) | 1634 | (setq arg (c-backward-to-nth-BOF-{ (- arg) where))) |
| 1639 | (when (and (= arg 0) | 1635 | (if (= arg 0) |
| 1640 | (c-syntactic-skip-backward "^}") | 1636 | (c-syntactic-skip-backward "^}"))) |
| 1641 | (eq (char-before) ?\})) | ||
| 1642 | t)) | ||
| 1643 | 1637 | ||
| 1644 | ;; Move forward to the } of a function | 1638 | ;; Move forward to the } of a function |
| 1645 | (if (> arg 0) | 1639 | (if (> arg 0) |
diff --git a/lisp/progmodes/cc-defs.el b/lisp/progmodes/cc-defs.el index 43fa0ab5937..8c10df649de 100644 --- a/lisp/progmodes/cc-defs.el +++ b/lisp/progmodes/cc-defs.el | |||
| @@ -74,12 +74,12 @@ | |||
| 74 | ; (eval-after-load "font-lock" ; 2006-07-09. font-lock is now preloaded | 74 | ; (eval-after-load "font-lock" ; 2006-07-09. font-lock is now preloaded |
| 75 | ; ' | 75 | ; ' |
| 76 | (if (and (not (featurep 'cc-fix)) ; only load the file once. | 76 | (if (and (not (featurep 'cc-fix)) ; only load the file once. |
| 77 | (featurep 'xemacs) ; There is now (2005/12) code in GNU Emacs CVS | 77 | (featurep 'xemacs) ; There is now (2005/12) code in GNU Emacs CVS |
| 78 | ; to make the call to f-l-c-k throw an error. | 78 | ; to make the call to f-l-c-k throw an error. |
| 79 | (let (font-lock-keywords) | 79 | (let (font-lock-keywords) |
| 80 | (font-lock-compile-keywords '("\\<\\>")) | 80 | (font-lock-compile-keywords '("\\<\\>")) |
| 81 | font-lock-keywords)) ; did the previous call foul this up? | 81 | font-lock-keywords)) ; did the previous call foul this up? |
| 82 | (load "cc-fix")) ;) | 82 | (load "cc-fix")) ;) |
| 83 | 83 | ||
| 84 | ;; The above takes care of the delayed loading, but this is necessary | 84 | ;; The above takes care of the delayed loading, but this is necessary |
| 85 | ;; to ensure correct byte compilation. | 85 | ;; to ensure correct byte compilation. |
| @@ -708,7 +708,8 @@ be after it." | |||
| 708 | ;; c-parse-state to between 3 and 60 times faster when | 708 | ;; c-parse-state to between 3 and 60 times faster when |
| 709 | ;; braces are hung. It can also degrade performance by | 709 | ;; braces are hung. It can also degrade performance by |
| 710 | ;; about as much when braces are not hung. | 710 | ;; about as much when braces are not hung. |
| 711 | '(let (pos) | 711 | '(let (beginning-of-defun-function end-of-defun-function |
| 712 | pos) | ||
| 712 | (while (not pos) | 713 | (while (not pos) |
| 713 | (save-restriction | 714 | (save-restriction |
| 714 | (widen) | 715 | (widen) |
| @@ -731,7 +732,8 @@ be after it." | |||
| 731 | )) | 732 | )) |
| 732 | (goto-char pos))) | 733 | (goto-char pos))) |
| 733 | ;; Emacs, which doesn't have buffer-syntactic-context-depth | 734 | ;; Emacs, which doesn't have buffer-syntactic-context-depth |
| 734 | (beginning-of-defun)) | 735 | (let (beginning-of-defun-function end-of-defun-function) |
| 736 | (beginning-of-defun))) | ||
| 735 | ;; if defun-prompt-regexp is non-nil, b-o-d won't leave us at the | 737 | ;; if defun-prompt-regexp is non-nil, b-o-d won't leave us at the |
| 736 | ;; open brace. | 738 | ;; open brace. |
| 737 | (and defun-prompt-regexp | 739 | (and defun-prompt-regexp |
diff --git a/lisp/progmodes/cc-engine.el b/lisp/progmodes/cc-engine.el index a901ee07454..717016af7ea 100644 --- a/lisp/progmodes/cc-engine.el +++ b/lisp/progmodes/cc-engine.el | |||
| @@ -1917,9 +1917,8 @@ comment at the start of cc-engine.el for more info." | |||
| 1917 | ;; Is the region (beg end) WS, and is there WS (or BOB/EOB) next to the | 1917 | ;; Is the region (beg end) WS, and is there WS (or BOB/EOB) next to the |
| 1918 | ;; region? This is a "heuristic" function. ..... | 1918 | ;; region? This is a "heuristic" function. ..... |
| 1919 | ;; | 1919 | ;; |
| 1920 | ;; The motivation for the second bit is to check whether the removal of this | 1920 | ;; The motivation for the second bit is to check whether removing this |
| 1921 | ;; space is to check whether removing this region would coalesce two | 1921 | ;; region would coalesce two symbols. |
| 1922 | ;; symbols. | ||
| 1923 | ;; | 1922 | ;; |
| 1924 | ;; FIXME!!! This function doesn't check virtual semicolons in any way. Be | 1923 | ;; FIXME!!! This function doesn't check virtual semicolons in any way. Be |
| 1925 | ;; careful about using this function for, e.g. AWK. (2007/3/7) | 1924 | ;; careful about using this function for, e.g. AWK. (2007/3/7) |
| @@ -5372,7 +5371,7 @@ comment at the start of cc-engine.el for more info." | |||
| 5372 | ;; True if there's a prefix match outside the outermost | 5371 | ;; True if there's a prefix match outside the outermost |
| 5373 | ;; paren pair that surrounds the declarator. | 5372 | ;; paren pair that surrounds the declarator. |
| 5374 | got-prefix-before-parens | 5373 | got-prefix-before-parens |
| 5375 | y ;; True if there's a suffix match outside the outermost | 5374 | ;; True if there's a suffix match outside the outermost |
| 5376 | ;; paren pair that surrounds the declarator. The value is | 5375 | ;; paren pair that surrounds the declarator. The value is |
| 5377 | ;; the position of the first suffix match. | 5376 | ;; the position of the first suffix match. |
| 5378 | got-suffix-after-parens | 5377 | got-suffix-after-parens |
| @@ -5878,19 +5877,23 @@ y ;; True if there's a suffix match outside the outermost | |||
| 5878 | 5877 | ||
| 5879 | (defun c-forward-label (&optional assume-markup preceding-token-end limit) | 5878 | (defun c-forward-label (&optional assume-markup preceding-token-end limit) |
| 5880 | ;; Assuming that point is at the beginning of a token, check if it starts a | 5879 | ;; Assuming that point is at the beginning of a token, check if it starts a |
| 5881 | ;; label and if so move over it and return t, otherwise don't move and | 5880 | ;; label and if so move over it and return non-nil (t in default situations, |
| 5882 | ;; return nil. "Label" here means "most things with a colon". | 5881 | ;; specific symbols (see below) for interesting situations), otherwise don't |
| 5882 | ;; move and return nil. "Label" here means "most things with a colon". | ||
| 5883 | ;; | 5883 | ;; |
| 5884 | ;; More precisely, a "label" is regarded as one of: | 5884 | ;; More precisely, a "label" is regarded as one of: |
| 5885 | ;; (i) a goto target like "foo:"; | 5885 | ;; (i) a goto target like "foo:" - returns the symbol `goto-target'; |
| 5886 | ;; (ii) A case label - either the entire construct "case FOO:" or just the | 5886 | ;; (ii) A case label - either the entire construct "case FOO:", or just the |
| 5887 | ;; bare "case", should the colon be missing; | 5887 | ;; bare "case", should the colon be missing. We return t; |
| 5888 | ;; (iii) a keyword which needs a colon, like "default:" or "private:"; | 5888 | ;; (iii) a keyword which needs a colon, like "default:" or "private:"; We |
| 5889 | ;; return t; | ||
| 5889 | ;; (iv) One of QT's "extended" C++ variants of | 5890 | ;; (iv) One of QT's "extended" C++ variants of |
| 5890 | ;; "private:"/"protected:"/"public:"/"more:" looking like "public slots:". | 5891 | ;; "private:"/"protected:"/"public:"/"more:" looking like "public slots:". |
| 5892 | ;; Returns the symbol `qt-2kwds-colon'. | ||
| 5893 | ;; (v) QT's construct "signals:". Returns the symbol `qt-1kwd-colon'. | ||
| 5891 | ;; (v) One of the keywords matched by `c-opt-extra-label-key' (without any | 5894 | ;; (v) One of the keywords matched by `c-opt-extra-label-key' (without any |
| 5892 | ;; colon). Currently (2006-03), this applies only to Objective C's | 5895 | ;; colon). Currently (2006-03), this applies only to Objective C's |
| 5893 | ;; keywords "@private", "@protected", and "@public". | 5896 | ;; keywords "@private", "@protected", and "@public". Returns t. |
| 5894 | ;; | 5897 | ;; |
| 5895 | ;; One of the things which will NOT be recognised as a label is a bit-field | 5898 | ;; One of the things which will NOT be recognised as a label is a bit-field |
| 5896 | ;; element of a struct, something like "int foo:5". | 5899 | ;; element of a struct, something like "int foo:5". |
| @@ -5919,8 +5922,10 @@ y ;; True if there's a suffix match outside the outermost | |||
| 5919 | ;; This function might do hidden buffer changes. | 5922 | ;; This function might do hidden buffer changes. |
| 5920 | 5923 | ||
| 5921 | (let ((start (point)) | 5924 | (let ((start (point)) |
| 5925 | label-end | ||
| 5922 | qt-symbol-idx | 5926 | qt-symbol-idx |
| 5923 | macro-start) ; if we're in one. | 5927 | macro-start ; if we're in one. |
| 5928 | label-type) | ||
| 5924 | (cond | 5929 | (cond |
| 5925 | ;; "case" or "default" (Doesn't apply to AWK). | 5930 | ;; "case" or "default" (Doesn't apply to AWK). |
| 5926 | ((looking-at c-label-kwds-regexp) | 5931 | ((looking-at c-label-kwds-regexp) |
| @@ -5933,25 +5938,26 @@ y ;; True if there's a suffix match outside the outermost | |||
| 5933 | 5938 | ||
| 5934 | ;; Find the label end. | 5939 | ;; Find the label end. |
| 5935 | (goto-char kwd-end) | 5940 | (goto-char kwd-end) |
| 5936 | (if (and (c-syntactic-re-search-forward | 5941 | (setq label-type |
| 5937 | ;; Stop on chars that aren't allowed in expressions, | 5942 | (if (and (c-syntactic-re-search-forward |
| 5938 | ;; and on operator chars that would be meaningless | 5943 | ;; Stop on chars that aren't allowed in expressions, |
| 5939 | ;; there. FIXME: This doesn't cope with ?: operators. | 5944 | ;; and on operator chars that would be meaningless |
| 5940 | "[;{=,@]\\|\\(\\=\\|[^:]\\):\\([^:]\\|\\'\\)" | 5945 | ;; there. FIXME: This doesn't cope with ?: operators. |
| 5941 | limit t t nil 1) | 5946 | "[;{=,@]\\|\\(\\=\\|[^:]\\):\\([^:]\\|\\'\\)" |
| 5942 | (match-beginning 2)) | 5947 | limit t t nil 1) |
| 5943 | 5948 | (match-beginning 2)) | |
| 5944 | (progn | 5949 | |
| 5945 | (goto-char (match-beginning 2)) ; just after the : | 5950 | (progn ; there's a proper : |
| 5946 | (c-put-c-type-property (1- (point)) 'c-decl-end) | 5951 | (goto-char (match-beginning 2)) ; just after the : |
| 5947 | t) | 5952 | (c-put-c-type-property (1- (point)) 'c-decl-end) |
| 5948 | 5953 | t) | |
| 5949 | ;; It's an unfinished label. We consider the keyword enough | 5954 | |
| 5950 | ;; to recognize it as a label, so that it gets fontified. | 5955 | ;; It's an unfinished label. We consider the keyword enough |
| 5951 | ;; Leave the point at the end of it, but don't put any | 5956 | ;; to recognize it as a label, so that it gets fontified. |
| 5952 | ;; `c-decl-end' marker. | 5957 | ;; Leave the point at the end of it, but don't put any |
| 5953 | (goto-char kwd-end) | 5958 | ;; `c-decl-end' marker. |
| 5954 | t))) | 5959 | (goto-char kwd-end) |
| 5960 | t)))) | ||
| 5955 | 5961 | ||
| 5956 | ;; @private, @protected, @public, in Objective C, or similar. | 5962 | ;; @private, @protected, @public, in Objective C, or similar. |
| 5957 | ((and c-opt-extra-label-key | 5963 | ((and c-opt-extra-label-key |
| @@ -5963,7 +5969,7 @@ y ;; True if there's a suffix match outside the outermost | |||
| 5963 | (when c-record-type-identifiers | 5969 | (when c-record-type-identifiers |
| 5964 | (c-record-ref-id (cons (match-beginning 1) (point)))) | 5970 | (c-record-ref-id (cons (match-beginning 1) (point)))) |
| 5965 | (c-put-c-type-property (1- (point)) 'c-decl-end) | 5971 | (c-put-c-type-property (1- (point)) 'c-decl-end) |
| 5966 | t) | 5972 | (setq label-type t)) |
| 5967 | 5973 | ||
| 5968 | ;; All other cases of labels. | 5974 | ;; All other cases of labels. |
| 5969 | ((and c-recognize-colon-labels ; nil for AWK and IDL, otherwise t. | 5975 | ((and c-recognize-colon-labels ; nil for AWK and IDL, otherwise t. |
| @@ -6039,26 +6045,49 @@ y ;; True if there's a suffix match outside the outermost | |||
| 6039 | (c-forward-syntactic-ws) | 6045 | (c-forward-syntactic-ws) |
| 6040 | (c-forward-label nil pte start)))))))))) | 6046 | (c-forward-label nil pte start)))))))))) |
| 6041 | 6047 | ||
| 6048 | ;; Point is still at the beginning of the possible label construct. | ||
| 6049 | ;; | ||
| 6042 | ;; Check that the next nonsymbol token is ":", or that we're in one | 6050 | ;; Check that the next nonsymbol token is ":", or that we're in one |
| 6043 | ;; of QT's "slots" declarations. Allow '(' for the sake of macro | 6051 | ;; of QT's "slots" declarations. Allow '(' for the sake of macro |
| 6044 | ;; arguments. FIXME: Should build this regexp from the language | 6052 | ;; arguments. FIXME: Should build this regexp from the language |
| 6045 | ;; constants. | 6053 | ;; constants. |
| 6046 | (when (c-syntactic-re-search-forward | 6054 | (cond |
| 6047 | "[ \t[:?;{=*/%&|,<>!@+-]" limit t t) ; not at EOB | 6055 | ;; public: protected: private: |
| 6048 | (backward-char) | 6056 | ((and |
| 6049 | (setq qt-symbol-idx | 6057 | (c-major-mode-is 'c++-mode) |
| 6050 | (and (c-major-mode-is 'c++-mode) | 6058 | (search-forward-regexp |
| 6051 | (string-match | 6059 | "\\=p\\(r\\(ivate\\|otected\\)\\|ublic\\)\\>[^_]" nil t) |
| 6052 | "\\(p\\(r\\(ivate\\|otected\\)\\|ublic\\)\\|more\\)\\>" | 6060 | (progn (backward-char) |
| 6053 | (buffer-substring start (point))))) | 6061 | (c-forward-syntactic-ws limit) |
| 6054 | (c-forward-syntactic-ws limit) | 6062 | (looking-at ":\\([^:]\\|\\'\\)"))) ; A single colon. |
| 6055 | (when (or (looking-at ":\\([^:]\\|\\'\\)") ; A single colon. | 6063 | (forward-char) |
| 6056 | (and qt-symbol-idx | 6064 | (setq label-type t)) |
| 6057 | (search-forward-regexp "\\=slots\\>" limit t) | 6065 | ;; QT double keyword like "protected slots:" or goto target. |
| 6058 | (progn (c-forward-syntactic-ws limit) | 6066 | ((progn (goto-char start) nil)) |
| 6059 | (looking-at ":\\([^:]\\|\\'\\)")))) ; A single colon | 6067 | ((when (c-syntactic-re-search-forward |
| 6060 | (forward-char) ; to after the colon. | 6068 | "[ \t\n[:?;{=*/%&|,<>!@+-]" limit t t) ; not at EOB |
| 6061 | t))) | 6069 | (backward-char) |
| 6070 | (setq label-end (point)) | ||
| 6071 | (setq qt-symbol-idx | ||
| 6072 | (and (c-major-mode-is 'c++-mode) | ||
| 6073 | (string-match | ||
| 6074 | "\\(p\\(r\\(ivate\\|otected\\)\\|ublic\\)\\|more\\)\\>" | ||
| 6075 | (buffer-substring start (point))))) | ||
| 6076 | (c-forward-syntactic-ws limit) | ||
| 6077 | (cond | ||
| 6078 | ((looking-at ":\\([^:]\\|\\'\\)") ; A single colon. | ||
| 6079 | (forward-char) | ||
| 6080 | (setq label-type | ||
| 6081 | (if (string= "signals" ; Special QT macro | ||
| 6082 | (buffer-substring-no-properties start label-end)) | ||
| 6083 | 'qt-1kwd-colon | ||
| 6084 | 'goto-target))) | ||
| 6085 | ((and qt-symbol-idx | ||
| 6086 | (search-forward-regexp "\\=slots\\>" limit t) | ||
| 6087 | (progn (c-forward-syntactic-ws limit) | ||
| 6088 | (looking-at ":\\([^:]\\|\\'\\)"))) ; A single colon | ||
| 6089 | (forward-char) | ||
| 6090 | (setq label-type 'qt-2kwds-colon))))))) | ||
| 6062 | 6091 | ||
| 6063 | (save-restriction | 6092 | (save-restriction |
| 6064 | (narrow-to-region start (point)) | 6093 | (narrow-to-region start (point)) |
| @@ -6069,6 +6098,7 @@ y ;; True if there's a suffix match outside the outermost | |||
| 6069 | (while (progn | 6098 | (while (progn |
| 6070 | (when (looking-at c-nonlabel-token-key) | 6099 | (when (looking-at c-nonlabel-token-key) |
| 6071 | (goto-char start) | 6100 | (goto-char start) |
| 6101 | (setq label-type nil) | ||
| 6072 | (throw 'check-label nil)) | 6102 | (throw 'check-label nil)) |
| 6073 | (and (c-safe (c-forward-sexp) | 6103 | (and (c-safe (c-forward-sexp) |
| 6074 | (c-forward-syntactic-ws) | 6104 | (c-forward-syntactic-ws) |
| @@ -6088,12 +6118,12 @@ y ;; True if there's a suffix match outside the outermost | |||
| 6088 | 6118 | ||
| 6089 | (c-put-c-type-property (1- (point-max)) 'c-decl-end) | 6119 | (c-put-c-type-property (1- (point-max)) 'c-decl-end) |
| 6090 | (goto-char (point-max)) | 6120 | (goto-char (point-max)) |
| 6091 | t))) | 6121 | ))) |
| 6092 | 6122 | ||
| 6093 | (t | 6123 | (t |
| 6094 | ;; Not a label. | 6124 | ;; Not a label. |
| 6095 | (goto-char start) | 6125 | (goto-char start))) |
| 6096 | nil)))) | 6126 | label-type)) |
| 6097 | 6127 | ||
| 6098 | (defun c-forward-objc-directive () | 6128 | (defun c-forward-objc-directive () |
| 6099 | ;; Assuming the point is at the beginning of a token, try to move | 6129 | ;; Assuming the point is at the beginning of a token, try to move |
diff --git a/lisp/progmodes/cc-fonts.el b/lisp/progmodes/cc-fonts.el index a880ae9a1fe..0df09eda481 100644 --- a/lisp/progmodes/cc-fonts.el +++ b/lisp/progmodes/cc-fonts.el | |||
| @@ -704,8 +704,13 @@ casts and declarations are fontified. Used on level 2 and higher." | |||
| 704 | )) | 704 | )) |
| 705 | 705 | ||
| 706 | (defun c-font-lock-complex-decl-prepare (limit) | 706 | (defun c-font-lock-complex-decl-prepare (limit) |
| 707 | ;; This function will be called from font-lock for a region bounded by POINT | ||
| 708 | ;; and LIMIT, as though it were to identify a keyword for | ||
| 709 | ;; font-lock-keyword-face. It always returns NIL to inhibit this and | ||
| 710 | ;; prevent a repeat invocation. See elisp/lispref page "Search-based | ||
| 711 | ;; Fontification". | ||
| 712 | ;; | ||
| 707 | ;; Called before any of the matchers in `c-complex-decl-matchers'. | 713 | ;; Called before any of the matchers in `c-complex-decl-matchers'. |
| 708 | ;; Nil is always returned. | ||
| 709 | ;; | 714 | ;; |
| 710 | ;; This function does hidden buffer changes. | 715 | ;; This function does hidden buffer changes. |
| 711 | 716 | ||
| @@ -742,10 +747,15 @@ casts and declarations are fontified. Used on level 2 and higher." | |||
| 742 | nil) | 747 | nil) |
| 743 | 748 | ||
| 744 | (defun c-font-lock-<>-arglists (limit) | 749 | (defun c-font-lock-<>-arglists (limit) |
| 750 | ;; This function will be called from font-lock for a region bounded by POINT | ||
| 751 | ;; and LIMIT, as though it were to identify a keyword for | ||
| 752 | ;; font-lock-keyword-face. It always returns NIL to inhibit this and | ||
| 753 | ;; prevent a repeat invocation. See elisp/lispref page "Search-based | ||
| 754 | ;; Fontification". | ||
| 755 | ;; | ||
| 745 | ;; Fontify types and references in names containing angle bracket | 756 | ;; Fontify types and references in names containing angle bracket |
| 746 | ;; arglists from the point to LIMIT. Note that | 757 | ;; arglists from the point to LIMIT. Note that |
| 747 | ;; `c-font-lock-declarations' already has handled many of them. Nil | 758 | ;; `c-font-lock-declarations' already has handled many of them. |
| 748 | ;; is always returned. | ||
| 749 | ;; | 759 | ;; |
| 750 | ;; This function might do hidden buffer changes. | 760 | ;; This function might do hidden buffer changes. |
| 751 | 761 | ||
| @@ -971,9 +981,14 @@ casts and declarations are fontified. Used on level 2 and higher." | |||
| 971 | font-lock-keyword-face)) | 981 | font-lock-keyword-face)) |
| 972 | 982 | ||
| 973 | (defun c-font-lock-declarations (limit) | 983 | (defun c-font-lock-declarations (limit) |
| 984 | ;; This function will be called from font-lock for a region bounded by POINT | ||
| 985 | ;; and LIMIT, as though it were to identify a keyword for | ||
| 986 | ;; font-lock-keyword-face. It always returns NIL to inhibit this and | ||
| 987 | ;; prevent a repeat invocation. See elisp/lispref page "Search-based | ||
| 988 | ;; Fontification". | ||
| 989 | ;; | ||
| 974 | ;; Fontify all the declarations, casts and labels from the point to LIMIT. | 990 | ;; Fontify all the declarations, casts and labels from the point to LIMIT. |
| 975 | ;; Assumes that strings and comments have been fontified already. Nil is | 991 | ;; Assumes that strings and comments have been fontified already. |
| 976 | ;; always returned. | ||
| 977 | ;; | 992 | ;; |
| 978 | ;; This function might do hidden buffer changes. | 993 | ;; This function might do hidden buffer changes. |
| 979 | 994 | ||
| @@ -1009,6 +1024,7 @@ casts and declarations are fontified. Used on level 2 and higher." | |||
| 1009 | ;; `c-forward-decl-or-cast-1' and `c-forward-label' for | 1024 | ;; `c-forward-decl-or-cast-1' and `c-forward-label' for |
| 1010 | ;; later fontification. | 1025 | ;; later fontification. |
| 1011 | (c-record-type-identifiers t) | 1026 | (c-record-type-identifiers t) |
| 1027 | label-type | ||
| 1012 | c-record-ref-identifiers | 1028 | c-record-ref-identifiers |
| 1013 | ;; Make `c-forward-type' calls mark up template arglists if | 1029 | ;; Make `c-forward-type' calls mark up template arglists if |
| 1014 | ;; it finds any. That's necessary so that we later will | 1030 | ;; it finds any. That's necessary so that we later will |
| @@ -1174,39 +1190,31 @@ casts and declarations are fontified. Used on level 2 and higher." | |||
| 1174 | (c-fontify-recorded-types-and-refs) | 1190 | (c-fontify-recorded-types-and-refs) |
| 1175 | nil)) | 1191 | nil)) |
| 1176 | 1192 | ||
| 1177 | ;; It was a false alarm. | 1193 | ;; It was a false alarm. Check if we're in a label (or other |
| 1194 | ;; construct with `:' except bitfield) instead. | ||
| 1178 | (goto-char start-pos) | 1195 | (goto-char start-pos) |
| 1179 | ;; The below code attempts to fontify the case constants in | 1196 | (when (setq label-type (c-forward-label t match-pos nil)) |
| 1180 | ;; c-label-face-name, but it cannot catch every case [sic]. | 1197 | ;; Can't use `c-fontify-types-and-refs' here since we |
| 1181 | ;; And do we want to fontify case constants anyway? | 1198 | ;; use the label face at times. |
| 1182 | (c-forward-label t match-pos nil) | 1199 | (cond ((eq label-type 'goto-target) |
| 1183 | ;;; (when (c-forward-label t match-pos nil) | 1200 | (c-put-font-lock-face (caar c-record-ref-identifiers) |
| 1184 | ;;; ;; Can't use `c-fontify-types-and-refs' here since we | 1201 | (cdar c-record-ref-identifiers) |
| 1185 | ;;; ;; should use the label face. | 1202 | c-label-face-name)) |
| 1186 | ;;; (save-excursion | 1203 | ((eq label-type 'qt-1kwd-colon) |
| 1187 | ;;; (while c-record-ref-identifiers | 1204 | (c-put-font-lock-face (caar c-record-ref-identifiers) |
| 1188 | ;;; (let ((elem (car c-record-ref-identifiers)) | 1205 | (cdar c-record-ref-identifiers) |
| 1189 | ;;; c-record-type-identifiers) | 1206 | 'font-lock-keyword-face)) |
| 1190 | ;;; (goto-char (cdr elem)) | 1207 | ((eq label-type 'qt-2kwds-colon) |
| 1191 | ;;; ;; Find the end of any label. | 1208 | (mapc |
| 1192 | ;;; (while (and (re-search-forward "\\sw\\|:" nil t) | 1209 | (lambda (kwd) |
| 1193 | ;;; (progn (backward-char 1) t) | 1210 | (c-put-font-lock-face (car kwd) (cdr kwd) |
| 1194 | ;;; (or (re-search-forward | 1211 | 'font-lock-keyword-face)) |
| 1195 | ;;; "\\=0[Xx][0-9A-Fa-f]+\\|\\([0-9]+\\)" nil t) | 1212 | c-record-ref-identifiers))) |
| 1196 | ;;; (c-forward-name))) | 1213 | (setq c-record-ref-identifiers nil) |
| 1197 | ;;; (c-backward-syntactic-ws) | 1214 | ;; `c-forward-label' has probably added a `c-decl-end' |
| 1198 | ;;; (let ((end (point))) | 1215 | ;; marker, so return t to `c-find-decl-spots' to signal |
| 1199 | ;;; ;; Now find the start of the bit we regard as the label. | 1216 | ;; that. |
| 1200 | ;;; (when (and (c-simple-skip-symbol-backward) | 1217 | t)))) |
| 1201 | ;;; (not (c-get-char-property (point) 'face))) | ||
| 1202 | ;;; (c-put-font-lock-face (point) end c-label-face-name)) | ||
| 1203 | ;;; (goto-char end)))) | ||
| 1204 | ;;; (setq c-record-ref-identifiers (cdr c-record-ref-identifiers)))) | ||
| 1205 | ;;; ;; `c-forward-label' probably has added a `c-decl-end' | ||
| 1206 | ;;; ;; marker, so return t to `c-find-decl-spots' to signal | ||
| 1207 | ;;; ;; that. | ||
| 1208 | ;;; t) | ||
| 1209 | ))) | ||
| 1210 | 1218 | ||
| 1211 | nil))) | 1219 | nil))) |
| 1212 | 1220 | ||
| @@ -1285,6 +1293,14 @@ on level 2 only and so aren't combined with `c-complex-decl-matchers'." | |||
| 1285 | "Complex font lock matchers for types and declarations. Used on level | 1293 | "Complex font lock matchers for types and declarations. Used on level |
| 1286 | 3 and higher." | 1294 | 3 and higher." |
| 1287 | 1295 | ||
| 1296 | ;; Note: This code in this form dumps a number of funtions into the | ||
| 1297 | ;; resulting constant, `c-matchers-3'. At run time, font lock will call | ||
| 1298 | ;; each of them as a "FUNCTION" (see Elisp page "Search-based | ||
| 1299 | ;; Fontification"). The font lock region is delimited by POINT and the | ||
| 1300 | ;; single parameter, LIMIT. Each of these functions returns NIL (thus | ||
| 1301 | ;; inhibiting spurious font-lock-keyword-face highlighting and another | ||
| 1302 | ;; call). | ||
| 1303 | |||
| 1288 | t `(;; Initialize some things before the search functions below. | 1304 | t `(;; Initialize some things before the search functions below. |
| 1289 | c-font-lock-complex-decl-prepare | 1305 | c-font-lock-complex-decl-prepare |
| 1290 | 1306 | ||
| @@ -1397,6 +1413,8 @@ on level 2 only and so aren't combined with `c-complex-decl-matchers'." | |||
| 1397 | 1413 | ||
| 1398 | ;; Fontify the type in C++ "new" expressions. | 1414 | ;; Fontify the type in C++ "new" expressions. |
| 1399 | ,@(when (c-major-mode-is 'c++-mode) | 1415 | ,@(when (c-major-mode-is 'c++-mode) |
| 1416 | ;; This pattern is a probably a "(MATCHER . ANCHORED-HIGHLIGHTER)" | ||
| 1417 | ;; (see Elisp page "Search-based Fontification"). | ||
| 1400 | `(("\\<new\\>" | 1418 | `(("\\<new\\>" |
| 1401 | (c-font-lock-c++-new)))) | 1419 | (c-font-lock-c++-new)))) |
| 1402 | )) | 1420 | )) |
diff --git a/lisp/progmodes/cc-langs.el b/lisp/progmodes/cc-langs.el index fe01ab02ae3..906cbfb19a7 100644 --- a/lisp/progmodes/cc-langs.el +++ b/lisp/progmodes/cc-langs.el | |||
| @@ -221,11 +221,6 @@ the evaluated constant value at compile time." | |||
| 221 | ;; with the group symbol for each group and should return non-nil | 221 | ;; with the group symbol for each group and should return non-nil |
| 222 | ;; if that group is to be included. | 222 | ;; if that group is to be included. |
| 223 | ;; | 223 | ;; |
| 224 | ;; OP-FILTER filters the individual operators in each group. It | ||
| 225 | ;; can be t to choose all operators, a regexp to test against each | ||
| 226 | ;; operator, or a function which will be called for each operator | ||
| 227 | ;; and should return non-nil for those to include. | ||
| 228 | ;; | ||
| 229 | ;; If XLATE is given, it's a function which is called for each | 224 | ;; If XLATE is given, it's a function which is called for each |
| 230 | ;; matching operator and its return value is collected instead. | 225 | ;; matching operator and its return value is collected instead. |
| 231 | ;; If it returns a list, the elements are spliced directly into | 226 | ;; If it returns a list, the elements are spliced directly into |
| @@ -1376,6 +1371,26 @@ EOL terminated statements." | |||
| 1376 | (c-lang-const c-vsemi-status-unknown-p-fn)) | 1371 | (c-lang-const c-vsemi-status-unknown-p-fn)) |
| 1377 | 1372 | ||
| 1378 | 1373 | ||
| 1374 | ;;; Defun functions | ||
| 1375 | |||
| 1376 | ;; The Emacs variables beginning-of-defun-function and | ||
| 1377 | ;; end-of-defun-function will be set so that commands like | ||
| 1378 | ;; `mark-defun' and `narrow-to-defun' work right. The key sequences | ||
| 1379 | ;; C-M-a and C-M-e are, however, bound directly to the CC Mode | ||
| 1380 | ;; functions, allowing optimisation for large n. | ||
| 1381 | (c-lang-defconst beginning-of-defun-function | ||
| 1382 | "Function to which beginning-of-defun-function will be set." | ||
| 1383 | t 'c-beginning-of-defun | ||
| 1384 | awk 'c-awk-beginning-of-defun) | ||
| 1385 | (c-lang-setvar beginning-of-defun-function | ||
| 1386 | (c-lang-const beginning-of-defun-function)) | ||
| 1387 | |||
| 1388 | (c-lang-defconst end-of-defun-function | ||
| 1389 | "Function to which end-of-defun-function will be set." | ||
| 1390 | t 'c-end-of-defun | ||
| 1391 | awk 'c-awk-end-of-defun) | ||
| 1392 | (c-lang-setvar end-of-defun-function (c-lang-const end-of-defun-function)) | ||
| 1393 | |||
| 1379 | ;;; In-comment text handling. | 1394 | ;;; In-comment text handling. |
| 1380 | 1395 | ||
| 1381 | (c-lang-defconst c-paragraph-start | 1396 | (c-lang-defconst c-paragraph-start |
diff --git a/lisp/progmodes/cc-mode.el b/lisp/progmodes/cc-mode.el index 1407b497305..f5da0eecc2e 100644 --- a/lisp/progmodes/cc-mode.el +++ b/lisp/progmodes/cc-mode.el | |||
| @@ -158,8 +158,8 @@ | |||
| 158 | ;; These are typically standard emacs variables such as `comment-start'. | 158 | ;; These are typically standard emacs variables such as `comment-start'. |
| 159 | (defmacro c-make-emacs-variables-local () | 159 | (defmacro c-make-emacs-variables-local () |
| 160 | `(progn | 160 | `(progn |
| 161 | ,@(mapcan (lambda (init) | 161 | ,@(mapcar (lambda (init) |
| 162 | `((make-local-variable ',(car init)))) | 162 | `(make-local-variable ',(car init))) |
| 163 | (cdr c-emacs-variable-inits)))) | 163 | (cdr c-emacs-variable-inits)))) |
| 164 | 164 | ||
| 165 | (defun c-init-language-vars-for (mode) | 165 | (defun c-init-language-vars-for (mode) |
| @@ -509,9 +509,9 @@ preferably use the `c-mode-menu' language constant directly." | |||
| 509 | type type-pos | 509 | type type-pos |
| 510 | marked-id term-pos | 510 | marked-id term-pos |
| 511 | (end1 | 511 | (end1 |
| 512 | (if (eq (get-text-property end 'face) 'font-lock-comment-face) | 512 | (or (and (eq (get-text-property end 'face) 'font-lock-comment-face) |
| 513 | (previous-single-property-change end 'face) | 513 | (previous-single-property-change end 'face)) |
| 514 | end))) | 514 | end))) |
| 515 | (when (>= end1 beg) ; Don't hassle about changes entirely in comments. | 515 | (when (>= end1 beg) ; Don't hassle about changes entirely in comments. |
| 516 | ;; Find a limit for the search for a `c-type' property | 516 | ;; Find a limit for the search for a `c-type' property |
| 517 | (while | 517 | (while |
diff --git a/lisp/progmodes/cc-subword.el b/lisp/progmodes/cc-subword.el index 29494fdc6a7..a6a365d316b 100644 --- a/lisp/progmodes/cc-subword.el +++ b/lisp/progmodes/cc-subword.el | |||
| @@ -218,38 +218,52 @@ Optional argument ARG is the same as for `transpose-words'." | |||
| 218 | (interactive "*p") | 218 | (interactive "*p") |
| 219 | (transpose-subr 'c-forward-subword arg)) | 219 | (transpose-subr 'c-forward-subword arg)) |
| 220 | 220 | ||
| 221 | (defun c-capitalize-subword (arg) | 221 | |
| 222 | "Do the same as `capitalize-word' but on subwords. | ||
| 223 | See the command `c-subword-mode' for a description of subwords. | ||
| 224 | Optional argument ARG is the same as for `capitalize-word'." | ||
| 225 | (interactive "p") | ||
| 226 | (let ((count (abs arg)) | ||
| 227 | (direction (if (< 0 arg) 1 -1))) | ||
| 228 | (dotimes (i count) | ||
| 229 | (when (re-search-forward | ||
| 230 | (concat "[" c-alpha "]") | ||
| 231 | nil t) | ||
| 232 | (goto-char (match-beginning 0))) | ||
| 233 | (let* ((p (point)) | ||
| 234 | (pp (1+ p)) | ||
| 235 | (np (c-forward-subword direction))) | ||
| 236 | (upcase-region p pp) | ||
| 237 | (downcase-region pp np) | ||
| 238 | (goto-char np))))) | ||
| 239 | 222 | ||
| 240 | (defun c-downcase-subword (arg) | 223 | (defun c-downcase-subword (arg) |
| 241 | "Do the same as `downcase-word' but on subwords. | 224 | "Do the same as `downcase-word' but on subwords. |
| 242 | See the command `c-subword-mode' for a description of subwords. | 225 | See the command `c-subword-mode' for a description of subwords. |
| 243 | Optional argument ARG is the same as for `downcase-word'." | 226 | Optional argument ARG is the same as for `downcase-word'." |
| 244 | (interactive "p") | 227 | (interactive "p") |
| 245 | (downcase-region (point) (c-forward-subword arg))) | 228 | (let ((start (point))) |
| 229 | (downcase-region (point) (c-forward-subword arg)) | ||
| 230 | (when (< arg 0) | ||
| 231 | (goto-char start)))) | ||
| 246 | 232 | ||
| 247 | (defun c-upcase-subword (arg) | 233 | (defun c-upcase-subword (arg) |
| 248 | "Do the same as `upcase-word' but on subwords. | 234 | "Do the same as `upcase-word' but on subwords. |
| 249 | See the command `c-subword-mode' for a description of subwords. | 235 | See the command `c-subword-mode' for a description of subwords. |
| 250 | Optional argument ARG is the same as for `upcase-word'." | 236 | Optional argument ARG is the same as for `upcase-word'." |
| 251 | (interactive "p") | 237 | (interactive "p") |
| 252 | (upcase-region (point) (c-forward-subword arg))) | 238 | (let ((start (point))) |
| 239 | (upcase-region (point) (c-forward-subword arg)) | ||
| 240 | (when (< arg 0) | ||
| 241 | (goto-char start)))) | ||
| 242 | |||
| 243 | (defun c-capitalize-subword (arg) | ||
| 244 | "Do the same as `capitalize-word' but on subwords. | ||
| 245 | See the command `c-subword-mode' for a description of subwords. | ||
| 246 | Optional argument ARG is the same as for `capitalize-word'." | ||
| 247 | (interactive "p") | ||
| 248 | (let ((count (abs arg)) | ||
| 249 | (start (point)) | ||
| 250 | (advance (if (< arg 0) nil t))) | ||
| 251 | (dotimes (i count) | ||
| 252 | (if advance | ||
| 253 | (progn (re-search-forward | ||
| 254 | (concat "[" c-alpha "]") | ||
| 255 | nil t) | ||
| 256 | (goto-char (match-beginning 0))) | ||
| 257 | (c-backward-subword)) | ||
| 258 | (let* ((p (point)) | ||
| 259 | (pp (1+ p)) | ||
| 260 | (np (c-forward-subword))) | ||
| 261 | (upcase-region p pp) | ||
| 262 | (downcase-region pp np) | ||
| 263 | (goto-char (if advance np p)))) | ||
| 264 | (unless advance | ||
| 265 | (goto-char start)))) | ||
| 266 | |||
| 253 | 267 | ||
| 254 | 268 | ||
| 255 | ;; | 269 | ;; |
diff --git a/lisp/progmodes/cc-vars.el b/lisp/progmodes/cc-vars.el index cbf2b44de23..8d28cba79ad 100644 --- a/lisp/progmodes/cc-vars.el +++ b/lisp/progmodes/cc-vars.el | |||
| @@ -890,7 +890,8 @@ Only currently supported behavior is `alignleft'." | |||
| 890 | 890 | ||
| 891 | (defcustom c-special-indent-hook nil | 891 | (defcustom c-special-indent-hook nil |
| 892 | "*Hook for user defined special indentation adjustments. | 892 | "*Hook for user defined special indentation adjustments. |
| 893 | This hook gets called after a line is indented by the mode." | 893 | This hook gets called after each line is indented by the mode. It is only |
| 894 | called if `c-syntactic-indentation' is non-nil." | ||
| 894 | :type 'hook | 895 | :type 'hook |
| 895 | :group 'c) | 896 | :group 'c) |
| 896 | 897 | ||
diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el index aa77caf0670..ce933cb13d5 100644 --- a/lisp/progmodes/compile.el +++ b/lisp/progmodes/compile.el | |||
| @@ -391,6 +391,7 @@ be added." | |||
| 391 | ,(expand-file-name "compilation.txt" data-directory)) | 391 | ,(expand-file-name "compilation.txt" data-directory)) |
| 392 | :group 'compilation) | 392 | :group 'compilation) |
| 393 | 393 | ||
| 394 | ;;;###autoload(put 'compilation-directory 'safe-local-variable 'stringp) | ||
| 394 | (defvar compilation-directory nil | 395 | (defvar compilation-directory nil |
| 395 | "Directory to restore to when doing `recompile'.") | 396 | "Directory to restore to when doing `recompile'.") |
| 396 | 397 | ||
| @@ -625,7 +626,7 @@ Faces `compilation-error-face', `compilation-warning-face', | |||
| 625 | (cons (match-string-no-properties idx) dir)) | 626 | (cons (match-string-no-properties idx) dir)) |
| 626 | mouse-face highlight | 627 | mouse-face highlight |
| 627 | keymap compilation-button-map | 628 | keymap compilation-button-map |
| 628 | help-echo "mouse-2: visit this directory"))) | 629 | help-echo "mouse-2: visit destination directory"))) |
| 629 | 630 | ||
| 630 | ;; Data type `reverse-ordered-alist' retriever. This function retrieves the | 631 | ;; Data type `reverse-ordered-alist' retriever. This function retrieves the |
| 631 | ;; KEY element from the ALIST, creating it in the right position if not already | 632 | ;; KEY element from the ALIST, creating it in the right position if not already |
diff --git a/lisp/progmodes/cperl-mode.el b/lisp/progmodes/cperl-mode.el index 0b8287503f8..a07fb5ee44f 100644 --- a/lisp/progmodes/cperl-mode.el +++ b/lisp/progmodes/cperl-mode.el | |||
| @@ -233,6 +233,7 @@ for constructs with multiline if/unless/while/until/for/foreach condition." | |||
| 233 | "*Indentation of CPerl statements with respect to containing block." | 233 | "*Indentation of CPerl statements with respect to containing block." |
| 234 | :type 'integer | 234 | :type 'integer |
| 235 | :group 'cperl-indentation-details) | 235 | :group 'cperl-indentation-details) |
| 236 | (put 'cperl-indent-level 'safe-local-variable 'integerp) | ||
| 236 | 237 | ||
| 237 | (defcustom cperl-lineup-step nil | 238 | (defcustom cperl-lineup-step nil |
| 238 | "*`cperl-lineup' will always lineup at multiple of this number. | 239 | "*`cperl-lineup' will always lineup at multiple of this number. |
| @@ -1871,9 +1872,7 @@ or as help on variables `cperl-tips', `cperl-problems', | |||
| 1871 | (easy-menu-add cperl-menu)) ; A NOP in Emacs. | 1872 | (easy-menu-add cperl-menu)) ; A NOP in Emacs. |
| 1872 | (run-mode-hooks 'cperl-mode-hook) | 1873 | (run-mode-hooks 'cperl-mode-hook) |
| 1873 | (if cperl-hook-after-change | 1874 | (if cperl-hook-after-change |
| 1874 | (progn | 1875 | (add-hook 'after-change-functions 'cperl-after-change-function nil t)) |
| 1875 | (make-local-hook 'after-change-functions) | ||
| 1876 | (add-hook 'after-change-functions 'cperl-after-change-function nil t))) | ||
| 1877 | ;; After hooks since fontification will break this | 1876 | ;; After hooks since fontification will break this |
| 1878 | (if cperl-pod-here-scan | 1877 | (if cperl-pod-here-scan |
| 1879 | (or cperl-syntaxify-by-font-lock | 1878 | (or cperl-syntaxify-by-font-lock |
diff --git a/lisp/progmodes/dcl-mode.el b/lisp/progmodes/dcl-mode.el index 618de7a3345..bdec1bf9ef4 100644 --- a/lisp/progmodes/dcl-mode.el +++ b/lisp/progmodes/dcl-mode.el | |||
| @@ -71,6 +71,9 @@ | |||
| 71 | 71 | ||
| 72 | ;;; Code: | 72 | ;;; Code: |
| 73 | 73 | ||
| 74 | (require 'tempo) | ||
| 75 | |||
| 76 | |||
| 74 | ;;; *** Customization ***************************************************** | 77 | ;;; *** Customization ***************************************************** |
| 75 | 78 | ||
| 76 | 79 | ||
| @@ -1935,8 +1938,6 @@ section at the end of the current buffer." | |||
| 1935 | ;; standard Emacs. I would have liked something closer to the functionality | 1938 | ;; standard Emacs. I would have liked something closer to the functionality |
| 1936 | ;; of LSE templates... | 1939 | ;; of LSE templates... |
| 1937 | 1940 | ||
| 1938 | |||
| 1939 | (require 'tempo) | ||
| 1940 | (defvar dcl-tempo-tags nil | 1941 | (defvar dcl-tempo-tags nil |
| 1941 | "Tempo tags for DCL mode.") | 1942 | "Tempo tags for DCL mode.") |
| 1942 | 1943 | ||
diff --git a/lisp/progmodes/ebnf2ps.el b/lisp/progmodes/ebnf2ps.el index 23ba4b55f33..55f61222796 100644 --- a/lisp/progmodes/ebnf2ps.el +++ b/lisp/progmodes/ebnf2ps.el | |||
| @@ -2609,7 +2609,7 @@ See `ebnf-style-database' documentation." | |||
| 2609 | (and (assoc name ebnf-style-database) | 2609 | (and (assoc name ebnf-style-database) |
| 2610 | (error "Style name already exists: %s" name)) | 2610 | (error "Style name already exists: %s" name)) |
| 2611 | (or (assoc inherits ebnf-style-database) | 2611 | (or (assoc inherits ebnf-style-database) |
| 2612 | (error "Style inheritance name does'nt exist: %s" inherits)) | 2612 | (error "Style inheritance name doesn't exist: %s" inherits)) |
| 2613 | (setq ebnf-style-database | 2613 | (setq ebnf-style-database |
| 2614 | (cons (cons name (cons inherits (ebnf-check-style-values values))) | 2614 | (cons (cons name (cons inherits (ebnf-check-style-values values))) |
| 2615 | ebnf-style-database))) | 2615 | ebnf-style-database))) |
| @@ -2639,7 +2639,7 @@ See `ebnf-style-database' documentation." | |||
| 2639 | See `ebnf-style-database' documentation." | 2639 | See `ebnf-style-database' documentation." |
| 2640 | (interactive "SStyle name: \nXStyle values: ") | 2640 | (interactive "SStyle name: \nXStyle values: ") |
| 2641 | (let ((style (or (assoc name ebnf-style-database) | 2641 | (let ((style (or (assoc name ebnf-style-database) |
| 2642 | (error "Style name does'nt exist: %s" name))) | 2642 | (error "Style name doesn't exist: %s" name))) |
| 2643 | (merge (ebnf-check-style-values values)) | 2643 | (merge (ebnf-check-style-values values)) |
| 2644 | val elt new check) | 2644 | val elt new check) |
| 2645 | ;; modify value of existing variables | 2645 | ;; modify value of existing variables |
diff --git a/lisp/progmodes/flymake.el b/lisp/progmodes/flymake.el index 8d126c8a413..4903d7d26ec 100644 --- a/lisp/progmodes/flymake.el +++ b/lisp/progmodes/flymake.el | |||
| @@ -931,8 +931,8 @@ Convert it to flymake internal format." | |||
| 931 | 2 4 nil 5)) | 931 | 2 4 nil 5)) |
| 932 | ;; compilation-error-regexp-alist) | 932 | ;; compilation-error-regexp-alist) |
| 933 | (flymake-reformat-err-line-patterns-from-compile-el compilation-error-regexp-alist-alist)) | 933 | (flymake-reformat-err-line-patterns-from-compile-el compilation-error-regexp-alist-alist)) |
| 934 | "Patterns for matching error/warning lines. | 934 | "Patterns for matching error/warning lines. Each pattern has the form |
| 935 | \(REGEXP FILE-IDX LINE-IDX ERR-TEXT-IDX). | 935 | \(REGEXP FILE-IDX LINE-IDX COL-IDX ERR-TEXT-IDX). |
| 936 | Use `flymake-reformat-err-line-patterns-from-compile-el' to add patterns | 936 | Use `flymake-reformat-err-line-patterns-from-compile-el' to add patterns |
| 937 | from compile.el") | 937 | from compile.el") |
| 938 | 938 | ||
diff --git a/lisp/progmodes/gdb-ui.el b/lisp/progmodes/gdb-ui.el index b598f2de1f7..4dbc9893f61 100644 --- a/lisp/progmodes/gdb-ui.el +++ b/lisp/progmodes/gdb-ui.el | |||
| @@ -1771,10 +1771,15 @@ static char *magick[] = { | |||
| 1771 | :group 'gud) | 1771 | :group 'gud) |
| 1772 | 1772 | ||
| 1773 | (defface breakpoint-disabled | 1773 | (defface breakpoint-disabled |
| 1774 | ;; We use different values of grey for different background types, | 1774 | '((((class color) (min-colors 88)) :foreground "grey70") |
| 1775 | ;; so that on low-color displays it will end up as something visible | 1775 | ;; Ensure that on low-color displays that we end up something visible. |
| 1776 | ;; if it has to be approximated. | 1776 | (((class color) (min-colors 8) (background light)) |
| 1777 | '((t :foreground "grey70")) | 1777 | :foreground "black") |
| 1778 | (((class color) (min-colors 8) (background dark)) | ||
| 1779 | :foreground "white") | ||
| 1780 | (((type tty) (class mono)) | ||
| 1781 | :inverse-video t) | ||
| 1782 | (t :background "gray")) | ||
| 1778 | "Face for disabled breakpoint icon in fringe." | 1783 | "Face for disabled breakpoint icon in fringe." |
| 1779 | :group 'gud) | 1784 | :group 'gud) |
| 1780 | 1785 | ||
diff --git a/lisp/progmodes/grep.el b/lisp/progmodes/grep.el index fe2bbdec14e..2c43abfd50c 100644 --- a/lisp/progmodes/grep.el +++ b/lisp/progmodes/grep.el | |||
| @@ -315,17 +315,7 @@ Notice that using \\[next-error] or \\[compile-goto-error] modifies | |||
| 315 | This gets tacked on the end of the generated expressions.") | 315 | This gets tacked on the end of the generated expressions.") |
| 316 | 316 | ||
| 317 | ;;;###autoload | 317 | ;;;###autoload |
| 318 | (defvar grep-program | 318 | (defvar grep-program "grep" |
| 319 | ;; Currently zgrep has trouble. It runs egrep instead of grep, | ||
| 320 | ;; and it doesn't pass along long options right. | ||
| 321 | "grep" | ||
| 322 | ;; (if (equal (condition-case nil ; in case "zgrep" isn't in exec-path | ||
| 323 | ;; (call-process "zgrep" nil nil nil | ||
| 324 | ;; "foo" null-device) | ||
| 325 | ;; (error nil)) | ||
| 326 | ;; 1) | ||
| 327 | ;; "zgrep" | ||
| 328 | ;; "grep") | ||
| 329 | "The default grep program for `grep-command' and `grep-find-command'. | 319 | "The default grep program for `grep-command' and `grep-find-command'. |
| 330 | This variable's value takes effect when `grep-compute-defaults' is called.") | 320 | This variable's value takes effect when `grep-compute-defaults' is called.") |
| 331 | 321 | ||
| @@ -336,10 +326,10 @@ This variable's value takes effect when `grep-compute-defaults' is called.") | |||
| 336 | 326 | ||
| 337 | ;;;###autoload | 327 | ;;;###autoload |
| 338 | (defvar grep-find-use-xargs nil | 328 | (defvar grep-find-use-xargs nil |
| 339 | "Whether \\[grep-find] uses the `xargs' utility by default. | 329 | "Non-nil means that `grep-find' uses the `xargs' utility by default. |
| 340 | 330 | If `exec', use `find -exec'. | |
| 341 | If `exec', it uses `find -exec'; if `gnu', it uses `find -print0' and `xargs -0'; | 331 | If `gnu', use `find -print0' and `xargs -0'. |
| 342 | if not nil and not `gnu', it uses `find -print' and `xargs'. | 332 | Any other non-nil value means to use `find -print' and `xargs'. |
| 343 | 333 | ||
| 344 | This variable's value takes effect when `grep-compute-defaults' is called.") | 334 | This variable's value takes effect when `grep-compute-defaults' is called.") |
| 345 | 335 | ||
diff --git a/lisp/progmodes/gud.el b/lisp/progmodes/gud.el index 8db7c28219e..3d252190eff 100644 --- a/lisp/progmodes/gud.el +++ b/lisp/progmodes/gud.el | |||
| @@ -147,8 +147,7 @@ Used to grey out relevant toolbar icons.") | |||
| 147 | ([refresh] "Refresh" . gud-refresh) | 147 | ([refresh] "Refresh" . gud-refresh) |
| 148 | ([run] menu-item "Run" gud-run | 148 | ([run] menu-item "Run" gud-run |
| 149 | :enable (not gud-running) | 149 | :enable (not gud-running) |
| 150 | :visible (and (memq gud-minor-mode '(gdbmi gdb dbx jdb)) | 150 | :visible (memq gud-minor-mode '(gdbmi gdb dbx jdb))) |
| 151 | (not (eq gud-minor-mode 'gdba)))) | ||
| 152 | ([go] menu-item (if gdb-active-process "Continue" "Run") gud-go | 151 | ([go] menu-item (if gdb-active-process "Continue" "Run") gud-go |
| 153 | :visible (and (not gud-running) | 152 | :visible (and (not gud-running) |
| 154 | (eq gud-minor-mode 'gdba))) | 153 | (eq gud-minor-mode 'gdba))) |
| @@ -214,7 +213,45 @@ Used to grey out relevant toolbar icons.") | |||
| 214 | :name "Gud") | 213 | :name "Gud") |
| 215 | 214 | ||
| 216 | (easy-mmode-defmap gud-minor-mode-map | 215 | (easy-mmode-defmap gud-minor-mode-map |
| 217 | `(([menu-bar debug] . ("Gud" . ,gud-menu-map))) | 216 | (append |
| 217 | `(([menu-bar debug] . ("Gud" . ,gud-menu-map))) | ||
| 218 | ;; Get tool bar like functionality from the menu bar on a text only | ||
| 219 | ;; terminal. | ||
| 220 | (unless window-system | ||
| 221 | `(([menu-bar down] | ||
| 222 | . (,(propertize "down" 'face 'font-lock-doc-face) . gud-down)) | ||
| 223 | ([menu-bar up] | ||
| 224 | . (,(propertize "up" 'face 'font-lock-doc-face) . gud-up)) | ||
| 225 | ([menu-bar finish] | ||
| 226 | . (,(propertize "finish" 'face 'font-lock-doc-face) . gud-finish)) | ||
| 227 | ([menu-bar step] | ||
| 228 | . (,(propertize "step" 'face 'font-lock-doc-face) . gud-step)) | ||
| 229 | ([menu-bar next] | ||
| 230 | . (,(propertize "next" 'face 'font-lock-doc-face) . gud-next)) | ||
| 231 | ([menu-bar until] menu-item | ||
| 232 | ,(propertize "until" 'face 'font-lock-doc-face) gud-until | ||
| 233 | :visible (memq gud-minor-mode '(gdbmi gdba gdb perldb))) | ||
| 234 | ([menu-bar cont] menu-item | ||
| 235 | ,(propertize "cont" 'face 'font-lock-doc-face) gud-cont | ||
| 236 | :visible (not (eq gud-minor-mode 'gdba))) | ||
| 237 | ([menu-bar run] menu-item | ||
| 238 | ,(propertize "run" 'face 'font-lock-doc-face) gud-run | ||
| 239 | :visible (memq gud-minor-mode '(gdbmi gdb dbx jdb))) | ||
| 240 | ([menu-bar go] menu-item | ||
| 241 | ,(propertize " go " 'face 'font-lock-doc-face) gud-go | ||
| 242 | :visible (and (not gud-running) | ||
| 243 | (eq gud-minor-mode 'gdba))) | ||
| 244 | ([menu-bar stop] menu-item | ||
| 245 | ,(propertize "stop" 'face 'font-lock-doc-face) gud-stop-subjob | ||
| 246 | :visible (or gud-running | ||
| 247 | (not (eq gud-minor-mode 'gdba)))) | ||
| 248 | ([menu-bar print] | ||
| 249 | . (,(propertize "print" 'face 'font-lock-doc-face) . gud-print)) | ||
| 250 | ([menu-bar tools] . undefined) | ||
| 251 | ([menu-bar buffer] . undefined) | ||
| 252 | ([menu-bar options] . undefined) | ||
| 253 | ([menu-bar edit] . undefined) | ||
| 254 | ([menu-bar file] . undefined)))) | ||
| 218 | "Map used in visited files.") | 255 | "Map used in visited files.") |
| 219 | 256 | ||
| 220 | (let ((m (assq 'gud-minor-mode minor-mode-map-alist))) | 257 | (let ((m (assq 'gud-minor-mode minor-mode-map-alist))) |
| @@ -686,14 +723,13 @@ text command mode to debug multiple programs within one Emacs | |||
| 686 | session." | 723 | session." |
| 687 | (interactive (list (gud-query-cmdline 'gdb))) | 724 | (interactive (list (gud-query-cmdline 'gdb))) |
| 688 | 725 | ||
| 689 | (if (and gud-comint-buffer | 726 | (when (and gud-comint-buffer |
| 690 | (buffer-name gud-comint-buffer) | 727 | (buffer-name gud-comint-buffer) |
| 691 | (get-buffer-process gud-comint-buffer) | 728 | (get-buffer-process gud-comint-buffer) |
| 692 | (with-current-buffer gud-comint-buffer (eq gud-minor-mode 'gdba))) | 729 | (with-current-buffer gud-comint-buffer (eq gud-minor-mode 'gdba))) |
| 693 | (let ((same-window-regexps)) | 730 | (gdb-restore-windows) |
| 694 | (display-buffer gud-comint-buffer) | ||
| 695 | (error | 731 | (error |
| 696 | "Multiple debugging requires restarting in text command mode"))) | 732 | "Multiple debugging requires restarting in text command mode")) |
| 697 | 733 | ||
| 698 | (gud-common-init command-line nil 'gud-gdb-marker-filter) | 734 | (gud-common-init command-line nil 'gud-gdb-marker-filter) |
| 699 | (set (make-local-variable 'gud-minor-mode) 'gdb) | 735 | (set (make-local-variable 'gud-minor-mode) 'gdb) |
| @@ -2268,6 +2304,8 @@ gud, see `gud-mode'." | |||
| 2268 | (gud-def gud-up "up\C-Mwhere" "<" "Up one stack frame.") | 2304 | (gud-def gud-up "up\C-Mwhere" "<" "Up one stack frame.") |
| 2269 | (gud-def gud-down "down\C-Mwhere" ">" "Up one stack frame.") | 2305 | (gud-def gud-down "down\C-Mwhere" ">" "Up one stack frame.") |
| 2270 | (gud-def gud-run "run" nil "Run the program.") ;if VM start using jdb | 2306 | (gud-def gud-run "run" nil "Run the program.") ;if VM start using jdb |
| 2307 | (gud-def gud-print "print %e" "\C-p" "Evaluate Java expression at point.") | ||
| 2308 | |||
| 2271 | 2309 | ||
| 2272 | (setq comint-prompt-regexp "^> \\|^[^ ]+\\[[0-9]+\\] ") | 2310 | (setq comint-prompt-regexp "^> \\|^[^ ]+\\[[0-9]+\\] ") |
| 2273 | (setq paragraph-start comint-prompt-regexp) | 2311 | (setq paragraph-start comint-prompt-regexp) |
| @@ -2817,7 +2855,9 @@ Obeying it means displaying in another window the specified file and line." | |||
| 2817 | (when (looking-at comint-prompt-regexp) | 2855 | (when (looking-at comint-prompt-regexp) |
| 2818 | (set-marker gud-delete-prompt-marker (point)) | 2856 | (set-marker gud-delete-prompt-marker (point)) |
| 2819 | (set-marker-insertion-type gud-delete-prompt-marker t)) | 2857 | (set-marker-insertion-type gud-delete-prompt-marker t)) |
| 2820 | (insert (concat expr " = "))))) | 2858 | (unless (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer) |
| 2859 | 'jdb) | ||
| 2860 | (insert (concat expr " = ")))))) | ||
| 2821 | expr)) | 2861 | expr)) |
| 2822 | 2862 | ||
| 2823 | ;; The next eight functions are hacked from gdbsrc.el by | 2863 | ;; The next eight functions are hacked from gdbsrc.el by |
diff --git a/lisp/progmodes/hideshow.el b/lisp/progmodes/hideshow.el index 3bc1c55cc7d..9f01787b336 100644 --- a/lisp/progmodes/hideshow.el +++ b/lisp/progmodes/hideshow.el | |||
| @@ -184,7 +184,6 @@ | |||
| 184 | ;; (5) Hideshow interacts badly with Ediff and `vc-diff'. At the moment, the | 184 | ;; (5) Hideshow interacts badly with Ediff and `vc-diff'. At the moment, the |
| 185 | ;; suggested workaround is to turn off hideshow entirely, for example: | 185 | ;; suggested workaround is to turn off hideshow entirely, for example: |
| 186 | ;; | 186 | ;; |
| 187 | ;; (defun turn-off-hideshow () (hs-minor-mode -1)) | ||
| 188 | ;; (add-hook 'ediff-prepare-buffer-hook 'turn-off-hideshow) | 187 | ;; (add-hook 'ediff-prepare-buffer-hook 'turn-off-hideshow) |
| 189 | ;; (add-hook 'vc-before-checkin-hook 'turn-off-hideshow) | 188 | ;; (add-hook 'vc-before-checkin-hook 'turn-off-hideshow) |
| 190 | ;; | 189 | ;; |
| @@ -908,7 +907,7 @@ Key bindings: | |||
| 908 | (hs-grok-mode-type) | 907 | (hs-grok-mode-type) |
| 909 | ;; Turn off this mode if we change major modes. | 908 | ;; Turn off this mode if we change major modes. |
| 910 | (add-hook 'change-major-mode-hook | 909 | (add-hook 'change-major-mode-hook |
| 911 | (lambda () (hs-minor-mode -1)) | 910 | 'turn-off-hideshow |
| 912 | nil t) | 911 | nil t) |
| 913 | (easy-menu-add hs-minor-mode-menu) | 912 | (easy-menu-add hs-minor-mode-menu) |
| 914 | (set (make-local-variable 'line-move-ignore-invisible) t) | 913 | (set (make-local-variable 'line-move-ignore-invisible) t) |
| @@ -920,6 +919,11 @@ Key bindings: | |||
| 920 | (hs-show-all))) | 919 | (hs-show-all))) |
| 921 | (run-hooks 'hs-minor-mode-hook)) | 920 | (run-hooks 'hs-minor-mode-hook)) |
| 922 | 921 | ||
| 922 | ;;;###autoload | ||
| 923 | (defun turn-off-hideshow () | ||
| 924 | "Unconditionally turn off `hs-minor-mode'." | ||
| 925 | (hs-minor-mode -1)) | ||
| 926 | |||
| 923 | ;;--------------------------------------------------------------------------- | 927 | ;;--------------------------------------------------------------------------- |
| 924 | ;; load-time actions | 928 | ;; load-time actions |
| 925 | 929 | ||
diff --git a/lisp/progmodes/idlw-shell.el b/lisp/progmodes/idlw-shell.el index aa2d1b32d10..bcecdeafa0f 100644 --- a/lisp/progmodes/idlw-shell.el +++ b/lisp/progmodes/idlw-shell.el | |||
| @@ -2698,7 +2698,7 @@ in the current routine." | |||
| 2698 | (class (nth 2 module))) | 2698 | (class (nth 2 module))) |
| 2699 | (if module | 2699 | (if module |
| 2700 | (progn | 2700 | (progn |
| 2701 | (setq module (idlwave-make-full-name (nth 2 module) (car module))) | 2701 | (setq module (idlwave-make-full-name class name)) |
| 2702 | (idlwave-shell-module-source-query module type) | 2702 | (idlwave-shell-module-source-query module type) |
| 2703 | (idlwave-shell-set-bp-in-module name type class)) | 2703 | (idlwave-shell-set-bp-in-module name type class)) |
| 2704 | (error "No identifier at point")))) | 2704 | (error "No identifier at point")))) |
| @@ -2707,14 +2707,15 @@ in the current routine." | |||
| 2707 | (defun idlwave-shell-set-bp-in-module (name type class) | 2707 | (defun idlwave-shell-set-bp-in-module (name type class) |
| 2708 | "Set breakpoint in module. Assumes that `idlwave-shell-sources-alist' | 2708 | "Set breakpoint in module. Assumes that `idlwave-shell-sources-alist' |
| 2709 | contains an entry for that module." | 2709 | contains an entry for that module." |
| 2710 | (let ((source-file | 2710 | (let* ((module (idlwave-make-full-name class name)) |
| 2711 | (car-safe (cdr-safe | 2711 | (source-file |
| 2712 | (or | 2712 | (car-safe (cdr-safe |
| 2713 | (assoc (upcase (idlwave-make-full-name class name)) | 2713 | (or |
| 2714 | idlwave-shell-sources-alist) | 2714 | (assoc (upcase module) |
| 2715 | (nth 3 (idlwave-best-rinfo-assoc name type class | 2715 | idlwave-shell-sources-alist) |
| 2716 | (idlwave-routines))))))) | 2716 | (nth 3 (idlwave-best-rinfo-assoc name type class |
| 2717 | buf) | 2717 | (idlwave-routines))))))) |
| 2718 | buf) | ||
| 2718 | (if (or (not source-file) | 2719 | (if (or (not source-file) |
| 2719 | (not (file-regular-p source-file)) | 2720 | (not (file-regular-p source-file)) |
| 2720 | (not (setq buf | 2721 | (not (setq buf |
diff --git a/lisp/progmodes/idlwave.el b/lisp/progmodes/idlwave.el index c4349e9c092..d29e56ce75d 100644 --- a/lisp/progmodes/idlwave.el +++ b/lisp/progmodes/idlwave.el | |||
| @@ -3487,6 +3487,7 @@ if `idlwave-auto-fill-split-string' is non-nil." | |||
| 3487 | (idlwave-indent-line) | 3487 | (idlwave-indent-line) |
| 3488 | ;; Prevent actions do-auto-fill which calls indent-line-function. | 3488 | ;; Prevent actions do-auto-fill which calls indent-line-function. |
| 3489 | (let (idlwave-do-actions | 3489 | (let (idlwave-do-actions |
| 3490 | (paragraph-separate ".") | ||
| 3490 | (fill-nobreak-predicate | 3491 | (fill-nobreak-predicate |
| 3491 | (if (and (idlwave-in-quote) | 3492 | (if (and (idlwave-in-quote) |
| 3492 | idlwave-auto-fill-split-string) | 3493 | idlwave-auto-fill-split-string) |
diff --git a/lisp/progmodes/m4-mode.el b/lisp/progmodes/m4-mode.el index 734a86b0b99..bd31f731693 100644 --- a/lisp/progmodes/m4-mode.el +++ b/lisp/progmodes/m4-mode.el | |||
| @@ -118,14 +118,19 @@ | |||
| 118 | (defun m4-m4-buffer () | 118 | (defun m4-m4-buffer () |
| 119 | "Send contents of the current buffer to m4." | 119 | "Send contents of the current buffer to m4." |
| 120 | (interactive) | 120 | (interactive) |
| 121 | (shell-command-on-region (point-min) (point-max) m4-program "*m4-output*" | 121 | (shell-command-on-region |
| 122 | nil) | 122 | (point-min) (point-max) |
| 123 | (mapconcat 'identity (cons m4-program m4-program-options) "\s") | ||
| 124 | "*m4-output*" nil) | ||
| 123 | (switch-to-buffer-other-window "*m4-output*")) | 125 | (switch-to-buffer-other-window "*m4-output*")) |
| 124 | 126 | ||
| 125 | (defun m4-m4-region () | 127 | (defun m4-m4-region () |
| 126 | "Send contents of the current region to m4." | 128 | "Send contents of the current region to m4." |
| 127 | (interactive) | 129 | (interactive) |
| 128 | (shell-command-on-region (point) (mark) m4-program "*m4-output*" nil) | 130 | (shell-command-on-region |
| 131 | (point) (mark) | ||
| 132 | (mapconcat 'identity (cons m4-program m4-program-options) "\s") | ||
| 133 | "*m4-output*" nil) | ||
| 129 | (switch-to-buffer-other-window "*m4-output*")) | 134 | (switch-to-buffer-other-window "*m4-output*")) |
| 130 | 135 | ||
| 131 | ;;;###autoload | 136 | ;;;###autoload |
diff --git a/lisp/progmodes/perl-mode.el b/lisp/progmodes/perl-mode.el index 078e94ffbf4..255f63aed41 100644 --- a/lisp/progmodes/perl-mode.el +++ b/lisp/progmodes/perl-mode.el | |||
| @@ -391,6 +391,7 @@ The expansion is entirely correct because it uses the C preprocessor." | |||
| 391 | "*Indentation of Perl statements with respect to containing block." | 391 | "*Indentation of Perl statements with respect to containing block." |
| 392 | :type 'integer | 392 | :type 'integer |
| 393 | :group 'perl) | 393 | :group 'perl) |
| 394 | (put 'perl-indent-level 'safe-local-variable 'integerp) | ||
| 394 | (defcustom perl-continued-statement-offset 4 | 395 | (defcustom perl-continued-statement-offset 4 |
| 395 | "*Extra indent for lines not starting new statements." | 396 | "*Extra indent for lines not starting new statements." |
| 396 | :type 'integer | 397 | :type 'integer |
diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index 226d4bdc62d..e57c7e639c9 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el | |||
| @@ -981,11 +981,15 @@ don't move and return nil. Otherwise return t." | |||
| 981 | (_ (if (python-comment-line-p) | 981 | (_ (if (python-comment-line-p) |
| 982 | (python-skip-comments/blanks t))) | 982 | (python-skip-comments/blanks t))) |
| 983 | (ci (current-indentation)) | 983 | (ci (current-indentation)) |
| 984 | (open (python-open-block-statement-p))) | 984 | (open (python-open-block-statement-p)) |
| 985 | opoint) | ||
| 985 | (if (and (zerop ci) (not open)) | 986 | (if (and (zerop ci) (not open)) |
| 986 | (not (goto-char point)) | 987 | (not (goto-char point)) |
| 987 | (catch 'done | 988 | (catch 'done |
| 988 | (while (zerop (python-next-statement)) | 989 | (setq opoint (point)) |
| 990 | (while (and (zerop (python-next-statement)) | ||
| 991 | (not (= opoint (point)))) | ||
| 992 | (setq opoint (point)) | ||
| 989 | (when (or (and open (<= (current-indentation) ci)) | 993 | (when (or (and open (<= (current-indentation) ci)) |
| 990 | (< (current-indentation) ci)) | 994 | (< (current-indentation) ci)) |
| 991 | (python-skip-comments/blanks t) | 995 | (python-skip-comments/blanks t) |
| @@ -2225,6 +2229,7 @@ with skeleton expansions for compound statement templates. | |||
| 2225 | ;; . python-font-lock-syntactic-face-function) | 2229 | ;; . python-font-lock-syntactic-face-function) |
| 2226 | )) | 2230 | )) |
| 2227 | (set (make-local-variable 'parse-sexp-lookup-properties) t) | 2231 | (set (make-local-variable 'parse-sexp-lookup-properties) t) |
| 2232 | (set (make-local-variable 'parse-sexp-ignore-comments) t) | ||
| 2228 | (set (make-local-variable 'comment-start) "# ") | 2233 | (set (make-local-variable 'comment-start) "# ") |
| 2229 | (set (make-local-variable 'indent-line-function) #'python-indent-line) | 2234 | (set (make-local-variable 'indent-line-function) #'python-indent-line) |
| 2230 | (set (make-local-variable 'indent-region-function) #'python-indent-region) | 2235 | (set (make-local-variable 'indent-region-function) #'python-indent-region) |
diff --git a/lisp/recentf.el b/lisp/recentf.el index 12e4dd7ec57..c55f15c69e9 100644 --- a/lisp/recentf.el +++ b/lisp/recentf.el | |||
| @@ -72,7 +72,14 @@ See the command `recentf-save-list'." | |||
| 72 | (defcustom recentf-save-file "~/.recentf" | 72 | (defcustom recentf-save-file "~/.recentf" |
| 73 | "*File to save the recent list into." | 73 | "*File to save the recent list into." |
| 74 | :group 'recentf | 74 | :group 'recentf |
| 75 | :type 'file) | 75 | :type 'file |
| 76 | :initialize 'custom-initialize-default | ||
| 77 | :set (lambda (symbol value) | ||
| 78 | (let ((oldvalue (eval symbol))) | ||
| 79 | (custom-set-default symbol value) | ||
| 80 | (and (not (equal value oldvalue)) | ||
| 81 | recentf-mode | ||
| 82 | (recentf-load-list))))) | ||
| 76 | 83 | ||
| 77 | (defcustom recentf-save-file-modes 384 ;; 0600 | 84 | (defcustom recentf-save-file-modes 384 ;; 0600 |
| 78 | "Mode bits of recentf save file, as an integer, or nil. | 85 | "Mode bits of recentf save file, as an integer, or nil. |
diff --git a/lisp/replace.el b/lisp/replace.el index a42f4ff4b57..a8dfd043c72 100644 --- a/lisp/replace.el +++ b/lisp/replace.el | |||
| @@ -844,7 +844,8 @@ Compatibility function for \\[next-error] invocations." | |||
| 844 | #'next-single-property-change) | 844 | #'next-single-property-change) |
| 845 | "No more matches") | 845 | "No more matches") |
| 846 | ;; In case the *Occur* buffer is visible in a nonselected window. | 846 | ;; In case the *Occur* buffer is visible in a nonselected window. |
| 847 | (set-window-point (get-buffer-window (current-buffer)) (point)) | 847 | (let ((win (get-buffer-window (current-buffer) t))) |
| 848 | (if win (set-window-point win (point)))) | ||
| 848 | (occur-mode-goto-occurrence))) | 849 | (occur-mode-goto-occurrence))) |
| 849 | 850 | ||
| 850 | (defface match | 851 | (defface match |
diff --git a/lisp/simple.el b/lisp/simple.el index 5901a1e3067..fc3a0b3d218 100644 --- a/lisp/simple.el +++ b/lisp/simple.el | |||
| @@ -118,8 +118,10 @@ If no other buffer exists, the buffer `*scratch*' is returned." | |||
| 118 | 118 | ||
| 119 | (defcustom next-error-highlight 0.5 | 119 | (defcustom next-error-highlight 0.5 |
| 120 | "*Highlighting of locations in selected source buffers. | 120 | "*Highlighting of locations in selected source buffers. |
| 121 | If number, highlight the locus in `next-error' face for given time in seconds. | 121 | If a number, highlight the locus in `next-error' face for the given time |
| 122 | If t, highlight the locus indefinitely until some other locus replaces it. | 122 | in seconds, or until the next command is executed. |
| 123 | If t, highlight the locus until the next command is executed, or until | ||
| 124 | some other locus replaces it. | ||
| 123 | If nil, don't highlight the locus in the source buffer. | 125 | If nil, don't highlight the locus in the source buffer. |
| 124 | If `fringe-arrow', indicate the locus by the fringe arrow." | 126 | If `fringe-arrow', indicate the locus by the fringe arrow." |
| 125 | :type '(choice (number :tag "Highlight for specified time") | 127 | :type '(choice (number :tag "Highlight for specified time") |
| @@ -3083,7 +3085,7 @@ START and END specify the portion of the current buffer to be copied." | |||
| 3083 | (defvar activate-mark-hook nil | 3085 | (defvar activate-mark-hook nil |
| 3084 | "Hook run when the mark becomes active. | 3086 | "Hook run when the mark becomes active. |
| 3085 | It is also run at the end of a command, if the mark is active and | 3087 | It is also run at the end of a command, if the mark is active and |
| 3086 | it is possible that the region may have changed") | 3088 | it is possible that the region may have changed.") |
| 3087 | 3089 | ||
| 3088 | (defvar deactivate-mark-hook nil | 3090 | (defvar deactivate-mark-hook nil |
| 3089 | "Hook run when the mark becomes inactive.") | 3091 | "Hook run when the mark becomes inactive.") |
| @@ -3193,28 +3195,28 @@ will pop twice." | |||
| 3193 | :group 'editing) | 3195 | :group 'editing) |
| 3194 | 3196 | ||
| 3195 | (defun set-mark-command (arg) | 3197 | (defun set-mark-command (arg) |
| 3196 | "Set mark at where point is, or jump to mark. | 3198 | "Set mark where point is, or jump to mark. |
| 3197 | With no prefix argument, set mark, and push old mark position on local | 3199 | Setting the mark also sets the \"region\", which is the closest |
| 3198 | mark ring; also push mark on global mark ring if last mark was set in | 3200 | equivalent in Emacs to what some editors call the \"selection\". |
| 3201 | |||
| 3202 | With no prefix argument, set mark and push old mark position on local | ||
| 3203 | mark ring. Also, push mark on global mark ring, if last mark was set in | ||
| 3199 | another buffer. Immediately repeating the command activates | 3204 | another buffer. Immediately repeating the command activates |
| 3200 | `transient-mark-mode' temporarily. | 3205 | `transient-mark-mode' temporarily. |
| 3201 | 3206 | ||
| 3202 | With argument, e.g. \\[universal-argument] \\[set-mark-command], \ | 3207 | With prefix argument \(e.g., \\[universal-argument] \\[set-mark-command]\), \ |
| 3203 | jump to mark, and pop a new position | 3208 | jump to mark, and set mark from |
| 3204 | for mark off the local mark ring \(this does not affect the global | 3209 | position popped off the local mark ring \(this does not affect the global |
| 3205 | mark ring\). Use \\[pop-global-mark] to jump to a mark off the global | 3210 | mark ring\). Use \\[pop-global-mark] to jump to a mark popped off the global |
| 3206 | mark ring \(see `pop-global-mark'\). | 3211 | mark ring \(see `pop-global-mark'\). |
| 3207 | 3212 | ||
| 3208 | If `set-mark-command-repeat-pop' is non-nil, repeating | 3213 | If `set-mark-command-repeat-pop' is non-nil, repeating |
| 3209 | the \\[set-mark-command] command with no prefix pops the next position | 3214 | the \\[set-mark-command] command with no prefix argument pops the next position |
| 3210 | off the local (or global) mark ring and jumps there. | 3215 | off the local (or global) mark ring and jumps there. |
| 3211 | 3216 | ||
| 3212 | With a double \\[universal-argument] prefix argument, e.g. \\[universal-argument] \ | 3217 | With a double \\[universal-argument] prefix argument \(e.g., \\[universal-argument] \ |
| 3213 | \\[universal-argument] \\[set-mark-command], unconditionally | 3218 | \\[universal-argument] \\[set-mark-command]\), unconditionally |
| 3214 | set mark where point is. | 3219 | set mark where point is, even if `set-mark-command-repeat-pop' is non-nil. |
| 3215 | |||
| 3216 | Setting the mark also sets the \"region\", which is the closest | ||
| 3217 | equivalent in Emacs to what some editors call the \"selection\". | ||
| 3218 | 3220 | ||
| 3219 | Novice Emacs Lisp programmers often try to use the mark for the wrong | 3221 | Novice Emacs Lisp programmers often try to use the mark for the wrong |
| 3220 | purposes. See the documentation of `set-mark' for more information." | 3222 | purposes. See the documentation of `set-mark' for more information." |
| @@ -4468,7 +4470,7 @@ it skips the contents of comments that end before point." | |||
| 4468 | (save-excursion | 4470 | (save-excursion |
| 4469 | (save-restriction | 4471 | (save-restriction |
| 4470 | (if blink-matching-paren-distance | 4472 | (if blink-matching-paren-distance |
| 4471 | (narrow-to-region (max (point-min) | 4473 | (narrow-to-region (max (minibuffer-prompt-end) |
| 4472 | (- (point) blink-matching-paren-distance)) | 4474 | (- (point) blink-matching-paren-distance)) |
| 4473 | oldpos)) | 4475 | oldpos)) |
| 4474 | (condition-case () | 4476 | (condition-case () |
| @@ -4718,16 +4720,9 @@ SEND-ACTIONS is a list of actions to call when the message is sent. | |||
| 4718 | Each action has the form (FUNCTION . ARGS)." | 4720 | Each action has the form (FUNCTION . ARGS)." |
| 4719 | (interactive | 4721 | (interactive |
| 4720 | (list nil nil nil current-prefix-arg)) | 4722 | (list nil nil nil current-prefix-arg)) |
| 4721 | (let ((function (get mail-user-agent 'composefunc)) | 4723 | (let ((function (get mail-user-agent 'composefunc))) |
| 4722 | result-buffer) | 4724 | (funcall function to subject other-headers continue |
| 4723 | (if switch-function | 4725 | switch-function yank-action send-actions))) |
| 4724 | (save-window-excursion | ||
| 4725 | (prog1 | ||
| 4726 | (funcall function to subject other-headers continue | ||
| 4727 | nil yank-action send-actions) | ||
| 4728 | (funcall switch-function (current-buffer)))) | ||
| 4729 | (funcall function to subject other-headers continue | ||
| 4730 | nil yank-action send-actions)))) | ||
| 4731 | 4726 | ||
| 4732 | (defun compose-mail-other-window (&optional to subject other-headers continue | 4727 | (defun compose-mail-other-window (&optional to subject other-headers continue |
| 4733 | yank-action send-actions) | 4728 | yank-action send-actions) |
diff --git a/lisp/startup.el b/lisp/startup.el index f1cc3e253ae..5b51a14c08f 100644 --- a/lisp/startup.el +++ b/lisp/startup.el | |||
| @@ -51,8 +51,8 @@ The value is nil if the selected frame is on a text-only-terminal.") | |||
| 51 | "Non-nil inhibits the startup screen. | 51 | "Non-nil inhibits the startup screen. |
| 52 | It also inhibits display of the initial message in the `*scratch*' buffer. | 52 | It also inhibits display of the initial message in the `*scratch*' buffer. |
| 53 | 53 | ||
| 54 | This is for use in your personal init file, once you are familiar | 54 | This is for use in your personal init file (but NOT site-start.el), once |
| 55 | with the contents of the startup screen." | 55 | you are familiar with the contents of the startup screen." |
| 56 | :type 'boolean | 56 | :type 'boolean |
| 57 | :group 'initialization) | 57 | :group 'initialization) |
| 58 | 58 | ||
| @@ -514,7 +514,7 @@ opening the first frame (e.g. open a connection to an X server).") | |||
| 514 | ;; Handle the X-like command-line arguments "-fg", "-bg", "-name", etc. | 514 | ;; Handle the X-like command-line arguments "-fg", "-bg", "-name", etc. |
| 515 | (defun tty-handle-args (args) | 515 | (defun tty-handle-args (args) |
| 516 | (let (rest) | 516 | (let (rest) |
| 517 | (message "%s" args) | 517 | (message "%S" args) |
| 518 | (while (and args | 518 | (while (and args |
| 519 | (not (equal (car args) "--"))) | 519 | (not (equal (car args) "--"))) |
| 520 | (let* ((argi (pop args)) | 520 | (let* ((argi (pop args)) |
| @@ -961,11 +961,11 @@ opening the first frame (e.g. open a connection to an X server).") | |||
| 961 | (with-current-buffer (window-buffer) | 961 | (with-current-buffer (window-buffer) |
| 962 | (deactivate-mark))) | 962 | (deactivate-mark))) |
| 963 | 963 | ||
| 964 | ;; If the user has a file of abbrevs, read it. | 964 | ;; If the user has a file of abbrevs, read it. |
| 965 | ;; FIXME: after the 22.0 release this should be changed so | 965 | ;; FIXME: after the 22.0 release this should be changed so |
| 966 | ;; that it does not read the abbrev file when -batch is used | 966 | ;; that it does not read the abbrev file when -batch is used |
| 967 | ;; on the command line. | 967 | ;; on the command line. |
| 968 | (when (and (file-exists-p abbrev-file-name) | 968 | (when (and (file-exists-p abbrev-file-name) |
| 969 | (file-readable-p abbrev-file-name)) | 969 | (file-readable-p abbrev-file-name)) |
| 970 | (quietly-read-abbrev-file abbrev-file-name)) | 970 | (quietly-read-abbrev-file abbrev-file-name)) |
| 971 | 971 | ||
diff --git a/lisp/subr.el b/lisp/subr.el index 4b5c5e3f076..bdde66fc885 100644 --- a/lisp/subr.el +++ b/lisp/subr.el | |||
| @@ -579,7 +579,7 @@ KEY is a string or vector representing a sequence of keystrokes." | |||
| 579 | ;;;; substitute-key-definition and its subroutines. | 579 | ;;;; substitute-key-definition and its subroutines. |
| 580 | 580 | ||
| 581 | (defvar key-substitution-in-progress nil | 581 | (defvar key-substitution-in-progress nil |
| 582 | "Used internally by `substitute-key-definition'.") | 582 | "Used internally by `substitute-key-definition'.") |
| 583 | 583 | ||
| 584 | (defun substitute-key-definition (olddef newdef keymap &optional oldmap prefix) | 584 | (defun substitute-key-definition (olddef newdef keymap &optional oldmap prefix) |
| 585 | "Replace OLDDEF with NEWDEF for any keys in KEYMAP now defined as OLDDEF. | 585 | "Replace OLDDEF with NEWDEF for any keys in KEYMAP now defined as OLDDEF. |
| @@ -821,11 +821,11 @@ and `event-end' functions." | |||
| 821 | (defun posn-set-point (position) | 821 | (defun posn-set-point (position) |
| 822 | "Move point to POSITION. | 822 | "Move point to POSITION. |
| 823 | Select the corresponding window as well." | 823 | Select the corresponding window as well." |
| 824 | (if (not (windowp (posn-window position))) | 824 | (if (not (windowp (posn-window position))) |
| 825 | (error "Position not in text area of window")) | 825 | (error "Position not in text area of window")) |
| 826 | (select-window (posn-window position)) | 826 | (select-window (posn-window position)) |
| 827 | (if (numberp (posn-point position)) | 827 | (if (numberp (posn-point position)) |
| 828 | (goto-char (posn-point position)))) | 828 | (goto-char (posn-point position)))) |
| 829 | 829 | ||
| 830 | (defsubst posn-x-y (position) | 830 | (defsubst posn-x-y (position) |
| 831 | "Return the x and y coordinates in POSITION. | 831 | "Return the x and y coordinates in POSITION. |
| @@ -949,20 +949,26 @@ is converted into a string by expressing it in decimal." | |||
| 949 | ;;;; Obsolescence declarations for variables, and aliases. | 949 | ;;;; Obsolescence declarations for variables, and aliases. |
| 950 | 950 | ||
| 951 | (make-obsolete-variable 'directory-sep-char "do not use it." "21.1") | 951 | (make-obsolete-variable 'directory-sep-char "do not use it." "21.1") |
| 952 | (make-obsolete-variable 'mode-line-inverse-video "use the appropriate faces instead." "21.1") | 952 | (make-obsolete-variable |
| 953 | (make-obsolete-variable 'unread-command-char | 953 | 'mode-line-inverse-video |
| 954 | "use `unread-command-events' instead. That variable is a list of events | 954 | "use the appropriate faces instead." |
| 955 | "21.1") | ||
| 956 | (make-obsolete-variable | ||
| 957 | 'unread-command-char | ||
| 958 | "use `unread-command-events' instead. That variable is a list of events | ||
| 955 | to reread, so it now uses nil to mean `no event', instead of -1." | 959 | to reread, so it now uses nil to mean `no event', instead of -1." |
| 956 | "before 19.15") | 960 | "before 19.15") |
| 957 | 961 | ||
| 958 | ;; Lisp manual only updated in 22.1. | 962 | ;; Lisp manual only updated in 22.1. |
| 959 | (define-obsolete-variable-alias 'executing-macro 'executing-kbd-macro | 963 | (define-obsolete-variable-alias 'executing-macro 'executing-kbd-macro |
| 960 | "before 19.34") | 964 | "before 19.34") |
| 961 | 965 | ||
| 962 | (defvaralias 'x-lost-selection-hooks 'x-lost-selection-functions) | 966 | (defvaralias 'x-lost-selection-hooks 'x-lost-selection-functions) |
| 963 | (make-obsolete-variable 'x-lost-selection-hooks 'x-lost-selection-functions "22.1") | 967 | (make-obsolete-variable 'x-lost-selection-hooks |
| 968 | 'x-lost-selection-functions "22.1") | ||
| 964 | (defvaralias 'x-sent-selection-hooks 'x-sent-selection-functions) | 969 | (defvaralias 'x-sent-selection-hooks 'x-sent-selection-functions) |
| 965 | (make-obsolete-variable 'x-sent-selection-hooks 'x-sent-selection-functions "22.1") | 970 | (make-obsolete-variable 'x-sent-selection-hooks |
| 971 | 'x-sent-selection-functions "22.1") | ||
| 966 | 972 | ||
| 967 | (defvaralias 'messages-buffer-max-lines 'message-log-max) | 973 | (defvaralias 'messages-buffer-max-lines 'message-log-max) |
| 968 | 974 | ||
| @@ -1534,7 +1540,7 @@ FILE should be the name of a library, with no directory name." | |||
| 1534 | 1540 | ||
| 1535 | (when (featurep 'make-network-process) | 1541 | (when (featurep 'make-network-process) |
| 1536 | (defun open-network-stream (name buffer host service) | 1542 | (defun open-network-stream (name buffer host service) |
| 1537 | "Open a TCP connection for a service to a host. | 1543 | "Open a TCP connection for a service to a host. |
| 1538 | Returns a subprocess-object to represent the connection. | 1544 | Returns a subprocess-object to represent the connection. |
| 1539 | Input and output work as for subprocesses; `delete-process' closes it. | 1545 | Input and output work as for subprocesses; `delete-process' closes it. |
| 1540 | 1546 | ||
| @@ -1548,14 +1554,15 @@ BUFFER is the buffer (or buffer name) to associate with the process. | |||
| 1548 | HOST is name of the host to connect to, or its IP address. | 1554 | HOST is name of the host to connect to, or its IP address. |
| 1549 | SERVICE is name of the service desired, or an integer specifying | 1555 | SERVICE is name of the service desired, or an integer specifying |
| 1550 | a port number to connect to." | 1556 | a port number to connect to." |
| 1551 | (make-network-process :name name :buffer buffer | 1557 | (make-network-process :name name :buffer buffer |
| 1552 | :host host :service service))) | 1558 | :host host :service service))) |
| 1553 | 1559 | ||
| 1554 | ;; compatibility | 1560 | ;; compatibility |
| 1555 | 1561 | ||
| 1556 | (make-obsolete 'process-kill-without-query | 1562 | (make-obsolete |
| 1557 | "use `process-query-on-exit-flag' or `set-process-query-on-exit-flag'." | 1563 | 'process-kill-without-query |
| 1558 | "22.1") | 1564 | "use `process-query-on-exit-flag' or `set-process-query-on-exit-flag'." |
| 1565 | "22.1") | ||
| 1559 | (defun process-kill-without-query (process &optional flag) | 1566 | (defun process-kill-without-query (process &optional flag) |
| 1560 | "Say no query needed if PROCESS is running when Emacs is exited. | 1567 | "Say no query needed if PROCESS is running when Emacs is exited. |
| 1561 | Optional second argument if non-nil says to require a query. | 1568 | Optional second argument if non-nil says to require a query. |
| @@ -1588,8 +1595,8 @@ Legitimate radix values are 8, 10 and 16.") | |||
| 1588 | 'read-quoted-char-radix 8 | 1595 | 'read-quoted-char-radix 8 |
| 1589 | "*Radix for \\[quoted-insert] and other uses of `read-quoted-char'. | 1596 | "*Radix for \\[quoted-insert] and other uses of `read-quoted-char'. |
| 1590 | Legitimate radix values are 8, 10 and 16." | 1597 | Legitimate radix values are 8, 10 and 16." |
| 1591 | :type '(choice (const 8) (const 10) (const 16)) | 1598 | :type '(choice (const 8) (const 10) (const 16)) |
| 1592 | :group 'editing-basics) | 1599 | :group 'editing-basics) |
| 1593 | 1600 | ||
| 1594 | (defun read-quoted-char (&optional prompt) | 1601 | (defun read-quoted-char (&optional prompt) |
| 1595 | "Like `read-char', but do not allow quitting. | 1602 | "Like `read-char', but do not allow quitting. |
| @@ -2232,9 +2239,9 @@ If UNDO is present and non-nil, it is a function that will be called | |||
| 2232 | (text-properties-at (1- end))) | 2239 | (text-properties-at (1- end))) |
| 2233 | (put-text-property (1- end) end 'rear-nonsticky t)) | 2240 | (put-text-property (1- end) end 'rear-nonsticky t)) |
| 2234 | 2241 | ||
| 2235 | (if (eq yank-undo-function t) ;; not set by FUNCTION | 2242 | (if (eq yank-undo-function t) ;; not set by FUNCTION |
| 2236 | (setq yank-undo-function (nth 3 handler))) ;; UNDO | 2243 | (setq yank-undo-function (nth 3 handler))) ;; UNDO |
| 2237 | (if (nth 4 handler) ;; COMMAND | 2244 | (if (nth 4 handler) ;; COMMAND |
| 2238 | (setq this-command (nth 4 handler))))) | 2245 | (setq this-command (nth 4 handler))))) |
| 2239 | 2246 | ||
| 2240 | (defun insert-buffer-substring-no-properties (buffer &optional start end) | 2247 | (defun insert-buffer-substring-no-properties (buffer &optional start end) |
| @@ -2497,6 +2504,20 @@ in BODY." | |||
| 2497 | (let ((combine-after-change-calls t)) | 2504 | (let ((combine-after-change-calls t)) |
| 2498 | . ,body) | 2505 | . ,body) |
| 2499 | (combine-after-change-execute))) | 2506 | (combine-after-change-execute))) |
| 2507 | |||
| 2508 | (defmacro with-case-table (table &rest body) | ||
| 2509 | "Execute the forms in BODY with TABLE as the current case table. | ||
| 2510 | The value returned is the value of the last form in BODY." | ||
| 2511 | (declare (indent 1) (debug t)) | ||
| 2512 | (let ((old-case-table (make-symbol "table")) | ||
| 2513 | (old-buffer (make-symbol "buffer"))) | ||
| 2514 | `(let ((,old-case-table (current-case-table)) | ||
| 2515 | (,old-buffer (current-buffer))) | ||
| 2516 | (unwind-protect | ||
| 2517 | (progn (set-case-table ,table) | ||
| 2518 | ,@body) | ||
| 2519 | (with-current-buffer ,old-buffer | ||
| 2520 | (set-case-table ,old-case-table)))))) | ||
| 2500 | 2521 | ||
| 2501 | ;;;; Constructing completion tables. | 2522 | ;;;; Constructing completion tables. |
| 2502 | 2523 | ||
| @@ -2765,7 +2786,7 @@ Unless optional argument INPLACE is non-nil, return a new string." | |||
| 2765 | newstr)) | 2786 | newstr)) |
| 2766 | 2787 | ||
| 2767 | (defun replace-regexp-in-string (regexp rep string &optional | 2788 | (defun replace-regexp-in-string (regexp rep string &optional |
| 2768 | fixedcase literal subexp start) | 2789 | fixedcase literal subexp start) |
| 2769 | "Replace all matches for REGEXP with REP in STRING. | 2790 | "Replace all matches for REGEXP with REP in STRING. |
| 2770 | 2791 | ||
| 2771 | Return a new string containing the replacements. | 2792 | Return a new string containing the replacements. |
| @@ -2815,7 +2836,7 @@ and replace a sub-expression, e.g. | |||
| 2815 | rep | 2836 | rep |
| 2816 | (funcall rep (match-string 0 str))) | 2837 | (funcall rep (match-string 0 str))) |
| 2817 | fixedcase literal str subexp) | 2838 | fixedcase literal str subexp) |
| 2818 | (cons (substring string start mb) ; unmatched prefix | 2839 | (cons (substring string start mb) ; unmatched prefix |
| 2819 | matches))) | 2840 | matches))) |
| 2820 | (setq start me)) | 2841 | (setq start me)) |
| 2821 | ;; Reconstruct a string from the pieces. | 2842 | ;; Reconstruct a string from the pieces. |
| @@ -2836,7 +2857,8 @@ that can be added." | |||
| 2836 | (defun remove-from-invisibility-spec (element) | 2857 | (defun remove-from-invisibility-spec (element) |
| 2837 | "Remove ELEMENT from `buffer-invisibility-spec'." | 2858 | "Remove ELEMENT from `buffer-invisibility-spec'." |
| 2838 | (if (consp buffer-invisibility-spec) | 2859 | (if (consp buffer-invisibility-spec) |
| 2839 | (setq buffer-invisibility-spec (delete element buffer-invisibility-spec)))) | 2860 | (setq buffer-invisibility-spec |
| 2861 | (delete element buffer-invisibility-spec)))) | ||
| 2840 | 2862 | ||
| 2841 | ;;;; Syntax tables. | 2863 | ;;;; Syntax tables. |
| 2842 | 2864 | ||
| @@ -3182,7 +3204,7 @@ Usually the separator is \".\", but it can be any other string.") | |||
| 3182 | 3204 | ||
| 3183 | (defvar version-regexp-alist | 3205 | (defvar version-regexp-alist |
| 3184 | '(("^[-_+ ]?a\\(lpha\\)?$" . -3) | 3206 | '(("^[-_+ ]?a\\(lpha\\)?$" . -3) |
| 3185 | ("^[-_+]$" . -3) ; treat "1.2.3-20050920" and "1.2-3" as alpha releases | 3207 | ("^[-_+]$" . -3) ; treat "1.2.3-20050920" and "1.2-3" as alpha releases |
| 3186 | ("^[-_+ ]cvs$" . -3) ; treat "1.2.3-CVS" as alpha release | 3208 | ("^[-_+ ]cvs$" . -3) ; treat "1.2.3-CVS" as alpha release |
| 3187 | ("^[-_+ ]?b\\(eta\\)?$" . -2) | 3209 | ("^[-_+ ]?b\\(eta\\)?$" . -2) |
| 3188 | ("^[-_+ ]?\\(pre\\|rc\\)$" . -1)) | 3210 | ("^[-_+ ]?\\(pre\\|rc\\)$" . -1)) |
| @@ -3256,7 +3278,7 @@ See documentation for `version-separator' and `version-regexp-alist'." | |||
| 3256 | ;; Change .x.y to 0.x.y | 3278 | ;; Change .x.y to 0.x.y |
| 3257 | (if (and (>= (length ver) (length version-separator)) | 3279 | (if (and (>= (length ver) (length version-separator)) |
| 3258 | (string-equal (substring ver 0 (length version-separator)) | 3280 | (string-equal (substring ver 0 (length version-separator)) |
| 3259 | version-separator)) | 3281 | version-separator)) |
| 3260 | (setq ver (concat "0" ver))) | 3282 | (setq ver (concat "0" ver))) |
| 3261 | (save-match-data | 3283 | (save-match-data |
| 3262 | (let ((i 0) | 3284 | (let ((i 0) |
diff --git a/lisp/t-mouse.el b/lisp/t-mouse.el index c8a7e9b6536..eca2ce2b9fe 100644 --- a/lisp/t-mouse.el +++ b/lisp/t-mouse.el | |||
| @@ -144,7 +144,7 @@ For example, \"2\" for /dev/tty2." | |||
| 144 | (event (if w | 144 | (event (if w |
| 145 | (posn-at-x-y (- x left) (- y top) w t) | 145 | (posn-at-x-y (- x left) (- y top) w t) |
| 146 | (append (list nil 'menu-bar) | 146 | (append (list nil 'menu-bar) |
| 147 | (nthcdr 2 (posn-at-x-y x y w t)))))) | 147 | (nthcdr 2 (posn-at-x-y x y)))))) |
| 148 | (setcar (nthcdr 3 event) time) | 148 | (setcar (nthcdr 3 event) time) |
| 149 | event)) | 149 | event)) |
| 150 | 150 | ||
diff --git a/lisp/term.el b/lisp/term.el index a853c12ec39..4ec195662ca 100644 --- a/lisp/term.el +++ b/lisp/term.el | |||
| @@ -627,7 +627,7 @@ executed once when the buffer is created." | |||
| 627 | "Keyboard map for sending characters directly to the inferior process.") | 627 | "Keyboard map for sending characters directly to the inferior process.") |
| 628 | (defvar term-escape-char nil | 628 | (defvar term-escape-char nil |
| 629 | "Escape character for char sub-mode of term mode. | 629 | "Escape character for char sub-mode of term mode. |
| 630 | Do not change it directly; use `term-set-escape-char' instead.") | 630 | Do not change it directly; use `term-set-escape-char' instead.") |
| 631 | (defvar term-raw-escape-map nil) | 631 | (defvar term-raw-escape-map nil) |
| 632 | 632 | ||
| 633 | (defvar term-pager-break-map nil) | 633 | (defvar term-pager-break-map nil) |
| @@ -714,7 +714,7 @@ Buffer local variable.") | |||
| 714 | (defvar term-buffer-maximum-size 2048 | 714 | (defvar term-buffer-maximum-size 2048 |
| 715 | "*The maximum size in lines for term buffers. | 715 | "*The maximum size in lines for term buffers. |
| 716 | Term buffers are truncated from the top to be no greater than this number. | 716 | Term buffers are truncated from the top to be no greater than this number. |
| 717 | Notice that a setting of 0 means 'don't truncate anything'. This variable | 717 | Notice that a setting of 0 means \"don't truncate anything\". This variable |
| 718 | is buffer-local.") | 718 | is buffer-local.") |
| 719 | ;;; | 719 | ;;; |
| 720 | 720 | ||
| @@ -856,7 +856,7 @@ is buffer-local.") | |||
| 856 | ;; Set up term-raw-map, etc. | 856 | ;; Set up term-raw-map, etc. |
| 857 | 857 | ||
| 858 | (defun term-set-escape-char (c) | 858 | (defun term-set-escape-char (c) |
| 859 | "Change term-escape-char and keymaps that depend on it." | 859 | "Change `term-escape-char' and keymaps that depend on it." |
| 860 | (when term-escape-char | 860 | (when term-escape-char |
| 861 | (define-key term-raw-map term-escape-char 'term-send-raw)) | 861 | (define-key term-raw-map term-escape-char 'term-send-raw)) |
| 862 | (setq c (make-string 1 c)) | 862 | (setq c (make-string 1 c)) |
| @@ -1100,7 +1100,7 @@ Entry to this mode runs the hooks on `term-mode-hook'." | |||
| 1100 | (make-local-variable 'term-current-face) | 1100 | (make-local-variable 'term-current-face) |
| 1101 | (make-local-variable 'term-pending-frame) | 1101 | (make-local-variable 'term-pending-frame) |
| 1102 | (setq term-pending-frame nil) | 1102 | (setq term-pending-frame nil) |
| 1103 | ;; Cua-mode's keybindings interfere with the term keybindings, disable it. | 1103 | ;; Cua-mode's keybindings interfere with the term keybindings, disable it. |
| 1104 | (set (make-local-variable 'cua-mode) nil) | 1104 | (set (make-local-variable 'cua-mode) nil) |
| 1105 | (run-mode-hooks 'term-mode-hook) | 1105 | (run-mode-hooks 'term-mode-hook) |
| 1106 | (when (featurep 'xemacs) | 1106 | (when (featurep 'xemacs) |
| @@ -1196,7 +1196,7 @@ without any interpretation." | |||
| 1196 | "Insert the last stretch of killed text at the position clicked on." | 1196 | "Insert the last stretch of killed text at the position clicked on." |
| 1197 | (interactive "e\nP") | 1197 | (interactive "e\nP") |
| 1198 | (if (featurep 'xemacs) | 1198 | (if (featurep 'xemacs) |
| 1199 | (term-send-raw-string | 1199 | (term-send-raw-string |
| 1200 | (or (condition-case () (x-get-selection) (error ())) | 1200 | (or (condition-case () (x-get-selection) (error ())) |
| 1201 | (x-get-cutbuffer) | 1201 | (x-get-cutbuffer) |
| 1202 | (error "No selection or cut buffer available"))) | 1202 | (error "No selection or cut buffer available"))) |
| @@ -1314,7 +1314,7 @@ commands to use in that buffer. | |||
| 1314 | "Start up a process in buffer for term modes. | 1314 | "Start up a process in buffer for term modes. |
| 1315 | Blasts any old process running in the buffer. Doesn't set the buffer mode. | 1315 | Blasts any old process running in the buffer. Doesn't set the buffer mode. |
| 1316 | You can use this to cheaply run a series of processes in the same term | 1316 | You can use this to cheaply run a series of processes in the same term |
| 1317 | buffer. The hook term-exec-hook is run after each exec." | 1317 | buffer. The hook `term-exec-hook' is run after each exec." |
| 1318 | (save-excursion | 1318 | (save-excursion |
| 1319 | (set-buffer buffer) | 1319 | (set-buffer buffer) |
| 1320 | (let ((proc (get-buffer-process buffer))) ; Blast any old process. | 1320 | (let ((proc (get-buffer-process buffer))) ; Blast any old process. |
| @@ -1344,7 +1344,7 @@ buffer. The hook term-exec-hook is run after each exec." | |||
| 1344 | (run-hooks 'term-exec-hook) | 1344 | (run-hooks 'term-exec-hook) |
| 1345 | buffer))) | 1345 | buffer))) |
| 1346 | 1346 | ||
| 1347 | (defun term-sentinel (proc msg) | 1347 | (defun term-sentinel (proc msg) |
| 1348 | "Sentinel for term buffers. | 1348 | "Sentinel for term buffers. |
| 1349 | The main purpose is to get rid of the local keymap." | 1349 | The main purpose is to get rid of the local keymap." |
| 1350 | (let ((buffer (process-buffer proc))) | 1350 | (let ((buffer (process-buffer proc))) |
| @@ -1404,7 +1404,7 @@ The main purpose is to get rid of the local keymap." | |||
| 1404 | :kb=^?:kD=^[[3~:sc=\\E7:rc=\\E8:r1=\\Ec:" | 1404 | :kb=^?:kD=^[[3~:sc=\\E7:rc=\\E8:r1=\\Ec:" |
| 1405 | ;;; : -undefine ic | 1405 | ;;; : -undefine ic |
| 1406 | ;;; don't define :te=\\E[2J\\E[?47l\\E8:ti=\\E7\\E[?47h\ | 1406 | ;;; don't define :te=\\E[2J\\E[?47l\\E8:ti=\\E7\\E[?47h\ |
| 1407 | "termcap capabilities supported") | 1407 | "Termcap capabilities supported.") |
| 1408 | 1408 | ||
| 1409 | ;;; This auxiliary function cranks up the process for term-exec in | 1409 | ;;; This auxiliary function cranks up the process for term-exec in |
| 1410 | ;;; the appropriate environment. | 1410 | ;;; the appropriate environment. |
| @@ -2046,9 +2046,9 @@ Similarly for Soar, Scheme, etc." | |||
| 2046 | (funcall term-input-sender proc input))))) | 2046 | (funcall term-input-sender proc input))))) |
| 2047 | 2047 | ||
| 2048 | (defun term-get-old-input-default () | 2048 | (defun term-get-old-input-default () |
| 2049 | "Default for term-get-old-input. | 2049 | "Default for `term-get-old-input'. |
| 2050 | Take the current line, and discard any initial text matching | 2050 | Take the current line, and discard any initial text matching |
| 2051 | term-prompt-regexp." | 2051 | `term-prompt-regexp'." |
| 2052 | (save-excursion | 2052 | (save-excursion |
| 2053 | (beginning-of-line) | 2053 | (beginning-of-line) |
| 2054 | (term-skip-prompt) | 2054 | (term-skip-prompt) |
| @@ -2068,7 +2068,7 @@ Calls `term-get-old-input' to get old input." | |||
| 2068 | (insert input)))) | 2068 | (insert input)))) |
| 2069 | 2069 | ||
| 2070 | (defun term-skip-prompt () | 2070 | (defun term-skip-prompt () |
| 2071 | "Skip past the text matching regexp term-prompt-regexp. | 2071 | "Skip past the text matching regexp `term-prompt-regexp'. |
| 2072 | If this takes us past the end of the current line, don't skip at all." | 2072 | If this takes us past the end of the current line, don't skip at all." |
| 2073 | (let ((eol (save-excursion (end-of-line) (point)))) | 2073 | (let ((eol (save-excursion (end-of-line) (point)))) |
| 2074 | (when (and (looking-at term-prompt-regexp) | 2074 | (when (and (looking-at term-prompt-regexp) |
| @@ -2099,7 +2099,7 @@ If a prefix argument is given (\\[universal-argument]), then no prompt skip | |||
| 2099 | -- go straight to column 0. | 2099 | -- go straight to column 0. |
| 2100 | 2100 | ||
| 2101 | The prompt skip is done by skipping text matching the regular expression | 2101 | The prompt skip is done by skipping text matching the regular expression |
| 2102 | term-prompt-regexp, a buffer local variable." | 2102 | `term-prompt-regexp', a buffer local variable." |
| 2103 | (interactive "P") | 2103 | (interactive "P") |
| 2104 | (beginning-of-line) | 2104 | (beginning-of-line) |
| 2105 | (when (null arg) (term-skip-prompt))) | 2105 | (when (null arg) (term-skip-prompt))) |
| @@ -2182,8 +2182,8 @@ If your process is choking on big inputs, try lowering the value.") | |||
| 2182 | 2182 | ||
| 2183 | (defun term-send-string (proc str) | 2183 | (defun term-send-string (proc str) |
| 2184 | "Send to PROC the contents of STR as input. | 2184 | "Send to PROC the contents of STR as input. |
| 2185 | This is equivalent to process-send-string, except that long input strings | 2185 | This is equivalent to `process-send-string', except that long input strings |
| 2186 | are broken up into chunks of size term-input-chunk-size. Processes | 2186 | are broken up into chunks of size `term-input-chunk-size'. Processes |
| 2187 | are given a chance to output between chunks. This can help prevent processes | 2187 | are given a chance to output between chunks. This can help prevent processes |
| 2188 | from hanging when you send them long inputs on some OS's." | 2188 | from hanging when you send them long inputs on some OS's." |
| 2189 | (let* ((len (length str)) | 2189 | (let* ((len (length str)) |
| @@ -2197,7 +2197,7 @@ from hanging when you send them long inputs on some OS's." | |||
| 2197 | 2197 | ||
| 2198 | (defun term-send-region (proc start end) | 2198 | (defun term-send-region (proc start end) |
| 2199 | "Send to PROC the region delimited by START and END. | 2199 | "Send to PROC the region delimited by START and END. |
| 2200 | This is a replacement for process-send-region that tries to keep | 2200 | This is a replacement for `process-send-region' that tries to keep |
| 2201 | your process from hanging on long inputs. See `term-send-string'." | 2201 | your process from hanging on long inputs. See `term-send-string'." |
| 2202 | (term-send-string proc (buffer-substring start end))) | 2202 | (term-send-string proc (buffer-substring start end))) |
| 2203 | 2203 | ||
| @@ -2876,7 +2876,7 @@ See `term-prompt-regexp'." | |||
| 2876 | ;; (setq term-terminal-state 0)) | 2876 | ;; (setq term-terminal-state 0)) |
| 2877 | ((eq char ?M) ;; scroll reversed (terminfo: ri) | 2877 | ((eq char ?M) ;; scroll reversed (terminfo: ri) |
| 2878 | (if (or (< (term-current-row) term-scroll-start) | 2878 | (if (or (< (term-current-row) term-scroll-start) |
| 2879 | (>= (1- (term-current-row)) | 2879 | (>= (1- (term-current-row)) |
| 2880 | term-scroll-start)) | 2880 | term-scroll-start)) |
| 2881 | ;; Scrolling up will not move outside | 2881 | ;; Scrolling up will not move outside |
| 2882 | ;; the scroll region. | 2882 | ;; the scroll region. |
| @@ -2902,7 +2902,7 @@ See `term-prompt-regexp'." | |||
| 2902 | (when term-saved-cursor | 2902 | (when term-saved-cursor |
| 2903 | (term-goto (nth 0 term-saved-cursor) | 2903 | (term-goto (nth 0 term-saved-cursor) |
| 2904 | (nth 1 term-saved-cursor)) | 2904 | (nth 1 term-saved-cursor)) |
| 2905 | (setq term-ansi-current-bg-color | 2905 | (setq term-ansi-current-bg-color |
| 2906 | (nth 2 term-saved-cursor) | 2906 | (nth 2 term-saved-cursor) |
| 2907 | term-ansi-current-bold | 2907 | term-ansi-current-bold |
| 2908 | (nth 3 term-saved-cursor) | 2908 | (nth 3 term-saved-cursor) |
| @@ -3190,7 +3190,7 @@ See `term-prompt-regexp'." | |||
| 3190 | (when term-ansi-current-underline | 3190 | (when term-ansi-current-underline |
| 3191 | (setq term-current-face | 3191 | (setq term-current-face |
| 3192 | (append '(:underline t) term-current-face)))))) | 3192 | (append '(:underline t) term-current-face)))))) |
| 3193 | 3193 | ||
| 3194 | ;;; (message "Debug %S" term-current-face) | 3194 | ;;; (message "Debug %S" term-current-face) |
| 3195 | (setq term-ansi-face-already-done nil)) | 3195 | (setq term-ansi-face-already-done nil)) |
| 3196 | 3196 | ||
| @@ -3219,7 +3219,7 @@ See `term-prompt-regexp'." | |||
| 3219 | ((eq char ?A) | 3219 | ((eq char ?A) |
| 3220 | (term-handle-deferred-scroll) | 3220 | (term-handle-deferred-scroll) |
| 3221 | (let ((tcr (term-current-row))) | 3221 | (let ((tcr (term-current-row))) |
| 3222 | (term-down | 3222 | (term-down |
| 3223 | (if (< (- tcr term-terminal-parameter) term-scroll-start) | 3223 | (if (< (- tcr term-terminal-parameter) term-scroll-start) |
| 3224 | ;; If the amount to move is before scroll start, move | 3224 | ;; If the amount to move is before scroll start, move |
| 3225 | ;; to scroll start. | 3225 | ;; to scroll start. |
| @@ -3231,7 +3231,7 @@ See `term-prompt-regexp'." | |||
| 3231 | ((eq char ?B) | 3231 | ((eq char ?B) |
| 3232 | (let ((tcr (term-current-row))) | 3232 | (let ((tcr (term-current-row))) |
| 3233 | (unless (= tcr (1- term-scroll-end)) | 3233 | (unless (= tcr (1- term-scroll-end)) |
| 3234 | (term-down | 3234 | (term-down |
| 3235 | (if (> (+ tcr term-terminal-parameter) term-scroll-end) | 3235 | (if (> (+ tcr term-terminal-parameter) term-scroll-end) |
| 3236 | (- term-scroll-end 1 tcr) | 3236 | (- term-scroll-end 1 tcr) |
| 3237 | (max 1 term-terminal-parameter)) t)))) | 3237 | (max 1 term-terminal-parameter)) t)))) |
| @@ -3495,7 +3495,7 @@ The top-most line is line 0." | |||
| 3495 | ((term-pager-continue deficit))))) | 3495 | ((term-pager-continue deficit))))) |
| 3496 | 3496 | ||
| 3497 | (defun term-pager-page (arg) | 3497 | (defun term-pager-page (arg) |
| 3498 | "Proceed past the **MORE** break, allowing the next page of output to appear" | 3498 | "Proceed past the **MORE** break, allowing the next page of output to appear." |
| 3499 | (interactive "p") | 3499 | (interactive "p") |
| 3500 | (term-pager-line (* arg term-height))) | 3500 | (term-pager-line (* arg term-height))) |
| 3501 | 3501 | ||
| @@ -3564,7 +3564,7 @@ The top-most line is line 0." | |||
| 3564 | (put 'term-fake-pager-disable 'menu-enable 'term-pager-count)) | 3564 | (put 'term-fake-pager-disable 'menu-enable 'term-pager-count)) |
| 3565 | 3565 | ||
| 3566 | (defun term-pager-help () | 3566 | (defun term-pager-help () |
| 3567 | "Provide help on commands available in a terminal-emulator **MORE** break" | 3567 | "Provide help on commands available in a terminal-emulator **MORE** break." |
| 3568 | (interactive) | 3568 | (interactive) |
| 3569 | (message "Terminal-emulator pager break help...") | 3569 | (message "Terminal-emulator pager break help...") |
| 3570 | (sit-for 0) | 3570 | (sit-for 0) |
| @@ -3606,9 +3606,9 @@ all pending output has been dealt with.")) | |||
| 3606 | 3606 | ||
| 3607 | (defun term-handle-scroll (down) | 3607 | (defun term-handle-scroll (down) |
| 3608 | (let ((scroll-needed | 3608 | (let ((scroll-needed |
| 3609 | (- (+ (term-current-row) down) | 3609 | (- (+ (term-current-row) down) |
| 3610 | (if (< down 0) term-scroll-start term-scroll-end)))) | 3610 | (if (< down 0) term-scroll-start term-scroll-end)))) |
| 3611 | (when (or (and (< down 0) (< scroll-needed 0)) | 3611 | (when (or (and (< down 0) (< scroll-needed 0)) |
| 3612 | (and (> down 0) (> scroll-needed 0))) | 3612 | (and (> down 0) (> scroll-needed 0))) |
| 3613 | (let ((save-point (copy-marker (point))) (save-top)) | 3613 | (let ((save-point (copy-marker (point))) (save-top)) |
| 3614 | (goto-char term-home-marker) | 3614 | (goto-char term-home-marker) |
| @@ -3706,7 +3706,7 @@ all pending output has been dealt with.")) | |||
| 3706 | ;; contain a space, to force the previous line to continue to wrap. | 3706 | ;; contain a space, to force the previous line to continue to wrap. |
| 3707 | ;; We could do this always, but it seems preferable to not add the | 3707 | ;; We could do this always, but it seems preferable to not add the |
| 3708 | ;; extra space when wrapped is false. | 3708 | ;; extra space when wrapped is false. |
| 3709 | (when wrapped | 3709 | (when wrapped |
| 3710 | (insert ? )) | 3710 | (insert ? )) |
| 3711 | (insert ?\n) | 3711 | (insert ?\n) |
| 3712 | (put-text-property saved-point (point) 'face 'default) | 3712 | (put-text-property saved-point (point) 'face 'default) |
| @@ -3797,8 +3797,8 @@ Should only be called when point is at the start of a screen line." | |||
| 3797 | ;; we need to go one line past it in order to ensure correct | 3797 | ;; we need to go one line past it in order to ensure correct |
| 3798 | ;; scrolling. | 3798 | ;; scrolling. |
| 3799 | (if (< save-current-row term-scroll-start) | 3799 | (if (< save-current-row term-scroll-start) |
| 3800 | ;; If point is before scroll start, | 3800 | ;; If point is before scroll start, |
| 3801 | (progn | 3801 | (progn |
| 3802 | (setq lines (- lines (- term-scroll-start save-current-row))) | 3802 | (setq lines (- lines (- term-scroll-start save-current-row))) |
| 3803 | (term-down (- term-scroll-start save-current-row)) | 3803 | (term-down (- term-scroll-start save-current-row)) |
| 3804 | (setq start (point))) | 3804 | (setq start (point))) |
diff --git a/lisp/term/xterm.el b/lisp/term/xterm.el index 9ac820dda72..f601976cd63 100644 --- a/lisp/term/xterm.el +++ b/lisp/term/xterm.el | |||
| @@ -163,6 +163,22 @@ | |||
| 163 | (define-key xterm-function-map "\e[4~" [select]) | 163 | (define-key xterm-function-map "\e[4~" [select]) |
| 164 | (define-key xterm-function-map "\e[29~" [print]) | 164 | (define-key xterm-function-map "\e[29~" [print]) |
| 165 | 165 | ||
| 166 | (define-key xterm-function-map "\eOj" [kp-multiply]) | ||
| 167 | (define-key xterm-function-map "\eOk" [kp-add]) | ||
| 168 | (define-key xterm-function-map "\eOl" [kp-separator]) | ||
| 169 | (define-key xterm-function-map "\eOm" [kp-subtract]) | ||
| 170 | (define-key xterm-function-map "\eOo" [kp-divide]) | ||
| 171 | (define-key xterm-function-map "\eOp" [kp-0]) | ||
| 172 | (define-key xterm-function-map "\eOq" [kp-1]) | ||
| 173 | (define-key xterm-function-map "\eOr" [kp-2]) | ||
| 174 | (define-key xterm-function-map "\eOs" [kp-3]) | ||
| 175 | (define-key xterm-function-map "\eOt" [kp-4]) | ||
| 176 | (define-key xterm-function-map "\eOu" [kp-5]) | ||
| 177 | (define-key xterm-function-map "\eOv" [kp-6]) | ||
| 178 | (define-key xterm-function-map "\eOw" [kp-7]) | ||
| 179 | (define-key xterm-function-map "\eOx" [kp-8]) | ||
| 180 | (define-key xterm-function-map "\eOy" [kp-9]) | ||
| 181 | |||
| 166 | ;; These keys are available in xterm starting from version 216 | 182 | ;; These keys are available in xterm starting from version 216 |
| 167 | ;; if the modifyOtherKeys resource is set to 1. | 183 | ;; if the modifyOtherKeys resource is set to 1. |
| 168 | 184 | ||
| @@ -177,7 +193,7 @@ | |||
| 177 | (define-key xterm-function-map "\e[27;5;49~" [?\C-1]) | 193 | (define-key xterm-function-map "\e[27;5;49~" [?\C-1]) |
| 178 | ;; Not all C-DIGIT keys have a distinct binding. | 194 | ;; Not all C-DIGIT keys have a distinct binding. |
| 179 | (define-key xterm-function-map "\e[27;5;57~" [?\C-9]) | 195 | (define-key xterm-function-map "\e[27;5;57~" [?\C-9]) |
| 180 | (define-key xterm-function-map "\e[27;5;59~" [(C-\;)]) | 196 | (define-key xterm-function-map "\e[27;5;59~" [?\C-\;]) |
| 181 | (define-key xterm-function-map "\e[27;5;61~" [?\C-=]) | 197 | (define-key xterm-function-map "\e[27;5;61~" [?\C-=]) |
| 182 | (define-key xterm-function-map "\e[27;5;92~" [?\C-\\]) | 198 | (define-key xterm-function-map "\e[27;5;92~" [?\C-\\]) |
| 183 | 199 | ||
| @@ -186,7 +202,7 @@ | |||
| 186 | (define-key xterm-function-map "\e[27;6;35~" [?\C-#]) | 202 | (define-key xterm-function-map "\e[27;6;35~" [?\C-#]) |
| 187 | (define-key xterm-function-map "\e[27;6;36~" [?\C-$]) | 203 | (define-key xterm-function-map "\e[27;6;36~" [?\C-$]) |
| 188 | (define-key xterm-function-map "\e[27;6;37~" [?\C-%]) | 204 | (define-key xterm-function-map "\e[27;6;37~" [?\C-%]) |
| 189 | (define-key xterm-function-map "\e[27;6;38~" [(C-&)]) | 205 | (define-key xterm-function-map "\e[27;6;38~" [?\C-&]) |
| 190 | (define-key xterm-function-map "\e[27;6;40~" [?\C-(]) | 206 | (define-key xterm-function-map "\e[27;6;40~" [?\C-(]) |
| 191 | (define-key xterm-function-map "\e[27;6;41~" [?\C-)]) | 207 | (define-key xterm-function-map "\e[27;6;41~" [?\C-)]) |
| 192 | (define-key xterm-function-map "\e[27;6;42~" [?\C-*]) | 208 | (define-key xterm-function-map "\e[27;6;42~" [?\C-*]) |
| @@ -194,13 +210,13 @@ | |||
| 194 | (define-key xterm-function-map "\e[27;6;58~" [?\C-:]) | 210 | (define-key xterm-function-map "\e[27;6;58~" [?\C-:]) |
| 195 | (define-key xterm-function-map "\e[27;6;60~" [?\C-<]) | 211 | (define-key xterm-function-map "\e[27;6;60~" [?\C-<]) |
| 196 | (define-key xterm-function-map "\e[27;6;62~" [?\C->]) | 212 | (define-key xterm-function-map "\e[27;6;62~" [?\C->]) |
| 197 | (define-key xterm-function-map "\e[27;6;63~" [(C-\?)]) | 213 | (define-key xterm-function-map "\e[27;6;63~" [(control ??)]) |
| 198 | 214 | ||
| 199 | ;; These are the strings emitted for various C-M- combinations | 215 | ;; These are the strings emitted for various C-M- combinations |
| 200 | ;; for keyboards that the Meta and Alt modifiers are on the same | 216 | ;; for keyboards that the Meta and Alt modifiers are on the same |
| 201 | ;; key (usually labeled "Alt"). | 217 | ;; key (usually labeled "Alt"). |
| 202 | (define-key xterm-function-map "\e[27;13;9~" [(C-M-tab)]) | 218 | (define-key xterm-function-map "\e[27;13;9~" [C-M-tab]) |
| 203 | (define-key xterm-function-map "\e[27;13;13~" [(C-M-return)]) | 219 | (define-key xterm-function-map "\e[27;13;13~" [C-M-return]) |
| 204 | 220 | ||
| 205 | (define-key xterm-function-map "\e[27;13;39~" [?\C-\M-\']) | 221 | (define-key xterm-function-map "\e[27;13;39~" [?\C-\M-\']) |
| 206 | (define-key xterm-function-map "\e[27;13;44~" [?\C-\M-,]) | 222 | (define-key xterm-function-map "\e[27;13;44~" [?\C-\M-,]) |
| @@ -226,7 +242,7 @@ | |||
| 226 | (define-key xterm-function-map "\e[27;14;35~" [?\C-\M-#]) | 242 | (define-key xterm-function-map "\e[27;14;35~" [?\C-\M-#]) |
| 227 | (define-key xterm-function-map "\e[27;14;36~" [?\C-\M-$]) | 243 | (define-key xterm-function-map "\e[27;14;36~" [?\C-\M-$]) |
| 228 | (define-key xterm-function-map "\e[27;14;37~" [?\C-\M-%]) | 244 | (define-key xterm-function-map "\e[27;14;37~" [?\C-\M-%]) |
| 229 | (define-key xterm-function-map "\e[27;14;38~" [(C-M-&)]) | 245 | (define-key xterm-function-map "\e[27;14;38~" [?\C-\M-&]) |
| 230 | (define-key xterm-function-map "\e[27;14;40~" [?\C-\M-(]) | 246 | (define-key xterm-function-map "\e[27;14;40~" [?\C-\M-(]) |
| 231 | (define-key xterm-function-map "\e[27;14;41~" [?\C-\M-)]) | 247 | (define-key xterm-function-map "\e[27;14;41~" [?\C-\M-)]) |
| 232 | (define-key xterm-function-map "\e[27;14;42~" [?\C-\M-*]) | 248 | (define-key xterm-function-map "\e[27;14;42~" [?\C-\M-*]) |
| @@ -234,11 +250,12 @@ | |||
| 234 | (define-key xterm-function-map "\e[27;14;58~" [?\C-\M-:]) | 250 | (define-key xterm-function-map "\e[27;14;58~" [?\C-\M-:]) |
| 235 | (define-key xterm-function-map "\e[27;14;60~" [?\C-\M-<]) | 251 | (define-key xterm-function-map "\e[27;14;60~" [?\C-\M-<]) |
| 236 | (define-key xterm-function-map "\e[27;14;62~" [?\C-\M->]) | 252 | (define-key xterm-function-map "\e[27;14;62~" [?\C-\M->]) |
| 237 | (define-key xterm-function-map "\e[27;14;63~" [(C-M-\?)]) | 253 | (define-key xterm-function-map "\e[27;14;63~" [(control meta ??)]) |
| 238 | 254 | ||
| 239 | (define-key xterm-function-map "\e[27;7;9~" [(C-M-tab)]) | 255 | (define-key xterm-function-map "\e[27;7;9~" [C-M-tab]) |
| 240 | (define-key xterm-function-map "\e[27;7;13~" [(C-M-return)]) | 256 | (define-key xterm-function-map "\e[27;7;13~" [C-M-return]) |
| 241 | 257 | ||
| 258 | (define-key xterm-function-map "\e[27;7;32~" [?\C-\M-\s]) | ||
| 242 | (define-key xterm-function-map "\e[27;7;39~" [?\C-\M-\']) | 259 | (define-key xterm-function-map "\e[27;7;39~" [?\C-\M-\']) |
| 243 | (define-key xterm-function-map "\e[27;7;44~" [?\C-\M-,]) | 260 | (define-key xterm-function-map "\e[27;7;44~" [?\C-\M-,]) |
| 244 | (define-key xterm-function-map "\e[27;7;45~" [?\C-\M--]) | 261 | (define-key xterm-function-map "\e[27;7;45~" [?\C-\M--]) |
| @@ -263,7 +280,7 @@ | |||
| 263 | (define-key xterm-function-map "\e[27;8;35~" [?\C-\M-#]) | 280 | (define-key xterm-function-map "\e[27;8;35~" [?\C-\M-#]) |
| 264 | (define-key xterm-function-map "\e[27;8;36~" [?\C-\M-$]) | 281 | (define-key xterm-function-map "\e[27;8;36~" [?\C-\M-$]) |
| 265 | (define-key xterm-function-map "\e[27;8;37~" [?\C-\M-%]) | 282 | (define-key xterm-function-map "\e[27;8;37~" [?\C-\M-%]) |
| 266 | (define-key xterm-function-map "\e[27;8;38~" [(C-M-&)]) | 283 | (define-key xterm-function-map "\e[27;8;38~" [?\C-\M-&]) |
| 267 | (define-key xterm-function-map "\e[27;8;40~" [?\C-\M-(]) | 284 | (define-key xterm-function-map "\e[27;8;40~" [?\C-\M-(]) |
| 268 | (define-key xterm-function-map "\e[27;8;41~" [?\C-\M-)]) | 285 | (define-key xterm-function-map "\e[27;8;41~" [?\C-\M-)]) |
| 269 | (define-key xterm-function-map "\e[27;8;42~" [?\C-\M-*]) | 286 | (define-key xterm-function-map "\e[27;8;42~" [?\C-\M-*]) |
| @@ -271,13 +288,13 @@ | |||
| 271 | (define-key xterm-function-map "\e[27;8;58~" [?\C-\M-:]) | 288 | (define-key xterm-function-map "\e[27;8;58~" [?\C-\M-:]) |
| 272 | (define-key xterm-function-map "\e[27;8;60~" [?\C-\M-<]) | 289 | (define-key xterm-function-map "\e[27;8;60~" [?\C-\M-<]) |
| 273 | (define-key xterm-function-map "\e[27;8;62~" [?\C-\M->]) | 290 | (define-key xterm-function-map "\e[27;8;62~" [?\C-\M->]) |
| 274 | (define-key xterm-function-map "\e[27;8;63~" [(C-M-\?)]) | 291 | (define-key xterm-function-map "\e[27;8;63~" [(control meta ??)]) |
| 275 | 292 | ||
| 276 | (define-key xterm-function-map "\e[27;2;9~" [S-tab]) | 293 | (define-key xterm-function-map "\e[27;2;9~" [S-tab]) |
| 277 | (define-key xterm-function-map "\e[27;2;13~" [S-return]) | 294 | (define-key xterm-function-map "\e[27;2;13~" [S-return]) |
| 278 | 295 | ||
| 279 | (define-key xterm-function-map "\e[27;6;9~" [(C-S-tab)]) | 296 | (define-key xterm-function-map "\e[27;6;9~" [C-S-tab]) |
| 280 | (define-key xterm-function-map "\e[27;6;13~" [(C-S-return)]) | 297 | (define-key xterm-function-map "\e[27;6;13~" [C-S-return]) |
| 281 | 298 | ||
| 282 | ;; Other versions of xterm might emit these. | 299 | ;; Other versions of xterm might emit these. |
| 283 | (define-key xterm-function-map "\e[A" [up]) | 300 | (define-key xterm-function-map "\e[A" [up]) |
diff --git a/lisp/textmodes/bibtex.el b/lisp/textmodes/bibtex.el index 06fa3a01186..0545ca85812 100644 --- a/lisp/textmodes/bibtex.el +++ b/lisp/textmodes/bibtex.el | |||
| @@ -224,7 +224,7 @@ If parsing fails, try to set this variable to nil." | |||
| 224 | :group 'bibtex | 224 | :group 'bibtex |
| 225 | :type 'boolean) | 225 | :type 'boolean) |
| 226 | 226 | ||
| 227 | (defvar bibtex-entry-field-alist | 227 | (defcustom bibtex-entry-field-alist |
| 228 | '(("Article" | 228 | '(("Article" |
| 229 | ((("author" "Author1 [and Author2 ...] [and others]") | 229 | ((("author" "Author1 [and Author2 ...] [and others]") |
| 230 | ("title" "Title of the article (BibTeX converts it to lowercase)") | 230 | ("title" "Title of the article (BibTeX converts it to lowercase)") |
| @@ -452,7 +452,47 @@ appears in the echo area, INIT is either the initial content of the | |||
| 452 | field or a function, which is called to determine the initial content | 452 | field or a function, which is called to determine the initial content |
| 453 | of the field, and ALTERNATIVE-FLAG (either nil or t) marks if the | 453 | of the field, and ALTERNATIVE-FLAG (either nil or t) marks if the |
| 454 | field is an alternative. ALTERNATIVE-FLAG may be t only in the | 454 | field is an alternative. ALTERNATIVE-FLAG may be t only in the |
| 455 | REQUIRED or CROSSREF-REQUIRED lists.") | 455 | REQUIRED or CROSSREF-REQUIRED lists." |
| 456 | :group 'bibtex | ||
| 457 | :type '(repeat (list (string :tag "Entry name") | ||
| 458 | (list (repeat :tag "required" | ||
| 459 | (group (string :tag "Field") | ||
| 460 | (string :tag "Comment") | ||
| 461 | (option (choice :tag "Init" :value nil | ||
| 462 | (const nil) | ||
| 463 | (string :tag "string") | ||
| 464 | (function :tag "function"))) | ||
| 465 | (option (choice (const nil) | ||
| 466 | (const :tag "Alternative" t))))) | ||
| 467 | (repeat :tag "optional" | ||
| 468 | (group (string :tag "Field") | ||
| 469 | (string :tag "Comment") | ||
| 470 | (option (choice :tag "Init" :value nil | ||
| 471 | (const nil) | ||
| 472 | (string :tag "string") | ||
| 473 | (function :tag "function"))) | ||
| 474 | (option (choice (const nil) | ||
| 475 | (const :tag "Alternative" t)))))) | ||
| 476 | (option | ||
| 477 | (list :tag "Crossref" | ||
| 478 | (repeat :tag "required" | ||
| 479 | (group (string :tag "Field") | ||
| 480 | (string :tag "Comment") | ||
| 481 | (option (choice :tag "Init" :value nil | ||
| 482 | (const nil) | ||
| 483 | (string :tag "string") | ||
| 484 | (function :tag "function"))) | ||
| 485 | (option (choice (const nil) | ||
| 486 | (const :tag "Alternative" t))))) | ||
| 487 | (repeat :tag "optional" | ||
| 488 | (group (string :tag "Field") | ||
| 489 | (string :tag "Comment") | ||
| 490 | (option (choice :tag "Init" :value nil | ||
| 491 | (const nil) | ||
| 492 | (string :tag "string") | ||
| 493 | (function :tag "function"))) | ||
| 494 | (option (choice (const nil) | ||
| 495 | (const :tag "Alternative" t)))))))))) | ||
| 456 | (put 'bibtex-entry-field-alist 'risky-local-variable t) | 496 | (put 'bibtex-entry-field-alist 'risky-local-variable t) |
| 457 | 497 | ||
| 458 | (defcustom bibtex-comment-start "@Comment" | 498 | (defcustom bibtex-comment-start "@Comment" |
| @@ -1785,7 +1825,7 @@ Optional arg COMMA is as in `bibtex-enclosing-field'." | |||
| 1785 | (set-mark (point)) | 1825 | (set-mark (point)) |
| 1786 | (message "Mark set") | 1826 | (message "Mark set") |
| 1787 | (bibtex-make-field (funcall fun 'bibtex-field-kill-ring-yank-pointer | 1827 | (bibtex-make-field (funcall fun 'bibtex-field-kill-ring-yank-pointer |
| 1788 | bibtex-field-kill-ring) t)) | 1828 | bibtex-field-kill-ring) t nil t)) |
| 1789 | ;; insert past the current entry | 1829 | ;; insert past the current entry |
| 1790 | (bibtex-skip-to-valid-entry) | 1830 | (bibtex-skip-to-valid-entry) |
| 1791 | (set-mark (point)) | 1831 | (set-mark (point)) |
| @@ -2831,7 +2871,7 @@ and `bibtex-user-optional-fields'." | |||
| 2831 | (push (list "key" | 2871 | (push (list "key" |
| 2832 | "Used for reference key creation if author and editor fields are missing" | 2872 | "Used for reference key creation if author and editor fields are missing" |
| 2833 | (if (or (stringp bibtex-include-OPTkey) | 2873 | (if (or (stringp bibtex-include-OPTkey) |
| 2834 | (fboundp bibtex-include-OPTkey)) | 2874 | (functionp bibtex-include-OPTkey)) |
| 2835 | bibtex-include-OPTkey)) | 2875 | bibtex-include-OPTkey)) |
| 2836 | optional)) | 2876 | optional)) |
| 2837 | (if (member-ignore-case entry-type bibtex-include-OPTcrossref) | 2877 | (if (member-ignore-case entry-type bibtex-include-OPTcrossref) |
| @@ -3020,7 +3060,7 @@ interactive calls." | |||
| 3020 | (if comment (message "%s" (nth 1 comment)) | 3060 | (if comment (message "%s" (nth 1 comment)) |
| 3021 | (message "No comment available"))))) | 3061 | (message "No comment available"))))) |
| 3022 | 3062 | ||
| 3023 | (defun bibtex-make-field (field &optional move interactive) | 3063 | (defun bibtex-make-field (field &optional move interactive nodelim) |
| 3024 | "Make a field named FIELD in current BibTeX entry. | 3064 | "Make a field named FIELD in current BibTeX entry. |
| 3025 | FIELD is either a string or a list of the form | 3065 | FIELD is either a string or a list of the form |
| 3026 | \(FIELD-NAME COMMENT-STRING INIT ALTERNATIVE-FLAG) as in | 3066 | \(FIELD-NAME COMMENT-STRING INIT ALTERNATIVE-FLAG) as in |
| @@ -3028,7 +3068,8 @@ FIELD is either a string or a list of the form | |||
| 3028 | If MOVE is non-nil, move point past the present field before making | 3068 | If MOVE is non-nil, move point past the present field before making |
| 3029 | the new field. If INTERACTIVE is non-nil, move point to the end of | 3069 | the new field. If INTERACTIVE is non-nil, move point to the end of |
| 3030 | the new field. Otherwise move point past the new field. | 3070 | the new field. Otherwise move point past the new field. |
| 3031 | MOVE and INTERACTIVE are t when called interactively." | 3071 | MOVE and INTERACTIVE are t when called interactively. |
| 3072 | INIT is surrounded by field delimiters, unless NODELIM is non-nil." | ||
| 3032 | (interactive | 3073 | (interactive |
| 3033 | (list (let ((completion-ignore-case t) | 3074 | (list (let ((completion-ignore-case t) |
| 3034 | (field-list (bibtex-field-list | 3075 | (field-list (bibtex-field-list |
| @@ -3058,10 +3099,13 @@ MOVE and INTERACTIVE are t when called interactively." | |||
| 3058 | (indent-to-column (+ bibtex-entry-offset | 3099 | (indent-to-column (+ bibtex-entry-offset |
| 3059 | bibtex-text-indentation))) | 3100 | bibtex-text-indentation))) |
| 3060 | (let ((init (nth 2 field))) | 3101 | (let ((init (nth 2 field))) |
| 3061 | (insert (cond ((stringp init) init) | 3102 | (if (not init) (setq init "") |
| 3062 | ((fboundp init) (funcall init)) | 3103 | (if (functionp init) (setq init (funcall init))) |
| 3063 | (t (concat (bibtex-field-left-delimiter) | 3104 | (unless (stringp init) (error "`%s' is not a string" init))) |
| 3064 | (bibtex-field-right-delimiter)))))) | 3105 | ;; NODELIM is required by `bibtex-insert-kill' |
| 3106 | (if nodelim (insert init) | ||
| 3107 | (insert (bibtex-field-left-delimiter) init | ||
| 3108 | (bibtex-field-right-delimiter)))) | ||
| 3065 | (when interactive | 3109 | (when interactive |
| 3066 | ;; (bibtex-find-text nil nil bibtex-help-message) | 3110 | ;; (bibtex-find-text nil nil bibtex-help-message) |
| 3067 | (if (memq (preceding-char) '(?} ?\")) (forward-char -1)) | 3111 | (if (memq (preceding-char) '(?} ?\")) (forward-char -1)) |
diff --git a/lisp/textmodes/flyspell.el b/lisp/textmodes/flyspell.el index a6bd082af38..339160db9bd 100644 --- a/lisp/textmodes/flyspell.el +++ b/lisp/textmodes/flyspell.el | |||
| @@ -431,7 +431,7 @@ property of the major mode name.") | |||
| 431 | (defface flyspell-incorrect | 431 | (defface flyspell-incorrect |
| 432 | '((((class color)) (:foreground "OrangeRed" :bold t :underline t)) | 432 | '((((class color)) (:foreground "OrangeRed" :bold t :underline t)) |
| 433 | (t (:bold t))) | 433 | (t (:bold t))) |
| 434 | "Face used to display a misspelled word in Flyspell." | 434 | "Face used for marking a misspelled word in Flyspell." |
| 435 | :group 'flyspell) | 435 | :group 'flyspell) |
| 436 | ;; backward-compatibility alias | 436 | ;; backward-compatibility alias |
| 437 | (put 'flyspell-incorrect-face 'face-alias 'flyspell-incorrect) | 437 | (put 'flyspell-incorrect-face 'face-alias 'flyspell-incorrect) |
| @@ -439,7 +439,7 @@ property of the major mode name.") | |||
| 439 | (defface flyspell-duplicate | 439 | (defface flyspell-duplicate |
| 440 | '((((class color)) (:foreground "Gold3" :bold t :underline t)) | 440 | '((((class color)) (:foreground "Gold3" :bold t :underline t)) |
| 441 | (t (:bold t))) | 441 | (t (:bold t))) |
| 442 | "Face used to display subsequent occurrences of a misspelled word. | 442 | "Face used for marking a misspelled word that appears twice in the buffer. |
| 443 | See also `flyspell-duplicate-distance'." | 443 | See also `flyspell-duplicate-distance'." |
| 444 | :group 'flyspell) | 444 | :group 'flyspell) |
| 445 | ;; backward-compatibility alias | 445 | ;; backward-compatibility alias |
| @@ -1509,7 +1509,7 @@ The buffer to mark them in is `flyspell-large-region-buffer'." | |||
| 1509 | (if flyspell-issue-message-flag (message "Checking region...")) | 1509 | (if flyspell-issue-message-flag (message "Checking region...")) |
| 1510 | (set-buffer curbuf) | 1510 | (set-buffer curbuf) |
| 1511 | (ispell-check-version) | 1511 | (ispell-check-version) |
| 1512 | (let ((c (apply 'call-process-region beg | 1512 | (let ((c (apply 'ispell-call-process-region beg |
| 1513 | end | 1513 | end |
| 1514 | ispell-program-name | 1514 | ispell-program-name |
| 1515 | nil | 1515 | nil |
diff --git a/lisp/textmodes/org.el b/lisp/textmodes/org.el index a727fa2df5a..8ee12638dee 100644 --- a/lisp/textmodes/org.el +++ b/lisp/textmodes/org.el | |||
| @@ -5,7 +5,7 @@ | |||
| 5 | ;; Author: Carsten Dominik <dominik at science dot uva dot nl> | 5 | ;; Author: Carsten Dominik <dominik at science dot uva dot nl> |
| 6 | ;; Keywords: outlines, hypermedia, calendar, wp | 6 | ;; Keywords: outlines, hypermedia, calendar, wp |
| 7 | ;; Homepage: http://www.astro.uva.nl/~dominik/Tools/org/ | 7 | ;; Homepage: http://www.astro.uva.nl/~dominik/Tools/org/ |
| 8 | ;; Version: 4.67c | 8 | ;; Version: 4.67d |
| 9 | ;; | 9 | ;; |
| 10 | ;; This file is part of GNU Emacs. | 10 | ;; This file is part of GNU Emacs. |
| 11 | ;; | 11 | ;; |
| @@ -7952,7 +7952,10 @@ Parameters get priority." | |||
| 7952 | entry s) | 7952 | entry s) |
| 7953 | (switch-to-buffer-other-window "*Edit Formulas*") | 7953 | (switch-to-buffer-other-window "*Edit Formulas*") |
| 7954 | (erase-buffer) | 7954 | (erase-buffer) |
| 7955 | (fundamental-mode) | 7955 | ;; Keep global-font-lock-mode from turning on font-lock-mode |
| 7956 | (let ((font-lock-global-modes '(not fundamental-mode))) | ||
| 7957 | (fundamental-mode)) | ||
| 7958 | (org-set-local 'font-lock-global-modes (list 'not major-mode)) | ||
| 7956 | (org-set-local 'org-pos pos) | 7959 | (org-set-local 'org-pos pos) |
| 7957 | (org-set-local 'org-window-configuration wc) | 7960 | (org-set-local 'org-window-configuration wc) |
| 7958 | (use-local-map org-edit-formulas-map) | 7961 | (use-local-map org-edit-formulas-map) |
| @@ -12945,6 +12948,8 @@ The following commands are available: | |||
| 12945 | (setq org-agenda-undo-list nil | 12948 | (setq org-agenda-undo-list nil |
| 12946 | org-agenda-pending-undo-list nil) | 12949 | org-agenda-pending-undo-list nil) |
| 12947 | (setq major-mode 'org-agenda-mode) | 12950 | (setq major-mode 'org-agenda-mode) |
| 12951 | ;; Keep global-font-lock-mode from turning on font-lock-mode | ||
| 12952 | (org-set-local 'font-lock-global-modes (list 'not major-mode)) | ||
| 12948 | (setq mode-name "Org-Agenda") | 12953 | (setq mode-name "Org-Agenda") |
| 12949 | (use-local-map org-agenda-mode-map) | 12954 | (use-local-map org-agenda-mode-map) |
| 12950 | (easy-menu-add org-agenda-menu) | 12955 | (easy-menu-add org-agenda-menu) |
diff --git a/lisp/textmodes/reftex-auc.el b/lisp/textmodes/reftex-auc.el index 7930574f0e7..02840a692e7 100644 --- a/lisp/textmodes/reftex-auc.el +++ b/lisp/textmodes/reftex-auc.el | |||
| @@ -4,6 +4,7 @@ | |||
| 4 | ;; 2006, 2007 Free Software Foundation, Inc. | 4 | ;; 2006, 2007 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Carsten Dominik <dominik@science.uva.nl> | 6 | ;; Author: Carsten Dominik <dominik@science.uva.nl> |
| 7 | ;; Maintainer: auctex-devel@gnu.org | ||
| 7 | ;; Version: 4.31 | 8 | ;; Version: 4.31 |
| 8 | 9 | ||
| 9 | ;; This file is part of GNU Emacs. | 10 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/textmodes/reftex-cite.el b/lisp/textmodes/reftex-cite.el index ded1caa12bd..3dcd785dd4d 100644 --- a/lisp/textmodes/reftex-cite.el +++ b/lisp/textmodes/reftex-cite.el | |||
| @@ -4,6 +4,7 @@ | |||
| 4 | ;; 2006, 2007 Free Software Foundation, Inc. | 4 | ;; 2006, 2007 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Carsten Dominik <dominik@science.uva.nl> | 6 | ;; Author: Carsten Dominik <dominik@science.uva.nl> |
| 7 | ;; Maintainer: auctex-devel@gnu.org | ||
| 7 | ;; Version: 4.31 | 8 | ;; Version: 4.31 |
| 8 | 9 | ||
| 9 | ;; This file is part of GNU Emacs. | 10 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/textmodes/reftex-dcr.el b/lisp/textmodes/reftex-dcr.el index bd0d75760b6..60ed932c534 100644 --- a/lisp/textmodes/reftex-dcr.el +++ b/lisp/textmodes/reftex-dcr.el | |||
| @@ -4,8 +4,8 @@ | |||
| 4 | ;; 2006, 2007 Free Software Foundation, Inc. | 4 | ;; 2006, 2007 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Carsten Dominik <dominik@science.uva.nl> | 6 | ;; Author: Carsten Dominik <dominik@science.uva.nl> |
| 7 | ;; Maintainer: auctex-devel@gnu.org | ||
| 7 | ;; Version: 4.31 | 8 | ;; Version: 4.31 |
| 8 | ;; | ||
| 9 | 9 | ||
| 10 | ;; This file is part of GNU Emacs. | 10 | ;; This file is part of GNU Emacs. |
| 11 | 11 | ||
diff --git a/lisp/textmodes/reftex-global.el b/lisp/textmodes/reftex-global.el index 403e4e84ea8..9ddfb5a4aca 100644 --- a/lisp/textmodes/reftex-global.el +++ b/lisp/textmodes/reftex-global.el | |||
| @@ -4,6 +4,7 @@ | |||
| 4 | ;; 2006, 2007 Free Software Foundation, Inc. | 4 | ;; 2006, 2007 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Carsten Dominik <dominik@science.uva.nl> | 6 | ;; Author: Carsten Dominik <dominik@science.uva.nl> |
| 7 | ;; Maintainer: auctex-devel@gnu.org | ||
| 7 | ;; Version: 4.31 | 8 | ;; Version: 4.31 |
| 8 | 9 | ||
| 9 | ;; This file is part of GNU Emacs. | 10 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/textmodes/reftex-index.el b/lisp/textmodes/reftex-index.el index 25525fef6dd..ee2c2aefcf5 100644 --- a/lisp/textmodes/reftex-index.el +++ b/lisp/textmodes/reftex-index.el | |||
| @@ -4,6 +4,7 @@ | |||
| 4 | ;; 2006, 2007 Free Software Foundation, Inc. | 4 | ;; 2006, 2007 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Carsten Dominik <dominik@science.uva.nl> | 6 | ;; Author: Carsten Dominik <dominik@science.uva.nl> |
| 7 | ;; Maintainer: auctex-devel@gnu.org | ||
| 7 | ;; Version: 4.31 | 8 | ;; Version: 4.31 |
| 8 | 9 | ||
| 9 | ;; This file is part of GNU Emacs. | 10 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/textmodes/reftex-parse.el b/lisp/textmodes/reftex-parse.el index 8ee552b3226..d18b3e85651 100644 --- a/lisp/textmodes/reftex-parse.el +++ b/lisp/textmodes/reftex-parse.el | |||
| @@ -4,8 +4,8 @@ | |||
| 4 | ;; 2006, 2007 Free Software Foundation, Inc. | 4 | ;; 2006, 2007 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Carsten Dominik <dominik@science.uva.nl> | 6 | ;; Author: Carsten Dominik <dominik@science.uva.nl> |
| 7 | ;; Maintainer: auctex-devel@gnu.org | ||
| 7 | ;; Version: 4.31 | 8 | ;; Version: 4.31 |
| 8 | ;; | ||
| 9 | 9 | ||
| 10 | ;; This file is part of GNU Emacs. | 10 | ;; This file is part of GNU Emacs. |
| 11 | 11 | ||
diff --git a/lisp/textmodes/reftex-ref.el b/lisp/textmodes/reftex-ref.el index a0471f18b82..e95dc16f133 100644 --- a/lisp/textmodes/reftex-ref.el +++ b/lisp/textmodes/reftex-ref.el | |||
| @@ -4,6 +4,7 @@ | |||
| 4 | ;; 2006, 2007 Free Software Foundation, Inc. | 4 | ;; 2006, 2007 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Carsten Dominik <dominik@science.uva.nl> | 6 | ;; Author: Carsten Dominik <dominik@science.uva.nl> |
| 7 | ;; Maintainer: auctex-devel@gnu.org | ||
| 7 | ;; Version: 4.31 | 8 | ;; Version: 4.31 |
| 8 | 9 | ||
| 9 | ;; This file is part of GNU Emacs. | 10 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/textmodes/reftex-sel.el b/lisp/textmodes/reftex-sel.el index 9b9d60d1f62..8f1bb3d13a8 100644 --- a/lisp/textmodes/reftex-sel.el +++ b/lisp/textmodes/reftex-sel.el | |||
| @@ -4,6 +4,7 @@ | |||
| 4 | ;; 2006, 2007 Free Software Foundation, Inc. | 4 | ;; 2006, 2007 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Carsten Dominik <dominik@science.uva.nl> | 6 | ;; Author: Carsten Dominik <dominik@science.uva.nl> |
| 7 | ;; Maintainer: auctex-devel@gnu.org | ||
| 7 | ;; Version: 4.31 | 8 | ;; Version: 4.31 |
| 8 | 9 | ||
| 9 | ;; This file is part of GNU Emacs. | 10 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/textmodes/reftex-toc.el b/lisp/textmodes/reftex-toc.el index 84269dfc091..8d2287b51cb 100644 --- a/lisp/textmodes/reftex-toc.el +++ b/lisp/textmodes/reftex-toc.el | |||
| @@ -3,6 +3,7 @@ | |||
| 3 | ;; 2006, 2007 Free Software Foundation, Inc. | 3 | ;; 2006, 2007 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Carsten Dominik <dominik@science.uva.nl> | 5 | ;; Author: Carsten Dominik <dominik@science.uva.nl> |
| 6 | ;; Maintainer: auctex-devel@gnu.org | ||
| 6 | ;; Version: 4.31 | 7 | ;; Version: 4.31 |
| 7 | 8 | ||
| 8 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/textmodes/reftex-vars.el b/lisp/textmodes/reftex-vars.el index 40e73b49f3d..bfc5581ccac 100644 --- a/lisp/textmodes/reftex-vars.el +++ b/lisp/textmodes/reftex-vars.el | |||
| @@ -4,6 +4,7 @@ | |||
| 4 | ;; 2006, 2007 Free Software Foundation, Inc. | 4 | ;; 2006, 2007 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Carsten Dominik <dominik@science.uva.nl> | 6 | ;; Author: Carsten Dominik <dominik@science.uva.nl> |
| 7 | ;; Maintainer: auctex-devel@gnu.org | ||
| 7 | ;; Version: 4.31 | 8 | ;; Version: 4.31 |
| 8 | 9 | ||
| 9 | ;; This file is part of GNU Emacs. | 10 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/textmodes/reftex.el b/lisp/textmodes/reftex.el index 39141541d82..343a7c5a947 100644 --- a/lisp/textmodes/reftex.el +++ b/lisp/textmodes/reftex.el | |||
| @@ -3,6 +3,7 @@ | |||
| 3 | ;; 2006, 2007 Free Software Foundation, Inc. | 3 | ;; 2006, 2007 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Carsten Dominik <dominik@science.uva.nl> | 5 | ;; Author: Carsten Dominik <dominik@science.uva.nl> |
| 6 | ;; Maintainer: auctex-devel@gnu.org | ||
| 6 | ;; Version: 4.31 | 7 | ;; Version: 4.31 |
| 7 | ;; Keywords: tex | 8 | ;; Keywords: tex |
| 8 | 9 | ||
diff --git a/lisp/tmm.el b/lisp/tmm.el index f9583e76cee..db2cc0c4c0a 100644 --- a/lisp/tmm.el +++ b/lisp/tmm.el | |||
| @@ -41,7 +41,7 @@ | |||
| 41 | (defvar tmm-short-cuts) | 41 | (defvar tmm-short-cuts) |
| 42 | (defvar tmm-old-mb-map nil) | 42 | (defvar tmm-old-mb-map nil) |
| 43 | (defvar tmm-old-comp-map) | 43 | (defvar tmm-old-comp-map) |
| 44 | (defvar tmm-c-prompt) | 44 | (defvar tmm-c-prompt nil) |
| 45 | (defvar tmm-km-list) | 45 | (defvar tmm-km-list) |
| 46 | (defvar tmm-next-shortcut-digit) | 46 | (defvar tmm-next-shortcut-digit) |
| 47 | (defvar tmm-table-undef) | 47 | (defvar tmm-table-undef) |
| @@ -70,17 +70,22 @@ we make that menu bar item (the one at that position) the default choice." | |||
| 70 | (list this-one))))) | 70 | (list this-one))))) |
| 71 | (setq list (cdr list)))) | 71 | (setq list (cdr list)))) |
| 72 | (if x-position | 72 | (if x-position |
| 73 | (let ((tail menu-bar) | 73 | (let ((tail menu-bar) (column 0) |
| 74 | this-one | 74 | this-one name visible) |
| 75 | (column 0)) | 75 | (while (and tail (<= column x-position)) |
| 76 | (while (and tail (< column x-position)) | ||
| 77 | (setq this-one (car tail)) | 76 | (setq this-one (car tail)) |
| 78 | (if (and (consp (car tail)) | 77 | (if (and (consp this-one) |
| 79 | (consp (cdr (car tail))) | 78 | (consp (cdr this-one)) |
| 80 | (stringp (nth 1 (car tail)))) | 79 | (setq name ;simple menu |
| 81 | (setq column (+ column | 80 | (cond ((stringp (nth 1 this-one)) |
| 82 | (length (nth 1 (car tail))) | 81 | (nth 1 this-one)) |
| 83 | 1))) | 82 | ;extended menu |
| 83 | ((stringp (nth 2 this-one)) | ||
| 84 | (setq visible (plist-get | ||
| 85 | (nthcdr 4 this-one) :visible)) | ||
| 86 | (unless (and visible (not (eval visible))) | ||
| 87 | (nth 2 this-one)))))) | ||
| 88 | (setq column (+ column (length name) 1))) | ||
| 84 | (setq tail (cdr tail))) | 89 | (setq tail (cdr tail))) |
| 85 | (setq menu-bar-item (car this-one)))) | 90 | (setq menu-bar-item (car this-one)))) |
| 86 | (tmm-prompt menu-bar nil menu-bar-item))) | 91 | (tmm-prompt menu-bar nil menu-bar-item))) |
| @@ -187,14 +192,20 @@ Its value should be an event that has a binding in MENU." | |||
| 187 | ;; We use this to decide the initial minibuffer contents | 192 | ;; We use this to decide the initial minibuffer contents |
| 188 | ;; and initial history position. | 193 | ;; and initial history position. |
| 189 | (if default-item | 194 | (if default-item |
| 190 | (let ((tail menu)) | 195 | (let ((tail menu) visible) |
| 191 | (while (and tail | 196 | (while (and tail |
| 192 | (not (eq (car-safe (car tail)) default-item))) | 197 | (not (eq (car-safe (car tail)) default-item))) |
| 193 | ;; Be careful to count only the elements of MENU | 198 | ;; Be careful to count only the elements of MENU |
| 194 | ;; that actually constitute menu bar items. | 199 | ;; that actually constitute menu bar items. |
| 195 | (if (and (consp (car tail)) | 200 | (if (and (consp (car tail)) |
| 196 | (or (stringp (car-safe (cdr (car tail)))) | 201 | (or (stringp (car-safe (cdr (car tail)))) |
| 197 | (eq (car-safe (cdr (car tail))) 'menu-item))) | 202 | (and |
| 203 | (eq (car-safe (cdr (car tail))) 'menu-item) | ||
| 204 | (progn | ||
| 205 | (setq visible | ||
| 206 | (plist-get | ||
| 207 | (nthcdr 4 (car tail)) :visible)) | ||
| 208 | (or (not visible) (eval visible)))))) | ||
| 198 | (setq index-of-default (1+ index-of-default))) | 209 | (setq index-of-default (1+ index-of-default))) |
| 199 | (setq tail (cdr tail))))) | 210 | (setq tail (cdr tail))))) |
| 200 | (let ((prompt (concat "^." (regexp-quote tmm-mid-prompt)))) | 211 | (let ((prompt (concat "^." (regexp-quote tmm-mid-prompt)))) |
| @@ -209,21 +220,24 @@ Its value should be an event that has a binding in MENU." | |||
| 209 | (setq history (append history history history history)) | 220 | (setq history (append history history history history)) |
| 210 | (setq tmm-c-prompt (nth (- history-len 1 index-of-default) history)) | 221 | (setq tmm-c-prompt (nth (- history-len 1 index-of-default) history)) |
| 211 | (add-hook 'minibuffer-setup-hook 'tmm-add-prompt) | 222 | (add-hook 'minibuffer-setup-hook 'tmm-add-prompt) |
| 212 | (save-excursion | 223 | (if default-item |
| 213 | (unwind-protect | 224 | (setq out (car (nth index-of-default tmm-km-list))) |
| 214 | (setq out | 225 | (save-excursion |
| 215 | (completing-read | 226 | (unwind-protect |
| 216 | (concat gl-str " (up/down to change, PgUp to menu): ") | 227 | (setq out |
| 217 | tmm-km-list nil t nil | 228 | (completing-read |
| 218 | (cons 'history (- (* 2 history-len) index-of-default)))) | 229 | (concat gl-str |
| 219 | (save-excursion | 230 | " (up/down to change, PgUp to menu): ") |
| 220 | (remove-hook 'minibuffer-setup-hook 'tmm-add-prompt) | 231 | tmm-km-list nil t nil |
| 221 | (if (get-buffer "*Completions*") | 232 | (cons 'history |
| 222 | (progn | 233 | (- (* 2 history-len) index-of-default)))) |
| 223 | (set-buffer "*Completions*") | 234 | (save-excursion |
| 224 | (use-local-map tmm-old-comp-map) | 235 | (remove-hook 'minibuffer-setup-hook 'tmm-add-prompt) |
| 225 | (bury-buffer (current-buffer))))) | 236 | (if (get-buffer "*Completions*") |
| 226 | )))) | 237 | (progn |
| 238 | (set-buffer "*Completions*") | ||
| 239 | (use-local-map tmm-old-comp-map) | ||
| 240 | (bury-buffer (current-buffer)))))))))) | ||
| 227 | (setq choice (cdr (assoc out tmm-km-list))) | 241 | (setq choice (cdr (assoc out tmm-km-list))) |
| 228 | (and (null choice) | 242 | (and (null choice) |
| 229 | (> (length out) (length tmm-c-prompt)) | 243 | (> (length out) (length tmm-c-prompt)) |
| @@ -513,7 +527,7 @@ If KEYSEQ is a prefix key that has local and global bindings, | |||
| 513 | we merge them into a single keymap which shows the proper order of the menu. | 527 | we merge them into a single keymap which shows the proper order of the menu. |
| 514 | However, for the menu bar itself, the value does not take account | 528 | However, for the menu bar itself, the value does not take account |
| 515 | of `menu-bar-final-items'." | 529 | of `menu-bar-final-items'." |
| 516 | (let (allbind bind) | 530 | (let (allbind bind minorbind localbind globalbind) |
| 517 | (setq bind (key-binding keyseq)) | 531 | (setq bind (key-binding keyseq)) |
| 518 | ;; If KEYSEQ is a prefix key, then BIND is either nil | 532 | ;; If KEYSEQ is a prefix key, then BIND is either nil |
| 519 | ;; or a symbol defined as a keymap (which satisfies keymapp). | 533 | ;; or a symbol defined as a keymap (which satisfies keymapp). |
| @@ -524,9 +538,21 @@ of `menu-bar-final-items'." | |||
| 524 | (progn | 538 | (progn |
| 525 | ;; Otherwise, it is a prefix, so make a list of the subcommands. | 539 | ;; Otherwise, it is a prefix, so make a list of the subcommands. |
| 526 | ;; Make a list of all the bindings in all the keymaps. | 540 | ;; Make a list of all the bindings in all the keymaps. |
| 527 | (setq allbind (mapcar 'cdr (minor-mode-key-binding keyseq))) | 541 | (setq minorbind (mapcar 'cdr (minor-mode-key-binding keyseq))) |
| 528 | (setq allbind (cons (local-key-binding keyseq) allbind)) | 542 | (setq localbind (local-key-binding keyseq)) |
| 529 | (setq allbind (cons (global-key-binding keyseq) allbind)) | 543 | (setq globalbind (copy-sequence (cdr (global-key-binding keyseq)))) |
| 544 | |||
| 545 | ;; If items have been redefined/undefined locally, remove them from | ||
| 546 | ;; the global list. | ||
| 547 | (dolist (minor minorbind) | ||
| 548 | (dolist (item (cdr minor)) | ||
| 549 | (setq globalbind (assq-delete-all (car-safe item) globalbind)))) | ||
| 550 | (dolist (item (cdr localbind)) | ||
| 551 | (setq globalbind (assq-delete-all (car-safe item) globalbind))) | ||
| 552 | |||
| 553 | (setq globalbind (cons 'keymap globalbind)) | ||
| 554 | (setq allbind (cons globalbind (cons localbind minorbind))) | ||
| 555 | |||
| 530 | ;; Merge all the elements of ALLBIND into one keymap. | 556 | ;; Merge all the elements of ALLBIND into one keymap. |
| 531 | (mapc (lambda (in) | 557 | (mapc (lambda (in) |
| 532 | (if (and (symbolp in) (keymapp in)) | 558 | (if (and (symbolp in) (keymapp in)) |
diff --git a/lisp/url/ChangeLog b/lisp/url/ChangeLog index eb058534f63..8c53d49fdd1 100644 --- a/lisp/url/ChangeLog +++ b/lisp/url/ChangeLog | |||
| @@ -1,3 +1,28 @@ | |||
| 1 | 2007-04-15 Chong Yidong <cyd@stupidchicken.com> | ||
| 2 | |||
| 3 | * url-parse.el (url-generic-parse-url): Revert 2006-10-09 changes. | ||
| 4 | |||
| 5 | 2007-04-13 Chong Yidong <cyd@stupidchicken.com> | ||
| 6 | |||
| 7 | * url-http.el (url-http-parse-headers): Stop after a set number of | ||
| 8 | redirections. Suggested by Diane Murray. | ||
| 9 | |||
| 10 | * url-vars.el (url-max-redirections): New var. | ||
| 11 | |||
| 12 | 2007-04-01 Diane Murray <disumu@x3y2z1.net> (tiny change) | ||
| 13 | |||
| 14 | * url-http.el (url-http-handle-cookies): Reverse list returned by | ||
| 15 | `mail-fetch-field', so that cookies are set in the correct order. | ||
| 16 | |||
| 17 | * url-cookie.el (url-cookie-retrieve, url-cookie-host-can-set-p): | ||
| 18 | Deal with wildcard dots in domain values. | ||
| 19 | |||
| 20 | 2007-03-31 Andreas Seltenreich <uwi7@rz.uni-karlsruhe.de> | ||
| 21 | |||
| 22 | * url-http.el (url-http-mark-connection-as-busy) | ||
| 23 | (url-http-mark-connection-as-free): Clear query-on-exit flag on | ||
| 24 | idle connections. | ||
| 25 | |||
| 1 | 2007-02-04 Chong Yidong <cyd@stupidchicken.com> | 26 | 2007-02-04 Chong Yidong <cyd@stupidchicken.com> |
| 2 | 27 | ||
| 3 | * url-http.el (url-http-connection-opened): New variable. | 28 | * url-http.el (url-http-connection-opened): New variable. |
| @@ -51,7 +76,7 @@ | |||
| 51 | (url-http-parse-response): Set it. | 76 | (url-http-parse-response): Set it. |
| 52 | (url-http-parse-headers): Use it to determine keep-alive behavior. | 77 | (url-http-parse-headers): Use it to determine keep-alive behavior. |
| 53 | 78 | ||
| 54 | 2006-11-23 Diane Murray <disumu@x3y2z1.net> | 79 | 2006-11-23 Diane Murray <disumu@x3y2z1.net> (tiny change) |
| 55 | 80 | ||
| 56 | * url-http.el (url-http-content-length-after-change-function): Use | 81 | * url-http.el (url-http-content-length-after-change-function): Use |
| 57 | `url-lazy-message'. | 82 | `url-lazy-message'. |
| @@ -160,7 +185,7 @@ | |||
| 160 | getenv returns an empty string for http_proxy. This prevents an | 185 | getenv returns an empty string for http_proxy. This prevents an |
| 161 | error when calling `format' later on. | 186 | error when calling `format' later on. |
| 162 | 187 | ||
| 163 | 2006-08-31 Diane Murray <disumu@x3y2z1.net> | 188 | 2006-08-31 Diane Murray <disumu@x3y2z1.net> (tiny change) |
| 164 | 189 | ||
| 165 | * url-parse.el (url-recreate-url-attributes): New function, code | 190 | * url-parse.el (url-recreate-url-attributes): New function, code |
| 166 | simply moved from `url-recreate-url'. | 191 | simply moved from `url-recreate-url'. |
| @@ -170,7 +195,7 @@ | |||
| 170 | * url-http.el (url-http-create-request): | 195 | * url-http.el (url-http-create-request): |
| 171 | Use `url-recreate-url-attributes' when setting real-fname. | 196 | Use `url-recreate-url-attributes' when setting real-fname. |
| 172 | 197 | ||
| 173 | 2006-08-29 Diane Murray <disumu@x3y2z1.net> | 198 | 2006-08-29 Diane Murray <disumu@x3y2z1.net> (tiny change) |
| 174 | 199 | ||
| 175 | * url-cookie.el (url-cookie-write-file): Really don't use versioned | 200 | * url-cookie.el (url-cookie-write-file): Really don't use versioned |
| 176 | backups. | 201 | backups. |
diff --git a/lisp/url/url-cookie.el b/lisp/url/url-cookie.el index cfe4f8ecf71..8d729c92369 100644 --- a/lisp/url/url-cookie.el +++ b/lisp/url/url-cookie.el | |||
| @@ -272,7 +272,15 @@ telling Microsoft that." | |||
| 272 | storage (cdr storage) | 272 | storage (cdr storage) |
| 273 | cookies (cdr cur)) | 273 | cookies (cdr cur)) |
| 274 | (if (and (car cur) | 274 | (if (and (car cur) |
| 275 | (string-match (concat "^.*" (regexp-quote (car cur)) "$") host)) | 275 | (string-match |
| 276 | (concat "^.*" | ||
| 277 | (regexp-quote | ||
| 278 | ;; Remove the dot from wildcard domains | ||
| 279 | ;; before matching. | ||
| 280 | (if (eq ?. (aref (car cur) 0)) | ||
| 281 | (substring (car cur) 1) | ||
| 282 | (car cur))) | ||
| 283 | "$") host)) | ||
| 276 | ;; The domains match - a possible hit! | 284 | ;; The domains match - a possible hit! |
| 277 | (while cookies | 285 | (while cookies |
| 278 | (setq cur (car cookies) | 286 | (setq cur (car cookies) |
| @@ -344,7 +352,13 @@ telling Microsoft that." | |||
| 344 | ((>= numdots mindots) ; We have enough dots in domain name | 352 | ((>= numdots mindots) ; We have enough dots in domain name |
| 345 | ;; Need to check and make sure the host is actually _in_ the | 353 | ;; Need to check and make sure the host is actually _in_ the |
| 346 | ;; domain it wants to set a cookie for though. | 354 | ;; domain it wants to set a cookie for though. |
| 347 | (string-match (concat (regexp-quote domain) "$") host)) | 355 | (string-match (concat (regexp-quote |
| 356 | ;; Remove the dot from wildcard domains | ||
| 357 | ;; before matching. | ||
| 358 | (if (eq ?. (aref domain 0)) | ||
| 359 | (substring domain 1) | ||
| 360 | domain)) | ||
| 361 | "$") host)) | ||
| 348 | (t | 362 | (t |
| 349 | nil)))) | 363 | nil)))) |
| 350 | 364 | ||
diff --git a/lisp/url/url-http.el b/lisp/url/url-http.el index 1d4d64f0e4d..d9ac81838d4 100644 --- a/lisp/url/url-http.el +++ b/lisp/url/url-http.el | |||
| @@ -87,6 +87,7 @@ request.") | |||
| 87 | 87 | ||
| 88 | (defun url-http-mark-connection-as-busy (host port proc) | 88 | (defun url-http-mark-connection-as-busy (host port proc) |
| 89 | (url-http-debug "Marking connection as busy: %s:%d %S" host port proc) | 89 | (url-http-debug "Marking connection as busy: %s:%d %S" host port proc) |
| 90 | (set-process-query-on-exit-flag proc t) | ||
| 90 | (puthash (cons host port) | 91 | (puthash (cons host port) |
| 91 | (delq proc (gethash (cons host port) url-http-open-connections)) | 92 | (delq proc (gethash (cons host port) url-http-open-connections)) |
| 92 | url-http-open-connections) | 93 | url-http-open-connections) |
| @@ -97,6 +98,7 @@ request.") | |||
| 97 | (when (memq (process-status proc) '(open run connect)) | 98 | (when (memq (process-status proc) '(open run connect)) |
| 98 | (set-process-buffer proc nil) | 99 | (set-process-buffer proc nil) |
| 99 | (set-process-sentinel proc 'url-http-idle-sentinel) | 100 | (set-process-sentinel proc 'url-http-idle-sentinel) |
| 101 | (set-process-query-on-exit-flag proc nil) | ||
| 100 | (puthash (cons host port) | 102 | (puthash (cons host port) |
| 101 | (cons proc (gethash (cons host port) url-http-open-connections)) | 103 | (cons proc (gethash (cons host port) url-http-open-connections)) |
| 102 | url-http-open-connections)) | 104 | url-http-open-connections)) |
| @@ -379,8 +381,8 @@ This allows us to use `mail-fetch-field', etc." | |||
| 379 | "Handle all set-cookie / set-cookie2 headers in an HTTP response. | 381 | "Handle all set-cookie / set-cookie2 headers in an HTTP response. |
| 380 | The buffer must already be narrowed to the headers, so `mail-fetch-field' will | 382 | The buffer must already be narrowed to the headers, so `mail-fetch-field' will |
| 381 | work correctly." | 383 | work correctly." |
| 382 | (let ((cookies (mail-fetch-field "Set-Cookie" nil nil t)) | 384 | (let ((cookies (nreverse (mail-fetch-field "Set-Cookie" nil nil t))) |
| 383 | (cookies2 (mail-fetch-field "Set-Cookie2" nil nil t))) | 385 | (cookies2 (nreverse (mail-fetch-field "Set-Cookie2" nil nil t)))) |
| 384 | (and cookies (url-http-debug "Found %d Set-Cookie headers" (length cookies))) | 386 | (and cookies (url-http-debug "Found %d Set-Cookie headers" (length cookies))) |
| 385 | (and cookies2 (url-http-debug "Found %d Set-Cookie2 headers" (length cookies2))) | 387 | (and cookies2 (url-http-debug "Found %d Set-Cookie2 headers" (length cookies2))) |
| 386 | (while cookies | 388 | (while cookies |
| @@ -554,21 +556,43 @@ should be shown to the user." | |||
| 554 | (let ((url-request-method url-http-method) | 556 | (let ((url-request-method url-http-method) |
| 555 | (url-request-data url-http-data) | 557 | (url-request-data url-http-data) |
| 556 | (url-request-extra-headers url-http-extra-headers)) | 558 | (url-request-extra-headers url-http-extra-headers)) |
| 557 | ;; Remember that the request was redirected. | 559 | ;; Check existing number of redirects |
| 558 | (setf (car url-callback-arguments) | 560 | (if (or (< url-max-redirections 0) |
| 559 | (nconc (list :redirect redirect-uri) | 561 | (and (> url-max-redirections 0) |
| 560 | (car url-callback-arguments))) | 562 | (let ((events (car url-callback-arguments)) |
| 561 | ;; Put in the current buffer a forwarding pointer to the new | 563 | (old-redirects 0)) |
| 562 | ;; destination buffer. | 564 | (while events |
| 563 | ;; FIXME: This is a hack to fix url-retrieve-synchronously | 565 | (if (eq (car events) :redirect) |
| 564 | ;; without changing the API. Instead url-retrieve should | 566 | (setq old-redirects (1+ old-redirects))) |
| 565 | ;; either simply not return the "destination" buffer, or it | 567 | (and (setq events (cdr events)) |
| 566 | ;; should take an optional `dest-buf' argument. | 568 | (setq events (cdr events)))) |
| 567 | (set (make-local-variable 'url-redirect-buffer) | 569 | (< old-redirects url-max-redirections)))) |
| 568 | (url-retrieve-internal | 570 | ;; url-max-redirections hasn't been reached, so go |
| 569 | redirect-uri url-callback-function | 571 | ;; ahead and redirect. |
| 570 | url-callback-arguments)) | 572 | (progn |
| 571 | (url-mark-buffer-as-dead (current-buffer)))))) | 573 | ;; Remember that the request was redirected. |
| 574 | (setf (car url-callback-arguments) | ||
| 575 | (nconc (list :redirect redirect-uri) | ||
| 576 | (car url-callback-arguments))) | ||
| 577 | ;; Put in the current buffer a forwarding pointer to the new | ||
| 578 | ;; destination buffer. | ||
| 579 | ;; FIXME: This is a hack to fix url-retrieve-synchronously | ||
| 580 | ;; without changing the API. Instead url-retrieve should | ||
| 581 | ;; either simply not return the "destination" buffer, or it | ||
| 582 | ;; should take an optional `dest-buf' argument. | ||
| 583 | (set (make-local-variable 'url-redirect-buffer) | ||
| 584 | (url-retrieve-internal | ||
| 585 | redirect-uri url-callback-function | ||
| 586 | url-callback-arguments)) | ||
| 587 | (url-mark-buffer-as-dead (current-buffer))) | ||
| 588 | ;; We hit url-max-redirections, so issue an error and | ||
| 589 | ;; stop redirecting. | ||
| 590 | (url-http-debug "Maximum redirections reached") | ||
| 591 | (setf (car url-callback-arguments) | ||
| 592 | (nconc (list :error (list 'error 'http-redirect-limit | ||
| 593 | redirect-uri)) | ||
| 594 | (car url-callback-arguments))) | ||
| 595 | (setq success t)))))) | ||
| 572 | (4 ; Client error | 596 | (4 ; Client error |
| 573 | ;; 400 Bad Request | 597 | ;; 400 Bad Request |
| 574 | ;; 401 Unauthorized | 598 | ;; 401 Unauthorized |
diff --git a/lisp/url/url-parse.el b/lisp/url/url-parse.el index 2b69c54133f..a9a0fb151e9 100644 --- a/lisp/url/url-parse.el +++ b/lisp/url/url-parse.el | |||
| @@ -108,7 +108,7 @@ | |||
| 108 | (defun url-recreate-url-attributes (urlobj) | 108 | (defun url-recreate-url-attributes (urlobj) |
| 109 | "Recreate the attributes of an URL string from the parsed URLOBJ." | 109 | "Recreate the attributes of an URL string from the parsed URLOBJ." |
| 110 | (when (url-attributes urlobj) | 110 | (when (url-attributes urlobj) |
| 111 | (concat "?" | 111 | (concat ";" |
| 112 | (mapconcat (lambda (x) | 112 | (mapconcat (lambda (x) |
| 113 | (if (cdr x) | 113 | (if (cdr x) |
| 114 | (concat (car x) "=" (cdr x)) | 114 | (concat (car x) "=" (cdr x)) |
| @@ -168,7 +168,7 @@ Format is: | |||
| 168 | (setq full t) | 168 | (setq full t) |
| 169 | (forward-char 2) | 169 | (forward-char 2) |
| 170 | (setq save-pos (point)) | 170 | (setq save-pos (point)) |
| 171 | (skip-chars-forward "^/\\?#") | 171 | (skip-chars-forward "^/") |
| 172 | (setq host (buffer-substring save-pos (point))) | 172 | (setq host (buffer-substring save-pos (point))) |
| 173 | (if (string-match "^\\([^@]+\\)@" host) | 173 | (if (string-match "^\\([^@]+\\)@" host) |
| 174 | (setq user (match-string 1 host) | 174 | (setq user (match-string 1 host) |
| @@ -189,25 +189,29 @@ Format is: | |||
| 189 | (setq port (url-scheme-get-property prot 'default-port))) | 189 | (setq port (url-scheme-get-property prot 'default-port))) |
| 190 | 190 | ||
| 191 | ;; 3.3. Path | 191 | ;; 3.3. Path |
| 192 | ;; Gross hack to preserve ';' in data URLs | ||
| 192 | (setq save-pos (point)) | 193 | (setq save-pos (point)) |
| 193 | (skip-chars-forward "^#?") | ||
| 194 | (setq file (buffer-substring save-pos (point))) | ||
| 195 | 194 | ||
| 196 | ;; 3.4. Query | 195 | ;; 3.4. Query |
| 197 | (when (looking-at "\\?") | 196 | (if (string= "data" prot) |
| 198 | (forward-char 1) | 197 | (goto-char (point-max)) |
| 199 | (setq save-pos (point)) | 198 | ;; Now check for references |
| 200 | (skip-chars-forward "^#") | 199 | (skip-chars-forward "^#") |
| 201 | ;; RFC 3986 specifies no general way of parsing the query | 200 | (if (eobp) |
| 202 | ;; string, but `url-parse-args' seems universal enough. | 201 | nil |
| 203 | (setq attr (url-parse-args (buffer-substring save-pos (point)) t) | 202 | (delete-region |
| 204 | attr (nreverse attr))) | 203 | (point) |
| 205 | 204 | (progn | |
| 206 | ;; 3.5. Fragment | 205 | (skip-chars-forward "#") |
| 207 | (when (looking-at "#") | 206 | (setq refs (buffer-substring (point) (point-max))) |
| 208 | (forward-char 1) | 207 | (point-max)))) |
| 209 | (setq refs (buffer-substring (point) (point-max)))) | 208 | (goto-char save-pos) |
| 209 | (skip-chars-forward "^;") | ||
| 210 | (if (not (eobp)) | ||
| 211 | (setq attr (url-parse-args (buffer-substring (point) (point-max)) t) | ||
| 212 | attr (nreverse attr)))) | ||
| 210 | 213 | ||
| 214 | (setq file (buffer-substring save-pos (point))) | ||
| 211 | (if (and host (string-match "%[0-9][0-9]" host)) | 215 | (if (and host (string-match "%[0-9][0-9]" host)) |
| 212 | (setq host (url-unhex-string host))) | 216 | (setq host (url-unhex-string host))) |
| 213 | (vector prot user pass host port file refs attr full)))))) | 217 | (vector prot user pass host port file refs attr full)))))) |
diff --git a/lisp/url/url-vars.el b/lisp/url/url-vars.el index 705eb947001..d0bd9a84c05 100644 --- a/lisp/url/url-vars.el +++ b/lisp/url/url-vars.el | |||
| @@ -320,6 +320,12 @@ undefined." | |||
| 320 | "\\`\\([-a-zA-Z0-9+.]+:\\)" | 320 | "\\`\\([-a-zA-Z0-9+.]+:\\)" |
| 321 | "A regular expression that will match an absolute URL.") | 321 | "A regular expression that will match an absolute URL.") |
| 322 | 322 | ||
| 323 | (defcustom url-max-redirections 30 | ||
| 324 | "*The maximum number of redirection requests to honor in a HTTP connection. | ||
| 325 | A negative number means to honor an unlimited number of redirection requests." | ||
| 326 | :type 'integer | ||
| 327 | :group 'url) | ||
| 328 | |||
| 323 | (defcustom url-confirmation-func 'y-or-n-p | 329 | (defcustom url-confirmation-func 'y-or-n-p |
| 324 | "*What function to use for asking yes or no functions. | 330 | "*What function to use for asking yes or no functions. |
| 325 | Possible values are `yes-or-no-p' or `y-or-n-p', or any function that | 331 | Possible values are `yes-or-no-p' or `y-or-n-p', or any function that |
diff --git a/lisp/vc-arch.el b/lisp/vc-arch.el index 0f02db0ba96..488f9108d36 100644 --- a/lisp/vc-arch.el +++ b/lisp/vc-arch.el | |||
| @@ -109,6 +109,19 @@ | |||
| 109 | 109 | ||
| 110 | (defconst vc-arch-tagline-re "^\\W*arch-tag:[ \t]*\\(.*[^ \t\n]\\)") | 110 | (defconst vc-arch-tagline-re "^\\W*arch-tag:[ \t]*\\(.*[^ \t\n]\\)") |
| 111 | 111 | ||
| 112 | (defmacro vc-with-current-file-buffer (file &rest body) | ||
| 113 | (declare (indent 2) (debug t)) | ||
| 114 | `(let ((-kill-buf- nil) | ||
| 115 | (-file- ,file)) | ||
| 116 | (with-current-buffer (or (find-buffer-visiting -file-) | ||
| 117 | (setq -kill-buf- (generate-new-buffer " temp"))) | ||
| 118 | ;; Avoid find-file-literally since it can do many undesirable extra | ||
| 119 | ;; things (among which, call us back into an infinite loop). | ||
| 120 | (if -kill-buf- (insert-file-contents -file-)) | ||
| 121 | (unwind-protect | ||
| 122 | (progn ,@body) | ||
| 123 | (if (buffer-live-p -kill-buf-) (kill-buffer -kill-buf-)))))) | ||
| 124 | |||
| 112 | (defun vc-arch-file-source-p (file) | 125 | (defun vc-arch-file-source-p (file) |
| 113 | "Can return nil, `maybe' or a non-nil value. | 126 | "Can return nil, `maybe' or a non-nil value. |
| 114 | Only the value `maybe' can be trusted :-(." | 127 | Only the value `maybe' can be trusted :-(." |
| @@ -122,7 +135,7 @@ Only the value `maybe' can be trusted :-(." | |||
| 122 | (concat ".arch-ids/" (file-name-nondirectory file) ".id") | 135 | (concat ".arch-ids/" (file-name-nondirectory file) ".id") |
| 123 | (file-name-directory file))) | 136 | (file-name-directory file))) |
| 124 | ;; Check the presence of a tagline. | 137 | ;; Check the presence of a tagline. |
| 125 | (with-current-buffer (find-file-noselect file) | 138 | (vc-with-current-file-buffer file |
| 126 | (save-excursion | 139 | (save-excursion |
| 127 | (goto-char (point-max)) | 140 | (goto-char (point-max)) |
| 128 | (or (re-search-backward vc-arch-tagline-re (- (point) 1000) t) | 141 | (or (re-search-backward vc-arch-tagline-re (- (point) 1000) t) |
diff --git a/lisp/vc-rcs.el b/lisp/vc-rcs.el index ae4758169f4..a4b3b11301e 100644 --- a/lisp/vc-rcs.el +++ b/lisp/vc-rcs.el | |||
| @@ -666,6 +666,7 @@ Optional arg REVISION is a revision to annotate from." | |||
| 666 | " " | 666 | " " |
| 667 | (aref rda 0) | 667 | (aref rda 0) |
| 668 | ls) | 668 | ls) |
| 669 | :vc-annotate-prefix t | ||
| 669 | :vc-rcs-r/d/a rda))) | 670 | :vc-rcs-r/d/a rda))) |
| 670 | (maphash | 671 | (maphash |
| 671 | (if all-me | 672 | (if all-me |
| @@ -688,9 +689,9 @@ encoded as fractional days." | |||
| 688 | "Return the time of the next annotation (as fraction of days) | 689 | "Return the time of the next annotation (as fraction of days) |
| 689 | systime, or nil if there is none. Also, reposition point." | 690 | systime, or nil if there is none. Also, reposition point." |
| 690 | (unless (eobp) | 691 | (unless (eobp) |
| 691 | (search-forward ": ") | 692 | (prog1 (vc-annotate-convert-time |
| 692 | (vc-annotate-convert-time | 693 | (aref (get-text-property (point) :vc-rcs-r/d/a) 1)) |
| 693 | (aref (get-text-property (point) :vc-rcs-r/d/a) 1)))) | 694 | (goto-char (next-single-property-change (point) :vc-annotate-prefix))))) |
| 694 | 695 | ||
| 695 | (defun vc-rcs-annotate-extract-revision-at-line () | 696 | (defun vc-rcs-annotate-extract-revision-at-line () |
| 696 | (aref (get-text-property (point) :vc-rcs-r/d/a) 0)) | 697 | (aref (get-text-property (point) :vc-rcs-r/d/a) 0)) |
| @@ -907,7 +908,7 @@ Returns: nil if no headers were found | |||
| 907 | (vc-file-setprop file 'vc-state | 908 | (vc-file-setprop file 'vc-state |
| 908 | (cond | 909 | (cond |
| 909 | ((eq locking-user 'none) 'up-to-date) | 910 | ((eq locking-user 'none) 'up-to-date) |
| 910 | ((string= locking-user (vc-user-login-name file)) | 911 | ((string= locking-user (vc-user-login-name file)) |
| 911 | 'edited) | 912 | 'edited) |
| 912 | (t locking-user))) | 913 | (t locking-user))) |
| 913 | ;; If the file has headers, we don't want to query the | 914 | ;; If the file has headers, we don't want to query the |
diff --git a/lisp/view.el b/lisp/view.el index f914624d6f6..8dd9e032868 100644 --- a/lisp/view.el +++ b/lisp/view.el | |||
| @@ -438,7 +438,7 @@ p searches backward for last regular expression. | |||
| 438 | \\[View-leave] quit View mode and maybe switch buffers, but don't kill this buffer. | 438 | \\[View-leave] quit View mode and maybe switch buffers, but don't kill this buffer. |
| 439 | \\[View-kill-and-leave] quit View mode, kill current buffer and go back to other buffer. | 439 | \\[View-kill-and-leave] quit View mode, kill current buffer and go back to other buffer. |
| 440 | 440 | ||
| 441 | The effect of \\[View-leave] , \\[View-quit] and \\[View-kill-and-leave] depends on how view-mode was entered. If it was | 441 | The effect of \\[View-leave], \\[View-quit] and \\[View-kill-and-leave] depends on how view-mode was entered. If it was |
| 442 | entered by view-file, view-file-other-window, view-file-other-frame, or | 442 | entered by view-file, view-file-other-window, view-file-other-frame, or |
| 443 | \\[dired-view-file] \(\\[view-file], \\[view-file-other-window], | 443 | \\[dired-view-file] \(\\[view-file], \\[view-file-other-window], |
| 444 | \\[view-file-other-frame], or the Dired mode v command), | 444 | \\[view-file-other-frame], or the Dired mode v command), |
| @@ -446,7 +446,7 @@ then \\[View-quit] will try to kill the current buffer. | |||
| 446 | If view-mode was entered from another buffer, by \\[view-buffer], | 446 | If view-mode was entered from another buffer, by \\[view-buffer], |
| 447 | \\[view-buffer-other-window], \\[view-buffer-other frame], \\[view-file], | 447 | \\[view-buffer-other-window], \\[view-buffer-other frame], \\[view-file], |
| 448 | \\[view-file-other-window], or \\[view-file-other-frame], | 448 | \\[view-file-other-window], or \\[view-file-other-frame], |
| 449 | then \\[View-leave] , \\[View-quit] and \\[View-kill-and-leave] will return to that buffer. | 449 | then \\[View-leave], \\[View-quit] and \\[View-kill-and-leave] will return to that buffer. |
| 450 | 450 | ||
| 451 | Entry to view-mode runs the normal hook `view-mode-hook'." | 451 | Entry to view-mode runs the normal hook `view-mode-hook'." |
| 452 | (interactive "P") | 452 | (interactive "P") |
diff --git a/lisp/whitespace.el b/lisp/whitespace.el index dc7f691e721..1c670d77458 100644 --- a/lisp/whitespace.el +++ b/lisp/whitespace.el | |||
| @@ -102,42 +102,34 @@ visited by the buffers.") | |||
| 102 | (defvar whitespace-mode nil | 102 | (defvar whitespace-mode nil |
| 103 | "Non-nil when Whitespace mode (a minor mode) is enabled.") | 103 | "Non-nil when Whitespace mode (a minor mode) is enabled.") |
| 104 | (make-variable-buffer-local 'whitespace-mode) | 104 | (make-variable-buffer-local 'whitespace-mode) |
| 105 | (put 'whitespace-mode 'permanent-local nil) | ||
| 106 | 105 | ||
| 107 | (defvar whitespace-mode-line nil | 106 | (defvar whitespace-mode-line nil |
| 108 | "String to display in the mode line for Whitespace mode.") | 107 | "String to display in the mode line for Whitespace mode.") |
| 109 | (make-variable-buffer-local 'whitespace-mode-line) | 108 | (make-variable-buffer-local 'whitespace-mode-line) |
| 110 | (put 'whitespace-mode-line 'permanent-local nil) | ||
| 111 | 109 | ||
| 112 | (defvar whitespace-check-buffer-leading nil | 110 | (defvar whitespace-check-buffer-leading nil |
| 113 | "Test leading whitespace for file in current buffer if t.") | 111 | "Test leading whitespace for file in current buffer if t.") |
| 114 | (make-variable-buffer-local 'whitespace-check-buffer-leading) | 112 | (make-variable-buffer-local 'whitespace-check-buffer-leading) |
| 115 | (put 'whitespace-check-buffer-leading 'permanent-local nil) | ||
| 116 | 113 | ||
| 117 | (defvar whitespace-check-buffer-trailing nil | 114 | (defvar whitespace-check-buffer-trailing nil |
| 118 | "Test trailing whitespace for file in current buffer if t.") | 115 | "Test trailing whitespace for file in current buffer if t.") |
| 119 | (make-variable-buffer-local 'whitespace-check-buffer-trailing) | 116 | (make-variable-buffer-local 'whitespace-check-buffer-trailing) |
| 120 | (put 'whitespace-check-buffer-trailing 'permanent-local nil) | ||
| 121 | 117 | ||
| 122 | (defvar whitespace-check-buffer-indent nil | 118 | (defvar whitespace-check-buffer-indent nil |
| 123 | "Test indentation whitespace for file in current buffer if t.") | 119 | "Test indentation whitespace for file in current buffer if t.") |
| 124 | (make-variable-buffer-local 'whitespace-check-buffer-indent) | 120 | (make-variable-buffer-local 'whitespace-check-buffer-indent) |
| 125 | (put 'whitespace-check-buffer-indent 'permanent-local nil) | ||
| 126 | 121 | ||
| 127 | (defvar whitespace-check-buffer-spacetab nil | 122 | (defvar whitespace-check-buffer-spacetab nil |
| 128 | "Test Space-followed-by-TABS whitespace for file in current buffer if t.") | 123 | "Test Space-followed-by-TABS whitespace for file in current buffer if t.") |
| 129 | (make-variable-buffer-local 'whitespace-check-buffer-spacetab) | 124 | (make-variable-buffer-local 'whitespace-check-buffer-spacetab) |
| 130 | (put 'whitespace-check-buffer-spacetab 'permanent-local nil) | ||
| 131 | 125 | ||
| 132 | (defvar whitespace-check-buffer-ateol nil | 126 | (defvar whitespace-check-buffer-ateol nil |
| 133 | "Test end-of-line whitespace for file in current buffer if t.") | 127 | "Test end-of-line whitespace for file in current buffer if t.") |
| 134 | (make-variable-buffer-local 'whitespace-check-buffer-ateol) | 128 | (make-variable-buffer-local 'whitespace-check-buffer-ateol) |
| 135 | (put 'whitespace-check-buffer-ateol 'permanent-local nil) | ||
| 136 | 129 | ||
| 137 | (defvar whitespace-highlighted-space nil | 130 | (defvar whitespace-highlighted-space nil |
| 138 | "The variable to store the extent to highlight.") | 131 | "The variable to store the extent to highlight.") |
| 139 | (make-variable-buffer-local 'whitespace-highlighted-space) | 132 | (make-variable-buffer-local 'whitespace-highlighted-space) |
| 140 | (put 'whitespace-highlighted-space 'permanent-local nil) | ||
| 141 | 133 | ||
| 142 | ;; For flavors of Emacs which don't define `defgroup' and `defcustom'. | 134 | ;; For flavors of Emacs which don't define `defgroup' and `defcustom'. |
| 143 | (eval-when-compile | 135 | (eval-when-compile |
diff --git a/lisp/wid-edit.el b/lisp/wid-edit.el index 035f54b8980..4c560918594 100644 --- a/lisp/wid-edit.el +++ b/lisp/wid-edit.el | |||
| @@ -84,7 +84,7 @@ | |||
| 84 | :group 'hypermedia) | 84 | :group 'hypermedia) |
| 85 | 85 | ||
| 86 | (defgroup widget-documentation nil | 86 | (defgroup widget-documentation nil |
| 87 | "Options controling the display of documentation strings." | 87 | "Options controlling the display of documentation strings." |
| 88 | :group 'widgets) | 88 | :group 'widgets) |
| 89 | 89 | ||
| 90 | (defgroup widget-faces nil | 90 | (defgroup widget-faces nil |
diff --git a/lisp/woman.el b/lisp/woman.el index ffa0ea692ad..43ebd8df013 100644 --- a/lisp/woman.el +++ b/lisp/woman.el | |||
| @@ -486,24 +486,28 @@ As a special case, if PATHS is nil then replace it by calling | |||
| 486 | 486 | ||
| 487 | (defun woman-Cyg-to-Win (file) | 487 | (defun woman-Cyg-to-Win (file) |
| 488 | "Convert an absolute filename FILE from Cygwin to Windows form." | 488 | "Convert an absolute filename FILE from Cygwin to Windows form." |
| 489 | ;; Code taken from w32-symlinks.el | 489 | ;; MANPATH_MAP conses are not converted since they presumably map |
| 490 | (if (eq (aref file 0) ?/) | 490 | ;; Cygwin to Cygwin form. |
| 491 | ;; Try to use Cygwin mount table via `cygpath.exe'. | 491 | (if (consp file) |
| 492 | (condition-case nil | 492 | file |
| 493 | (with-temp-buffer | 493 | ;; Code taken from w32-symlinks.el |
| 494 | ;; cygpath -m file | 494 | (if (eq (aref file 0) ?/) |
| 495 | (call-process "cygpath" nil t nil "-m" file) | 495 | ;; Try to use Cygwin mount table via `cygpath.exe'. |
| 496 | (buffer-substring 1 (buffer-size))) | 496 | (condition-case nil |
| 497 | (error | 497 | (with-temp-buffer |
| 498 | ;; Assume no `cygpath' program available. | 498 | ;; cygpath -m file |
| 499 | ;; Hack /cygdrive/x/ or /x/ or (obsolete) //x/ to x:/ | 499 | (call-process "cygpath" nil t nil "-m" file) |
| 500 | (when (string-match "\\`\\(/cygdrive\\|/\\)?/./" file) | 500 | (buffer-substring 1 (buffer-size))) |
| 501 | (if (match-string 1) ; /cygdrive/x/ or //x/ -> /x/ | 501 | (error |
| 502 | (setq file (substring file (match-end 1)))) | 502 | ;; Assume no `cygpath' program available. |
| 503 | (aset file 0 (aref file 1)) ; /x/ -> xx/ | 503 | ;; Hack /cygdrive/x/ or /x/ or (obsolete) //x/ to x:/ |
| 504 | (aset file 1 ?:)) ; xx/ -> x:/ | 504 | (when (string-match "\\`\\(/cygdrive\\|/\\)?/./" file) |
| 505 | file)) | 505 | (if (match-string 1) ; /cygdrive/x/ or //x/ -> /x/ |
| 506 | file)) | 506 | (setq file (substring file (match-end 1)))) |
| 507 | (aset file 0 (aref file 1)) ; /x/ -> xx/ | ||
| 508 | (aset file 1 ?:)) ; xx/ -> x:/ | ||
| 509 | file)) | ||
| 510 | file))) | ||
| 507 | 511 | ||
| 508 | 512 | ||
| 509 | ;;; User options: | 513 | ;;; User options: |
| @@ -547,11 +551,12 @@ Change only via `Customization' or the function `add-hook'." | |||
| 547 | (mapcar 'woman-Cyg-to-Win path) | 551 | (mapcar 'woman-Cyg-to-Win path) |
| 548 | path)) | 552 | path)) |
| 549 | "*List of dirs to search and/or files to try for man config file. | 553 | "*List of dirs to search and/or files to try for man config file. |
| 550 | A trailing separator (`/' for UNIX etc.) on directories is optional, | 554 | A trailing separator (`/' for UNIX etc.) on directories is |
| 551 | and the filename is used if a directory specified is the first to | 555 | optional, and the filename is used if a directory specified is |
| 552 | contain the strings \"man\" and \".conf\" (in that order). | 556 | the first to start with \"man\" and has an extension starting |
| 553 | If MANPATH is not set but a config file is found then it is parsed | 557 | with \".conf\". If MANPATH is not set but a config file is found |
| 554 | instead to provide a default value for `woman-manpath'." | 558 | then it is parsed instead to provide a default value for |
| 559 | `woman-manpath'." | ||
| 555 | :type '(repeat string) | 560 | :type '(repeat string) |
| 556 | :group 'woman-interface) | 561 | :group 'woman-interface) |
| 557 | 562 | ||
| @@ -564,7 +569,9 @@ Concatenate data from all lines in the config file of the form | |||
| 564 | or | 569 | or |
| 565 | MANDATORY_MANPATH /usr/man | 570 | MANDATORY_MANPATH /usr/man |
| 566 | or | 571 | or |
| 567 | OPTIONAL_MANPATH /usr/man" | 572 | OPTIONAL_MANPATH /usr/man |
| 573 | or | ||
| 574 | MANPATH_MAP /opt/bin /opt/man" | ||
| 568 | ;; Functionality suggested by Charles Curley. | 575 | ;; Functionality suggested by Charles Curley. |
| 569 | (let ((path woman-man.conf-path) | 576 | (let ((path woman-man.conf-path) |
| 570 | file manpath) | 577 | file manpath) |
| @@ -576,7 +583,7 @@ or | |||
| 576 | (or (not (file-directory-p file)) | 583 | (or (not (file-directory-p file)) |
| 577 | (and | 584 | (and |
| 578 | (setq file | 585 | (setq file |
| 579 | (directory-files file t "man.*\\.conf" t)) | 586 | (directory-files file t "\\`man.*\\.conf[a-z]*\\'" t)) |
| 580 | (file-readable-p (setq file (car file))))) | 587 | (file-readable-p (setq file (car file))))) |
| 581 | ;; Parse the file -- if no MANPATH data ignore it: | 588 | ;; Parse the file -- if no MANPATH data ignore it: |
| 582 | (with-temp-buffer | 589 | (with-temp-buffer |
| @@ -584,8 +591,13 @@ or | |||
| 584 | (while (re-search-forward | 591 | (while (re-search-forward |
| 585 | ;; `\(?: ... \)' is a "shy group" | 592 | ;; `\(?: ... \)' is a "shy group" |
| 586 | "\ | 593 | "\ |
| 587 | ^[ \t]*\\(?:MANDATORY_\\|OPTIONAL_\\)?MANPATH[ \t]+\\(\\S-+\\)" nil t) | 594 | ^[ \t]*\\(?:\\(?:MANDATORY_\\|OPTIONAL_\\)?MANPATH[ \t]+\\(\\S-+\\)\\|\ |
| 588 | (setq manpath (cons (match-string 1) manpath))) | 595 | MANPATH_MAP[ \t]+\\(\\S-+\\)[ \t]+\\(\\S-+\\)\\)" nil t) |
| 596 | (add-to-list 'manpath | ||
| 597 | (if (match-beginning 1) | ||
| 598 | (match-string 1) | ||
| 599 | (cons (match-string 2) | ||
| 600 | (match-string 3))))) | ||
| 589 | manpath)) | 601 | manpath)) |
| 590 | )) | 602 | )) |
| 591 | (setq path (cdr path))) | 603 | (setq path (cdr path))) |
| @@ -600,6 +612,11 @@ subdirectories of the form `man?', or more precisely subdirectories | |||
| 600 | selected by the value of `woman-manpath-man-regexp'. Non-directory | 612 | selected by the value of `woman-manpath-man-regexp'. Non-directory |
| 601 | and unreadable files are ignored. | 613 | and unreadable files are ignored. |
| 602 | 614 | ||
| 615 | Elements can also be a cons cell indicating a mapping from PATH | ||
| 616 | to manual trees: if such an element's car is equal to a path | ||
| 617 | element of the environment variable PATH, the cdr of the cons | ||
| 618 | cell is included in the directory tree search. | ||
| 619 | |||
| 603 | If not set then the environment variable MANPATH is used. If no such | 620 | If not set then the environment variable MANPATH is used. If no such |
| 604 | environment variable is found, the default list is determined by | 621 | environment variable is found, the default list is determined by |
| 605 | consulting the man configuration file if found, which is determined by | 622 | consulting the man configuration file if found, which is determined by |
| @@ -618,7 +635,7 @@ I recommend including drive letters explicitly, e.g. | |||
| 618 | 635 | ||
| 619 | The MANPATH environment variable may be set using DOS semi-colon- | 636 | The MANPATH environment variable may be set using DOS semi-colon- |
| 620 | separated or UN*X/Cygwin colon-separated syntax (but not mixed)." | 637 | separated or UN*X/Cygwin colon-separated syntax (but not mixed)." |
| 621 | :type '(repeat string) | 638 | :type '(repeat (choice string (cons string string))) |
| 622 | :group 'woman-interface) | 639 | :group 'woman-interface) |
| 623 | 640 | ||
| 624 | (defcustom woman-manpath-man-regexp "[Mm][Aa][Nn]" | 641 | (defcustom woman-manpath-man-regexp "[Mm][Aa][Nn]" |
| @@ -1159,7 +1176,14 @@ Set from the cache by `woman-read-directory-cache'.") | |||
| 1159 | Called both to generate and to check the cache!" | 1176 | Called both to generate and to check the cache!" |
| 1160 | ;; Must use substituted paths because values of env vars may change! | 1177 | ;; Must use substituted paths because values of env vars may change! |
| 1161 | (list woman-cache-level | 1178 | (list woman-cache-level |
| 1162 | (mapcar 'substitute-in-file-name woman-manpath) | 1179 | (let (lst path) |
| 1180 | (dolist (dir woman-manpath (nreverse lst)) | ||
| 1181 | (when (consp dir) | ||
| 1182 | (unless path | ||
| 1183 | (setq path | ||
| 1184 | (split-string (getenv "PATH") path-separator t))) | ||
| 1185 | (setq dir (and (member (car dir) path) (cdr dir)))) | ||
| 1186 | (when dir (add-to-list 'lst (substitute-in-file-name dir))))) | ||
| 1163 | (mapcar 'substitute-in-file-name woman-path))) | 1187 | (mapcar 'substitute-in-file-name woman-path))) |
| 1164 | 1188 | ||
| 1165 | (defun woman-read-directory-cache () | 1189 | (defun woman-read-directory-cache () |
| @@ -1320,10 +1344,15 @@ Ignore any paths that are unreadable or not directories." | |||
| 1320 | ;; Allow each path to be a single string or a list of strings: | 1344 | ;; Allow each path to be a single string or a list of strings: |
| 1321 | (if (not (listp woman-manpath)) (setq woman-manpath (list woman-manpath))) | 1345 | (if (not (listp woman-manpath)) (setq woman-manpath (list woman-manpath))) |
| 1322 | (if (not (listp woman-path)) (setq woman-path (list woman-path))) | 1346 | (if (not (listp woman-path)) (setq woman-path (list woman-path))) |
| 1323 | (let (dir head dirs) | 1347 | (let (dir head dirs path) |
| 1324 | (while woman-manpath | 1348 | (while woman-manpath |
| 1325 | (setq dir (car woman-manpath) | 1349 | (setq dir (car woman-manpath) |
| 1326 | woman-manpath (cdr woman-manpath)) | 1350 | woman-manpath (cdr woman-manpath)) |
| 1351 | (when (consp dir) | ||
| 1352 | (unless path | ||
| 1353 | (setq path (split-string (getenv "PATH") path-separator t))) | ||
| 1354 | (setq dir (and (member (car dir) path) | ||
| 1355 | (cdr dir)))) | ||
| 1327 | (if (and dir (woman-file-readable-p dir)) | 1356 | (if (and dir (woman-file-readable-p dir)) |
| 1328 | ;; NB: `parse-colon-path' creates null elements for | 1357 | ;; NB: `parse-colon-path' creates null elements for |
| 1329 | ;; redundant (semi-)colons and trailing `/'s! | 1358 | ;; redundant (semi-)colons and trailing `/'s! |
| @@ -2102,18 +2131,6 @@ No external programs are used." | |||
| 2102 | (interactive) ; mainly for testing | 2131 | (interactive) ; mainly for testing |
| 2103 | (WoMan-log-begin) | 2132 | (WoMan-log-begin) |
| 2104 | (run-hooks 'woman-pre-format-hook) | 2133 | (run-hooks 'woman-pre-format-hook) |
| 2105 | |||
| 2106 | ;; look for macro sets that woman cannot handle: | ||
| 2107 | (goto-char (point-min)) | ||
| 2108 | (let ((case-fold-search nil)) | ||
| 2109 | (unless (and (re-search-forward "^\\.SH[ \n]" (point-max) t) | ||
| 2110 | (progn (goto-char (point-min)) | ||
| 2111 | (re-search-forward "^\\.TH[ \n]" (point-max) t)) | ||
| 2112 | (progn (goto-char (point-min)) | ||
| 2113 | (not (re-search-forward "^\\.\\([pnil]p\\|sh\\)[ \n]" | ||
| 2114 | (point-max) t)))) | ||
| 2115 | (error "WoMan can only format man pages written with the usual `-man' macros"))) | ||
| 2116 | |||
| 2117 | (and (boundp 'font-lock-mode) font-lock-mode (font-lock-mode -1)) | 2134 | (and (boundp 'font-lock-mode) font-lock-mode (font-lock-mode -1)) |
| 2118 | ;; (fundamental-mode) | 2135 | ;; (fundamental-mode) |
| 2119 | (let ((start-time (current-time)) ; (HIGH LOW MICROSEC) | 2136 | (let ((start-time (current-time)) ; (HIGH LOW MICROSEC) |
| @@ -2269,6 +2286,18 @@ Currently set only from '\" t in the first line of the source file.") | |||
| 2269 | ;; conditionals and switch source requests: | 2286 | ;; conditionals and switch source requests: |
| 2270 | (woman0-roff-buffer from) | 2287 | (woman0-roff-buffer from) |
| 2271 | 2288 | ||
| 2289 | ;; Check for macro sets that woman cannot handle. We can only | ||
| 2290 | ;; because do this after processing source-switch directives. | ||
| 2291 | (goto-char (point-min)) | ||
| 2292 | (let ((case-fold-search nil)) | ||
| 2293 | (unless (and (re-search-forward "^\\.SH[ \n]" (point-max) t) | ||
| 2294 | (progn (goto-char (point-min)) | ||
| 2295 | (re-search-forward "^\\.TH[ \n]" (point-max) t)) | ||
| 2296 | (progn (goto-char (point-min)) | ||
| 2297 | (not (re-search-forward "^\\.\\([pnil]p\\|sh\\)[ \n]" | ||
| 2298 | (point-max) t)))) | ||
| 2299 | (error "WoMan can only format man pages written with the usual `-man' macros"))) | ||
| 2300 | |||
| 2272 | ;; Process \k escapes BEFORE changing tab width (?): | 2301 | ;; Process \k escapes BEFORE changing tab width (?): |
| 2273 | (goto-char from) | 2302 | (goto-char from) |
| 2274 | (woman-mark-horizonal-position) | 2303 | (woman-mark-horizonal-position) |
diff --git a/lisp/xt-mouse.el b/lisp/xt-mouse.el index 899049cef03..ede5f1359f7 100644 --- a/lisp/xt-mouse.el +++ b/lisp/xt-mouse.el | |||
| @@ -50,7 +50,8 @@ | |||
| 50 | 50 | ||
| 51 | ;; Mouse events symbols must have an 'event-kind property with | 51 | ;; Mouse events symbols must have an 'event-kind property with |
| 52 | ;; the value 'mouse-click. | 52 | ;; the value 'mouse-click. |
| 53 | (dolist (event-type '(mouse-1 mouse-2 mouse-3)) | 53 | (dolist (event-type '(mouse-1 mouse-2 mouse-3 |
| 54 | M-down-mouse-1 M-down-mouse-2 M-down-mouse-3)) | ||
| 54 | (put event-type 'event-kind 'mouse-click)) | 55 | (put event-type 'event-kind 'mouse-click)) |
| 55 | 56 | ||
| 56 | (defun xterm-mouse-translate (event) | 57 | (defun xterm-mouse-translate (event) |
| @@ -108,6 +109,8 @@ | |||
| 108 | ;;(defvar xterm-mouse-y 0 | 109 | ;;(defvar xterm-mouse-y 0 |
| 109 | ;; "Position of last xterm mouse event relative to the frame.") | 110 | ;; "Position of last xterm mouse event relative to the frame.") |
| 110 | 111 | ||
| 112 | (defvar xt-mouse-epoch nil) | ||
| 113 | |||
| 111 | ;; Indicator for the xterm-mouse mode. | 114 | ;; Indicator for the xterm-mouse mode. |
| 112 | 115 | ||
| 113 | (defun xterm-mouse-position-function (pos) | 116 | (defun xterm-mouse-position-function (pos) |
| @@ -129,6 +132,13 @@ | |||
| 129 | (let* ((type (- (xterm-mouse-event-read) #o40)) | 132 | (let* ((type (- (xterm-mouse-event-read) #o40)) |
| 130 | (x (- (xterm-mouse-event-read) #o40 1)) | 133 | (x (- (xterm-mouse-event-read) #o40 1)) |
| 131 | (y (- (xterm-mouse-event-read) #o40 1)) | 134 | (y (- (xterm-mouse-event-read) #o40 1)) |
| 135 | ;; Emulate timestamp information. This is accurate enough | ||
| 136 | ;; for default value of mouse-1-click-follows-link (450msec). | ||
| 137 | (timestamp (truncate | ||
| 138 | (* 1000 | ||
| 139 | (- (float-time) | ||
| 140 | (or xt-mouse-epoch | ||
| 141 | (setq xt-mouse-epoch (float-time))))))) | ||
| 132 | (mouse (intern | 142 | (mouse (intern |
| 133 | ;; For buttons > 3, the release-event looks | 143 | ;; For buttons > 3, the release-event looks |
| 134 | ;; differently (see xc/programs/xterm/button.c, | 144 | ;; differently (see xc/programs/xterm/button.c, |
| @@ -136,6 +146,11 @@ | |||
| 136 | ;; a release-event only, no down-event. | 146 | ;; a release-event only, no down-event. |
| 137 | (cond ((>= type 64) | 147 | (cond ((>= type 64) |
| 138 | (format "mouse-%d" (- type 60))) | 148 | (format "mouse-%d" (- type 60))) |
| 149 | ((memq type '(8 9 10)) | ||
| 150 | (setq xterm-mouse-last type) | ||
| 151 | (format "M-down-mouse-%d" (- type 7))) | ||
| 152 | ((= type 11) | ||
| 153 | (format "mouse-%d" (- xterm-mouse-last 7))) | ||
| 139 | ((= type 3) | 154 | ((= type 3) |
| 140 | (format "mouse-%d" (+ 1 xterm-mouse-last))) | 155 | (format "mouse-%d" (+ 1 xterm-mouse-last))) |
| 141 | (t | 156 | (t |
| @@ -150,10 +165,13 @@ | |||
| 150 | (set-terminal-parameter nil 'xterm-mouse-y y) | 165 | (set-terminal-parameter nil 'xterm-mouse-y y) |
| 151 | (setq | 166 | (setq |
| 152 | last-input-event | 167 | last-input-event |
| 153 | (if w | 168 | (list mouse |
| 154 | (list mouse (posn-at-x-y (- x left) (- y top) w t)) | 169 | (let ((event (if w |
| 155 | (list mouse | 170 | (posn-at-x-y (- x left) (- y top) w t) |
| 156 | (append (list nil 'menu-bar) (nthcdr 2 (posn-at-x-y x y w t)))))))) | 171 | (append (list nil 'menu-bar) |
| 172 | (nthcdr 2 (posn-at-x-y x y)))))) | ||
| 173 | (setcar (nthcdr 3 event) timestamp) | ||
| 174 | event))))) | ||
| 157 | 175 | ||
| 158 | ;;;###autoload | 176 | ;;;###autoload |
| 159 | (define-minor-mode xterm-mouse-mode | 177 | (define-minor-mode xterm-mouse-mode |