diff options
| author | Karoly Lorentey | 2007-01-13 22:59:28 +0000 |
|---|---|---|
| committer | Karoly Lorentey | 2007-01-13 22:59:28 +0000 |
| commit | 38db5c8d522cc1faa8190e77dbc932a5560e6aad (patch) | |
| tree | efe4c81d7210843bb208282461ebce12c5bd3daf | |
| parent | 191ae1cf7cd2571277635b3b8e488e773ca5c9b9 (diff) | |
| parent | b4ec8cb4e66f94547e8215a1c1eb6cda3b83ca63 (diff) | |
| download | emacs-38db5c8d522cc1faa8190e77dbc932a5560e6aad.tar.gz emacs-38db5c8d522cc1faa8190e77dbc932a5560e6aad.zip | |
Merged from emacs@sv.gnu.org
Patches applied:
* emacs@sv.gnu.org/emacs--devo--0--patch-592
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-593
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-594
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-595
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-596
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-597
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-598
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-186
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-187
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-188
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-189
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-190
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-191
Update from CVS
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-593
50 files changed, 864 insertions, 425 deletions
diff --git a/admin/FOR-RELEASE b/admin/FOR-RELEASE index 428b2589886..64163176bbb 100644 --- a/admin/FOR-RELEASE +++ b/admin/FOR-RELEASE | |||
| @@ -86,15 +86,15 @@ through the custom mechanism. | |||
| 86 | ** dooglus@gmail.com, Dec 29: 4 week-old pretest bugs | 86 | ** dooglus@gmail.com, Dec 29: 4 week-old pretest bugs |
| 87 | Two GTK version bugs. | 87 | Two GTK version bugs. |
| 88 | 88 | ||
| 89 | ** pgg bugs reported by rms. | ||
| 90 | |||
| 91 | ** (global-set-key "\M-k" 'bury-buffer) confuses tutorial warnings. | ||
| 92 | |||
| 93 | ** jpff@cs.bath.ac.uk, Jan 5: Failure to submit second netnews message | 89 | ** jpff@cs.bath.ac.uk, Jan 5: Failure to submit second netnews message |
| 94 | 90 | ||
| 95 | ** KSNetz@UseNet.ArcorNews.DE, Jan 5: | 91 | ** KSNetz@UseNet.ArcorNews.DE, Jan 5: |
| 96 | url-http.el: calling the callback function for proxy connections | 92 | url-http.el: calling the callback function for proxy connections |
| 97 | 93 | ||
| 94 | ** simon.marshall@misys.com, Jan 9: Possible mouse-face redisplay glitch | ||
| 95 | |||
| 96 | ** dooglus@gmail.com, Jan 10: problem with transparent PNG image display | ||
| 97 | |||
| 98 | * DOCUMENTATION | 98 | * DOCUMENTATION |
| 99 | 99 | ||
| 100 | ** Check the Emacs Tutorial. | 100 | ** Check the Emacs Tutorial. |
diff --git a/admin/nt/README-ftp-server b/admin/nt/README-ftp-server index e351d025309..67d8e7919ce 100644 --- a/admin/nt/README-ftp-server +++ b/admin/nt/README-ftp-server | |||
| @@ -88,44 +88,25 @@ | |||
| 88 | leim-21.3-src.tar.gz | 88 | leim-21.3-src.tar.gz |
| 89 | 89 | ||
| 90 | 90 | ||
| 91 | * Distributions in multi-file .zip format | ||
| 92 | |||
| 93 | A second distribution in the form of multiple small .zip files is also | ||
| 94 | provided, for the benefit of people who have unreliable internet | ||
| 95 | connections, or who need to copy the distribution onto floppy disks: | ||
| 96 | |||
| 97 | em213b*.zip | ||
| 98 | |||
| 99 | This is equivalent to getting emacs-21.3-bin-i386.tar.gz above. | ||
| 100 | The lisp source is available as em213l*.zip. | ||
| 101 | |||
| 102 | |||
| 103 | * Distributions for non-x86 platforms | 91 | * Distributions for non-x86 platforms |
| 104 | 92 | ||
| 105 | I try to make this port available for all platforms supported by | 93 | Distributions for non-x86 platforms are no longer supplied. Older |
| 106 | Windows (it should build on all supported Windows NT/9x platforms). | 94 | platforms supported by Windows NT no longer seem to be in demand, |
| 107 | However, I do not always have access to non-x86 platforms, and so I | 95 | and Emacs is yet to be ported to 64bit Windows platforms. If you are |
| 108 | cannot guarantee to provide precompiled distributions for the other | 96 | willing to help port Emacs to 64bit versions of Windows, your |
| 109 | platforms myself. If you find there are no binaries for your | 97 | contribution will be welcome on the emacs-devel mailing list. |
| 110 | platform, and you have access to a Microsoft compiler, then you can | ||
| 111 | download the source and compile Emacs yourself (and, if you do, please | ||
| 112 | consider contributing your executables; send me mail and we can make | ||
| 113 | arrangements for making them available on this ftp server.) | ||
| 114 | |||
| 115 | 98 | ||
| 116 | * Unpacking distributions | 99 | * Unpacking distributions |
| 117 | 100 | ||
| 118 | Programs for handling the distribution file formats can be found in | 101 | Ports of GNU gzip and GNU tar for handling the distribution file |
| 119 | the utilities directory: | 102 | formats can be found in several places that distribute ports of GNU |
| 103 | programs, for example: | ||
| 120 | 104 | ||
| 121 | http://mirrors.sunsite.dk/gnu/windows/emacs/utilities/ | 105 | Cygwin: http://www.cygwin.com/ |
| 106 | GnuWin32: http://gnuwin32.sourceforge.net/ | ||
| 122 | 107 | ||
| 123 | For gzipped tar files, you will need either gunzip.exe and tar.exe | 108 | Many other popular file compression utilities for Windows are also |
| 124 | together, or djtarnt.exe. djtarnt.exe can also unpack .zip files. I | 109 | able to handle gzipped tar files. |
| 125 | strongly urge you to use these utilities since they were the ones used | ||
| 126 | to create the distributions; the most common problem people have in | ||
| 127 | trying to get Emacs to run is due to some other utility program | ||
| 128 | corrupting the distribution while unpacking. | ||
| 129 | 110 | ||
| 130 | Open a command prompt (MSDOS) window. Decide on a directory in which | 111 | Open a command prompt (MSDOS) window. Decide on a directory in which |
| 131 | to place Emacs. Move the distribution to that directory, and then | 112 | to place Emacs. Move the distribution to that directory, and then |
| @@ -151,25 +132,10 @@ | |||
| 151 | You may be prompted to rename or overwrite directories when using | 132 | You may be prompted to rename or overwrite directories when using |
| 152 | djtarnt: simply type return to continue (this is harmless). | 133 | djtarnt: simply type return to continue (this is harmless). |
| 153 | 134 | ||
| 154 | If you have the multi-file .zip distribution, use djtarnt to unpack | ||
| 155 | all of the .zip files: | ||
| 156 | |||
| 157 | % djtarnt -x *.zip | ||
| 158 | |||
| 159 | Once you have unpacked a precompiled distribution of Emacs, it should | 135 | Once you have unpacked a precompiled distribution of Emacs, it should |
| 160 | have the following subdirectories: | 136 | have the following subdirectories: |
| 161 | 137 | ||
| 162 | bin etc info lisp lock site-lisp | 138 | bin etc info lisp site-lisp |
| 163 | |||
| 164 | If your utility failed to create the lock directory, then you can | ||
| 165 | simply create it by hand (it is initially empty). | ||
| 166 | |||
| 167 | One final step is needed only when installing from the multi-file .zip | ||
| 168 | distribution, in order to recreate emacs.exe from its fragments (it is | ||
| 169 | too big to fit on a floppy even when zipped): | ||
| 170 | |||
| 171 | % cd emacs-21.3\bin | ||
| 172 | % stitch | ||
| 173 | 139 | ||
| 174 | 140 | ||
| 175 | * Unpacking with other tools | 141 | * Unpacking with other tools |
| @@ -178,9 +144,9 @@ | |||
| 178 | the following to be sure the distribution was not corrupted: | 144 | the following to be sure the distribution was not corrupted: |
| 179 | 145 | ||
| 180 | + Be sure to disable the CR/LF translation or the executables will be | 146 | + Be sure to disable the CR/LF translation or the executables will be |
| 181 | unusable. Older versions of WinZipNT would enable this translation | 147 | unusable. Older versions of WinZip would enable this translation |
| 182 | by default. If you are using WinZipNT, disable it. (I don't have | 148 | by default. If you are using WinZip, disable it. (I don't have |
| 183 | WinZipNT myself, and I do not know the specific commands necessary | 149 | WinZip myself, and I do not know the specific commands necessary |
| 184 | to disable it.) | 150 | to disable it.) |
| 185 | 151 | ||
| 186 | + Check that filenames were not truncated to 8.3. For example, there | 152 | + Check that filenames were not truncated to 8.3. For example, there |
| @@ -188,12 +154,9 @@ | |||
| 188 | abbrevli.el, your distribution has been corrupted while unpacking | 154 | abbrevli.el, your distribution has been corrupted while unpacking |
| 189 | and Emacs will not start. | 155 | and Emacs will not start. |
| 190 | 156 | ||
| 191 | + I've been told that some utilities (WinZip again?) don't create the | 157 | + I've also had reports that some older "gnuwin32" port of tar |
| 192 | lock subdirectory. The lock subdirectory needs to be created. | 158 | corrupts the executables. Use the latest version from the gnuwin32 |
| 193 | 159 | site or another port of tar instead. | |
| 194 | + I've also had reports that the "gnu-win32" port of tar corrupts the | ||
| 195 | executables. Use the version of tar or djtarnt in the utilities | ||
| 196 | directory instead. | ||
| 197 | 160 | ||
| 198 | If you believe you have unpacked the distributions correctly and are | 161 | If you believe you have unpacked the distributions correctly and are |
| 199 | still encountering problems, see the section on Further Information | 162 | still encountering problems, see the section on Further Information |
| @@ -204,11 +167,12 @@ | |||
| 204 | 167 | ||
| 205 | If you would like to compile Emacs from source, download the source | 168 | If you would like to compile Emacs from source, download the source |
| 206 | distribution, unpack it in the same manner as a precompiled | 169 | distribution, unpack it in the same manner as a precompiled |
| 207 | distribution, and look in the file nt/INSTALL for detailed directions. | 170 | distribution, and look in the file nt/INSTALL for detailed |
| 208 | You can either use the Microsoft compiler included with Visual C++, or | 171 | directions. You can either use the Microsoft compiler included with |
| 209 | GCC 2.95 or later with MinGW support, to compile the source. The port | 172 | Visual C++ 2003 or earlier, or GCC 2.95 or later with MinGW support, |
| 210 | of GCC included in Cygwin is supported, but check the nt/INSTALL file | 173 | to compile the source. The port of GCC included in Cygwin is |
| 211 | if you have trouble since some builds of GNU make aren't supported. | 174 | supported, but check the nt/INSTALL file if you have trouble since |
| 175 | some builds of GNU make aren't supported. | ||
| 212 | 176 | ||
| 213 | 177 | ||
| 214 | * Further information | 178 | * Further information |
| @@ -250,5 +214,8 @@ | |||
| 250 | 214 | ||
| 251 | Enjoy! | 215 | Enjoy! |
| 252 | 216 | ||
| 253 | Andrew Innes | 217 | Jason Rumney |
| 254 | (andrewi@gnu.org) | 218 | (jasonr@gnu.org) |
| 219 | |||
| 220 | Most of this README was contributed by former maintainer Andrew Innes | ||
| 221 | (andrewi@gnu.org) \ No newline at end of file | ||
diff --git a/etc/ChangeLog b/etc/ChangeLog index a4fcc77a887..c8b7a2ec1a9 100644 --- a/etc/ChangeLog +++ b/etc/ChangeLog | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | 2006-06-30 Francesco Potort,Al(B <pot@gnu.org> | 1 | 2007-01-02 Francesco Potort,Al(B <pot@gnu.org> |
| 2 | 2 | ||
| 3 | * etags.1: Undocument the --no-warn option. | 3 | * etags.1: Undocument the --no-warn option. |
| 4 | 4 | ||
| @@ -512,7 +512,7 @@ hyperlinks for variables without variable documentation, unless | |||
| 512 | preceded by one of the words `variable' or `option'. It now makes | 512 | preceded by one of the words `variable' or `option'. It now makes |
| 513 | hyperlinks to Info anchors (or nodes) if the anchor (or node) name is | 513 | hyperlinks to Info anchors (or nodes) if the anchor (or node) name is |
| 514 | enclosed in single quotes and preceded by `info anchor' or `Info | 514 | enclosed in single quotes and preceded by `info anchor' or `Info |
| 515 | anchor' (in addition to earlier `info node' and `Info node'). In | 515 | anchor' (in addition to earlier `info node' and `Info node'). In |
| 516 | addition, it now makes hyperlinks to URLs as well if the URL is | 516 | addition, it now makes hyperlinks to URLs as well if the URL is |
| 517 | enclosed in single quotes and preceded by `URL'. | 517 | enclosed in single quotes and preceded by `URL'. |
| 518 | 518 | ||
| @@ -778,7 +778,7 @@ parts less visible than normal, so that the rest of the differing | |||
| 778 | parts is, by contrast, slightly highlighted. | 778 | parts is, by contrast, slightly highlighted. |
| 779 | 779 | ||
| 780 | Above fontification is always done when listing completions is | 780 | Above fontification is always done when listing completions is |
| 781 | triggered at minibuffer. If you want to fontify completions whose | 781 | triggered at minibuffer. If you want to fontify completions whose |
| 782 | listing is triggered at the other normal buffer, you have to pass | 782 | listing is triggered at the other normal buffer, you have to pass |
| 783 | the common prefix of completions to `display-completion-list' as | 783 | the common prefix of completions to `display-completion-list' as |
| 784 | its second argument. | 784 | its second argument. |
| @@ -1666,8 +1666,8 @@ on the mode line, header line and display margin, when run in an xterm. | |||
| 1666 | 1666 | ||
| 1667 | --- | 1667 | --- |
| 1668 | *** Improved key bindings support when running in an xterm. | 1668 | *** Improved key bindings support when running in an xterm. |
| 1669 | When emacs is running in an xterm more key bindings are available. The | 1669 | When emacs is running in an xterm more key bindings are available. |
| 1670 | following should work: | 1670 | The following should work: |
| 1671 | {C,S,C-S,A}-{right,left,up,down,prior,next,delete,insert,F1-12}. | 1671 | {C,S,C-S,A}-{right,left,up,down,prior,next,delete,insert,F1-12}. |
| 1672 | These key bindings work on xterm from X.org 6.8, they might not work on | 1672 | These key bindings work on xterm from X.org 6.8, they might not work on |
| 1673 | some older versions of xterm, or on some proprietary versions. | 1673 | some older versions of xterm, or on some proprietary versions. |
| @@ -2032,7 +2032,7 @@ boundaries during scrolling. | |||
| 2032 | +++ | 2032 | +++ |
| 2033 | ** The file t-mouse.el is now part of Emacs and provides access to mouse | 2033 | ** The file t-mouse.el is now part of Emacs and provides access to mouse |
| 2034 | events from the console. It still requires gpm to work but has been updated | 2034 | events from the console. It still requires gpm to work but has been updated |
| 2035 | for Emacs 22. In particular, the mode-line is now position sensitive. | 2035 | for Emacs 22. In particular, the mode-line is now position sensitive. |
| 2036 | 2036 | ||
| 2037 | * Changes in Specialized Modes and Packages in Emacs 22.1: | 2037 | * Changes in Specialized Modes and Packages in Emacs 22.1: |
| 2038 | 2038 | ||
| @@ -2047,7 +2047,7 @@ is similar to the way sequential output to a terminal works.) | |||
| 2047 | +++ | 2047 | +++ |
| 2048 | *** Bindings for Tumme added | 2048 | *** Bindings for Tumme added |
| 2049 | Several new keybindings, all starting with the C-t prefix, have been | 2049 | Several new keybindings, all starting with the C-t prefix, have been |
| 2050 | added to Dired. They are all bound to commands in Tumme. As a starting | 2050 | added to Dired. They are all bound to commands in Tumme. As a starting |
| 2051 | point, mark some image files in a dired buffer and do C-t d to display | 2051 | point, mark some image files in a dired buffer and do C-t d to display |
| 2052 | thumbnails of them in a separate buffer. | 2052 | thumbnails of them in a separate buffer. |
| 2053 | 2053 | ||
| @@ -2696,7 +2696,7 @@ C-c C-i b, and so on. | |||
| 2696 | ** Fortran mode changes: | 2696 | ** Fortran mode changes: |
| 2697 | 2697 | ||
| 2698 | --- | 2698 | --- |
| 2699 | *** Fortran mode does more font-locking by default. Use level 3 | 2699 | *** Fortran mode does more font-locking by default. Use level 3 |
| 2700 | highlighting for the old default. | 2700 | highlighting for the old default. |
| 2701 | 2701 | ||
| 2702 | +++ | 2702 | +++ |
| @@ -2890,7 +2890,7 @@ extracting the content of a BibTeX field. | |||
| 2890 | *** The variables `bibtex-autokey-name-case-convert' and | 2890 | *** The variables `bibtex-autokey-name-case-convert' and |
| 2891 | `bibtex-autokey-titleword-case-convert' have been renamed to | 2891 | `bibtex-autokey-titleword-case-convert' have been renamed to |
| 2892 | `bibtex-autokey-name-case-convert-function' and | 2892 | `bibtex-autokey-name-case-convert-function' and |
| 2893 | `bibtex-autokey-titleword-case-convert-function'. The old names are | 2893 | `bibtex-autokey-titleword-case-convert-function'. The old names are |
| 2894 | still available as aliases. | 2894 | still available as aliases. |
| 2895 | 2895 | ||
| 2896 | ** In Artist mode the variable `artist-text-renderer' has been | 2896 | ** In Artist mode the variable `artist-text-renderer' has been |
| @@ -3104,13 +3104,13 @@ feature. | |||
| 3104 | +++ | 3104 | +++ |
| 3105 | *** When comparing directories. | 3105 | *** When comparing directories. |
| 3106 | Typing D brings up a buffer that lists the differences between the contents of | 3106 | Typing D brings up a buffer that lists the differences between the contents of |
| 3107 | directories. Now it is possible to use this buffer to copy the missing files | 3107 | directories. Now it is possible to use this buffer to copy the missing files |
| 3108 | from one directory to another. | 3108 | from one directory to another. |
| 3109 | 3109 | ||
| 3110 | +++ | 3110 | +++ |
| 3111 | *** When comparing files or buffers. | 3111 | *** When comparing files or buffers. |
| 3112 | Typing the = key now offers to perform the word-by-word comparison of the | 3112 | Typing the = key now offers to perform the word-by-word comparison of the |
| 3113 | currently highlighted regions in an inferior Ediff session. If you answer 'n' | 3113 | currently highlighted regions in an inferior Ediff session. If you answer 'n' |
| 3114 | then it reverts to the old behavior and asks the user to select regions for | 3114 | then it reverts to the old behavior and asks the user to select regions for |
| 3115 | comparison. | 3115 | comparison. |
| 3116 | 3116 | ||
| @@ -3211,6 +3211,10 @@ be used (only once) in place of a file name on the command line. Etags | |||
| 3211 | reads from standard input and marks the produced tags as belonging to | 3211 | reads from standard input and marks the produced tags as belonging to |
| 3212 | the file FILE. | 3212 | the file FILE. |
| 3213 | 3213 | ||
| 3214 | ** Ctags changes. | ||
| 3215 | |||
| 3216 | *** Ctags now allows duplicate tags | ||
| 3217 | |||
| 3214 | ** VC Changes | 3218 | ** VC Changes |
| 3215 | 3219 | ||
| 3216 | +++ | 3220 | +++ |
| @@ -3344,7 +3348,7 @@ appointments, paydays or anything else using a sexp. | |||
| 3344 | 3348 | ||
| 3345 | +++ | 3349 | +++ |
| 3346 | *** The new function `calendar-goto-day-of-year' (g D) prompts for a | 3350 | *** The new function `calendar-goto-day-of-year' (g D) prompts for a |
| 3347 | year and day number, and moves to that date. Negative day numbers | 3351 | year and day number, and moves to that date. Negative day numbers |
| 3348 | count backward from the end of the year. | 3352 | count backward from the end of the year. |
| 3349 | 3353 | ||
| 3350 | +++ | 3354 | +++ |
| @@ -3359,7 +3363,7 @@ window generated by the function `generate-calendar-window'. | |||
| 3359 | --- | 3363 | --- |
| 3360 | *** The functions `holiday-easter-etc' and `holiday-advent' now take | 3364 | *** The functions `holiday-easter-etc' and `holiday-advent' now take |
| 3361 | optional arguments, in order to only report on the specified holiday | 3365 | optional arguments, in order to only report on the specified holiday |
| 3362 | rather than all. This makes customization of variables such as | 3366 | rather than all. This makes customization of variables such as |
| 3363 | `christian-holidays' simpler. | 3367 | `christian-holidays' simpler. |
| 3364 | 3368 | ||
| 3365 | --- | 3369 | --- |
| @@ -3719,7 +3723,7 @@ See the Emacs 21.1 NEWS entry for tooltips for details. | |||
| 3719 | --- | 3723 | --- |
| 3720 | ** Images are now supported on MS Windows. | 3724 | ** Images are now supported on MS Windows. |
| 3721 | 3725 | ||
| 3722 | PBM and XBM images are supported out of the box. Other image formats | 3726 | PBM and XBM images are supported out of the box. Other image formats |
| 3723 | depend on external libraries. All of these libraries have been ported | 3727 | depend on external libraries. All of these libraries have been ported |
| 3724 | to Windows, and can be found in both source and binary form at | 3728 | to Windows, and can be found in both source and binary form at |
| 3725 | http://gnuwin32.sourceforge.net/. Note that libpng also depends on | 3729 | http://gnuwin32.sourceforge.net/. Note that libpng also depends on |
| @@ -3761,7 +3765,7 @@ you wish to use them in other faces. | |||
| 3761 | ** On MS Windows NT/W2K/XP, Emacs uses Unicode for clipboard operations. | 3765 | ** On MS Windows NT/W2K/XP, Emacs uses Unicode for clipboard operations. |
| 3762 | 3766 | ||
| 3763 | Those systems use Unicode internally, so this allows Emacs to share | 3767 | Those systems use Unicode internally, so this allows Emacs to share |
| 3764 | multilingual text with other applications. On other versions of | 3768 | multilingual text with other applications. On other versions of |
| 3765 | MS Windows, Emacs now uses the appropriate locale coding-system, so | 3769 | MS Windows, Emacs now uses the appropriate locale coding-system, so |
| 3766 | the clipboard should work correctly for your local language without | 3770 | the clipboard should work correctly for your local language without |
| 3767 | any customizations. | 3771 | any customizations. |
| @@ -3771,12 +3775,12 @@ any customizations. | |||
| 3771 | 3775 | ||
| 3772 | Previous versions of Emacs erred on the side of having a usable Emacs | 3776 | Previous versions of Emacs erred on the side of having a usable Emacs |
| 3773 | through telnet, even though that was inconvenient if you use Emacs in | 3777 | through telnet, even though that was inconvenient if you use Emacs in |
| 3774 | a local console window with a scrollback buffer. The default value of | 3778 | a local console window with a scrollback buffer. The default value of |
| 3775 | w32-use-full-screen-buffer is now nil, which favors local console | 3779 | w32-use-full-screen-buffer is now nil, which favors local console |
| 3776 | windows. Recent versions of Windows telnet also work well with this | 3780 | windows. Recent versions of Windows telnet also work well with this |
| 3777 | setting. If you are using an older telnet server then Emacs detects | 3781 | setting. If you are using an older telnet server then Emacs detects |
| 3778 | that the console window dimensions that are reported are not sane, and | 3782 | that the console window dimensions that are reported are not sane, and |
| 3779 | defaults to 80x25. If you use such a telnet server regularly at a size | 3783 | defaults to 80x25. If you use such a telnet server regularly at a size |
| 3780 | other than 80x25, you can still manually set | 3784 | other than 80x25, you can still manually set |
| 3781 | w32-use-full-screen-buffer to t. | 3785 | w32-use-full-screen-buffer to t. |
| 3782 | 3786 | ||
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index d1825190c1a..f24de58fbb7 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,87 @@ | |||
| 1 | 2007-01-10 Juanma Barranquero <lekktu@gmail.com> | ||
| 2 | |||
| 3 | * ediff-init.el (ediff-autostore-merges): | ||
| 4 | * textmodes/fill.el (fill-region): Doc fix. | ||
| 5 | |||
| 6 | 2007-01-10 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 7 | |||
| 8 | * server.el (server-ensure-safe-dir): UIDs may be floats. | ||
| 9 | |||
| 10 | 2007-01-10 Richard Stallman <rms@gnu.org> | ||
| 11 | |||
| 12 | * battery.el (battery-linux-proc-acpi): Use ignore-errors | ||
| 13 | around calls to directory-files. | ||
| 14 | |||
| 15 | * subr.el (momentary-string-display): Use save-excursion. | ||
| 16 | |||
| 17 | * emacs-lisp/pp.el (pp-eval-expression): Once again eval the | ||
| 18 | argument, but read it as `X' does. | ||
| 19 | |||
| 20 | 2007-01-09 Juri Linkov <juri@jurta.org> | ||
| 21 | |||
| 22 | * info.el (Info-fontify-node): Don't hide node names of index entries. | ||
| 23 | |||
| 24 | * faces.el (momentary): Change :group to basic-faces where all | ||
| 25 | basic faces belong to. Add :version. | ||
| 26 | |||
| 27 | 2007-01-09 Lennart Borgman <lennart.borgman.073@student.lu.se> | ||
| 28 | |||
| 29 | * tutorial.el (tutorial--display-changes): Show M-x sequence if no | ||
| 30 | keybinding is found. | ||
| 31 | (tutorial--find-changed-keys): Never treat null keybinding as a | ||
| 32 | remapping. | ||
| 33 | |||
| 34 | 2007-01-09 Martin Rudalics <rudalics@gmx.at> | ||
| 35 | |||
| 36 | * wdired.el (wdired-xcase-word): Skip non-word read-only characters. | ||
| 37 | |||
| 38 | 2007-01-09 Kenichi Handa <handa@m17n.org> | ||
| 39 | |||
| 40 | * international/mule-cmds.el | ||
| 41 | (select-safe-coding-system-interactively): Fix message. | ||
| 42 | |||
| 43 | 2007-01-09 Michael Albinus <michael.albinus@gmx.de> | ||
| 44 | |||
| 45 | * net/tramp.el (tramp-process-one-action): Remove `with-timeout'. | ||
| 46 | (tramp-process-actions): Add optional parameter TIMEOUT. | ||
| 47 | (tramp-open-connection-telnet, tramp-open-connection-rsh) | ||
| 48 | (tramp-open-connection-su): Add timeout of 60". | ||
| 49 | |||
| 50 | 2007-01-09 Richard Stallman <rms@gnu.org> | ||
| 51 | |||
| 52 | * progmodes/compile.el (compile): Doc fix. | ||
| 53 | |||
| 54 | 2007-01-09 Markus Triska <markus.triska@gmx.at> | ||
| 55 | |||
| 56 | * tumme.el (tumme-display-thumb): Doc fix. | ||
| 57 | |||
| 58 | 2007-01-08 Juanma Barranquero <lekktu@gmail.com> | ||
| 59 | |||
| 60 | * battery.el (battery-search-for-one-match-in-files): | ||
| 61 | * bindings.el (mode-line-minor-mode-help): | ||
| 62 | * x-dnd.el (x-dnd-types-alist): | ||
| 63 | * calendar/icalendar.el (icalendar-import-buffer): | ||
| 64 | * term/mac-win.el (mac-dnd-types-alist): Fix typo in docstring. | ||
| 65 | |||
| 66 | * progmodes/vhdl-mode.el (vhdl-save-caches): Fix typo in error message. | ||
| 67 | |||
| 68 | 2007-01-07 Chris Moore <christopher.ian.moore@gmail.com> (tiny change) | ||
| 69 | |||
| 70 | * replace.el (replace-regexp): Fix typo in docstring. | ||
| 71 | |||
| 72 | 2007-01-07 Alan Mackenzie <acm@muc.de> | ||
| 73 | |||
| 74 | * progmodes/cc-langs.el (c-operators, c-filter-ops): | ||
| 75 | Amend doc-string and comments. | ||
| 76 | |||
| 77 | 2007-01-06 Eli Zaretskii <eliz@gnu.org> | ||
| 78 | |||
| 79 | * files.el (abbreviate-file-name): Doc fix. | ||
| 80 | |||
| 81 | 2007-01-06 Markus Triska <triska@gmx.at> | ||
| 82 | |||
| 83 | * subr.el (split-string): Remove spurious ")" from doc string. | ||
| 84 | |||
| 1 | 2007-01-05 Takaaki Ota <Takaaki.Ota@am.sony.com> | 85 | 2007-01-05 Takaaki Ota <Takaaki.Ota@am.sony.com> |
| 2 | 86 | ||
| 3 | * textmodes/table.el (table--warn-incompatibility): | 87 | * textmodes/table.el (table--warn-incompatibility): |
| @@ -275,6 +359,11 @@ | |||
| 275 | 2006-12-27 Kenichi Handa <handa@m17n.org> | 359 | 2006-12-27 Kenichi Handa <handa@m17n.org> |
| 276 | 360 | ||
| 277 | * international/mule-cmds.el (select-safe-coding-system-interactively): | 361 | * international/mule-cmds.el (select-safe-coding-system-interactively): |
| 362 | Use face `link' for problematic chars. | ||
| 363 | |||
| 364 | 2006-12-27 Kenichi Handa <handa@m17n.org> | ||
| 365 | |||
| 366 | * international/mule-cmds.el (select-safe-coding-system-interactively): | ||
| 278 | Improve the message in *Warning* buffer. | 367 | Improve the message in *Warning* buffer. |
| 279 | 368 | ||
| 280 | 2006-12-27 Kim F. Storm <storm@cua.dk> | 369 | 2006-12-27 Kim F. Storm <storm@cua.dk> |
diff --git a/lisp/battery.el b/lisp/battery.el index a4c72df0bbb..aec6865dc06 100644 --- a/lisp/battery.el +++ b/lisp/battery.el | |||
| @@ -357,15 +357,17 @@ The following %-sequences are provided: | |||
| 357 | (list (cons ?c (or (and capacity (number-to-string capacity)) "N/A")) | 357 | (list (cons ?c (or (and capacity (number-to-string capacity)) "N/A")) |
| 358 | (cons ?L (or (battery-search-for-one-match-in-files | 358 | (cons ?L (or (battery-search-for-one-match-in-files |
| 359 | (mapcar (lambda (e) (concat e "/state")) | 359 | (mapcar (lambda (e) (concat e "/state")) |
| 360 | (directory-files "/proc/acpi/ac_adapter/" | 360 | (ignore-errors |
| 361 | t "\\`[^.]")) | 361 | (directory-files "/proc/acpi/ac_adapter/" |
| 362 | t "\\`[^.]"))) | ||
| 362 | "state: +\\(.*\\)$" 1) | 363 | "state: +\\(.*\\)$" 1) |
| 363 | 364 | ||
| 364 | "N/A")) | 365 | "N/A")) |
| 365 | (cons ?d (or (battery-search-for-one-match-in-files | 366 | (cons ?d (or (battery-search-for-one-match-in-files |
| 366 | (mapcar (lambda (e) (concat e "/temperature")) | 367 | (mapcar (lambda (e) (concat e "/temperature")) |
| 367 | (directory-files "/proc/acpi/thermal_zone/" | 368 | (ignore-errors |
| 368 | t "\\`[^.]")) | 369 | (directory-files "/proc/acpi/thermal_zone/" |
| 370 | t "\\`[^.]"))) | ||
| 369 | "temperature: +\\([0-9]+\\) C$" 1) | 371 | "temperature: +\\([0-9]+\\) C$" 1) |
| 370 | 372 | ||
| 371 | "N/A")) | 373 | "N/A")) |
| @@ -455,7 +457,7 @@ The following %-sequences are provided: | |||
| 455 | 457 | ||
| 456 | (defun battery-search-for-one-match-in-files (files regexp match-num) | 458 | (defun battery-search-for-one-match-in-files (files regexp match-num) |
| 457 | "Search REGEXP in the content of the files listed in FILES. | 459 | "Search REGEXP in the content of the files listed in FILES. |
| 458 | If a match occured, return the parenthesized expression numbered by | 460 | If a match occurred, return the parenthesized expression numbered by |
| 459 | MATCH-NUM in the match. Otherwise, return nil." | 461 | MATCH-NUM in the match. Otherwise, return nil." |
| 460 | (with-temp-buffer | 462 | (with-temp-buffer |
| 461 | (catch 'found | 463 | (catch 'found |
diff --git a/lisp/bindings.el b/lisp/bindings.el index 1d64612d8ca..690431a99e6 100644 --- a/lisp/bindings.el +++ b/lisp/bindings.el | |||
| @@ -476,7 +476,7 @@ Menu of mode operations in the mode line.") | |||
| 476 | (x-popup-menu event mode-line-mode-menu)) | 476 | (x-popup-menu event mode-line-mode-menu)) |
| 477 | 477 | ||
| 478 | (defun mode-line-minor-mode-help (event) | 478 | (defun mode-line-minor-mode-help (event) |
| 479 | "Describe minor mode for EVENT occured on minor modes area of the mode line." | 479 | "Describe minor mode for EVENT occurred on minor modes area of the mode line." |
| 480 | (interactive "@e") | 480 | (interactive "@e") |
| 481 | (let ((indicator (car (nth 4 (car (cdr event)))))) | 481 | (let ((indicator (car (nth 4 (car (cdr event)))))) |
| 482 | (describe-minor-mode-from-indicator indicator))) | 482 | (describe-minor-mode-from-indicator indicator))) |
diff --git a/lisp/calendar/icalendar.el b/lisp/calendar/icalendar.el index 6fecc86bf34..9de4d1f3954 100644 --- a/lisp/calendar/icalendar.el +++ b/lisp/calendar/icalendar.el | |||
| @@ -709,7 +709,7 @@ would be \"pm\"." | |||
| 709 | "Export diary file to iCalendar format. | 709 | "Export diary file to iCalendar format. |
| 710 | All diary entries in the file DIARY-FILENAME are converted to iCalendar | 710 | All diary entries in the file DIARY-FILENAME are converted to iCalendar |
| 711 | format. The result is appended to the file ICAL-FILENAME." | 711 | format. The result is appended to the file ICAL-FILENAME." |
| 712 | (interactive "FExport diary data from file: | 712 | (interactive "FExport diary data from file: |
| 713 | Finto iCalendar file: ") | 713 | Finto iCalendar file: ") |
| 714 | (save-current-buffer | 714 | (save-current-buffer |
| 715 | (set-buffer (find-file diary-filename)) | 715 | (set-buffer (find-file diary-filename)) |
| @@ -1453,8 +1453,8 @@ Argument ICAL-FILENAME output iCalendar file. | |||
| 1453 | Argument DIARY-FILENAME input `diary-file'. | 1453 | Argument DIARY-FILENAME input `diary-file'. |
| 1454 | Optional argument NON-MARKING determines whether events are created as | 1454 | Optional argument NON-MARKING determines whether events are created as |
| 1455 | non-marking or not." | 1455 | non-marking or not." |
| 1456 | (interactive "fImport iCalendar data from file: | 1456 | (interactive "fImport iCalendar data from file: |
| 1457 | Finto diary file: | 1457 | Finto diary file: |
| 1458 | p") | 1458 | p") |
| 1459 | ;; clean up the diary file | 1459 | ;; clean up the diary file |
| 1460 | (save-current-buffer | 1460 | (save-current-buffer |
| @@ -1479,7 +1479,7 @@ NON-MARKING determines whether diary events are created as | |||
| 1479 | non-marking. | 1479 | non-marking. |
| 1480 | 1480 | ||
| 1481 | Return code t means that importing worked well, return code nil | 1481 | Return code t means that importing worked well, return code nil |
| 1482 | means that an error has occured. Error messages will be in the | 1482 | means that an error has occurred. Error messages will be in the |
| 1483 | buffer `*icalendar-errors*'." | 1483 | buffer `*icalendar-errors*'." |
| 1484 | (interactive) | 1484 | (interactive) |
| 1485 | (save-current-buffer | 1485 | (save-current-buffer |
| @@ -1508,7 +1508,7 @@ buffer `*icalendar-errors*'." | |||
| 1508 | (set-buffer b) | 1508 | (set-buffer b) |
| 1509 | (save-buffer))))) | 1509 | (save-buffer))))) |
| 1510 | (message "Converting icalendar...done") | 1510 | (message "Converting icalendar...done") |
| 1511 | ;; return t if no error occured | 1511 | ;; return t if no error occurred |
| 1512 | (not ical-errors)) | 1512 | (not ical-errors)) |
| 1513 | (message | 1513 | (message |
| 1514 | "Current buffer does not contain icalendar contents!") | 1514 | "Current buffer does not contain icalendar contents!") |
diff --git a/lisp/ediff-init.el b/lisp/ediff-init.el index 2fc0ceefe4d..75b2fdc6fc5 100644 --- a/lisp/ediff-init.el +++ b/lisp/ediff-init.el | |||
| @@ -1410,9 +1410,10 @@ This property can be toggled interactively." | |||
| 1410 | 1410 | ||
| 1411 | (defcustom ediff-autostore-merges 'group-jobs-only | 1411 | (defcustom ediff-autostore-merges 'group-jobs-only |
| 1412 | "*Save the results of merge jobs automatically. | 1412 | "*Save the results of merge jobs automatically. |
| 1413 | nil means don't save automatically. t means always save. Anything else | 1413 | With value nil, don't save automatically. With value t, always |
| 1414 | means save automatically only if the merge job is part of a group of jobs, such | 1414 | save. Anything else means save automatically only if the merge |
| 1415 | as `ediff-merge-directory' or `ediff-merge-directory-revisions'." | 1415 | job is part of a group of jobs, such as `ediff-merge-directory' |
| 1416 | or `ediff-merge-directory-revisions'." | ||
| 1416 | :type '(choice (const nil) (const t) (const group-jobs-only)) | 1417 | :type '(choice (const nil) (const t) (const group-jobs-only)) |
| 1417 | :group 'ediff-merge) | 1418 | :group 'ediff-merge) |
| 1418 | (make-variable-buffer-local 'ediff-autostore-merges) | 1419 | (make-variable-buffer-local 'ediff-autostore-merges) |
diff --git a/lisp/emacs-lisp/pp.el b/lisp/emacs-lisp/pp.el index 77f8854e022..27cb936c598 100644 --- a/lisp/emacs-lisp/pp.el +++ b/lisp/emacs-lisp/pp.el | |||
| @@ -97,16 +97,13 @@ Output stream is STREAM, or value of `standard-output' (which see)." | |||
| 97 | (princ (pp-to-string object) (or stream standard-output))) | 97 | (princ (pp-to-string object) (or stream standard-output))) |
| 98 | 98 | ||
| 99 | ;;;###autoload | 99 | ;;;###autoload |
| 100 | (defun pp-eval-expression (expval) | 100 | (defun pp-eval-expression (expression) |
| 101 | "Evaluate an expression, then pretty-print value EXPVAL into a new buffer. | 101 | "Evaluate EXPRESSION and pretty-print its value. |
| 102 | If pretty-printed EXPVAL fits on one line, display it in the echo | 102 | Also add the value to the front of the list in the variable `values'." |
| 103 | area instead. Also add EXPVAL to the front of the list | 103 | (interactive |
| 104 | in the variable `values'. | 104 | (list (read-from-minibuffer "Eval: " nil read-expression-map t |
| 105 | 105 | 'read-expression-history))) | |
| 106 | Non-interactively, the argument is the value, EXPVAL, not the expression | 106 | (setq values (cons (eval expression) values)) |
| 107 | to evaluate." | ||
| 108 | (interactive "XPp-eval: ") | ||
| 109 | (setq values (cons expval values)) | ||
| 110 | (let* ((old-show-function temp-buffer-show-function) | 107 | (let* ((old-show-function temp-buffer-show-function) |
| 111 | ;; Use this function to display the buffer. | 108 | ;; Use this function to display the buffer. |
| 112 | ;; This function either decides not to display it at all | 109 | ;; This function either decides not to display it at all |
diff --git a/lisp/faces.el b/lisp/faces.el index a3d0e8b6de6..0736cda2993 100644 --- a/lisp/faces.el +++ b/lisp/faces.el | |||
| @@ -2179,17 +2179,18 @@ terminal type to a different value." | |||
| 2179 | :version "21.1" | 2179 | :version "21.1" |
| 2180 | :group 'basic-faces) | 2180 | :group 'basic-faces) |
| 2181 | 2181 | ||
| 2182 | (defface momentary | ||
| 2183 | '((t (:inherit mode-line))) | ||
| 2184 | "Face for momentarily displaying text in the current buffer." | ||
| 2185 | :group 'display) | ||
| 2186 | |||
| 2187 | (defface vertical-border | 2182 | (defface vertical-border |
| 2188 | '((((type tty)) :inherit mode-line-inactive)) | 2183 | '((((type tty)) :inherit mode-line-inactive)) |
| 2189 | "Face used for vertical window dividers on ttys." | 2184 | "Face used for vertical window dividers on ttys." |
| 2190 | :version "22.1" | 2185 | :version "22.1" |
| 2191 | :group 'basic-faces) | 2186 | :group 'basic-faces) |
| 2192 | 2187 | ||
| 2188 | (defface momentary | ||
| 2189 | '((t (:inherit mode-line))) | ||
| 2190 | "Face for momentarily displaying text in the current buffer." | ||
| 2191 | :version "22.1" | ||
| 2192 | :group 'basic-faces) | ||
| 2193 | |||
| 2193 | (defface minibuffer-prompt | 2194 | (defface minibuffer-prompt |
| 2194 | '((((background dark)) :foreground "cyan") | 2195 | '((((background dark)) :foreground "cyan") |
| 2195 | ;; Don't use blue because many users of the MS-DOS port customize | 2196 | ;; Don't use blue because many users of the MS-DOS port customize |
diff --git a/lisp/files.el b/lisp/files.el index 3834424ed4e..3b28f28b59b 100644 --- a/lisp/files.el +++ b/lisp/files.el | |||
| @@ -1289,8 +1289,9 @@ Choose the buffer's name using `generate-new-buffer-name'." | |||
| 1289 | 1289 | ||
| 1290 | (defun abbreviate-file-name (filename) | 1290 | (defun abbreviate-file-name (filename) |
| 1291 | "Return a version of FILENAME shortened using `directory-abbrev-alist'. | 1291 | "Return a version of FILENAME shortened using `directory-abbrev-alist'. |
| 1292 | This also substitutes \"~\" for the user's home directory and | 1292 | This also substitutes \"~\" for the user's home directory (unless the |
| 1293 | removes automounter prefixes (see the variable `automount-dir-prefix')." | 1293 | home directory is a root directory) and removes automounter prefixes |
| 1294 | \(see the variable `automount-dir-prefix')." | ||
| 1294 | ;; Get rid of the prefixes added by the automounter. | 1295 | ;; Get rid of the prefixes added by the automounter. |
| 1295 | (save-match-data | 1296 | (save-match-data |
| 1296 | (if (and automount-dir-prefix | 1297 | (if (and automount-dir-prefix |
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index ec7476b8758..a56f9ff1536 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog | |||
| @@ -1,8 +1,38 @@ | |||
| 1 | 2007-01-07 Reiner Steib <Reiner.Steib@gmx.de> | ||
| 2 | |||
| 3 | * gnus-soup.el: Add missing :group in previous change. | ||
| 4 | |||
| 1 | 2007-01-05 Reiner Steib <Reiner.Steib@gmx.de> | 5 | 2007-01-05 Reiner Steib <Reiner.Steib@gmx.de> |
| 2 | 6 | ||
| 3 | * gnus-soup.el (gnus-soup): New custom group. Make user variables | 7 | * gnus-soup.el (gnus-soup): New custom group. Make user variables |
| 4 | customizable. | 8 | customizable. |
| 5 | 9 | ||
| 10 | 2007-01-03 Andreas Seltenreich <uwi7@rz.uni-karlsruhe.de> | ||
| 11 | |||
| 12 | * nnweb.el (nnweb-gmane-create-mapping): Put back code to merge the | ||
| 13 | headers read from disk with the ones newly found in the current search. | ||
| 14 | This should no longer cause problems, because the article numbers in | ||
| 15 | Gmane's `nov.php' output are ignored since the previous change. | ||
| 16 | |||
| 17 | 2006-01-03 Andreas Seltenreich <uwi7@rz.uni-karlsruhe.de> | ||
| 18 | |||
| 19 | * nnweb.el (nnweb-gmane-create-mapping): Keep the mapping stable for | ||
| 20 | solid groups. | ||
| 21 | |||
| 22 | 2006-01-03 Lars Magne Ingebrigtsen <larsi@gnus.org> | ||
| 23 | |||
| 24 | * nnweb.el (nnweb-gmane-create-mapping): Use the article number from | ||
| 25 | the headers when creating the mapping to avoid mismappings. | ||
| 26 | (nnweb-gmane-create-mapping): Always nix out old mapping. | ||
| 27 | |||
| 28 | 2007-01-02 Andreas Seltenreich <uwi7@rz.uni-karlsruhe.de> | ||
| 29 | |||
| 30 | * gmm-utils.el (gmm-tool-bar-style): Fix custom type. | ||
| 31 | |||
| 32 | 2007-01-01 Katsumi Yamaoka <yamaoka@jpl.org> | ||
| 33 | |||
| 34 | * mm-decode.el (mm-display-external): Use itimer function for XEmacs. | ||
| 35 | |||
| 6 | 2006-12-30 Andreas Seltenreich <uwi7@rz.uni-karlsruhe.de> | 36 | 2006-12-30 Andreas Seltenreich <uwi7@rz.uni-karlsruhe.de> |
| 7 | 37 | ||
| 8 | * gnus-sum.el (gnus-summary-insert-dormant-articles): Fix typo in | 38 | * gnus-sum.el (gnus-summary-insert-dormant-articles): Fix typo in |
diff --git a/lisp/gnus/gmm-utils.el b/lisp/gnus/gmm-utils.el index 59d02927008..18b1a528c29 100644 --- a/lisp/gnus/gmm-utils.el +++ b/lisp/gnus/gmm-utils.el | |||
| @@ -203,8 +203,8 @@ This is copy of the `lazy' widget in Emacs 22.1 provided for compatibility." | |||
| 203 | 'gnome | 203 | 'gnome |
| 204 | 'retro) | 204 | 'retro) |
| 205 | "Prefered tool bar style." | 205 | "Prefered tool bar style." |
| 206 | :type '(choice (const :tag "GNOME style" 'gnome) | 206 | :type '(choice (const :tag "GNOME style" gnome) |
| 207 | (const :tag "Retro look" 'retro)) | 207 | (const :tag "Retro look" retro)) |
| 208 | :group 'gmm) | 208 | :group 'gmm) |
| 209 | 209 | ||
| 210 | (defvar tool-bar-map) | 210 | (defvar tool-bar-map) |
diff --git a/lisp/gnus/gnus-soup.el b/lisp/gnus/gnus-soup.el index 31074cb8c77..d5b1a9fad88 100644 --- a/lisp/gnus/gnus-soup.el +++ b/lisp/gnus/gnus-soup.el | |||
| @@ -45,18 +45,21 @@ | |||
| 45 | (defcustom gnus-soup-directory (nnheader-concat gnus-home-directory "SoupBrew/") | 45 | (defcustom gnus-soup-directory (nnheader-concat gnus-home-directory "SoupBrew/") |
| 46 | "Directory containing an unpacked SOUP packet." | 46 | "Directory containing an unpacked SOUP packet." |
| 47 | :version "22.1" ;; Gnus 5.10.9 | 47 | :version "22.1" ;; Gnus 5.10.9 |
| 48 | :type 'directory) | 48 | :type 'directory |
| 49 | :group 'gnus-soup) | ||
| 49 | 50 | ||
| 50 | (defcustom gnus-soup-replies-directory | 51 | (defcustom gnus-soup-replies-directory |
| 51 | (nnheader-concat gnus-soup-directory "SoupReplies/") | 52 | (nnheader-concat gnus-soup-directory "SoupReplies/") |
| 52 | "Directory where Gnus will do processing of replies." | 53 | "Directory where Gnus will do processing of replies." |
| 53 | :version "22.1" ;; Gnus 5.10.9 | 54 | :version "22.1" ;; Gnus 5.10.9 |
| 54 | :type 'directory) | 55 | :type 'directory |
| 56 | :group 'gnus-soup) | ||
| 55 | 57 | ||
| 56 | (defcustom gnus-soup-prefix-file "gnus-prefix" | 58 | (defcustom gnus-soup-prefix-file "gnus-prefix" |
| 57 | "Name of the file where Gnus stores the last used prefix." | 59 | "Name of the file where Gnus stores the last used prefix." |
| 58 | :version "22.1" ;; Gnus 5.10.9 | 60 | :version "22.1" ;; Gnus 5.10.9 |
| 59 | :type 'file) | 61 | :type 'file |
| 62 | :group 'gnus-soup) | ||
| 60 | 63 | ||
| 61 | (defcustom gnus-soup-packer "tar cf - %s | gzip > $HOME/Soupout%d.tgz" | 64 | (defcustom gnus-soup-packer "tar cf - %s | gzip > $HOME/Soupout%d.tgz" |
| 62 | "Format string command for packing a SOUP packet. | 65 | "Format string command for packing a SOUP packet. |
| @@ -64,28 +67,33 @@ The SOUP files will be inserted where the %s is in the string. | |||
| 64 | This string MUST contain both %s and %d. The file number will be | 67 | This string MUST contain both %s and %d. The file number will be |
| 65 | inserted where %d appears." | 68 | inserted where %d appears." |
| 66 | :version "22.1" ;; Gnus 5.10.9 | 69 | :version "22.1" ;; Gnus 5.10.9 |
| 67 | :type 'string) | 70 | :type 'string |
| 71 | :group 'gnus-soup) | ||
| 68 | 72 | ||
| 69 | (defcustom gnus-soup-unpacker "gunzip -c %s | tar xvf -" | 73 | (defcustom gnus-soup-unpacker "gunzip -c %s | tar xvf -" |
| 70 | "Format string command for unpacking a SOUP packet. | 74 | "Format string command for unpacking a SOUP packet. |
| 71 | The SOUP packet file name will be inserted at the %s." | 75 | The SOUP packet file name will be inserted at the %s." |
| 72 | :version "22.1" ;; Gnus 5.10.9 | 76 | :version "22.1" ;; Gnus 5.10.9 |
| 73 | :type 'string) | 77 | :type 'string |
| 78 | :group 'gnus-soup) | ||
| 74 | 79 | ||
| 75 | (defcustom gnus-soup-packet-directory gnus-home-directory | 80 | (defcustom gnus-soup-packet-directory gnus-home-directory |
| 76 | "Where gnus-soup will look for REPLIES packets." | 81 | "Where gnus-soup will look for REPLIES packets." |
| 77 | :version "22.1" ;; Gnus 5.10.9 | 82 | :version "22.1" ;; Gnus 5.10.9 |
| 78 | :type 'directory) | 83 | :type 'directory |
| 84 | :group 'gnus-soup) | ||
| 79 | 85 | ||
| 80 | (defcustom gnus-soup-packet-regexp "Soupin" | 86 | (defcustom gnus-soup-packet-regexp "Soupin" |
| 81 | "Regular expression matching SOUP REPLIES packets in `gnus-soup-packet-directory'." | 87 | "Regular expression matching SOUP REPLIES packets in `gnus-soup-packet-directory'." |
| 82 | :version "22.1" ;; Gnus 5.10.9 | 88 | :version "22.1" ;; Gnus 5.10.9 |
| 83 | :type 'regexp) | 89 | :type 'regexp |
| 90 | :group 'gnus-soup) | ||
| 84 | 91 | ||
| 85 | (defcustom gnus-soup-ignored-headers "^Xref:" | 92 | (defcustom gnus-soup-ignored-headers "^Xref:" |
| 86 | "Regexp to match headers to be removed when brewing SOUP packets." | 93 | "Regexp to match headers to be removed when brewing SOUP packets." |
| 87 | :version "22.1" ;; Gnus 5.10.9 | 94 | :version "22.1" ;; Gnus 5.10.9 |
| 88 | :type 'regexp) | 95 | :type 'regexp |
| 96 | :group 'gnus-soup) | ||
| 89 | 97 | ||
| 90 | ;;; Internal Variables: | 98 | ;;; Internal Variables: |
| 91 | 99 | ||
diff --git a/lisp/gnus/mm-decode.el b/lisp/gnus/mm-decode.el index 7e6f93be1f1..361c83cfa7c 100644 --- a/lisp/gnus/mm-decode.el +++ b/lisp/gnus/mm-decode.el | |||
| @@ -883,13 +883,21 @@ external if displayed external." | |||
| 883 | ;; a vector in Emacs but is a list in XEmacs) | 883 | ;; a vector in Emacs but is a list in XEmacs) |
| 884 | ;; requires that it is lexically scoped. | 884 | ;; requires that it is lexically scoped. |
| 885 | (timer (run-at-time 2.0 nil 'ignore))) | 885 | (timer (run-at-time 2.0 nil 'ignore))) |
| 886 | (lambda (process state) | 886 | (if (boundp 'itimer-list) |
| 887 | (when (eq 'exit (process-status process)) | 887 | (lambda (process state) |
| 888 | (if (memq timer timer-list) | 888 | (when (eq 'exit (process-status process)) |
| 889 | (timer-set-function timer fn) | 889 | (if (memq timer itimer-list) |
| 890 | (funcall fn)) | 890 | (set-itimer-function timer fn) |
| 891 | (ignore-errors (eval fm)) | 891 | (funcall fn)) |
| 892 | (message "%s" done)))))) | 892 | (ignore-errors (eval fm)) |
| 893 | (message "%s" done))) | ||
| 894 | (lambda (process state) | ||
| 895 | (when (eq 'exit (process-status process)) | ||
| 896 | (if (memq timer timer-list) | ||
| 897 | (timer-set-function timer fn) | ||
| 898 | (funcall fn)) | ||
| 899 | (ignore-errors (eval fm)) | ||
| 900 | (message "%s" done))))))) | ||
| 893 | (mm-handle-set-external-undisplayer | 901 | (mm-handle-set-external-undisplayer |
| 894 | handle (cons file buffer))) | 902 | handle (cons file buffer))) |
| 895 | (message "Displaying %s..." command)) | 903 | (message "Displaying %s..." command)) |
diff --git a/lisp/gnus/nnweb.el b/lisp/gnus/nnweb.el index d020d533aea..54c57879d5b 100644 --- a/lisp/gnus/nnweb.el +++ b/lisp/gnus/nnweb.el | |||
| @@ -480,7 +480,7 @@ Valid types include `google', `dejanews', and `gmane'.") | |||
| 480 | (from (mail-header-from header)) | 480 | (from (mail-header-from header)) |
| 481 | (subject (mail-header-subject header)) | 481 | (subject (mail-header-subject header)) |
| 482 | (rfc2047-encoding-type 'mime)) | 482 | (rfc2047-encoding-type 'mime)) |
| 483 | (when (string-match " \\([^:]+\\):\\([0-9]+\\)" xref) | 483 | (when (string-match " \\([^:]+\\)[:/]\\([0-9]+\\)" xref) |
| 484 | (mail-header-set-xref | 484 | (mail-header-set-xref |
| 485 | header | 485 | header |
| 486 | (format "http://article.gmane.org/%s/%s/raw" | 486 | (format "http://article.gmane.org/%s/%s/raw" |
| @@ -496,11 +496,8 @@ Valid types include `google', `dejanews', and `gmane'.") | |||
| 496 | (rfc2047-encode-string subject)) | 496 | (rfc2047-encode-string subject)) |
| 497 | 497 | ||
| 498 | (unless (nnweb-get-hashtb (mail-header-xref header)) | 498 | (unless (nnweb-get-hashtb (mail-header-xref header)) |
| 499 | (push | 499 | (mail-header-set-number header (incf (cdr active))) |
| 500 | (list | 500 | (push (list (mail-header-number header) header) map) |
| 501 | (incf (cdr active)) | ||
| 502 | header) | ||
| 503 | map) | ||
| 504 | (nnweb-set-hashtb (cadar map) (car map)))))) | 501 | (nnweb-set-hashtb (cadar map) (car map)))))) |
| 505 | (forward-line 1))) | 502 | (forward-line 1))) |
| 506 | (nnheader-message 7 "Searching Gmane...done") | 503 | (nnheader-message 7 "Searching Gmane...done") |
diff --git a/lisp/info.el b/lisp/info.el index 6d966da3317..880b659faa6 100644 --- a/lisp/info.el +++ b/lisp/info.el | |||
| @@ -3996,7 +3996,9 @@ the variable `Info-file-list-for-emacs'." | |||
| 3996 | (setq res (car hl) hl nil) | 3996 | (setq res (car hl) hl nil) |
| 3997 | (setq hl (cdr hl)))) | 3997 | (setq hl (cdr hl)))) |
| 3998 | res))) 'info-xref-visited 'info-xref))) | 3998 | res))) 'info-xref-visited 'info-xref))) |
| 3999 | (when (and not-fontified-p (memq Info-hide-note-references '(t hide))) | 3999 | (when (and not-fontified-p |
| 4000 | (memq Info-hide-note-references '(t hide)) | ||
| 4001 | (not (Info-index-node))) | ||
| 4000 | (put-text-property (match-beginning 2) (1- (match-end 6)) | 4002 | (put-text-property (match-beginning 2) (1- (match-end 6)) |
| 4001 | 'invisible t) | 4003 | 'invisible t) |
| 4002 | ;; Unhide the file name in parens | 4004 | ;; Unhide the file name in parens |
diff --git a/lisp/international/mule-cmds.el b/lisp/international/mule-cmds.el index 65c3f6fe5ff..41f6b376995 100644 --- a/lisp/international/mule-cmds.el +++ b/lisp/international/mule-cmds.el | |||
| @@ -788,10 +788,10 @@ e.g., for sending an email message.\n ") | |||
| 788 | (car coding))))) | 788 | (car coding))))) |
| 789 | (setq i (1+ i)))) | 789 | (setq i (1+ i)))) |
| 790 | (insert "\n")) | 790 | (insert "\n")) |
| 791 | (insert "\ | 791 | (insert (substitute-command-keys "\ |
| 792 | 792 | ||
| 793 | Click on a character to jump to the place it appears,\n" | 793 | Click on a character (or switch to this window by `\\[other-window]'\n\ |
| 794 | (substitute-command-keys "\ | 794 | and select the characters by RET) to jump to the place it appears,\n\ |
| 795 | where `\\[universal-argument] \\[what-cursor-position]' will give information about it.\n")))) | 795 | where `\\[universal-argument] \\[what-cursor-position]' will give information about it.\n")))) |
| 796 | (insert (substitute-command-keys "\nSelect \ | 796 | (insert (substitute-command-keys "\nSelect \ |
| 797 | one of the safe coding systems listed below,\n\ | 797 | one of the safe coding systems listed below,\n\ |
diff --git a/lisp/ldefs-boot.el b/lisp/ldefs-boot.el index 18248771da0..80e2f978f58 100644 --- a/lisp/ldefs-boot.el +++ b/lisp/ldefs-boot.el | |||
| @@ -5782,8 +5782,8 @@ suggest to customize that face, if it's customizable. | |||
| 5782 | 5782 | ||
| 5783 | \(fn &optional FACE)" t nil) | 5783 | \(fn &optional FACE)" t nil) |
| 5784 | 5784 | ||
| 5785 | (autoload (quote customize-customized) "cus-edit" "\ | 5785 | (autoload (quote customize-unsaved) "cus-edit" "\ |
| 5786 | Customize all user options set since the last save in this session. | 5786 | Customize all user options set in this session but not saved. |
| 5787 | 5787 | ||
| 5788 | \(fn)" t nil) | 5788 | \(fn)" t nil) |
| 5789 | 5789 | ||
| @@ -6029,11 +6029,10 @@ This function is designed to be added to hooks, for example: | |||
| 6029 | Non-nil if Global-Cwarn mode is enabled. | 6029 | Non-nil if Global-Cwarn mode is enabled. |
| 6030 | See the command `global-cwarn-mode' for a description of this minor-mode. | 6030 | See the command `global-cwarn-mode' for a description of this minor-mode. |
| 6031 | Setting this variable directly does not take effect; | 6031 | Setting this variable directly does not take effect; |
| 6032 | use either \\[customize] or the function `global-cwarn-mode'.") | 6032 | either customize it (see the info node `Easy Customization') |
| 6033 | 6033 | or call the function `global-cwarn-mode'.") | |
| 6034 | (custom-autoload (quote global-cwarn-mode) "cwarn") | ||
| 6035 | 6034 | ||
| 6036 | (put (quote global-cwarn-mode) (quote custom-set) (quote custom-set-minor-mode)) | 6035 | (custom-autoload (quote global-cwarn-mode) "cwarn" nil) |
| 6037 | 6036 | ||
| 6038 | (autoload (quote global-cwarn-mode) "cwarn" "\ | 6037 | (autoload (quote global-cwarn-mode) "cwarn" "\ |
| 6039 | Toggle Cwarn mode in every buffer. | 6038 | Toggle Cwarn mode in every buffer. |
| @@ -6407,11 +6406,10 @@ no args, if that value is non-nil. | |||
| 6407 | Non-nil if Delete-Selection mode is enabled. | 6406 | Non-nil if Delete-Selection mode is enabled. |
| 6408 | See the command `delete-selection-mode' for a description of this minor-mode. | 6407 | See the command `delete-selection-mode' for a description of this minor-mode. |
| 6409 | Setting this variable directly does not take effect; | 6408 | Setting this variable directly does not take effect; |
| 6410 | use either \\[customize] or the function `delete-selection-mode'.") | 6409 | either customize it (see the info node `Easy Customization') |
| 6411 | 6410 | or call the function `delete-selection-mode'.") | |
| 6412 | (custom-autoload (quote delete-selection-mode) "delsel") | ||
| 6413 | 6411 | ||
| 6414 | (put (quote delete-selection-mode) (quote custom-set) (quote custom-set-minor-mode)) | 6412 | (custom-autoload (quote delete-selection-mode) "delsel" nil) |
| 6415 | 6413 | ||
| 6416 | (autoload (quote delete-selection-mode) "delsel" "\ | 6414 | (autoload (quote delete-selection-mode) "delsel" "\ |
| 6417 | Toggle Delete Selection mode. | 6415 | Toggle Delete Selection mode. |
| @@ -7973,6 +7971,10 @@ If MAP is specified, it should normally be a keymap; nil stands for the local | |||
| 7973 | menu-bar keymap. It can also be a symbol, which has earlier been used as the | 7971 | menu-bar keymap. It can also be a symbol, which has earlier been used as the |
| 7974 | first argument in a call to `easy-menu-define', or the value of such a symbol. | 7972 | first argument in a call to `easy-menu-define', or the value of such a symbol. |
| 7975 | 7973 | ||
| 7974 | If MAP is specified, it should normally be a keymap; nil stands for the local | ||
| 7975 | menu-bar keymap. It can also be a symbol, which has earlier been used as the | ||
| 7976 | first argument in a call to `easy-menu-define', or the value of such a symbol. | ||
| 7977 | |||
| 7976 | If the menu located by PATH has no submenu named NAME, add one. | 7978 | If the menu located by PATH has no submenu named NAME, add one. |
| 7977 | If the optional argument BEFORE is present, add it just before | 7979 | If the optional argument BEFORE is present, add it just before |
| 7978 | the submenu named BEFORE, otherwise add it at the end of the menu. | 7980 | the submenu named BEFORE, otherwise add it at the end of the menu. |
| @@ -9690,7 +9692,7 @@ Use the `etags' program to make a tags table file.") | |||
| 9690 | A value of t means case-insensitive, a value of nil means case-sensitive. | 9692 | A value of t means case-insensitive, a value of nil means case-sensitive. |
| 9691 | Any other value means use the setting of `case-fold-search'.") | 9693 | Any other value means use the setting of `case-fold-search'.") |
| 9692 | 9694 | ||
| 9693 | (custom-autoload (quote tags-case-fold-search) "etags") | 9695 | (custom-autoload (quote tags-case-fold-search) "etags" t) |
| 9694 | 9696 | ||
| 9695 | (defvar tags-table-list nil "\ | 9697 | (defvar tags-table-list nil "\ |
| 9696 | *List of file names of tags tables to search. | 9698 | *List of file names of tags tables to search. |
| @@ -9699,7 +9701,7 @@ To switch to a new list of tags tables, setting this variable is sufficient. | |||
| 9699 | If you set this variable, do not also set `tags-file-name'. | 9701 | If you set this variable, do not also set `tags-file-name'. |
| 9700 | Use the `etags' program to make a tags table file.") | 9702 | Use the `etags' program to make a tags table file.") |
| 9701 | 9703 | ||
| 9702 | (custom-autoload (quote tags-table-list) "etags") | 9704 | (custom-autoload (quote tags-table-list) "etags" t) |
| 9703 | 9705 | ||
| 9704 | (defvar tags-compression-info-list (quote ("" ".Z" ".bz2" ".gz" ".tgz")) "\ | 9706 | (defvar tags-compression-info-list (quote ("" ".Z" ".bz2" ".gz" ".tgz")) "\ |
| 9705 | *List of extensions tried by etags when jka-compr is used. | 9707 | *List of extensions tried by etags when jka-compr is used. |
| @@ -9708,7 +9710,7 @@ These extensions will be tried only if jka-compr was activated | |||
| 9708 | \(i.e. via customize of `auto-compression-mode' or by calling the function | 9710 | \(i.e. via customize of `auto-compression-mode' or by calling the function |
| 9709 | `auto-compression-mode').") | 9711 | `auto-compression-mode').") |
| 9710 | 9712 | ||
| 9711 | (custom-autoload (quote tags-compression-info-list) "etags") | 9713 | (custom-autoload (quote tags-compression-info-list) "etags" t) |
| 9712 | 9714 | ||
| 9713 | (defvar tags-add-tables (quote ask-user) "\ | 9715 | (defvar tags-add-tables (quote ask-user) "\ |
| 9714 | *Control whether to add a new tags table to the current list. | 9716 | *Control whether to add a new tags table to the current list. |
| @@ -9716,14 +9718,14 @@ t means do; nil means don't (always start a new list). | |||
| 9716 | Any other value means ask the user whether to add a new tags table | 9718 | Any other value means ask the user whether to add a new tags table |
| 9717 | to the current list (as opposed to starting a new list).") | 9719 | to the current list (as opposed to starting a new list).") |
| 9718 | 9720 | ||
| 9719 | (custom-autoload (quote tags-add-tables) "etags") | 9721 | (custom-autoload (quote tags-add-tables) "etags" t) |
| 9720 | 9722 | ||
| 9721 | (defvar find-tag-hook nil "\ | 9723 | (defvar find-tag-hook nil "\ |
| 9722 | *Hook to be run by \\[find-tag] after finding a tag. See `run-hooks'. | 9724 | *Hook to be run by \\[find-tag] after finding a tag. See `run-hooks'. |
| 9723 | The value in the buffer in which \\[find-tag] is done is used, | 9725 | The value in the buffer in which \\[find-tag] is done is used, |
| 9724 | not the value in the buffer \\[find-tag] goes to.") | 9726 | not the value in the buffer \\[find-tag] goes to.") |
| 9725 | 9727 | ||
| 9726 | (custom-autoload (quote find-tag-hook) "etags") | 9728 | (custom-autoload (quote find-tag-hook) "etags" t) |
| 9727 | 9729 | ||
| 9728 | (defvar find-tag-default-function nil "\ | 9730 | (defvar find-tag-default-function nil "\ |
| 9729 | *A function of no arguments used by \\[find-tag] to pick a default tag. | 9731 | *A function of no arguments used by \\[find-tag] to pick a default tag. |
| @@ -9731,7 +9733,7 @@ If nil, and the symbol that is the value of `major-mode' | |||
| 9731 | has a `find-tag-default-function' property (see `put'), that is used. | 9733 | has a `find-tag-default-function' property (see `put'), that is used. |
| 9732 | Otherwise, `find-tag-default' is used.") | 9734 | Otherwise, `find-tag-default' is used.") |
| 9733 | 9735 | ||
| 9734 | (custom-autoload (quote find-tag-default-function) "etags") | 9736 | (custom-autoload (quote find-tag-default-function) "etags" t) |
| 9735 | 9737 | ||
| 9736 | (autoload (quote tags-table-mode) "etags" "\ | 9738 | (autoload (quote tags-table-mode) "etags" "\ |
| 9737 | Major mode for tags table file buffers. | 9739 | Major mode for tags table file buffers. |
| @@ -13360,11 +13362,10 @@ is found. A mode is excluded if it's in the list `hi-lock-exclude-modes'. | |||
| 13360 | Non-nil if Global-Hi-Lock mode is enabled. | 13362 | Non-nil if Global-Hi-Lock mode is enabled. |
| 13361 | See the command `global-hi-lock-mode' for a description of this minor-mode. | 13363 | See the command `global-hi-lock-mode' for a description of this minor-mode. |
| 13362 | Setting this variable directly does not take effect; | 13364 | Setting this variable directly does not take effect; |
| 13363 | use either \\[customize] or the function `global-hi-lock-mode'.") | 13365 | either customize it (see the info node `Easy Customization') |
| 13364 | 13366 | or call the function `global-hi-lock-mode'.") | |
| 13365 | (custom-autoload (quote global-hi-lock-mode) "hi-lock") | ||
| 13366 | 13367 | ||
| 13367 | (put (quote global-hi-lock-mode) (quote custom-set) (quote custom-set-minor-mode)) | 13368 | (custom-autoload (quote global-hi-lock-mode) "hi-lock" nil) |
| 13368 | 13369 | ||
| 13369 | (autoload (quote global-hi-lock-mode) "hi-lock" "\ | 13370 | (autoload (quote global-hi-lock-mode) "hi-lock" "\ |
| 13370 | Toggle Hi-Lock mode in every buffer. | 13371 | Toggle Hi-Lock mode in every buffer. |
| @@ -15009,6 +15010,15 @@ This function is intended to be used from `magic-mode-alist' (which see). | |||
| 15009 | 15010 | ||
| 15010 | \(fn)" nil nil) | 15011 | \(fn)" nil nil) |
| 15011 | 15012 | ||
| 15013 | (autoload (quote image-type-auto-detected-p) "image" "\ | ||
| 15014 | Return t iff the current buffer contains an auto-detectable image. | ||
| 15015 | Whether image types are auto-detectable or not depends on the setting | ||
| 15016 | of the variable `image-type-auto-detectable'. | ||
| 15017 | |||
| 15018 | This function is intended to be used from `magic-mode-alist' (which see). | ||
| 15019 | |||
| 15020 | \(fn)" nil nil) | ||
| 15021 | |||
| 15012 | (autoload (quote create-image) "image" "\ | 15022 | (autoload (quote create-image) "image" "\ |
| 15013 | Create an image. | 15023 | Create an image. |
| 15014 | FILE-OR-DATA is an image file name or image data. | 15024 | FILE-OR-DATA is an image file name or image data. |
| @@ -15136,7 +15146,7 @@ setting this variable directly does not take effect unless | |||
| 15136 | `auto-image-file-mode' is re-enabled; this happens automatically when | 15146 | `auto-image-file-mode' is re-enabled; this happens automatically when |
| 15137 | the variable is set using \\[customize].") | 15147 | the variable is set using \\[customize].") |
| 15138 | 15148 | ||
| 15139 | (custom-autoload (quote image-file-name-extensions) "image-file") | 15149 | (custom-autoload (quote image-file-name-extensions) "image-file" nil) |
| 15140 | 15150 | ||
| 15141 | (defvar image-file-name-regexps nil "\ | 15151 | (defvar image-file-name-regexps nil "\ |
| 15142 | *List of regexps matching image-file filenames. | 15152 | *List of regexps matching image-file filenames. |
| @@ -15148,7 +15158,7 @@ enabled, setting this variable directly does not take effect unless | |||
| 15148 | `auto-image-file-mode' is re-enabled; this happens automatically when | 15158 | `auto-image-file-mode' is re-enabled; this happens automatically when |
| 15149 | the variable is set using \\[customize].") | 15159 | the variable is set using \\[customize].") |
| 15150 | 15160 | ||
| 15151 | (custom-autoload (quote image-file-name-regexps) "image-file") | 15161 | (custom-autoload (quote image-file-name-regexps) "image-file" nil) |
| 15152 | 15162 | ||
| 15153 | (autoload (quote image-file-name-regexp) "image-file" "\ | 15163 | (autoload (quote image-file-name-regexp) "image-file" "\ |
| 15154 | Return a regular expression matching image-file filenames. | 15164 | Return a regular expression matching image-file filenames. |
| @@ -15166,11 +15176,10 @@ the command `insert-file-contents'. | |||
| 15166 | Non-nil if Auto-Image-File mode is enabled. | 15176 | Non-nil if Auto-Image-File mode is enabled. |
| 15167 | See the command `auto-image-file-mode' for a description of this minor-mode. | 15177 | See the command `auto-image-file-mode' for a description of this minor-mode. |
| 15168 | Setting this variable directly does not take effect; | 15178 | Setting this variable directly does not take effect; |
| 15169 | use either \\[customize] or the function `auto-image-file-mode'.") | 15179 | either customize it (see the info node `Easy Customization') |
| 15170 | 15180 | or call the function `auto-image-file-mode'.") | |
| 15171 | (custom-autoload (quote auto-image-file-mode) "image-file") | ||
| 15172 | 15181 | ||
| 15173 | (put (quote auto-image-file-mode) (quote custom-set) (quote custom-set-minor-mode)) | 15182 | (custom-autoload (quote auto-image-file-mode) "image-file" nil) |
| 15174 | 15183 | ||
| 15175 | (autoload (quote auto-image-file-mode) "image-file" "\ | 15184 | (autoload (quote auto-image-file-mode) "image-file" "\ |
| 15176 | Toggle visiting of image files as images. | 15185 | Toggle visiting of image files as images. |
| @@ -15391,12 +15400,12 @@ Input matching this regexp is not saved on the input history in Inferior Lisp | |||
| 15391 | mode. Default is whitespace followed by 0 or 1 single-letter colon-keyword | 15400 | mode. Default is whitespace followed by 0 or 1 single-letter colon-keyword |
| 15392 | \(as in :a, :c, etc.)") | 15401 | \(as in :a, :c, etc.)") |
| 15393 | 15402 | ||
| 15394 | (custom-autoload (quote inferior-lisp-filter-regexp) "inf-lisp") | 15403 | (custom-autoload (quote inferior-lisp-filter-regexp) "inf-lisp" t) |
| 15395 | 15404 | ||
| 15396 | (defvar inferior-lisp-program "lisp" "\ | 15405 | (defvar inferior-lisp-program "lisp" "\ |
| 15397 | *Program name for invoking an inferior Lisp in Inferior Lisp mode.") | 15406 | *Program name for invoking an inferior Lisp in Inferior Lisp mode.") |
| 15398 | 15407 | ||
| 15399 | (custom-autoload (quote inferior-lisp-program) "inf-lisp") | 15408 | (custom-autoload (quote inferior-lisp-program) "inf-lisp" t) |
| 15400 | 15409 | ||
| 15401 | (defvar inferior-lisp-load-command "(load \"%s\")\n" "\ | 15410 | (defvar inferior-lisp-load-command "(load \"%s\")\n" "\ |
| 15402 | *Format-string for building a Lisp expression to load a file. | 15411 | *Format-string for building a Lisp expression to load a file. |
| @@ -15407,7 +15416,7 @@ The string \"(progn (load \\\"%s\\\" :verbose nil :print t) (values))\\n\" | |||
| 15407 | produces cosmetically superior output for this application, | 15416 | produces cosmetically superior output for this application, |
| 15408 | but it works only in Common Lisp.") | 15417 | but it works only in Common Lisp.") |
| 15409 | 15418 | ||
| 15410 | (custom-autoload (quote inferior-lisp-load-command) "inf-lisp") | 15419 | (custom-autoload (quote inferior-lisp-load-command) "inf-lisp" t) |
| 15411 | 15420 | ||
| 15412 | (defvar inferior-lisp-prompt "^[^> \n]*>+:? *" "\ | 15421 | (defvar inferior-lisp-prompt "^[^> \n]*>+:? *" "\ |
| 15413 | Regexp to recognize prompts in the Inferior Lisp mode. | 15422 | Regexp to recognize prompts in the Inferior Lisp mode. |
| @@ -15425,7 +15434,7 @@ kcl: \"^>+ *\" | |||
| 15425 | 15434 | ||
| 15426 | This is a fine thing to set in your .emacs file or through Custom.") | 15435 | This is a fine thing to set in your .emacs file or through Custom.") |
| 15427 | 15436 | ||
| 15428 | (custom-autoload (quote inferior-lisp-prompt) "inf-lisp") | 15437 | (custom-autoload (quote inferior-lisp-prompt) "inf-lisp" t) |
| 15429 | 15438 | ||
| 15430 | (defvar inferior-lisp-mode-hook (quote nil) "\ | 15439 | (defvar inferior-lisp-mode-hook (quote nil) "\ |
| 15431 | *Hook for customising Inferior Lisp mode.") | 15440 | *Hook for customising Inferior Lisp mode.") |
| @@ -16322,28 +16331,28 @@ Specifies the keypad setup for unshifted keypad keys when NumLock is off. | |||
| 16322 | When selecting the plain numeric keypad setup, the character returned by the | 16331 | When selecting the plain numeric keypad setup, the character returned by the |
| 16323 | decimal key must be specified.") | 16332 | decimal key must be specified.") |
| 16324 | 16333 | ||
| 16325 | (custom-autoload (quote keypad-setup) "keypad") | 16334 | (custom-autoload (quote keypad-setup) "keypad" nil) |
| 16326 | 16335 | ||
| 16327 | (defvar keypad-numlock-setup nil "\ | 16336 | (defvar keypad-numlock-setup nil "\ |
| 16328 | Specifies the keypad setup for unshifted keypad keys when NumLock is on. | 16337 | Specifies the keypad setup for unshifted keypad keys when NumLock is on. |
| 16329 | When selecting the plain numeric keypad setup, the character returned by the | 16338 | When selecting the plain numeric keypad setup, the character returned by the |
| 16330 | decimal key must be specified.") | 16339 | decimal key must be specified.") |
| 16331 | 16340 | ||
| 16332 | (custom-autoload (quote keypad-numlock-setup) "keypad") | 16341 | (custom-autoload (quote keypad-numlock-setup) "keypad" nil) |
| 16333 | 16342 | ||
| 16334 | (defvar keypad-shifted-setup nil "\ | 16343 | (defvar keypad-shifted-setup nil "\ |
| 16335 | Specifies the keypad setup for shifted keypad keys when NumLock is off. | 16344 | Specifies the keypad setup for shifted keypad keys when NumLock is off. |
| 16336 | When selecting the plain numeric keypad setup, the character returned by the | 16345 | When selecting the plain numeric keypad setup, the character returned by the |
| 16337 | decimal key must be specified.") | 16346 | decimal key must be specified.") |
| 16338 | 16347 | ||
| 16339 | (custom-autoload (quote keypad-shifted-setup) "keypad") | 16348 | (custom-autoload (quote keypad-shifted-setup) "keypad" nil) |
| 16340 | 16349 | ||
| 16341 | (defvar keypad-numlock-shifted-setup nil "\ | 16350 | (defvar keypad-numlock-shifted-setup nil "\ |
| 16342 | Specifies the keypad setup for shifted keypad keys when NumLock is off. | 16351 | Specifies the keypad setup for shifted keypad keys when NumLock is off. |
| 16343 | When selecting the plain numeric keypad setup, the character returned by the | 16352 | When selecting the plain numeric keypad setup, the character returned by the |
| 16344 | decimal key must be specified.") | 16353 | decimal key must be specified.") |
| 16345 | 16354 | ||
| 16346 | (custom-autoload (quote keypad-numlock-shifted-setup) "keypad") | 16355 | (custom-autoload (quote keypad-numlock-shifted-setup) "keypad" nil) |
| 16347 | 16356 | ||
| 16348 | (autoload (quote keypad-setup) "keypad" "\ | 16357 | (autoload (quote keypad-setup) "keypad" "\ |
| 16349 | Set keypad bindings in function-key-map according to SETUP. | 16358 | Set keypad bindings in function-key-map according to SETUP. |
| @@ -17286,7 +17295,7 @@ This function normally would be called when the message is sent. | |||
| 17286 | Otherwise, (the default) use a smaller, somewhat faster, and | 17295 | Otherwise, (the default) use a smaller, somewhat faster, and |
| 17287 | often correct parser.") | 17296 | often correct parser.") |
| 17288 | 17297 | ||
| 17289 | (custom-autoload (quote mail-use-rfc822) "mail-utils") | 17298 | (custom-autoload (quote mail-use-rfc822) "mail-utils" t) |
| 17290 | 17299 | ||
| 17291 | (autoload (quote mail-file-babyl-p) "mail-utils" "\ | 17300 | (autoload (quote mail-file-babyl-p) "mail-utils" "\ |
| 17292 | Not documented | 17301 | Not documented |
| @@ -23124,7 +23133,7 @@ SENDERS is a string of names separated by commas. | |||
| 23124 | 23133 | ||
| 23125 | By default, `identity' is set.") | 23134 | By default, `identity' is set.") |
| 23126 | 23135 | ||
| 23127 | (custom-autoload (quote rmail-summary-line-decoder) "rmailsum") | 23136 | (custom-autoload (quote rmail-summary-line-decoder) "rmailsum" t) |
| 23128 | 23137 | ||
| 23129 | (defvar rmail-user-mail-address-regexp nil "\ | 23138 | (defvar rmail-user-mail-address-regexp nil "\ |
| 23130 | *Regexp matching user mail addresses. | 23139 | *Regexp matching user mail addresses. |
| @@ -23567,7 +23576,7 @@ Mode for automatic saving of minibuffer history. | |||
| 23567 | Set this by calling the `savehist-mode' function or using the customize | 23576 | Set this by calling the `savehist-mode' function or using the customize |
| 23568 | interface.") | 23577 | interface.") |
| 23569 | 23578 | ||
| 23570 | (custom-autoload (quote savehist-mode) "savehist") | 23579 | (custom-autoload (quote savehist-mode) "savehist" nil) |
| 23571 | 23580 | ||
| 23572 | (autoload (quote savehist-mode) "savehist" "\ | 23581 | (autoload (quote savehist-mode) "savehist" "\ |
| 23573 | Toggle savehist-mode. | 23582 | Toggle savehist-mode. |
| @@ -24682,7 +24691,7 @@ For example, the form | |||
| 24682 | 24691 | ||
| 24683 | would give military-style times like `21:07 (UTC)'.") | 24692 | would give military-style times like `21:07 (UTC)'.") |
| 24684 | 24693 | ||
| 24685 | (custom-autoload (quote calendar-time-display-form) "solar") | 24694 | (custom-autoload (quote calendar-time-display-form) "solar" t) |
| 24686 | 24695 | ||
| 24687 | (defvar calendar-latitude nil "\ | 24696 | (defvar calendar-latitude nil "\ |
| 24688 | *Latitude of `calendar-location-name' in degrees. | 24697 | *Latitude of `calendar-location-name' in degrees. |
| @@ -24694,7 +24703,7 @@ York City. | |||
| 24694 | 24703 | ||
| 24695 | This variable should be set in `site-start'.el.") | 24704 | This variable should be set in `site-start'.el.") |
| 24696 | 24705 | ||
| 24697 | (custom-autoload (quote calendar-latitude) "solar") | 24706 | (custom-autoload (quote calendar-latitude) "solar" t) |
| 24698 | 24707 | ||
| 24699 | (defvar calendar-longitude nil "\ | 24708 | (defvar calendar-longitude nil "\ |
| 24700 | *Longitude of `calendar-location-name' in degrees. | 24709 | *Longitude of `calendar-location-name' in degrees. |
| @@ -24706,7 +24715,7 @@ York City. | |||
| 24706 | 24715 | ||
| 24707 | This variable should be set in `site-start'.el.") | 24716 | This variable should be set in `site-start'.el.") |
| 24708 | 24717 | ||
| 24709 | (custom-autoload (quote calendar-longitude) "solar") | 24718 | (custom-autoload (quote calendar-longitude) "solar" t) |
| 24710 | 24719 | ||
| 24711 | (defvar calendar-location-name (quote (let ((float-output-format "%.1f")) (format "%s%s, %s%s" (if (numberp calendar-latitude) (abs calendar-latitude) (+ (aref calendar-latitude 0) (/ (aref calendar-latitude 1) 60.0))) (if (numberp calendar-latitude) (if (> calendar-latitude 0) "N" "S") (if (equal (aref calendar-latitude 2) (quote north)) "N" "S")) (if (numberp calendar-longitude) (abs calendar-longitude) (+ (aref calendar-longitude 0) (/ (aref calendar-longitude 1) 60.0))) (if (numberp calendar-longitude) (if (> calendar-longitude 0) "E" "W") (if (equal (aref calendar-longitude 2) (quote east)) "E" "W"))))) "\ | 24720 | (defvar calendar-location-name (quote (let ((float-output-format "%.1f")) (format "%s%s, %s%s" (if (numberp calendar-latitude) (abs calendar-latitude) (+ (aref calendar-latitude 0) (/ (aref calendar-latitude 1) 60.0))) (if (numberp calendar-latitude) (if (> calendar-latitude 0) "N" "S") (if (equal (aref calendar-latitude 2) (quote north)) "N" "S")) (if (numberp calendar-longitude) (abs calendar-longitude) (+ (aref calendar-longitude 0) (/ (aref calendar-longitude 1) 60.0))) (if (numberp calendar-longitude) (if (> calendar-longitude 0) "E" "W") (if (equal (aref calendar-longitude 2) (quote east)) "E" "W"))))) "\ |
| 24712 | *Expression evaluating to name of `calendar-longitude', `calendar-latitude'. | 24721 | *Expression evaluating to name of `calendar-longitude', `calendar-latitude'. |
| @@ -24715,7 +24724,7 @@ pair. | |||
| 24715 | 24724 | ||
| 24716 | This variable should be set in `site-start'.el.") | 24725 | This variable should be set in `site-start'.el.") |
| 24717 | 24726 | ||
| 24718 | (custom-autoload (quote calendar-location-name) "solar") | 24727 | (custom-autoload (quote calendar-location-name) "solar" t) |
| 24719 | 24728 | ||
| 24720 | (autoload (quote sunrise-sunset) "solar" "\ | 24729 | (autoload (quote sunrise-sunset) "solar" "\ |
| 24721 | Local time of sunrise and sunset for today. Accurate to a few seconds. | 24730 | Local time of sunrise and sunset for today. Accurate to a few seconds. |
| @@ -28017,7 +28026,7 @@ Not documented | |||
| 28017 | (autoload (quote tramp-completion-handle-file-name-all-completions) "tramp" "\ | 28026 | (autoload (quote tramp-completion-handle-file-name-all-completions) "tramp" "\ |
| 28018 | Like `file-name-all-completions' for partial tramp files. | 28027 | Like `file-name-all-completions' for partial tramp files. |
| 28019 | 28028 | ||
| 28020 | \(fn FILENAME DIRECTORY)" nil nil) | 28029 | \(fn FILENAME DIRECTORY &optional PREDICATE)" nil nil) |
| 28021 | 28030 | ||
| 28022 | (autoload (quote tramp-completion-handle-file-name-completion) "tramp" "\ | 28031 | (autoload (quote tramp-completion-handle-file-name-completion) "tramp" "\ |
| 28023 | Like `file-name-completion' for tramp files. | 28032 | Like `file-name-completion' for tramp files. |
| @@ -30532,7 +30541,8 @@ Please submit bug reports and other feedback to the author, Neil W. Van Dyke | |||
| 30532 | Non-nil if Which-Function mode is enabled. | 30541 | Non-nil if Which-Function mode is enabled. |
| 30533 | See the command `which-function-mode' for a description of this minor-mode. | 30542 | See the command `which-function-mode' for a description of this minor-mode. |
| 30534 | Setting this variable directly does not take effect; | 30543 | Setting this variable directly does not take effect; |
| 30535 | use either \\[customize] or the function `which-function-mode'.") | 30544 | either customize it (see the info node `Easy Customization') |
| 30545 | or call the function `which-function-mode'.") | ||
| 30536 | 30546 | ||
| 30537 | (custom-autoload (quote which-function-mode) "which-func" nil) | 30547 | (custom-autoload (quote which-function-mode) "which-func" nil) |
| 30538 | 30548 | ||
| @@ -30778,7 +30788,7 @@ Toggle Winner mode. | |||
| 30778 | Setting this variable directly does not take effect; | 30788 | Setting this variable directly does not take effect; |
| 30779 | use either \\[customize] or the function `winner-mode'.") | 30789 | use either \\[customize] or the function `winner-mode'.") |
| 30780 | 30790 | ||
| 30781 | (custom-autoload (quote winner-mode) "winner") | 30791 | (custom-autoload (quote winner-mode) "winner" nil) |
| 30782 | 30792 | ||
| 30783 | (autoload (quote winner-mode) "winner" "\ | 30793 | (autoload (quote winner-mode) "winner" "\ |
| 30784 | Toggle Winner mode. | 30794 | Toggle Winner mode. |
| @@ -31150,10 +31160,9 @@ Zone out, completely. | |||
| 31150 | ;;;;;; "net/eudcb-bbdb.el" "net/eudcb-ldap.el" "net/eudcb-mab.el" | 31160 | ;;;;;; "net/eudcb-bbdb.el" "net/eudcb-ldap.el" "net/eudcb-mab.el" |
| 31151 | ;;;;;; "net/eudcb-ph.el" "net/ldap.el" "net/netrc.el" "net/tls.el" | 31161 | ;;;;;; "net/eudcb-ph.el" "net/ldap.el" "net/netrc.el" "net/tls.el" |
| 31152 | ;;;;;; "net/tramp-smb.el" "net/tramp-util.el" "net/tramp-uu.el" | 31162 | ;;;;;; "net/tramp-smb.el" "net/tramp-util.el" "net/tramp-uu.el" |
| 31153 | ;;;;;; "net/tramp-vc.el" "net/trampver.el" "obsolete/bg-mouse.el" | 31163 | ;;;;;; "net/tramp-vc.el" "net/trampver.el" "patcomp.el" "paths.el" |
| 31154 | ;;;;;; "obsolete/hilit19.el" "obsolete/sc.el" "obsolete/uncompress.el" | 31164 | ;;;;;; "pcvs-info.el" "pcvs-parse.el" "pcvs-util.el" "pgg-def.el" |
| 31155 | ;;;;;; "patcomp.el" "paths.el" "pcvs-info.el" "pcvs-parse.el" "pcvs-util.el" | 31165 | ;;;;;; "pgg-parse.el" "pgg-pgp.el" "pgg-pgp5.el" "play/gamegrid.el" |
| 31156 | ;;;;;; "pgg-def.el" "pgg-parse.el" "pgg-pgp.el" "pgg-pgp5.el" "play/gamegrid.el" | ||
| 31157 | ;;;;;; "play/gametree.el" "play/meese.el" "progmodes/ada-prj.el" | 31166 | ;;;;;; "play/gametree.el" "play/meese.el" "progmodes/ada-prj.el" |
| 31158 | ;;;;;; "progmodes/cc-align.el" "progmodes/cc-awk.el" "progmodes/cc-bytecomp.el" | 31167 | ;;;;;; "progmodes/cc-align.el" "progmodes/cc-awk.el" "progmodes/cc-bytecomp.el" |
| 31159 | ;;;;;; "progmodes/cc-cmds.el" "progmodes/cc-defs.el" "progmodes/cc-fonts.el" | 31168 | ;;;;;; "progmodes/cc-cmds.el" "progmodes/cc-defs.el" "progmodes/cc-fonts.el" |
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el index 822a995230e..4d3ee29c4d6 100644 --- a/lisp/net/tramp.el +++ b/lisp/net/tramp.el | |||
| @@ -2,7 +2,7 @@ | |||
| 2 | ;;; tramp.el --- Transparent Remote Access, Multiple Protocol | 2 | ;;; tramp.el --- Transparent Remote Access, Multiple Protocol |
| 3 | 3 | ||
| 4 | ;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, | 4 | ;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, |
| 5 | ;; 2005, 2006 Free Software Foundation, Inc. | 5 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. |
| 6 | 6 | ||
| 7 | ;; Author: Kai Gro,A_(Bjohann <kai.grossjohann@gmx.net> | 7 | ;; Author: Kai Gro,A_(Bjohann <kai.grossjohann@gmx.net> |
| 8 | ;; Michael Albinus <michael.albinus@gmx.de> | 8 | ;; Michael Albinus <michael.albinus@gmx.de> |
| @@ -5540,32 +5540,36 @@ The terminal type can be configured with `tramp-terminal-type'." | |||
| 5540 | (let (found item pattern action todo) | 5540 | (let (found item pattern action todo) |
| 5541 | (erase-buffer) | 5541 | (erase-buffer) |
| 5542 | (tramp-message 9 "Waiting 60s for prompt from remote shell") | 5542 | (tramp-message 9 "Waiting 60s for prompt from remote shell") |
| 5543 | (with-timeout (60 (throw 'tramp-action 'timeout)) | 5543 | (while (not found) |
| 5544 | (while (not found) | 5544 | (tramp-accept-process-output p 1) |
| 5545 | (tramp-accept-process-output p 1) | 5545 | (goto-char (point-min)) |
| 5546 | (setq todo actions) | ||
| 5547 | (while todo | ||
| 5546 | (goto-char (point-min)) | 5548 | (goto-char (point-min)) |
| 5547 | (setq todo actions) | 5549 | (setq item (pop todo)) |
| 5548 | (while todo | 5550 | (setq pattern (symbol-value (nth 0 item))) |
| 5549 | (goto-char (point-min)) | 5551 | (setq action (nth 1 item)) |
| 5550 | (setq item (pop todo)) | 5552 | (tramp-message 10 "Looking for regexp \"%s\" from remote shell" |
| 5551 | (setq pattern (symbol-value (nth 0 item))) | 5553 | pattern) |
| 5552 | (setq action (nth 1 item)) | 5554 | (when (re-search-forward (concat pattern "\\'") nil t) |
| 5553 | (tramp-message 10 "Looking for regexp \"%s\" from remote shell" | 5555 | (setq found (funcall action p multi-method method user host))))) |
| 5554 | pattern) | 5556 | found)) |
| 5555 | (when (re-search-forward (concat pattern "\\'") nil t) | ||
| 5556 | (setq found (funcall action p multi-method method user host))))) | ||
| 5557 | found))) | ||
| 5558 | 5557 | ||
| 5559 | (defun tramp-process-actions (p multi-method method user host actions) | 5558 | (defun tramp-process-actions |
| 5560 | "Perform actions until success." | 5559 | (p multi-method method user host actions &optional timeout) |
| 5560 | "Perform actions until success or TIMEOUT." | ||
| 5561 | (tramp-message 10 "%s" (mapconcat 'identity (process-command p) " ")) | 5561 | (tramp-message 10 "%s" (mapconcat 'identity (process-command p) " ")) |
| 5562 | (let (exit) | 5562 | (let (exit) |
| 5563 | (while (not exit) | 5563 | (while (not exit) |
| 5564 | (tramp-message 9 "Waiting for prompts from remote shell") | 5564 | (tramp-message 9 "Waiting for prompts from remote shell") |
| 5565 | (setq exit | 5565 | (setq exit |
| 5566 | (catch 'tramp-action | 5566 | (catch 'tramp-action |
| 5567 | (tramp-process-one-action | 5567 | (if timeout |
| 5568 | p multi-method method user host actions) | 5568 | (with-timeout (timeout) |
| 5569 | (tramp-process-one-action | ||
| 5570 | p multi-method method user host actions)) | ||
| 5571 | (tramp-process-one-action | ||
| 5572 | p multi-method method user host actions)) | ||
| 5569 | nil))) | 5573 | nil))) |
| 5570 | (unless (eq exit 'ok) | 5574 | (unless (eq exit 'ok) |
| 5571 | (tramp-clear-passwd user host) | 5575 | (tramp-clear-passwd user host) |
| @@ -5689,7 +5693,7 @@ Maybe the different regular expressions need to be tuned. | |||
| 5689 | (set-buffer (tramp-get-buffer multi-method method user host)) | 5693 | (set-buffer (tramp-get-buffer multi-method method user host)) |
| 5690 | (erase-buffer) | 5694 | (erase-buffer) |
| 5691 | (tramp-process-actions p multi-method method user host | 5695 | (tramp-process-actions p multi-method method user host |
| 5692 | tramp-actions-before-shell) | 5696 | tramp-actions-before-shell 60) |
| 5693 | (tramp-open-connection-setup-interactive-shell | 5697 | (tramp-open-connection-setup-interactive-shell |
| 5694 | p multi-method method user host) | 5698 | p multi-method method user host) |
| 5695 | (tramp-post-connection multi-method method user host))))) | 5699 | (tramp-post-connection multi-method method user host))))) |
| @@ -5762,7 +5766,7 @@ arguments, and xx will be used as the host name to connect to. | |||
| 5762 | 5766 | ||
| 5763 | (set-buffer buf) | 5767 | (set-buffer buf) |
| 5764 | (tramp-process-actions p multi-method method user host | 5768 | (tramp-process-actions p multi-method method user host |
| 5765 | tramp-actions-before-shell) | 5769 | tramp-actions-before-shell 60) |
| 5766 | (tramp-message 7 "Initializing remote shell") | 5770 | (tramp-message 7 "Initializing remote shell") |
| 5767 | (tramp-open-connection-setup-interactive-shell | 5771 | (tramp-open-connection-setup-interactive-shell |
| 5768 | p multi-method method user host) | 5772 | p multi-method method user host) |
| @@ -5823,7 +5827,7 @@ prompt than you do, so it is not at all unlikely that the variable | |||
| 5823 | (tramp-set-process-query-on-exit-flag p nil) | 5827 | (tramp-set-process-query-on-exit-flag p nil) |
| 5824 | (set-buffer (tramp-get-buffer multi-method method user host)) | 5828 | (set-buffer (tramp-get-buffer multi-method method user host)) |
| 5825 | (tramp-process-actions p multi-method method user host | 5829 | (tramp-process-actions p multi-method method user host |
| 5826 | tramp-actions-before-shell) | 5830 | tramp-actions-before-shell 60) |
| 5827 | (tramp-open-connection-setup-interactive-shell | 5831 | (tramp-open-connection-setup-interactive-shell |
| 5828 | p multi-method method user host) | 5832 | p multi-method method user host) |
| 5829 | (tramp-post-connection multi-method method | 5833 | (tramp-post-connection multi-method method |
diff --git a/lisp/progmodes/cc-langs.el b/lisp/progmodes/cc-langs.el index b3c0a578649..6907b56d6c6 100644 --- a/lisp/progmodes/cc-langs.el +++ b/lisp/progmodes/cc-langs.el | |||
| @@ -208,23 +208,31 @@ the evaluated constant value at compile time." | |||
| 208 | ;; Some helper functions used when building the language constants. | 208 | ;; Some helper functions used when building the language constants. |
| 209 | 209 | ||
| 210 | (defun c-filter-ops (ops opgroup-filter op-filter &optional xlate) | 210 | (defun c-filter-ops (ops opgroup-filter op-filter &optional xlate) |
| 211 | ;; Used to filter operators from the list OPS in a DWIM:ey way: | 211 | ;; Extract a subset of the operators in the list OPS in a DWIM:ey |
| 212 | ;; OPS either has the structure of `c-operators', as a single | 212 | ;; way. The return value is a plain list of operators: |
| 213 | ;; | ||
| 214 | ;; OPS either has the structure of `c-operators', is a single | ||
| 213 | ;; group in `c-operators', or is a plain list of operators. | 215 | ;; group in `c-operators', or is a plain list of operators. |
| 214 | ;; OPGROUP-FILTER is used filter out the operator groups. It can | 216 | ;; |
| 215 | ;; be t to choose all groups, a list of the group type symbols to | 217 | ;; OPGROUP-FILTER specifies how to select the operator groups. It |
| 216 | ;; accept, or a function which will be called with the group | 218 | ;; can be t to choose all groups, a list of group type symbols |
| 217 | ;; symbol for each group and should return non-nil for those to | 219 | ;; (such as 'prefix) to accept, or a function which will be called |
| 218 | ;; include. OP-FILTER filters the individual operators in each | 220 | ;; with the group symbol for each group and should return non-nil |
| 219 | ;; group. It can be t to choose all operators, a regexp to test | 221 | ;; if that group is to be included. |
| 220 | ;; against each operator, or a function which will be called for | 222 | ;; |
| 221 | ;; each operator and should return non-nil for those to include. | 223 | ;; OP-FILTER filters the individual operators in each group. It |
| 224 | ;; can be t to choose all operators, a regexp to test against each | ||
| 225 | ;; operator, or a function which will be called for each operator | ||
| 226 | ;; and should return non-nil for those to include. | ||
| 227 | ;; | ||
| 222 | ;; If XLATE is given, it's a function which is called for each | 228 | ;; If XLATE is given, it's a function which is called for each |
| 223 | ;; matching operator and its return value is collected instead. | 229 | ;; matching operator and its return value is collected instead. |
| 224 | ;; If it returns a list, the elements are spliced directly into | 230 | ;; If it returns a list, the elements are spliced directly into |
| 225 | ;; the final result, which is returned as a list with duplicates | 231 | ;; the final result, which is returned as a list with duplicates |
| 226 | ;; removed using `equal'. `c-mode-syntax-table' for the current | 232 | ;; removed using `equal'. |
| 227 | ;; mode is in effect during the whole procedure. | 233 | ;; |
| 234 | ;; `c-mode-syntax-table' for the current mode is in effect during | ||
| 235 | ;; the whole procedure. | ||
| 228 | (unless (listp (car-safe ops)) | 236 | (unless (listp (car-safe ops)) |
| 229 | (setq ops (list ops))) | 237 | (setq ops (list ops))) |
| 230 | (cond ((eq opgroup-filter t) | 238 | (cond ((eq opgroup-filter t) |
| @@ -719,11 +727,11 @@ expression." | |||
| 719 | (c-lang-defconst c-operators | 727 | (c-lang-defconst c-operators |
| 720 | "List describing all operators, along with their precedence and | 728 | "List describing all operators, along with their precedence and |
| 721 | associativity. The order in the list corresponds to the precedence of | 729 | associativity. The order in the list corresponds to the precedence of |
| 722 | the operators: The operators in each element is a group with the same | 730 | the operators: The operators in each element are a group with the same |
| 723 | precedence, and the group has higher precedence than the groups in all | 731 | precedence, and the group has higher precedence than the groups in all |
| 724 | following elements. The car of each element describes the type of of | 732 | following elements. The car of each element describes the type of the |
| 725 | the operator group, and the cdr is a list of the operator tokens in | 733 | operator group, and the cdr is a list of the operator tokens in it. |
| 726 | it. The operator group types are: | 734 | The operator group types are: |
| 727 | 735 | ||
| 728 | 'prefix Unary prefix operators. | 736 | 'prefix Unary prefix operators. |
| 729 | 'postfix Unary postfix operators. | 737 | 'postfix Unary postfix operators. |
diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el index 04a5cf9cad7..c6876fb5d79 100644 --- a/lisp/progmodes/compile.el +++ b/lisp/progmodes/compile.el | |||
| @@ -876,12 +876,12 @@ FMTS is a list of format specs for transforming the file name. | |||
| 876 | Runs COMMAND, a shell command, in a separate process asynchronously | 876 | Runs COMMAND, a shell command, in a separate process asynchronously |
| 877 | with output going to the buffer `*compilation*'. | 877 | with output going to the buffer `*compilation*'. |
| 878 | 878 | ||
| 879 | If optional second arg COMINT is t the buffer will be in Comint mode with | ||
| 880 | `compilation-shell-minor-mode'. | ||
| 881 | |||
| 882 | You can then use the command \\[next-error] to find the next error message | 879 | You can then use the command \\[next-error] to find the next error message |
| 883 | and move to the source code that caused it. | 880 | and move to the source code that caused it. |
| 884 | 881 | ||
| 882 | If optional second arg COMINT is t the buffer will be in Comint mode with | ||
| 883 | `compilation-shell-minor-mode'. | ||
| 884 | |||
| 885 | Interactively, prompts for the command if `compilation-read-command' is | 885 | Interactively, prompts for the command if `compilation-read-command' is |
| 886 | non-nil; otherwise uses `compile-command'. With prefix arg, always prompts. | 886 | non-nil; otherwise uses `compile-command'. With prefix arg, always prompts. |
| 887 | Additionally, with universal prefix arg, compilation buffer will be in | 887 | Additionally, with universal prefix arg, compilation buffer will be in |
diff --git a/lisp/progmodes/vhdl-mode.el b/lisp/progmodes/vhdl-mode.el index 3bf4227a82f..cc58a09ec59 100644 --- a/lisp/progmodes/vhdl-mode.el +++ b/lisp/progmodes/vhdl-mode.el | |||
| @@ -13851,7 +13851,7 @@ entity ENT-KEY." | |||
| 13851 | (vhdl-save-cache (car project-list)) | 13851 | (vhdl-save-cache (car project-list)) |
| 13852 | (setq project-list (cdr project-list))) | 13852 | (setq project-list (cdr project-list))) |
| 13853 | (message "Saving hierarchy caches...done"))) | 13853 | (message "Saving hierarchy caches...done"))) |
| 13854 | (error (progn (vhdl-warning "ERROR: An error occured while saving the hierarchy caches") | 13854 | (error (progn (vhdl-warning "ERROR: An error occurred while saving the hierarchy caches") |
| 13855 | (sit-for 2))))) | 13855 | (sit-for 2))))) |
| 13856 | 13856 | ||
| 13857 | (defun vhdl-save-cache (key) | 13857 | (defun vhdl-save-cache (key) |
diff --git a/lisp/replace.el b/lisp/replace.el index 610fd9d2e9f..c51985c3e4a 100644 --- a/lisp/replace.el +++ b/lisp/replace.el | |||
| @@ -467,10 +467,9 @@ at the given position for each replacement. | |||
| 467 | In interactive calls, the replacement text may contain `\\,' | 467 | In interactive calls, the replacement text may contain `\\,' |
| 468 | followed by a Lisp expression used as part of the replacement | 468 | followed by a Lisp expression used as part of the replacement |
| 469 | text. Inside of that expression, `\\&' is a string denoting the | 469 | text. Inside of that expression, `\\&' is a string denoting the |
| 470 | whole match, `\\N' a partial matches, `\\#&' and `\\#N' the | 470 | whole match, `\\N' a partial match, `\\#&' and `\\#N' the respective |
| 471 | respective numeric values from `string-to-number', and `\\#' | 471 | numeric values from `string-to-number', and `\\#' itself for |
| 472 | itself for `replace-count', the number of replacements occured so | 472 | `replace-count', the number of replacements occurred so far. |
| 473 | far. | ||
| 474 | 473 | ||
| 475 | If your Lisp expression is an identifier and the next letter in | 474 | If your Lisp expression is an identifier and the next letter in |
| 476 | the replacement string would be interpreted as part of it, you | 475 | the replacement string would be interpreted as part of it, you |
diff --git a/lisp/server.el b/lisp/server.el index 7a4179e85f6..dd64bb6cf89 100644 --- a/lisp/server.el +++ b/lisp/server.el | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | ;;; server.el --- Lisp code for GNU Emacs running as server process | 1 | ;;; server.el --- Lisp code for GNU Emacs running as server process |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1986, 1987, 1992, 1994, 1995, 1996, 1997, 1998, 1999, 2000, | 3 | ;; Copyright (C) 1986, 1987, 1992, 1994, 1995, 1996, 1997, 1998, 1999, 2000, |
| 4 | ;; 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. | 4 | ;; 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: William Sommerfeld <wesommer@athena.mit.edu> | 6 | ;; Author: William Sommerfeld <wesommer@athena.mit.edu> |
| 7 | ;; Maintainer: FSF | 7 | ;; Maintainer: FSF |
| @@ -435,7 +435,7 @@ Creates the directory if necessary and makes sure: | |||
| 435 | (letf (((default-file-modes) ?\700)) (make-directory dir t)) | 435 | (letf (((default-file-modes) ?\700)) (make-directory dir t)) |
| 436 | (setq attrs (file-attributes dir))) | 436 | (setq attrs (file-attributes dir))) |
| 437 | ;; Check that it's safe for use. | 437 | ;; Check that it's safe for use. |
| 438 | (unless (and (eq t (car attrs)) (eq (nth 2 attrs) (user-uid)) | 438 | (unless (and (eq t (car attrs)) (eql (nth 2 attrs) (user-uid)) |
| 439 | (or (eq system-type 'windows-nt) | 439 | (or (eq system-type 'windows-nt) |
| 440 | (zerop (logand ?\077 (file-modes dir))))) | 440 | (zerop (logand ?\077 (file-modes dir))))) |
| 441 | (error "The directory %s is unsafe" dir)))) | 441 | (error "The directory %s is unsafe" dir)))) |
diff --git a/lisp/subr.el b/lisp/subr.el index b48fa1a9f35..18f4ad65686 100644 --- a/lisp/subr.el +++ b/lisp/subr.el | |||
| @@ -1905,11 +1905,11 @@ If MESSAGE is nil, instructions to type EXIT-CHAR are displayed there." | |||
| 1905 | (recenter (/ (window-height) 2))) | 1905 | (recenter (/ (window-height) 2))) |
| 1906 | ;; If that pushed message start off the screen, | 1906 | ;; If that pushed message start off the screen, |
| 1907 | ;; scroll to start it at the top of the screen. | 1907 | ;; scroll to start it at the top of the screen. |
| 1908 | (move-to-window-line 0) | 1908 | (save-excursion |
| 1909 | (if (> (point) pos) | 1909 | (move-to-window-line 0) |
| 1910 | (progn | 1910 | (if (> (point) pos) |
| 1911 | (goto-char pos) | 1911 | (goto-char pos) |
| 1912 | (recenter 0))) | 1912 | (recenter 0))) |
| 1913 | (message (or message "Type %s to continue editing.") | 1913 | (message (or message "Type %s to continue editing.") |
| 1914 | (single-key-description exit-char)) | 1914 | (single-key-description exit-char)) |
| 1915 | (let (char) | 1915 | (let (char) |
| @@ -2695,7 +2695,7 @@ are effectively trimmed). If nil, all zero-length substrings are retained, | |||
| 2695 | which correctly parses CSV format, for example. | 2695 | which correctly parses CSV format, for example. |
| 2696 | 2696 | ||
| 2697 | Note that the effect of `(split-string STRING)' is the same as | 2697 | Note that the effect of `(split-string STRING)' is the same as |
| 2698 | `(split-string STRING split-string-default-separators t)'). In the rare | 2698 | `(split-string STRING split-string-default-separators t)'. In the rare |
| 2699 | case that you wish to retain zero-length substrings when splitting on | 2699 | case that you wish to retain zero-length substrings when splitting on |
| 2700 | whitespace, use `(split-string STRING split-string-default-separators)'. | 2700 | whitespace, use `(split-string STRING split-string-default-separators)'. |
| 2701 | 2701 | ||
diff --git a/lisp/term/mac-win.el b/lisp/term/mac-win.el index f35bf080bbb..700ad57029b 100644 --- a/lisp/term/mac-win.el +++ b/lisp/term/mac-win.el | |||
| @@ -2177,7 +2177,7 @@ either in the current buffer or in the echo area." | |||
| 2177 | ("TIFF" . mac-dnd-insert-TIFF)) | 2177 | ("TIFF" . mac-dnd-insert-TIFF)) |
| 2178 | "Which function to call to handle a drop of that type. | 2178 | "Which function to call to handle a drop of that type. |
| 2179 | The function takes three arguments, WINDOW, ACTION and DATA. | 2179 | The function takes three arguments, WINDOW, ACTION and DATA. |
| 2180 | WINDOW is where the drop occured, ACTION is always `private' on | 2180 | WINDOW is where the drop occurred, ACTION is always `private' on |
| 2181 | Mac. DATA is the drop data. Unlike the x-dnd counterpart, the | 2181 | Mac. DATA is the drop data. Unlike the x-dnd counterpart, the |
| 2182 | return value of the function is not significant. | 2182 | return value of the function is not significant. |
| 2183 | 2183 | ||
diff --git a/lisp/textmodes/fill.el b/lisp/textmodes/fill.el index 21ee585ec11..65c8067d48a 100644 --- a/lisp/textmodes/fill.el +++ b/lisp/textmodes/fill.el | |||
| @@ -743,7 +743,7 @@ space does not end a sentence, so don't break a line there." | |||
| 743 | 743 | ||
| 744 | (defun fill-minibuffer-function (arg) | 744 | (defun fill-minibuffer-function (arg) |
| 745 | "Fill a paragraph in the minibuffer, ignoring the prompt." | 745 | "Fill a paragraph in the minibuffer, ignoring the prompt." |
| 746 | (save-restriction | 746 | (save-restriction |
| 747 | (narrow-to-region (minibuffer-prompt-end) (point-max)) | 747 | (narrow-to-region (minibuffer-prompt-end) (point-max)) |
| 748 | (fill-paragraph arg))) | 748 | (fill-paragraph arg))) |
| 749 | 749 | ||
| @@ -838,18 +838,22 @@ can take care of filling. JUSTIFY is used as in `fill-paragraph'." | |||
| 838 | (commark | 838 | (commark |
| 839 | (comment-string-strip (buffer-substring comstart comin) nil t)) | 839 | (comment-string-strip (buffer-substring comstart comin) nil t)) |
| 840 | (comment-re | 840 | (comment-re |
| 841 | ;; `commark' is surrounded with arbitrary text (`\0' and `a') | 841 | ;; A regexp more specialized than comment-start-skip, that only |
| 842 | ;; to make sure it can be used as an optimization of | 842 | ;; matches the current commark rather than any valid commark. |
| 843 | ;; `comment-start-skip' in the middle of a line. For example, | 843 | ;; |
| 844 | ;; `commark' can't be used with the "@c" in TeXinfo (hence | 844 | ;; The specialized regexp only works for "normal" comment |
| 845 | ;; the `a') or with the "C" at BOL in Fortran (hence the `\0'). | 845 | ;; syntax, not for Texinfo's "@c" (which can't be immediately |
| 846 | (if (string-match comment-start-skip (concat "\0" commark "a")) | 846 | ;; followed by word-chars) or Fortran's "C" (which needs to be |
| 847 | (concat "[ \t]*" (regexp-quote commark) | 847 | ;; at bol), so check that comment-start-skip indeed allows the |
| 848 | ;; Make sure we only match comments that use | 848 | ;; commark to appear in the middle of the line and followed by |
| 849 | ;; the exact same comment marker. | 849 | ;; word chars. The choice of "\0" and "a" is mostly arbitrary. |
| 850 | "[^" (substring commark -1) "]") | 850 | (if (string-match comment-start-skip (concat "\0" commark "a")) |
| 851 | (concat "[ \t]*\\(?:" comment-start-skip "\\)"))) | 851 | (concat "[ \t]*" (regexp-quote commark) |
| 852 | (comment-fill-prefix ; Compute a fill prefix. | 852 | ;; Make sure we only match comments that |
| 853 | ;; use the exact same comment marker. | ||
| 854 | "[^" (substring commark -1) "]") | ||
| 855 | (concat "[ \t]*\\(?:" comment-start-skip "\\)"))) | ||
| 856 | (comment-fill-prefix ; Compute a fill prefix. | ||
| 853 | (save-excursion | 857 | (save-excursion |
| 854 | (goto-char comstart) | 858 | (goto-char comstart) |
| 855 | (if has-code-and-comment | 859 | (if has-code-and-comment |
| @@ -944,13 +948,13 @@ Ordinarily the variable `fill-column' controls the width. | |||
| 944 | 948 | ||
| 945 | Noninteractively, the third argument JUSTIFY specifies which | 949 | Noninteractively, the third argument JUSTIFY specifies which |
| 946 | kind of justification to do: `full', `left', `right', `center', | 950 | kind of justification to do: `full', `left', `right', `center', |
| 947 | or `none' (equivalent to nil). t means handle each paragraph | 951 | or `none' (equivalent to nil). A value of t means handle each |
| 948 | as specified by its text properties. | 952 | paragraph as specified by its text properties. |
| 949 | 953 | ||
| 950 | The fourth arg NOSQUEEZE non-nil means to leave | 954 | The fourth arg NOSQUEEZE non-nil means to leave whitespace other |
| 951 | whitespace other than line breaks untouched, and fifth arg TO-EOP | 955 | than line breaks untouched, and fifth arg TO-EOP non-nil means |
| 952 | non-nil means to keep filling to the end of the paragraph (or next | 956 | to keep filling to the end of the paragraph (or next hard newline, |
| 953 | hard newline, if variable `use-hard-newlines' is on). | 957 | if variable `use-hard-newlines' is on). |
| 954 | 958 | ||
| 955 | Return the fill-prefix used for filling the last paragraph. | 959 | Return the fill-prefix used for filling the last paragraph. |
| 956 | 960 | ||
diff --git a/lisp/tumme.el b/lisp/tumme.el index 788a29958a8..2fc6eff2458 100644 --- a/lisp/tumme.el +++ b/lisp/tumme.el | |||
| @@ -1646,7 +1646,7 @@ Ask user for number of images to show and the delay in between." | |||
| 1646 | 1646 | ||
| 1647 | ;;;###autoload | 1647 | ;;;###autoload |
| 1648 | (defun tumme-display-thumb () | 1648 | (defun tumme-display-thumb () |
| 1649 | "Shorthard for `tumme-display-thumbs' with prefix argument." | 1649 | "Shorthand for `tumme-display-thumbs' with prefix argument." |
| 1650 | (interactive) | 1650 | (interactive) |
| 1651 | (tumme-display-thumbs t nil t)) | 1651 | (tumme-display-thumbs t nil t)) |
| 1652 | 1652 | ||
diff --git a/lisp/tutorial.el b/lisp/tutorial.el index cf9a391e5a6..53f41c95646 100644 --- a/lisp/tutorial.el +++ b/lisp/tutorial.el | |||
| @@ -446,7 +446,8 @@ where | |||
| 446 | (cond ((eq key-fun def-fun) | 446 | (cond ((eq key-fun def-fun) |
| 447 | ;; No rebinding, return t | 447 | ;; No rebinding, return t |
| 448 | t) | 448 | t) |
| 449 | ((eq key-fun (command-remapping def-fun)) | 449 | ((and key-fun |
| 450 | (eq key-fun (command-remapping def-fun))) | ||
| 450 | ;; Just a remapping, return t | 451 | ;; Just a remapping, return t |
| 451 | t) | 452 | t) |
| 452 | ;; cua-mode specials: | 453 | ;; cua-mode specials: |
| @@ -571,6 +572,8 @@ with some explanatory links." | |||
| 571 | (where (nth 3 ck)) | 572 | (where (nth 3 ck)) |
| 572 | s1 s2 help-string) | 573 | s1 s2 help-string) |
| 573 | (unless (string= where "Same key") | 574 | (unless (string= where "Same key") |
| 575 | (when (string= where "") | ||
| 576 | (setq where (format "M-x %s" def-fun))) | ||
| 574 | (setq tutorial--point-after-chkeys (point-marker) | 577 | (setq tutorial--point-after-chkeys (point-marker) |
| 575 | s1 (get-lang-string tutorial--lang 'tut-chgdkey) | 578 | s1 (get-lang-string tutorial--lang 'tut-chgdkey) |
| 576 | s2 (get-lang-string tutorial--lang 'tut-chgdkey2) | 579 | s2 (get-lang-string tutorial--lang 'tut-chgdkey2) |
diff --git a/lisp/wdired.el b/lisp/wdired.el index 5a925e5d031..2c43b6f1552 100644 --- a/lisp/wdired.el +++ b/lisp/wdired.el | |||
| @@ -576,8 +576,11 @@ If OLD, return the old target. If MOVE, move point before it." | |||
| 576 | (funcall command 1) | 576 | (funcall command 1) |
| 577 | (setq arg (1- arg))) | 577 | (setq arg (1- arg))) |
| 578 | (error | 578 | (error |
| 579 | (if (not (forward-word 1)) | 579 | (if (forward-word) |
| 580 | (setq arg 0))))))) | 580 | ;; Skip any non-word characters to avoid triggering a read-only |
| 581 | ;; error which would cause skipping the next word characters too. | ||
| 582 | (skip-syntax-forward "^w") | ||
| 583 | (setq arg 0))))))) | ||
| 581 | 584 | ||
| 582 | (defun wdired-downcase-word (arg) | 585 | (defun wdired-downcase-word (arg) |
| 583 | "WDired version of `downcase-word'. | 586 | "WDired version of `downcase-word'. |
diff --git a/lisp/x-dnd.el b/lisp/x-dnd.el index 717fcf207da..1c72d0a65fe 100644 --- a/lisp/x-dnd.el +++ b/lisp/x-dnd.el | |||
| @@ -70,7 +70,7 @@ The default value for this variable is `x-dnd-default-test-function'." | |||
| 70 | "Which function to call to handle a drop of that type. | 70 | "Which function to call to handle a drop of that type. |
| 71 | If the type for the drop is not present, or the function is nil, | 71 | If the type for the drop is not present, or the function is nil, |
| 72 | the drop is rejected. The function takes three arguments, WINDOW, ACTION | 72 | the drop is rejected. The function takes three arguments, WINDOW, ACTION |
| 73 | and DATA. WINDOW is where the drop occured, ACTION is the action for | 73 | and DATA. WINDOW is where the drop occurred, ACTION is the action for |
| 74 | this drop (copy, move, link, private or ask) as determined by a previous | 74 | this drop (copy, move, link, private or ask) as determined by a previous |
| 75 | call to `x-dnd-test-function'. DATA is the drop data. | 75 | call to `x-dnd-test-function'. DATA is the drop data. |
| 76 | The function shall return the action used (copy, move, link or private) if drop | 76 | The function shall return the action used (copy, move, link or private) if drop |
diff --git a/man/ChangeLog b/man/ChangeLog index 8bed7ae1672..342bafa4e6b 100644 --- a/man/ChangeLog +++ b/man/ChangeLog | |||
| @@ -1,3 +1,8 @@ | |||
| 1 | 2007-01-10 Richard Stallman <rms@gnu.org> | ||
| 2 | |||
| 3 | * msdog.texi (Windows Keyboard): Yet another try to make | ||
| 4 | everyone happy with that passage. | ||
| 5 | |||
| 1 | 2007-01-05 Richard Stallman <rms@gnu.org> | 6 | 2007-01-05 Richard Stallman <rms@gnu.org> |
| 2 | 7 | ||
| 3 | * anti.texi (Antinews): Mention M-x shell scrolling. | 8 | * anti.texi (Antinews): Mention M-x shell scrolling. |
diff --git a/man/msdog.texi b/man/msdog.texi index 8aecd513591..4f1711ff9ea 100644 --- a/man/msdog.texi +++ b/man/msdog.texi | |||
| @@ -336,12 +336,12 @@ keyboard input in Emacs. | |||
| 336 | @cindex MS-Windows keyboard shortcuts | 336 | @cindex MS-Windows keyboard shortcuts |
| 337 | Many key combinations (known as ``keyboard shortcuts'') that have | 337 | Many key combinations (known as ``keyboard shortcuts'') that have |
| 338 | conventional uses in MS-Windows programs conflict with traditional | 338 | conventional uses in MS-Windows programs conflict with traditional |
| 339 | Emacs commands. This conflict arose because the designers of the CUA | 339 | Emacs commands. (These Emacs commands were established years before |
| 340 | interface implemented by MS-Windows did not try to avoid conflict with | 340 | MS-Windows, and years before Microsoft.) Examples of conflicts |
| 341 | Emacs. Examples of conflicts include @kbd{C-c}, @kbd{C-x}, @kbd{C-z}, | 341 | include @kbd{C-c}, @kbd{C-x}, @kbd{C-z}, @kbd{C-a}, and |
| 342 | @kbd{C-a}, and @kbd{W-@key{SPC}}. You can redefine some of them with | 342 | @kbd{W-@key{SPC}}. You can redefine some of them with meanings more |
| 343 | meanings more like the MS-Windows meanings by enabling CUA Mode | 343 | like the MS-Windows meanings by enabling CUA Mode (@pxref{CUA |
| 344 | (@pxref{CUA Bindings}). | 344 | Bindings}). |
| 345 | 345 | ||
| 346 | @kindex F10 @r{(MS-Windows)} | 346 | @kindex F10 @r{(MS-Windows)} |
| 347 | @cindex menu bar access using keyboard @r{(MS-Windows)} | 347 | @cindex menu bar access using keyboard @r{(MS-Windows)} |
diff --git a/nt/ChangeLog b/nt/ChangeLog index 179efe7a8d4..f3c983e8b37 100644 --- a/nt/ChangeLog +++ b/nt/ChangeLog | |||
| @@ -1,3 +1,7 @@ | |||
| 1 | 2007-01-10 Jason Rumney <jasonr@gnu.org> | ||
| 2 | |||
| 3 | * README: Update URLs and advice about reporting bugs. | ||
| 4 | |||
| 1 | 2006-12-29 Jason Rumney <jasonr@gnu.org> | 5 | 2006-12-29 Jason Rumney <jasonr@gnu.org> |
| 2 | 6 | ||
| 3 | * nmake.defs (TEMACS_EXTRA_LINK): Remove duplicated flags from | 7 | * nmake.defs (TEMACS_EXTRA_LINK): Remove duplicated flags from |
| @@ -1,7 +1,7 @@ | |||
| 1 | Emacs for Windows NT/2000 and Windows 95/98/ME | 1 | Emacs for Windows NT/2000 and Windows 95/98/ME |
| 2 | 2 | ||
| 3 | Copyright (C) 2001, 2002, 2003, 2004, 2005, | 3 | Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006 |
| 4 | 2006 Free Software Foundation, Inc. | 4 | 2007 Free Software Foundation, Inc. |
| 5 | See the end of the INSTALL file in this directory for copying permissions. | 5 | See the end of the INSTALL file in this directory for copying permissions. |
| 6 | 6 | ||
| 7 | This directory contains support for compiling and running GNU Emacs on | 7 | This directory contains support for compiling and running GNU Emacs on |
| @@ -12,7 +12,7 @@ | |||
| 12 | 12 | ||
| 13 | Precompiled distributions are also available; ftp to | 13 | Precompiled distributions are also available; ftp to |
| 14 | 14 | ||
| 15 | ftp://ftp.gnu.org/gnu/windows/emacs/latest/ | 15 | ftp://ftp.gnu.org/gnu/emacs/windows/ |
| 16 | 16 | ||
| 17 | for the latest precompiled distributions. | 17 | for the latest precompiled distributions. |
| 18 | 18 | ||
| @@ -59,22 +59,12 @@ | |||
| 59 | about it. First check the file etc/PROBLEMS and the FAQ on the web | 59 | about it. First check the file etc/PROBLEMS and the FAQ on the web |
| 60 | page above to see if the bug is already known and if there are any | 60 | page above to see if the bug is already known and if there are any |
| 61 | workarounds. If not, then check whether the bug has something to do | 61 | workarounds. If not, then check whether the bug has something to do |
| 62 | with code in your .emacs file, e.g. by invoking Emacs with the "-q | 62 | with code in your .emacs file, e.g. by invoking Emacs with the "-Q" |
| 63 | --no-site-file" options. | 63 | option. |
| 64 | 64 | ||
| 65 | If you decide that it is a bug in Emacs that might be specific to the | 65 | Use the built in bug reporting functionality in Emacs so that it |
| 66 | Windows port, send a message to the help-emacs-windows@gnu.org | 66 | will be seen by the right people. You can use the command M-x |
| 67 | mailing list describing the bug, the version of Emacs that you are | 67 | report-emacs-bug to create and send the bug report, but in some |
| 68 | using, and the operating system that you are running on (Windows NT, | 68 | cases there is a function to report bugs in a specific package; |
| 69 | 95 or 98 including service pack level if known). If the bug is | 69 | e.g. M-x gnus-bug for Gnus, M-x c-submit-bug-report for C/C++/Java |
| 70 | related to subprocesses, also specify which shell you are using (e.g., | 70 | mode, etc. |
| 71 | include the values of `shell-file-name' and `shell-explicit-file-name' | ||
| 72 | in your message). | ||
| 73 | |||
| 74 | If you think the bug is not specific to the Windows port of Emacs, | ||
| 75 | then it is better to mail the bug report to bug-gnu-emacs@gnu.org so | ||
| 76 | that it will be seen by the right people. If Emacs has been set up to | ||
| 77 | send mail, you can use the command M-x report-emacs-bug to create and | ||
| 78 | send the bug report, but in some cases there is a function to report | ||
| 79 | bugs in a specific package; e.g. M-x gnus-bug for Gnus, M-x | ||
| 80 | c-submit-bug-report for C/C++/Java mode, etc. | ||
diff --git a/src/ChangeLog b/src/ChangeLog index 97c9d4cbeb9..1974d45dd2c 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,71 @@ | |||
| 1 | 2007-01-10 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 2 | |||
| 3 | * editfns.c (Fformat): Allow integer-format to work with floats of size | ||
| 4 | larger than most-positive-fixnum (but still smaller than MAXINT). | ||
| 5 | |||
| 6 | * dired.c (Ffile_attributes): Use floats for large uids/gids. | ||
| 7 | |||
| 8 | 2007-01-09 Eli Zaretskii <eliz@gnu.org> | ||
| 9 | |||
| 10 | * emacs.c (syms_of_emacs) <path-separator>: Doc fix. | ||
| 11 | |||
| 12 | 2007-01-09 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> | ||
| 13 | |||
| 14 | * callproc.c (Fcall_process_region) [HAVE_MKSTEMP]: Add BLOCK_INPUT | ||
| 15 | around mkstemp. | ||
| 16 | |||
| 17 | * image.c (XDrawLine) [MAC_OS]: Remove macro. | ||
| 18 | (XCreateGC_pixmap) [!HAVE_NTGUI]: Likewise. | ||
| 19 | (x_disable_image) [!HAVE_NTGUI]: Use XCreateGC instead of | ||
| 20 | XCreateGC_pixmap. | ||
| 21 | |||
| 22 | * macgui.h (Display): Typedef to opaque type. | ||
| 23 | |||
| 24 | * macmenu.c (mac_dialog_modal_filter) [MAC_OSX]: New function. | ||
| 25 | (Fx_popup_dialog) [MAC_OSX]: Use standard alert if called from | ||
| 26 | Fmessage_box, Fyes_or_no_p, or Fy_or_n_p. | ||
| 27 | [MAC_OS_X_VERSION_MAX_ALLOWED >= 1030] (menu_quit_handler): | ||
| 28 | Use mac_quit_char_key_p. | ||
| 29 | |||
| 30 | * macterm.c (XDrawLine): Rename from mac_draw_line_to_pixmap. | ||
| 31 | (XCreateGC): Change type of 2nd argument to void *. | ||
| 32 | (XFreeGC) [USE_CG_DRAWING && MAC_OS_X_VERSION_MAX_ALLOWED >= 1030]: | ||
| 33 | Fix last change. | ||
| 34 | (mac_to_emacs_modifiers): Change return type to int. | ||
| 35 | [USE_CARBON_EVENTS] (mac_event_to_emacs_modifiers): Likewise. | ||
| 36 | (mac_mapped_modifiers): New function. | ||
| 37 | (XTread_socket): Use it. | ||
| 38 | [USE_TSM] (mac_handle_text_input_event): Likewise. | ||
| 39 | (do_window_update) [USE_CG_DRAWING]: Call mac_prepare_for_quickdraw. | ||
| 40 | (mac_quit_char_modifiers, mac_quit_char_keycode) [MAC_OSX]: | ||
| 41 | Remove variables. | ||
| 42 | (mac_determine_quit_char_modifiers, init_quit_char_handler) | ||
| 43 | [MAC_OSX]: Remove functions. | ||
| 44 | (make_ctrl_char) [MAC_OSX]: Add extern. | ||
| 45 | (mac_quit_char_key_p) [MAC_OSX]: New function. | ||
| 46 | (mac_initialize) [MAC_OSX]: Don't call init_quit_char_handler. | ||
| 47 | |||
| 48 | * macterm.h (FONT_MAX_WIDTH): Remove unused macro. | ||
| 49 | (XCreateGC): Change type in extern. | ||
| 50 | (XDrawLine): Rename from mac_draw_line_to_pixmap. | ||
| 51 | (mac_quit_char_key_p) [MAC_OSX]: Add extern. | ||
| 52 | |||
| 53 | 2007-01-08 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> | ||
| 54 | |||
| 55 | * keyboard.c (init_keyboard): Initialize interrupt_input_blocked and | ||
| 56 | interrupt_input_pending. | ||
| 57 | |||
| 58 | * xterm.h (x_display_info): New: net_supported_atoms, | ||
| 59 | nr_net_supported_atoms and net_supported_window. | ||
| 60 | |||
| 61 | * xterm.c: New variable last_user_time. | ||
| 62 | (handle_one_xevent): Set last_user_time from events that have Time. | ||
| 63 | Set net_supported_window to 0 when reparented. | ||
| 64 | (wm_supports): New function. | ||
| 65 | (do_ewmh_fullscreen): Use wm_supports to check for _NET_WM_STATE. | ||
| 66 | (x_term_init): Initialize net_supported_atoms, nr_net_supported_atoms | ||
| 67 | and net_supported_window. | ||
| 68 | |||
| 1 | 2007-01-05 Kim F. Storm <storm@cua.dk> | 69 | 2007-01-05 Kim F. Storm <storm@cua.dk> |
| 2 | 70 | ||
| 3 | * indent.c (Fvertical_motion): Fix it overshoot check for overlay | 71 | * indent.c (Fvertical_motion): Fix it overshoot check for overlay |
| @@ -148,8 +216,8 @@ | |||
| 148 | 216 | ||
| 149 | 2006-12-22 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> | 217 | 2006-12-22 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> |
| 150 | 218 | ||
| 151 | * macfns.c (mac_update_title_bar) [TARGET_API_MAC_CARBON]: Call | 219 | * macfns.c (mac_update_title_bar) [TARGET_API_MAC_CARBON]: |
| 152 | mac_update_proxy_icon also when buffer modification flag changed. | 220 | Call mac_update_proxy_icon also when buffer modification flag changed. |
| 153 | [TARGET_API_MAC_CARBON] (mac_update_proxy_icon): Don't update alias, | 221 | [TARGET_API_MAC_CARBON] (mac_update_proxy_icon): Don't update alias, |
| 154 | but compare FSRef/FSSpec of resolved alias. | 222 | but compare FSRef/FSSpec of resolved alias. |
| 155 | 223 | ||
| @@ -242,8 +310,8 @@ | |||
| 242 | (Fmac_atsu_font_face_attributes) [USE_ATSUI]: New function. | 310 | (Fmac_atsu_font_face_attributes) [USE_ATSUI]: New function. |
| 243 | (syms_of_macfns) [USE_ATSUI]: Defsubr it. | 311 | (syms_of_macfns) [USE_ATSUI]: Defsubr it. |
| 244 | 312 | ||
| 245 | * macselect.c [TARGET_API_MAC_CARBON] (mac_do_receive_drag): Use | 313 | * macselect.c [TARGET_API_MAC_CARBON] (mac_do_receive_drag): |
| 246 | mac_wakeup_from_rne instead of mac_post_mouse_moved_event. | 314 | Use mac_wakeup_from_rne instead of mac_post_mouse_moved_event. |
| 247 | 315 | ||
| 248 | * macterm.c (mac_query_char_extents) [USE_ATSUI]: Don't call | 316 | * macterm.c (mac_query_char_extents) [USE_ATSUI]: Don't call |
| 249 | ATSUGetGlyphBounds if not necessary. | 317 | ATSUGetGlyphBounds if not necessary. |
| @@ -256,8 +324,8 @@ | |||
| 256 | (mac_load_query_font) [USE_ATSUI]: Use atsu_find_font_from_family_name. | 324 | (mac_load_query_font) [USE_ATSUI]: Use atsu_find_font_from_family_name. |
| 257 | Don't get metrics for Latin-1 right half characters. | 325 | Don't get metrics for Latin-1 right half characters. |
| 258 | (mac_load_query_font): Don't load font if space width is not positive. | 326 | (mac_load_query_font): Don't load font if space width is not positive. |
| 259 | [TARGET_API_MAC_CARBON] (mac_store_event_ref_as_apple_event): Use | 327 | [TARGET_API_MAC_CARBON] (mac_store_event_ref_as_apple_event): |
| 260 | mac_wakeup_from_rne instead of mac_post_mouse_moved_event. | 328 | Use mac_wakeup_from_rne instead of mac_post_mouse_moved_event. |
| 261 | (XTread_socket): Call SelectWindow when unfocused frame is clicked. | 329 | (XTread_socket): Call SelectWindow when unfocused frame is clicked. |
| 262 | 330 | ||
| 263 | * macterm.h (mac_wakeup_from_rne) [TARGET_API_MAC_CARBON]: Add extern. | 331 | * macterm.h (mac_wakeup_from_rne) [TARGET_API_MAC_CARBON]: Add extern. |
diff --git a/src/callproc.c b/src/callproc.c index bc9c8d67d11..eb7f8ff6252 100644 --- a/src/callproc.c +++ b/src/callproc.c | |||
| @@ -1107,7 +1107,11 @@ usage: (call-process-region START END PROGRAM &optional DELETE BUFFER DISPLAY &r | |||
| 1107 | 1107 | ||
| 1108 | #ifdef HAVE_MKSTEMP | 1108 | #ifdef HAVE_MKSTEMP |
| 1109 | { | 1109 | { |
| 1110 | int fd = mkstemp (tempfile); | 1110 | int fd; |
| 1111 | |||
| 1112 | BLOCK_INPUT; | ||
| 1113 | fd = mkstemp (tempfile); | ||
| 1114 | UNBLOCK_INPUT; | ||
| 1111 | if (fd == -1) | 1115 | if (fd == -1) |
| 1112 | report_file_error ("Failed to open temporary file", | 1116 | report_file_error ("Failed to open temporary file", |
| 1113 | Fcons (Vtemp_file_name_pattern, Qnil)); | 1117 | Fcons (Vtemp_file_name_pattern, Qnil)); |
diff --git a/src/dired.c b/src/dired.c index ffaeb5adee4..7b8f978b20c 100644 --- a/src/dired.c +++ b/src/dired.c | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | /* Lisp functions for making directory listings. | 1 | /* Lisp functions for making directory listings. |
| 2 | Copyright (C) 1985, 1986, 1993, 1994, 1999, 2000, 2001, 2002, 2003, | 2 | Copyright (C) 1985, 1986, 1993, 1994, 1999, 2000, 2001, 2002, 2003, |
| 3 | 2004, 2005, 2006 Free Software Foundation, Inc. | 3 | 2004, 2005, 2006, 2007 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | This file is part of GNU Emacs. | 5 | This file is part of GNU Emacs. |
| 6 | 6 | ||
| @@ -966,16 +966,18 @@ Elements of the attribute list are: | |||
| 966 | values[1] = make_number (s.st_nlink); | 966 | values[1] = make_number (s.st_nlink); |
| 967 | if (NILP (id_format) || EQ (id_format, Qinteger)) | 967 | if (NILP (id_format) || EQ (id_format, Qinteger)) |
| 968 | { | 968 | { |
| 969 | values[2] = make_number (s.st_uid); | 969 | values[2] = make_fixnum_or_float (s.st_uid); |
| 970 | values[3] = make_number (s.st_gid); | 970 | values[3] = make_fixnum_or_float (s.st_gid); |
| 971 | } | 971 | } |
| 972 | else | 972 | else |
| 973 | { | 973 | { |
| 974 | BLOCK_INPUT; | 974 | BLOCK_INPUT; |
| 975 | pw = (struct passwd *) getpwuid (s.st_uid); | 975 | pw = (struct passwd *) getpwuid (s.st_uid); |
| 976 | values[2] = (pw ? build_string (pw->pw_name) : make_number (s.st_uid)); | 976 | values[2] = (pw ? build_string (pw->pw_name) |
| 977 | : make_fixnum_or_float (s.st_uid)); | ||
| 977 | gr = (struct group *) getgrgid (s.st_gid); | 978 | gr = (struct group *) getgrgid (s.st_gid); |
| 978 | values[3] = (gr ? build_string (gr->gr_name) : make_number (s.st_gid)); | 979 | values[3] = (gr ? build_string (gr->gr_name) |
| 980 | : make_fixnum_or_float (s.st_gid)); | ||
| 979 | UNBLOCK_INPUT; | 981 | UNBLOCK_INPUT; |
| 980 | } | 982 | } |
| 981 | values[4] = make_time (s.st_atime); | 983 | values[4] = make_time (s.st_atime); |
diff --git a/src/editfns.c b/src/editfns.c index 6089ee9a2e2..ab29a07b693 100644 --- a/src/editfns.c +++ b/src/editfns.c | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | /* Lisp functions pertaining to editing. | 1 | /* Lisp functions pertaining to editing. |
| 2 | Copyright (C) 1985, 1986, 1987, 1989, 1993, 1994, 1995, 1996, | 2 | Copyright (C) 1985, 1986, 1987, 1989, 1993, 1994, 1995, 1996, |
| 3 | 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, | 3 | 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, |
| 4 | 2005, 2006 Free Software Foundation, Inc. | 4 | 2005, 2006, 2007 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | This file is part of GNU Emacs. | 6 | This file is part of GNU Emacs. |
| 7 | 7 | ||
| @@ -3631,7 +3631,12 @@ usage: (format STRING &rest OBJECTS) */) | |||
| 3631 | if (*format != 'd' && *format != 'o' && *format != 'x' | 3631 | if (*format != 'd' && *format != 'o' && *format != 'x' |
| 3632 | && *format != 'i' && *format != 'X' && *format != 'c') | 3632 | && *format != 'i' && *format != 'X' && *format != 'c') |
| 3633 | error ("Invalid format operation %%%c", *format); | 3633 | error ("Invalid format operation %%%c", *format); |
| 3634 | args[n] = Ftruncate (args[n], Qnil); | 3634 | /* This fails unnecessarily if args[n] is bigger than |
| 3635 | most-positive-fixnum but smaller than MAXINT. | ||
| 3636 | These cases are important because we sometimes use floats | ||
| 3637 | to represent such integer values (typically such values | ||
| 3638 | come from UIDs or PIDs). */ | ||
| 3639 | /* args[n] = Ftruncate (args[n], Qnil); */ | ||
| 3635 | } | 3640 | } |
| 3636 | 3641 | ||
| 3637 | /* Note that we're using sprintf to print floats, | 3642 | /* Note that we're using sprintf to print floats, |
| @@ -3799,8 +3804,15 @@ usage: (format STRING &rest OBJECTS) */) | |||
| 3799 | else | 3804 | else |
| 3800 | sprintf (p, this_format, XUINT (args[n])); | 3805 | sprintf (p, this_format, XUINT (args[n])); |
| 3801 | } | 3806 | } |
| 3802 | else | 3807 | else if (format[-1] == 'e' || format[-1] == 'f' || format[-1] == 'g') |
| 3803 | sprintf (p, this_format, XFLOAT_DATA (args[n])); | 3808 | sprintf (p, this_format, XFLOAT_DATA (args[n])); |
| 3809 | else if (format[-1] == 'd') | ||
| 3810 | /* Maybe we should use "%1.0f" instead so it also works | ||
| 3811 | for values larger than MAXINT. */ | ||
| 3812 | sprintf (p, this_format, (EMACS_INT) XFLOAT_DATA (args[n])); | ||
| 3813 | else | ||
| 3814 | /* Don't sign-extend for octal or hex printing. */ | ||
| 3815 | sprintf (p, this_format, (EMACS_UINT) XFLOAT_DATA (args[n])); | ||
| 3804 | 3816 | ||
| 3805 | if (p > buf | 3817 | if (p > buf |
| 3806 | && multibyte | 3818 | && multibyte |
diff --git a/src/emacs.c b/src/emacs.c index 8ffab8f0d3d..d068ee767bf 100644 --- a/src/emacs.c +++ b/src/emacs.c | |||
| @@ -2483,7 +2483,8 @@ before you compile Emacs, to enable the code for this feature. */); | |||
| 2483 | emacs_priority = 0; | 2483 | emacs_priority = 0; |
| 2484 | 2484 | ||
| 2485 | DEFVAR_LISP ("path-separator", &Vpath_separator, | 2485 | DEFVAR_LISP ("path-separator", &Vpath_separator, |
| 2486 | doc: /* The directory separator in search paths, as a string. */); | 2486 | doc: /* String containing the character that separates directories in |
| 2487 | search paths, such as PATH and other similar environment variables. */); | ||
| 2487 | { | 2488 | { |
| 2488 | char c = SEPCHAR; | 2489 | char c = SEPCHAR; |
| 2489 | Vpath_separator = make_string (&c, 1); | 2490 | Vpath_separator = make_string (&c, 1); |
diff --git a/src/image.c b/src/image.c index 8f13da337ff..b4ee3104543 100644 --- a/src/image.c +++ b/src/image.c | |||
| @@ -122,8 +122,6 @@ typedef struct mac_bitmap_record Bitmap_Record; | |||
| 122 | #define FRAME_X_VISUAL(f) FRAME_X_DISPLAY_INFO (f)->visual | 122 | #define FRAME_X_VISUAL(f) FRAME_X_DISPLAY_INFO (f)->visual |
| 123 | #define x_defined_color mac_defined_color | 123 | #define x_defined_color mac_defined_color |
| 124 | #define DefaultDepthOfScreen(screen) (one_mac_display_info.n_planes) | 124 | #define DefaultDepthOfScreen(screen) (one_mac_display_info.n_planes) |
| 125 | #define XDrawLine(display, w, gc, x1, y1, x2, y2) \ | ||
| 126 | mac_draw_line_to_pixmap(display, w, gc, x1, y1, x2, y2) | ||
| 127 | 125 | ||
| 128 | #endif /* MAC_OS */ | 126 | #endif /* MAC_OS */ |
| 129 | 127 | ||
| @@ -5253,14 +5251,12 @@ x_disable_image (f, img) | |||
| 5253 | GC gc; | 5251 | GC gc; |
| 5254 | 5252 | ||
| 5255 | #ifdef MAC_OS | 5253 | #ifdef MAC_OS |
| 5256 | #define XCreateGC_pixmap(dpy, pixmap) XCreateGC (dpy, NULL, 0, NULL) | ||
| 5257 | #define MaskForeground(f) PIX_MASK_DRAW | 5254 | #define MaskForeground(f) PIX_MASK_DRAW |
| 5258 | #else | 5255 | #else |
| 5259 | #define XCreateGC_pixmap(dpy, pixmap) XCreateGC (dpy, pixmap, 0, NULL) | ||
| 5260 | #define MaskForeground(f) WHITE_PIX_DEFAULT (f) | 5256 | #define MaskForeground(f) WHITE_PIX_DEFAULT (f) |
| 5261 | #endif | 5257 | #endif |
| 5262 | 5258 | ||
| 5263 | gc = XCreateGC_pixmap (dpy, img->pixmap); | 5259 | gc = XCreateGC (dpy, img->pixmap, 0, NULL); |
| 5264 | XSetForeground (dpy, gc, BLACK_PIX_DEFAULT (f)); | 5260 | XSetForeground (dpy, gc, BLACK_PIX_DEFAULT (f)); |
| 5265 | XDrawLine (dpy, img->pixmap, gc, 0, 0, | 5261 | XDrawLine (dpy, img->pixmap, gc, 0, 0, |
| 5266 | img->width - 1, img->height - 1); | 5262 | img->width - 1, img->height - 1); |
| @@ -5270,7 +5266,7 @@ x_disable_image (f, img) | |||
| 5270 | 5266 | ||
| 5271 | if (img->mask) | 5267 | if (img->mask) |
| 5272 | { | 5268 | { |
| 5273 | gc = XCreateGC_pixmap (dpy, img->mask); | 5269 | gc = XCreateGC (dpy, img->mask, 0, NULL); |
| 5274 | XSetForeground (dpy, gc, MaskForeground (f)); | 5270 | XSetForeground (dpy, gc, MaskForeground (f)); |
| 5275 | XDrawLine (dpy, img->mask, gc, 0, 0, | 5271 | XDrawLine (dpy, img->mask, gc, 0, 0, |
| 5276 | img->width - 1, img->height - 1); | 5272 | img->width - 1, img->height - 1); |
diff --git a/src/keyboard.c b/src/keyboard.c index 656a642c666..c2603427004 100644 --- a/src/keyboard.c +++ b/src/keyboard.c | |||
| @@ -11410,6 +11410,8 @@ init_keyboard () | |||
| 11410 | do_mouse_tracking = Qnil; | 11410 | do_mouse_tracking = Qnil; |
| 11411 | #endif | 11411 | #endif |
| 11412 | input_pending = 0; | 11412 | input_pending = 0; |
| 11413 | interrupt_input_blocked = 0; | ||
| 11414 | interrupt_input_pending = 0; | ||
| 11413 | 11415 | ||
| 11414 | /* This means that command_loop_1 won't try to select anything the first | 11416 | /* This means that command_loop_1 won't try to select anything the first |
| 11415 | time through. */ | 11417 | time through. */ |
diff --git a/src/macgui.h b/src/macgui.h index 3a9913181de..7eed001a4db 100644 --- a/src/macgui.h +++ b/src/macgui.h | |||
| @@ -24,7 +24,7 @@ Boston, MA 02110-1301, USA. */ | |||
| 24 | #ifndef EMACS_MACGUI_H | 24 | #ifndef EMACS_MACGUI_H |
| 25 | #define EMACS_MACGUI_H | 25 | #define EMACS_MACGUI_H |
| 26 | 26 | ||
| 27 | typedef int Display; /* fix later */ | 27 | typedef struct _XDisplay Display; /* opaque */ |
| 28 | 28 | ||
| 29 | typedef Lisp_Object XrmDatabase; | 29 | typedef Lisp_Object XrmDatabase; |
| 30 | 30 | ||
diff --git a/src/macmenu.c b/src/macmenu.c index 9981250979a..a70a80d32ed 100644 --- a/src/macmenu.c +++ b/src/macmenu.c | |||
| @@ -876,6 +876,32 @@ no quit occurs and `x-popup-menu' returns nil. */) | |||
| 876 | 876 | ||
| 877 | #ifdef HAVE_MENUS | 877 | #ifdef HAVE_MENUS |
| 878 | 878 | ||
| 879 | /* Regard ESC and C-g as Cancel even without the Cancel button. */ | ||
| 880 | |||
| 881 | #ifdef MAC_OSX | ||
| 882 | static Boolean | ||
| 883 | mac_dialog_modal_filter (dialog, event, item_hit) | ||
| 884 | DialogRef dialog; | ||
| 885 | EventRecord *event; | ||
| 886 | DialogItemIndex *item_hit; | ||
| 887 | { | ||
| 888 | Boolean result; | ||
| 889 | |||
| 890 | result = StdFilterProc (dialog, event, item_hit); | ||
| 891 | if (result == false | ||
| 892 | && (event->what == keyDown || event->what == autoKey) | ||
| 893 | && ((event->message & charCodeMask) == kEscapeCharCode | ||
| 894 | || mac_quit_char_key_p (event->modifiers, | ||
| 895 | (event->message & keyCodeMask) >> 8))) | ||
| 896 | { | ||
| 897 | *item_hit = kStdCancelItemIndex; | ||
| 898 | return true; | ||
| 899 | } | ||
| 900 | |||
| 901 | return result; | ||
| 902 | } | ||
| 903 | #endif | ||
| 904 | |||
| 879 | DEFUN ("x-popup-dialog", Fx_popup_dialog, Sx_popup_dialog, 2, 3, 0, | 905 | DEFUN ("x-popup-dialog", Fx_popup_dialog, Sx_popup_dialog, 2, 3, 0, |
| 880 | doc: /* Pop up a dialog box and return user's selection. | 906 | doc: /* Pop up a dialog box and return user's selection. |
| 881 | POSITION specifies which frame to use. | 907 | POSITION specifies which frame to use. |
| @@ -961,6 +987,96 @@ for instance using the window manager, then this produces a quit and | |||
| 961 | but I don't want to make one now. */ | 987 | but I don't want to make one now. */ |
| 962 | CHECK_WINDOW (window); | 988 | CHECK_WINDOW (window); |
| 963 | 989 | ||
| 990 | #ifdef MAC_OSX | ||
| 991 | /* Special treatment for Fmessage_box, Fyes_or_no_p, and Fy_or_n_p. */ | ||
| 992 | if (EQ (position, Qt) | ||
| 993 | && STRINGP (Fcar (contents)) | ||
| 994 | && ((!NILP (Fequal (XCDR (contents), | ||
| 995 | Fcons (Fcons (build_string ("OK"), Qt), Qnil))) | ||
| 996 | && EQ (header, Qt)) | ||
| 997 | || (!NILP (Fequal (XCDR (contents), | ||
| 998 | Fcons (Fcons (build_string ("Yes"), Qt), | ||
| 999 | Fcons (Fcons (build_string ("No"), Qnil), | ||
| 1000 | Qnil)))) | ||
| 1001 | && NILP (header)))) | ||
| 1002 | { | ||
| 1003 | OSStatus err = noErr; | ||
| 1004 | AlertStdCFStringAlertParamRec param; | ||
| 1005 | CFStringRef error_string, explanation_string; | ||
| 1006 | DialogRef alert; | ||
| 1007 | DialogItemIndex item_hit; | ||
| 1008 | Lisp_Object tem; | ||
| 1009 | |||
| 1010 | tem = Fstring_match (concat3 (build_string ("\\("), | ||
| 1011 | call0 (intern ("sentence-end")), | ||
| 1012 | build_string ("\\)\n")), | ||
| 1013 | XCAR (contents), Qnil); | ||
| 1014 | BLOCK_INPUT; | ||
| 1015 | if (NILP (tem)) | ||
| 1016 | { | ||
| 1017 | error_string = cfstring_create_with_string (XCAR (contents)); | ||
| 1018 | if (error_string == NULL) | ||
| 1019 | err = memFullErr; | ||
| 1020 | explanation_string = NULL; | ||
| 1021 | } | ||
| 1022 | else | ||
| 1023 | { | ||
| 1024 | tem = Fmatch_end (make_number (1)); | ||
| 1025 | error_string = | ||
| 1026 | cfstring_create_with_string (Fsubstring (XCAR (contents), | ||
| 1027 | make_number (0), tem)); | ||
| 1028 | if (error_string == NULL) | ||
| 1029 | err = memFullErr; | ||
| 1030 | else | ||
| 1031 | { | ||
| 1032 | XSETINT (tem, XINT (tem) + 1); | ||
| 1033 | explanation_string = | ||
| 1034 | cfstring_create_with_string (Fsubstring (XCAR (contents), | ||
| 1035 | tem, Qnil)); | ||
| 1036 | if (explanation_string == NULL) | ||
| 1037 | { | ||
| 1038 | CFRelease (error_string); | ||
| 1039 | err = memFullErr; | ||
| 1040 | } | ||
| 1041 | } | ||
| 1042 | } | ||
| 1043 | if (err == noErr) | ||
| 1044 | err = GetStandardAlertDefaultParams (¶m, | ||
| 1045 | kStdCFStringAlertVersionOne); | ||
| 1046 | if (err == noErr) | ||
| 1047 | { | ||
| 1048 | param.movable = true; | ||
| 1049 | param.position = kWindowAlertPositionParentWindow; | ||
| 1050 | if (NILP (header)) | ||
| 1051 | { | ||
| 1052 | param.defaultText = CFSTR ("Yes"); | ||
| 1053 | param.otherText = CFSTR ("No"); | ||
| 1054 | #if 0 | ||
| 1055 | param.cancelText = CFSTR ("Cancel"); | ||
| 1056 | param.cancelButton = kAlertStdAlertCancelButton; | ||
| 1057 | #endif | ||
| 1058 | } | ||
| 1059 | err = CreateStandardAlert (kAlertNoteAlert, error_string, | ||
| 1060 | explanation_string, ¶m, &alert); | ||
| 1061 | CFRelease (error_string); | ||
| 1062 | if (explanation_string) | ||
| 1063 | CFRelease (explanation_string); | ||
| 1064 | } | ||
| 1065 | if (err == noErr) | ||
| 1066 | err = RunStandardAlert (alert, mac_dialog_modal_filter, &item_hit); | ||
| 1067 | UNBLOCK_INPUT; | ||
| 1068 | |||
| 1069 | if (err == noErr) | ||
| 1070 | { | ||
| 1071 | if (item_hit == kStdCancelItemIndex) | ||
| 1072 | Fsignal (Qquit, Qnil); | ||
| 1073 | else if (item_hit == kStdOkItemIndex) | ||
| 1074 | return Qt; | ||
| 1075 | else | ||
| 1076 | return Qnil; | ||
| 1077 | } | ||
| 1078 | } | ||
| 1079 | #endif | ||
| 964 | #ifndef HAVE_DIALOGS | 1080 | #ifndef HAVE_DIALOGS |
| 965 | /* Display a menu with these alternatives | 1081 | /* Display a menu with these alternatives |
| 966 | in the middle of frame F. */ | 1082 | in the middle of frame F. */ |
| @@ -1537,8 +1653,6 @@ menu_quit_handler (nextHandler, theEvent, userData) | |||
| 1537 | OSStatus err; | 1653 | OSStatus err; |
| 1538 | UInt32 keyCode; | 1654 | UInt32 keyCode; |
| 1539 | UInt32 keyModifiers; | 1655 | UInt32 keyModifiers; |
| 1540 | extern int mac_quit_char_modifiers; | ||
| 1541 | extern int mac_quit_char_keycode; | ||
| 1542 | 1656 | ||
| 1543 | err = GetEventParameter (theEvent, kEventParamKeyCode, | 1657 | err = GetEventParameter (theEvent, kEventParamKeyCode, |
| 1544 | typeUInt32, NULL, sizeof(UInt32), NULL, &keyCode); | 1658 | typeUInt32, NULL, sizeof(UInt32), NULL, &keyCode); |
| @@ -1548,8 +1662,7 @@ menu_quit_handler (nextHandler, theEvent, userData) | |||
| 1548 | typeUInt32, NULL, sizeof(UInt32), | 1662 | typeUInt32, NULL, sizeof(UInt32), |
| 1549 | NULL, &keyModifiers); | 1663 | NULL, &keyModifiers); |
| 1550 | 1664 | ||
| 1551 | if (err == noErr && keyCode == mac_quit_char_keycode | 1665 | if (err == noErr && mac_quit_char_key_p (keyModifiers, keyCode)) |
| 1552 | && keyModifiers == mac_quit_char_modifiers) | ||
| 1553 | { | 1666 | { |
| 1554 | MenuRef menu = userData != 0 | 1667 | MenuRef menu = userData != 0 |
| 1555 | ? (MenuRef)userData : AcquireRootMenu (); | 1668 | ? (MenuRef)userData : AcquireRootMenu (); |
diff --git a/src/macterm.c b/src/macterm.c index 7c3f036f1ba..1706da48cc3 100644 --- a/src/macterm.c +++ b/src/macterm.c | |||
| @@ -505,8 +505,10 @@ mac_draw_line (f, gc, x1, y1, x2, y2) | |||
| 505 | #endif | 505 | #endif |
| 506 | } | 506 | } |
| 507 | 507 | ||
| 508 | /* Mac version of XDrawLine (to Pixmap). */ | ||
| 509 | |||
| 508 | void | 510 | void |
| 509 | mac_draw_line_to_pixmap (display, p, gc, x1, y1, x2, y2) | 511 | XDrawLine (display, p, gc, x1, y1, x2, y2) |
| 510 | Display *display; | 512 | Display *display; |
| 511 | Pixmap p; | 513 | Pixmap p; |
| 512 | GC gc; | 514 | GC gc; |
| @@ -1628,9 +1630,9 @@ XChangeGC (display, gc, mask, xgcv) | |||
| 1628 | /* Mac replacement for XCreateGC. */ | 1630 | /* Mac replacement for XCreateGC. */ |
| 1629 | 1631 | ||
| 1630 | GC | 1632 | GC |
| 1631 | XCreateGC (display, window, mask, xgcv) | 1633 | XCreateGC (display, d, mask, xgcv) |
| 1632 | Display *display; | 1634 | Display *display; |
| 1633 | Window window; | 1635 | void *d; |
| 1634 | unsigned long mask; | 1636 | unsigned long mask; |
| 1635 | XGCValues *xgcv; | 1637 | XGCValues *xgcv; |
| 1636 | { | 1638 | { |
| @@ -1663,8 +1665,13 @@ XFreeGC (display, gc) | |||
| 1663 | if (gc->clip_region) | 1665 | if (gc->clip_region) |
| 1664 | DisposeRgn (gc->clip_region); | 1666 | DisposeRgn (gc->clip_region); |
| 1665 | #if USE_CG_DRAWING && MAC_OS_X_VERSION_MAX_ALLOWED >= 1030 | 1667 | #if USE_CG_DRAWING && MAC_OS_X_VERSION_MAX_ALLOWED >= 1030 |
| 1666 | CGColorRelease (gc->cg_fore_color); | 1668 | #if MAC_OS_X_VERSION_MIN_REQUIRED == 1020 |
| 1667 | CGColorRelease (gc->cg_back_color); | 1669 | if (CGColorGetTypeID != NULL) |
| 1670 | #endif | ||
| 1671 | { | ||
| 1672 | CGColorRelease (gc->cg_fore_color); | ||
| 1673 | CGColorRelease (gc->cg_back_color); | ||
| 1674 | } | ||
| 1668 | #endif | 1675 | #endif |
| 1669 | xfree (gc); | 1676 | xfree (gc); |
| 1670 | } | 1677 | } |
| @@ -8967,7 +8974,7 @@ static const unsigned char fn_keycode_to_keycode_table[] = { | |||
| 8967 | }; | 8974 | }; |
| 8968 | #endif /* MAC_OSX */ | 8975 | #endif /* MAC_OSX */ |
| 8969 | 8976 | ||
| 8970 | static unsigned int | 8977 | static int |
| 8971 | #if USE_CARBON_EVENTS | 8978 | #if USE_CARBON_EVENTS |
| 8972 | mac_to_emacs_modifiers (UInt32 mods) | 8979 | mac_to_emacs_modifiers (UInt32 mods) |
| 8973 | #else | 8980 | #else |
| @@ -9014,6 +9021,23 @@ mac_to_emacs_modifiers (EventModifiers mods) | |||
| 9014 | return result; | 9021 | return result; |
| 9015 | } | 9022 | } |
| 9016 | 9023 | ||
| 9024 | static UInt32 | ||
| 9025 | mac_mapped_modifiers (modifiers) | ||
| 9026 | UInt32 modifiers; | ||
| 9027 | { | ||
| 9028 | UInt32 mapped_modifiers_all = | ||
| 9029 | (NILP (Vmac_control_modifier) ? 0 : controlKey) | ||
| 9030 | | (NILP (Vmac_option_modifier) ? 0 : optionKey) | ||
| 9031 | | (NILP (Vmac_command_modifier) ? 0 : cmdKey); | ||
| 9032 | |||
| 9033 | #ifdef MAC_OSX | ||
| 9034 | mapped_modifiers_all |= | ||
| 9035 | (NILP (Vmac_function_modifier) ? 0 : kEventKeyModifierFnMask); | ||
| 9036 | #endif | ||
| 9037 | |||
| 9038 | return mapped_modifiers_all & modifiers; | ||
| 9039 | } | ||
| 9040 | |||
| 9017 | static int | 9041 | static int |
| 9018 | mac_get_emulated_btn ( UInt32 modifiers ) | 9042 | mac_get_emulated_btn ( UInt32 modifiers ) |
| 9019 | { | 9043 | { |
| @@ -9031,7 +9055,7 @@ mac_get_emulated_btn ( UInt32 modifiers ) | |||
| 9031 | #if USE_CARBON_EVENTS | 9055 | #if USE_CARBON_EVENTS |
| 9032 | /* Obtains the event modifiers from the event ref and then calls | 9056 | /* Obtains the event modifiers from the event ref and then calls |
| 9033 | mac_to_emacs_modifiers. */ | 9057 | mac_to_emacs_modifiers. */ |
| 9034 | static UInt32 | 9058 | static int |
| 9035 | mac_event_to_emacs_modifiers (EventRef eventRef) | 9059 | mac_event_to_emacs_modifiers (EventRef eventRef) |
| 9036 | { | 9060 | { |
| 9037 | UInt32 mods = 0; | 9061 | UInt32 mods = 0; |
| @@ -9256,6 +9280,9 @@ do_window_update (WindowPtr win) | |||
| 9256 | GetPortVisibleRegion (GetWindowPort (win), region); | 9280 | GetPortVisibleRegion (GetWindowPort (win), region); |
| 9257 | GetRegionBounds (region, &r); | 9281 | GetRegionBounds (region, &r); |
| 9258 | expose_frame (f, r.left, r.top, r.right - r.left, r.bottom - r.top); | 9282 | expose_frame (f, r.left, r.top, r.right - r.left, r.bottom - r.top); |
| 9283 | #if USE_CG_DRAWING | ||
| 9284 | mac_prepare_for_quickdraw (f); | ||
| 9285 | #endif | ||
| 9259 | UpdateControls (win, region); | 9286 | UpdateControls (win, region); |
| 9260 | DisposeRgn (region); | 9287 | DisposeRgn (region); |
| 9261 | #else | 9288 | #else |
| @@ -10067,21 +10094,10 @@ mac_handle_text_input_event (next_handler, event, data) | |||
| 10067 | err = GetEventParameter (kbd_event, kEventParamKeyModifiers, | 10094 | err = GetEventParameter (kbd_event, kEventParamKeyModifiers, |
| 10068 | typeUInt32, NULL, | 10095 | typeUInt32, NULL, |
| 10069 | sizeof (UInt32), NULL, &modifiers); | 10096 | sizeof (UInt32), NULL, &modifiers); |
| 10070 | if (err == noErr) | 10097 | if (err == noErr && mac_mapped_modifiers (modifiers)) |
| 10071 | { | 10098 | /* There're mapped modifier keys. Process it in |
| 10072 | mapped_modifiers = | 10099 | XTread_socket. */ |
| 10073 | (NILP (Vmac_control_modifier) ? 0 : controlKey) | 10100 | return eventNotHandledErr; |
| 10074 | | (NILP (Vmac_option_modifier) ? 0 : optionKey) | ||
| 10075 | | (NILP (Vmac_command_modifier) ? 0 : cmdKey); | ||
| 10076 | #ifdef MAC_OSX | ||
| 10077 | mapped_modifiers |= | ||
| 10078 | (NILP (Vmac_function_modifier) ? 0 : kEventKeyModifierFnMask); | ||
| 10079 | #endif | ||
| 10080 | if (modifiers & mapped_modifiers) | ||
| 10081 | /* There're mapped modifier keys. Process it in | ||
| 10082 | XTread_socket. */ | ||
| 10083 | return eventNotHandledErr; | ||
| 10084 | } | ||
| 10085 | if (err == noErr) | 10101 | if (err == noErr) |
| 10086 | err = GetEventParameter (kbd_event, kEventParamKeyUnicodes, | 10102 | err = GetEventParameter (kbd_event, kEventParamKeyUnicodes, |
| 10087 | typeUnicodeText, NULL, 0, &actual_size, | 10103 | typeUnicodeText, NULL, 0, &actual_size, |
| @@ -11032,20 +11048,12 @@ XTread_socket (sd, expected, hold_quit) | |||
| 11032 | SInt16 current_key_script; | 11048 | SInt16 current_key_script; |
| 11033 | UInt32 modifiers = er.modifiers, mapped_modifiers; | 11049 | UInt32 modifiers = er.modifiers, mapped_modifiers; |
| 11034 | 11050 | ||
| 11035 | mapped_modifiers = | ||
| 11036 | (NILP (Vmac_control_modifier) ? 0 : controlKey) | ||
| 11037 | | (NILP (Vmac_option_modifier) ? 0 : optionKey) | ||
| 11038 | | (NILP (Vmac_command_modifier) ? 0 : cmdKey); | ||
| 11039 | |||
| 11040 | #if USE_CARBON_EVENTS && defined (MAC_OSX) | 11051 | #if USE_CARBON_EVENTS && defined (MAC_OSX) |
| 11041 | mapped_modifiers |= | ||
| 11042 | (NILP (Vmac_function_modifier) ? 0 : kEventKeyModifierFnMask); | ||
| 11043 | |||
| 11044 | GetEventParameter (eventRef, kEventParamKeyModifiers, | 11052 | GetEventParameter (eventRef, kEventParamKeyModifiers, |
| 11045 | typeUInt32, NULL, | 11053 | typeUInt32, NULL, |
| 11046 | sizeof (UInt32), NULL, &modifiers); | 11054 | sizeof (UInt32), NULL, &modifiers); |
| 11047 | #endif | 11055 | #endif |
| 11048 | mapped_modifiers &= modifiers; | 11056 | mapped_modifiers = mac_mapped_modifiers (modifiers); |
| 11049 | 11057 | ||
| 11050 | #if USE_CARBON_EVENTS && (defined (MAC_OSX) || USE_MAC_TSM) | 11058 | #if USE_CARBON_EVENTS && (defined (MAC_OSX) || USE_MAC_TSM) |
| 11051 | /* When using Carbon Events, we need to pass raw keyboard | 11059 | /* When using Carbon Events, we need to pass raw keyboard |
| @@ -11639,34 +11647,33 @@ MakeMeTheFrontProcess () | |||
| 11639 | } | 11647 | } |
| 11640 | 11648 | ||
| 11641 | /***** Code to handle C-g testing *****/ | 11649 | /***** Code to handle C-g testing *****/ |
| 11642 | |||
| 11643 | /* Contains the Mac modifier formed from quit_char */ | ||
| 11644 | int mac_quit_char_modifiers = 0; | ||
| 11645 | int mac_quit_char_keycode; | ||
| 11646 | extern int quit_char; | 11650 | extern int quit_char; |
| 11651 | extern int make_ctrl_char P_ ((int)); | ||
| 11647 | 11652 | ||
| 11648 | static void | 11653 | int |
| 11649 | mac_determine_quit_char_modifiers() | 11654 | mac_quit_char_key_p (modifiers, key_code) |
| 11650 | { | 11655 | UInt32 modifiers, key_code; |
| 11651 | /* Todo: Determine modifiers from quit_char. */ | 11656 | { |
| 11652 | UInt32 qc_modifiers = ctrl_modifier; | 11657 | UInt32 char_code; |
| 11658 | unsigned long some_state = 0; | ||
| 11659 | Ptr kchr_ptr = (Ptr) GetScriptManagerVariable (smKCHRCache); | ||
| 11660 | int c, emacs_modifiers; | ||
| 11661 | |||
| 11662 | /* Mask off modifier keys that are mapped to some Emacs modifiers. */ | ||
| 11663 | key_code |= (modifiers & ~(mac_mapped_modifiers (modifiers))); | ||
| 11664 | char_code = KeyTranslate (kchr_ptr, key_code, &some_state); | ||
| 11665 | if (char_code & ~0xff) | ||
| 11666 | return 0; | ||
| 11653 | 11667 | ||
| 11654 | /* Map modifiers */ | 11668 | emacs_modifiers = mac_to_emacs_modifiers (modifiers); |
| 11655 | mac_quit_char_modifiers = 0; | 11669 | if (emacs_modifiers & ctrl_modifier) |
| 11656 | if (qc_modifiers & ctrl_modifier) mac_quit_char_modifiers |= controlKey; | 11670 | c = make_ctrl_char (char_code); |
| 11657 | if (qc_modifiers & shift_modifier) mac_quit_char_modifiers |= shiftKey; | ||
| 11658 | if (qc_modifiers & alt_modifier) mac_quit_char_modifiers |= optionKey; | ||
| 11659 | } | ||
| 11660 | 11671 | ||
| 11661 | static void | 11672 | c |= (emacs_modifiers |
| 11662 | init_quit_char_handler () | 11673 | & (meta_modifier | alt_modifier |
| 11663 | { | 11674 | | hyper_modifier | super_modifier)); |
| 11664 | /* TODO: Let this support keys other the 'g' */ | ||
| 11665 | mac_quit_char_keycode = 5; | ||
| 11666 | /* Look at <architecture/adb_kb_map.h> for details */ | ||
| 11667 | /* http://gemma.apple.com/techpubs/mac/Toolbox/Toolbox-40.html#MARKER-9-184*/ | ||
| 11668 | 11675 | ||
| 11669 | mac_determine_quit_char_modifiers(); | 11676 | return c == quit_char; |
| 11670 | } | 11677 | } |
| 11671 | #endif /* MAC_OSX */ | 11678 | #endif /* MAC_OSX */ |
| 11672 | 11679 | ||
| @@ -11804,8 +11811,6 @@ mac_initialize () | |||
| 11804 | #if USE_CARBON_EVENTS | 11811 | #if USE_CARBON_EVENTS |
| 11805 | #ifdef MAC_OSX | 11812 | #ifdef MAC_OSX |
| 11806 | init_service_handler (); | 11813 | init_service_handler (); |
| 11807 | |||
| 11808 | init_quit_char_handler (); | ||
| 11809 | #endif /* MAC_OSX */ | 11814 | #endif /* MAC_OSX */ |
| 11810 | 11815 | ||
| 11811 | init_command_handler (); | 11816 | init_command_handler (); |
diff --git a/src/macterm.h b/src/macterm.h index c941fafb690..c7d86f157f1 100644 --- a/src/macterm.h +++ b/src/macterm.h | |||
| @@ -44,8 +44,6 @@ Boston, MA 02110-1301, USA. */ | |||
| 44 | #define FONT_BASE(f) ((f)->ascent) | 44 | #define FONT_BASE(f) ((f)->ascent) |
| 45 | #define FONT_DESCENT(f) ((f)->descent) | 45 | #define FONT_DESCENT(f) ((f)->descent) |
| 46 | 46 | ||
| 47 | #define FONT_MAX_WIDTH(f) FONT_WIDTH(f) /* fix later */ | ||
| 48 | |||
| 49 | /* Structure recording bitmaps and reference count. | 47 | /* Structure recording bitmaps and reference count. |
| 50 | If REFCOUNT is 0 then this record is free to be reused. */ | 48 | If REFCOUNT is 0 then this record is free to be reused. */ |
| 51 | 49 | ||
| @@ -614,13 +612,12 @@ extern Pixmap XCreatePixmapFromBitmapData P_ ((Display *, WindowPtr, char *, | |||
| 614 | unsigned long, unsigned long, | 612 | unsigned long, unsigned long, |
| 615 | unsigned int)); | 613 | unsigned int)); |
| 616 | extern void XFreePixmap P_ ((Display *, Pixmap)); | 614 | extern void XFreePixmap P_ ((Display *, Pixmap)); |
| 617 | extern GC XCreateGC P_ ((Display *, Window, unsigned long, XGCValues *)); | 615 | extern GC XCreateGC P_ ((Display *, void *, unsigned long, XGCValues *)); |
| 618 | extern void XFreeGC P_ ((Display *, GC)); | 616 | extern void XFreeGC P_ ((Display *, GC)); |
| 619 | extern void XSetForeground P_ ((Display *, GC, unsigned long)); | 617 | extern void XSetForeground P_ ((Display *, GC, unsigned long)); |
| 620 | extern void XSetBackground P_ ((Display *, GC, unsigned long)); | 618 | extern void XSetBackground P_ ((Display *, GC, unsigned long)); |
| 621 | extern void XSetWindowBackground P_ ((Display *, WindowPtr, unsigned long)); | 619 | extern void XSetWindowBackground P_ ((Display *, WindowPtr, unsigned long)); |
| 622 | extern void mac_draw_line_to_pixmap P_ ((Display *, Pixmap, GC, int, int, | 620 | extern void XDrawLine P_ ((Display *, Pixmap, GC, int, int, int, int)); |
| 623 | int, int)); | ||
| 624 | extern void mac_clear_area P_ ((struct frame *, int, int, | 621 | extern void mac_clear_area P_ ((struct frame *, int, int, |
| 625 | unsigned int, unsigned int)); | 622 | unsigned int, unsigned int)); |
| 626 | extern void mac_unload_font P_ ((struct mac_display_info *, XFontStruct *)); | 623 | extern void mac_unload_font P_ ((struct mac_display_info *, XFontStruct *)); |
| @@ -636,6 +633,9 @@ extern void do_apple_menu P_ ((SInt16)); | |||
| 636 | #if USE_CG_DRAWING | 633 | #if USE_CG_DRAWING |
| 637 | extern void mac_prepare_for_quickdraw P_ ((struct frame *)); | 634 | extern void mac_prepare_for_quickdraw P_ ((struct frame *)); |
| 638 | #endif | 635 | #endif |
| 636 | #ifdef MAC_OSX | ||
| 637 | extern int mac_quit_char_key_p P_ ((UInt32, UInt32)); | ||
| 638 | #endif | ||
| 639 | 639 | ||
| 640 | #define FONT_TYPE_FOR_UNIBYTE(font, ch) 0 | 640 | #define FONT_TYPE_FOR_UNIBYTE(font, ch) 0 |
| 641 | #define FONT_TYPE_FOR_MULTIBYTE(font, ch) 0 | 641 | #define FONT_TYPE_FOR_MULTIBYTE(font, ch) 0 |
diff --git a/src/xterm.c b/src/xterm.c index e16fb852873..122d9b7c3de 100644 --- a/src/xterm.c +++ b/src/xterm.c | |||
| @@ -276,6 +276,10 @@ static Lisp_Object last_mouse_scroll_bar; | |||
| 276 | 276 | ||
| 277 | static Time last_mouse_movement_time; | 277 | static Time last_mouse_movement_time; |
| 278 | 278 | ||
| 279 | /* Time for last user interaction as returned in X events. */ | ||
| 280 | |||
| 281 | static Time last_user_time; | ||
| 282 | |||
| 279 | /* Incremented by XTread_socket whenever it really tries to read | 283 | /* Incremented by XTread_socket whenever it really tries to read |
| 280 | events. */ | 284 | events. */ |
| 281 | 285 | ||
| @@ -5882,6 +5886,7 @@ handle_one_xevent (dpyinfo, eventp, finish, hold_quit) | |||
| 5882 | break; | 5886 | break; |
| 5883 | 5887 | ||
| 5884 | case SelectionNotify: | 5888 | case SelectionNotify: |
| 5889 | last_user_time = event.xselection.time; | ||
| 5885 | #ifdef USE_X_TOOLKIT | 5890 | #ifdef USE_X_TOOLKIT |
| 5886 | if (! x_window_to_frame (dpyinfo, event.xselection.requestor)) | 5891 | if (! x_window_to_frame (dpyinfo, event.xselection.requestor)) |
| 5887 | goto OTHER; | 5892 | goto OTHER; |
| @@ -5890,6 +5895,7 @@ handle_one_xevent (dpyinfo, eventp, finish, hold_quit) | |||
| 5890 | break; | 5895 | break; |
| 5891 | 5896 | ||
| 5892 | case SelectionClear: /* Someone has grabbed ownership. */ | 5897 | case SelectionClear: /* Someone has grabbed ownership. */ |
| 5898 | last_user_time = event.xselectionclear.time; | ||
| 5893 | #ifdef USE_X_TOOLKIT | 5899 | #ifdef USE_X_TOOLKIT |
| 5894 | if (! x_window_to_frame (dpyinfo, event.xselectionclear.window)) | 5900 | if (! x_window_to_frame (dpyinfo, event.xselectionclear.window)) |
| 5895 | goto OTHER; | 5901 | goto OTHER; |
| @@ -5906,6 +5912,7 @@ handle_one_xevent (dpyinfo, eventp, finish, hold_quit) | |||
| 5906 | break; | 5912 | break; |
| 5907 | 5913 | ||
| 5908 | case SelectionRequest: /* Someone wants our selection. */ | 5914 | case SelectionRequest: /* Someone wants our selection. */ |
| 5915 | last_user_time = event.xselectionrequest.time; | ||
| 5909 | #ifdef USE_X_TOOLKIT | 5916 | #ifdef USE_X_TOOLKIT |
| 5910 | if (!x_window_to_frame (dpyinfo, event.xselectionrequest.owner)) | 5917 | if (!x_window_to_frame (dpyinfo, event.xselectionrequest.owner)) |
| 5911 | goto OTHER; | 5918 | goto OTHER; |
| @@ -5926,6 +5933,7 @@ handle_one_xevent (dpyinfo, eventp, finish, hold_quit) | |||
| 5926 | break; | 5933 | break; |
| 5927 | 5934 | ||
| 5928 | case PropertyNotify: | 5935 | case PropertyNotify: |
| 5936 | last_user_time = event.xproperty.time; | ||
| 5929 | #if 0 /* This is plain wrong. In the case that we are waiting for a | 5937 | #if 0 /* This is plain wrong. In the case that we are waiting for a |
| 5930 | PropertyNotify used as an ACK in incremental selection | 5938 | PropertyNotify used as an ACK in incremental selection |
| 5931 | transfer, the property will be on the receiver's window. */ | 5939 | transfer, the property will be on the receiver's window. */ |
| @@ -5949,6 +5957,7 @@ handle_one_xevent (dpyinfo, eventp, finish, hold_quit) | |||
| 5949 | 5957 | ||
| 5950 | /* Perhaps reparented due to a WM restart. Reset this. */ | 5958 | /* Perhaps reparented due to a WM restart. Reset this. */ |
| 5951 | FRAME_X_DISPLAY_INFO (f)->wm_type = X_WMTYPE_UNKNOWN; | 5959 | FRAME_X_DISPLAY_INFO (f)->wm_type = X_WMTYPE_UNKNOWN; |
| 5960 | FRAME_X_DISPLAY_INFO (f)->net_supported_window = 0; | ||
| 5952 | } | 5961 | } |
| 5953 | goto OTHER; | 5962 | goto OTHER; |
| 5954 | 5963 | ||
| @@ -6107,6 +6116,7 @@ handle_one_xevent (dpyinfo, eventp, finish, hold_quit) | |||
| 6107 | 6116 | ||
| 6108 | case KeyPress: | 6117 | case KeyPress: |
| 6109 | 6118 | ||
| 6119 | last_user_time = event.xkey.time; | ||
| 6110 | ignore_next_mouse_click_timeout = 0; | 6120 | ignore_next_mouse_click_timeout = 0; |
| 6111 | 6121 | ||
| 6112 | #if defined (USE_X_TOOLKIT) || defined (USE_GTK) | 6122 | #if defined (USE_X_TOOLKIT) || defined (USE_GTK) |
| @@ -6497,6 +6507,7 @@ handle_one_xevent (dpyinfo, eventp, finish, hold_quit) | |||
| 6497 | #endif | 6507 | #endif |
| 6498 | 6508 | ||
| 6499 | case KeyRelease: | 6509 | case KeyRelease: |
| 6510 | last_user_time = event.xkey.time; | ||
| 6500 | #ifdef HAVE_X_I18N | 6511 | #ifdef HAVE_X_I18N |
| 6501 | /* Don't dispatch this event since XtDispatchEvent calls | 6512 | /* Don't dispatch this event since XtDispatchEvent calls |
| 6502 | XFilterEvent, and two calls in a row may freeze the | 6513 | XFilterEvent, and two calls in a row may freeze the |
| @@ -6507,6 +6518,7 @@ handle_one_xevent (dpyinfo, eventp, finish, hold_quit) | |||
| 6507 | #endif | 6518 | #endif |
| 6508 | 6519 | ||
| 6509 | case EnterNotify: | 6520 | case EnterNotify: |
| 6521 | last_user_time = event.xcrossing.time; | ||
| 6510 | x_detect_focus_change (dpyinfo, &event, &inev.ie); | 6522 | x_detect_focus_change (dpyinfo, &event, &inev.ie); |
| 6511 | 6523 | ||
| 6512 | f = x_any_window_to_frame (dpyinfo, event.xcrossing.window); | 6524 | f = x_any_window_to_frame (dpyinfo, event.xcrossing.window); |
| @@ -6547,6 +6559,7 @@ handle_one_xevent (dpyinfo, eventp, finish, hold_quit) | |||
| 6547 | goto OTHER; | 6559 | goto OTHER; |
| 6548 | 6560 | ||
| 6549 | case LeaveNotify: | 6561 | case LeaveNotify: |
| 6562 | last_user_time = event.xcrossing.time; | ||
| 6550 | x_detect_focus_change (dpyinfo, &event, &inev.ie); | 6563 | x_detect_focus_change (dpyinfo, &event, &inev.ie); |
| 6551 | 6564 | ||
| 6552 | f = x_top_window_to_frame (dpyinfo, event.xcrossing.window); | 6565 | f = x_top_window_to_frame (dpyinfo, event.xcrossing.window); |
| @@ -6580,6 +6593,7 @@ handle_one_xevent (dpyinfo, eventp, finish, hold_quit) | |||
| 6580 | 6593 | ||
| 6581 | case MotionNotify: | 6594 | case MotionNotify: |
| 6582 | { | 6595 | { |
| 6596 | last_user_time = event.xmotion.time; | ||
| 6583 | previous_help_echo_string = help_echo_string; | 6597 | previous_help_echo_string = help_echo_string; |
| 6584 | help_echo_string = Qnil; | 6598 | help_echo_string = Qnil; |
| 6585 | 6599 | ||
| @@ -6728,6 +6742,7 @@ handle_one_xevent (dpyinfo, eventp, finish, hold_quit) | |||
| 6728 | 6742 | ||
| 6729 | bzero (&compose_status, sizeof (compose_status)); | 6743 | bzero (&compose_status, sizeof (compose_status)); |
| 6730 | last_mouse_glyph_frame = 0; | 6744 | last_mouse_glyph_frame = 0; |
| 6745 | last_user_time = event.xbutton.time; | ||
| 6731 | 6746 | ||
| 6732 | if (dpyinfo->grabbed | 6747 | if (dpyinfo->grabbed |
| 6733 | && last_mouse_frame | 6748 | && last_mouse_frame |
| @@ -8336,40 +8351,111 @@ x_set_offset (f, xoff, yoff, change_gravity) | |||
| 8336 | UNBLOCK_INPUT; | 8351 | UNBLOCK_INPUT; |
| 8337 | } | 8352 | } |
| 8338 | 8353 | ||
| 8339 | /* Do fullscreen as specified in extended window manager hints */ | 8354 | /* Return non-zero if _NET_SUPPORTING_WM_CHECK window exists and _NET_SUPPORTED |
| 8355 | on the root window for frame F contains ATOMNAME. | ||
| 8356 | This is how a WM check shall be done according to the Window Manager | ||
| 8357 | Specification/Extended Window Manager Hints at | ||
| 8358 | http://freedesktop.org/wiki/Standards_2fwm_2dspec. */ | ||
| 8359 | |||
| 8340 | static int | 8360 | static int |
| 8341 | do_ewmh_fullscreen (f) | 8361 | wm_supports (f, atomname) |
| 8342 | struct frame *f; | 8362 | struct frame *f; |
| 8363 | const char *atomname; | ||
| 8343 | { | 8364 | { |
| 8344 | int have_net_atom = FRAME_X_DISPLAY_INFO (f)->have_net_atoms; | 8365 | Atom actual_type; |
| 8366 | unsigned long actual_size, bytes_remaining; | ||
| 8367 | int i, rc, actual_format; | ||
| 8368 | Atom prop_atom; | ||
| 8369 | Window wmcheck_window; | ||
| 8370 | struct x_display_info *dpyinfo = FRAME_X_DISPLAY_INFO (f); | ||
| 8371 | Window target_window = dpyinfo->root_window; | ||
| 8372 | long max_len = 65536; | ||
| 8373 | Display *dpy = FRAME_X_DISPLAY (f); | ||
| 8374 | unsigned char *tmp_data = NULL; | ||
| 8375 | Atom target_type = XA_WINDOW; | ||
| 8376 | Atom want_atom; | ||
| 8377 | |||
| 8378 | BLOCK_INPUT; | ||
| 8379 | |||
| 8380 | prop_atom = XInternAtom (dpy, "_NET_SUPPORTING_WM_CHECK", False); | ||
| 8381 | |||
| 8382 | x_catch_errors (dpy); | ||
| 8383 | rc = XGetWindowProperty (dpy, target_window, | ||
| 8384 | prop_atom, 0, max_len, False, target_type, | ||
| 8385 | &actual_type, &actual_format, &actual_size, | ||
| 8386 | &bytes_remaining, &tmp_data); | ||
| 8387 | |||
| 8388 | if (rc != Success || actual_type != XA_WINDOW || x_had_errors_p (dpy)) | ||
| 8389 | { | ||
| 8390 | if (tmp_data) XFree (tmp_data); | ||
| 8391 | x_uncatch_errors (); | ||
| 8392 | UNBLOCK_INPUT; | ||
| 8393 | return 0; | ||
| 8394 | } | ||
| 8395 | |||
| 8396 | wmcheck_window = *(Window *) tmp_data; | ||
| 8397 | XFree (tmp_data); | ||
| 8345 | 8398 | ||
| 8346 | if (!have_net_atom) | 8399 | /* Check if window exists. */ |
| 8400 | XSelectInput (dpy, wmcheck_window, StructureNotifyMask); | ||
| 8401 | x_sync (f); | ||
| 8402 | if (x_had_errors_p (dpy)) | ||
| 8347 | { | 8403 | { |
| 8348 | int num; | 8404 | x_uncatch_errors (); |
| 8349 | Atom *atoms = XListProperties (FRAME_X_DISPLAY (f), | 8405 | UNBLOCK_INPUT; |
| 8350 | FRAME_X_DISPLAY_INFO (f)->root_window, | 8406 | return 0; |
| 8351 | &num); | 8407 | } |
| 8352 | if (atoms && num > 0) | 8408 | |
| 8409 | if (dpyinfo->net_supported_window != wmcheck_window) | ||
| 8410 | { | ||
| 8411 | /* Window changed, reload atoms */ | ||
| 8412 | if (dpyinfo->net_supported_atoms != NULL) | ||
| 8413 | XFree (dpyinfo->net_supported_atoms); | ||
| 8414 | dpyinfo->net_supported_atoms = NULL; | ||
| 8415 | dpyinfo->nr_net_supported_atoms = 0; | ||
| 8416 | dpyinfo->net_supported_window = 0; | ||
| 8417 | |||
| 8418 | target_type = XA_ATOM; | ||
| 8419 | prop_atom = XInternAtom (dpy, "_NET_SUPPORTED", False); | ||
| 8420 | tmp_data = NULL; | ||
| 8421 | rc = XGetWindowProperty (dpy, target_window, | ||
| 8422 | prop_atom, 0, max_len, False, target_type, | ||
| 8423 | &actual_type, &actual_format, &actual_size, | ||
| 8424 | &bytes_remaining, &tmp_data); | ||
| 8425 | |||
| 8426 | if (rc != Success || actual_type != XA_ATOM || x_had_errors_p (dpy)) | ||
| 8353 | { | 8427 | { |
| 8354 | char **names = (char **) xmalloc (num * sizeof(*names)); | 8428 | if (tmp_data) XFree (tmp_data); |
| 8355 | if (XGetAtomNames (FRAME_X_DISPLAY (f), atoms, num, names)) | 8429 | x_uncatch_errors (); |
| 8356 | { | 8430 | UNBLOCK_INPUT; |
| 8357 | int i; | 8431 | return 0; |
| 8358 | for (i = 0; i < num; ++i) | ||
| 8359 | { | ||
| 8360 | if (!have_net_atom) | ||
| 8361 | have_net_atom = strncmp (names[i], "_NET_", 5) == 0; | ||
| 8362 | XFree (names[i]); | ||
| 8363 | } | ||
| 8364 | } | ||
| 8365 | xfree (names); | ||
| 8366 | } | 8432 | } |
| 8367 | if (atoms) | ||
| 8368 | XFree (atoms); | ||
| 8369 | 8433 | ||
| 8370 | FRAME_X_DISPLAY_INFO (f)->have_net_atoms = have_net_atom; | 8434 | dpyinfo->net_supported_atoms = (Atom *)tmp_data; |
| 8435 | dpyinfo->nr_net_supported_atoms = actual_size; | ||
| 8436 | dpyinfo->net_supported_window = wmcheck_window; | ||
| 8371 | } | 8437 | } |
| 8372 | 8438 | ||
| 8439 | rc = 0; | ||
| 8440 | want_atom = XInternAtom (dpy, atomname, False); | ||
| 8441 | |||
| 8442 | for (i = 0; rc == 0 && i < dpyinfo->nr_net_supported_atoms; ++i) | ||
| 8443 | rc = dpyinfo->net_supported_atoms[i] == want_atom; | ||
| 8444 | |||
| 8445 | x_uncatch_errors (); | ||
| 8446 | UNBLOCK_INPUT; | ||
| 8447 | |||
| 8448 | return rc; | ||
| 8449 | } | ||
| 8450 | |||
| 8451 | /* Do fullscreen as specified in extended window manager hints */ | ||
| 8452 | |||
| 8453 | static int | ||
| 8454 | do_ewmh_fullscreen (f) | ||
| 8455 | struct frame *f; | ||
| 8456 | { | ||
| 8457 | int have_net_atom = wm_supports (f, "_NET_WM_STATE"); | ||
| 8458 | |||
| 8373 | if (have_net_atom) | 8459 | if (have_net_atom) |
| 8374 | { | 8460 | { |
| 8375 | Lisp_Object frame; | 8461 | Lisp_Object frame; |
| @@ -8396,6 +8482,9 @@ do_ewmh_fullscreen (f) | |||
| 8396 | break; | 8482 | break; |
| 8397 | } | 8483 | } |
| 8398 | 8484 | ||
| 8485 | if (!wm_supports (f, what)) return 0; | ||
| 8486 | |||
| 8487 | |||
| 8399 | Fx_send_client_event (frame, make_number (0), frame, | 8488 | Fx_send_client_event (frame, make_number (0), frame, |
| 8400 | make_unibyte_string (atom, strlen (atom)), | 8489 | make_unibyte_string (atom, strlen (atom)), |
| 8401 | make_number (32), | 8490 | make_number (32), |
| @@ -8796,23 +8885,27 @@ XTframe_raise_lower (f, raise_flag) | |||
| 8796 | /* The following code is needed for `raise-frame' to work on | 8885 | /* The following code is needed for `raise-frame' to work on |
| 8797 | some versions of metacity; see Window Manager | 8886 | some versions of metacity; see Window Manager |
| 8798 | Specification/Extended Window Manager Hints at | 8887 | Specification/Extended Window Manager Hints at |
| 8799 | http://freedesktop.org/wiki/Standards_2fwm_2dspec | 8888 | http://freedesktop.org/wiki/Standards_2fwm_2dspec */ |
| 8800 | 8889 | ||
| 8801 | However, on other versions (metacity 2.17.2-1.fc7), it | 8890 | #if 0 |
| 8891 | /* However, on other versions (metacity 2.17.2-1.fc7), it | ||
| 8802 | reportedly causes hangs when resizing frames. */ | 8892 | reportedly causes hangs when resizing frames. */ |
| 8803 | 8893 | ||
| 8804 | /* Lisp_Object frame; | 8894 | const char *atom = "_NET_ACTIVE_WINDOW"; |
| 8805 | const char *atom = "_NET_ACTIVE_WINDOW"; */ | 8895 | if (f->async_visible && wm_supports (f, atom)) |
| 8806 | 8896 | { | |
| 8807 | x_raise_frame (f); | 8897 | Lisp_Object frame; |
| 8808 | 8898 | XSETFRAME (frame, f); | |
| 8809 | /* XSETFRAME (frame, f); | 8899 | Fx_send_client_event (frame, make_number (0), frame, |
| 8810 | Fx_send_client_event (frame, make_number (0), frame, | 8900 | make_unibyte_string (atom, strlen (atom)), |
| 8811 | make_unibyte_string (atom, strlen (atom)), | 8901 | make_number (32), |
| 8812 | make_number (32), | 8902 | Fcons (make_number (1), |
| 8813 | Fcons (make_number (1), | 8903 | Fcons (make_number (last_user_time), |
| 8814 | Fcons (make_number (time (NULL) * 1000), | 8904 | Qnil))); |
| 8815 | Qnil))); */ | 8905 | } |
| 8906 | else | ||
| 8907 | #endif | ||
| 8908 | x_raise_frame (f); | ||
| 8816 | } | 8909 | } |
| 8817 | else | 8910 | else |
| 8818 | x_lower_frame (f); | 8911 | x_lower_frame (f); |
| @@ -10807,6 +10900,10 @@ x_term_init (display_name, xrm_option, resource_name) | |||
| 10807 | dpyinfo->x_dnd_atoms = xmalloc (sizeof (*dpyinfo->x_dnd_atoms) | 10900 | dpyinfo->x_dnd_atoms = xmalloc (sizeof (*dpyinfo->x_dnd_atoms) |
| 10808 | * dpyinfo->x_dnd_atoms_size); | 10901 | * dpyinfo->x_dnd_atoms_size); |
| 10809 | 10902 | ||
| 10903 | dpyinfo->net_supported_atoms = NULL; | ||
| 10904 | dpyinfo->nr_net_supported_atoms = 0; | ||
| 10905 | dpyinfo->net_supported_window = 0; | ||
| 10906 | |||
| 10810 | connection = ConnectionNumber (dpyinfo->display); | 10907 | connection = ConnectionNumber (dpyinfo->display); |
| 10811 | dpyinfo->connection = connection; | 10908 | dpyinfo->connection = connection; |
| 10812 | 10909 | ||
diff --git a/src/xterm.h b/src/xterm.h index 1ea50b8158f..b8e86d646ed 100644 --- a/src/xterm.h +++ b/src/xterm.h | |||
| @@ -396,7 +396,10 @@ struct x_display_info | |||
| 396 | size_t x_dnd_atoms_size; | 396 | size_t x_dnd_atoms_size; |
| 397 | size_t x_dnd_atoms_length; | 397 | size_t x_dnd_atoms_length; |
| 398 | 398 | ||
| 399 | int have_net_atoms; | 399 | /* Extended window manager hints, Atoms supported by the window manager */ |
| 400 | Atom *net_supported_atoms; | ||
| 401 | int nr_net_supported_atoms; | ||
| 402 | Window net_supported_window; | ||
| 400 | }; | 403 | }; |
| 401 | 404 | ||
| 402 | #ifdef HAVE_X_I18N | 405 | #ifdef HAVE_X_I18N |