diff options
| author | Miles Bader | 2007-05-30 14:40:46 +0000 |
|---|---|---|
| committer | Miles Bader | 2007-05-30 14:40:46 +0000 |
| commit | 62390cbfc25653003034b812258be9cfb5f3edee (patch) | |
| tree | 7ee220bf44a2e65dd80511bced7b77cfa1233b12 | |
| parent | 2d423dd0a720b08c61ee10023554b2a0491f8fae (diff) | |
| parent | 7a781a5480b9a1f55d28a76e1d1f89aaa2421f97 (diff) | |
| download | emacs-62390cbfc25653003034b812258be9cfb5f3edee.tar.gz emacs-62390cbfc25653003034b812258be9cfb5f3edee.zip | |
Merge from emacs--devo--0
Patches applied:
* emacs--devo--0 (patch 774-780)
- Update from CVS
- Merge from emacs--rel--22, gnus--rel--5.10
- Merge from emacs--rel--22
- Fix tq.el edge case
* emacs--rel--22 (patch 28-32)
- Update from CVS
* gnus--rel--5.10 (patch 224-225)
- Merge from emacs--devo--0, emacs--rel--22
- Update from CVS
Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-213
43 files changed, 409 insertions, 238 deletions
diff --git a/etc/ChangeLog b/etc/ChangeLog index e793d0256d3..425b0dc353a 100644 --- a/etc/ChangeLog +++ b/etc/ChangeLog | |||
| @@ -1,3 +1,7 @@ | |||
| 1 | 2007-05-29 Robert J. Chassell <bob@rattlesnake.com> | ||
| 2 | |||
| 3 | * NEWS: Fix instances of `allow' without object. | ||
| 4 | |||
| 1 | 2007-05-22 Glenn Morris <rgm@gnu.org> | 5 | 2007-05-22 Glenn Morris <rgm@gnu.org> |
| 2 | 6 | ||
| 3 | * NEWS.22: New file with entries for Emacs 22. | 7 | * NEWS.22: New file with entries for Emacs 22. |
diff --git a/etc/NEWS.22 b/etc/NEWS.22 index 84c7b3b3bf1..41c446ccae8 100644 --- a/etc/NEWS.22 +++ b/etc/NEWS.22 | |||
| @@ -442,7 +442,7 @@ same string that would be displayed on mouse-over using the | |||
| 442 | `help-echo' property, but, in certain cases, it can display a more | 442 | `help-echo' property, but, in certain cases, it can display a more |
| 443 | keyboard oriented alternative. | 443 | keyboard oriented alternative. |
| 444 | 444 | ||
| 445 | *** New user option `help-at-pt-display-when-idle' allows to | 445 | *** New user option `help-at-pt-display-when-idle' allows you to |
| 446 | automatically show the help provided by `display-local-help' on | 446 | automatically show the help provided by `display-local-help' on |
| 447 | point-over, after suitable idle time. The amount of idle time is | 447 | point-over, after suitable idle time. The amount of idle time is |
| 448 | determined by the user option `help-at-pt-timer-delay' and defaults | 448 | determined by the user option `help-at-pt-timer-delay' and defaults |
| @@ -1949,11 +1949,11 @@ old name remains available as alias, but has been marked obsolete. | |||
| 1949 | 1949 | ||
| 1950 | If point is at the end of a file buffer before reverting, Auto Revert | 1950 | If point is at the end of a file buffer before reverting, Auto Revert |
| 1951 | mode keeps it at the end after reverting. Similarly if point is | 1951 | mode keeps it at the end after reverting. Similarly if point is |
| 1952 | displayed at the end of a file buffer in any window, it stays at | 1952 | displayed at the end of a file buffer in any window, it stays at the end |
| 1953 | the end of the buffer in that window. This allows to tail a file: | 1953 | of the buffer in that window. This allows you to "tail" a file: just |
| 1954 | just put point at the end of the buffer and it stays there. This | 1954 | put point at the end of the buffer and it stays there. This rule |
| 1955 | rule applies to file buffers. For non-file buffers, the behavior can | 1955 | applies to file buffers. For non-file buffers, the behavior can be mode |
| 1956 | be mode dependent. | 1956 | dependent. |
| 1957 | 1957 | ||
| 1958 | If you are sure that the file will only change by growing at the end, | 1958 | If you are sure that the file will only change by growing at the end, |
| 1959 | then you can tail the file more efficiently by using the new minor | 1959 | then you can tail the file more efficiently by using the new minor |
| @@ -3047,7 +3047,7 @@ struct members in C, members variables in C++ and variables in PHP. | |||
| 3047 | 3047 | ||
| 3048 | *** Support for `movemail' from GNU mailutils was added to Rmail. | 3048 | *** Support for `movemail' from GNU mailutils was added to Rmail. |
| 3049 | 3049 | ||
| 3050 | This version of `movemail' allows to read mail from a wide range of | 3050 | This version of `movemail' allows you to read mail from a wide range of |
| 3051 | mailbox formats, including remote POP3 and IMAP4 mailboxes with or | 3051 | mailbox formats, including remote POP3 and IMAP4 mailboxes with or |
| 3052 | without TLS encryption. If GNU mailutils is installed on the system | 3052 | without TLS encryption. If GNU mailutils is installed on the system |
| 3053 | and its version of `movemail' can be found in exec-path, it will be | 3053 | and its version of `movemail' can be found in exec-path, it will be |
diff --git a/etc/PROBLEMS b/etc/PROBLEMS index 317d7d70783..f35f3fdc659 100644 --- a/etc/PROBLEMS +++ b/etc/PROBLEMS | |||
| @@ -2456,27 +2456,6 @@ This results from a bug in a VERY old version of GNU Sed. To solve | |||
| 2456 | the problem, install the current version of GNU Sed, then rerun | 2456 | the problem, install the current version of GNU Sed, then rerun |
| 2457 | Emacs's configure script. | 2457 | Emacs's configure script. |
| 2458 | 2458 | ||
| 2459 | *** Compiling on GNU/Linux fails due to a missing left operand in gnu-linux.h. | ||
| 2460 | |||
| 2461 | The error messages have the form: | ||
| 2462 | |||
| 2463 | ../src/s/gnu-linux.h:49:24: error: operator '>' has no left operand | ||
| 2464 | |||
| 2465 | This error occurs because your system defines LINUX_VERSION_CODE in | ||
| 2466 | the standard header file linux/version.h but does not give it a value. | ||
| 2467 | As a workaround, you can edit the file src/s/gnu-linux.h to add the | ||
| 2468 | needed definition. On the line after "#include <linux/version.h>", | ||
| 2469 | add a line as shown below: | ||
| 2470 | |||
| 2471 | #include <linux/version.h> | ||
| 2472 | #define LINUX_VERSION_CODE 132626 | ||
| 2473 | |||
| 2474 | The number to use depends on your kernel version (the example shown is | ||
| 2475 | for kernel 2.6.18). The number can be obtained by running the | ||
| 2476 | following command in the shell: | ||
| 2477 | |||
| 2478 | uname -r | sed -e 's/\./ /g' -e 's/-.*//' | awk '{print $1*(2^16) + $2*(2^8) + $3}' | ||
| 2479 | |||
| 2480 | *** Building a 32-bit executable on a 64-bit GNU/Linux architecture. | 2459 | *** Building a 32-bit executable on a 64-bit GNU/Linux architecture. |
| 2481 | 2460 | ||
| 2482 | First ensure that the necessary 32-bit system libraries and include | 2461 | First ensure that the necessary 32-bit system libraries and include |
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 0d1d4d59110..9a79d4a0b55 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,72 @@ | |||
| 1 | 2007-05-30 Michael Olson <mwolson@gnu.org> | ||
| 2 | |||
| 3 | * emacs-lisp/tq.el (tq-queue-pop): Stifle error when a process has | ||
| 4 | died and we are trying to send a signal to it. The program using | ||
| 5 | tq.el should periodically check to see whether the process has | ||
| 6 | died and react appropriately -- this is not the responsibility of | ||
| 7 | tq.el, and is consistent with the rest of the tq.el source code. | ||
| 8 | |||
| 9 | 2007-05-29 Martin Rudalics <rudalics@gmx.at> | ||
| 10 | |||
| 11 | * textmodes/table.el (table--point-entered-cell-function) | ||
| 12 | (table--point-left-cell-function): Bind | ||
| 13 | `inhibit-point-motion-hooks' to t. | ||
| 14 | |||
| 15 | 2007-05-29 Nikolaj Schumacher <n_schumacher@web.de> (tiny change) | ||
| 16 | |||
| 17 | * emacs-lisp/rx.el (rx): Doc fix. | ||
| 18 | |||
| 19 | 2007-05-28 Juanma Barranquero <lekktu@gmail.com> | ||
| 20 | |||
| 21 | * progmodes/idlwave.el (idlwave-routines): Fix typo in docstring. | ||
| 22 | |||
| 23 | 2007-05-28 Michael Albinus <michael.albinus@gmx.de> | ||
| 24 | |||
| 25 | Sync with Tramp 2.0.56. | ||
| 26 | |||
| 27 | * net/tramp.el: | ||
| 28 | * net/tramp-ftp.el: | ||
| 29 | * net/tramp-smb.el: | ||
| 30 | * net/tramp-util.el: | ||
| 31 | * net/tramp-vc.el: | ||
| 32 | Don't load cl.el, because that pollutes the namespace. Replace cl | ||
| 33 | macros by their implementations where necessary. Requested by | ||
| 34 | Richard Stallman <rms@gnu.org>. | ||
| 35 | |||
| 36 | * net/tramp.el (top): Make `set-buffer-multibyte' an alias if it | ||
| 37 | doesn't exist. | ||
| 38 | (with-parsed-tramp-file-name): Protect debug spec during | ||
| 39 | compilation. | ||
| 40 | (tramp-handle-insert-directory): Check (featurep 'ls-lisp). | ||
| 41 | (tramp-file-name-p, tramp-file-name-multi-method) | ||
| 42 | (tramp-file-name-method, tramp-file-name-user) | ||
| 43 | (tramp-file-name-host, tramp-file-name-localname): New defuns, | ||
| 44 | replacing defstruct `tramp-file-name'. | ||
| 45 | (tramp-handle-file-remote-p, tramp-completion-dissect-file-name1) | ||
| 46 | (tramp-dissect-file-name, tramp-dissect-multi-file-name): Apply | ||
| 47 | `vector' instead of `make-tramp-file-name'. | ||
| 48 | (tramp-handle-make-auto-save-file-name): Apply | ||
| 49 | `tramp-temporary-file-directory' for compatibility reasons. | ||
| 50 | (tramp-completion-mode): Use `natnump' instead of `wholenump' | ||
| 51 | because of XEmacs. | ||
| 52 | (tramp-completion-mode): `last-input-event' is nil when XEmacs is | ||
| 53 | started. | ||
| 54 | |||
| 55 | 2007-05-28 Chong Yidong <cyd@stupidchicken.com> | ||
| 56 | |||
| 57 | * textmodes/sgml-mode.el (sgml-point-entered): Use condition-case. | ||
| 58 | |||
| 59 | 2007-05-27 Tetsurou Okazaki <okazaki@be.to> (tiny change) | ||
| 60 | |||
| 61 | * log-edit.el (log-edit-changelog-paragraph): Return point-max | ||
| 62 | as the end of the ChangeLog paragraph when it ends without a line | ||
| 63 | termination. | ||
| 64 | |||
| 65 | 2007-05-27 Ryan Yeske <rcyeske@gmail.com> | ||
| 66 | |||
| 67 | * net/webjump.el (webjump-sample-sites): | ||
| 68 | Add simple Wikipedia query. | ||
| 69 | |||
| 1 | 2007-05-25 Stefan Monnier <monnier@iro.umontreal.ca> | 70 | 2007-05-25 Stefan Monnier <monnier@iro.umontreal.ca> |
| 2 | 71 | ||
| 3 | * emacs-lisp/derived.el (define-derived-mode): Remove bogus | 72 | * emacs-lisp/derived.el (define-derived-mode): Remove bogus |
diff --git a/lisp/emacs-lisp/rx.el b/lisp/emacs-lisp/rx.el index 39134443d86..54f88ba3ea5 100644 --- a/lisp/emacs-lisp/rx.el +++ b/lisp/emacs-lisp/rx.el | |||
| @@ -725,8 +725,7 @@ CHAR | |||
| 725 | matches the empty string, but only at point. | 725 | matches the empty string, but only at point. |
| 726 | 726 | ||
| 727 | `word-start', `bow' | 727 | `word-start', `bow' |
| 728 | matches the empty string, but only at the beginning or end of a | 728 | matches the empty string, but only at the beginning of a word. |
| 729 | word. | ||
| 730 | 729 | ||
| 731 | `word-end', `eow' | 730 | `word-end', `eow' |
| 732 | matches the empty string, but only at the end of a word. | 731 | matches the empty string, but only at the end of a word. |
| @@ -740,6 +739,12 @@ CHAR | |||
| 740 | matches the empty string, but not at the beginning or end of a | 739 | matches the empty string, but not at the beginning or end of a |
| 741 | word. | 740 | word. |
| 742 | 741 | ||
| 742 | `symbol-start' | ||
| 743 | matches the empty string, but only at the beginning of a symbol. | ||
| 744 | |||
| 745 | `symbol-end' | ||
| 746 | matches the empty string, but only at the end of a symbol. | ||
| 747 | |||
| 743 | `digit', `numeric', `num' | 748 | `digit', `numeric', `num' |
| 744 | matches 0 through 9. | 749 | matches 0 through 9. |
| 745 | 750 | ||
diff --git a/lisp/emacs-lisp/tq.el b/lisp/emacs-lisp/tq.el index b12c21b6730..f20015fd720 100644 --- a/lisp/emacs-lisp/tq.el +++ b/lisp/emacs-lisp/tq.el | |||
| @@ -100,8 +100,9 @@ to a tcp server on another machine." | |||
| 100 | (defun tq-queue-pop (tq) | 100 | (defun tq-queue-pop (tq) |
| 101 | (setcar tq (cdr (car tq))) | 101 | (setcar tq (cdr (car tq))) |
| 102 | (let ((question (tq-queue-head-question tq))) | 102 | (let ((question (tq-queue-head-question tq))) |
| 103 | (when question | 103 | (condition-case nil |
| 104 | (process-send-string (tq-process tq) question))) | 104 | (process-send-string (tq-process tq) question) |
| 105 | (error nil))) | ||
| 105 | (null (car tq))) | 106 | (null (car tq))) |
| 106 | 107 | ||
| 107 | (defun tq-enqueue (tq question regexp closure fn &optional delay-question) | 108 | (defun tq-enqueue (tq question regexp closure fn &optional delay-question) |
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index 9f4df39957f..631869e4f34 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog | |||
| @@ -1,3 +1,8 @@ | |||
| 1 | 2007-05-28 Katsumi Yamaoka <yamaoka@jpl.org> | ||
| 2 | |||
| 3 | * message.el (message-pop-to-buffer): Add switch-function argument. | ||
| 4 | (message-mail): Pass switch-function argument to it. | ||
| 5 | |||
| 1 | 2007-05-24 Katsumi Yamaoka <yamaoka@jpl.org> | 6 | 2007-05-24 Katsumi Yamaoka <yamaoka@jpl.org> |
| 2 | 7 | ||
| 3 | * message.el (message-narrow-to-headers-or-head): Ignore | 8 | * message.el (message-narrow-to-headers-or-head): Ignore |
diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el index 432bd69b67f..eef854f4fb7 100644 --- a/lisp/gnus/message.el +++ b/lisp/gnus/message.el | |||
| @@ -5576,7 +5576,7 @@ between beginning of field and beginning of line." | |||
| 5576 | 'car-less-than-car))) | 5576 | 'car-less-than-car))) |
| 5577 | new))))) | 5577 | new))))) |
| 5578 | 5578 | ||
| 5579 | (defun message-pop-to-buffer (name) | 5579 | (defun message-pop-to-buffer (name &optional switch-function) |
| 5580 | "Pop to buffer NAME, and warn if it already exists and is modified." | 5580 | "Pop to buffer NAME, and warn if it already exists and is modified." |
| 5581 | (let ((buffer (get-buffer name))) | 5581 | (let ((buffer (get-buffer name))) |
| 5582 | (if (and buffer | 5582 | (if (and buffer |
| @@ -5587,14 +5587,16 @@ between beginning of field and beginning of line." | |||
| 5587 | (progn | 5587 | (progn |
| 5588 | (gnus-select-frame-set-input-focus (window-frame window)) | 5588 | (gnus-select-frame-set-input-focus (window-frame window)) |
| 5589 | (select-window window)) | 5589 | (select-window window)) |
| 5590 | (set-buffer (pop-to-buffer buffer))) | 5590 | (funcall (or switch-function 'pop-to-buffer) buffer) |
| 5591 | (set-buffer buffer)) | ||
| 5591 | (when (and (buffer-modified-p) | 5592 | (when (and (buffer-modified-p) |
| 5592 | (not (prog1 | 5593 | (not (prog1 |
| 5593 | (y-or-n-p | 5594 | (y-or-n-p |
| 5594 | "Message already being composed; erase? ") | 5595 | "Message already being composed; erase? ") |
| 5595 | (message nil)))) | 5596 | (message nil)))) |
| 5596 | (error "Message being composed"))) | 5597 | (error "Message being composed"))) |
| 5597 | (set-buffer (pop-to-buffer name))) | 5598 | (funcall (or switch-function 'pop-to-buffer) name) |
| 5599 | (set-buffer name)) | ||
| 5598 | (erase-buffer) | 5600 | (erase-buffer) |
| 5599 | (message-mode))) | 5601 | (message-mode))) |
| 5600 | 5602 | ||
| @@ -5831,15 +5833,15 @@ is a function used to switch to and display the mail buffer." | |||
| 5831 | (interactive) | 5833 | (interactive) |
| 5832 | (let ((message-this-is-mail t) replybuffer) | 5834 | (let ((message-this-is-mail t) replybuffer) |
| 5833 | (unless (message-mail-user-agent) | 5835 | (unless (message-mail-user-agent) |
| 5834 | (funcall | 5836 | (message-pop-to-buffer |
| 5835 | (or switch-function 'message-pop-to-buffer) | ||
| 5836 | ;; Search for the existing message buffer if `continue' is non-nil. | 5837 | ;; Search for the existing message buffer if `continue' is non-nil. |
| 5837 | (let ((message-generate-new-buffers | 5838 | (let ((message-generate-new-buffers |
| 5838 | (when (or (not continue) | 5839 | (when (or (not continue) |
| 5839 | (eq message-generate-new-buffers 'standard) | 5840 | (eq message-generate-new-buffers 'standard) |
| 5840 | (functionp message-generate-new-buffers)) | 5841 | (functionp message-generate-new-buffers)) |
| 5841 | message-generate-new-buffers))) | 5842 | message-generate-new-buffers))) |
| 5842 | (message-buffer-name "mail" to)))) | 5843 | (message-buffer-name "mail" to)) |
| 5844 | switch-function)) | ||
| 5843 | ;; FIXME: message-mail should do something if YANK-ACTION is not | 5845 | ;; FIXME: message-mail should do something if YANK-ACTION is not |
| 5844 | ;; insert-buffer. | 5846 | ;; insert-buffer. |
| 5845 | (and (consp yank-action) (eq (car yank-action) 'insert-buffer) | 5847 | (and (consp yank-action) (eq (car yank-action) 'insert-buffer) |
diff --git a/lisp/log-edit.el b/lisp/log-edit.el index ed0a5c464e9..8f63635ee49 100644 --- a/lisp/log-edit.el +++ b/lisp/log-edit.el | |||
| @@ -538,7 +538,7 @@ If we are between paragraphs, return the previous paragraph." | |||
| 538 | (point)) | 538 | (point)) |
| 539 | (if (re-search-forward "^[ \t\n]*$" nil t) | 539 | (if (re-search-forward "^[ \t\n]*$" nil t) |
| 540 | (match-beginning 0) | 540 | (match-beginning 0) |
| 541 | (point))))) | 541 | (point-max))))) |
| 542 | 542 | ||
| 543 | (defun log-edit-changelog-subparagraph () | 543 | (defun log-edit-changelog-subparagraph () |
| 544 | "Return the bounds of the ChangeLog subparagraph containing point. | 544 | "Return the bounds of the ChangeLog subparagraph containing point. |
diff --git a/lisp/net/tramp-ftp.el b/lisp/net/tramp-ftp.el index 2749a6858c0..d33873d1689 100644 --- a/lisp/net/tramp-ftp.el +++ b/lisp/net/tramp-ftp.el | |||
| @@ -1,6 +1,7 @@ | |||
| 1 | ;;; tramp-ftp.el --- Tramp convenience functions for Ange-FTP -*- coding: iso-8859-1; -*- | 1 | ;;; tramp-ftp.el --- Tramp convenience functions for Ange-FTP -*- coding: iso-8859-1; -*- |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2002, 2003, 2004, 2005, 2006, |
| 4 | ;; 2007 Free Software Foundation, Inc. | ||
| 4 | 5 | ||
| 5 | ;; Author: Michael Albinus <michael.albinus@gmx.de> | 6 | ;; Author: Michael Albinus <michael.albinus@gmx.de> |
| 6 | ;; Keywords: comm, processes | 7 | ;; Keywords: comm, processes |
| @@ -31,12 +32,7 @@ | |||
| 31 | 32 | ||
| 32 | (require 'tramp) | 33 | (require 'tramp) |
| 33 | 34 | ||
| 34 | (eval-when-compile | 35 | (eval-when-compile (require 'custom)) |
| 35 | (require 'cl) | ||
| 36 | (require 'custom) | ||
| 37 | ;; Emacs 19.34 compatibility hack -- is this needed? | ||
| 38 | (or (>= emacs-major-version 20) | ||
| 39 | (load "cl-seq"))) | ||
| 40 | 36 | ||
| 41 | ;; Disable Ange-FTP from file-name-handler-alist. | 37 | ;; Disable Ange-FTP from file-name-handler-alist. |
| 42 | ;; To handle EFS, the following functions need to be dealt with: | 38 | ;; To handle EFS, the following functions need to be dealt with: |
diff --git a/lisp/net/tramp-smb.el b/lisp/net/tramp-smb.el index 5d5d441193d..7382bdef63b 100644 --- a/lisp/net/tramp-smb.el +++ b/lisp/net/tramp-smb.el | |||
| @@ -31,12 +31,7 @@ | |||
| 31 | (require 'tramp) | 31 | (require 'tramp) |
| 32 | 32 | ||
| 33 | ;; Pacify byte-compiler | 33 | ;; Pacify byte-compiler |
| 34 | (eval-when-compile | 34 | (eval-when-compile (require 'custom)) |
| 35 | (require 'cl) | ||
| 36 | (require 'custom) | ||
| 37 | ;; Emacs 19.34 compatibility hack -- is this needed? | ||
| 38 | (or (>= emacs-major-version 20) | ||
| 39 | (load "cl-seq"))) | ||
| 40 | 35 | ||
| 41 | ;; Avoid byte-compiler warnings if the byte-compiler supports this. | 36 | ;; Avoid byte-compiler warnings if the byte-compiler supports this. |
| 42 | ;; Currently, XEmacs supports this. | 37 | ;; Currently, XEmacs supports this. |
diff --git a/lisp/net/tramp-util.el b/lisp/net/tramp-util.el index 81857ae4225..4895edf019b 100644 --- a/lisp/net/tramp-util.el +++ b/lisp/net/tramp-util.el | |||
| @@ -29,7 +29,6 @@ | |||
| 29 | 29 | ||
| 30 | ;;; Code: | 30 | ;;; Code: |
| 31 | 31 | ||
| 32 | (eval-when-compile (require 'cl)) | ||
| 33 | (require 'compile) | 32 | (require 'compile) |
| 34 | (require 'tramp) | 33 | (require 'tramp) |
| 35 | (add-hook 'tramp-util-unload-hook | 34 | (add-hook 'tramp-util-unload-hook |
diff --git a/lisp/net/tramp-uu.el b/lisp/net/tramp-uu.el index ce047489260..32bb9857f7f 100644 --- a/lisp/net/tramp-uu.el +++ b/lisp/net/tramp-uu.el | |||
| @@ -1,7 +1,8 @@ | |||
| 1 | ;;; -*- coding: iso-2022-7bit; -*- | 1 | ;;; -*- coding: iso-2022-7bit; -*- |
| 2 | ;;; tramp-uu.el --- uuencode in Lisp | 2 | ;;; tramp-uu.el --- uuencode in Lisp |
| 3 | 3 | ||
| 4 | ;; Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. | 4 | ;; Copyright (C) 2002, 2003, 2004, 2005, 2006, |
| 5 | ;; 2007 Free Software Foundation, Inc. | ||
| 5 | 6 | ||
| 6 | ;; Author: Kai Gro,A_(Bjohann <kai.grossjohann@gmx.net> | 7 | ;; Author: Kai Gro,A_(Bjohann <kai.grossjohann@gmx.net> |
| 7 | ;; Keywords: comm, terminals | 8 | ;; Keywords: comm, terminals |
diff --git a/lisp/net/tramp-vc.el b/lisp/net/tramp-vc.el index eda98364a98..cc5566d6354 100644 --- a/lisp/net/tramp-vc.el +++ b/lisp/net/tramp-vc.el | |||
| @@ -31,8 +31,6 @@ | |||
| 31 | 31 | ||
| 32 | ;;; Code: | 32 | ;;; Code: |
| 33 | 33 | ||
| 34 | (eval-when-compile | ||
| 35 | (require 'cl)) | ||
| 36 | (require 'vc) | 34 | (require 'vc) |
| 37 | ;; Old VC defines vc-rcs-release in vc.el, new VC requires extra module. | 35 | ;; Old VC defines vc-rcs-release in vc.el, new VC requires extra module. |
| 38 | (unless (boundp 'vc-rcs-release) | 36 | (unless (boundp 'vc-rcs-release) |
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el index 20ac73d0f75..f85620ee323 100644 --- a/lisp/net/tramp.el +++ b/lisp/net/tramp.el | |||
| @@ -151,11 +151,7 @@ Otherwise, use a separate filename syntax for Tramp.") | |||
| 151 | (when (featurep 'tramp-smb) | 151 | (when (featurep 'tramp-smb) |
| 152 | (unload-feature 'tramp-smb 'force))))))) | 152 | (unload-feature 'tramp-smb 'force))))))) |
| 153 | 153 | ||
| 154 | (require 'cl) | ||
| 155 | (require 'custom) | 154 | (require 'custom) |
| 156 | ;; Emacs 19.34 compatibility hack -- is this needed? | ||
| 157 | (or (>= emacs-major-version 20) | ||
| 158 | (load "cl-seq")) | ||
| 159 | 155 | ||
| 160 | (unless (boundp 'custom-print-functions) | 156 | (unless (boundp 'custom-print-functions) |
| 161 | (defvar custom-print-functions nil)) ; not autoloaded before Emacs 20.4 | 157 | (defvar custom-print-functions nil)) ; not autoloaded before Emacs 20.4 |
| @@ -175,6 +171,11 @@ Otherwise, use a separate filename syntax for Tramp.") | |||
| 175 | (when (boundp 'byte-compile-not-obsolete-var) | 171 | (when (boundp 'byte-compile-not-obsolete-var) |
| 176 | (setq byte-compile-not-obsolete-var 'directory-sep-char))) | 172 | (setq byte-compile-not-obsolete-var 'directory-sep-char))) |
| 177 | 173 | ||
| 174 | ;; `set-buffer-multibyte' comes from Emacs Leim. | ||
| 175 | (eval-and-compile | ||
| 176 | (unless (fboundp 'set-buffer-multibyte) | ||
| 177 | (defalias 'set-buffer-multibyte 'ignore))) | ||
| 178 | |||
| 178 | ;;; User Customizable Internal Variables: | 179 | ;;; User Customizable Internal Variables: |
| 179 | 180 | ||
| 180 | (defgroup tramp nil | 181 | (defgroup tramp nil |
| @@ -2077,7 +2078,9 @@ If VAR is nil, then we bind `v' to the structure and `multi-method', | |||
| 2077 | 2078 | ||
| 2078 | (put 'with-parsed-tramp-file-name 'lisp-indent-function 2) | 2079 | (put 'with-parsed-tramp-file-name 'lisp-indent-function 2) |
| 2079 | ;; Enable debugging. | 2080 | ;; Enable debugging. |
| 2080 | (def-edebug-spec with-parsed-tramp-file-name (form symbolp body)) | 2081 | (eval-and-compile |
| 2082 | (when (featurep 'edebug) | ||
| 2083 | (def-edebug-spec with-parsed-tramp-file-name (form symbolp body)))) | ||
| 2081 | ;; Highlight as keyword. | 2084 | ;; Highlight as keyword. |
| 2082 | (when (functionp 'font-lock-add-keywords) | 2085 | (when (functionp 'font-lock-add-keywords) |
| 2083 | (funcall 'font-lock-add-keywords | 2086 | (funcall 'font-lock-add-keywords |
| @@ -2384,10 +2387,10 @@ target of the symlink differ." | |||
| 2384 | "Integer constant overflow in reader") | 2387 | "Integer constant overflow in reader") |
| 2385 | (string-match | 2388 | (string-match |
| 2386 | "^[0-9]+\\([0-9][0-9][0-9][0-9][0-9]\\)\\'" | 2389 | "^[0-9]+\\([0-9][0-9][0-9][0-9][0-9]\\)\\'" |
| 2387 | (caddr err))) | 2390 | (car (cddr err)))) |
| 2388 | (let* ((big (read (substring (caddr err) 0 | 2391 | (let* ((big (read (substring (car (cddr err)) 0 |
| 2389 | (match-beginning 1)))) | 2392 | (match-beginning 1)))) |
| 2390 | (small (read (match-string 1 (caddr err)))) | 2393 | (small (read (match-string 1 (car (cddr err))))) |
| 2391 | (twiddle (/ small 65536))) | 2394 | (twiddle (/ small 65536))) |
| 2392 | (cons (+ big twiddle) | 2395 | (cons (+ big twiddle) |
| 2393 | (- small (* twiddle 65536)))))))) | 2396 | (- small (* twiddle 65536)))))))) |
| @@ -2807,7 +2810,7 @@ of." | |||
| 2807 | object))) | 2810 | object))) |
| 2808 | (cell root)) | 2811 | (cell root)) |
| 2809 | (while (cdr cell) | 2812 | (while (cdr cell) |
| 2810 | (if (and match (not (string-match match (caadr cell)))) | 2813 | (if (and match (not (string-match match (car (cadr cell))))) |
| 2811 | ;; Remove from list | 2814 | ;; Remove from list |
| 2812 | (setcdr cell (cddr cell)) | 2815 | (setcdr cell (cddr cell)) |
| 2813 | ;; Include in list | 2816 | ;; Include in list |
| @@ -3426,10 +3429,10 @@ This is like `dired-recursive-delete-directory' for tramp files." | |||
| 3426 | (defun tramp-handle-insert-directory | 3429 | (defun tramp-handle-insert-directory |
| 3427 | (filename switches &optional wildcard full-directory-p) | 3430 | (filename switches &optional wildcard full-directory-p) |
| 3428 | "Like `insert-directory' for tramp files." | 3431 | "Like `insert-directory' for tramp files." |
| 3429 | (if (and (boundp 'ls-lisp-use-insert-directory-program) | 3432 | (if (and (featurep 'ls-lisp) |
| 3430 | (not (symbol-value 'ls-lisp-use-insert-directory-program))) | 3433 | (not (symbol-value 'ls-lisp-use-insert-directory-program))) |
| 3431 | (tramp-run-real-handler 'insert-directory | 3434 | (tramp-run-real-handler |
| 3432 | (list filename switches wildcard full-directory-p)) | 3435 | 'insert-directory (list filename switches wildcard full-directory-p)) |
| 3433 | ;; For the moment, we assume that the remote "ls" program does not | 3436 | ;; For the moment, we assume that the remote "ls" program does not |
| 3434 | ;; grok "--dired". In the future, we should detect this on | 3437 | ;; grok "--dired". In the future, we should detect this on |
| 3435 | ;; connection setup. | 3438 | ;; connection setup. |
| @@ -3869,12 +3872,7 @@ This will break if COMMAND prints a newline, followed by the value of | |||
| 3869 | "Like `file-remote-p' for tramp files." | 3872 | "Like `file-remote-p' for tramp files." |
| 3870 | (when (tramp-tramp-file-p filename) | 3873 | (when (tramp-tramp-file-p filename) |
| 3871 | (with-parsed-tramp-file-name filename nil | 3874 | (with-parsed-tramp-file-name filename nil |
| 3872 | (make-tramp-file-name | 3875 | (vector multi-method method user host "")))) |
| 3873 | :multi-method multi-method | ||
| 3874 | :method method | ||
| 3875 | :user user | ||
| 3876 | :host host | ||
| 3877 | :localname "")))) | ||
| 3878 | 3876 | ||
| 3879 | (defun tramp-handle-insert-file-contents | 3877 | (defun tramp-handle-insert-file-contents |
| 3880 | (filename &optional visit beg end replace) | 3878 | (filename &optional visit beg end replace) |
| @@ -3919,7 +3917,7 @@ This will break if COMMAND prints a newline, followed by the value of | |||
| 3919 | (when (boundp 'last-coding-system-used) | 3917 | (when (boundp 'last-coding-system-used) |
| 3920 | (set 'last-coding-system-used coding-system-used)) | 3918 | (set 'last-coding-system-used coding-system-used)) |
| 3921 | (list (expand-file-name filename) | 3919 | (list (expand-file-name filename) |
| 3922 | (second result)))))) | 3920 | (cadr result)))))) |
| 3923 | 3921 | ||
| 3924 | 3922 | ||
| 3925 | (defun tramp-handle-find-backup-file-name (filename) | 3923 | (defun tramp-handle-find-backup-file-name (filename) |
| @@ -3978,7 +3976,8 @@ Returns a file name in `tramp-auto-save-directory' for autosaving this file." | |||
| 3978 | (when (and (string-match (car x) buffer-file-name) | 3976 | (when (and (string-match (car x) buffer-file-name) |
| 3979 | (not (car (cddr x)))) | 3977 | (not (car (cddr x)))) |
| 3980 | (setq tramp-auto-save-directory | 3978 | (setq tramp-auto-save-directory |
| 3981 | (or tramp-auto-save-directory temporary-file-directory)))) | 3979 | (or tramp-auto-save-directory |
| 3980 | (tramp-temporary-file-directory))))) | ||
| 3982 | (symbol-value 'auto-save-file-name-transforms))) | 3981 | (symbol-value 'auto-save-file-name-transforms))) |
| 3983 | ;; Create directory. | 3982 | ;; Create directory. |
| 3984 | (when tramp-auto-save-directory | 3983 | (when tramp-auto-save-directory |
| @@ -4566,7 +4565,7 @@ Falls back to normal file name handler if no tramp file name handler exists." | |||
| 4566 | (member (match-string 1 file) (mapcar 'car tramp-methods))) | 4565 | (member (match-string 1 file) (mapcar 'car tramp-methods))) |
| 4567 | ((or (equal last-input-event 'tab) | 4566 | ((or (equal last-input-event 'tab) |
| 4568 | ;; Emacs | 4567 | ;; Emacs |
| 4569 | (and (wholenump last-input-event) | 4568 | (and (natnump last-input-event) |
| 4570 | (or | 4569 | (or |
| 4571 | ;; ?\t has event-modifier 'control | 4570 | ;; ?\t has event-modifier 'control |
| 4572 | (char-equal last-input-event ?\t) | 4571 | (char-equal last-input-event ?\t) |
| @@ -4575,6 +4574,10 @@ Falls back to normal file name handler if no tramp file name handler exists." | |||
| 4575 | (char-equal last-input-event ?\ ))))) | 4574 | (char-equal last-input-event ?\ ))))) |
| 4576 | ;; XEmacs | 4575 | ;; XEmacs |
| 4577 | (and (featurep 'xemacs) | 4576 | (and (featurep 'xemacs) |
| 4577 | ;; `last-input-event' might be nil. | ||
| 4578 | (not (null last-input-event)) | ||
| 4579 | ;; `last-input-event' may have no character approximation. | ||
| 4580 | (funcall (symbol-function 'event-to-character) last-input-event) | ||
| 4578 | (or | 4581 | (or |
| 4579 | ;; ?\t has event-modifier 'control | 4582 | ;; ?\t has event-modifier 'control |
| 4580 | (char-equal | 4583 | (char-equal |
| @@ -4771,24 +4774,14 @@ remote host and localname (filename on remote host)." | |||
| 4771 | (match-string (nth 1 structure) name))) | 4774 | (match-string (nth 1 structure) name))) |
| 4772 | (if (and method (member method tramp-multi-methods)) | 4775 | (if (and method (member method tramp-multi-methods)) |
| 4773 | ;; Not handled (yet). | 4776 | ;; Not handled (yet). |
| 4774 | (make-tramp-file-name | 4777 | (vector method nil nil nil nil) |
| 4775 | :multi-method method | ||
| 4776 | :method nil | ||
| 4777 | :user nil | ||
| 4778 | :host nil | ||
| 4779 | :localname nil) | ||
| 4780 | (let ((user (and (nth 2 structure) | 4778 | (let ((user (and (nth 2 structure) |
| 4781 | (match-string (nth 2 structure) name))) | 4779 | (match-string (nth 2 structure) name))) |
| 4782 | (host (and (nth 3 structure) | 4780 | (host (and (nth 3 structure) |
| 4783 | (match-string (nth 3 structure) name))) | 4781 | (match-string (nth 3 structure) name))) |
| 4784 | (localname (and (nth 4 structure) | 4782 | (localname (and (nth 4 structure) |
| 4785 | (match-string (nth 4 structure) name)))) | 4783 | (match-string (nth 4 structure) name)))) |
| 4786 | (make-tramp-file-name | 4784 | (vector nil method user host localname))))))) |
| 4787 | :multi-method nil | ||
| 4788 | :method method | ||
| 4789 | :user user | ||
| 4790 | :host host | ||
| 4791 | :localname localname))))))) | ||
| 4792 | 4785 | ||
| 4793 | ;; This function returns all possible method completions, adding the | 4786 | ;; This function returns all possible method completions, adding the |
| 4794 | ;; trailing method delimeter. | 4787 | ;; trailing method delimeter. |
| @@ -5191,7 +5184,7 @@ USER the array of user names, HOST the array of host names." | |||
| 5191 | (aref user i) (aref host i)) | 5184 | (aref user i) (aref host i)) |
| 5192 | (format "%s@%s:" (aref method i) (aref host i))) | 5185 | (format "%s@%s:" (aref method i) (aref host i))) |
| 5193 | string-list)) | 5186 | string-list)) |
| 5194 | (incf i)) | 5187 | (setq i (1+ i))) |
| 5195 | (format "*%s/%s %s*" | 5188 | (format "*%s/%s %s*" |
| 5196 | prefix multi-method | 5189 | prefix multi-method |
| 5197 | (apply 'concat (reverse string-list))))) | 5190 | (apply 'concat (reverse string-list))))) |
| @@ -5928,7 +5921,7 @@ log in as u2 to h2." | |||
| 5928 | ;; is done here. | 5921 | ;; is done here. |
| 5929 | (funcall multi-func p m u h command) | 5922 | (funcall multi-func p m u h command) |
| 5930 | (erase-buffer) | 5923 | (erase-buffer) |
| 5931 | (incf i))) | 5924 | (setq i (1+ i)))) |
| 5932 | (tramp-open-connection-setup-interactive-shell | 5925 | (tramp-open-connection-setup-interactive-shell |
| 5933 | p multi-method method user host) | 5926 | p multi-method method user host) |
| 5934 | (tramp-post-connection multi-method method user host))))) | 5927 | (tramp-post-connection multi-method method user host))))) |
| @@ -6824,7 +6817,8 @@ If `tramp-discard-garbage' is nil, just erase buffer." | |||
| 6824 | 6817 | ||
| 6825 | (defun tramp-mode-string-to-int (mode-string) | 6818 | (defun tramp-mode-string-to-int (mode-string) |
| 6826 | "Converts a ten-letter `drwxrwxrwx'-style mode string into mode bits." | 6819 | "Converts a ten-letter `drwxrwxrwx'-style mode string into mode bits." |
| 6827 | (let* ((mode-chars (string-to-vector mode-string)) | 6820 | (let* (case-fold-search |
| 6821 | (mode-chars (string-to-vector mode-string)) | ||
| 6828 | (owner-read (aref mode-chars 1)) | 6822 | (owner-read (aref mode-chars 1)) |
| 6829 | (owner-write (aref mode-chars 2)) | 6823 | (owner-write (aref mode-chars 2)) |
| 6830 | (owner-execute-or-setid (aref mode-chars 3)) | 6824 | (owner-execute-or-setid (aref mode-chars 3)) |
| @@ -6836,45 +6830,61 @@ If `tramp-discard-garbage' is nil, just erase buffer." | |||
| 6836 | (other-execute-or-sticky (aref mode-chars 9))) | 6830 | (other-execute-or-sticky (aref mode-chars 9))) |
| 6837 | (save-match-data | 6831 | (save-match-data |
| 6838 | (logior | 6832 | (logior |
| 6839 | (case owner-read | 6833 | (cond |
| 6840 | (?r (tramp-octal-to-decimal "00400")) (?- 0) | 6834 | ((char-equal owner-read ?r) (tramp-octal-to-decimal "00400")) |
| 6841 | (t (error "Second char `%c' must be one of `r-'" owner-read))) | 6835 | ((char-equal owner-read ?-) 0) |
| 6842 | (case owner-write | 6836 | (t (error "Second char `%c' must be one of `r-'" owner-read))) |
| 6843 | (?w (tramp-octal-to-decimal "00200")) (?- 0) | 6837 | (cond |
| 6844 | (t (error "Third char `%c' must be one of `w-'" owner-write))) | 6838 | ((char-equal owner-write ?w) (tramp-octal-to-decimal "00200")) |
| 6845 | (case owner-execute-or-setid | 6839 | ((char-equal owner-write ?-) 0) |
| 6846 | (?x (tramp-octal-to-decimal "00100")) | 6840 | (t (error "Third char `%c' must be one of `w-'" owner-write))) |
| 6847 | (?S (tramp-octal-to-decimal "04000")) | 6841 | (cond |
| 6848 | (?s (tramp-octal-to-decimal "04100")) | 6842 | ((char-equal owner-execute-or-setid ?x) |
| 6849 | (?- 0) | 6843 | (tramp-octal-to-decimal "00100")) |
| 6850 | (t (error "Fourth char `%c' must be one of `xsS-'" | 6844 | ((char-equal owner-execute-or-setid ?S) |
| 6851 | owner-execute-or-setid))) | 6845 | (tramp-octal-to-decimal "04000")) |
| 6852 | (case group-read | 6846 | ((char-equal owner-execute-or-setid ?s) |
| 6853 | (?r (tramp-octal-to-decimal "00040")) (?- 0) | 6847 | (tramp-octal-to-decimal "04100")) |
| 6854 | (t (error "Fifth char `%c' must be one of `r-'" group-read))) | 6848 | ((char-equal owner-execute-or-setid ?-) 0) |
| 6855 | (case group-write | 6849 | (t (error "Fourth char `%c' must be one of `xsS-'" |
| 6856 | (?w (tramp-octal-to-decimal "00020")) (?- 0) | 6850 | owner-execute-or-setid))) |
| 6857 | (t (error "Sixth char `%c' must be one of `w-'" group-write))) | 6851 | (cond |
| 6858 | (case group-execute-or-setid | 6852 | ((char-equal group-read ?r) (tramp-octal-to-decimal "00040")) |
| 6859 | (?x (tramp-octal-to-decimal "00010")) | 6853 | ((char-equal group-read ?-) 0) |
| 6860 | (?S (tramp-octal-to-decimal "02000")) | 6854 | (t (error "Fifth char `%c' must be one of `r-'" group-read))) |
| 6861 | (?s (tramp-octal-to-decimal "02010")) | 6855 | (cond |
| 6862 | (?- 0) | 6856 | ((char-equal group-write ?w) (tramp-octal-to-decimal "00020")) |
| 6863 | (t (error "Seventh char `%c' must be one of `xsS-'" | 6857 | ((char-equal group-write ?-) 0) |
| 6864 | group-execute-or-setid))) | 6858 | (t (error "Sixth char `%c' must be one of `w-'" group-write))) |
| 6865 | (case other-read | 6859 | (cond |
| 6866 | (?r (tramp-octal-to-decimal "00004")) (?- 0) | 6860 | ((char-equal group-execute-or-setid ?x) |
| 6867 | (t (error "Eighth char `%c' must be one of `r-'" other-read))) | 6861 | (tramp-octal-to-decimal "00010")) |
| 6868 | (case other-write | 6862 | ((char-equal group-execute-or-setid ?S) |
| 6869 | (?w (tramp-octal-to-decimal "00002")) (?- 0) | 6863 | (tramp-octal-to-decimal "02000")) |
| 6864 | ((char-equal group-execute-or-setid ?s) | ||
| 6865 | (tramp-octal-to-decimal "02010")) | ||
| 6866 | ((char-equal group-execute-or-setid ?-) 0) | ||
| 6867 | (t (error "Seventh char `%c' must be one of `xsS-'" | ||
| 6868 | group-execute-or-setid))) | ||
| 6869 | (cond | ||
| 6870 | ((char-equal other-read ?r) | ||
| 6871 | (tramp-octal-to-decimal "00004")) | ||
| 6872 | ((char-equal other-read ?-) 0) | ||
| 6873 | (t (error "Eighth char `%c' must be one of `r-'" other-read))) | ||
| 6874 | (cond | ||
| 6875 | ((char-equal other-write ?w) (tramp-octal-to-decimal "00002")) | ||
| 6876 | ((char-equal other-write ?-) 0) | ||
| 6870 | (t (error "Nineth char `%c' must be one of `w-'" other-write))) | 6877 | (t (error "Nineth char `%c' must be one of `w-'" other-write))) |
| 6871 | (case other-execute-or-sticky | 6878 | (cond |
| 6872 | (?x (tramp-octal-to-decimal "00001")) | 6879 | ((char-equal other-execute-or-sticky ?x) |
| 6873 | (?T (tramp-octal-to-decimal "01000")) | 6880 | (tramp-octal-to-decimal "00001")) |
| 6874 | (?t (tramp-octal-to-decimal "01001")) | 6881 | ((char-equal other-execute-or-sticky ?T) |
| 6875 | (?- 0) | 6882 | (tramp-octal-to-decimal "01000")) |
| 6876 | (t (error "Tenth char `%c' must be one of `xtT-'" | 6883 | ((char-equal other-execute-or-sticky ?t) |
| 6877 | other-execute-or-sticky))))))) | 6884 | (tramp-octal-to-decimal "01001")) |
| 6885 | ((char-equal other-execute-or-sticky ?-) 0) | ||
| 6886 | (t (error "Tenth char `%c' must be one of `xtT-'" | ||
| 6887 | other-execute-or-sticky))))))) | ||
| 6878 | 6888 | ||
| 6879 | (defun tramp-convert-file-attributes (multi-method method user host attr) | 6889 | (defun tramp-convert-file-attributes (multi-method method user host attr) |
| 6880 | "Convert file-attributes ATTR generated by perl script or ls. | 6890 | "Convert file-attributes ATTR generated by perl script or ls. |
| @@ -6977,7 +6987,29 @@ Not actually used. Use `(format \"%o\" i)' instead?" | |||
| 6977 | ;; internal data structure. Convenience functions for internal | 6987 | ;; internal data structure. Convenience functions for internal |
| 6978 | ;; data structure. | 6988 | ;; data structure. |
| 6979 | 6989 | ||
| 6980 | (defstruct tramp-file-name multi-method method user host localname) | 6990 | (defun tramp-file-name-p (obj) |
| 6991 | "Check whether TRAMP-FILE-NAME is a Tramp object." | ||
| 6992 | (and (vectorp obj) (= 5 (length obj)))) | ||
| 6993 | |||
| 6994 | (defun tramp-file-name-multi-method (obj) | ||
| 6995 | "Return MULTI-METHOD component of TRAMP-FILE-NAME." | ||
| 6996 | (and (tramp-file-name-p obj) (aref obj 0))) | ||
| 6997 | |||
| 6998 | (defun tramp-file-name-method (obj) | ||
| 6999 | "Return METHOD component of TRAMP-FILE-NAME." | ||
| 7000 | (and (tramp-file-name-p obj) (aref obj 1))) | ||
| 7001 | |||
| 7002 | (defun tramp-file-name-user (obj) | ||
| 7003 | "Return USER component of TRAMP-FILE-NAME." | ||
| 7004 | (and (tramp-file-name-p obj) (aref obj 2))) | ||
| 7005 | |||
| 7006 | (defun tramp-file-name-host (obj) | ||
| 7007 | "Return HOST component of TRAMP-FILE-NAME." | ||
| 7008 | (and (tramp-file-name-p obj) (aref obj 3))) | ||
| 7009 | |||
| 7010 | (defun tramp-file-name-localname (obj) | ||
| 7011 | "Return LOCALNAME component of TRAMP-FILE-NAME." | ||
| 7012 | (and (tramp-file-name-p obj) (aref obj 4))) | ||
| 6981 | 7013 | ||
| 6982 | (defun tramp-tramp-file-p (name) | 7014 | (defun tramp-tramp-file-p (name) |
| 6983 | "Return t iff NAME is a tramp file." | 7015 | "Return t iff NAME is a tramp file." |
| @@ -7010,12 +7042,7 @@ localname (file name on remote host)." | |||
| 7010 | (let ((user (match-string (nth 2 tramp-file-name-structure) name)) | 7042 | (let ((user (match-string (nth 2 tramp-file-name-structure) name)) |
| 7011 | (host (match-string (nth 3 tramp-file-name-structure) name)) | 7043 | (host (match-string (nth 3 tramp-file-name-structure) name)) |
| 7012 | (localname (match-string (nth 4 tramp-file-name-structure) name))) | 7044 | (localname (match-string (nth 4 tramp-file-name-structure) name))) |
| 7013 | (make-tramp-file-name | 7045 | (vector nil method (or user nil) host localname)))))) |
| 7014 | :multi-method nil | ||
| 7015 | :method method | ||
| 7016 | :user (or user nil) | ||
| 7017 | :host host | ||
| 7018 | :localname localname)))))) | ||
| 7019 | 7046 | ||
| 7020 | (defun tramp-find-default-method (user host) | 7047 | (defun tramp-find-default-method (user host) |
| 7021 | "Look up the right method to use in `tramp-default-method-alist'." | 7048 | "Look up the right method to use in `tramp-default-method-alist'." |
| @@ -7055,7 +7082,7 @@ If both MULTI-METHOD and METHOD are nil, do a lookup in | |||
| 7055 | (setq method (match-string method-index name)) | 7082 | (setq method (match-string method-index name)) |
| 7056 | (setq hops (match-string hops-index name)) | 7083 | (setq hops (match-string hops-index name)) |
| 7057 | (setq len (/ (length (match-data t)) 2)) | 7084 | (setq len (/ (length (match-data t)) 2)) |
| 7058 | (when (< localname-index 0) (incf localname-index len)) | 7085 | (when (< localname-index 0) (setq localname-index (+ localname-index len))) |
| 7059 | (setq localname (match-string localname-index name)) | 7086 | (setq localname (match-string localname-index name)) |
| 7060 | (let ((index 0)) | 7087 | (let ((index 0)) |
| 7061 | (while (string-match hop-regexp hops index) | 7088 | (while (string-match hop-regexp hops index) |
| @@ -7066,12 +7093,12 @@ If both MULTI-METHOD and METHOD are nil, do a lookup in | |||
| 7066 | (cons (match-string hop-user-index hops) hop-users)) | 7093 | (cons (match-string hop-user-index hops) hop-users)) |
| 7067 | (setq hop-hosts | 7094 | (setq hop-hosts |
| 7068 | (cons (match-string hop-host-index hops) hop-hosts)))) | 7095 | (cons (match-string hop-host-index hops) hop-hosts)))) |
| 7069 | (make-tramp-file-name | 7096 | (vector |
| 7070 | :multi-method method | 7097 | method |
| 7071 | :method (apply 'vector (reverse hop-methods)) | 7098 | (apply 'vector (reverse hop-methods)) |
| 7072 | :user (apply 'vector (reverse hop-users)) | 7099 | (apply 'vector (reverse hop-users)) |
| 7073 | :host (apply 'vector (reverse hop-hosts)) | 7100 | (apply 'vector (reverse hop-hosts)) |
| 7074 | :localname localname))) | 7101 | localname))) |
| 7075 | 7102 | ||
| 7076 | (defun tramp-make-tramp-file-name (multi-method method user host localname) | 7103 | (defun tramp-make-tramp-file-name (multi-method method user host localname) |
| 7077 | "Constructs a tramp file name from METHOD, USER, HOST and LOCALNAME." | 7104 | "Constructs a tramp file name from METHOD, USER, HOST and LOCALNAME." |
| @@ -7103,7 +7130,7 @@ If both MULTI-METHOD and METHOD are nil, do a lookup in | |||
| 7103 | (let ((m (aref method i)) (u (aref user i)) (h (aref host i))) | 7130 | (let ((m (aref method i)) (u (aref user i)) (h (aref host i))) |
| 7104 | (setq hops (concat hops (format-spec hop-format | 7131 | (setq hops (concat hops (format-spec hop-format |
| 7105 | `((?m . ,m) (?u . ,u) (?h . ,h))))) | 7132 | `((?m . ,m) (?u . ,u) (?h . ,h))))) |
| 7106 | (incf i))) | 7133 | (setq i (1+ i)))) |
| 7107 | (concat prefix hops localname))) | 7134 | (concat prefix hops localname))) |
| 7108 | 7135 | ||
| 7109 | (defun tramp-make-copy-program-file-name (user host localname) | 7136 | (defun tramp-make-copy-program-file-name (user host localname) |
| @@ -7218,7 +7245,7 @@ as default." | |||
| 7218 | (assoc (tramp-find-method multi-method method user host) | 7245 | (assoc (tramp-find-method multi-method method user host) |
| 7219 | tramp-methods)))) | 7246 | tramp-methods)))) |
| 7220 | (if entry | 7247 | (if entry |
| 7221 | (second entry) | 7248 | (cadr entry) |
| 7222 | (symbol-value param)))) | 7249 | (symbol-value param)))) |
| 7223 | 7250 | ||
| 7224 | 7251 | ||
diff --git a/lisp/net/trampver.el b/lisp/net/trampver.el index 04f7bc754f2..485c58afa65 100644 --- a/lisp/net/trampver.el +++ b/lisp/net/trampver.el | |||
| @@ -30,7 +30,7 @@ | |||
| 30 | ;; are auto-frobbed from configure.ac, so you should edit that file and run | 30 | ;; are auto-frobbed from configure.ac, so you should edit that file and run |
| 31 | ;; "autoconf && ./configure" to change them. | 31 | ;; "autoconf && ./configure" to change them. |
| 32 | 32 | ||
| 33 | (defconst tramp-version "2.0.55" | 33 | (defconst tramp-version "2.0.56" |
| 34 | "This version of Tramp.") | 34 | "This version of Tramp.") |
| 35 | 35 | ||
| 36 | (defconst tramp-bug-report-address "tramp-devel@gnu.org" | 36 | (defconst tramp-bug-report-address "tramp-devel@gnu.org" |
diff --git a/lisp/net/webjump.el b/lisp/net/webjump.el index 7f4fce16bce..03ce6305196 100644 --- a/lisp/net/webjump.el +++ b/lisp/net/webjump.el | |||
| @@ -229,6 +229,8 @@ | |||
| 229 | ("Yahoo" . | 229 | ("Yahoo" . |
| 230 | [simple-query "www.yahoo.com" "search.yahoo.com/search?p=" ""]) | 230 | [simple-query "www.yahoo.com" "search.yahoo.com/search?p=" ""]) |
| 231 | ("Yahoo: Reference" . "www.yahoo.com/Reference/") | 231 | ("Yahoo: Reference" . "www.yahoo.com/Reference/") |
| 232 | ("Wikipedia" . | ||
| 233 | [simple-query "wikipedia.org" "wikipedia.org/wiki/" ""]) | ||
| 232 | 234 | ||
| 233 | ;; Misc. general interest. | 235 | ;; Misc. general interest. |
| 234 | ("Interactive Weather Information Network" . webjump-to-iwin) | 236 | ("Interactive Weather Information Network" . webjump-to-iwin) |
diff --git a/lisp/progmodes/idlwave.el b/lisp/progmodes/idlwave.el index 0556c87b43d..cf518b17d94 100644 --- a/lisp/progmodes/idlwave.el +++ b/lisp/progmodes/idlwave.el | |||
| @@ -4342,7 +4342,7 @@ catalog \('lib).") | |||
| 4342 | (defvar idlwave-true-path-alist nil | 4342 | (defvar idlwave-true-path-alist nil |
| 4343 | "Like `idlwave-path-alist', but with true filenames.") | 4343 | "Like `idlwave-path-alist', but with true filenames.") |
| 4344 | (defvar idlwave-routines nil | 4344 | (defvar idlwave-routines nil |
| 4345 | "Holds the combinded procedure/function/method routine-info.") | 4345 | "Holds the combined procedure/function/method routine-info.") |
| 4346 | (defvar idlwave-class-alist nil | 4346 | (defvar idlwave-class-alist nil |
| 4347 | "Holds the class names known to IDLWAVE.") | 4347 | "Holds the class names known to IDLWAVE.") |
| 4348 | (defvar idlwave-class-history nil | 4348 | (defvar idlwave-class-history nil |
| @@ -4846,7 +4846,7 @@ Gets set in cached XML rinfo, or `idlw-rinfo.el'.") | |||
| 4846 | ;; Create a sysvar list entry from the xml parsed list. | 4846 | ;; Create a sysvar list entry from the xml parsed list. |
| 4847 | (let* ((nameblock (nth 1 xml-entry)) | 4847 | (let* ((nameblock (nth 1 xml-entry)) |
| 4848 | (name (cdr (assq 'name nameblock))) | 4848 | (name (cdr (assq 'name nameblock))) |
| 4849 | (sysvar (substring name (progn (string-match "^ *!" name) | 4849 | (sysvar (substring name (progn (string-match "^ *!" name) |
| 4850 | (match-end 0)))) | 4850 | (match-end 0)))) |
| 4851 | (link (cdr (assq 'link nameblock))) | 4851 | (link (cdr (assq 'link nameblock))) |
| 4852 | (params (cddr xml-entry)) | 4852 | (params (cddr xml-entry)) |
diff --git a/lisp/textmodes/sgml-mode.el b/lisp/textmodes/sgml-mode.el index 7eabb10a80a..85f6ccff70a 100644 --- a/lisp/textmodes/sgml-mode.el +++ b/lisp/textmodes/sgml-mode.el | |||
| @@ -894,16 +894,19 @@ With prefix argument ARG, repeat this ARG times." | |||
| 894 | ;; Show preceding or following hidden tag, depending of cursor direction. | 894 | ;; Show preceding or following hidden tag, depending of cursor direction. |
| 895 | (let ((inhibit-point-motion-hooks t)) | 895 | (let ((inhibit-point-motion-hooks t)) |
| 896 | (save-excursion | 896 | (save-excursion |
| 897 | (message "Invisible tag: %s" | 897 | (condition-case nil |
| 898 | ;; Strip properties, otherwise, the text is invisible. | 898 | (message "Invisible tag: %s" |
| 899 | (buffer-substring-no-properties | 899 | ;; Strip properties, otherwise, the text is invisible. |
| 900 | (point) | 900 | (buffer-substring-no-properties |
| 901 | (if (or (and (> x y) | 901 | (point) |
| 902 | (not (eq (following-char) ?<))) | 902 | (if (or (and (> x y) |
| 903 | (and (< x y) | 903 | (not (eq (following-char) ?<))) |
| 904 | (eq (preceding-char) ?>))) | 904 | (and (< x y) |
| 905 | (backward-list) | 905 | (eq (preceding-char) ?>))) |
| 906 | (forward-list))))))) | 906 | (backward-list) |
| 907 | (forward-list)))) | ||
| 908 | (error nil))))) | ||
| 909 | |||
| 907 | 910 | ||
| 908 | 911 | ||
| 909 | (defun sgml-validate (command) | 912 | (defun sgml-validate (command) |
diff --git a/lisp/textmodes/table.el b/lisp/textmodes/table.el index c0a85eeb68c..69c3c60f912 100644 --- a/lisp/textmodes/table.el +++ b/lisp/textmodes/table.el | |||
| @@ -5333,21 +5333,25 @@ instead of the current buffer and returns the OBJECT." | |||
| 5333 | (defun table--point-entered-cell-function (&optional old-point new-point) | 5333 | (defun table--point-entered-cell-function (&optional old-point new-point) |
| 5334 | "Point has entered a cell. | 5334 | "Point has entered a cell. |
| 5335 | Refresh the menu bar." | 5335 | Refresh the menu bar." |
| 5336 | (unless table-cell-entered-state | 5336 | ;; Avoid calling point-motion-hooks recursively. |
| 5337 | (setq table-cell-entered-state t) | 5337 | (let ((inhibit-point-motion-hooks t)) |
| 5338 | (setq table-mode-indicator t) | 5338 | (unless table-cell-entered-state |
| 5339 | (force-mode-line-update) | 5339 | (setq table-cell-entered-state t) |
| 5340 | (table--warn-incompatibility) | 5340 | (setq table-mode-indicator t) |
| 5341 | (run-hooks 'table-point-entered-cell-hook))) | 5341 | (force-mode-line-update) |
| 5342 | (table--warn-incompatibility) | ||
| 5343 | (run-hooks 'table-point-entered-cell-hook)))) | ||
| 5342 | 5344 | ||
| 5343 | (defun table--point-left-cell-function (&optional old-point new-point) | 5345 | (defun table--point-left-cell-function (&optional old-point new-point) |
| 5344 | "Point has left a cell. | 5346 | "Point has left a cell. |
| 5345 | Refresh the menu bar." | 5347 | Refresh the menu bar." |
| 5346 | (when table-cell-entered-state | 5348 | ;; Avoid calling point-motion-hooks recursively. |
| 5347 | (setq table-cell-entered-state nil) | 5349 | (let ((inhibit-point-motion-hooks t)) |
| 5348 | (setq table-mode-indicator nil) | 5350 | (when table-cell-entered-state |
| 5349 | (force-mode-line-update) | 5351 | (setq table-cell-entered-state nil) |
| 5350 | (run-hooks 'table-point-left-cell-hook))) | 5352 | (setq table-mode-indicator nil) |
| 5353 | (force-mode-line-update) | ||
| 5354 | (run-hooks 'table-point-left-cell-hook)))) | ||
| 5351 | 5355 | ||
| 5352 | (defun table--warn-incompatibility () | 5356 | (defun table--warn-incompatibility () |
| 5353 | "If called from interactive operation warn the know incompatibilities. | 5357 | "If called from interactive operation warn the know incompatibilities. |
diff --git a/lisp/url/ChangeLog b/lisp/url/ChangeLog index 8c53d49fdd1..d9efd3a4540 100644 --- a/lisp/url/ChangeLog +++ b/lisp/url/ChangeLog | |||
| @@ -1,3 +1,9 @@ | |||
| 1 | 2007-05-29 Chong Yidong <cyd@stupidchicken.com> | ||
| 2 | |||
| 3 | * url-mailto.el (url-mailto): Insert body after | ||
| 4 | mail-header-separator if present, so that it is before signature. | ||
| 5 | Suggested by Leo <sdl.web@gmail.com>. | ||
| 6 | |||
| 1 | 2007-04-15 Chong Yidong <cyd@stupidchicken.com> | 7 | 2007-04-15 Chong Yidong <cyd@stupidchicken.com> |
| 2 | 8 | ||
| 3 | * url-parse.el (url-generic-parse-url): Revert 2006-10-09 changes. | 9 | * url-parse.el (url-generic-parse-url): Revert 2006-10-09 changes. |
diff --git a/lisp/url/url-mailto.el b/lisp/url/url-mailto.el index 9f20989a0b1..6585ba8e458 100644 --- a/lisp/url/url-mailto.el +++ b/lisp/url/url-mailto.el | |||
| @@ -100,7 +100,9 @@ | |||
| 100 | (while args | 100 | (while args |
| 101 | (if (string= (caar args) "body") | 101 | (if (string= (caar args) "body") |
| 102 | (progn | 102 | (progn |
| 103 | (goto-char (point-max)) | 103 | (goto-char (point-min)) |
| 104 | (or (search-forward (concat "\n" mail-header-separator "\n") nil t) | ||
| 105 | (goto-char (point-max))) | ||
| 104 | (insert (mapconcat | 106 | (insert (mapconcat |
| 105 | #'(lambda (string) | 107 | #'(lambda (string) |
| 106 | (replace-regexp-in-string "\r\n" "\n" string)) | 108 | (replace-regexp-in-string "\r\n" "\n" string)) |
diff --git a/lispref/ChangeLog b/lispref/ChangeLog index 1092346448e..a9d931d3140 100644 --- a/lispref/ChangeLog +++ b/lispref/ChangeLog | |||
| @@ -1,3 +1,9 @@ | |||
| 1 | 2007-05-30 Nick Roberts <nickrob@snap.net.nz> | ||
| 2 | |||
| 3 | * commands.texi (Click Events): Layout more logically. Describe | ||
| 4 | width and height. | ||
| 5 | (Drag Events, Motion Events): Update to new format for position. | ||
| 6 | |||
| 1 | 2007-05-12 Richard Stallman <rms@gnu.org> | 7 | 2007-05-12 Richard Stallman <rms@gnu.org> |
| 2 | 8 | ||
| 3 | * text.texi (Margins): indent-to-left-margin is not the default. | 9 | * text.texi (Margins): indent-to-left-margin is not the default. |
diff --git a/lispref/commands.texi b/lispref/commands.texi index 8354346c35e..10f4555e1f0 100644 --- a/lispref/commands.texi +++ b/lispref/commands.texi | |||
| @@ -1196,12 +1196,7 @@ describe events by their types; thus, if there is a key binding for | |||
| 1196 | @item @var{position} | 1196 | @item @var{position} |
| 1197 | This is the position where the mouse click occurred. The actual | 1197 | This is the position where the mouse click occurred. The actual |
| 1198 | format of @var{position} depends on what part of a window was clicked | 1198 | format of @var{position} depends on what part of a window was clicked |
| 1199 | on. The various formats are described below. | 1199 | on. |
| 1200 | |||
| 1201 | @item @var{click-count} | ||
| 1202 | This is the number of rapid repeated presses so far of the same mouse | ||
| 1203 | button. @xref{Repeat Events}. | ||
| 1204 | @end table | ||
| 1205 | 1200 | ||
| 1206 | For mouse click events in the text area, mode line, header line, or in | 1201 | For mouse click events in the text area, mode line, header line, or in |
| 1207 | the marginal areas, @var{position} has this form: | 1202 | the marginal areas, @var{position} has this form: |
| @@ -1223,6 +1218,12 @@ which the click occurred. It is one of the symbols @code{mode-line}, | |||
| 1223 | @code{header-line}, @code{vertical-line}, @code{left-margin}, | 1218 | @code{header-line}, @code{vertical-line}, @code{left-margin}, |
| 1224 | @code{right-margin}, @code{left-fringe}, or @code{right-fringe}. | 1219 | @code{right-margin}, @code{left-fringe}, or @code{right-fringe}. |
| 1225 | 1220 | ||
| 1221 | In one special case, @var{pos-or-area} is a list containing a symbol (one | ||
| 1222 | of the symbols listed above) instead of just the symbol. This happens | ||
| 1223 | after the imaginary prefix keys for the event are inserted into the | ||
| 1224 | input stream. @xref{Key Sequence Input}. | ||
| 1225 | |||
| 1226 | |||
| 1226 | @item @var{x}, @var{y} | 1227 | @item @var{x}, @var{y} |
| 1227 | These are the pixel-denominated coordinates of the click, relative to | 1228 | These are the pixel-denominated coordinates of the click, relative to |
| 1228 | the top left corner of @var{window}, which is @code{(0 . 0)}. | 1229 | the top left corner of @var{window}, which is @code{(0 . 0)}. |
| @@ -1238,6 +1239,7 @@ This is the object on which the click occurred. It is either | |||
| 1238 | (@var{string} . @var{string-pos}) when there is a string-type text | 1239 | (@var{string} . @var{string-pos}) when there is a string-type text |
| 1239 | property at the click position. | 1240 | property at the click position. |
| 1240 | 1241 | ||
| 1242 | @table @asis | ||
| 1241 | @item @var{string} | 1243 | @item @var{string} |
| 1242 | This is the string on which the click occurred, including any | 1244 | This is the string on which the click occurred, including any |
| 1243 | properties. | 1245 | properties. |
| @@ -1245,6 +1247,7 @@ properties. | |||
| 1245 | @item @var{string-pos} | 1247 | @item @var{string-pos} |
| 1246 | This is the position in the string on which the click occurred, | 1248 | This is the position in the string on which the click occurred, |
| 1247 | relevant if properties at the click need to be looked up. | 1249 | relevant if properties at the click need to be looked up. |
| 1250 | @end table | ||
| 1248 | 1251 | ||
| 1249 | @item @var{text-pos} | 1252 | @item @var{text-pos} |
| 1250 | For clicks on a marginal area or on a fringe, this is the buffer | 1253 | For clicks on a marginal area or on a fringe, this is the buffer |
| @@ -1267,8 +1270,12 @@ These are the pixel-denominated coordinates of the click, relative to | |||
| 1267 | the top left corner of @var{object}, which is @code{(0 . 0)}. If | 1270 | the top left corner of @var{object}, which is @code{(0 . 0)}. If |
| 1268 | @var{object} is @code{nil}, the coordinates are relative to the top | 1271 | @var{object} is @code{nil}, the coordinates are relative to the top |
| 1269 | left corner of the character glyph clicked on. | 1272 | left corner of the character glyph clicked on. |
| 1270 | @end table | ||
| 1271 | 1273 | ||
| 1274 | @item @var{width}, @var{height} | ||
| 1275 | These are the pixel-denominated width and height of @var{object}. | ||
| 1276 | @end table | ||
| 1277 | |||
| 1278 | @sp 1 | ||
| 1272 | For mouse clicks on a scroll-bar, @var{position} has this form: | 1279 | For mouse clicks on a scroll-bar, @var{position} has this form: |
| 1273 | 1280 | ||
| 1274 | @example | 1281 | @example |
| @@ -1299,10 +1306,10 @@ of the symbols @code{above-handle}, @code{handle}, @code{below-handle}, | |||
| 1299 | @code{up}, @code{down}, @code{top}, @code{bottom}, and @code{end-scroll}. | 1306 | @code{up}, @code{down}, @code{top}, @code{bottom}, and @code{end-scroll}. |
| 1300 | @end table | 1307 | @end table |
| 1301 | 1308 | ||
| 1302 | In one special case, @var{buffer-pos} is a list containing a symbol (one | 1309 | @item @var{click-count} |
| 1303 | of the symbols listed above) instead of just the symbol. This happens | 1310 | This is the number of rapid repeated presses so far of the same mouse |
| 1304 | after the imaginary prefix keys for the event are inserted into the | 1311 | button. @xref{Repeat Events}. |
| 1305 | input stream. @xref{Key Sequence Input}. | 1312 | @end table |
| 1306 | 1313 | ||
| 1307 | @node Drag Events | 1314 | @node Drag Events |
| 1308 | @subsection Drag Events | 1315 | @subsection Drag Events |
| @@ -1318,19 +1325,18 @@ position and the final position, like this: | |||
| 1318 | 1325 | ||
| 1319 | @example | 1326 | @example |
| 1320 | (@var{event-type} | 1327 | (@var{event-type} |
| 1321 | (@var{window1} @var{buffer-pos1} (@var{x1} . @var{y1}) @var{timestamp1}) | 1328 | (@var{window1} START-POSITION) |
| 1322 | (@var{window2} @var{buffer-pos2} (@var{x2} . @var{y2}) @var{timestamp2}) | 1329 | (@var{window2} END-POSITION)) |
| 1323 | @var{click-count}) | ||
| 1324 | @end example | 1330 | @end example |
| 1325 | 1331 | ||
| 1326 | For a drag event, the name of the symbol @var{event-type} contains the | 1332 | For a drag event, the name of the symbol @var{event-type} contains the |
| 1327 | prefix @samp{drag-}. For example, dragging the mouse with button 2 held | 1333 | prefix @samp{drag-}. For example, dragging the mouse with button 2 |
| 1328 | down generates a @code{drag-mouse-2} event. The second and third | 1334 | held down generates a @code{drag-mouse-2} event. The second and third |
| 1329 | elements of the event give the starting and ending position of the drag. | 1335 | elements of the event give the starting and ending position of the |
| 1330 | Aside from that, the data have the same meanings as in a click event | 1336 | drag. They have the same form as @var{position} in a click event |
| 1331 | (@pxref{Click Events}). You can access the second element of any mouse | 1337 | (@pxref{Click Events}) that is not on the scroll bar part of the |
| 1332 | event in the same way, with no need to distinguish drag events from | 1338 | window. You can access the second element of any mouse event in the |
| 1333 | others. | 1339 | same way, with no need to distinguish drag events from others. |
| 1334 | 1340 | ||
| 1335 | The @samp{drag-} prefix follows the modifier key prefixes such as | 1341 | The @samp{drag-} prefix follows the modifier key prefixes such as |
| 1336 | @samp{C-} and @samp{M-}. | 1342 | @samp{C-} and @samp{M-}. |
| @@ -1470,7 +1476,7 @@ of the mouse without any button activity. Mouse motion events are | |||
| 1470 | represented by lists that look like this: | 1476 | represented by lists that look like this: |
| 1471 | 1477 | ||
| 1472 | @example | 1478 | @example |
| 1473 | (mouse-movement (@var{window} @var{buffer-pos} (@var{x} . @var{y}) @var{timestamp})) | 1479 | (mouse-movement (POSITION)) |
| 1474 | @end example | 1480 | @end example |
| 1475 | 1481 | ||
| 1476 | The second element of the list describes the current position of the | 1482 | The second element of the list describes the current position of the |
diff --git a/man/ChangeLog b/man/ChangeLog index e4dd9d18a8c..d6ebb72db4b 100644 --- a/man/ChangeLog +++ b/man/ChangeLog | |||
| @@ -1,3 +1,14 @@ | |||
| 1 | 2007-05-28 Michael Albinus <michael.albinus@gmx.de> | ||
| 2 | |||
| 3 | Sync with Tramp 2.0.56. | ||
| 4 | |||
| 5 | * tramp.texi (Frequently Asked Questions): Improve ~/.zshrc | ||
| 6 | settings. Reported by Ted Zlatanov <tzz@lifelogs.com>. | ||
| 7 | |||
| 8 | 2007-05-26 Michael Olson <mwolson@gnu.org> | ||
| 9 | |||
| 10 | * erc.texi (Modules): Fix references to completion modules. | ||
| 11 | |||
| 1 | 2007-05-09 Reiner Steib <Reiner.Steib@gmx.de> | 12 | 2007-05-09 Reiner Steib <Reiner.Steib@gmx.de> |
| 2 | 13 | ||
| 3 | * gnus.texi (Running NNDiary): Use ~/.gnus.el instead of gnusrc. | 14 | * gnus.texi (Running NNDiary): Use ~/.gnus.el instead of gnusrc. |
diff --git a/man/erc.texi b/man/erc.texi index 72561b33072..3e52bb42c92 100644 --- a/man/erc.texi +++ b/man/erc.texi | |||
| @@ -564,7 +564,8 @@ Buttonize URLs, nicknames, and other text | |||
| 564 | Mark unidentified users on freenode and other servers supporting CAPAB. | 564 | Mark unidentified users on freenode and other servers supporting CAPAB. |
| 565 | 565 | ||
| 566 | @cindex modules, completion | 566 | @cindex modules, completion |
| 567 | @item pcomplete | 567 | @cindex modules, pcomplete |
| 568 | @item completion (aka pcomplete) | ||
| 568 | Complete nicknames and commands (programmable) | 569 | Complete nicknames and commands (programmable) |
| 569 | 570 | ||
| 570 | @cindex modules, fill | 571 | @cindex modules, fill |
| @@ -572,7 +573,7 @@ Complete nicknames and commands (programmable) | |||
| 572 | Wrap long lines | 573 | Wrap long lines |
| 573 | 574 | ||
| 574 | @cindex modules, hecomplete | 575 | @cindex modules, hecomplete |
| 575 | @item completion | 576 | @item hecomplete |
| 576 | Complete nicknames and commands (old). This is the old module---you | 577 | Complete nicknames and commands (old). This is the old module---you |
| 577 | might prefer the ``completion'' module instead. | 578 | might prefer the ``completion'' module instead. |
| 578 | 579 | ||
diff --git a/man/tramp.texi b/man/tramp.texi index 7acef2663e4..67b0647787c 100644 --- a/man/tramp.texi +++ b/man/tramp.texi | |||
| @@ -2051,7 +2051,11 @@ setting the regular expression detecting the prompt. | |||
| 2051 | A special problem is the zsh, which uses left-hand side and right-hand | 2051 | A special problem is the zsh, which uses left-hand side and right-hand |
| 2052 | side prompts in parallel. Therefore, it is necessary to disable the | 2052 | side prompts in parallel. Therefore, it is necessary to disable the |
| 2053 | zsh line editor on the remote host. You shall add to @file{~/.zshrc} | 2053 | zsh line editor on the remote host. You shall add to @file{~/.zshrc} |
| 2054 | the following command: @command{[ $TERM = "dumb" ] && unsetopt zle}. | 2054 | the following command: |
| 2055 | |||
| 2056 | @example | ||
| 2057 | [ $TERM = "dumb" ] && unsetopt zle && PS1='$ ' | ||
| 2058 | @end example | ||
| 2055 | 2059 | ||
| 2056 | @item | 2060 | @item |
| 2057 | @value{tramp} doesn't transfer strings with more than 500 characters | 2061 | @value{tramp} doesn't transfer strings with more than 500 characters |
diff --git a/man/trampver.texi b/man/trampver.texi index c512de4c74b..6c770dc8ad1 100644 --- a/man/trampver.texi +++ b/man/trampver.texi | |||
| @@ -9,7 +9,7 @@ | |||
| 9 | @c In the Tramp CVS, the version number is auto-frobbed from | 9 | @c In the Tramp CVS, the version number is auto-frobbed from |
| 10 | @c configure.ac, so you should edit that file and run | 10 | @c configure.ac, so you should edit that file and run |
| 11 | @c "autoconf && ./configure" to change the version number. | 11 | @c "autoconf && ./configure" to change the version number. |
| 12 | @set trampver 2.0.55 | 12 | @set trampver 2.0.56 |
| 13 | 13 | ||
| 14 | @c Other flags from configuration | 14 | @c Other flags from configuration |
| 15 | @set prefix /usr/local | 15 | @set prefix /usr/local |
diff --git a/oldXMenu/ChangeLog b/oldXMenu/ChangeLog index c92563d3bc2..9a7f01ed901 100644 --- a/oldXMenu/ChangeLog +++ b/oldXMenu/ChangeLog | |||
| @@ -1,3 +1,7 @@ | |||
| 1 | 2007-05-30 Ulrich Mueller <ulm@gentoo.org> (tiny change) | ||
| 2 | |||
| 3 | * XMakeAssoc.c (XMakeAssoc): Use malloc rather than xmalloc. | ||
| 4 | |||
| 1 | 2007-02-27 Glenn Morris <rgm@gnu.org> | 5 | 2007-02-27 Glenn Morris <rgm@gnu.org> |
| 2 | 6 | ||
| 3 | * Imakefile: Remove unused file with no explicit legal info. | 7 | * Imakefile: Remove unused file with no explicit legal info. |
diff --git a/oldXMenu/XMakeAssoc.c b/oldXMenu/XMakeAssoc.c index d443084ac13..cf039c8f3c1 100644 --- a/oldXMenu/XMakeAssoc.c +++ b/oldXMenu/XMakeAssoc.c | |||
| @@ -81,7 +81,7 @@ XMakeAssoc(dpy, table, x_id, data) | |||
| 81 | /* If we are here then the new entry should be inserted just */ | 81 | /* If we are here then the new entry should be inserted just */ |
| 82 | /* before the current value of "Entry". */ | 82 | /* before the current value of "Entry". */ |
| 83 | /* Create a new XAssoc and load it with new provided data. */ | 83 | /* Create a new XAssoc and load it with new provided data. */ |
| 84 | new_entry = (XAssoc *) xmalloc(sizeof(XAssoc)); | 84 | new_entry = (XAssoc *) malloc(sizeof(XAssoc)); |
| 85 | new_entry->display = dpy; | 85 | new_entry->display = dpy; |
| 86 | new_entry->x_id = x_id; | 86 | new_entry->x_id = x_id; |
| 87 | new_entry->data = data; | 87 | new_entry->data = data; |
diff --git a/src/ChangeLog b/src/ChangeLog index bafb3991d2e..31b8f51bf18 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,21 @@ | |||
| 1 | 2007-05-28 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> | ||
| 2 | |||
| 3 | * xdisp.c (redisplay_internal): Bind inhibit-point-motion-hooks to t | ||
| 4 | around current_column call. | ||
| 5 | |||
| 6 | 2007-05-26 Dan Nicolaescu <dann@ics.uci.edu> | ||
| 7 | |||
| 8 | * xfaces.c (syms_of_xfaces): Delete stray semicolon. | ||
| 9 | * xdisp.c (next_element_from_buffer): | ||
| 10 | * window.c (delete_window): | ||
| 11 | * term.c (term_mouse_highlight): | ||
| 12 | * msdos.c (getdefdir): | ||
| 13 | * macterm.c (mac_create_bitmap_from_bitmap_data) | ||
| 14 | (init_font_name_table): | ||
| 15 | * fns.c (Fsxhash): | ||
| 16 | * data.c (Fmake_local_variable): | ||
| 17 | * ccl.c (ccl_driver): Likewise. | ||
| 18 | |||
| 1 | 2007-05-24 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> | 19 | 2007-05-24 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> |
| 2 | 20 | ||
| 3 | * macterm.c [USE_CARBON_EVENTS] (mac_handle_window_event): | 21 | * macterm.c [USE_CARBON_EVENTS] (mac_handle_window_event): |
| @@ -1222,7 +1222,7 @@ ccl_driver (ccl, source, destination, src_size, dst_size, charset_list) | |||
| 1222 | case CCL_MOD: reg[rrr] = i % j; break; | 1222 | case CCL_MOD: reg[rrr] = i % j; break; |
| 1223 | case CCL_AND: reg[rrr] = i & j; break; | 1223 | case CCL_AND: reg[rrr] = i & j; break; |
| 1224 | case CCL_OR: reg[rrr] = i | j; break; | 1224 | case CCL_OR: reg[rrr] = i | j; break; |
| 1225 | case CCL_XOR: reg[rrr] = i ^ j;; break; | 1225 | case CCL_XOR: reg[rrr] = i ^ j; break; |
| 1226 | case CCL_LSH: reg[rrr] = i << j; break; | 1226 | case CCL_LSH: reg[rrr] = i << j; break; |
| 1227 | case CCL_RSH: reg[rrr] = i >> j; break; | 1227 | case CCL_RSH: reg[rrr] = i >> j; break; |
| 1228 | case CCL_LSH8: reg[rrr] = (i << 8) | j; break; | 1228 | case CCL_LSH8: reg[rrr] = (i << 8) | j; break; |
diff --git a/src/data.c b/src/data.c index af166329f81..32e5a6892aa 100644 --- a/src/data.c +++ b/src/data.c | |||
| @@ -1575,7 +1575,7 @@ Instead, use `add-hook' and specify t for the LOCAL argument. */) | |||
| 1575 | XBUFFER_LOCAL_VALUE (newval)->found_for_frame = 0; | 1575 | XBUFFER_LOCAL_VALUE (newval)->found_for_frame = 0; |
| 1576 | XBUFFER_LOCAL_VALUE (newval)->check_frame = 0; | 1576 | XBUFFER_LOCAL_VALUE (newval)->check_frame = 0; |
| 1577 | XBUFFER_LOCAL_VALUE (newval)->cdr = tem; | 1577 | XBUFFER_LOCAL_VALUE (newval)->cdr = tem; |
| 1578 | SET_SYMBOL_VALUE (variable, newval);; | 1578 | SET_SYMBOL_VALUE (variable, newval); |
| 1579 | } | 1579 | } |
| 1580 | /* Make sure this buffer has its own value of symbol. */ | 1580 | /* Make sure this buffer has its own value of symbol. */ |
| 1581 | tem = Fassq (variable, current_buffer->local_var_alist); | 1581 | tem = Fassq (variable, current_buffer->local_var_alist); |
| @@ -4585,7 +4585,7 @@ DEFUN ("sxhash", Fsxhash, Ssxhash, 1, 1, 0, | |||
| 4585 | (obj) | 4585 | (obj) |
| 4586 | Lisp_Object obj; | 4586 | Lisp_Object obj; |
| 4587 | { | 4587 | { |
| 4588 | unsigned hash = sxhash (obj, 0);; | 4588 | unsigned hash = sxhash (obj, 0); |
| 4589 | return make_number (hash); | 4589 | return make_number (hash); |
| 4590 | } | 4590 | } |
| 4591 | 4591 | ||
diff --git a/src/frame.c b/src/frame.c index 284b04494a8..4b26e087c85 100644 --- a/src/frame.c +++ b/src/frame.c | |||
| @@ -1549,6 +1549,13 @@ before calling this function on it, like this. | |||
| 1549 | Fselect_frame (frame); | 1549 | Fselect_frame (frame); |
| 1550 | mouse_moveto (XINT (x), XINT (y)); | 1550 | mouse_moveto (XINT (x), XINT (y)); |
| 1551 | } | 1551 | } |
| 1552 | #else | ||
| 1553 | #ifdef HAVE_GPM | ||
| 1554 | { | ||
| 1555 | Fselect_frame (frame); | ||
| 1556 | term_mouse_moveto (XINT (x), XINT (y)); | ||
| 1557 | } | ||
| 1558 | #endif | ||
| 1552 | #endif | 1559 | #endif |
| 1553 | #endif | 1560 | #endif |
| 1554 | 1561 | ||
diff --git a/src/macterm.c b/src/macterm.c index f7b375c22da..64b4e094d14 100644 --- a/src/macterm.c +++ b/src/macterm.c | |||
| @@ -736,7 +736,7 @@ mac_create_bitmap_from_bitmap_data (bitmap, bits, w, h) | |||
| 736 | /* Bitswap XBM bytes to match how Mac does things. */ | 736 | /* Bitswap XBM bytes to match how Mac does things. */ |
| 737 | unsigned char c = *bits++; | 737 | unsigned char c = *bits++; |
| 738 | *p++ = (unsigned char)((swap_nibble[c & 0xf] << 4) | 738 | *p++ = (unsigned char)((swap_nibble[c & 0xf] << 4) |
| 739 | | (swap_nibble[(c>>4) & 0xf]));; | 739 | | (swap_nibble[(c>>4) & 0xf])); |
| 740 | } | 740 | } |
| 741 | } | 741 | } |
| 742 | 742 | ||
| @@ -7577,7 +7577,7 @@ init_font_name_table () | |||
| 7577 | make_hash_table (Qequal, make_number (DEFAULT_HASH_SIZE), | 7577 | make_hash_table (Qequal, make_number (DEFAULT_HASH_SIZE), |
| 7578 | make_float (DEFAULT_REHASH_SIZE), | 7578 | make_float (DEFAULT_REHASH_SIZE), |
| 7579 | make_float (DEFAULT_REHASH_THRESHOLD), | 7579 | make_float (DEFAULT_REHASH_THRESHOLD), |
| 7580 | Qnil, Qnil, Qnil);; | 7580 | Qnil, Qnil, Qnil); |
| 7581 | h = XHASH_TABLE (atsu_font_id_hash); | 7581 | h = XHASH_TABLE (atsu_font_id_hash); |
| 7582 | 7582 | ||
| 7583 | err = ATSUFontCount (&nfonts); | 7583 | err = ATSUFontCount (&nfonts); |
diff --git a/src/msdos.c b/src/msdos.c index d40aafdcb34..151aec5561d 100644 --- a/src/msdos.c +++ b/src/msdos.c | |||
| @@ -1584,7 +1584,7 @@ IT_note_mouse_highlight (struct frame *f, int x, int y) | |||
| 1584 | { | 1584 | { |
| 1585 | extern Lisp_Object Qmouse_face; | 1585 | extern Lisp_Object Qmouse_face; |
| 1586 | Lisp_Object mouse_face, overlay, position, *overlay_vec; | 1586 | Lisp_Object mouse_face, overlay, position, *overlay_vec; |
| 1587 | int noverlays, obegv, ozv;; | 1587 | int noverlays, obegv, ozv; |
| 1588 | struct buffer *obuf; | 1588 | struct buffer *obuf; |
| 1589 | 1589 | ||
| 1590 | /* If we get an out-of-range value, return now; avoid an error. */ | 1590 | /* If we get an out-of-range value, return now; avoid an error. */ |
| @@ -4071,7 +4071,7 @@ getdefdir (drive, dst) | |||
| 4071 | int drive; | 4071 | int drive; |
| 4072 | char *dst; | 4072 | char *dst; |
| 4073 | { | 4073 | { |
| 4074 | char in_path[4], *p = in_path, e = errno;; | 4074 | char in_path[4], *p = in_path, e = errno; |
| 4075 | 4075 | ||
| 4076 | /* Generate "X:." (when drive is X) or "." (when drive is 0). */ | 4076 | /* Generate "X:." (when drive is X) or "." (when drive is 0). */ |
| 4077 | if (drive != 0) | 4077 | if (drive != 0) |
diff --git a/src/sysdep.c b/src/sysdep.c index 202cab4abd2..95ad90c2a1b 100644 --- a/src/sysdep.c +++ b/src/sysdep.c | |||
| @@ -1679,7 +1679,7 @@ init_sys_modes () | |||
| 1679 | if (term_gpm) | 1679 | if (term_gpm) |
| 1680 | { | 1680 | { |
| 1681 | fcntl (gpm_fd, F_SETOWN, getpid ()); | 1681 | fcntl (gpm_fd, F_SETOWN, getpid ()); |
| 1682 | fcntl (gpm_fd, F_SETFL, O_NONBLOCK); | 1682 | fcntl (gpm_fd, F_SETFL, fcntl (gpm_fd, F_GETFL, 0) | O_NONBLOCK); |
| 1683 | init_sigio (gpm_fd); | 1683 | init_sigio (gpm_fd); |
| 1684 | } | 1684 | } |
| 1685 | #endif /* HAVE_GPM */ | 1685 | #endif /* HAVE_GPM */ |
diff --git a/src/term.c b/src/term.c index b8e972043a4..f23963cc39c 100644 --- a/src/term.c +++ b/src/term.c | |||
| @@ -427,7 +427,7 @@ int term_gpm = 0; | |||
| 427 | static int mouse_face_beg_row, mouse_face_beg_col; | 427 | static int mouse_face_beg_row, mouse_face_beg_col; |
| 428 | static int mouse_face_end_row, mouse_face_end_col; | 428 | static int mouse_face_end_row, mouse_face_end_col; |
| 429 | static int mouse_face_past_end; | 429 | static int mouse_face_past_end; |
| 430 | static Lisp_Object mouse_face_window; | 430 | static Lisp_Object Qmouse_face_window; |
| 431 | static int mouse_face_face_id; | 431 | static int mouse_face_face_id; |
| 432 | 432 | ||
| 433 | /* FRAME and X, Y position of mouse when last checked for | 433 | /* FRAME and X, Y position of mouse when last checked for |
| @@ -2494,10 +2494,23 @@ set_tty_color_mode (f, val) | |||
| 2494 | ***********************************************************************/ | 2494 | ***********************************************************************/ |
| 2495 | 2495 | ||
| 2496 | #ifdef HAVE_GPM | 2496 | #ifdef HAVE_GPM |
| 2497 | void term_mouse_moveto (int x, int y) | ||
| 2498 | { | ||
| 2499 | const char *name; | ||
| 2500 | int fd; | ||
| 2501 | name = (const char *) ttyname (0); | ||
| 2502 | fd = open (name, O_WRONLY); | ||
| 2503 | /* TODO: how to set mouse position? | ||
| 2504 | SOME_FUNCTION (x, y, fd); */ | ||
| 2505 | close (fd); | ||
| 2506 | last_mouse_x = x; | ||
| 2507 | last_mouse_y = y; | ||
| 2508 | } | ||
| 2509 | |||
| 2497 | static void | 2510 | static void |
| 2498 | term_show_mouse_face (enum draw_glyphs_face draw) | 2511 | term_show_mouse_face (enum draw_glyphs_face draw) |
| 2499 | { | 2512 | { |
| 2500 | struct window *w = XWINDOW (mouse_face_window); | 2513 | struct window *w = XWINDOW (Qmouse_face_window); |
| 2501 | int save_x, save_y; | 2514 | int save_x, save_y; |
| 2502 | int i, j; | 2515 | int i, j; |
| 2503 | 2516 | ||
| @@ -2573,12 +2586,12 @@ term_show_mouse_face (enum draw_glyphs_face draw) | |||
| 2573 | static void | 2586 | static void |
| 2574 | term_clear_mouse_face () | 2587 | term_clear_mouse_face () |
| 2575 | { | 2588 | { |
| 2576 | if (!NILP (mouse_face_window)) | 2589 | if (!NILP (Qmouse_face_window)) |
| 2577 | term_show_mouse_face (DRAW_NORMAL_TEXT); | 2590 | term_show_mouse_face (DRAW_NORMAL_TEXT); |
| 2578 | 2591 | ||
| 2579 | mouse_face_beg_row = mouse_face_beg_col = -1; | 2592 | mouse_face_beg_row = mouse_face_beg_col = -1; |
| 2580 | mouse_face_end_row = mouse_face_end_col = -1; | 2593 | mouse_face_end_row = mouse_face_end_col = -1; |
| 2581 | mouse_face_window = Qnil; | 2594 | Qmouse_face_window = Qnil; |
| 2582 | } | 2595 | } |
| 2583 | 2596 | ||
| 2584 | /* Find the glyph matrix position of buffer position POS in window W. | 2597 | /* Find the glyph matrix position of buffer position POS in window W. |
| @@ -2679,7 +2692,7 @@ term_mouse_highlight (struct frame *f, int x, int y) | |||
| 2679 | if (!WINDOWP (window)) | 2692 | if (!WINDOWP (window)) |
| 2680 | return; | 2693 | return; |
| 2681 | 2694 | ||
| 2682 | if (!EQ (window, mouse_face_window)) | 2695 | if (!EQ (window, Qmouse_face_window)) |
| 2683 | term_clear_mouse_face (); | 2696 | term_clear_mouse_face (); |
| 2684 | 2697 | ||
| 2685 | w = XWINDOW (window); | 2698 | w = XWINDOW (window); |
| @@ -2737,7 +2750,7 @@ term_mouse_highlight (struct frame *f, int x, int y) | |||
| 2737 | { | 2750 | { |
| 2738 | extern Lisp_Object Qmouse_face; | 2751 | extern Lisp_Object Qmouse_face; |
| 2739 | Lisp_Object mouse_face, overlay, position, *overlay_vec; | 2752 | Lisp_Object mouse_face, overlay, position, *overlay_vec; |
| 2740 | int noverlays, obegv, ozv;; | 2753 | int noverlays, obegv, ozv; |
| 2741 | struct buffer *obuf; | 2754 | struct buffer *obuf; |
| 2742 | 2755 | ||
| 2743 | /* If we get an out-of-range value, return now; avoid an error. */ | 2756 | /* If we get an out-of-range value, return now; avoid an error. */ |
| @@ -2762,7 +2775,7 @@ term_mouse_highlight (struct frame *f, int x, int y) | |||
| 2762 | noverlays = sort_overlays (overlay_vec, noverlays, w); | 2775 | noverlays = sort_overlays (overlay_vec, noverlays, w); |
| 2763 | 2776 | ||
| 2764 | /* Check mouse-face highlighting. */ | 2777 | /* Check mouse-face highlighting. */ |
| 2765 | if (!(EQ (window, mouse_face_window) | 2778 | if (!(EQ (window, Qmouse_face_window) |
| 2766 | && y >= mouse_face_beg_row | 2779 | && y >= mouse_face_beg_row |
| 2767 | && y <= mouse_face_end_row | 2780 | && y <= mouse_face_end_row |
| 2768 | && (y > mouse_face_beg_row | 2781 | && (y > mouse_face_beg_row |
| @@ -2812,7 +2825,7 @@ term_mouse_highlight (struct frame *f, int x, int y) | |||
| 2812 | = !fast_find_position (w, XFASTINT (after), | 2825 | = !fast_find_position (w, XFASTINT (after), |
| 2813 | &mouse_face_end_col, | 2826 | &mouse_face_end_col, |
| 2814 | &mouse_face_end_row); | 2827 | &mouse_face_end_row); |
| 2815 | mouse_face_window = window; | 2828 | Qmouse_face_window = window; |
| 2816 | 2829 | ||
| 2817 | mouse_face_face_id | 2830 | mouse_face_face_id |
| 2818 | = face_at_buffer_position (w, pos, 0, 0, | 2831 | = face_at_buffer_position (w, pos, 0, 0, |
| @@ -2847,7 +2860,7 @@ term_mouse_highlight (struct frame *f, int x, int y) | |||
| 2847 | = !fast_find_position (w, XFASTINT (after), | 2860 | = !fast_find_position (w, XFASTINT (after), |
| 2848 | &mouse_face_end_col, | 2861 | &mouse_face_end_col, |
| 2849 | &mouse_face_end_row); | 2862 | &mouse_face_end_row); |
| 2850 | mouse_face_window = window; | 2863 | Qmouse_face_window = window; |
| 2851 | 2864 | ||
| 2852 | mouse_face_face_id | 2865 | mouse_face_face_id |
| 2853 | = face_at_buffer_position (w, pos, 0, 0, | 2866 | = face_at_buffer_position (w, pos, 0, 0, |
| @@ -2934,33 +2947,31 @@ term_mouse_movement (FRAME_PTR frame, Gpm_Event *event) | |||
| 2934 | Set *time to the time the mouse was at the returned position. | 2947 | Set *time to the time the mouse was at the returned position. |
| 2935 | 2948 | ||
| 2936 | This should clear mouse_moved until the next motion | 2949 | This should clear mouse_moved until the next motion |
| 2937 | event arrives. | 2950 | event arrives. */ |
| 2938 | |||
| 2939 | NOT CURRENTLY INVOKED: see mouse_position_hook below. */ | ||
| 2940 | static void | 2951 | static void |
| 2941 | term_mouse_position (FRAME_PTR *fp, int insist, Lisp_Object *bar_window, | 2952 | term_mouse_position (FRAME_PTR *fp, int insist, Lisp_Object *bar_window, |
| 2942 | enum scroll_bar_part *part, Lisp_Object *x, | 2953 | enum scroll_bar_part *part, Lisp_Object *x, |
| 2943 | Lisp_Object *y, unsigned long *time) | 2954 | Lisp_Object *y, unsigned long *time) |
| 2944 | { | 2955 | { |
| 2945 | Gpm_Event event; | ||
| 2946 | struct timeval now; | 2956 | struct timeval now; |
| 2947 | int i; | 2957 | Lisp_Object frame, window; |
| 2948 | 2958 | struct window *w; | |
| 2949 | BLOCK_INPUT; | ||
| 2950 | 2959 | ||
| 2951 | *fp = SELECTED_FRAME (); | 2960 | *fp = SELECTED_FRAME (); |
| 2961 | (*fp)->mouse_moved = 0; | ||
| 2952 | 2962 | ||
| 2953 | *bar_window = Qnil; | 2963 | *bar_window = Qnil; |
| 2954 | *part = 0; | 2964 | *part = 0; |
| 2955 | 2965 | ||
| 2956 | i = Gpm_GetSnapshot (&event); | 2966 | XSETINT (*x, last_mouse_x); |
| 2967 | XSETINT (*y, last_mouse_y); | ||
| 2968 | XSETFRAME (frame, *fp); | ||
| 2969 | window = Fwindow_at (*x, *y, frame); | ||
| 2957 | 2970 | ||
| 2958 | XSETINT (*x, event.x); | 2971 | XSETINT (*x, last_mouse_x - WINDOW_LEFT_EDGE_COL (XWINDOW (window))); |
| 2959 | XSETINT (*y, event.y); | 2972 | XSETINT (*y, last_mouse_y - WINDOW_TOP_EDGE_LINE (XWINDOW (window))); |
| 2960 | gettimeofday(&now, 0); | 2973 | gettimeofday(&now, 0); |
| 2961 | *time = (now.tv_sec * 1000) + (now.tv_usec / 1000); | 2974 | *time = (now.tv_sec * 1000) + (now.tv_usec / 1000); |
| 2962 | |||
| 2963 | UNBLOCK_INPUT; | ||
| 2964 | } | 2975 | } |
| 2965 | 2976 | ||
| 2966 | /* Prepare a mouse-event in *RESULT for placement in the input queue. | 2977 | /* Prepare a mouse-event in *RESULT for placement in the input queue. |
| @@ -3059,7 +3070,7 @@ handle_one_term_event (Gpm_Event *event, struct input_event* hold_quit) | |||
| 3059 | name = (const char *) ttyname (0); | 3070 | name = (const char *) ttyname (0); |
| 3060 | fd = open (name, O_WRONLY); | 3071 | fd = open (name, O_WRONLY); |
| 3061 | ioctl (fd, TIOCLINUX, buf + sizeof (short) - 1); | 3072 | ioctl (fd, TIOCLINUX, buf + sizeof (short) - 1); |
| 3062 | close(fd); | 3073 | close (fd); |
| 3063 | 3074 | ||
| 3064 | term_mouse_movement (f, event); | 3075 | term_mouse_movement (f, event); |
| 3065 | 3076 | ||
| @@ -3074,7 +3085,6 @@ handle_one_term_event (Gpm_Event *event, struct input_event* hold_quit) | |||
| 3074 | else { | 3085 | else { |
| 3075 | f->mouse_moved = 0; | 3086 | f->mouse_moved = 0; |
| 3076 | term_mouse_click (&ie, event, f); | 3087 | term_mouse_click (&ie, event, f); |
| 3077 | //kbd_buffer_store_event_hold (&ie, hold_quit); | ||
| 3078 | } | 3088 | } |
| 3079 | 3089 | ||
| 3080 | done: | 3090 | done: |
| @@ -3159,11 +3169,8 @@ term_init (terminal_type) | |||
| 3159 | encode_terminal_dst_size = 0; | 3169 | encode_terminal_dst_size = 0; |
| 3160 | 3170 | ||
| 3161 | #ifdef HAVE_GPM | 3171 | #ifdef HAVE_GPM |
| 3162 | /* TODO: Can't get Gpm_Snapshot in term_mouse_position to work: test with | 3172 | mouse_position_hook = term_mouse_position; |
| 3163 | (mouse-position). Also set-mouse-position won't work as is. */ | 3173 | Qmouse_face_window = Qnil; |
| 3164 | /* mouse_position_hook = term_mouse_position; */ | ||
| 3165 | |||
| 3166 | mouse_face_window = Qnil; | ||
| 3167 | #endif | 3174 | #endif |
| 3168 | 3175 | ||
| 3169 | #ifdef WINDOWSNT | 3176 | #ifdef WINDOWSNT |
| @@ -3616,6 +3623,8 @@ bigger, or it may make it blink, or it may do nothing at all. */); | |||
| 3616 | #ifdef HAVE_GPM | 3623 | #ifdef HAVE_GPM |
| 3617 | defsubr (&Sterm_open_connection); | 3624 | defsubr (&Sterm_open_connection); |
| 3618 | defsubr (&Sterm_close_connection); | 3625 | defsubr (&Sterm_close_connection); |
| 3626 | |||
| 3627 | staticpro (&Qmouse_face_window); | ||
| 3619 | #endif /* HAVE_GPM */ | 3628 | #endif /* HAVE_GPM */ |
| 3620 | 3629 | ||
| 3621 | fullscreen_hook = NULL; | 3630 | fullscreen_hook = NULL; |
diff --git a/src/termhooks.h b/src/termhooks.h index 1e9968530e8..ee6e707e6b5 100644 --- a/src/termhooks.h +++ b/src/termhooks.h | |||
| @@ -453,6 +453,7 @@ enum { | |||
| 453 | #ifdef HAVE_GPM | 453 | #ifdef HAVE_GPM |
| 454 | #include <gpm.h> | 454 | #include <gpm.h> |
| 455 | extern int handle_one_term_event (Gpm_Event *, struct input_event *); | 455 | extern int handle_one_term_event (Gpm_Event *, struct input_event *); |
| 456 | extern void term_mouse_moveto (int, int); | ||
| 456 | 457 | ||
| 457 | /* Nonzero means mouse is enabled on Linux console */ | 458 | /* Nonzero means mouse is enabled on Linux console */ |
| 458 | extern int term_gpm; | 459 | extern int term_gpm; |
diff --git a/src/window.c b/src/window.c index 3fb558d637a..f417c7458d4 100644 --- a/src/window.c +++ b/src/window.c | |||
| @@ -1532,7 +1532,7 @@ delete_window (window) | |||
| 1532 | if (!EQ (window, pwindow)) | 1532 | if (!EQ (window, pwindow)) |
| 1533 | break; | 1533 | break; |
| 1534 | /* Otherwise, try another window for SWINDOW. */ | 1534 | /* Otherwise, try another window for SWINDOW. */ |
| 1535 | swindow = Fnext_window (swindow, Qlambda, Qnil);; | 1535 | swindow = Fnext_window (swindow, Qlambda, Qnil); |
| 1536 | 1536 | ||
| 1537 | /* If we get back to the frame's selected window, | 1537 | /* If we get back to the frame's selected window, |
| 1538 | it means there was no acceptable alternative, | 1538 | it means there was no acceptable alternative, |
diff --git a/src/xdisp.c b/src/xdisp.c index 48e894afcec..1cc8cf10611 100644 --- a/src/xdisp.c +++ b/src/xdisp.c | |||
| @@ -6417,7 +6417,7 @@ next_element_from_buffer (it) | |||
| 6417 | it->c = *p, it->len = 1; | 6417 | it->c = *p, it->len = 1; |
| 6418 | 6418 | ||
| 6419 | /* Record what we have and where it came from. */ | 6419 | /* Record what we have and where it came from. */ |
| 6420 | it->what = IT_CHARACTER;; | 6420 | it->what = IT_CHARACTER; |
| 6421 | it->object = it->w->buffer; | 6421 | it->object = it->w->buffer; |
| 6422 | it->position = it->current.pos; | 6422 | it->position = it->current.pos; |
| 6423 | 6423 | ||
| @@ -10996,7 +10996,7 @@ redisplay_internal (preserve_echo_area) | |||
| 10996 | int must_finish = 0; | 10996 | int must_finish = 0; |
| 10997 | struct text_pos tlbufpos, tlendpos; | 10997 | struct text_pos tlbufpos, tlendpos; |
| 10998 | int number_of_visible_frames; | 10998 | int number_of_visible_frames; |
| 10999 | int count; | 10999 | int count, count1; |
| 11000 | struct frame *sf; | 11000 | struct frame *sf; |
| 11001 | int polling_stopped_here = 0; | 11001 | int polling_stopped_here = 0; |
| 11002 | 11002 | ||
| @@ -11134,6 +11134,10 @@ redisplay_internal (preserve_echo_area) | |||
| 11134 | update_mode_lines++; | 11134 | update_mode_lines++; |
| 11135 | } | 11135 | } |
| 11136 | 11136 | ||
| 11137 | /* Avoid invocation of point motion hooks by `current_column' below. */ | ||
| 11138 | count1 = SPECPDL_INDEX (); | ||
| 11139 | specbind (Qinhibit_point_motion_hooks, Qt); | ||
| 11140 | |||
| 11137 | /* If %c is in the mode line, update it if needed. */ | 11141 | /* If %c is in the mode line, update it if needed. */ |
| 11138 | if (!NILP (w->column_number_displayed) | 11142 | if (!NILP (w->column_number_displayed) |
| 11139 | /* This alternative quickly identifies a common case | 11143 | /* This alternative quickly identifies a common case |
| @@ -11145,6 +11149,8 @@ redisplay_internal (preserve_echo_area) | |||
| 11145 | != (int) current_column ())) /* iftc */ | 11149 | != (int) current_column ())) /* iftc */ |
| 11146 | w->update_mode_line = Qt; | 11150 | w->update_mode_line = Qt; |
| 11147 | 11151 | ||
| 11152 | unbind_to (count1, Qnil); | ||
| 11153 | |||
| 11148 | FRAME_SCROLL_BOTTOM_VPOS (XFRAME (w->frame)) = -1; | 11154 | FRAME_SCROLL_BOTTOM_VPOS (XFRAME (w->frame)) = -1; |
| 11149 | 11155 | ||
| 11150 | /* The variable buffer_shared is set in redisplay_window and | 11156 | /* The variable buffer_shared is set in redisplay_window and |
diff --git a/src/xfaces.c b/src/xfaces.c index 660fa34d5cf..1b314a6fa13 100644 --- a/src/xfaces.c +++ b/src/xfaces.c | |||
| @@ -8477,7 +8477,7 @@ syms_of_xfaces () | |||
| 8477 | staticpro (&QCforeground); | 8477 | staticpro (&QCforeground); |
| 8478 | QCbackground = intern (":background"); | 8478 | QCbackground = intern (":background"); |
| 8479 | staticpro (&QCbackground); | 8479 | staticpro (&QCbackground); |
| 8480 | QCstipple = intern (":stipple");; | 8480 | QCstipple = intern (":stipple"); |
| 8481 | staticpro (&QCstipple); | 8481 | staticpro (&QCstipple); |
| 8482 | QCwidth = intern (":width"); | 8482 | QCwidth = intern (":width"); |
| 8483 | staticpro (&QCwidth); | 8483 | staticpro (&QCwidth); |