diff options
| author | Miles Bader | 2004-09-29 07:22:20 +0000 |
|---|---|---|
| committer | Miles Bader | 2004-09-29 07:22:20 +0000 |
| commit | 93952a2d5b2ba718f9d688dda216fed8621ec21e (patch) | |
| tree | c4cda2097cdc4b8d07260702c7325b0fa1f6e30d /lisp | |
| parent | 4148c3c9425939c1639f349b20a33b71fea72b8e (diff) | |
| parent | c1d7d28589c020b2b72d795638e100eda852d6aa (diff) | |
| download | emacs-93952a2d5b2ba718f9d688dda216fed8621ec21e.tar.gz emacs-93952a2d5b2ba718f9d688dda216fed8621ec21e.zip | |
Revision: miles@gnu.org--gnu-2004/emacs--unicode--0--patch-47
Merge from emacs--cvs-trunk--0
Patches applied:
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-571
Merge from gnus--rel--5.10
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-572
- miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-574
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-575
Merge from gnus--rel--5.10
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-576
- miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-579
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-580
Merge from gnus--rel--5.10
* miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-31
- miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-33
Update from CVS
* miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-34
Merge from emacs--cvs-trunk--0
* miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-35
- miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-37
Update from CVS
Diffstat (limited to 'lisp')
| -rw-r--r-- | lisp/ChangeLog | 79 | ||||
| -rw-r--r-- | lisp/calendar/diary-lib.el | 227 | ||||
| -rw-r--r-- | lisp/dired.el | 134 | ||||
| -rw-r--r-- | lisp/files.el | 3 | ||||
| -rw-r--r-- | lisp/fringe.el | 46 | ||||
| -rw-r--r-- | lisp/gnus/ChangeLog | 74 | ||||
| -rw-r--r-- | lisp/gnus/flow-fill.el | 2 | ||||
| -rw-r--r-- | lisp/gnus/gnus-art.el | 2 | ||||
| -rw-r--r-- | lisp/gnus/gnus-cache.el | 5 | ||||
| -rw-r--r-- | lisp/gnus/gnus-diary.el | 2 | ||||
| -rw-r--r-- | lisp/gnus/gnus-fun.el | 7 | ||||
| -rw-r--r-- | lisp/gnus/gnus-msg.el | 20 | ||||
| -rw-r--r-- | lisp/gnus/gnus-picon.el | 3 | ||||
| -rw-r--r-- | lisp/gnus/gnus.el | 39 | ||||
| -rw-r--r-- | lisp/gnus/html2text.el | 5 | ||||
| -rw-r--r-- | lisp/gnus/message.el | 2 | ||||
| -rw-r--r-- | lisp/gnus/mm-bodies.el | 11 | ||||
| -rw-r--r-- | lisp/gnus/mm-decode.el | 8 | ||||
| -rw-r--r-- | lisp/gnus/mm-util.el | 17 | ||||
| -rw-r--r-- | lisp/gnus/mml-sec.el | 2 | ||||
| -rw-r--r-- | lisp/gnus/mml-smime.el | 3 | ||||
| -rw-r--r-- | lisp/gnus/mml.el | 3 | ||||
| -rw-r--r-- | lisp/gnus/nnfolder.el | 2 | ||||
| -rw-r--r-- | lisp/gnus/nnheader.el | 4 | ||||
| -rw-r--r-- | lisp/gnus/nnml.el | 2 | ||||
| -rw-r--r-- | lisp/gnus/rfc2047.el | 35 | ||||
| -rw-r--r-- | lisp/gnus/spam.el | 6 | ||||
| -rw-r--r-- | lisp/printing.el | 26 | ||||
| -rw-r--r-- | lisp/progmodes/gdb-ui.el | 16 | ||||
| -rw-r--r-- | lisp/term.el | 167 | ||||
| -rw-r--r-- | lisp/textmodes/enriched.el | 2 |
31 files changed, 637 insertions, 317 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index a77f2206e58..187fc607c27 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,6 +1,79 @@ | |||
| 1 | 2004-09-28 Stefan <monnier@iro.umontreal.ca> | ||
| 2 | |||
| 3 | * dired.el (dired-view-command-alist): Use more efficient regexps. | ||
| 4 | Remove dubious arguments. | ||
| 5 | (dired-align-file): New function. | ||
| 6 | (dired-insert-directory): Use it. | ||
| 7 | (dired-move-to-end-of-filename): Make the " -> " search more specific. | ||
| 8 | (dired-buffers-for-dir): Remove unused var `pattern'. | ||
| 9 | |||
| 10 | 2004-09-29 Kim F. Storm <storm@cua.dk> | ||
| 11 | |||
| 12 | * progmodes/gdb-ui.el (breakpoint): Define as fringe bitmap. | ||
| 13 | (gdb-mouse-toggle-breakpoint): Fix fringe-bitmaps-at-pos usage. | ||
| 14 | (gdb-put-breakpoint-icon): Use breakpoint bitmap. | ||
| 15 | |||
| 16 | * fringe.el (fringe-bitmap-p): New macro. | ||
| 17 | (fringe-bitmaps): Add standard fringe bitmaps on load. | ||
| 18 | |||
| 19 | 2004-09-28 Matthew Mundell <matt@mundell.ukfsn.org> (tiny change) | ||
| 20 | |||
| 21 | * calendar/diary-lib.el (list-diary-entries): Save diary buffer | ||
| 22 | from diary display excursion. Store diary buffer's point for | ||
| 23 | `simple-diary-display'. | ||
| 24 | (simple-diary-display): Set window point and start when | ||
| 25 | displaying buffer, to preserve point. | ||
| 26 | |||
| 27 | 2004-09-27 Luc Teirlinck <teirllm@auburn.edu> | ||
| 28 | |||
| 29 | * textmodes/enriched.el (enriched-translations): Replace defconst | ||
| 30 | with defvar. | ||
| 31 | |||
| 32 | 2004-09-26 Vinicius Jose Latorre <viniciusjl@ig.com.br> | ||
| 33 | |||
| 34 | * printing.el: Doc fix. | ||
| 35 | (pr-version): New version number (6.8.1). | ||
| 36 | (pr-ps-file-using-ghostscript): Use make-temp-file instead of | ||
| 37 | make-temp-name. | ||
| 38 | (pr-delete-file): Check if file exists before deleting it. Reported by | ||
| 39 | Lennart Borgman <lennart.borgman.073@student.lu.se>. | ||
| 40 | |||
| 41 | 2004-09-26 Stefan <monnier@iro.umontreal.ca> | ||
| 42 | |||
| 43 | * term.el (term-display-table): New variable. | ||
| 44 | (term-mode): Use it. | ||
| 45 | (term-exec-1): Set the coding system to binary. | ||
| 46 | (term-emulate-terminal): Decode the string before inserting it. | ||
| 47 | |||
| 48 | 2004-09-26 Dan Nicolaescu <dann@ics.uci.edu> | ||
| 49 | |||
| 50 | * term.el (term-ansi-at-eval-string, term-ansi-default-fg) | ||
| 51 | (term-ansi-default-bg, term-ansi-current-temp): Delete unused | ||
| 52 | vars. | ||
| 53 | (map): Bind S-prior, S-next and S-insert. | ||
| 54 | (term-mode): Set `indent-tabs-mode' to nil. | ||
| 55 | (term-paste): New function to be bound to S-insert. | ||
| 56 | (term-send-del, term-send-backspace): Change the strings sent. | ||
| 57 | (term-termcap-format): Synchronyze with etc/e/eterm.ti. | ||
| 58 | (term-handle-colors-array): Fix handling of underline and reverse. | ||
| 59 | (term-handle-ansi-escape): Do not handle smcup/rmcup. Add | ||
| 60 | comments. | ||
| 61 | (term-erase-in-line): Fix comparison. | ||
| 62 | (term-emulate-terminal): Fix line wrap handling. | ||
| 63 | (term-start-output-log): Renamed from `term-set-output-log'. | ||
| 64 | (term-stop-output-log): Renamed from `term-stop-photo'. | ||
| 65 | (term-switch-to-alternate-sub-buffer): Comment out, unused. | ||
| 66 | |||
| 67 | 2004-09-25 Stefan <monnier@iro.umontreal.ca> | ||
| 68 | |||
| 69 | * dired.el (dired-move-to-filename): Don't output a message if | ||
| 70 | raise-error is non-nil. Fix return position and value. | ||
| 71 | |||
| 72 | * files.el (insert-directory): Obey --dired even with symlinks. | ||
| 73 | |||
| 1 | 2004-09-25 Lars Hansen <larsh@math.ku.dk> | 74 | 2004-09-25 Lars Hansen <larsh@math.ku.dk> |
| 2 | 75 | ||
| 3 | * ls-lisp.el (ls-lisp-format): Mark file names with poperty | 76 | * ls-lisp.el (ls-lisp-format): Mark file names with property |
| 4 | dired-filename. | 77 | dired-filename. |
| 5 | 78 | ||
| 6 | 2004-09-25 Kim F. Storm <storm@cua.dk> | 79 | 2004-09-25 Kim F. Storm <storm@cua.dk> |
| @@ -21,8 +94,8 @@ | |||
| 21 | it, and show completions. | 94 | it, and show completions. |
| 22 | (ido-all-completions): Let bind ido-directory-too-big to nil. | 95 | (ido-all-completions): Let bind ido-directory-too-big to nil. |
| 23 | (ido-exhibit): Handle ido-directory-too-big. | 96 | (ido-exhibit): Handle ido-directory-too-big. |
| 24 | (ido-read-buffer): Handle fallback to read-buffer. Init | 97 | (ido-read-buffer): Handle fallback to read-buffer. |
| 25 | ido-directory-too-big. | 98 | Init ido-directory-too-big. |
| 26 | (ido-read-file-name, ido-read-directory-name, ido-completing-read): | 99 | (ido-read-file-name, ido-read-directory-name, ido-completing-read): |
| 27 | Init ido-directory-too-big. | 100 | Init ido-directory-too-big. |
| 28 | 101 | ||
diff --git a/lisp/calendar/diary-lib.el b/lisp/calendar/diary-lib.el index 45bb3c0e4c0..945119f06df 100644 --- a/lisp/calendar/diary-lib.el +++ b/lisp/calendar/diary-lib.el | |||
| @@ -4,6 +4,7 @@ | |||
| 4 | ;; Free Software Foundation, Inc. | 4 | ;; Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Edward M. Reingold <reingold@cs.uiuc.edu> | 6 | ;; Author: Edward M. Reingold <reingold@cs.uiuc.edu> |
| 7 | ;; Maintainer: Glenn Morris <gmorris@ast.cam.ac.uk> | ||
| 7 | ;; Keywords: calendar | 8 | ;; Keywords: calendar |
| 8 | 9 | ||
| 9 | ;; This file is part of GNU Emacs. | 10 | ;; This file is part of GNU Emacs. |
| @@ -296,6 +297,8 @@ Only used if `diary-header-line-flag' is non-nil." | |||
| 296 | :type 'sexp | 297 | :type 'sexp |
| 297 | :version "21.4") | 298 | :version "21.4") |
| 298 | 299 | ||
| 300 | (defvar diary-saved-point) ; internal | ||
| 301 | |||
| 299 | (defun list-diary-entries (date number) | 302 | (defun list-diary-entries (date number) |
| 300 | "Create and display a buffer containing the relevant lines in diary-file. | 303 | "Create and display a buffer containing the relevant lines in diary-file. |
| 301 | The arguments are DATE and NUMBER; the entries selected are those | 304 | The arguments are DATE and NUMBER; the entries selected are those |
| @@ -345,112 +348,116 @@ These hooks have the following distinct roles: | |||
| 345 | (set-buffer diary-buffer) | 348 | (set-buffer diary-buffer) |
| 346 | (or (verify-visited-file-modtime diary-buffer) | 349 | (or (verify-visited-file-modtime diary-buffer) |
| 347 | (revert-buffer t t)))) | 350 | (revert-buffer t t)))) |
| 348 | (setq file-glob-attrs (nth 1 (diary-pull-attrs nil ""))) | 351 | ;; d-s-p is passed to the diary display function. |
| 349 | (setq selective-display t) | 352 | (let ((diary-saved-point (point))) |
| 350 | (setq selective-display-ellipses nil) | 353 | (save-excursion |
| 351 | (if diary-header-line-flag | 354 | (setq file-glob-attrs (nth 1 (diary-pull-attrs nil ""))) |
| 352 | (setq header-line-format diary-header-line-format)) | 355 | (setq selective-display t) |
| 353 | (setq old-diary-syntax-table (syntax-table)) | 356 | (setq selective-display-ellipses nil) |
| 354 | (set-syntax-table diary-syntax-table) | 357 | (if diary-header-line-flag |
| 355 | (unwind-protect | 358 | (setq header-line-format diary-header-line-format)) |
| 356 | (let ((buffer-read-only nil) | 359 | (setq old-diary-syntax-table (syntax-table)) |
| 357 | (diary-modified (buffer-modified-p)) | 360 | (set-syntax-table diary-syntax-table) |
| 358 | (mark (regexp-quote diary-nonmarking-symbol))) | 361 | (unwind-protect |
| 359 | ;; First and last characters must be ^M or \n for | 362 | (let ((buffer-read-only nil) |
| 360 | ;; selective display to work properly | 363 | (diary-modified (buffer-modified-p)) |
| 361 | (goto-char (1- (point-max))) | 364 | (mark (regexp-quote diary-nonmarking-symbol))) |
| 362 | (if (not (looking-at "\^M\\|\n")) | 365 | ;; First and last characters must be ^M or \n for |
| 363 | (progn | 366 | ;; selective display to work properly |
| 364 | (goto-char (point-max)) | 367 | (goto-char (1- (point-max))) |
| 365 | (insert "\^M"))) | 368 | (if (not (looking-at "\^M\\|\n")) |
| 366 | (goto-char (point-min)) | 369 | (progn |
| 367 | (if (not (looking-at "\^M\\|\n")) | 370 | (goto-char (point-max)) |
| 368 | (insert "\^M")) | 371 | (insert "\^M"))) |
| 369 | (subst-char-in-region (point-min) (point-max) ?\n ?\^M t) | 372 | (goto-char (point-min)) |
| 370 | (calendar-for-loop i from 1 to number do | 373 | (if (not (looking-at "\^M\\|\n")) |
| 371 | (let ((d diary-date-forms) | 374 | (insert "\^M")) |
| 372 | (month (extract-calendar-month date)) | 375 | (subst-char-in-region (point-min) (point-max) ?\n ?\^M t) |
| 373 | (day (extract-calendar-day date)) | 376 | (calendar-for-loop |
| 374 | (year (extract-calendar-year date)) | 377 | i from 1 to number do |
| 375 | (entry-found (list-sexp-diary-entries date))) | 378 | (let ((d diary-date-forms) |
| 376 | (while d | 379 | (month (extract-calendar-month date)) |
| 377 | (let* | 380 | (day (extract-calendar-day date)) |
| 378 | ((date-form (if (equal (car (car d)) 'backup) | 381 | (year (extract-calendar-year date)) |
| 379 | (cdr (car d)) | 382 | (entry-found (list-sexp-diary-entries date))) |
| 380 | (car d))) | 383 | (while d |
| 381 | (backup (equal (car (car d)) 'backup)) | 384 | (let* |
| 382 | (dayname | 385 | ((date-form (if (equal (car (car d)) 'backup) |
| 383 | (format "%s\\|%s\\.?" | 386 | (cdr (car d)) |
| 384 | (calendar-day-name date) | 387 | (car d))) |
| 385 | (calendar-day-name date 'abbrev))) | 388 | (backup (equal (car (car d)) 'backup)) |
| 386 | (monthname | 389 | (dayname |
| 387 | (format "\\*\\|%s\\|%s\\.?" | 390 | (format "%s\\|%s\\.?" |
| 388 | (calendar-month-name month) | 391 | (calendar-day-name date) |
| 389 | (calendar-month-name month 'abbrev))) | 392 | (calendar-day-name date 'abbrev))) |
| 390 | (month (concat "\\*\\|0*" (int-to-string month))) | 393 | (monthname |
| 391 | (day (concat "\\*\\|0*" (int-to-string day))) | 394 | (format "\\*\\|%s\\|%s\\.?" |
| 392 | (year | 395 | (calendar-month-name month) |
| 393 | (concat | 396 | (calendar-month-name month 'abbrev))) |
| 394 | "\\*\\|0*" (int-to-string year) | 397 | (month (concat "\\*\\|0*" (int-to-string month))) |
| 395 | (if abbreviated-calendar-year | 398 | (day (concat "\\*\\|0*" (int-to-string day))) |
| 396 | (concat "\\|" (format "%02d" (% year 100))) | 399 | (year |
| 397 | ""))) | 400 | (concat |
| 398 | (regexp | 401 | "\\*\\|0*" (int-to-string year) |
| 399 | (concat | 402 | (if abbreviated-calendar-year |
| 400 | "\\(\\`\\|\^M\\|\n\\)" mark "?\\(" | 403 | (concat "\\|" (format "%02d" (% year 100))) |
| 401 | (mapconcat 'eval date-form "\\)\\(") | 404 | ""))) |
| 402 | "\\)")) | 405 | (regexp |
| 403 | (case-fold-search t)) | 406 | (concat |
| 404 | (goto-char (point-min)) | 407 | "\\(\\`\\|\^M\\|\n\\)" mark "?\\(" |
| 405 | (while (re-search-forward regexp nil t) | 408 | (mapconcat 'eval date-form "\\)\\(") |
| 406 | (if backup (re-search-backward "\\<" nil t)) | 409 | "\\)")) |
| 407 | (if (and (or (char-equal (preceding-char) ?\^M) | 410 | (case-fold-search t)) |
| 408 | (char-equal (preceding-char) ?\n)) | 411 | (goto-char (point-min)) |
| 409 | (not (looking-at " \\|\^I"))) | 412 | (while (re-search-forward regexp nil t) |
| 410 | ;; Diary entry that consists only of date. | 413 | (if backup (re-search-backward "\\<" nil t)) |
| 411 | (backward-char 1) | 414 | (if (and (or (char-equal (preceding-char) ?\^M) |
| 412 | ;; Found a nonempty diary entry--make it visible and | 415 | (char-equal (preceding-char) ?\n)) |
| 413 | ;; add it to the list. | 416 | (not (looking-at " \\|\^I"))) |
| 414 | (setq entry-found t) | 417 | ;; Diary entry that consists only of date. |
| 415 | (let ((entry-start (point)) | 418 | (backward-char 1) |
| 416 | date-start temp) | 419 | ;; Found a nonempty diary entry--make it |
| 417 | (re-search-backward "\^M\\|\n\\|\\`") | 420 | ;; visible and add it to the list. |
| 418 | (setq date-start (point)) | 421 | (setq entry-found t) |
| 419 | (re-search-forward "\^M\\|\n" nil t 2) | 422 | (let ((entry-start (point)) |
| 420 | (while (looking-at " \\|\^I") | 423 | date-start temp) |
| 421 | (re-search-forward "\^M\\|\n" nil t)) | 424 | (re-search-backward "\^M\\|\n\\|\\`") |
| 422 | (backward-char 1) | 425 | (setq date-start (point)) |
| 423 | (subst-char-in-region date-start | 426 | (re-search-forward "\^M\\|\n" nil t 2) |
| 424 | (point) ?\^M ?\n t) | 427 | (while (looking-at " \\|\^I") |
| 425 | (setq entry (buffer-substring entry-start (point)) | 428 | (re-search-forward "\^M\\|\n" nil t)) |
| 426 | temp (diary-pull-attrs entry file-glob-attrs) | 429 | (backward-char 1) |
| 427 | entry (nth 0 temp)) | 430 | (subst-char-in-region date-start |
| 428 | (add-to-diary-list | 431 | (point) ?\^M ?\n t) |
| 429 | date | 432 | (setq entry (buffer-substring entry-start (point)) |
| 430 | entry | 433 | temp (diary-pull-attrs entry file-glob-attrs) |
| 431 | (buffer-substring | 434 | entry (nth 0 temp)) |
| 432 | (1+ date-start) (1- entry-start)) | 435 | (add-to-diary-list |
| 433 | (copy-marker entry-start) (nth 1 temp)))))) | 436 | date |
| 434 | (setq d (cdr d))) | 437 | entry |
| 435 | (or entry-found | 438 | (buffer-substring |
| 436 | (not diary-list-include-blanks) | 439 | (1+ date-start) (1- entry-start)) |
| 437 | (setq diary-entries-list | 440 | (copy-marker entry-start) (nth 1 temp)))))) |
| 438 | (append diary-entries-list | 441 | (setq d (cdr d))) |
| 439 | (list (list date "" "" "" ""))))) | 442 | (or entry-found |
| 440 | (setq date | 443 | (not diary-list-include-blanks) |
| 441 | (calendar-gregorian-from-absolute | 444 | (setq diary-entries-list |
| 442 | (1+ (calendar-absolute-from-gregorian date)))) | 445 | (append diary-entries-list |
| 443 | (setq entry-found nil))) | 446 | (list (list date "" "" "" ""))))) |
| 444 | (set-buffer-modified-p diary-modified)) | 447 | (setq date |
| 445 | (set-syntax-table old-diary-syntax-table)) | 448 | (calendar-gregorian-from-absolute |
| 446 | (goto-char (point-min)) | 449 | (1+ (calendar-absolute-from-gregorian date)))) |
| 447 | (run-hooks 'nongregorian-diary-listing-hook | 450 | (setq entry-found nil))) |
| 448 | 'list-diary-entries-hook) | 451 | (set-buffer-modified-p diary-modified)) |
| 449 | (if diary-display-hook | 452 | (set-syntax-table old-diary-syntax-table)) |
| 450 | (run-hooks 'diary-display-hook) | 453 | (goto-char (point-min)) |
| 451 | (simple-diary-display)) | 454 | (run-hooks 'nongregorian-diary-listing-hook |
| 452 | (run-hooks 'diary-hook) | 455 | 'list-diary-entries-hook) |
| 453 | diary-entries-list)))) | 456 | (if diary-display-hook |
| 457 | (run-hooks 'diary-display-hook) | ||
| 458 | (simple-diary-display)) | ||
| 459 | (run-hooks 'diary-hook) | ||
| 460 | diary-entries-list)))))) | ||
| 454 | 461 | ||
| 455 | (defun include-other-diary-files () | 462 | (defun include-other-diary-files () |
| 456 | "Include the diary entries from other diary files with those of diary-file. | 463 | "Include the diary entries from other diary files with those of diary-file. |
| @@ -528,8 +535,12 @@ changing the variable `diary-include-string'." | |||
| 528 | (setq buffer-read-only t) | 535 | (setq buffer-read-only t) |
| 529 | (display-buffer holiday-buffer) | 536 | (display-buffer holiday-buffer) |
| 530 | (message "No diary entries for %s" date-string)) | 537 | (message "No diary entries for %s" date-string)) |
| 531 | (display-buffer (find-buffer-visiting | 538 | (with-current-buffer |
| 532 | (substitute-in-file-name diary-file))) | 539 | (find-buffer-visiting (substitute-in-file-name diary-file)) |
| 540 | (let ((window (display-buffer (current-buffer)))) | ||
| 541 | ;; d-s-p is passed from list-diary-entries. | ||
| 542 | (set-window-point window diary-saved-point) | ||
| 543 | (set-window-start window (point-min)))) | ||
| 533 | (message "Preparing diary...done")))) | 544 | (message "Preparing diary...done")))) |
| 534 | 545 | ||
| 535 | (defface diary-button-face '((((type pc) (class color)) | 546 | (defface diary-button-face '((((type pc) (class color)) |
diff --git a/lisp/dired.el b/lisp/dired.el index 43eec9408d4..96b2905337e 100644 --- a/lisp/dired.el +++ b/lisp/dired.el | |||
| @@ -202,10 +202,11 @@ with the buffer narrowed to the listing." | |||
| 202 | 202 | ||
| 203 | ;; Fixme: This should use mailcap. | 203 | ;; Fixme: This should use mailcap. |
| 204 | (defcustom dired-view-command-alist | 204 | (defcustom dired-view-command-alist |
| 205 | '(("[.]\\(ps\\|ps_pages\\|eps\\)\\'" . "gv -spartan -color -watch %s") | 205 | '(("\\.\\(ps\\|ps_pages\\|eps\\)\\'" . "gv %s") |
| 206 | ("[.]pdf\\'" . "xpdf %s") | 206 | ("\\.pdf\\'" . "xpdf %s") |
| 207 | ("[.]\\(jpe?g\\|gif\\|png\\)\\'" . "eog %s") | 207 | ;; ("\\.pod\\'" . "perldoc %s") |
| 208 | ("[.]dvi\\'" . "xdvi -sidemargin 0.5 -topmargin 1 %s")) | 208 | ("\\.\\(jpe?g\\|gif\\|png\\)\\'" . "eog %s") |
| 209 | ("\\.dvi\\'" . "xdvi %s")) | ||
| 209 | "Alist specifying how to view special types of files. | 210 | "Alist specifying how to view special types of files. |
| 210 | Each element has the form (REGEXP . SHELL-COMMAND). | 211 | Each element has the form (REGEXP . SHELL-COMMAND). |
| 211 | When the file name matches REGEXP, `dired-view-file' | 212 | When the file name matches REGEXP, `dired-view-file' |
| @@ -797,6 +798,112 @@ wildcards, erases the buffer, and builds the subdir-alist anew | |||
| 797 | (dired-insert-directory dir dired-actual-switches | 798 | (dired-insert-directory dir dired-actual-switches |
| 798 | file-list (not file-list) t))))) | 799 | file-list (not file-list) t))))) |
| 799 | 800 | ||
| 801 | (defun dired-align-file (beg end) | ||
| 802 | "Align the fields of a file to the ones of surrounding lines. | ||
| 803 | BEG..END is the line where the file info is located." | ||
| 804 | ;; Some versions of ls try to adjust the size of each field so as to just | ||
| 805 | ;; hold the largest element ("largest" in the current invocation, of | ||
| 806 | ;; course). So when a single line is output, the size of each field is | ||
| 807 | ;; just big enough for that one output. Thus when dired refreshes one | ||
| 808 | ;; line, the alignment if this line w.r.t the rest is messed up because | ||
| 809 | ;; the fields of that one line will generally be smaller. | ||
| 810 | ;; | ||
| 811 | ;; To work around this problem, we here add spaces to try and re-align the | ||
| 812 | ;; fields as needed. Since this is purely aesthetic, it is of utmost | ||
| 813 | ;; importance that it doesn't mess up anything like | ||
| 814 | ;; `dired-move-to-filename'. To this end, we limit ourselves to adding | ||
| 815 | ;; spaces only, and to only add them at places where there was already at | ||
| 816 | ;; least one space. This way, as long as `dired-move-to-filename-regexp' | ||
| 817 | ;; always matches spaces with "*" or "+", we know we haven't made anything | ||
| 818 | ;; worse. There is one spot where the exact number of spaces is | ||
| 819 | ;; important, which is just before the actual filename, so we refrain from | ||
| 820 | ;; adding spaces there (and within the filename as well, of course). | ||
| 821 | (save-excursion | ||
| 822 | (let (file file-col other other-col) | ||
| 823 | ;; Check the there is indeed a file, and that there is anoter adjacent | ||
| 824 | ;; file with which to align, and that additional spaces are needed to | ||
| 825 | ;; align the filenames. | ||
| 826 | (when (and (setq file (progn (goto-char beg) | ||
| 827 | (dired-move-to-filename nil end))) | ||
| 828 | (setq file-col (current-column)) | ||
| 829 | (setq other | ||
| 830 | (or (and (goto-char beg) | ||
| 831 | (zerop (forward-line -1)) | ||
| 832 | (dired-move-to-filename)) | ||
| 833 | (and (goto-char beg) | ||
| 834 | (zerop (forward-line 1)) | ||
| 835 | (dired-move-to-filename)))) | ||
| 836 | (setq other-col (current-column)) | ||
| 837 | (/= file other) | ||
| 838 | ;; Make sure there is some work left to do. | ||
| 839 | (> other-col file-col)) | ||
| 840 | ;; If we've only looked at the line above, check to see if the line | ||
| 841 | ;; below exists as well and if so, align with the shorter one. | ||
| 842 | (when (and (< other file) | ||
| 843 | (goto-char beg) | ||
| 844 | (zerop (forward-line 1)) | ||
| 845 | (dired-move-to-filename)) | ||
| 846 | (let ((alt-col (current-column))) | ||
| 847 | (when (< alt-col other-col) | ||
| 848 | (setq other-col alt-col) | ||
| 849 | (setq other (point))))) | ||
| 850 | ;; Keep positions uptodate when we insert stuff. | ||
| 851 | (if (> other file) (setq other (copy-marker other))) | ||
| 852 | (setq file (copy-marker file)) | ||
| 853 | ;; Main loop. | ||
| 854 | (goto-char beg) | ||
| 855 | (while (and (> other-col file-col) | ||
| 856 | (skip-chars-forward "^ ") | ||
| 857 | ;; Skip the spaces, and make sure there's at least one. | ||
| 858 | (> (skip-chars-forward " ") 0) | ||
| 859 | ;; Don't touch anything just before (and after) the | ||
| 860 | ;; beginning of the filename. | ||
| 861 | (> file (point))) | ||
| 862 | ;; We're now just in front of a field, with a space behind us. | ||
| 863 | (let* ((curcol (current-column)) | ||
| 864 | ;; Nums are right-aligned. | ||
| 865 | (num-align (looking-at "[0-9]")) | ||
| 866 | ;; Let's look at the other line, in the same column: we | ||
| 867 | ;; should be either near the end of the previous field, or | ||
| 868 | ;; in the space between that field and the next. | ||
| 869 | ;; [ Of course, it's also possible that we're already within | ||
| 870 | ;; the next field or even past it, but that's unlikely since | ||
| 871 | ;; other-col > file-col. ] | ||
| 872 | ;; Let's find the distance to the alignment-point (either | ||
| 873 | ;; the beginning or the end of the next field, depending on | ||
| 874 | ;; whether this field is left or right aligned). | ||
| 875 | (align-pt-offset | ||
| 876 | (save-excursion | ||
| 877 | (goto-char other) | ||
| 878 | (move-to-column curcol) | ||
| 879 | (when (looking-at | ||
| 880 | (concat | ||
| 881 | (if (eq (char-before) ?\ ) " *" "[^ ]* *") | ||
| 882 | (if num-align "[0-9][^ ]*"))) | ||
| 883 | (- (match-end 0) (match-beginning 0))))) | ||
| 884 | ;; Now, the number of spaces to insert is align-pt-offset | ||
| 885 | ;; minus the distance to the equivalent point on the | ||
| 886 | ;; current line. | ||
| 887 | (spaces | ||
| 888 | (if (not num-align) | ||
| 889 | align-pt-offset | ||
| 890 | (and align-pt-offset | ||
| 891 | (save-excursion | ||
| 892 | (skip-chars-forward "^ ") | ||
| 893 | (- align-pt-offset (- (current-column) curcol))))))) | ||
| 894 | (when (and spaces (> spaces 0)) | ||
| 895 | (setq file-col (+ spaces file-col)) | ||
| 896 | (if (> file-col other-col) | ||
| 897 | (setq spaces (- spaces (- file-col other-col)))) | ||
| 898 | (insert-char ?\s spaces) | ||
| 899 | ;; Let's just make really sure we did not mess up. | ||
| 900 | (unless (save-excursion | ||
| 901 | (equal (dired-move-to-filename) (marker-position file))) | ||
| 902 | ;; Damn! We messed up: let's revert the change. | ||
| 903 | (delete-char (- spaces)))))) | ||
| 904 | (set-marker file nil))))) | ||
| 905 | |||
| 906 | |||
| 800 | (defun dired-insert-directory (dir switches &optional file-list wildcard hdr) | 907 | (defun dired-insert-directory (dir switches &optional file-list wildcard hdr) |
| 801 | "Insert a directory listing of DIR, Dired style. | 908 | "Insert a directory listing of DIR, Dired style. |
| 802 | Use SWITCHES to make the listings. | 909 | Use SWITCHES to make the listings. |
| @@ -815,7 +922,10 @@ If HDR is non-nil, insert a header line with the directory name." | |||
| 815 | ;; with the new value of dired-move-to-filename-regexp. | 922 | ;; with the new value of dired-move-to-filename-regexp. |
| 816 | (if file-list | 923 | (if file-list |
| 817 | (dolist (f file-list) | 924 | (dolist (f file-list) |
| 818 | (insert-directory f switches nil nil)) | 925 | (let ((beg (point))) |
| 926 | (insert-directory f switches nil nil) | ||
| 927 | ;; Re-align fields, if necessary. | ||
| 928 | (dired-align-file beg (point)))) | ||
| 819 | (insert-directory dir switches wildcard (not wildcard))) | 929 | (insert-directory dir switches wildcard (not wildcard))) |
| 820 | ;; Quote certain characters, unless ls quoted them for us. | 930 | ;; Quote certain characters, unless ls quoted them for us. |
| 821 | (if (not (string-match "b" dired-actual-switches)) | 931 | (if (not (string-match "b" dired-actual-switches)) |
| @@ -1762,6 +1872,8 @@ regardless of the language.") | |||
| 1762 | ;; Move to first char of filename on this line. | 1872 | ;; Move to first char of filename on this line. |
| 1763 | ;; Returns position (point) or nil if no filename on this line." | 1873 | ;; Returns position (point) or nil if no filename on this line." |
| 1764 | (defun dired-move-to-filename (&optional raise-error eol) | 1874 | (defun dired-move-to-filename (&optional raise-error eol) |
| 1875 | "Move to the beginning of the filename on the current line. | ||
| 1876 | Return the position of the beginning of the filename, or nil if none found." | ||
| 1765 | ;; This is the UNIX version. | 1877 | ;; This is the UNIX version. |
| 1766 | (or eol (setq eol (line-end-position))) | 1878 | (or eol (setq eol (line-end-position))) |
| 1767 | (beginning-of-line) | 1879 | (beginning-of-line) |
| @@ -1774,8 +1886,10 @@ regardless of the language.") | |||
| 1774 | (goto-char (match-end 0))) | 1886 | (goto-char (match-end 0))) |
| 1775 | ((re-search-forward dired-permission-flags-regexp eol t) | 1887 | ((re-search-forward dired-permission-flags-regexp eol t) |
| 1776 | ;; Ha! There *is* a file. Our regexp-from-hell just failed to find it. | 1888 | ;; Ha! There *is* a file. Our regexp-from-hell just failed to find it. |
| 1777 | (funcall (if raise-error 'error 'message) | 1889 | (if raise-error |
| 1778 | "Unrecognized line! Check dired-move-to-filename-regexp")) | 1890 | (error "Unrecognized line! Check dired-move-to-filename-regexp")) |
| 1891 | (beginning-of-line) | ||
| 1892 | nil) | ||
| 1779 | (raise-error | 1893 | (raise-error |
| 1780 | (error "No file on this line"))))) | 1894 | (error "No file on this line"))))) |
| 1781 | 1895 | ||
| @@ -1818,9 +1932,9 @@ regardless of the language.") | |||
| 1818 | (or no-error (error "No file on this line")))) | 1932 | (or no-error (error "No file on this line")))) |
| 1819 | ;; Move point to end of name: | 1933 | ;; Move point to end of name: |
| 1820 | (if symlink | 1934 | (if symlink |
| 1821 | (if (search-forward " ->" eol t) | 1935 | (if (search-forward " -> " eol t) |
| 1822 | (progn | 1936 | (progn |
| 1823 | (forward-char -3) | 1937 | (forward-char -4) |
| 1824 | (and used-F | 1938 | (and used-F |
| 1825 | dired-ls-F-marks-symlinks | 1939 | dired-ls-F-marks-symlinks |
| 1826 | (eq (preceding-char) ?@) ;; did ls really mark the link? | 1940 | (eq (preceding-char) ?@) ;; did ls really mark the link? |
| @@ -1885,7 +1999,7 @@ You can then feed the file name(s) to other commands with \\[yank]." | |||
| 1885 | ;; As a side effect, killed dired buffers for DIR are removed from | 1999 | ;; As a side effect, killed dired buffers for DIR are removed from |
| 1886 | ;; dired-buffers. | 2000 | ;; dired-buffers. |
| 1887 | (setq dir (file-name-as-directory dir)) | 2001 | (setq dir (file-name-as-directory dir)) |
| 1888 | (let ((alist dired-buffers) result elt buf pattern) | 2002 | (let ((alist dired-buffers) result elt buf) |
| 1889 | (while alist | 2003 | (while alist |
| 1890 | (setq elt (car alist) | 2004 | (setq elt (car alist) |
| 1891 | buf (cdr elt)) | 2005 | buf (cdr elt)) |
diff --git a/lisp/files.el b/lisp/files.el index 962fd483c2c..aaed1395275 100644 --- a/lisp/files.el +++ b/lisp/files.el | |||
| @@ -4376,7 +4376,8 @@ normally equivalent short `-D' option is just passed on to | |||
| 4376 | (while (< (point) end) | 4376 | (while (< (point) end) |
| 4377 | (let ((start (+ beg (read (current-buffer)))) | 4377 | (let ((start (+ beg (read (current-buffer)))) |
| 4378 | (end (+ beg (read (current-buffer))))) | 4378 | (end (+ beg (read (current-buffer))))) |
| 4379 | (if (= (char-after end) ?\n) | 4379 | (if (memq (char-after end) '(?\n ?\ )) |
| 4380 | ;; End is followed by \n or by " -> ". | ||
| 4380 | (put-text-property start end 'dired-filename t) | 4381 | (put-text-property start end 'dired-filename t) |
| 4381 | ;; It seems that we can't trust ls's output as to | 4382 | ;; It seems that we can't trust ls's output as to |
| 4382 | ;; byte positions of filenames. | 4383 | ;; byte positions of filenames. |
diff --git a/lisp/fringe.el b/lisp/fringe.el index f52ecdf64d2..07c93d39f40 100644 --- a/lisp/fringe.el +++ b/lisp/fringe.el | |||
| @@ -37,27 +37,29 @@ | |||
| 37 | 37 | ||
| 38 | ;; Standard fringe bitmaps | 38 | ;; Standard fringe bitmaps |
| 39 | 39 | ||
| 40 | (defconst no-fringe-bitmap 0) | 40 | (defmacro fringe-bitmap-p (symbol) |
| 41 | (defconst undef-fringe-bitmap 1) | 41 | "Return non-nil if SYMBOL is a fringe bitmap." |
| 42 | (defconst left-truncation-fringe-bitmap 2) | 42 | `(get ,symbol 'fringe)) |
| 43 | (defconst right-truncation-fringe-bitmap 3) | 43 | |
| 44 | (defconst up-arrow-fringe-bitmap 4) | 44 | (defvar fringe-bitmaps) |
| 45 | (defconst down-arrow-fringe-bitmap 5) | 45 | |
| 46 | (defconst continued-line-fringe-bitmap 6) | 46 | (unless (get 'left-truncation 'fringe) |
| 47 | (defconst continuation-line-fringe-bitmap 7) | 47 | (let ((bitmaps '(left-truncation right-truncation |
| 48 | (defconst overlay-arrow-fringe-bitmap 8) | 48 | up-arrow down-arrow |
| 49 | (defconst top-left-angle-fringe-bitmap 9) | 49 | continued-line continuation-line |
| 50 | (defconst top-right-angle-fringe-bitmap 10) | 50 | overlay-arrow |
| 51 | (defconst bottom-left-angle-fringe-bitmap 11) | 51 | top-left-angle top-right-angle |
| 52 | (defconst bottom-right-angle-fringe-bitmap 12) | 52 | bottom-left-angle bottom-right-angle |
| 53 | (defconst left-bracket-fringe-bitmap 13) | 53 | left-bracket right-bracket |
| 54 | (defconst right-bracket-fringe-bitmap 14) | 54 | filled-box-cursor hollow-box-cursor hollow-square |
| 55 | (defconst filled-box-cursor-fringe-bitmap 15) | 55 | bar-cursor hbar-cursor |
| 56 | (defconst hollow-box-cursor-fringe-bitmap 16) | 56 | empty-line)) |
| 57 | (defconst hollow-square-fringe-bitmap 17) | 57 | (bn 2)) |
| 58 | (defconst bar-cursor-fringe-bitmap 18) | 58 | (while bitmaps |
| 59 | (defconst hbar-cursor-fringe-bitmap 19) | 59 | (push (car bitmaps) fringe-bitmaps) |
| 60 | (defconst empty-line-fringe-bitmap 20) | 60 | (put (car bitmaps) 'fringe bn) |
| 61 | (setq bitmaps (cdr bitmaps) | ||
| 62 | bn (1+ bn))))) | ||
| 61 | 63 | ||
| 62 | 64 | ||
| 63 | ;; Control presence of fringes | 65 | ;; Control presence of fringes |
| @@ -228,7 +230,7 @@ SIDE must be the symbol `left' or `right'." | |||
| 228 | (window-fringes)) | 230 | (window-fringes)) |
| 229 | 0) | 231 | 0) |
| 230 | (float (frame-char-width)))) | 232 | (float (frame-char-width)))) |
| 231 | 233 | ||
| 232 | (provide 'fringe) | 234 | (provide 'fringe) |
| 233 | 235 | ||
| 234 | ;;; arch-tag: 6611ef60-0869-47ed-8b93-587ee7d3ff5d | 236 | ;;; arch-tag: 6611ef60-0869-47ed-8b93-587ee7d3ff5d |
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index 60ad776347c..3cdda661e86 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog | |||
| @@ -1,3 +1,77 @@ | |||
| 1 | 2004-09-28 Jesper Harder <harder@ifa.au.dk> | ||
| 2 | |||
| 3 | * gnus-picon.el: Require cl. | ||
| 4 | |||
| 5 | * mml-sec.el (mml-signencrypt-style): Don't depend on Gnus. | ||
| 6 | |||
| 7 | * mml-smime.el: Require cl. Autoload message-fetch-field. | ||
| 8 | |||
| 9 | * gnus-fun.el: Require gnus-ems and gnus-util. | ||
| 10 | |||
| 11 | * gnus-diary.el (gnus-diary-header-schedule): caddr -> car (cddr | ||
| 12 | |||
| 13 | * gnus-art.el (gnus-article-edit-mode): Define before first | ||
| 14 | reference. | ||
| 15 | |||
| 16 | * gnus.el (gnus-method-to-server): Move defsubst before first use. | ||
| 17 | |||
| 18 | * spam.el (spam-check-spamoracle, spam-spamoracle-learn): Fix | ||
| 19 | format string mismatch. | ||
| 20 | * nnml.el (nnml-request-set-mark, nnml-save-marks): do. | ||
| 21 | * nnfolder.el (nnfolder-request-set-mark, nnfolder-save-marks): do. | ||
| 22 | |||
| 23 | 2004-09-27 Reiner Steib <Reiner.Steib@gmx.de> | ||
| 24 | |||
| 25 | * gnus.el (gnus-version-number): Set to 5.11. | ||
| 26 | |||
| 27 | 2004-09-27 Katsumi Yamaoka <yamaoka@jpl.org> | ||
| 28 | |||
| 29 | * mm-decode.el (mm-copy-to-buffer): Don't use set-buffer-multibyte. | ||
| 30 | |||
| 31 | 2004-09-26 Jesper Harder <harder@ifa.au.dk> | ||
| 32 | |||
| 33 | * gnus-msg.el (gnus-post-news): Use blank Newsgroups line if | ||
| 34 | GROUP is a virtual group. | ||
| 35 | |||
| 36 | * mm-util.el (mm-charset-synonym-alist): Remove obsolete entries | ||
| 37 | for big5 and gb2312. | ||
| 38 | |||
| 39 | * rfc2047.el (rfc2047-pad-base64): Deal with more cases of invalid | ||
| 40 | padding. | ||
| 41 | |||
| 42 | * mm-bodies.el (mm-7bit-chars): Don't include \r. | ||
| 43 | |||
| 44 | * mml.el (mml-compute-boundary-1): Don't uncompress files. | ||
| 45 | |||
| 46 | * rfc2047.el (rfc2047-qp-or-base64): New function to reduce | ||
| 47 | dependencies. | ||
| 48 | (rfc2047-encode): Use it. | ||
| 49 | |||
| 50 | * flow-fill.el: Typo. | ||
| 51 | |||
| 52 | * mml.el (mml-generate-mime-1): Don't use format=flowed with | ||
| 53 | inline PGP. | ||
| 54 | |||
| 55 | * gnus.el (gnus-getenv-nntpserver): Strip whitespace. | ||
| 56 | |||
| 57 | * gnus-cache.el (gnus-cache-save-buffers): Check if buffer is | ||
| 58 | alive. Reported by Laurent Martelli <laurent@aopsys.com>. | ||
| 59 | |||
| 60 | * mm-util.el (mm-image-load-path): Handle nil in load-path. | ||
| 61 | From Christian Neukirchen <chneukirchen@yahoo.de>. | ||
| 62 | |||
| 63 | * html2text.el (html2text-replace-list): Add & and '. | ||
| 64 | |||
| 65 | * nnheader.el (nnheader-max-head-length): Increase to 8192. | ||
| 66 | |||
| 67 | * message.el (message-clone-locals): Clone sendmail and smtp | ||
| 68 | variables. | ||
| 69 | |||
| 70 | 2004-09-23 Reiner Steib <Reiner.Steib@gmx.de> | ||
| 71 | |||
| 72 | * gnus-msg.el (gnus-configure-posting-styles): Narrow to headers | ||
| 73 | in `header' match. Reported by Svend Tollak Munkejord. | ||
| 74 | |||
| 1 | 2004-09-20 Stefan Monnier <monnier@iro.umontreal.ca> | 75 | 2004-09-20 Stefan Monnier <monnier@iro.umontreal.ca> |
| 2 | 76 | ||
| 3 | * mm-decode.el (mm-copy-to-buffer): Preserve the data's unibyteness. | 77 | * mm-decode.el (mm-copy-to-buffer): Preserve the data's unibyteness. |
diff --git a/lisp/gnus/flow-fill.el b/lisp/gnus/flow-fill.el index a22f2a5af07..8a8098727fe 100644 --- a/lisp/gnus/flow-fill.el +++ b/lisp/gnus/flow-fill.el | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | ;;; flow-fill.el --- interprete RFC2646 "flowed" text | 1 | ;;; flow-fill.el --- interpret RFC2646 "flowed" text |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc. |
| 4 | 4 | ||
diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el index 5544c28f967..d4dbe1319e0 100644 --- a/lisp/gnus/gnus-art.el +++ b/lisp/gnus/gnus-art.el | |||
| @@ -1464,6 +1464,8 @@ Initialized from `text-mode-syntax-table.") | |||
| 1464 | 1464 | ||
| 1465 | (defvar gnus-inhibit-hiding nil) | 1465 | (defvar gnus-inhibit-hiding nil) |
| 1466 | 1466 | ||
| 1467 | (defvar gnus-article-edit-mode nil) | ||
| 1468 | |||
| 1467 | ;;; Macros for dealing with the article buffer. | 1469 | ;;; Macros for dealing with the article buffer. |
| 1468 | 1470 | ||
| 1469 | (defmacro gnus-with-article-headers (&rest forms) | 1471 | (defmacro gnus-with-article-headers (&rest forms) |
diff --git a/lisp/gnus/gnus-cache.el b/lisp/gnus/gnus-cache.el index bc09b3a2368..99e77b18f68 100644 --- a/lisp/gnus/gnus-cache.el +++ b/lisp/gnus/gnus-cache.el | |||
| @@ -125,9 +125,8 @@ it's not cached." | |||
| 125 | (overview-file (gnus-cache-file-name | 125 | (overview-file (gnus-cache-file-name |
| 126 | (car gnus-cache-buffer) ".overview"))) | 126 | (car gnus-cache-buffer) ".overview"))) |
| 127 | ;; write the overview only if it was modified | 127 | ;; write the overview only if it was modified |
| 128 | (when (buffer-modified-p buffer) | 128 | (when (and (buffer-live-p buffer) (buffer-modified-p buffer)) |
| 129 | (save-excursion | 129 | (with-current-buffer buffer |
| 130 | (set-buffer buffer) | ||
| 131 | (if (> (buffer-size) 0) | 130 | (if (> (buffer-size) 0) |
| 132 | ;; Non-empty overview, write it to a file. | 131 | ;; Non-empty overview, write it to a file. |
| 133 | (let ((coding-system-for-write | 132 | (let ((coding-system-for-write |
diff --git a/lisp/gnus/gnus-diary.el b/lisp/gnus/gnus-diary.el index 120b812c209..e82d77fa58b 100644 --- a/lisp/gnus/gnus-diary.el +++ b/lisp/gnus/gnus-diary.el | |||
| @@ -204,7 +204,7 @@ There are currently two built-in format functions: | |||
| 204 | (let ((head (cdr (assoc (intern (format "X-Diary-%s" (car elt))) | 204 | (let ((head (cdr (assoc (intern (format "X-Diary-%s" (car elt))) |
| 205 | headers)))) | 205 | headers)))) |
| 206 | (when head | 206 | (when head |
| 207 | (nndiary-parse-schedule-value head (cadr elt) (caddr elt))))) | 207 | (nndiary-parse-schedule-value head (cadr elt) (car (cddr elt)))))) |
| 208 | nndiary-headers)) | 208 | nndiary-headers)) |
| 209 | 209 | ||
| 210 | ;; #### NOTE: Gnus sometimes gives me a HEADER not corresponding to any | 210 | ;; #### NOTE: Gnus sometimes gives me a HEADER not corresponding to any |
diff --git a/lisp/gnus/gnus-fun.el b/lisp/gnus/gnus-fun.el index 087c30da5df..82282e084f7 100644 --- a/lisp/gnus/gnus-fun.el +++ b/lisp/gnus/gnus-fun.el | |||
| @@ -26,8 +26,11 @@ | |||
| 26 | ;;; Code: | 26 | ;;; Code: |
| 27 | 27 | ||
| 28 | (eval-when-compile | 28 | (eval-when-compile |
| 29 | (require 'cl) | 29 | (require 'cl)) |
| 30 | (require 'mm-util)) | 30 | |
| 31 | (require 'mm-util) | ||
| 32 | (require 'gnus-ems) | ||
| 33 | (require 'gnus-util) | ||
| 31 | 34 | ||
| 32 | (defcustom gnus-x-face-directory (expand-file-name "x-faces" gnus-directory) | 35 | (defcustom gnus-x-face-directory (expand-file-name "x-faces" gnus-directory) |
| 33 | "*Directory where X-Face PBM files are stored." | 36 | "*Directory where X-Face PBM files are stored." |
diff --git a/lisp/gnus/gnus-msg.el b/lisp/gnus/gnus-msg.el index f986e451c02..33531e7f8a4 100644 --- a/lisp/gnus/gnus-msg.el +++ b/lisp/gnus/gnus-msg.el | |||
| @@ -915,7 +915,9 @@ header line with the old Message-ID." | |||
| 915 | (not to-address))) | 915 | (not to-address))) |
| 916 | ;; This is news. | 916 | ;; This is news. |
| 917 | (if post | 917 | (if post |
| 918 | (message-news (or to-group group)) | 918 | (message-news |
| 919 | (or to-group | ||
| 920 | (and (not (gnus-virtual-group-p pgroup)) group))) | ||
| 919 | (set-buffer gnus-article-copy) | 921 | (set-buffer gnus-article-copy) |
| 920 | (gnus-msg-treat-broken-reply-to) | 922 | (gnus-msg-treat-broken-reply-to) |
| 921 | (message-followup (if (or newsgroup-p force-news) | 923 | (message-followup (if (or newsgroup-p force-news) |
| @@ -1801,9 +1803,11 @@ this is a reply." | |||
| 1801 | ;; Obsolete format of header match. | 1803 | ;; Obsolete format of header match. |
| 1802 | (and (gnus-buffer-live-p gnus-article-copy) | 1804 | (and (gnus-buffer-live-p gnus-article-copy) |
| 1803 | (with-current-buffer gnus-article-copy | 1805 | (with-current-buffer gnus-article-copy |
| 1804 | (let ((header (message-fetch-field (pop style)))) | 1806 | (save-restriction |
| 1805 | (and header | 1807 | (nnheader-narrow-to-headers) |
| 1806 | (string-match (pop style) header)))))) | 1808 | (let ((header (message-fetch-field (pop style)))) |
| 1809 | (and header | ||
| 1810 | (string-match (pop style) header))))))) | ||
| 1807 | ((or (symbolp match) | 1811 | ((or (symbolp match) |
| 1808 | (functionp match)) | 1812 | (functionp match)) |
| 1809 | (cond | 1813 | (cond |
| @@ -1819,9 +1823,11 @@ this is a reply." | |||
| 1819 | ;; New format of header match. | 1823 | ;; New format of header match. |
| 1820 | (and (gnus-buffer-live-p gnus-article-copy) | 1824 | (and (gnus-buffer-live-p gnus-article-copy) |
| 1821 | (with-current-buffer gnus-article-copy | 1825 | (with-current-buffer gnus-article-copy |
| 1822 | (let ((header (message-fetch-field (nth 1 match)))) | 1826 | (save-restriction |
| 1823 | (and header | 1827 | (nnheader-narrow-to-headers) |
| 1824 | (string-match (nth 2 match) header)))))) | 1828 | (let ((header (message-fetch-field (nth 1 match)))) |
| 1829 | (and header | ||
| 1830 | (string-match (nth 2 match) header))))))) | ||
| 1825 | (t | 1831 | (t |
| 1826 | ;; This is a form to be evaled. | 1832 | ;; This is a form to be evaled. |
| 1827 | (eval match))))) | 1833 | (eval match))))) |
diff --git a/lisp/gnus/gnus-picon.el b/lisp/gnus/gnus-picon.el index dbb96333d75..817696ed974 100644 --- a/lisp/gnus/gnus-picon.el +++ b/lisp/gnus/gnus-picon.el | |||
| @@ -40,8 +40,9 @@ | |||
| 40 | ;; | 40 | ;; |
| 41 | ;;; Code: | 41 | ;;; Code: |
| 42 | 42 | ||
| 43 | (eval-when-compile (require 'cl)) | ||
| 44 | |||
| 43 | (require 'gnus) | 45 | (require 'gnus) |
| 44 | (require 'custom) | ||
| 45 | (require 'gnus-art) | 46 | (require 'gnus-art) |
| 46 | 47 | ||
| 47 | ;;; User variables: | 48 | ;;; User variables: |
diff --git a/lisp/gnus/gnus.el b/lisp/gnus/gnus.el index 3b7c8c916d8..28ef2c22a15 100644 --- a/lisp/gnus/gnus.el +++ b/lisp/gnus/gnus.el | |||
| @@ -282,7 +282,7 @@ is restarted, and sometimes reloaded." | |||
| 282 | :link '(custom-manual "(gnus)Exiting Gnus") | 282 | :link '(custom-manual "(gnus)Exiting Gnus") |
| 283 | :group 'gnus) | 283 | :group 'gnus) |
| 284 | 284 | ||
| 285 | (defconst gnus-version-number "5.10.6" | 285 | (defconst gnus-version-number "5.11" |
| 286 | "Version number for this version of Gnus.") | 286 | "Version number for this version of Gnus.") |
| 287 | 287 | ||
| 288 | (defconst gnus-version (format "Gnus v%s" gnus-version-number) | 288 | (defconst gnus-version (format "Gnus v%s" gnus-version-number) |
| @@ -1104,9 +1104,8 @@ Check the NNTPSERVER environment variable and the | |||
| 1104 | (and (file-readable-p gnus-nntpserver-file) | 1104 | (and (file-readable-p gnus-nntpserver-file) |
| 1105 | (with-temp-buffer | 1105 | (with-temp-buffer |
| 1106 | (insert-file-contents gnus-nntpserver-file) | 1106 | (insert-file-contents gnus-nntpserver-file) |
| 1107 | (let ((name (buffer-string))) | 1107 | (when (re-search-forward "[^ \t\n\r]+" nil t) |
| 1108 | (unless (string-match "\\`[ \t\n]*$" name) | 1108 | (match-string 0)))))) |
| 1109 | name)))))) | ||
| 1110 | 1109 | ||
| 1111 | (defcustom gnus-select-method | 1110 | (defcustom gnus-select-method |
| 1112 | (condition-case nil | 1111 | (condition-case nil |
| @@ -3309,38 +3308,6 @@ that that variable is buffer-local to the summary buffers." | |||
| 3309 | (push (cons server result) gnus-server-method-cache)) | 3308 | (push (cons server result) gnus-server-method-cache)) |
| 3310 | result))) | 3309 | result))) |
| 3311 | 3310 | ||
| 3312 | (defsubst gnus-method-to-server (method) | ||
| 3313 | (catch 'server-name | ||
| 3314 | (setq method (or method gnus-select-method)) | ||
| 3315 | |||
| 3316 | ;; Perhaps it is already in the cache. | ||
| 3317 | (mapc (lambda (name-method) | ||
| 3318 | (if (equal (cdr name-method) method) | ||
| 3319 | (throw 'server-name (car name-method)))) | ||
| 3320 | gnus-server-method-cache) | ||
| 3321 | |||
| 3322 | (mapc | ||
| 3323 | (lambda (server-alist) | ||
| 3324 | (mapc (lambda (name-method) | ||
| 3325 | (when (gnus-methods-equal-p (cdr name-method) method) | ||
| 3326 | (unless (member name-method gnus-server-method-cache) | ||
| 3327 | (push name-method gnus-server-method-cache)) | ||
| 3328 | (throw 'server-name (car name-method)))) | ||
| 3329 | server-alist)) | ||
| 3330 | (let ((alists (list gnus-server-alist | ||
| 3331 | gnus-predefined-server-alist))) | ||
| 3332 | (if gnus-select-method | ||
| 3333 | (push (list (cons "native" gnus-select-method)) alists)) | ||
| 3334 | alists)) | ||
| 3335 | |||
| 3336 | (let* ((name (if (member (cadr method) '(nil "")) | ||
| 3337 | (format "%s" (car method)) | ||
| 3338 | (format "%s:%s" (car method) (cadr method)))) | ||
| 3339 | (name-method (cons name method))) | ||
| 3340 | (unless (member name-method gnus-server-method-cache) | ||
| 3341 | (push name-method gnus-server-method-cache)) | ||
| 3342 | name))) | ||
| 3343 | |||
| 3344 | (defsubst gnus-server-get-method (group method) | 3311 | (defsubst gnus-server-get-method (group method) |
| 3345 | ;; Input either a server name, and extended server name, or a | 3312 | ;; Input either a server name, and extended server name, or a |
| 3346 | ;; select method, and return a select method. | 3313 | ;; select method, and return a select method. |
diff --git a/lisp/gnus/html2text.el b/lisp/gnus/html2text.el index f2aefbef993..6f1ef3b0289 100644 --- a/lisp/gnus/html2text.el +++ b/lisp/gnus/html2text.el | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | ;;; html2text.el --- a simple html to plain text converter | 1 | ;;; html2text.el --- a simple html to plain text converter |
| 2 | ;; Copyright (C) 2002, 2003 Free Software Foundation, Inc. | 2 | ;; Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. |
| 3 | 3 | ||
| 4 | ;; Author: Joakim Hove <hove@phys.ntnu.no> | 4 | ;; Author: Joakim Hove <hove@phys.ntnu.no> |
| 5 | 5 | ||
| @@ -42,7 +42,8 @@ | |||
| 42 | (defvar html2text-format-single-element-list '(("hr" . html2text-clean-hr))) | 42 | (defvar html2text-format-single-element-list '(("hr" . html2text-clean-hr))) |
| 43 | 43 | ||
| 44 | (defvar html2text-replace-list | 44 | (defvar html2text-replace-list |
| 45 | '((" " . " ") (">" . ">") ("<" . "<") (""" . "\"")) | 45 | '((" " . " ") (">" . ">") ("<" . "<") (""" . "\"") |
| 46 | ("&" . "&") ("'" . "'")) | ||
| 46 | "The map of entity to text. | 47 | "The map of entity to text. |
| 47 | 48 | ||
| 48 | This is an alist were each element is a dotted pair consisting of an | 49 | This is an alist were each element is a dotted pair consisting of an |
diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el index 21c386b86ce..8e5edbc048a 100644 --- a/lisp/gnus/message.el +++ b/lisp/gnus/message.el | |||
| @@ -6685,7 +6685,7 @@ regexp VARSTR." | |||
| 6685 | (let ((locals (save-excursion | 6685 | (let ((locals (save-excursion |
| 6686 | (set-buffer buffer) | 6686 | (set-buffer buffer) |
| 6687 | (buffer-local-variables))) | 6687 | (buffer-local-variables))) |
| 6688 | (regexp "^gnus\\|^nn\\|^message\\|^user-mail-address")) | 6688 | (regexp "^gnus\\|^nn\\|^message\\|^sendmail\\|^smtp\\|^user-mail-address")) |
| 6689 | (mapcar | 6689 | (mapcar |
| 6690 | (lambda (local) | 6690 | (lambda (local) |
| 6691 | (when (and (consp local) | 6691 | (when (and (consp local) |
diff --git a/lisp/gnus/mm-bodies.el b/lisp/gnus/mm-bodies.el index 40b920bb70d..ad2239a22b8 100644 --- a/lisp/gnus/mm-bodies.el +++ b/lisp/gnus/mm-bodies.el | |||
| @@ -38,9 +38,16 @@ | |||
| 38 | (require 'rfc2047) | 38 | (require 'rfc2047) |
| 39 | (require 'mm-encode) | 39 | (require 'mm-encode) |
| 40 | 40 | ||
| 41 | ;; 8bit treatment gets any char except: 0x32 - 0x7f, CR, LF, TAB, BEL, | 41 | ;; 8bit treatment gets any char except: 0x32 - 0x7f, LF, TAB, BEL, |
| 42 | ;; BS, vertical TAB, form feed, and ^_ | 42 | ;; BS, vertical TAB, form feed, and ^_ |
| 43 | (defvar mm-7bit-chars "\x20-\x7f\r\n\t\x7\x8\xb\xc\x1f") | 43 | ;; |
| 44 | ;; Note that CR is *not* included, as that would allow a non-paired CR | ||
| 45 | ;; in the body contrary to RFC 2822: | ||
| 46 | ;; | ||
| 47 | ;; - CR and LF MUST only occur together as CRLF; they MUST NOT | ||
| 48 | ;; appear independently in the body. | ||
| 49 | |||
| 50 | (defvar mm-7bit-chars "\x20-\x7f\n\t\x7\x8\xb\xc\x1f") | ||
| 44 | 51 | ||
| 45 | (defcustom mm-body-charset-encoding-alist | 52 | (defcustom mm-body-charset-encoding-alist |
| 46 | '((iso-2022-jp . 7bit) | 53 | '((iso-2022-jp . 7bit) |
diff --git a/lisp/gnus/mm-decode.el b/lisp/gnus/mm-decode.el index ff05393415d..51ec38dc387 100644 --- a/lisp/gnus/mm-decode.el +++ b/lisp/gnus/mm-decode.el | |||
| @@ -623,14 +623,14 @@ Postpone undisplaying of viewers for types in | |||
| 623 | "Copy the contents of the current buffer to a fresh buffer." | 623 | "Copy the contents of the current buffer to a fresh buffer." |
| 624 | (save-excursion | 624 | (save-excursion |
| 625 | (let ((obuf (current-buffer)) | 625 | (let ((obuf (current-buffer)) |
| 626 | (multibyte enable-multibyte-characters) | ||
| 627 | beg) | 626 | beg) |
| 628 | (goto-char (point-min)) | 627 | (goto-char (point-min)) |
| 629 | (search-forward-regexp "^\n" nil t) | 628 | (search-forward-regexp "^\n" nil t) |
| 630 | (setq beg (point)) | 629 | (setq beg (point)) |
| 631 | (set-buffer (generate-new-buffer " *mm*")) | 630 | (set-buffer |
| 632 | ;; Preserve the data's unibyteness (for url-insert-file-contents). | 631 | ;; Preserve the data's unibyteness (for url-insert-file-contents). |
| 633 | (set-buffer-multibyte multibyte) | 632 | (let ((default-enable-multibyte-characters (mm-multibyte-p))) |
| 633 | (generate-new-buffer " *mm*"))) | ||
| 634 | (insert-buffer-substring obuf beg) | 634 | (insert-buffer-substring obuf beg) |
| 635 | (current-buffer)))) | 635 | (current-buffer)))) |
| 636 | 636 | ||
diff --git a/lisp/gnus/mm-util.el b/lisp/gnus/mm-util.el index 55c3fd33bc2..3831e1a07ce 100644 --- a/lisp/gnus/mm-util.el +++ b/lisp/gnus/mm-util.el | |||
| @@ -133,15 +133,9 @@ In XEmacs, also return non-nil if CS is a coding system object." | |||
| 133 | 133 | ||
| 134 | (defvar mm-charset-synonym-alist | 134 | (defvar mm-charset-synonym-alist |
| 135 | `( | 135 | `( |
| 136 | ;; Perfectly fine? A valid MIME name, anyhow. | ||
| 137 | ,@(unless (mm-coding-system-p 'big5) | ||
| 138 | '((big5 . cn-big5))) | ||
| 139 | ;; Not in XEmacs, but it's not a proper MIME charset anyhow. | 136 | ;; Not in XEmacs, but it's not a proper MIME charset anyhow. |
| 140 | ,@(unless (mm-coding-system-p 'x-ctext) | 137 | ,@(unless (mm-coding-system-p 'x-ctext) |
| 141 | '((x-ctext . ctext))) | 138 | '((x-ctext . ctext))) |
| 142 | ;; Apparently not defined in Emacs 20, but is a valid MIME name. | ||
| 143 | ,@(unless (mm-coding-system-p 'gb2312) | ||
| 144 | '((gb2312 . cn-gb-2312))) | ||
| 145 | ;; ISO-8859-15 is very similar to ISO-8859-1. But it's _different_! | 139 | ;; ISO-8859-15 is very similar to ISO-8859-1. But it's _different_! |
| 146 | ,@(unless (mm-coding-system-p 'iso-8859-15) | 140 | ,@(unless (mm-coding-system-p 'iso-8859-15) |
| 147 | '((iso-8859-15 . iso-8859-1))) | 141 | '((iso-8859-15 . iso-8859-1))) |
| @@ -727,11 +721,12 @@ If INHIBIT is non-nil, inhibit `mm-inhibit-file-name-handlers'." | |||
| 727 | (defun mm-image-load-path (&optional package) | 721 | (defun mm-image-load-path (&optional package) |
| 728 | (let (dir result) | 722 | (let (dir result) |
| 729 | (dolist (path load-path (nreverse result)) | 723 | (dolist (path load-path (nreverse result)) |
| 730 | (if (file-directory-p | 724 | (when (and path |
| 731 | (setq dir (concat (file-name-directory | 725 | (file-directory-p |
| 732 | (directory-file-name path)) | 726 | (setq dir (concat (file-name-directory |
| 733 | "etc/" (or package "gnus/")))) | 727 | (directory-file-name path)) |
| 734 | (push dir result)) | 728 | "etc/" (or package "gnus/"))))) |
| 729 | (push dir result)) | ||
| 735 | (push path result)))) | 730 | (push path result)))) |
| 736 | 731 | ||
| 737 | ;; Fixme: This doesn't look useful where it's used. | 732 | ;; Fixme: This doesn't look useful where it's used. |
diff --git a/lisp/gnus/mml-sec.el b/lisp/gnus/mml-sec.el index c9f5cb80190..b8107364411 100644 --- a/lisp/gnus/mml-sec.el +++ b/lisp/gnus/mml-sec.el | |||
| @@ -113,7 +113,7 @@ You can also customize or set `mml-signencrypt-style-alist' instead." | |||
| 113 | (setf (second style-item) style) | 113 | (setf (second style-item) style) |
| 114 | ;; otherwise, just return the current value | 114 | ;; otherwise, just return the current value |
| 115 | (second style-item)) | 115 | (second style-item)) |
| 116 | (gnus-message 3 "Warning, attempt to set invalid signencrypt-style")))) | 116 | (message "Warning, attempt to set invalid signencrypt style")))) |
| 117 | 117 | ||
| 118 | ;;; Security functions | 118 | ;;; Security functions |
| 119 | 119 | ||
diff --git a/lisp/gnus/mml-smime.el b/lisp/gnus/mml-smime.el index 596585afc72..3313d6a4118 100644 --- a/lisp/gnus/mml-smime.el +++ b/lisp/gnus/mml-smime.el | |||
| @@ -25,9 +25,12 @@ | |||
| 25 | 25 | ||
| 26 | ;;; Code: | 26 | ;;; Code: |
| 27 | 27 | ||
| 28 | (eval-when-compile (require 'cl)) | ||
| 29 | |||
| 28 | (require 'smime) | 30 | (require 'smime) |
| 29 | (require 'mm-decode) | 31 | (require 'mm-decode) |
| 30 | (autoload 'message-narrow-to-headers "message") | 32 | (autoload 'message-narrow-to-headers "message") |
| 33 | (autoload 'message-fetch-field "message") | ||
| 31 | 34 | ||
| 32 | (defun mml-smime-sign (cont) | 35 | (defun mml-smime-sign (cont) |
| 33 | (when (null smime-keys) | 36 | (when (null smime-keys) |
diff --git a/lisp/gnus/mml.el b/lisp/gnus/mml.el index c8f1c030acc..1843cf2068d 100644 --- a/lisp/gnus/mml.el +++ b/lisp/gnus/mml.el | |||
| @@ -449,6 +449,7 @@ If MML is non-nil, return the buffer up till the correspondent mml tag." | |||
| 449 | ;; actually are hard newlines in the text. | 449 | ;; actually are hard newlines in the text. |
| 450 | (let (use-hard-newlines) | 450 | (let (use-hard-newlines) |
| 451 | (when (and (string= type "text/plain") | 451 | (when (and (string= type "text/plain") |
| 452 | (not (string= (cdr (assq 'sign cont)) "pgp")) | ||
| 452 | (or (null (assq 'format cont)) | 453 | (or (null (assq 'format cont)) |
| 453 | (string= (cdr (assq 'format cont)) | 454 | (string= (cdr (assq 'format cont)) |
| 454 | "flowed")) | 455 | "flowed")) |
| @@ -590,7 +591,7 @@ If MML is non-nil, return the buffer up till the correspondent mml tag." | |||
| 590 | (insert-buffer-substring (cdr (assq 'buffer cont)))) | 591 | (insert-buffer-substring (cdr (assq 'buffer cont)))) |
| 591 | ((and (setq filename (cdr (assq 'filename cont))) | 592 | ((and (setq filename (cdr (assq 'filename cont))) |
| 592 | (not (equal (cdr (assq 'nofile cont)) "yes"))) | 593 | (not (equal (cdr (assq 'nofile cont)) "yes"))) |
| 593 | (mm-insert-file-contents filename)) | 594 | (mm-insert-file-contents filename nil nil nil nil t)) |
| 594 | (t | 595 | (t |
| 595 | (insert (cdr (assq 'contents cont))))) | 596 | (insert (cdr (assq 'contents cont))))) |
| 596 | (goto-char (point-min)) | 597 | (goto-char (point-min)) |
diff --git a/lisp/gnus/nnfolder.el b/lisp/gnus/nnfolder.el index 142202cb4d2..369631ce653 100644 --- a/lisp/gnus/nnfolder.el +++ b/lisp/gnus/nnfolder.el | |||
| @@ -1174,7 +1174,7 @@ This command does not work if you use short group names." | |||
| 1174 | (let ((range (nth 0 action)) | 1174 | (let ((range (nth 0 action)) |
| 1175 | (what (nth 1 action)) | 1175 | (what (nth 1 action)) |
| 1176 | (marks (nth 2 action))) | 1176 | (marks (nth 2 action))) |
| 1177 | (assert (or (eq what 'add) (eq what 'del)) t | 1177 | (assert (or (eq what 'add) (eq what 'del)) nil |
| 1178 | "Unknown request-set-mark action: %s" what) | 1178 | "Unknown request-set-mark action: %s" what) |
| 1179 | (dolist (mark marks) | 1179 | (dolist (mark marks) |
| 1180 | (setq nnfolder-marks (gnus-update-alist-soft | 1180 | (setq nnfolder-marks (gnus-update-alist-soft |
diff --git a/lisp/gnus/nnheader.el b/lisp/gnus/nnheader.el index 0ff82c69523..1b6ec636734 100644 --- a/lisp/gnus/nnheader.el +++ b/lisp/gnus/nnheader.el | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | ;;; nnheader.el --- header access macros for Gnus and its backends | 1 | ;;; nnheader.el --- header access macros for Gnus and its backends |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1987, 1988, 1989, 1990, 1993, 1994, 1995, 1996, | 3 | ;; Copyright (C) 1987, 1988, 1989, 1990, 1993, 1994, 1995, 1996, |
| 4 | ;; 1997, 1998, 2000, 2001, 2002, 2003 | 4 | ;; 1997, 1998, 2000, 2001, 2002, 2003, 2004 |
| 5 | ;; Free Software Foundation, Inc. | 5 | ;; Free Software Foundation, Inc. |
| 6 | 6 | ||
| 7 | ;; Author: Masanobu UMEDA <umerin@flab.flab.fujitsu.junet> | 7 | ;; Author: Masanobu UMEDA <umerin@flab.flab.fujitsu.junet> |
| @@ -58,7 +58,7 @@ they will keep on jabbering all the time." | |||
| 58 | :group 'gnus-server | 58 | :group 'gnus-server |
| 59 | :type 'boolean) | 59 | :type 'boolean) |
| 60 | 60 | ||
| 61 | (defvar nnheader-max-head-length 4096 | 61 | (defvar nnheader-max-head-length 8192 |
| 62 | "*Max length of the head of articles. | 62 | "*Max length of the head of articles. |
| 63 | 63 | ||
| 64 | Value is an integer, nil, or t. nil means read in chunks of a file | 64 | Value is an integer, nil, or t. nil means read in chunks of a file |
diff --git a/lisp/gnus/nnml.el b/lisp/gnus/nnml.el index cb820b094c1..4a9cfd32943 100644 --- a/lisp/gnus/nnml.el +++ b/lisp/gnus/nnml.el | |||
| @@ -923,7 +923,7 @@ Use the nov database for the current group if available." | |||
| 923 | (let ((range (nth 0 action)) | 923 | (let ((range (nth 0 action)) |
| 924 | (what (nth 1 action)) | 924 | (what (nth 1 action)) |
| 925 | (marks (nth 2 action))) | 925 | (marks (nth 2 action))) |
| 926 | (assert (or (eq what 'add) (eq what 'del)) t | 926 | (assert (or (eq what 'add) (eq what 'del)) nil |
| 927 | "Unknown request-set-mark action: %s" what) | 927 | "Unknown request-set-mark action: %s" what) |
| 928 | (dolist (mark marks) | 928 | (dolist (mark marks) |
| 929 | (setq nnml-marks (gnus-update-alist-soft | 929 | (setq nnml-marks (gnus-update-alist-soft |
diff --git a/lisp/gnus/rfc2047.el b/lisp/gnus/rfc2047.el index 978bec3c361..cbb5a1fc5b0 100644 --- a/lisp/gnus/rfc2047.el +++ b/lisp/gnus/rfc2047.el | |||
| @@ -126,6 +126,25 @@ quoted-printable and base64 respectively.") | |||
| 126 | ;;; Functions for encoding RFC2047 messages | 126 | ;;; Functions for encoding RFC2047 messages |
| 127 | ;;; | 127 | ;;; |
| 128 | 128 | ||
| 129 | (defun rfc2047-qp-or-base64 () | ||
| 130 | "Return the type with which to encode the buffer. | ||
| 131 | This is either `base64' or `quoted-printable'." | ||
| 132 | (save-excursion | ||
| 133 | (let ((limit (min (point-max) (+ 2000 (point-min)))) | ||
| 134 | (n8bit 0)) | ||
| 135 | (goto-char (point-min)) | ||
| 136 | (skip-chars-forward "\x20-\x7f\r\n\t" limit) | ||
| 137 | (while (< (point) limit) | ||
| 138 | (incf n8bit) | ||
| 139 | (forward-char 1) | ||
| 140 | (skip-chars-forward "\x20-\x7f\r\n\t" limit)) | ||
| 141 | (if (or (< (* 6 n8bit) (- limit (point-min))) | ||
| 142 | ;; Don't base64, say, a short line with a single | ||
| 143 | ;; non-ASCII char when splitting parts by charset. | ||
| 144 | (= n8bit 1)) | ||
| 145 | 'quoted-printable | ||
| 146 | 'base64)))) | ||
| 147 | |||
| 129 | (defun rfc2047-narrow-to-field () | 148 | (defun rfc2047-narrow-to-field () |
| 130 | "Narrow the buffer to the header on the current line." | 149 | "Narrow the buffer to the header on the current line." |
| 131 | (beginning-of-line) | 150 | (beginning-of-line) |
| @@ -411,7 +430,7 @@ By default, the region is treated as containing addresses (see | |||
| 411 | ;; encoding, choose the one that's shorter. | 430 | ;; encoding, choose the one that's shorter. |
| 412 | (save-restriction | 431 | (save-restriction |
| 413 | (narrow-to-region b e) | 432 | (narrow-to-region b e) |
| 414 | (if (eq (mm-qp-or-base64) 'base64) | 433 | (if (eq (rfc2047-qp-or-base64) 'base64) |
| 415 | 'B | 434 | 'B |
| 416 | 'Q)))) | 435 | 'Q)))) |
| 417 | (start (concat | 436 | (start (concat |
| @@ -720,11 +739,15 @@ decodable." | |||
| 720 | ;; Be more liberal to accept buggy base64 strings. If | 739 | ;; Be more liberal to accept buggy base64 strings. If |
| 721 | ;; base64-decode-string accepts buggy strings, this function could | 740 | ;; base64-decode-string accepts buggy strings, this function could |
| 722 | ;; be aliased to identity. | 741 | ;; be aliased to identity. |
| 723 | (case (mod (length string) 4) | 742 | (if (= 0 (mod (length string) 4)) |
| 724 | (0 string) | 743 | string |
| 725 | (1 string) ;; Error, don't pad it. | 744 | (when (string-match "=+$" string) |
| 726 | (2 (concat string "==")) | 745 | (setq string (substring string 0 (match-beginning 0)))) |
| 727 | (3 (concat string "=")))) | 746 | (case (mod (length string) 4) |
| 747 | (0 string) | ||
| 748 | (1 string) ;; Error, don't pad it. | ||
| 749 | (2 (concat string "==")) | ||
| 750 | (3 (concat string "="))))) | ||
| 728 | 751 | ||
| 729 | (defun rfc2047-decode (charset encoding string) | 752 | (defun rfc2047-decode (charset encoding string) |
| 730 | "Decode STRING from the given MIME CHARSET in the given ENCODING. | 753 | "Decode STRING from the given MIME CHARSET in the given ENCODING. |
diff --git a/lisp/gnus/spam.el b/lisp/gnus/spam.el index 6fb99db157a..85534f3828c 100644 --- a/lisp/gnus/spam.el +++ b/lisp/gnus/spam.el | |||
| @@ -1746,7 +1746,7 @@ REMOVE not nil, remove the ADDRESSES." | |||
| 1746 | (goto-char (point-min)) | 1746 | (goto-char (point-min)) |
| 1747 | (when (re-search-forward "^X-Spam: yes;" nil t) | 1747 | (when (re-search-forward "^X-Spam: yes;" nil t) |
| 1748 | spam-split-group)) | 1748 | spam-split-group)) |
| 1749 | (error "Error running spamoracle" status)))))))) | 1749 | (error "Error running spamoracle: %s" status)))))))) |
| 1750 | 1750 | ||
| 1751 | (defun spam-spamoracle-learn (articles article-is-spam-p &optional unregister) | 1751 | (defun spam-spamoracle-learn (articles article-is-spam-p &optional unregister) |
| 1752 | "Run spamoracle in training mode." | 1752 | "Run spamoracle in training mode." |
| @@ -1768,8 +1768,8 @@ REMOVE not nil, remove the ADDRESSES." | |||
| 1768 | `("-f" ,spam-spamoracle-database | 1768 | `("-f" ,spam-spamoracle-database |
| 1769 | "add" ,arg) | 1769 | "add" ,arg) |
| 1770 | `("add" ,arg))))) | 1770 | `("add" ,arg))))) |
| 1771 | (when (not (eq 0 status)) | 1771 | (unless (eq 0 status) |
| 1772 | (error "Error running spamoracle" status))))))) | 1772 | (error "Error running spamoracle: %s" status))))))) |
| 1773 | 1773 | ||
| 1774 | (defun spam-spamoracle-learn-ham (articles &optional unregister) | 1774 | (defun spam-spamoracle-learn-ham (articles &optional unregister) |
| 1775 | (spam-spamoracle-learn articles nil unregister)) | 1775 | (spam-spamoracle-learn articles nil unregister)) |
diff --git a/lisp/printing.el b/lisp/printing.el index a406e09b8c0..3efb53111fd 100644 --- a/lisp/printing.el +++ b/lisp/printing.el | |||
| @@ -5,13 +5,13 @@ | |||
| 5 | 5 | ||
| 6 | ;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br> | 6 | ;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br> |
| 7 | ;; Maintainer: Vinicius Jose Latorre <viniciusjl@ig.com.br> | 7 | ;; Maintainer: Vinicius Jose Latorre <viniciusjl@ig.com.br> |
| 8 | ;; Time-stamp: <2004/09/21 22:51:58 vinicius> | 8 | ;; Time-stamp: <2004/09/26 22:11:24 vinicius> |
| 9 | ;; Keywords: wp, print, PostScript | 9 | ;; Keywords: wp, print, PostScript |
| 10 | ;; Version: 6.8 | 10 | ;; Version: 6.8.1 |
| 11 | ;; X-URL: http://www.cpqd.com.br/~vinicius/emacs/ | 11 | ;; X-URL: http://www.cpqd.com.br/~vinicius/emacs/ |
| 12 | 12 | ||
| 13 | (defconst pr-version "6.8" | 13 | (defconst pr-version "6.8.1" |
| 14 | "printing.el, v 6.8 <2004/09/21 vinicius> | 14 | "printing.el, v 6.8.1 <2004/09/26 vinicius> |
| 15 | 15 | ||
| 16 | Please send all bug fixes and enhancements to | 16 | Please send all bug fixes and enhancements to |
| 17 | Vinicius Jose Latorre <viniciusjl@ig.com.br> | 17 | Vinicius Jose Latorre <viniciusjl@ig.com.br> |
| @@ -125,16 +125,16 @@ Please send all bug fixes and enhancements to | |||
| 125 | ;; Novices (First Users) | 125 | ;; Novices (First Users) |
| 126 | ;; --------------------- | 126 | ;; --------------------- |
| 127 | ;; | 127 | ;; |
| 128 | ;; First of all, take a glance of printing documentation only to have an idea | 128 | ;; First of all, see printing documentation only to get an idea of what |
| 129 | ;; of what `printing' is capable. | 129 | ;; `printing' is capable. |
| 130 | ;; | 130 | ;; |
| 131 | ;; Then try to set the variables: `pr-ps-name', `pr-ps-printer-alist', | 131 | ;; Then try to set the variables: `pr-ps-name', `pr-ps-printer-alist', |
| 132 | ;; `pr-txt-name', `pr-txt-printer-alist' and `pr-path-alist'. These variables | 132 | ;; `pr-txt-name', `pr-txt-printer-alist' and `pr-path-alist'. These variables |
| 133 | ;; are the main variables for printing processing. | 133 | ;; are the main variables for printing processing. |
| 134 | ;; | 134 | ;; |
| 135 | ;; Now, please, see these variables documentation more in deep. You can do | 135 | ;; Now, please, see these variables documentation deeper. You can do this by |
| 136 | ;; this by typing C-h v pr-ps-name RET (for example) if you already loaded | 136 | ;; typing C-h v pr-ps-name RET (for example) if you already loaded printing |
| 137 | ;; printing package, or by browsing printing.el source file. | 137 | ;; package, or by browsing printing.el source file. |
| 138 | ;; | 138 | ;; |
| 139 | ;; If the documentation isn't clear or if you find a way to improve the | 139 | ;; If the documentation isn't clear or if you find a way to improve the |
| 140 | ;; documentation, please, send an email to maintainer. All printing users | 140 | ;; documentation, please, send an email to maintainer. All printing users |
| @@ -263,7 +263,8 @@ Please send all bug fixes and enhancements to | |||
| 263 | ;; in Windows. The gsprint utility is faster than ghostscript to print | 263 | ;; in Windows. The gsprint utility is faster than ghostscript to print |
| 264 | ;; monochrome PostScript. | 264 | ;; monochrome PostScript. |
| 265 | ;; | 265 | ;; |
| 266 | ;; The efficiency is similar to print non-monochrome PostScript file. | 266 | ;; To print non-monochrome PostScript file, the efficiency of ghostscript |
| 267 | ;; is similar to gsprint. | ||
| 267 | ;; | 268 | ;; |
| 268 | ;; Also the gsprint utility comes together with gsview distribution. | 269 | ;; Also the gsprint utility comes together with gsview distribution. |
| 269 | ;; | 270 | ;; |
| @@ -3887,7 +3888,7 @@ image in a file with that name." | |||
| 3887 | (interactive (list (pr-ps-infile-preprint "Print preview "))) | 3888 | (interactive (list (pr-ps-infile-preprint "Print preview "))) |
| 3888 | (and (stringp filename) (file-exists-p filename) | 3889 | (and (stringp filename) (file-exists-p filename) |
| 3889 | (let* ((file (pr-expand-file-name filename)) | 3890 | (let* ((file (pr-expand-file-name filename)) |
| 3890 | (tempfile (pr-dosify-file-name (make-temp-name file)))) | 3891 | (tempfile (pr-dosify-file-name (make-temp-file file)))) |
| 3891 | ;; gs use | 3892 | ;; gs use |
| 3892 | (pr-call-process pr-gs-command | 3893 | (pr-call-process pr-gs-command |
| 3893 | (format "-sDEVICE=%s" pr-gs-device) | 3894 | (format "-sDEVICE=%s" pr-gs-device) |
| @@ -5221,7 +5222,8 @@ non-nil." | |||
| 5221 | 5222 | ||
| 5222 | 5223 | ||
| 5223 | (defun pr-delete-file (file) | 5224 | (defun pr-delete-file (file) |
| 5224 | (and pr-delete-temp-file (delete-file file))) | 5225 | (and pr-delete-temp-file (file-exists-p file) |
| 5226 | (delete-file file))) | ||
| 5225 | 5227 | ||
| 5226 | 5228 | ||
| 5227 | (defun pr-expand-file-name (filename) | 5229 | (defun pr-expand-file-name (filename) |
diff --git a/lisp/progmodes/gdb-ui.el b/lisp/progmodes/gdb-ui.el index 1972074fdb1..612a2034e00 100644 --- a/lisp/progmodes/gdb-ui.el +++ b/lisp/progmodes/gdb-ui.el | |||
| @@ -1069,8 +1069,9 @@ static char *magick[] = { | |||
| 1069 | (defvar breakpoint-disabled-icon nil | 1069 | (defvar breakpoint-disabled-icon nil |
| 1070 | "Icon for disabled breakpoint in display margin") | 1070 | "Icon for disabled breakpoint in display margin") |
| 1071 | 1071 | ||
| 1072 | (defvar breakpoint-bitmap nil | 1072 | ;; Bitmap for breakpoint in fringe |
| 1073 | "Bitmap for breakpoint in fringe") | 1073 | (define-fringe-bitmap 'breakpoint |
| 1074 | "\x3c\x7e\xff\xff\xff\xff\x7e\x3c") | ||
| 1074 | 1075 | ||
| 1075 | (defface breakpoint-enabled-bitmap-face | 1076 | (defface breakpoint-enabled-bitmap-face |
| 1076 | '((t | 1077 | '((t |
| @@ -1140,9 +1141,8 @@ static char *magick[] = { | |||
| 1140 | (save-excursion | 1141 | (save-excursion |
| 1141 | (goto-char (posn-point posn)) | 1142 | (goto-char (posn-point posn)) |
| 1142 | (if (or (posn-object posn) | 1143 | (if (or (posn-object posn) |
| 1143 | (and breakpoint-bitmap | 1144 | (eq (car (fringe-bitmaps-at-pos (posn-point posn))) |
| 1144 | (eq (car (fringe-bitmaps-at-pos (posn-point posn))) | 1145 | 'breakpoint)) |
| 1145 | breakpoint-bitmap))) | ||
| 1146 | (gud-remove nil) | 1146 | (gud-remove nil) |
| 1147 | (gud-break nil))))))) | 1147 | (gud-break nil))))))) |
| 1148 | 1148 | ||
| @@ -1831,11 +1831,7 @@ BUFFER nil or omitted means use the current buffer." | |||
| 1831 | (if (>= (car (window-fringes)) 8) | 1831 | (if (>= (car (window-fringes)) 8) |
| 1832 | (gdb-put-string | 1832 | (gdb-put-string |
| 1833 | nil (1+ start) | 1833 | nil (1+ start) |
| 1834 | `(left-fringe | 1834 | `(left-fringe breakpoint |
| 1835 | ,(or breakpoint-bitmap | ||
| 1836 | (setq breakpoint-bitmap | ||
| 1837 | (define-fringe-bitmap | ||
| 1838 | "\x3c\x7e\xff\xff\xff\xff\x7e\x3c"))) | ||
| 1839 | ,(if enabled | 1835 | ,(if enabled |
| 1840 | 'breakpoint-enabled-bitmap-face | 1836 | 'breakpoint-enabled-bitmap-face |
| 1841 | 'breakpoint-disabled-bitmap-face))) | 1837 | 'breakpoint-disabled-bitmap-face))) |
diff --git a/lisp/term.el b/lisp/term.el index 7991e74c5e9..35bb74834b5 100644 --- a/lisp/term.el +++ b/lisp/term.el | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | ;;; term.el --- general command interpreter in a window stuff | 1 | ;;; term.el --- general command interpreter in a window stuff |
| 2 | 2 | ||
| 3 | ;;; Copyright (C) 1988, 1990, 1992, 1994, 1995 Free Software Foundation, Inc. | 3 | ;;; Copyright (C) 1988, 1990, 1992, 1994, 1995, 2004 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Per Bothner <bothner@cygnus.com> | 5 | ;; Author: Per Bothner <bothner@cygnus.com> |
| 6 | ;; Based on comint mode written by: Olin Shivers <shivers@cs.cmu.edu> | 6 | ;; Based on comint mode written by: Olin Shivers <shivers@cs.cmu.edu> |
| @@ -676,7 +676,6 @@ Buffer local variable.") | |||
| 676 | (defvar term-terminal-menu) | 676 | (defvar term-terminal-menu) |
| 677 | 677 | ||
| 678 | ;;; Let's silence the byte-compiler -mm | 678 | ;;; Let's silence the byte-compiler -mm |
| 679 | (defvar term-ansi-at-eval-string nil) | ||
| 680 | (defvar term-ansi-at-host nil) | 679 | (defvar term-ansi-at-host nil) |
| 681 | (defvar term-ansi-at-dir nil) | 680 | (defvar term-ansi-at-dir nil) |
| 682 | (defvar term-ansi-at-user nil) | 681 | (defvar term-ansi-at-user nil) |
| @@ -692,9 +691,6 @@ Buffer local variable.") | |||
| 692 | (defvar term-ansi-current-highlight 0) | 691 | (defvar term-ansi-current-highlight 0) |
| 693 | (defvar term-ansi-current-reverse 0) | 692 | (defvar term-ansi-current-reverse 0) |
| 694 | (defvar term-ansi-current-invisible 0) | 693 | (defvar term-ansi-current-invisible 0) |
| 695 | (defvar term-ansi-default-fg 0) | ||
| 696 | (defvar term-ansi-default-bg 0) | ||
| 697 | (defvar term-ansi-current-temp 0) | ||
| 698 | 694 | ||
| 699 | ;;; Four should be enough, if you want more, just add. -mm | 695 | ;;; Four should be enough, if you want more, just add. -mm |
| 700 | (defvar term-terminal-more-parameters 0) | 696 | (defvar term-terminal-more-parameters 0) |
| @@ -915,6 +911,9 @@ is buffer-local.") | |||
| 915 | (define-key term-raw-map [backspace] 'term-send-backspace) | 911 | (define-key term-raw-map [backspace] 'term-send-backspace) |
| 916 | (define-key term-raw-map [home] 'term-send-home) | 912 | (define-key term-raw-map [home] 'term-send-home) |
| 917 | (define-key term-raw-map [end] 'term-send-end) | 913 | (define-key term-raw-map [end] 'term-send-end) |
| 914 | (define-key term-raw-map [S-prior] 'scroll-down) | ||
| 915 | (define-key term-raw-map [S-next] 'scroll-up) | ||
| 916 | (define-key term-raw-map [S-insert] 'term-paste) | ||
| 918 | (define-key term-raw-map [prior] 'term-send-prior) | 917 | (define-key term-raw-map [prior] 'term-send-prior) |
| 919 | (define-key term-raw-map [next] 'term-send-next))) | 918 | (define-key term-raw-map [next] 'term-send-next))) |
| 920 | 919 | ||
| @@ -930,6 +929,27 @@ is buffer-local.") | |||
| 930 | 929 | ||
| 931 | (put 'term-mode 'mode-class 'special) | 930 | (put 'term-mode 'mode-class 'special) |
| 932 | 931 | ||
| 932 | |||
| 933 | ;;; Use this variable as a display table for `term-mode'. | ||
| 934 | (defvar term-display-table | ||
| 935 | (let ((dt (or (copy-sequence standard-display-table) | ||
| 936 | (make-display-table))) | ||
| 937 | i) | ||
| 938 | ;; avoid changing the display table for ^J | ||
| 939 | (setq i 0) | ||
| 940 | (while (< i 10) | ||
| 941 | (aset dt i (vector i)) | ||
| 942 | (setq i (1+ i))) | ||
| 943 | (setq i 11) | ||
| 944 | (while (< i 32) | ||
| 945 | (aset dt i (vector i)) | ||
| 946 | (setq i (1+ i))) | ||
| 947 | (setq i 128) | ||
| 948 | (while (< i 256) | ||
| 949 | (aset dt i (vector i)) | ||
| 950 | (setq i (1+ i))) | ||
| 951 | dt)) | ||
| 952 | |||
| 933 | (defun term-mode () | 953 | (defun term-mode () |
| 934 | "Major mode for interacting with an inferior interpreter. | 954 | "Major mode for interacting with an inferior interpreter. |
| 935 | The interpreter name is same as buffer name, sans the asterisks. | 955 | The interpreter name is same as buffer name, sans the asterisks. |
| @@ -979,6 +999,9 @@ Entry to this mode runs the hooks on `term-mode-hook'." | |||
| 979 | (setq major-mode 'term-mode) | 999 | (setq major-mode 'term-mode) |
| 980 | (setq mode-name "Term") | 1000 | (setq mode-name "Term") |
| 981 | (use-local-map term-mode-map) | 1001 | (use-local-map term-mode-map) |
| 1002 | ;; we do not want indent to sneak in any tabs | ||
| 1003 | (setq indent-tabs-mode nil) | ||
| 1004 | (setq buffer-display-table term-display-table) | ||
| 982 | (make-local-variable 'term-home-marker) | 1005 | (make-local-variable 'term-home-marker) |
| 983 | (setq term-home-marker (copy-marker 0)) | 1006 | (setq term-home-marker (copy-marker 0)) |
| 984 | (make-local-variable 'term-saved-home-marker) | 1007 | (make-local-variable 'term-saved-home-marker) |
| @@ -1182,6 +1205,11 @@ without any interpretation." | |||
| 1182 | ((eq arg '-) -1) | 1205 | ((eq arg '-) -1) |
| 1183 | (t (1- arg))))))) | 1206 | (t (1- arg))))))) |
| 1184 | 1207 | ||
| 1208 | (defun term-paste () | ||
| 1209 | "Insert the last stretch of killed text at point." | ||
| 1210 | (interactive) | ||
| 1211 | (term-send-raw-string (current-kill 0))) | ||
| 1212 | |||
| 1185 | ;; Which would be better: "\e[A" or "\eOA"? readline accepts either. | 1213 | ;; Which would be better: "\e[A" or "\eOA"? readline accepts either. |
| 1186 | ;; For my configuration it's definitely better \eOA but YMMV. -mm | 1214 | ;; For my configuration it's definitely better \eOA but YMMV. -mm |
| 1187 | ;; For example: vi works with \eOA while elm wants \e[A ... | 1215 | ;; For example: vi works with \eOA while elm wants \e[A ... |
| @@ -1193,8 +1221,8 @@ without any interpretation." | |||
| 1193 | (defun term-send-end () (interactive) (term-send-raw-string "\e[4~")) | 1221 | (defun term-send-end () (interactive) (term-send-raw-string "\e[4~")) |
| 1194 | (defun term-send-prior () (interactive) (term-send-raw-string "\e[5~")) | 1222 | (defun term-send-prior () (interactive) (term-send-raw-string "\e[5~")) |
| 1195 | (defun term-send-next () (interactive) (term-send-raw-string "\e[6~")) | 1223 | (defun term-send-next () (interactive) (term-send-raw-string "\e[6~")) |
| 1196 | (defun term-send-del () (interactive) (term-send-raw-string "\C-?")) | 1224 | (defun term-send-del () (interactive) (term-send-raw-string "\e[3~")) |
| 1197 | (defun term-send-backspace () (interactive) (term-send-raw-string "\C-H")) | 1225 | (defun term-send-backspace () (interactive) (term-send-raw-string "\C-?")) |
| 1198 | 1226 | ||
| 1199 | (defun term-char-mode () | 1227 | (defun term-char-mode () |
| 1200 | "Switch to char (\"raw\") sub-mode of term mode. | 1228 | "Switch to char (\"raw\") sub-mode of term mode. |
| @@ -1364,14 +1392,15 @@ The main purpose is to get rid of the local keymap." | |||
| 1364 | "%s%s:li#%d:co#%d:cl=\\E[H\\E[J:cd=\\E[J:bs:am:xn:cm=\\E[%%i%%d;%%dH\ | 1392 | "%s%s:li#%d:co#%d:cl=\\E[H\\E[J:cd=\\E[J:bs:am:xn:cm=\\E[%%i%%d;%%dH\ |
| 1365 | :nd=\\E[C:up=\\E[A:ce=\\E[K:ho=\\E[H:pt\ | 1393 | :nd=\\E[C:up=\\E[A:ce=\\E[K:ho=\\E[H:pt\ |
| 1366 | :al=\\E[L:dl=\\E[M:DL=\\E[%%dM:AL=\\E[%%dL:cs=\\E[%%i%%d;%%dr:sf=^J\ | 1394 | :al=\\E[L:dl=\\E[M:DL=\\E[%%dM:AL=\\E[%%dL:cs=\\E[%%i%%d;%%dr:sf=^J\ |
| 1367 | :te=\\E[2J\\E[?47l\\E8:ti=\\E7\\E[?47h\ | ||
| 1368 | :dc=\\E[P:DC=\\E[%%dP:IC=\\E[%%d@:im=\\E[4h:ei=\\E[4l:mi:\ | 1395 | :dc=\\E[P:DC=\\E[%%dP:IC=\\E[%%d@:im=\\E[4h:ei=\\E[4l:mi:\ |
| 1369 | :so=\\E[7m:se=\\E[m:us=\\E[4m:ue=\\E[m:md=\\E[1m:mr=\\E[7m:me=\\E[m\ | 1396 | :so=\\E[7m:se=\\E[m:us=\\E[4m:ue=\\E[m:md=\\E[1m:mr=\\E[7m:me=\\E[m\ |
| 1370 | :UP=\\E[%%dA:DO=\\E[%%dB:LE=\\E[%%dD:RI=\\E[%%dC\ | 1397 | :UP=\\E[%%dA:DO=\\E[%%dB:LE=\\E[%%dD:RI=\\E[%%dC\ |
| 1371 | :kl=\\EOD:kd=\\EOB:kr=\\EOC:ku=\\EOA:kN=\\E[6~:kP=\\E[5~:@7=\\E[4~:kh=\\E[1~\ | 1398 | :kl=\\EOD:kd=\\EOB:kr=\\EOC:ku=\\EOA:kN=\\E[6~:kP=\\E[5~:@7=\\E[4~:kh=\\E[1~\ |
| 1372 | :mk=\\E[8m:cb=\\E[1K:op=\\E[39;49m:Co#8:pa#64:AB=\\E[4%%dm:AF=\\E[3%%dm:cr=^M\ | 1399 | :mk=\\E[8m:cb=\\E[1K:op=\\E[39;49m:Co#8:pa#64:AB=\\E[4%%dm:AF=\\E[3%%dm:cr=^M\ |
| 1373 | :bl=^G:do=^J:le=^H:ta=^I:se=\E[27m:ue=\E24m:" | 1400 | :bl=^G:do=^J:le=^H:ta=^I:se=\E[27m:ue=\E24m\ |
| 1401 | :kb=^?:kD=^[[3~:sc=\E7:rc=\E8:" | ||
| 1374 | ;;; : -undefine ic | 1402 | ;;; : -undefine ic |
| 1403 | ;;; don't define :te=\\E[2J\\E[?47l\\E8:ti=\\E7\\E[?47h\ | ||
| 1375 | "termcap capabilities supported") | 1404 | "termcap capabilities supported") |
| 1376 | 1405 | ||
| 1377 | ;;; This auxiliary function cranks up the process for term-exec in | 1406 | ;;; This auxiliary function cranks up the process for term-exec in |
| @@ -1398,9 +1427,10 @@ The main purpose is to get rid of the local keymap." | |||
| 1398 | (process-connection-type t) | 1427 | (process-connection-type t) |
| 1399 | ;; We should suppress conversion of end-of-line format. | 1428 | ;; We should suppress conversion of end-of-line format. |
| 1400 | (inhibit-eol-conversion t) | 1429 | (inhibit-eol-conversion t) |
| 1401 | ;; inhibit-eol-conversion doesn't seem to do the job, but this does. | 1430 | ;; The process's output contains not just chars but also binary |
| 1402 | (coding-system-for-read 'unknown-unix) | 1431 | ;; escape codes, so we need to see the raw output. We will have to |
| 1403 | ) | 1432 | ;; do the decoding by hand on the parts that are made of chars. |
| 1433 | (coding-system-for-read 'binary)) | ||
| 1404 | (apply 'start-process name buffer | 1434 | (apply 'start-process name buffer |
| 1405 | "/bin/sh" "-c" | 1435 | "/bin/sh" "-c" |
| 1406 | (format "stty -nl echo rows %d columns %d sane 2>/dev/null;\ | 1436 | (format "stty -nl echo rows %d columns %d sane 2>/dev/null;\ |
| @@ -2691,7 +2721,12 @@ See `term-prompt-regexp'." | |||
| 2691 | (if (not funny) (setq funny str-length)) | 2721 | (if (not funny) (setq funny str-length)) |
| 2692 | (cond ((> funny i) | 2722 | (cond ((> funny i) |
| 2693 | (cond ((eq term-terminal-state 1) | 2723 | (cond ((eq term-terminal-state 1) |
| 2694 | (term-move-columns 1) | 2724 | ;; We are in state 1, we need to wrap |
| 2725 | ;; around. Go to the beginning of | ||
| 2726 | ;; the next line and switch to state | ||
| 2727 | ;; 0. | ||
| 2728 | (term-down 1) | ||
| 2729 | (term-move-columns (- (term-current-column))) | ||
| 2695 | (setq term-terminal-state 0))) | 2730 | (setq term-terminal-state 0))) |
| 2696 | (setq count (- funny i)) | 2731 | (setq count (- funny i)) |
| 2697 | (setq temp (- (+ (term-horizontal-column) count) | 2732 | (setq temp (- (+ (term-horizontal-column) count) |
| @@ -2700,6 +2735,7 @@ See `term-prompt-regexp'." | |||
| 2700 | ((> count temp) ;; Some chars fit. | 2735 | ((> count temp) ;; Some chars fit. |
| 2701 | ;; This iteration, handle only what fits. | 2736 | ;; This iteration, handle only what fits. |
| 2702 | (setq count (- count temp)) | 2737 | (setq count (- count temp)) |
| 2738 | (setq temp 0) | ||
| 2703 | (setq funny (+ count i))) | 2739 | (setq funny (+ count i))) |
| 2704 | ((or (not (or term-pager-count | 2740 | ((or (not (or term-pager-count |
| 2705 | term-scroll-with-delete)) | 2741 | term-scroll-with-delete)) |
| @@ -2720,7 +2756,7 @@ See `term-prompt-regexp'." | |||
| 2720 | ;; following point if not eob nor insert-mode. | 2756 | ;; following point if not eob nor insert-mode. |
| 2721 | (let ((old-column (current-column)) | 2757 | (let ((old-column (current-column)) |
| 2722 | columns pos) | 2758 | columns pos) |
| 2723 | (insert (substring str i funny)) | 2759 | (insert (decode-coding-string (substring str i funny) locale-coding-system)) |
| 2724 | (setq term-current-column (current-column) | 2760 | (setq term-current-column (current-column) |
| 2725 | columns (- term-current-column old-column)) | 2761 | columns (- term-current-column old-column)) |
| 2726 | (when (not (or (eobp) term-insert-mode)) | 2762 | (when (not (or (eobp) term-insert-mode)) |
| @@ -2739,7 +2775,7 @@ See `term-prompt-regexp'." | |||
| 2739 | (setq term-terminal-state 1))) | 2775 | (setq term-terminal-state 1))) |
| 2740 | (setq i (1- funny))) | 2776 | (setq i (1- funny))) |
| 2741 | ((and (setq term-terminal-state 0) | 2777 | ((and (setq term-terminal-state 0) |
| 2742 | (eq char ?\^I)) ; TAB | 2778 | (eq char ?\^I)) ; TAB (terminfo: ht) |
| 2743 | ;; FIXME: Does not handle line wrap! | 2779 | ;; FIXME: Does not handle line wrap! |
| 2744 | (setq count (term-current-column)) | 2780 | (setq count (term-current-column)) |
| 2745 | (setq count (+ count 8 (- (mod count 8)))) | 2781 | (setq count (+ count 8 (- (mod count 8)))) |
| @@ -2766,7 +2802,7 @@ See `term-prompt-regexp'." | |||
| 2766 | (if (not (and term-kill-echo-list | 2802 | (if (not (and term-kill-echo-list |
| 2767 | (term-check-kill-echo-list))) | 2803 | (term-check-kill-echo-list))) |
| 2768 | (term-down 1 t))) | 2804 | (term-down 1 t))) |
| 2769 | ((eq char ?\b) | 2805 | ((eq char ?\b) ;; (terminfo: cub1) |
| 2770 | (term-move-columns -1)) | 2806 | (term-move-columns -1)) |
| 2771 | ((eq char ?\033) ; Escape | 2807 | ((eq char ?\033) ; Escape |
| 2772 | (setq term-terminal-state 2)) | 2808 | (setq term-terminal-state 2)) |
| @@ -2816,13 +2852,13 @@ See `term-prompt-regexp'." | |||
| 2816 | ((eq char ?M) ;; scroll reversed | 2852 | ((eq char ?M) ;; scroll reversed |
| 2817 | (term-insert-lines 1) | 2853 | (term-insert-lines 1) |
| 2818 | (setq term-terminal-state 0)) | 2854 | (setq term-terminal-state 0)) |
| 2819 | ((eq char ?7) ;; Save cursor | 2855 | ((eq char ?7) ;; Save cursor (terminfo: sc) |
| 2820 | (term-handle-deferred-scroll) | 2856 | (term-handle-deferred-scroll) |
| 2821 | (setq term-saved-cursor | 2857 | (setq term-saved-cursor |
| 2822 | (cons (term-current-row) | 2858 | (cons (term-current-row) |
| 2823 | (term-horizontal-column))) | 2859 | (term-horizontal-column))) |
| 2824 | (setq term-terminal-state 0)) | 2860 | (setq term-terminal-state 0)) |
| 2825 | ((eq char ?8) ;; Restore cursor | 2861 | ((eq char ?8) ;; Restore cursor (terminfo: rc) |
| 2826 | (if term-saved-cursor | 2862 | (if term-saved-cursor |
| 2827 | (term-goto (car term-saved-cursor) | 2863 | (term-goto (car term-saved-cursor) |
| 2828 | (cdr term-saved-cursor))) | 2864 | (cdr term-saved-cursor))) |
| @@ -2974,13 +3010,13 @@ See `term-prompt-regexp'." | |||
| 2974 | ((eq parameter 8) | 3010 | ((eq parameter 8) |
| 2975 | (setq term-ansi-current-invisible 1)) | 3011 | (setq term-ansi-current-invisible 1)) |
| 2976 | 3012 | ||
| 2977 | ;;; Reset reverse (i.e. terminfo rmso) | 3013 | ;;; Reset underline (i.e. terminfo rmul) |
| 2978 | ((eq parameter 24) | 3014 | ((eq parameter 24) |
| 2979 | (setq term-ansi-current-reverse 0)) | 3015 | (setq term-ansi-current-underline 0)) |
| 2980 | 3016 | ||
| 2981 | ;;; Reset underline (i.e. terminfo rmul) | 3017 | ;;; Reset reverse (i.e. terminfo rmso) |
| 2982 | ((eq parameter 27) | 3018 | ((eq parameter 27) |
| 2983 | (setq term-ansi-current-underline 0)) | 3019 | (setq term-ansi-current-reverse 0)) |
| 2984 | 3020 | ||
| 2985 | ;;; Foreground | 3021 | ;;; Foreground |
| 2986 | ((and (>= parameter 30) (<= parameter 37)) | 3022 | ((and (>= parameter 30) (<= parameter 37)) |
| @@ -3095,7 +3131,7 @@ See `term-prompt-regexp'." | |||
| 3095 | (term-goto | 3131 | (term-goto |
| 3096 | (1- term-terminal-previous-parameter) | 3132 | (1- term-terminal-previous-parameter) |
| 3097 | (1- term-terminal-parameter))) | 3133 | (1- term-terminal-parameter))) |
| 3098 | ;; \E[A - cursor up | 3134 | ;; \E[A - cursor up (terminfo: cuu1) |
| 3099 | ((eq char ?A) | 3135 | ((eq char ?A) |
| 3100 | (term-handle-deferred-scroll) | 3136 | (term-handle-deferred-scroll) |
| 3101 | (term-down (- (max 1 term-terminal-parameter)) t)) | 3137 | (term-down (- (max 1 term-terminal-parameter)) t)) |
| @@ -3108,13 +3144,13 @@ See `term-prompt-regexp'." | |||
| 3108 | ;; \E[D - cursor left | 3144 | ;; \E[D - cursor left |
| 3109 | ((eq char ?D) | 3145 | ((eq char ?D) |
| 3110 | (term-move-columns (- (max 1 term-terminal-parameter)))) | 3146 | (term-move-columns (- (max 1 term-terminal-parameter)))) |
| 3111 | ;; \E[J - clear to end of screen | 3147 | ;; \E[J - clear to end of screen (terminfo: ed, clear) |
| 3112 | ((eq char ?J) | 3148 | ((eq char ?J) |
| 3113 | (term-erase-in-display term-terminal-parameter)) | 3149 | (term-erase-in-display term-terminal-parameter)) |
| 3114 | ;; \E[K - clear to end of line | 3150 | ;; \E[K - clear to end of line (terminfo: el, el1) |
| 3115 | ((eq char ?K) | 3151 | ((eq char ?K) |
| 3116 | (term-erase-in-line term-terminal-parameter)) | 3152 | (term-erase-in-line term-terminal-parameter)) |
| 3117 | ;; \E[L - insert lines | 3153 | ;; \E[L - insert lines (terminfo: il, il1) |
| 3118 | ((eq char ?L) | 3154 | ((eq char ?L) |
| 3119 | (term-insert-lines (max 1 term-terminal-parameter))) | 3155 | (term-insert-lines (max 1 term-terminal-parameter))) |
| 3120 | ;; \E[M - delete lines | 3156 | ;; \E[M - delete lines |
| @@ -3128,19 +3164,22 @@ See `term-prompt-regexp'." | |||
| 3128 | (term-insert-spaces (max 1 term-terminal-parameter))) | 3164 | (term-insert-spaces (max 1 term-terminal-parameter))) |
| 3129 | ;; \E[?h - DEC Private Mode Set | 3165 | ;; \E[?h - DEC Private Mode Set |
| 3130 | ((eq char ?h) | 3166 | ((eq char ?h) |
| 3131 | (cond ((eq term-terminal-parameter 4) | 3167 | (cond ((eq term-terminal-parameter 4) ;; (terminfo: smir) |
| 3132 | (setq term-insert-mode t)) | 3168 | (setq term-insert-mode t)) |
| 3133 | ((eq term-terminal-parameter 47) | 3169 | ;; ((eq term-terminal-parameter 47) ;; (terminfo: smcup) |
| 3134 | (term-switch-to-alternate-sub-buffer t)))) | 3170 | ;; (term-switch-to-alternate-sub-buffer t)) |
| 3171 | )) | ||
| 3135 | ;; \E[?l - DEC Private Mode Reset | 3172 | ;; \E[?l - DEC Private Mode Reset |
| 3136 | ((eq char ?l) | 3173 | ((eq char ?l) |
| 3137 | (cond ((eq term-terminal-parameter 4) | 3174 | (cond ((eq term-terminal-parameter 4) ;; (terminfo: rmir) |
| 3138 | (setq term-insert-mode nil)) | 3175 | (setq term-insert-mode nil)) |
| 3139 | ((eq term-terminal-parameter 47) | 3176 | ;; ((eq term-terminal-parameter 47) ;; (terminfo: rmcup) |
| 3140 | (term-switch-to-alternate-sub-buffer nil)))) | 3177 | ;; (term-switch-to-alternate-sub-buffer nil)) |
| 3178 | )) | ||
| 3141 | 3179 | ||
| 3142 | ;;; Modified to allow ansi coloring -mm | 3180 | ;;; Modified to allow ansi coloring -mm |
| 3143 | ;; \E[m - Set/reset standard mode | 3181 | ;; \E[m - Set/reset modes, set bg/fg |
| 3182 | ;;(terminfo: smso,rmso,smul,rmul,rev,bold,sgr0,invis,op,setab,setaf) | ||
| 3144 | ((eq char ?m) | 3183 | ((eq char ?m) |
| 3145 | (when (= term-terminal-more-parameters 1) | 3184 | (when (= term-terminal-more-parameters 1) |
| 3146 | (if (>= term-terminal-previous-parameter-4 0) | 3185 | (if (>= term-terminal-previous-parameter-4 0) |
| @@ -3184,32 +3223,32 @@ The top-most line is line 0." | |||
| 3184 | (not (and (= term-scroll-start 0) | 3223 | (not (and (= term-scroll-start 0) |
| 3185 | (= term-scroll-end term-height)))))) | 3224 | (= term-scroll-end term-height)))))) |
| 3186 | 3225 | ||
| 3187 | (defun term-switch-to-alternate-sub-buffer (set) | 3226 | ;; (defun term-switch-to-alternate-sub-buffer (set) |
| 3188 | ;; If asked to switch to (from) the alternate sub-buffer, and already (not) | 3227 | ;; ;; If asked to switch to (from) the alternate sub-buffer, and already (not) |
| 3189 | ;; using it, do nothing. This test is needed for some programs (including | 3228 | ;; ;; using it, do nothing. This test is needed for some programs (including |
| 3190 | ;; Emacs) that emit the ti termcap string twice, for unknown reason. | 3229 | ;; ;; Emacs) that emit the ti termcap string twice, for unknown reason. |
| 3191 | (term-handle-deferred-scroll) | 3230 | ;; (term-handle-deferred-scroll) |
| 3192 | (if (eq set (not (term-using-alternate-sub-buffer))) | 3231 | ;; (if (eq set (not (term-using-alternate-sub-buffer))) |
| 3193 | (let ((row (term-current-row)) | 3232 | ;; (let ((row (term-current-row)) |
| 3194 | (col (term-horizontal-column))) | 3233 | ;; (col (term-horizontal-column))) |
| 3195 | (cond (set | 3234 | ;; (cond (set |
| 3196 | (goto-char (point-max)) | 3235 | ;; (goto-char (point-max)) |
| 3197 | (if (not (eq (preceding-char) ?\n)) | 3236 | ;; (if (not (eq (preceding-char) ?\n)) |
| 3198 | (term-insert-char ?\n 1)) | 3237 | ;; (term-insert-char ?\n 1)) |
| 3199 | (setq term-scroll-with-delete t) | 3238 | ;; (setq term-scroll-with-delete t) |
| 3200 | (setq term-saved-home-marker (copy-marker term-home-marker)) | 3239 | ;; (setq term-saved-home-marker (copy-marker term-home-marker)) |
| 3201 | (set-marker term-home-marker (point))) | 3240 | ;; (set-marker term-home-marker (point))) |
| 3202 | (t | 3241 | ;; (t |
| 3203 | (setq term-scroll-with-delete | 3242 | ;; (setq term-scroll-with-delete |
| 3204 | (not (and (= term-scroll-start 0) | 3243 | ;; (not (and (= term-scroll-start 0) |
| 3205 | (= term-scroll-end term-height)))) | 3244 | ;; (= term-scroll-end term-height)))) |
| 3206 | (set-marker term-home-marker term-saved-home-marker) | 3245 | ;; (set-marker term-home-marker term-saved-home-marker) |
| 3207 | (set-marker term-saved-home-marker nil) | 3246 | ;; (set-marker term-saved-home-marker nil) |
| 3208 | (setq term-saved-home-marker nil) | 3247 | ;; (setq term-saved-home-marker nil) |
| 3209 | (goto-char term-home-marker))) | 3248 | ;; (goto-char term-home-marker))) |
| 3210 | (setq term-current-column nil) | 3249 | ;; (setq term-current-column nil) |
| 3211 | (setq term-current-row 0) | 3250 | ;; (setq term-current-row 0) |
| 3212 | (term-goto row col)))) | 3251 | ;; (term-goto row col)))) |
| 3213 | 3252 | ||
| 3214 | ;; Default value for the symbol term-command-hook. | 3253 | ;; Default value for the symbol term-command-hook. |
| 3215 | 3254 | ||
| @@ -3519,11 +3558,11 @@ all pending output has been dealt with.")) | |||
| 3519 | (if (not (bolp)) (insert-before-markers ?\n))) | 3558 | (if (not (bolp)) (insert-before-markers ?\n))) |
| 3520 | 3559 | ||
| 3521 | (defun term-erase-in-line (kind) | 3560 | (defun term-erase-in-line (kind) |
| 3522 | (if (> kind 1) ;; erase left of point | 3561 | (if (= kind 1) ;; erase left of point |
| 3523 | (let ((cols (term-horizontal-column)) (saved-point (point))) | 3562 | (let ((cols (term-horizontal-column)) (saved-point (point))) |
| 3524 | (term-vertical-motion 0) | 3563 | (term-vertical-motion 0) |
| 3525 | (delete-region (point) saved-point) | 3564 | (delete-region (point) saved-point) |
| 3526 | (term-insert-char ?\n cols))) | 3565 | (term-insert-char ? cols))) |
| 3527 | (if (not (eq kind 1)) ;; erase right of point | 3566 | (if (not (eq kind 1)) ;; erase right of point |
| 3528 | (let ((saved-point (point)) | 3567 | (let ((saved-point (point)) |
| 3529 | (wrapped (and (zerop (term-horizontal-column)) | 3568 | (wrapped (and (zerop (term-horizontal-column)) |
| @@ -3622,7 +3661,7 @@ Should only be called when point is at the start of a screen line." | |||
| 3622 | (term-insert-char ?\n lines) | 3661 | (term-insert-char ?\n lines) |
| 3623 | (goto-char start))) | 3662 | (goto-char start))) |
| 3624 | 3663 | ||
| 3625 | (defun term-set-output-log (name) | 3664 | (defun term-start-output-log (name) |
| 3626 | "Record raw inferior process output in a buffer." | 3665 | "Record raw inferior process output in a buffer." |
| 3627 | (interactive (list (if term-log-buffer | 3666 | (interactive (list (if term-log-buffer |
| 3628 | nil | 3667 | nil |
| @@ -3644,10 +3683,10 @@ Should only be called when point is at the start of a screen line." | |||
| 3644 | (message "Recording terminal emulator output into buffer \"%s\"" | 3683 | (message "Recording terminal emulator output into buffer \"%s\"" |
| 3645 | (buffer-name term-log-buffer)))) | 3684 | (buffer-name term-log-buffer)))) |
| 3646 | 3685 | ||
| 3647 | (defun term-stop-photo () | 3686 | (defun term-stop-output-log () |
| 3648 | "Discontinue raw inferior process logging." | 3687 | "Discontinue raw inferior process logging." |
| 3649 | (interactive) | 3688 | (interactive) |
| 3650 | (term-set-output-log nil)) | 3689 | (term-start-output-log nil)) |
| 3651 | 3690 | ||
| 3652 | (defun term-show-maximum-output () | 3691 | (defun term-show-maximum-output () |
| 3653 | "Put the end of the buffer at the bottom of the window." | 3692 | "Put the end of the buffer at the bottom of the window." |
diff --git a/lisp/textmodes/enriched.el b/lisp/textmodes/enriched.el index 4db493803ef..c2ed47cb48d 100644 --- a/lisp/textmodes/enriched.el +++ b/lisp/textmodes/enriched.el | |||
| @@ -102,7 +102,7 @@ expression, which is evaluated to get the string to insert.") | |||
| 102 | (defconst enriched-annotation-regexp "<\\(/\\)?\\([-A-Za-z0-9]+\\)>" | 102 | (defconst enriched-annotation-regexp "<\\(/\\)?\\([-A-Za-z0-9]+\\)>" |
| 103 | "Regular expression matching enriched-text annotations.") | 103 | "Regular expression matching enriched-text annotations.") |
| 104 | 104 | ||
| 105 | (defconst enriched-translations | 105 | (defvar enriched-translations |
| 106 | '((face (bold-italic "bold" "italic") | 106 | '((face (bold-italic "bold" "italic") |
| 107 | (bold "bold") | 107 | (bold "bold") |
| 108 | (italic "italic") | 108 | (italic "italic") |