diff options
| author | Glenn Morris | 2018-07-02 19:19:26 -0700 |
|---|---|---|
| committer | Glenn Morris | 2018-07-02 19:19:26 -0700 |
| commit | 02f2f336af7c4129ec79ab00881bba3e14ff9820 (patch) | |
| tree | 3f279977bb231ea6ddab8680999bc1bffcb31071 | |
| parent | bc0e36df8d33595d6411ec4c18e3f4b643c01306 (diff) | |
| parent | fc5cae731cede7e00f3f2d40d6577537f872d439 (diff) | |
| download | emacs-02f2f336af7c4129ec79ab00881bba3e14ff9820.tar.gz emacs-02f2f336af7c4129ec79ab00881bba3e14ff9820.zip | |
Merge from origin/emacs-26
fc5cae7 ; Fix ChangeLog typo.
e17a5e5 ; make change-history-commit
f205928 * etc/HISTORY: Cite Brinkoff on early history.
4e58ca8 Document internal use of 'above-suspended' z-group frame para...
4bd43b0 Increase max-lisp-eval-depth adjustment while in debugger (bu...
ab98352 Improve on last change in replace-buffer-contents
2f149c0 Fix a factual error in Introduction to Emacs Lisp
8ad50a3 ; * lisp/files.el (buffer-offer-save): Doc fix. (Bug#32000)
c80f31f Minor improvements in documentation of imenu.el
8ebb683 Avoid errors with recentering in 'skeleton-insert'
e980a3c * src/lisp.h: Omit obsolete comment re bytecode stack.
eec71eb Speed up replace-buffer-contents
93c41ce Remove extra process call from vc-git-find-file-hook
7ea0873 ; Update some commentary
4a7f423 Speed up vc-git-dir-status-files
9134c84 Avoid compiler warning using coding.h
Conflicts:
src/editfns.c
| -rw-r--r-- | ChangeLog.3 | 1429 | ||||
| -rw-r--r-- | doc/lispintro/emacs-lisp-intro.texi | 4 | ||||
| -rw-r--r-- | etc/HISTORY | 7 | ||||
| -rw-r--r-- | lisp/emacs-lisp/debug.el | 1 | ||||
| -rw-r--r-- | lisp/files.el | 8 | ||||
| -rw-r--r-- | lisp/imenu.el | 6 | ||||
| -rw-r--r-- | lisp/skeleton.el | 3 | ||||
| -rw-r--r-- | lisp/vc/vc-git.el | 16 | ||||
| -rw-r--r-- | src/coding.h | 4 | ||||
| -rw-r--r-- | src/editfns.c | 99 | ||||
| -rw-r--r-- | src/eval.c | 8 | ||||
| -rw-r--r-- | src/lisp.h | 18 | ||||
| -rw-r--r-- | src/w32fns.c | 22 | ||||
| -rw-r--r-- | src/xterm.c | 4 |
14 files changed, 1566 insertions, 63 deletions
diff --git a/ChangeLog.3 b/ChangeLog.3 index 6704d0d7169..a0a4794b4e0 100644 --- a/ChangeLog.3 +++ b/ChangeLog.3 | |||
| @@ -1,3 +1,1430 @@ | |||
| 1 | 2018-07-01 Paul Eggert <eggert@cs.ucla.edu> | ||
| 2 | |||
| 3 | * etc/HISTORY: Cite Brinkhoff on early history. | ||
| 4 | |||
| 5 | 2018-07-01 Martin Rudalics <rudalics@gmx.at> | ||
| 6 | |||
| 7 | Document internal use of 'above-suspended' z-group frame parameter | ||
| 8 | |||
| 9 | * src/w32fns.c (w32_dialog_in_progress, x_set_z_group): | ||
| 10 | * src/xterm.c (x_set_z_group): Clarify the internal use of | ||
| 11 | 'above-suspended' when setting a frame's 'z-group' parameter. | ||
| 12 | |||
| 13 | 2018-06-30 Gemini Lasswell <gazally@runbox.com> | ||
| 14 | |||
| 15 | Increase max-lisp-eval-depth adjustment while in debugger (bug#31919) | ||
| 16 | |||
| 17 | * src/eval.c (call_debugger): Increase the amount of extra Lisp | ||
| 18 | evaluation depth given to the debugger to allow it to call cl-print. | ||
| 19 | * lisp/emacs-lisp/debug.el (debugger-setup-buffer): Add a comment | ||
| 20 | to suggest updating call_debugger when changing print-level. | ||
| 21 | |||
| 22 | 2018-06-30 Eli Zaretskii <eliz@gnu.org> | ||
| 23 | |||
| 24 | Improve on last change in replace-buffer-contents | ||
| 25 | |||
| 26 | * src/editfns.c (Freplace_buffer_contents): Call modification | ||
| 27 | hooks only for the actual region where changes are made. | ||
| 28 | (Bug#31888) | ||
| 29 | |||
| 30 | 2018-06-30 Eli Zaretskii <eliz@gnu.org> | ||
| 31 | |||
| 32 | Fix a factual error in Introduction to Emacs Lisp | ||
| 33 | |||
| 34 | * doc/lispintro/emacs-lisp-intro.texi (Buffer Names): Update the | ||
| 35 | key that exits the splash screen. (Bug#32019) | ||
| 36 | |||
| 37 | 2018-06-30 Eli Zaretskii <eliz@gnu.org> | ||
| 38 | |||
| 39 | Minor improvements in documentation of imenu.el | ||
| 40 | |||
| 41 | * lisp/imenu.el (imenu-generic-skip-comments-and-strings) | ||
| 42 | (imenu--generic-function): Doc fixes. (Bug#31962) | ||
| 43 | |||
| 44 | 2018-06-30 Eli Zaretskii <eliz@gnu.org> | ||
| 45 | |||
| 46 | Avoid errors with recentering in 'skeleton-insert' | ||
| 47 | |||
| 48 | * lisp/skeleton.el (skeleton-insert): Don't recenter if we are | ||
| 49 | running in a buffer other than the one displayed in the selected | ||
| 50 | window. (Bug#31950) | ||
| 51 | |||
| 52 | 2018-06-29 Paul Eggert <eggert@cs.ucla.edu> | ||
| 53 | |||
| 54 | * src/lisp.h: Omit obsolete comment re bytecode stack. | ||
| 55 | |||
| 56 | 2018-06-29 Eli Zaretskii <eliz@gnu.org> | ||
| 57 | |||
| 58 | Speed up replace-buffer-contents | ||
| 59 | |||
| 60 | * src/editfns.c (EXTRA_CONTEXT_FIELDS): Add a_unibyte and | ||
| 61 | b_unibyte members. | ||
| 62 | (rbc_quitcounter): New static variable. | ||
| 63 | (Freplace_buffer_contents): Initialize a_unibyte, b_unibyte, and | ||
| 64 | rbc_quitcounter. Inhibit modification hooks if they were not | ||
| 65 | already inhibited. Use rarely_quit to allow user to quit, to | ||
| 66 | avoid calling maybe_quit too frequently (which hurts performance). | ||
| 67 | Remove redundant assertions (which hurt performance too much). | ||
| 68 | Call signal_after_change and update_compositions after all the | ||
| 69 | changes are done. | ||
| 70 | (buffer_chars_equal): Remove redundant assertions (which hurt | ||
| 71 | performance). Avoid using BUF_FETCH_CHAR_AS_MULTIBYTE, which | ||
| 72 | hurts performance by referencing Lisp symbols; instead, use | ||
| 73 | lower-level macros with explicit tests to select which macro to | ||
| 74 | use. (Bug#31888) | ||
| 75 | |||
| 76 | 2018-06-27 Dmitry Gutov <dgutov@yandex.ru> | ||
| 77 | |||
| 78 | Remove extra process call from vc-git-find-file-hook | ||
| 79 | |||
| 80 | * lisp/vc/vc-git.el (vc-git-find-file-hook): Resolve FIXMEs. | ||
| 81 | |||
| 82 | 2018-06-27 Dmitry Gutov <dgutov@yandex.ru> | ||
| 83 | |||
| 84 | Speed up vc-git-dir-status-files | ||
| 85 | |||
| 86 | * lisp/vc/vc-git.el (vc-git-dir-status-goto-stage): Call 'git | ||
| 87 | ls-files -u' for the ls-files-conflict stage | ||
| 88 | (https://lists.gnu.org/archive/html/emacs-devel/2018-06/msg00885.html). | ||
| 89 | |||
| 90 | 2018-06-27 Eli Zaretskii <eliz@gnu.org> | ||
| 91 | |||
| 92 | Avoid compiler warning using coding.h | ||
| 93 | |||
| 94 | * src/coding.h: Add INLINE_HEADER_BEGIN..INLINE_HEADER_END, since | ||
| 95 | this header now has an extern INLINE function. | ||
| 96 | |||
| 97 | 2018-06-27 Michael Albinus <michael.albinus@gmx.de> | ||
| 98 | |||
| 99 | Sync with Tramp 2.3.4. Do not merge with master | ||
| 100 | |||
| 101 | * doc/misc/trampver.texi: | ||
| 102 | * lisp/net/trampver.el: Change version to "2.3.4". | ||
| 103 | |||
| 104 | * lisp/net/tramp-smb.el (tramp-smb-handle-delete-directory): | ||
| 105 | Check, that the directory has been removed indeed. | ||
| 106 | |||
| 107 | * test/lisp/net/tramp-tests.el (tramp-test21-file-links): Adapt test. | ||
| 108 | (tramp--test-emacs25-p): New defun. | ||
| 109 | (tramp-test34-vc-registered): Use it. | ||
| 110 | |||
| 111 | 2018-06-27 Martin Rudalics <rudalics@gmx.at> | ||
| 112 | |||
| 113 | * src/xdisp.c (Vmouse_autoselect_window): Clarify doc-string (Bug#31975) | ||
| 114 | |||
| 115 | 2018-06-26 Noam Postavsky <npostavs@gmail.com> | ||
| 116 | |||
| 117 | Detect a non-list package archive content properly (Bug#22311) | ||
| 118 | |||
| 119 | * lisp/emacs-lisp/package.el (package--download-one-archive): Use | ||
| 120 | `read' instead of `read-from-string'; the latter always returns a | ||
| 121 | cons, so the `listp' check on its return value doesn't make sense. It | ||
| 122 | was changed from `read' to `read-from-string' in 2015-04-01 "* | ||
| 123 | emacs-lisp/package.el: Implement asynchronous refreshing", but that | ||
| 124 | change was not needed because `read' works fine on strings as well as | ||
| 125 | buffers. | ||
| 126 | |||
| 127 | 2018-06-25 Christophe Junke <junke.christophe@gmail.com> (tiny change) | ||
| 128 | |||
| 129 | Add ido-fallback special variable (Bug#31707) | ||
| 130 | |||
| 131 | Before ido.el switch to lexical-binding, it was possible for other | ||
| 132 | packages to modify the 'fallback' variables declared inside | ||
| 133 | 'ido-file-internal' and 'ido-buffer-internal'. | ||
| 134 | * lisp/ido.el (ido-fallback): New variable. | ||
| 135 | (ido-buffer-internal, ido-file-internal): Reset ido-fallback to nil | ||
| 136 | before prompting user. Use ido-fallback when ido-exit is 'fallback'. | ||
| 137 | (ido-fallback-command): Add optional FALLBACK-COMMAND argument. | ||
| 138 | |||
| 139 | 2018-06-25 Karl Fogel <kfogel@red-bean.com> | ||
| 140 | |||
| 141 | Tighten a cross-reference in documentation | ||
| 142 | |||
| 143 | * doc/lispref/internals.texi (Writing Emacs Primitives): Switch to | ||
| 144 | a simple parenthetical cross-reference, following up to my | ||
| 145 | commit 9a53b6d426 of 2018-06-24. | ||
| 146 | |||
| 147 | See discussion: | ||
| 148 | |||
| 149 | https://lists.gnu.org/archive/html/emacs-devel/2018-06/msg00826.html | ||
| 150 | From: Eli Zaretskii | ||
| 151 | Subject: Re: [Emacs-diffs] \ | ||
| 152 | emacs-26 9a53b6d: Say how to override a primitive interactive spec | ||
| 153 | To: Karl Fogel | ||
| 154 | CC: Stefan Monnier, Emacs Devel | ||
| 155 | Date: Mon, 25 Jun 2018 17:41:53 +0300 | ||
| 156 | Message-Id: <83r2kvrkr2.fsf@gnu.org> | ||
| 157 | |||
| 158 | 2018-06-25 Michael Albinus <michael.albinus@gmx.de> | ||
| 159 | |||
| 160 | Fix last change in tramp-sh.el | ||
| 161 | |||
| 162 | * lisp/net/tramp-sh.el (tramp-do-copy-or-rename-file-directly): | ||
| 163 | Use "-R" rather than "-r" for recursive copy of directories. | ||
| 164 | |||
| 165 | 2018-06-24 Paul Eggert <eggert@cs.ucla.edu> | ||
| 166 | |||
| 167 | Revert previous patch; comment was OK after all. | ||
| 168 | |||
| 169 | 2018-06-24 Paul Eggert <eggert@cs.ucla.edu> | ||
| 170 | |||
| 171 | Fix lead comment for count_trailing_zero_bits | ||
| 172 | |||
| 173 | * src/data.c (count_trailing_zero_bits): Fix comment to match code. | ||
| 174 | |||
| 175 | 2018-06-24 Noam Postavsky <npostavs@gmail.com> | ||
| 176 | |||
| 177 | * lisp/emacs-lisp/regexp-opt.el (regexp-opt): Fix docstring quotes. | ||
| 178 | |||
| 179 | 2018-06-24 Simen Heggestøyl <simenheg@gmail.com> | ||
| 180 | |||
| 181 | Make a minor update to the CSS mode docstring | ||
| 182 | |||
| 183 | * lisp/textmodes/css-mode.el (css-mode): Mention 'fill-paragraph'. | ||
| 184 | |||
| 185 | 2018-06-24 Karl Fogel <kfogel@red-bean.com> | ||
| 186 | |||
| 187 | Say how to override a primitive interactive spec | ||
| 188 | |||
| 189 | * doc/lispref/internals.texi (Writing Emacs Primitives): Mention that | ||
| 190 | the `interactive-form' property can be used to override a primitive | ||
| 191 | interactive specification, and refer to the detailed documentation | ||
| 192 | for setting that property. | ||
| 193 | |||
| 194 | From this thread on Emacs Devel: | ||
| 195 | |||
| 196 | https://lists.gnu.org/archive/html/emacs-devel/2018-03/msg00923.html | ||
| 197 | From: Eli Zaretskii | ||
| 198 | To: Karl Fogel | ||
| 199 | CC: Juri Linkov, Emacs Devel | ||
| 200 | Subject: Re: [Emacs-diffs] \ | ||
| 201 | master b88e7c8: Make transpose-regions interactive (Bug#30343) | ||
| 202 | Date: Thu, 29 Mar 2018 14:38:15 +0300 | ||
| 203 | Message-Id: <834lkzdsd4.fsf@gnu.org> | ||
| 204 | |||
| 205 | 2018-06-24 Michael Albinus <michael.albinus@gmx.de> | ||
| 206 | |||
| 207 | Fix Bug#31941 | ||
| 208 | |||
| 209 | * lisp/net/tramp-sh.el (tramp-do-copy-or-rename-file): In case of | ||
| 210 | FILENAME being a directory, check whether `copy-directory' could | ||
| 211 | be avoided. Suggested by Stephen Nutt <stnutt@gmail.com>. (Bug#31941) | ||
| 212 | (tramp-do-copy-or-rename-file-directly): Call "cp" with "-r". | ||
| 213 | |||
| 214 | 2018-06-23 Leo Liu <sdl.web@gmail.com> | ||
| 215 | |||
| 216 | Fix previous change in minibuffer-default-add-dired-shell-commands | ||
| 217 | |||
| 218 | The mailcap minibuffer completion used dynamic binding. Locally set | ||
| 219 | a dynamic variable. | ||
| 220 | * lisp/dired-aux.el (minibuffer-default-add-dired-shell-commands): | ||
| 221 | Store list of files in 'minibuffer-completion-table'. (Bug#31794) | ||
| 222 | |||
| 223 | 2018-06-23 Eli Zaretskii <eliz@gnu.org> | ||
| 224 | |||
| 225 | * src/editfns.c (Fformat): Make %x easier to spot in doc string. (Bug#31945) | ||
| 226 | |||
| 227 | 2018-06-23 Eli Zaretskii <eliz@gnu.org> | ||
| 228 | |||
| 229 | Improve responsiveness while in 'replace-buffer-contents' | ||
| 230 | |||
| 231 | * src/editfns.c (buffer_chars_equal): Avoid calling | ||
| 232 | buf_charpos_to_bytepos when the buffer is plain-ASCII. | ||
| 233 | Suggested by Milan Stanojević <mstanojevic@janestreet.com>. | ||
| 234 | Call maybe_quit to improve responsiveness. | ||
| 235 | (Freplace_buffer_contents): Call maybe_quit. Warn in the doc | ||
| 236 | string that the function could be slow. (Bug#31888) | ||
| 237 | |||
| 238 | 2018-06-23 Eli Zaretskii <eliz@gnu.org> | ||
| 239 | |||
| 240 | Improve documentation of 'server-start' and friends | ||
| 241 | |||
| 242 | * lisp/server.el (server-start, server-running-p): Document how to | ||
| 243 | reliably check that the current Emacs process started the server. | ||
| 244 | (Bug#31859) | ||
| 245 | |||
| 246 | 2018-06-23 Eli Zaretskii <eliz@gnu.org> | ||
| 247 | |||
| 248 | Clarify wording about functions' argument lists | ||
| 249 | |||
| 250 | * doc/lispref/functions.texi (Argument List): Clarify the | ||
| 251 | wording. (Bug#31872) | ||
| 252 | |||
| 253 | 2018-06-23 Eli Zaretskii <eliz@gnu.org> | ||
| 254 | |||
| 255 | * lisp/doc-view.el: Fix typos in the commentary. (Bug#31937) | ||
| 256 | |||
| 257 | 2018-06-22 Eli Zaretskii <eliz@gnu.org> | ||
| 258 | |||
| 259 | Fix a typo in emacs-lisp-intro.texi | ||
| 260 | |||
| 261 | * doc/lispintro/emacs-lisp-intro.texi (kill-ring-yank-pointer): | ||
| 262 | Add a missing quote. Reported by Jean-Christophe Helary | ||
| 263 | <brandelune@gmail.com> in emacs-devel. | ||
| 264 | |||
| 265 | 2018-06-22 Paul Eggert <eggert@cs.ucla.edu> | ||
| 266 | |||
| 267 | Fix doc typo: missing double-quote | ||
| 268 | |||
| 269 | 2018-06-22 Eli Zaretskii <eliz@gnu.org> | ||
| 270 | |||
| 271 | Avoid segfaults in replace-buffer-contents with large buffers | ||
| 272 | |||
| 273 | * src/editfns.c (Freplace_buffer_contents): Don't release | ||
| 274 | malloc'ed memory as long as we are using it. (Bug#31888) | ||
| 275 | |||
| 276 | 2018-06-22 Robert Pluim <rpluim@gmail.com> | ||
| 277 | |||
| 278 | Adjust for scaling for mode-line popup menus (Bug#31880) | ||
| 279 | |||
| 280 | * src/xmenu.c (menu_position_func) [HAVE_GTK3]: Take scaling | ||
| 281 | into account when calculating screen size. | ||
| 282 | |||
| 283 | 2018-06-21 Simen Heggestøyl <simenheg@gmail.com> | ||
| 284 | |||
| 285 | Change name of `seqp' argument (Bug#26411) | ||
| 286 | |||
| 287 | * lisp/emacs-lisp/seq.el (seqp): Change argument name. | ||
| 288 | |||
| 289 | * doc/lispref/sequences.texi: Update the documentation for seqp. | ||
| 290 | |||
| 291 | 2018-06-20 Noam Postavsky <npostavs@gmail.com> | ||
| 292 | |||
| 293 | Change index of ";" to better reflect it's usage (Bug#31623) | ||
| 294 | |||
| 295 | * doc/lispref/objects.texi (Comments): "; for commenting" fits better | ||
| 296 | with the following text about how a semicolon begins a comment. Also | ||
| 297 | mention that only unescaped semicolons start a comment. | ||
| 298 | |||
| 299 | 2018-06-20 Tak Kunihiro <tkk@misasa.okayama-u.ac.jp> | ||
| 300 | |||
| 301 | Fix bug of 'mouse-drag-and-drop-region' to detect edges of region (Bug#31905) | ||
| 302 | |||
| 303 | * lisp/mouse.el (mouse-drag-and-drop-region): Detect both the | ||
| 304 | beginning and the end of character of region during dragging | ||
| 305 | text. | ||
| 306 | |||
| 307 | 2018-06-19 Noam Postavsky <npostavs@gmail.com> | ||
| 308 | |||
| 309 | Fix #'fun handling inside `labels' (Bug#31792) | ||
| 310 | |||
| 311 | * lisp/emacs-lisp/cl.el (labels): Apply the equivalent of the | ||
| 312 | cl-labels change from 2015-01-16 "* lisp/emacs-lisp/cl-macs.el: Fix | ||
| 313 | last change". | ||
| 314 | * test/lisp/emacs-lisp/cl-tests.el (labels-function-quoting): New | ||
| 315 | test. | ||
| 316 | * lisp/emacs-lisp/cl-macs.el (cl-flet, cl-labels): Improve docstring, | ||
| 317 | link to relevant manual page. | ||
| 318 | * doc/misc/cl.texi (Function Bindings): Don't imply that function | ||
| 319 | cells of symbols are modified by cl-flet. Don't claim that cl-flet or | ||
| 320 | cl-labels affect references of the form (quote FUNC). | ||
| 321 | |||
| 322 | 2018-06-18 Eli Zaretskii <eliz@gnu.org> | ||
| 323 | |||
| 324 | Fix vertical-motion with 'visual' line-number display | ||
| 325 | |||
| 326 | * src/indent.c (Fvertical_motion): Don't exempt 'visual' sty;e of | ||
| 327 | line-number display from X coordinate adjustments. (Bug#31875) | ||
| 328 | |||
| 329 | 2018-06-17 Alan Third <alan@idiocy.org> | ||
| 330 | |||
| 331 | Handle NSAttributedString inputs (bug#29837) | ||
| 332 | |||
| 333 | |||
| 334 | * src/nsterm.m (EmacsView::insertText): Handle NSAttributedString. | ||
| 335 | |||
| 336 | 2018-06-17 Philipp Stephani <phst@google.com> | ||
| 337 | |||
| 338 | Allow inserting non-BMP characters | ||
| 339 | |||
| 340 | * src/coding.h (UTF_16_HIGH_SURROGATE_P, UTF_16_LOW_SURROGATE_P): Move | ||
| 341 | from coding.c and document. | ||
| 342 | (surrogates_to_codepoint): New function. | ||
| 343 | |||
| 344 | * src/nsterm.m (insertText:): Properly handle surrogate pairs. | ||
| 345 | |||
| 346 | (cherry picked from commit 703ac3ea1c1ce381f385469a0e88bc29d3fe83c2) | ||
| 347 | |||
| 348 | 2018-06-17 Aaron Jensen <aaronjensen@gmail.com> | ||
| 349 | |||
| 350 | Prevent errant scroll on mouse click (Bug#31546) | ||
| 351 | |||
| 352 | * src/nsterm.m (ns_mouse_position): Use correct frame when determining | ||
| 353 | mouse position. | ||
| 354 | * lisp/mouse.el (mouse-drag-track): Only account for mode-line height | ||
| 355 | if `mode-line-format' is non-nil. | ||
| 356 | |||
| 357 | 2018-06-17 Eli Zaretskii <eliz@gnu.org> | ||
| 358 | |||
| 359 | Minor documentation fix | ||
| 360 | |||
| 361 | * doc/lispref/windows.texi (Window Start and End): Improve | ||
| 362 | documentation and indexing of window-end. | ||
| 363 | |||
| 364 | 2018-06-16 Eli Zaretskii <eliz@gnu.org> | ||
| 365 | |||
| 366 | * lisp/window.el (window-toggle-side-windows): Doc fix. (Bug#31858) | ||
| 367 | |||
| 368 | 2018-06-16 Paul Eggert <eggert@Penguin.CS.UCLA.EDU> | ||
| 369 | |||
| 370 | Fix byte compilation of (eq foo 'default) | ||
| 371 | |||
| 372 | Backport from master. | ||
| 373 | Do not use the symbol ‘default’ as a special marker. | ||
| 374 | Instead, use a value that cannot appear in the program, | ||
| 375 | improving on a patch proposed by Robert Cochran (Bug#31718#14). | ||
| 376 | * lisp/emacs-lisp/bytecomp.el (byte-compile--default-val): | ||
| 377 | New constant. | ||
| 378 | (byte-compile-cond-jump-table-info) | ||
| 379 | (byte-compile-cond-jump-table): Use it instead of 'default. | ||
| 380 | * test/lisp/emacs-lisp/bytecomp-tests.el: | ||
| 381 | (byte-opt-testsuite-arith-data): Add a test for the bug. | ||
| 382 | |||
| 383 | 2018-06-16 Michael Albinus <michael.albinus@gmx.de> | ||
| 384 | |||
| 385 | Fix Bug#31846. Do not merge with master | ||
| 386 | |||
| 387 | * lisp/net/secrets.el (secrets-search-items) | ||
| 388 | (secrets-create-item): Fix format of :dict-entry values. (Bug#31846) | ||
| 389 | |||
| 390 | 2018-06-16 Eli Zaretskii <eliz@gnu.org> | ||
| 391 | |||
| 392 | Fix documentation of ':propertize' in mode-line-format | ||
| 393 | |||
| 394 | * doc/lispref/modes.texi (Mode Line Data): Make the description of | ||
| 395 | ':propertize' more accurate. (Bug#26291) | ||
| 396 | |||
| 397 | 2018-06-15 Eli Zaretskii <eliz@gnu.org> | ||
| 398 | |||
| 399 | Reject invalid 5-byte sequences when detecting UTF-8 encoding | ||
| 400 | |||
| 401 | * src/coding.c (detect_coding_utf_8): Reject multibyte sequences | ||
| 402 | whose leading byte is greater than MAX_MULTIBYTE_LEADING_CODE. | ||
| 403 | (Bug#31829) | ||
| 404 | * src/character.h (MAX_MULTIBYTE_LEADING_CODE): Add commentary | ||
| 405 | about the connection between the value of this macro and MAX_CHAR. | ||
| 406 | |||
| 407 | 2018-06-15 Eli Zaretskii <eliz@gnu.org> | ||
| 408 | |||
| 409 | Fix 'replace-buffer-contents' in multibyte buffers | ||
| 410 | |||
| 411 | * src/editfns.c (buffer_chars_equal): Pass a byte position to | ||
| 412 | BUF_FETCH_CHAR_AS_MULTIBYTE, not a character position. | ||
| 413 | (Bug#31837) | ||
| 414 | |||
| 415 | * test/src/editfns-tests.el (replace-buffer-contents-bug31837): | ||
| 416 | New test. | ||
| 417 | |||
| 418 | 2018-06-15 Robert Pluim <rpluim@gmail.com> | ||
| 419 | |||
| 420 | Update etc/NEWS for mail-source-movemail-program change | ||
| 421 | |||
| 422 | * etc/NEWS: Describe change in how we search for | ||
| 423 | mail-source-movemail-program. | ||
| 424 | |||
| 425 | 2018-06-15 Robert Pluim <rpluim@gmail.com> | ||
| 426 | |||
| 427 | Improve movemail default | ||
| 428 | |||
| 429 | * lisp/gnus/mail-source.el (mail-source-movemail-program): | ||
| 430 | Change default to "movemail". | ||
| 431 | (mail-source-movemail): Pass just mail-source-movemail-program to | ||
| 432 | call-process instead of fully specifying it relative to | ||
| 433 | exec-directory. Ensures that we will find Mailutils movemail if | ||
| 434 | it is installed. (Bug#31737) | ||
| 435 | |||
| 436 | 2018-06-15 Eli Zaretskii <eliz@gnu.org> | ||
| 437 | |||
| 438 | Delete description of deleted Customize functions | ||
| 439 | |||
| 440 | * doc/lispref/customize.texi (Variable Definitions): Remove the | ||
| 441 | description of 'custom-initialize-safe-set' and | ||
| 442 | 'custom-initialize-safe-default', which were deleted in Emacs | ||
| 443 | 23.2, and replace with the description of | ||
| 444 | 'custom-initialize-delay'. | ||
| 445 | |||
| 446 | 2018-06-14 Noam Postavsky <npostavs@gmail.com> | ||
| 447 | |||
| 448 | Keep vc-print-log from putting point at buffer end (Bug#31764) | ||
| 449 | |||
| 450 | * lisp/vc/vc.el (vc-print-log-internal): Use `save-excursion' around | ||
| 451 | `vc-print-log-setup-buttons'. | ||
| 452 | |||
| 453 | 2018-06-14 Paul Eggert <eggert@cs.ucla.edu> | ||
| 454 | |||
| 455 | Don’t set EMACS=t if Bash is 4.4 or newer | ||
| 456 | |||
| 457 | (Backport from master.) | ||
| 458 | (Thanks to Stefan Monnier for improvements to this patch.) | ||
| 459 | * lisp/term.el (term--bash-needs-EMACS-status): New var. | ||
| 460 | (term--bash-needs-EMACSp): New function. | ||
| 461 | (term-exec-1): Use it instead of always setting EMACS. | ||
| 462 | |||
| 463 | 2018-06-14 Eli Zaretskii <eliz@gnu.org> | ||
| 464 | |||
| 465 | Improve commentary in info.el | ||
| 466 | |||
| 467 | * lisp/info.el: Explain in commentary why some commands start with | ||
| 468 | "info-" and others with "Info-". See also | ||
| 469 | http://lists.gnu.org/archive/html/emacs-devel/2017-11/msg00482.html. | ||
| 470 | |||
| 471 | 2018-06-13 Michael Albinus <michael.albinus@gmx.de> | ||
| 472 | |||
| 473 | Fix wording in tramp.texi | ||
| 474 | |||
| 475 | * doc/misc/tramp.texi (Frequently Asked Questions): | ||
| 476 | Fix wording for abbreviations. | ||
| 477 | |||
| 478 | 2018-06-13 Michael Albinus <michael.albinus@gmx.de> | ||
| 479 | |||
| 480 | * doc/misc/tramp.texi (Remote shell setup): Fix typo. | ||
| 481 | |||
| 482 | 2018-06-12 Sam Steingold <sds@gnu.org> | ||
| 483 | |||
| 484 | Finish the Bug#11728 work: hg & git | ||
| 485 | |||
| 486 | * lisp/vc/vc-git.el (vc-git--pushpull): Make `extra-args' a list. | ||
| 487 | Do not set `compilation-error-regexp-alist', this is done in | ||
| 488 | `vc-compilation-mode'. | ||
| 489 | (vc-git-error-regexp-alist): Tweak the regexp. | ||
| 490 | * lisp/vc/vc-hg.el (vc-hg-error-regexp-alist): Make non-trivial. | ||
| 491 | (vc-hg--pushpull): Accept `post-processing' argument. | ||
| 492 | Call them after the `command'. | ||
| 493 | (vc-hg-pull): Pass the `post-processing' commands that show which | ||
| 494 | are to be modified by the `update', and then run `update'. | ||
| 495 | |||
| 496 | 2018-06-12 Sam Steingold <sds@gnu.org> | ||
| 497 | |||
| 498 | Fix Bug#11728: show files updated by git | ||
| 499 | |||
| 500 | * lisp/vc/vc-git.el (vc-git--pushpull): Accept extra-args and set | ||
| 501 | `compilation-error-regexp-alist' to `vc-git-error-regexp-alist'. | ||
| 502 | (vc-git-pull): Pass "--stat" as `extra-args' to `vc-git--pushpull'. | ||
| 503 | (vc-git-push): Pass "" as `extra-args' to `vc-git--pushpull'. | ||
| 504 | |||
| 505 | 2018-06-12 Noam Postavsky <npostavs@gmail.com> | ||
| 506 | |||
| 507 | Make 'tags' targets respect --with-silent-rules (Bug#31744) | ||
| 508 | |||
| 509 | * lwlib/Makefile.in (TAGS): | ||
| 510 | * lisp/Makefile.in (TAGS): | ||
| 511 | * src/Makefile.in (TAGS): Use AM_V_GEN and AM_V_at. | ||
| 512 | * src/Makefile.in: Note that TAGS are generated in build dir. | ||
| 513 | |||
| 514 | 2018-06-11 Thomas Fitzsimmons <fitzsim@fitzsim.org> | ||
| 515 | Noam Postavsky <npostavs@gmail.com> | ||
| 516 | |||
| 517 | soap-client: Add byte-code compatibility function (Bug#31742) | ||
| 518 | |||
| 519 | * lisp/net/soap-client.el: Bump version to 3.1.4. | ||
| 520 | (soap-type-of): New function. | ||
| 521 | (soap-resolve-references, soap-decode-type) | ||
| 522 | (soap-encode-attributes, soap-encode-value): Replace aref | ||
| 523 | calls with calls to soap-type-of. | ||
| 524 | |||
| 525 | * lisp/net/soap-inspect.el (soap-sample-value, soap-inspect): | ||
| 526 | Replace aref calls with calls to soap-type-of. | ||
| 527 | |||
| 528 | |||
| 529 | Backport: (cherry picked from commit | ||
| 530 | 1feb2e221349f26ec26bc684e0cce2acecbed3ca) | ||
| 531 | |||
| 532 | 2018-06-11 Eli Zaretskii <eliz@gnu.org> | ||
| 533 | |||
| 534 | * doc/lispref/files.texi (Unique File Names): Fix a typo. (Bug#31784) | ||
| 535 | |||
| 536 | 2018-06-10 Noam Postavsky <npostavs@gmail.com> | ||
| 537 | |||
| 538 | Fix term.el cursor movement at bottom margin (Bug#31690) | ||
| 539 | |||
| 540 | * lisp/term.el (term-handle-ansi-escape) <\E[B cud>: Allow moving the | ||
| 541 | cursor to the bottom margin line, rather than stopping one line | ||
| 542 | before. | ||
| 543 | |||
| 544 | 2018-06-10 Reuben Thomas <rrt@sc3d.org> | ||
| 545 | |||
| 546 | Call enchant-lsmod correctly when Enchant is installed with a suffix | ||
| 547 | |||
| 548 | * lisp/textmodes/ispell.el (ispell--call-enchant-lsmod): Cope with a | ||
| 549 | version suffix on the binary name, so enchant-2 is converted to | ||
| 550 | enchant-lsmod-2, not enchant-2-lsmod. (Bug#31761) | ||
| 551 | |||
| 552 | (cherry picked from commit a402d9aacbecf4bf0b9afde592a3b90c71f96832) | ||
| 553 | |||
| 554 | 2018-06-09 Eli Zaretskii <eliz@gnu.org> | ||
| 555 | |||
| 556 | Enlarge DUMPED_HEAP_SIZE for 64-bit Windows builds | ||
| 557 | |||
| 558 | * src/w32heap.c (DUMPED_HEAP_SIZE): Bump to 23MB. Reported by | ||
| 559 | Andy Moreton <andrewjmoreton@gmail.com>. | ||
| 560 | |||
| 561 | 2018-06-09 Eli Zaretskii <eliz@gnu.org> | ||
| 562 | |||
| 563 | Update Unicode data files to version 11.0.0 of Unicode | ||
| 564 | |||
| 565 | * admin/unidata/UnicodeData.txt: | ||
| 566 | * admin/unidata/SpecialCasing.txt: | ||
| 567 | * admin/unidata/NormalizationTest.txt: | ||
| 568 | * admin/unidata/copyright.html: | ||
| 569 | * admin/unidata/BidiMirroring.txt: | ||
| 570 | * admin/unidata/BidiBrackets.txt: Import from Unicode 11.0. | ||
| 571 | * admin/notes/unicode: Update the URL for OTF script tags. | ||
| 572 | |||
| 573 | * lisp/international/mule-cmds.el (ucs-names): Update unused ranges. | ||
| 574 | * lisp/international/fontset.el (script-representative-chars): Add | ||
| 575 | hanifi-rohingya, old-sogdian, sogdian, dogra, gunjala-gondi, | ||
| 576 | makasar, and medefaidrin. | ||
| 577 | (otf-script-alist): Add old-hungarian. | ||
| 578 | * lisp/international/characters.el (tbl): Add syntax entries for | ||
| 579 | Supplemental Mathematical Operators, Miscellaneous Symbols and | ||
| 580 | Arrows, and Supplemental Punctuation. | ||
| 581 | Update the list of wide characters. | ||
| 582 | |||
| 583 | * test/lisp/international/ucs-normalize-tests.el | ||
| 584 | (ucs-normalize-tests--failing-lines-part2): Update to match | ||
| 585 | admin/unidata/NormalizationTest.txt. | ||
| 586 | |||
| 587 | * doc/lispref/nonascii.texi (Character Properties): Update the | ||
| 588 | reference to the Unicode Standard. | ||
| 589 | * doc/misc/efaq.texi (New in Emacs 26): | ||
| 590 | * etc/NEWS: Mention compatibility with Unicode 11.0. | ||
| 591 | |||
| 592 | 2018-06-09 Eli Zaretskii <eliz@gnu.org> | ||
| 593 | |||
| 594 | * etc/NEWS: Belatedly call out vc-hg changes in v26.1. (Bug#31759) | ||
| 595 | |||
| 596 | 2018-06-09 Eli Zaretskii <eliz@gnu.org> | ||
| 597 | |||
| 598 | Clarify the documentation of 'dired-recursive-deletes' | ||
| 599 | |||
| 600 | * doc/emacs/dired.texi (Dired Deletion): Clarify text regarding | ||
| 601 | recursive deletion of non-empty directories. (Bug#31529) | ||
| 602 | |||
| 603 | 2018-06-08 Eli Zaretskii <eliz@gnu.org> | ||
| 604 | |||
| 605 | Clarify doc string of 'update-glyphless-char-display' | ||
| 606 | |||
| 607 | * lisp/international/characters.el | ||
| 608 | (update-glyphless-char-display): Doc fix. (Bug#31730) | ||
| 609 | |||
| 610 | 2018-06-08 Eli Zaretskii <eliz@gnu.org> | ||
| 611 | |||
| 612 | Clarify subtle issues with 'eq' in byte-compiled code | ||
| 613 | |||
| 614 | * doc/lispref/objects.texi (Equality Predicates): Explain why | ||
| 615 | byte-compiled code might compare literal objects with identical | ||
| 616 | contents as 'eq'. (Bug#31688) | ||
| 617 | |||
| 618 | 2018-06-07 Gemini Lasswell <gazally@runbox.com> | ||
| 619 | |||
| 620 | Make cl-print respect print-quoted (bug#31649) | ||
| 621 | |||
| 622 | * lisp/emacs-lisp/cl-print.el (cl-print-object) <cons>: Observe | ||
| 623 | print-quoted when printing quote and its relatives. Add printing of | ||
| 624 | 'function' as #'. | ||
| 625 | |||
| 626 | 2018-06-07 Martin Rudalics <rudalics@gmx.at> | ||
| 627 | |||
| 628 | Fix unexpected jumps of window-point in 'set-window-configuration' (Bug#31695) | ||
| 629 | |||
| 630 | * src/window.c (Fset_window_configuration): Prevent that the | ||
| 631 | fix for Bug#12208 affects restoration of window points when | ||
| 632 | using separate minibuffer frames (Bug#31695). | ||
| 633 | |||
| 634 | 2018-06-06 Nicolas Petton <nicolas@petton.fr> | ||
| 635 | |||
| 636 | * etc/emacs.appdata.xml: Update Emacs screenshot. | ||
| 637 | |||
| 638 | 2018-06-06 Eli Zaretskii <eliz@gnu.org> | ||
| 639 | |||
| 640 | Fix cursor movement by 'next-logical-line' after 'next-line' | ||
| 641 | |||
| 642 | * src/indent.c (Fvertical_motion): Adjust TO_X when line-numbers | ||
| 643 | are being displayed. Remove unneeded "correction" of TO_X at the | ||
| 644 | goal line. | ||
| 645 | |||
| 646 | * lisp/simple.el (last--line-number-width): Remove unneeded | ||
| 647 | variable. | ||
| 648 | (line-move-visual): Account for line-number display width by | ||
| 649 | adjusting the pixel X coordinate that gets converted into | ||
| 650 | canonical columns passed to vertical-motion, instead of adjusting | ||
| 651 | temporary-goal-column (which then affects next commands, including | ||
| 652 | next-logical-line). (Bug#31723) | ||
| 653 | |||
| 654 | 2018-06-05 Allen Li <darkfeline@felesatra.moe> | ||
| 655 | |||
| 656 | Fix prompt in bookmark.el (Bug#24726) | ||
| 657 | |||
| 658 | * lisp/bookmark.el (bookmark-set-internal): Conform to the standard | ||
| 659 | default prompt format (per `minibuffer-electric-default-mode') which | ||
| 660 | does not use a colon. | ||
| 661 | |||
| 662 | 2018-06-05 Basil L. Contovounesios <contovob@tcd.ie> | ||
| 663 | |||
| 664 | Improve documentation of 'empty' whitespace-style | ||
| 665 | |||
| 666 | * doc/emacs/display.texi (Useless Whitespace): Clarify that the | ||
| 667 | 'empty' whitespace-style option highlights empty lines only at | ||
| 668 | BOB/EOB, as per the docstring of whitespace-style. (bug#31713) | ||
| 669 | |||
| 670 | 2018-06-05 Paul Eggert <eggert@cs.ucla.edu> | ||
| 671 | |||
| 672 | Port FC_COLOR change to older fontconfig | ||
| 673 | |||
| 674 | Problem reported by John ff in: | ||
| 675 | https://lists.gnu.org/r/emacs-devel/2018-04/msg00058.html | ||
| 676 | * src/ftfont.c (ftfont_spec_pattern) [!FC_COLOR]: | ||
| 677 | Don’t use FC_COLOR on older fontconfigs that don’t have it. | ||
| 678 | |||
| 679 | 2018-06-05 Robert Pluim <rpluim@gmail.com> | ||
| 680 | |||
| 681 | Ignore color fonts when using Xft | ||
| 682 | |||
| 683 | * src/font.c (syms_of_font): New configuration variable | ||
| 684 | xft-ignore-color-fonts, default t. | ||
| 685 | * src/ftfont.c (ftfont_spec_pattern): Tell fontconfig to ignore | ||
| 686 | color fonts if xft-ignore-color-fonts is t. (Bug#30874, Bug#30045) | ||
| 687 | * etc/NEWS: Document xft-ignore-color-fonts. | ||
| 688 | |||
| 689 | 2018-06-04 Noam Postavsky <npostavs@gmail.com> | ||
| 690 | |||
| 691 | Fix comint-get-old-input-default for output field case (Bug#25028) | ||
| 692 | |||
| 693 | * lisp/comint.el (comint-get-old-input-default): Don't return whole | ||
| 694 | field when point was on an output field. | ||
| 695 | |||
| 696 | 2018-06-04 Eli Zaretskii <eliz@gnu.org> | ||
| 697 | |||
| 698 | Prevent infloop in 'delete-trailing-whitespace' | ||
| 699 | |||
| 700 | * lisp/simple.el (delete-trailing-whitespace): Avoid inflooping | ||
| 701 | when some region of trailing whitespace is unmodifiable. | ||
| 702 | (Bug#31557) | ||
| 703 | |||
| 704 | 2018-06-04 Gemini Lasswell <gazally@runbox.com> | ||
| 705 | |||
| 706 | Make cl-print respect print-level and print-length (bug#31559) | ||
| 707 | |||
| 708 | * lisp/emacs-lisp/cl-print.el (cl-print--depth): New variable. | ||
| 709 | (cl-print-object) <cons>: Print ellipsis if printing depth greater | ||
| 710 | than 'print-level' or length of list greater than 'print-length'. | ||
| 711 | (cl-print-object) <vector>: Truncate printing with ellipsis if | ||
| 712 | vector is longer than 'print-length'. | ||
| 713 | (cl-print-object) <cl-structure-object>: Truncate printing with | ||
| 714 | ellipsis if structure has more slots than 'print-length'. | ||
| 715 | (cl-print-object) <:around>: Bind 'cl-print--depth'. | ||
| 716 | * test/lisp/emacs-lisp/cl-print-tests.el | ||
| 717 | (cl-print-tests-3, cl-print-tests-4): New tests. | ||
| 718 | |||
| 719 | (cherry picked from commit 0f48d18fd2a30f29cc3592a835d2a2254c9b0afb) | ||
| 720 | |||
| 721 | 2018-06-03 Phil Sainty <psainty@orcon.net.nz> | ||
| 722 | |||
| 723 | Fix remote-host directory tracking for shells in `term' buffers | ||
| 724 | |||
| 725 | * lisp/term.el (term-handle-ansi-terminal-messages): Use an explicit | ||
| 726 | tramp method when constructing the tramp path for a non-local host, | ||
| 727 | as this is now mandatory. "-" is a pseudo-method for the user's | ||
| 728 | `tramp-default-method'. (Bug#31355) | ||
| 729 | |||
| 730 | Specify the remote username explicitly in all cases, as | ||
| 731 | `tramp-default-user' and `tramp-default-user-alist' could cause the | ||
| 732 | previous logic to fail. | ||
| 733 | |||
| 734 | Minor related improvements to the commentary. | ||
| 735 | |||
| 736 | 2018-06-03 Eli Zaretskii <eliz@gnu.org> | ||
| 737 | |||
| 738 | Update doc string of 'rx' | ||
| 739 | |||
| 740 | * lisp/emacs-lisp/rx.el (rx): Update the description of some | ||
| 741 | character classes. | ||
| 742 | |||
| 743 | 2018-06-03 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 744 | |||
| 745 | Fix bug#30846, along with misc cleanups found along the way | ||
| 746 | |||
| 747 | * test/src/data-tests.el (data-tests-kill-all-local-variables): New test. | ||
| 748 | |||
| 749 | * src/buffer.c (swap_out_buffer_local_variables): Remove. | ||
| 750 | Fuse the body of its loop into that of reset_buffer_local_variables. | ||
| 751 | (Fkill_buffer, Fkill_all_local_variables): Don't call it any more. | ||
| 752 | (reset_buffer_local_variables): Make sure the buffer's local binding | ||
| 753 | is swapped out before removing it from the alist (bug#30846). | ||
| 754 | Call watchers before actually killing the var. | ||
| 755 | |||
| 756 | * src/data.c (Fmake_local_variable): Simplify. | ||
| 757 | Use swap_in_global_binding to swap out any local binding, instead of | ||
| 758 | a mix of find_symbol_value followed by messing with where&found. | ||
| 759 | Don't call swap_in_symval_forwarding since the currently swapped | ||
| 760 | binding is never one we've modified. | ||
| 761 | (Fkill_local_variable): Use swap_in_global_binding rather than messing | ||
| 762 | with where&found to try and trick find_symbol_value into doing the same. | ||
| 763 | |||
| 764 | * src/alloc.c (mark_localized_symbol): 'where' can't be a frame any more. | ||
| 765 | |||
| 766 | (cherry picked from commit 3ddff080341580eb6fc18d907181e9cc2301f62d) | ||
| 767 | |||
| 768 | 2018-06-03 Jay Kamat <jaygkamat@gmail.com> | ||
| 769 | |||
| 770 | esh-opt.el: Fix improper parsing of first argument (Bug#28323) | ||
| 771 | |||
| 772 | Examples of broken behavior: | ||
| 773 | |||
| 774 | sudo -u root whoami | ||
| 775 | Outputs: -u | ||
| 776 | ls -I '*.txt' /dev/null | ||
| 777 | Errors with: *.txt: No such file or directory | ||
| 778 | |||
| 779 | * lisp/eshell/esh-opt.el (eshell--process-args): Refactor usage of | ||
| 780 | args to eshell--args, as we rely on modifications from | ||
| 781 | eshell--process-option and vice versa. These modifications were not | ||
| 782 | being propogated in the (if (= ai 0)) case, since popping the first | ||
| 783 | element of a list doesn't destructively modify the underlying list | ||
| 784 | object. | ||
| 785 | |||
| 786 | (cherry picked from commit 92a8230e49a65be48442ee95cf50c90514e48f99) | ||
| 787 | |||
| 788 | 2018-06-03 Noam Postavsky <npostavs@gmail.com> | ||
| 789 | |||
| 790 | * lisp/epa.el (epa-decrypt-file): Apply epa-pinentry-mode (Bug#30363). | ||
| 791 | |||
| 792 | (cherry picked from commit 217202c084232f36d4fa0fead0f3aca21396d074) | ||
| 793 | |||
| 794 | 2018-06-03 Noam Postavsky <npostavs@gmail.com> | ||
| 795 | |||
| 796 | Fix cl-print for circular sublists (Bug#31146) | ||
| 797 | |||
| 798 | * lisp/emacs-lisp/cl-print.el (cl-print-object) <cons>: Push each | ||
| 799 | element of list being printed onto cl-print--currently-printing. | ||
| 800 | * test/lisp/emacs-lisp/cl-print-tests.el (cl-print-circle-2): New | ||
| 801 | test. | ||
| 802 | |||
| 803 | (cherry picked from commit b8aa7ecf54c9b164a59f1b0e9f9fe90531dadd20) | ||
| 804 | |||
| 805 | 2018-06-03 Lars Ingebrigtsen <larsi@gnus.org> | ||
| 806 | |||
| 807 | Revert "Make mail-extract-address-components return the user name more" | ||
| 808 | |||
| 809 | This reverts commit 8b50ae8b2284b5652c2843a9d0d076f4f657be28. | ||
| 810 | |||
| 811 | According to tests in bug#27656 by OGAWA Hirofumi, this patch | ||
| 812 | led to wrong results when binding | ||
| 813 | |||
| 814 | (dolist (addr '("Rasmus <rasmus@gmx.us>" "Rasmus <mbox@gmx.us>")) | ||
| 815 | (dolist (ignore-single '(t nil)) | ||
| 816 | (dolist (ignore-same '(t nil)) | ||
| 817 | (let ((mail-extr-ignore-single-names ignore-single) | ||
| 818 | (mail-extr-ignore-realname-equals-mailbox-name ignore-same)) | ||
| 819 | (message "%s" (mail-extract-address-components addr)))))) | ||
| 820 | |||
| 821 | in combination. | ||
| 822 | |||
| 823 | (cherry picked from commit a3a9d5434d56f8736cc47e379a1d011d4c779b7c) | ||
| 824 | |||
| 825 | 2018-06-03 Paul Eggert <eggert@cs.ucla.edu> | ||
| 826 | |||
| 827 | Centralize Bug#30931 fix | ||
| 828 | |||
| 829 | * src/marker.c (detach_marker): New function. | ||
| 830 | * src/editfns.c (save_restriction_restore): | ||
| 831 | * src/insdel.c (signal_before_change): Use it. | ||
| 832 | |||
| 833 | (cherry picked from commit 6f66a43d7ad6cada2b7dbb6d07efe36be1dc7ecb) | ||
| 834 | |||
| 835 | 2018-06-03 Noam Postavsky <npostavs@gmail.com> | ||
| 836 | |||
| 837 | Fix another case of freed markers in the undo-list (Bug#30931) | ||
| 838 | |||
| 839 | * src/alloc.c (free_marker): Remove. | ||
| 840 | * src/editfns.c (save_restriction_restore): | ||
| 841 | * src/insdel.c (signal_before_change): Detach the markers from the | ||
| 842 | buffer when we're done with them instead of calling free_marker on | ||
| 843 | them. | ||
| 844 | * test/src/editfns-tests.el (delete-region-undo-markers-1) | ||
| 845 | (delete-region-undo-markers-2): New tests. | ||
| 846 | |||
| 847 | (cherry picked from commit 96b8747d5c5d747af13fd84d8fe0308ef2a0ea7a) | ||
| 848 | |||
| 849 | 2018-06-03 Paul Eggert <eggert@cs.ucla.edu> | ||
| 850 | |||
| 851 | Fix CHECK_ALLOCATED_AND_LIVE abort during GC | ||
| 852 | |||
| 853 | * src/editfns.c (save_restriction_restore): | ||
| 854 | Wait for the GC to free the temporary markers (Bug#30931). | ||
| 855 | |||
| 856 | (cherry picked from commit 670f2ffae718046c0fb37313965a51c040ed096f) | ||
| 857 | |||
| 858 | 2018-06-03 Noam Postavsky <npostavs@gmail.com> | ||
| 859 | |||
| 860 | Don't wait for visible frames to become visible | ||
| 861 | |||
| 862 | For discussion, see thread starting at | ||
| 863 | https://lists.gnu.org/archive/html/emacs-devel/2018-03/msg00807.html. | ||
| 864 | * src/xterm.c (x_make_frame_visible): Check FRAME_VISIBLE_P before | ||
| 865 | calling x_wait_for_event. | ||
| 866 | |||
| 867 | (cherry picked from commits 2a192e21cf3b04b7f830b4971c1508c611e13a3c | ||
| 868 | and 00c1f771f2a51ffa675ec5a07ea330f2605cd302) | ||
| 869 | |||
| 870 | 2018-06-03 Tino Calancha <tino.calancha@gmail.com> | ||
| 871 | |||
| 872 | query-replace undo: Handle when user edits the replacement string | ||
| 873 | |||
| 874 | * lisp/replace.el (perform-replace): Update the replacement string | ||
| 875 | after the user edit it (Fix Bug#31538). | ||
| 876 | |||
| 877 | * test/lisp/replace-tests.el (query-replace-undo-bug31538): New test. | ||
| 878 | |||
| 879 | Backport: (cherry picked from commits | ||
| 880 | ea133e04f49afa7928e49a3ac4a85b47f6f13f01 | ||
| 881 | and | ||
| 882 | 7dcfdf5b14325ae7996f272f14c72810d7c84944) | ||
| 883 | |||
| 884 | 2018-06-03 Tino Calancha <tino.calancha@gmail.com> | ||
| 885 | |||
| 886 | Backport: Fix corner case in query-replace-regexp undo | ||
| 887 | |||
| 888 | This commit fixes Bug#31492. | ||
| 889 | * lisp/replace.el (replace-match-maybe-edit): Preserve match data. | ||
| 890 | |||
| 891 | * test/lisp/replace-tests.el (query-replace-undo-bug31492): Add test. | ||
| 892 | |||
| 893 | (cherry picked from commit bab73230d1be1fe394b7269c1365ef6fb1a5d9b3) | ||
| 894 | |||
| 895 | 2018-06-03 Tino Calancha <tino.calancha@gmail.com> | ||
| 896 | |||
| 897 | Backport: Preserve case in query-replace undo | ||
| 898 | |||
| 899 | If the user query and replaces 'foo' with 'BAR', then | ||
| 900 | undo must comeback to 'foo', not to 'FOO' (Bug#31073). | ||
| 901 | * lisp/replace.el (perform-replace): Bind nocasify to non-nil | ||
| 902 | value during undo/undo-all actions. | ||
| 903 | * test/lisp/replace-tests.el (query-replace-undo-bug31073): Add test. | ||
| 904 | |||
| 905 | (cherry picked from commit 32dc0cb1b5ae895d237c7118ccaeb084715934fd) | ||
| 906 | |||
| 907 | 2018-06-02 Alan Third <alan@idiocy.org> | ||
| 908 | |||
| 909 | Set accessibility subroles for child frame (bug#31324) | ||
| 910 | |||
| 911 | |||
| 912 | * src/nsterm.m (x_set_parent_frame): Set subrole depending on whether | ||
| 913 | frame is a child or not. | ||
| 914 | |||
| 915 | 2018-06-02 Alan Third <alan@idiocy.org> | ||
| 916 | |||
| 917 | Fix redefinition of child frames on NS | ||
| 918 | |||
| 919 | * src/nsterm.m (x_set_parent_frame): If the NSWindow has an existing | ||
| 920 | parent frame, remove it. | ||
| 921 | |||
| 922 | 2018-06-02 Eli Zaretskii <eliz@gnu.org> | ||
| 923 | |||
| 924 | Improve ELisp documentation of 'clone-indirect-buffer' | ||
| 925 | |||
| 926 | * doc/lispref/buffers.texi (Indirect Buffers): Be more explicit | ||
| 927 | about the value of DISPLAY-FLAG in interactive usage. (Bug#31648) | ||
| 928 | |||
| 929 | 2018-06-02 Eli Zaretskii <eliz@gnu.org> | ||
| 930 | |||
| 931 | Improve documentation of 'inhibit-message' | ||
| 932 | |||
| 933 | * src/xdisp.c (syms_of_xdisp) <inhibit-message>: Warn against | ||
| 934 | setting it non-nil globally. (Bug#31627) | ||
| 935 | |||
| 936 | 2018-06-02 Eli Zaretskii <eliz@gnu.org> | ||
| 937 | |||
| 938 | Improve documentation of comment styles | ||
| 939 | |||
| 940 | * doc/lispref/syntax.texi (Syntax Flags): Define the "a" style. | ||
| 941 | (Bug#31624) | ||
| 942 | |||
| 943 | 2018-06-02 Eli Zaretskii <eliz@gnu.org> | ||
| 944 | |||
| 945 | Documentation improvements in newcomment.el | ||
| 946 | |||
| 947 | * lisp/newcomment.el (uncomment-region) | ||
| 948 | (uncomment-region-default): Doc fixes. (Bug#31615) | ||
| 949 | |||
| 950 | 2018-06-02 Eli Zaretskii <eliz@gnu.org> | ||
| 951 | |||
| 952 | Imp[rove documentation of 'with-silent-modifications' | ||
| 953 | |||
| 954 | * doc/lispref/buffers.texi (Buffer Modification): Document | ||
| 955 | 'with-silent-modifications'. (Bug#31613) | ||
| 956 | * doc/lispref/text.texi (Changing Properties): Add a | ||
| 957 | cross-reference to "Buffer Modification". Improve wording. | ||
| 958 | |||
| 959 | 2018-06-02 Eli Zaretskii <eliz@gnu.org> | ||
| 960 | |||
| 961 | Fix decoding of directories when "~" includes non-ASCII chars | ||
| 962 | |||
| 963 | * src/fileio.c (Fexpand_file_name): Don't build multibyte strings | ||
| 964 | from unibyte non-ASCII strings when NAME and DEFAULT_DIRECTORY | ||
| 965 | have different multibyteness, as this adds bytes to the byte | ||
| 966 | sequence, and in some situations, e.g., when the home directory | ||
| 967 | includes non-ASCII characters, can fail file APIs. (Bug#30755) | ||
| 968 | |||
| 969 | * lisp/startup.el (normal-top-level): Make sure default-directory | ||
| 970 | is set to a multibyte string when decoded on MS-Windows. | ||
| 971 | |||
| 972 | (cherry picked from commit 3aab8626ba5080bb04d0fdae52d99c850a842a52) | ||
| 973 | |||
| 974 | 2018-06-02 Eli Zaretskii <eliz@gnu.org> | ||
| 975 | |||
| 976 | Don't remove highlight of misspelled word on pdict save | ||
| 977 | |||
| 978 | * lisp/textmodes/ispell.el (ispell-pdict-save): Don't restart | ||
| 979 | flyspell-mode, as bug#11963, which this was supposed to fix, is | ||
| 980 | fixed better by ispell-command-loop, when the user types 'i' or | ||
| 981 | 'a'. Restarting Flyspell mode when the personal dictionary is | ||
| 982 | saved caused bug#31372 as side effect. | ||
| 983 | (ispell-command-loop): Test 'flyspell-mode', not whether | ||
| 984 | flyspell-unhighlight-at is fboundp, to determine whether Flyspell | ||
| 985 | mode is turned on in the current buffer. | ||
| 986 | (flyspell-unhighlight-at): Add declare-function form for it. | ||
| 987 | |||
| 988 | (cherry picked from commit 91e582a31ada28fab5ae55bdbf959a9d30796587) | ||
| 989 | |||
| 990 | 2018-06-02 Ari Roponen <ari.roponen@gmail.com> | ||
| 991 | |||
| 992 | Fix some problems in the Cairo build | ||
| 993 | |||
| 994 | * src/xterm.c (x_begin_cr_clip): Create image surface. | ||
| 995 | (x_update_end) [USE_CAIRO]: Remove GTK3-specific code. | ||
| 996 | (x_scroll_run) [USE_CAIRO]: Implement scrolling. | ||
| 997 | * src/image.c (lookup_rgb_color) [USE_CAIRO]: Support Cairo. | ||
| 998 | (jpeg_load_body) [USE_CAIRO]: Support Cairo. Use USE_CAIRO | ||
| 999 | instead of CAIRO for #ifdef's. | ||
| 1000 | (imagemagick_load_image) [USE_CAIRO]: Support Cairo. | ||
| 1001 | (Bug#31288) | ||
| 1002 | |||
| 1003 | (cherry picked from commit 2d0eff42b8f1122e00f948759ed01a3be1a8c3fc) | ||
| 1004 | |||
| 1005 | 2018-06-02 Eli Zaretskii <eliz@gnu.org> | ||
| 1006 | |||
| 1007 | Avoid infloops in font_open_entity | ||
| 1008 | |||
| 1009 | * src/font.c (font_open_entity): Fail after 15 iterations through | ||
| 1010 | the loop that looks for a font whose average_width and height are | ||
| 1011 | both positive. This avoids infinite loops for fonts that, e.g., | ||
| 1012 | report average_width of zero for any possible size we try. | ||
| 1013 | (Bug#31316) | ||
| 1014 | |||
| 1015 | (cherry picked from commit e2879c1f837059335af89022b2a9ac9bc861e96d) | ||
| 1016 | |||
| 1017 | 2018-06-02 Eli Zaretskii <eliz@gnu.org> | ||
| 1018 | |||
| 1019 | Fix encoding of characters when using GB18030 fonts | ||
| 1020 | |||
| 1021 | * lisp/international/fontset.el (font-encoding-alist): Fix the | ||
| 1022 | GB18030 entry to encode characters correctly when passing them to | ||
| 1023 | the xfont back-end. (Bug#31315) See also | ||
| 1024 | http://lists.gnu.org/archive/html/emacs-devel/2008-01/msg00754.html. | ||
| 1025 | |||
| 1026 | (cherry picked from commit bbe2cadc544e63e9378350621887f8fb9bbcc236) | ||
| 1027 | |||
| 1028 | 2018-06-02 Eli Zaretskii <eliz@gnu.org> | ||
| 1029 | |||
| 1030 | Fix C-p and C-n when wrap-prefix is too wide | ||
| 1031 | |||
| 1032 | * src/xdisp.c (move_it_in_display_line_to): Avoid looping in | ||
| 1033 | previous/next-line when wrap-prefix is set to a too-wide | ||
| 1034 | stretch of whitespace. (Bug#30432) | ||
| 1035 | |||
| 1036 | (cherry picked from commit 842b3d7412eaed6b2c9f90c3361abb4932ec0b1d) | ||
| 1037 | |||
| 1038 | 2018-06-02 Eli Zaretskii <eliz@gnu.org> | ||
| 1039 | |||
| 1040 | Avoid redisplay problems with too wide wrap-prefix | ||
| 1041 | |||
| 1042 | * src/xdisp.c (display_line): Avoid looping in redisplay when | ||
| 1043 | wrap-prefix is set to a too-wide stretch of whitespace. | ||
| 1044 | (Bug#30432) | ||
| 1045 | |||
| 1046 | (cherry picked from commit 2a1fe08307402d6217d073f8ab7737750d253dd4) | ||
| 1047 | |||
| 1048 | 2018-06-02 Eli Zaretskii <eliz@gnu.org> | ||
| 1049 | |||
| 1050 | Fix 'posn-at-point' when line numbers are displayed | ||
| 1051 | |||
| 1052 | * src/xdisp.c (pos_visible_p): For the leftmost glyph, adjust the X | ||
| 1053 | coordinate due to line-number display. (Bug#30834) | ||
| 1054 | |||
| 1055 | (cherry picked from commit 4a20174d7949028f66b18a92a75d6b74194242a8) | ||
| 1056 | |||
| 1057 | 2018-06-02 Eli Zaretskii <eliz@gnu.org> | ||
| 1058 | |||
| 1059 | Another followup to fixing 'window-text-pixel-width' | ||
| 1060 | |||
| 1061 | * src/xdisp.c (Fwindow_text_pixel_size): Adjust the return value | ||
| 1062 | when we stop one buffer position short of TO. (Bug#30746) | ||
| 1063 | |||
| 1064 | (cherry picked from commit 33cba5405c724566673cf023513bfb1faa963bea) | ||
| 1065 | |||
| 1066 | 2018-06-02 Eli Zaretskii <eliz@gnu.org> | ||
| 1067 | |||
| 1068 | Fix mouse-set-point when line numbers are displayed | ||
| 1069 | |||
| 1070 | * src/xdisp.c (move_it_to): Initialize the line_number_produced_p | ||
| 1071 | flag before iterating on a new line. (Bug#30818) | ||
| 1072 | |||
| 1073 | (cherry picked from commit 5c585b8b994aad4e6844f8eed80bdfbb396e91bf) | ||
| 1074 | |||
| 1075 | 2018-06-02 Eli Zaretskii <eliz@gnu.org> | ||
| 1076 | |||
| 1077 | * src/xdisp.c (Fwindow_text_pixel_size): Fix last change. | ||
| 1078 | |||
| 1079 | (cherry picked from commit 06911714ef66ea81380b1eda75a9f7cfbc9e0b65) | ||
| 1080 | |||
| 1081 | 2018-06-02 Eli Zaretskii <eliz@gnu.org> | ||
| 1082 | |||
| 1083 | Fix 'window-text-pixel-size' when display properties are around | ||
| 1084 | |||
| 1085 | * src/xdisp.c (Fwindow_text_pixel_size): Correct the result when | ||
| 1086 | there's a display property at the TO position, and the call to | ||
| 1087 | move_it_to overshoots. (Bug#30746) | ||
| 1088 | |||
| 1089 | (cherry picked from commit 50e2c0fb5180a757d8d533518f68837ffe5909be) | ||
| 1090 | |||
| 1091 | 2018-06-02 Eli Zaretskii <eliz@gnu.org> | ||
| 1092 | |||
| 1093 | Fix display of TABs in hscrolled windows with line numbers | ||
| 1094 | |||
| 1095 | * src/dispextern.h (struct it): New members tab_offset and | ||
| 1096 | line_number_produced_p. | ||
| 1097 | * src/xdisp.c (display_line): Don't set row->x to a negative value | ||
| 1098 | if line numbers are being displayed. (Bug#30582) | ||
| 1099 | Reset the line_number_produced_p flag before laying out the glyph | ||
| 1100 | row. | ||
| 1101 | (x_produce_glyphs): Use the line_number_produced_p flag to decide | ||
| 1102 | whether to offset the X coordinate due to line-number display. | ||
| 1103 | Use the tab_offset member to restore the original TAB width for | ||
| 1104 | alignment purposes. | ||
| 1105 | (move_it_in_display_line_to): Don't produce line numbers when moving | ||
| 1106 | in hscrolled window to the left of first_visible_x. | ||
| 1107 | (maybe_produce_line_number): Set the line_number_produced_p flag. | ||
| 1108 | (Bug#30584) | ||
| 1109 | * src/term.c (produce_glyphs): Correct TAB width only when | ||
| 1110 | line_number_produced_p flag is set. | ||
| 1111 | |||
| 1112 | (cherry picked from commit 1ac190553886ff20817d3dd218464e2fc6f9e42a) | ||
| 1113 | |||
| 1114 | 2018-06-02 Matthias Dahl <matthias.dahl@binary-island.eu> | ||
| 1115 | |||
| 1116 | Fix wait_reading_process_output wait_proc hang | ||
| 1117 | |||
| 1118 | * src/process.c (read_process_output): Track bytes read from | ||
| 1119 | a process. | ||
| 1120 | (wait_reading_process_output): If called recursively through | ||
| 1121 | timers and/or process filters via accept-process-output, it is | ||
| 1122 | possible that the output of wait_proc has already been read by | ||
| 1123 | one of those recursive calls, leaving the original call hanging | ||
| 1124 | forever if no further output arrives through that fd and no | ||
| 1125 | timeout has been set. Fix that by using the process read | ||
| 1126 | accounting to keep track of how many bytes have been read and | ||
| 1127 | use that as a condition to break out of the infinite loop and | ||
| 1128 | return to the caller as well as to calculate the proper return | ||
| 1129 | value (if a wait_proc is given that is). | ||
| 1130 | |||
| 1131 | * src/process.h (struct Lisp_Process): Add nbytes_read to track | ||
| 1132 | bytes read from a process. | ||
| 1133 | |||
| 1134 | (cherry picked from commit 4ba32858d61eee16f17b51aca01c15211a0912f8) | ||
| 1135 | |||
| 1136 | 2018-06-02 Eli Zaretskii <eliz@gnu.org> | ||
| 1137 | |||
| 1138 | Fix posn-at-point in Flycheck buffers | ||
| 1139 | |||
| 1140 | * src/dispnew.c (buffer_posn_from_coords): Improve commentary. | ||
| 1141 | |||
| 1142 | * src/xdisp.c (move_it_in_display_line_to): Don't exit the loop | ||
| 1143 | under truncate-lines if the glyph at TO_CHARPOS was not yet | ||
| 1144 | produced. This avoids bailing out too early when we are at | ||
| 1145 | TO_CHARPOS, but didn't yet produce glyphs for that buffer | ||
| 1146 | position, because the last call to PRODUCE_GLYPHS at this position | ||
| 1147 | was for an object other than the buffer. For further details, see | ||
| 1148 | http://lists.gnu.org/archive/html/emacs-devel/2018-01/msg00537.html. | ||
| 1149 | |||
| 1150 | (cherry picked from commit c0154ac7c3423f68d8f3a2e85a756c9759219039) | ||
| 1151 | |||
| 1152 | 2018-06-02 Martin Rudalics <rudalics@gmx.at> | ||
| 1153 | |||
| 1154 | * etc/PROBLEMS: Document stickyness problem with FVWM (Bug#31650) | ||
| 1155 | |||
| 1156 | 2018-06-01 Eli Zaretskii <eliz@gnu.org> | ||
| 1157 | |||
| 1158 | Update Emacs Lisp Intro to match current behavior | ||
| 1159 | |||
| 1160 | * doc/lispintro/emacs-lisp-intro.texi (Wrong Type of Argument) | ||
| 1161 | (debug, debug-on-entry, Void Function, Void Variable): Update the | ||
| 1162 | *Backtrace* buffer display to current Emacs. (Bug#31654) | ||
| 1163 | |||
| 1164 | 2018-06-01 Robert Pluim <rpluim@gmail.com> | ||
| 1165 | |||
| 1166 | Fix previous commit | ||
| 1167 | |||
| 1168 | * doc/emacs/files.texi (Interlocking): Two spaces at end of sentence | ||
| 1169 | |||
| 1170 | 2018-06-01 Ville Skyttä <ville.skytta@iki.fi> (tiny change) | ||
| 1171 | |||
| 1172 | Fix typos in several manuals (Bug#31610) | ||
| 1173 | |||
| 1174 | 2018-06-01 Robert Pluim <rpluim@gmail.com> | ||
| 1175 | |||
| 1176 | Add detailed documentation about lock files | ||
| 1177 | |||
| 1178 | * doc/emacs/files.texi (Interlocking): Point user at detailed | ||
| 1179 | file locking description in lisp reference manual. Add index | ||
| 1180 | entry for '.#' to improve disoverability of information about locking. | ||
| 1181 | |||
| 1182 | * doc/lispref/files.texi (File Locks): Describe in detail what | ||
| 1183 | the form of the lock file is. Add index entry for '.#' to | ||
| 1184 | improve disoverability of information about locking. | ||
| 1185 | |||
| 1186 | * src/filelock.c (create-lockfiles): Add cross reference to | ||
| 1187 | file locking in user manual and to 'lock-buffer'. Add string | ||
| 1188 | '.#' to help users find the doc string. | ||
| 1189 | |||
| 1190 | 2018-06-01 Eli Zaretskii <eliz@gnu.org> | ||
| 1191 | |||
| 1192 | Add commentary for subtle aspect of frame.el | ||
| 1193 | |||
| 1194 | * lisp/frame.el: Explain why we use symbol-function when adding | ||
| 1195 | watchers for certain variables that need to trigger redisplay. | ||
| 1196 | |||
| 1197 | 2018-06-01 Eli Zaretskii <eliz@gnu.org> | ||
| 1198 | |||
| 1199 | Improve documentation of 'directory-files-and-attributes' | ||
| 1200 | |||
| 1201 | * doc/lispref/files.texi (Contents of Directories): Fix inaccurate | ||
| 1202 | description of the return value of directory-files-and-attributes. | ||
| 1203 | |||
| 1204 | * src/dired.c (Fdirectory_files_and_attributes): Describe the | ||
| 1205 | function's value in more detail. | ||
| 1206 | |||
| 1207 | 2018-05-30 Katsumi Yamaoka <yamaoka@jpl.org> | ||
| 1208 | |||
| 1209 | * lisp/gnus/message.el (message-remove-header): Don't remove things | ||
| 1210 | not looking like header (bug#31651). | ||
| 1211 | |||
| 1212 | 2018-05-30 Eli Zaretskii <eliz@gnu.org> | ||
| 1213 | |||
| 1214 | Adapt hexl-mode to native line-number display | ||
| 1215 | |||
| 1216 | * lisp/hexl.el (hexl-mode-ruler): When display-line-numbers is in | ||
| 1217 | effect, adjust offsets and columns to account for the line-number | ||
| 1218 | display. (Bug#31595) | ||
| 1219 | |||
| 1220 | 2018-05-30 Michael Albinus <michael.albinus@gmx.de> | ||
| 1221 | |||
| 1222 | Fix example in Tramp manual | ||
| 1223 | |||
| 1224 | * doc/misc/tramp.texi (Frequently Asked Questions): Fix wording | ||
| 1225 | for the zsh example. | ||
| 1226 | |||
| 1227 | 2018-05-29 Robert Pluim <rpluim@gmail.com> | ||
| 1228 | |||
| 1229 | Handle case where Xft is found but not XRender | ||
| 1230 | |||
| 1231 | * configure.ac (XFT_LIBS): Ensure that HAVE_XFT is no if | ||
| 1232 | XRender is not found. (Bug#31634) | ||
| 1233 | |||
| 1234 | 2018-05-29 Michael Albinus <michael.albinus@gmx.de> | ||
| 1235 | |||
| 1236 | * doc/misc/tramp.texi (Frequently Asked Questions): Adapt zsh example. | ||
| 1237 | |||
| 1238 | 2018-05-29 Damien Cassou <damien@cassou.me> | ||
| 1239 | |||
| 1240 | Improve read-multiple-choice docstring (Bug#31628) | ||
| 1241 | |||
| 1242 | * lisp/emacs-lisp/rmc.el (read-multiple-choice): Improve docstring. | ||
| 1243 | |||
| 1244 | 2018-05-29 Michael Albinus <michael.albinus@gmx.de> | ||
| 1245 | |||
| 1246 | * doc/misc/tramp.texi (All): Use @code instead of @option for user options. | ||
| 1247 | |||
| 1248 | 2018-05-29 Michael Albinus <michael.albinus@gmx.de> | ||
| 1249 | |||
| 1250 | Fix Bug#31605 | ||
| 1251 | |||
| 1252 | * doc/misc/tramp.texi (All): Add @vindex entries for | ||
| 1253 | environment variables. | ||
| 1254 | (Remote shell setup): New items `tramp-terminal-type' and | ||
| 1255 | "Determining a Tramp session". | ||
| 1256 | (Frequently Asked Questions): Adapt zsh example. (Bug#31605) | ||
| 1257 | |||
| 1258 | 2018-05-29 Michael Albinus <michael.albinus@gmx.de> | ||
| 1259 | |||
| 1260 | Sync with Tramp 2.3.4-pre | ||
| 1261 | |||
| 1262 | * doc/misc/trampver.texi: Change version to "2.3.4-pre | ||
| 1263 | |||
| 1264 | * lisp/net/tramp.el (tramp-mode, tramp-verbose) | ||
| 1265 | (tramp-backup-directory-alist, tramp-auto-save-directory) | ||
| 1266 | (tramp-encoding-shell, tramp-encoding-command-switch) | ||
| 1267 | (tramp-encoding-command-interactive, tramp-default-method) | ||
| 1268 | (tramp-default-method-alist, tramp-default-user) | ||
| 1269 | (tramp-default-user-alist, tramp-default-host) | ||
| 1270 | (tramp-default-host-alist, tramp-default-proxies-alist) | ||
| 1271 | (tramp-save-ad-hoc-proxies, tramp-restricted-shell-hosts-alist) | ||
| 1272 | (tramp-local-end-of-line, tramp-rsh-end-of-line) | ||
| 1273 | (tramp-login-prompt-regexp, tramp-shell-prompt-pattern) | ||
| 1274 | (tramp-password-prompt-regexp, tramp-wrong-passwd-regexp) | ||
| 1275 | (tramp-yesno-prompt-regexp, tramp-yn-prompt-regexp) | ||
| 1276 | (tramp-terminal-prompt-regexp) | ||
| 1277 | (tramp-operation-not-permitted-regexp, tramp-copy-failed-regexp) | ||
| 1278 | (tramp-process-alive-regexp, tramp-chunksize) | ||
| 1279 | (tramp-process-connection-type, tramp-connection-timeout) | ||
| 1280 | (tramp-connection-min-time-diff) | ||
| 1281 | (tramp-completion-reread-directory-timeout): | ||
| 1282 | * lisp/net/tramp-adb.el (tramp-adb-program) | ||
| 1283 | (tramp-adb-connect-if-not-connected, tramp-adb-prompt): | ||
| 1284 | * lisp/net/tramp-cache.el (tramp-connection-properties) | ||
| 1285 | (tramp-persistency-file-name): | ||
| 1286 | * lisp/net/tramp-gvfs.el (tramp-gvfs-methods) | ||
| 1287 | (tramp-gvfs-zeroconf-domain, tramp-bluez-discover-devices-timeout): | ||
| 1288 | * lisp/net/tramp-sh.el (tramp-inline-compress-start-size) | ||
| 1289 | (tramp-copy-size-limit, tramp-terminal-type) | ||
| 1290 | (tramp-histfile-override, tramp-use-ssh-controlmaster-options) | ||
| 1291 | (tramp-remote-path, tramp-remote-process-environment) | ||
| 1292 | (tramp-sh-extra-args): | ||
| 1293 | * lisp/net/tramp-smb.el (tramp-smb-program, tramp-smb-acl-program) | ||
| 1294 | (tramp-smb-conf, tramp-smb-winexe-program) | ||
| 1295 | (tramp-smb-winexe-shell-command) | ||
| 1296 | (tramp-smb-winexe-shell-command-switch): | ||
| 1297 | Dont't require 'tramp. (Bug#31558) | ||
| 1298 | |||
| 1299 | * lisp/net/tramp.el (tramp-accept-process-output): | ||
| 1300 | * lisp/net/tramp-adb.el (tramp-adb-handle-start-file-process): | ||
| 1301 | * lisp/net/tramp-sh.el (tramp-do-copy-or-rename-file-out-of-band) | ||
| 1302 | (tramp-sh-handle-start-file-process): | ||
| 1303 | * lisp/net/tramp-smb.el (tramp-smb-handle-copy-directory) | ||
| 1304 | (tramp-smb-handle-file-acl, tramp-smb-handle-process-file) | ||
| 1305 | (tramp-smb-handle-set-file-acl) | ||
| 1306 | (tramp-smb-handle-start-file-process): Suppress timers. | ||
| 1307 | |||
| 1308 | * lisp/net/tramp-adb.el (tramp-adb-handle-write-region): | ||
| 1309 | * lisp/net/tramp-gvfs.el (tramp-gvfs-handle-write-region): | ||
| 1310 | * lisp/net/tramp-sh.el (tramp-sh-handle-write-region): | ||
| 1311 | * lisp/net/tramp-smb.el (tramp-smb-handle-write-region): | ||
| 1312 | Write proper message. | ||
| 1313 | |||
| 1314 | * lisp/net/tramp-cmds.el (tramp-change-syntax): | ||
| 1315 | Use `customize-set-variable'. | ||
| 1316 | |||
| 1317 | * lisp/net/tramp-sh.el (tramp-open-connection-setup-interactive-shell): | ||
| 1318 | Ensure proper EOL handling for Darwin. | ||
| 1319 | (tramp-find-inline-compress): Improve command quoting for w32. | ||
| 1320 | Reported by Chris Zheng <chriszheng99@gmail.com>. | ||
| 1321 | (tramp-open-connection-setup-interactive-shell): Wrap both echo | ||
| 1322 | calls in parentheses, in order to avoid double prompt. | ||
| 1323 | |||
| 1324 | * lisp/net/tramp-smb.el (tramp-smb-errors): | ||
| 1325 | Add "NT_STATUS_RESOURCE_NAME_NOT_FOUND". | ||
| 1326 | |||
| 1327 | * lisp/net/tramp.el (tramp-default-user-alist) | ||
| 1328 | (tramp-default-host-alist): Fix docstring. | ||
| 1329 | (tramp-dissect-file-name): Adapt docstring. (Bug#30904) | ||
| 1330 | (tramp-make-tramp-file-name): Check, that method is | ||
| 1331 | not empty. (Bug#30038) | ||
| 1332 | (tramp-message-show-message): Change default. | ||
| 1333 | |||
| 1334 | * lisp/net/trampver.el: Change version to "2.3.4-pre". | ||
| 1335 | |||
| 1336 | * test/lisp/net/tramp-tests.el (ert-x): Require it. | ||
| 1337 | (tramp-test10-write-region): Extend test. | ||
| 1338 | (tramp--test-emacs27-p, tramp--test-windows-nt): New defuns. | ||
| 1339 | (tramp-test11-copy-file, tramp-test12-rename-file) | ||
| 1340 | (tramp-test21-file-links, tramp-test24-file-acl) | ||
| 1341 | (tramp-test25-file-selinux, tramp--test-check-files): Use them. | ||
| 1342 | (tramp-test21-file-links): Do not call `make-symbolic-link' on w32. | ||
| 1343 | Fix file name quoting test. | ||
| 1344 | (tramp-test32-environment-variables-and-port-numbers): | ||
| 1345 | Adapt check for systems which do not support "echo -n". (Bug#29712) | ||
| 1346 | (tramp-test36-find-backup-file-name): Call also | ||
| 1347 | `convert-standard-filename' due to w32. | ||
| 1348 | (tramp-test41-asynchronous-requests): | ||
| 1349 | Use $REMOTE_PARALLEL_PROCESSES. Flush cache prior file operations. | ||
| 1350 | (tramp-test42-auto-load, tramp-test42-delay-load) | ||
| 1351 | (tramp-test42-recursive-load, tramp-test42-remote-load-path): | ||
| 1352 | Quote command due to w32. | ||
| 1353 | |||
| 1354 | 2018-05-28 Eli Zaretskii <eliz@gnu.org> | ||
| 1355 | |||
| 1356 | Bump Emacs version to 26.1.50 | ||
| 1357 | |||
| 1358 | * msdos/sed2v2.inp: | ||
| 1359 | * nt/README.W32: | ||
| 1360 | * configure.ac: | ||
| 1361 | * README: Bump Emacs version to 26.1.50. | ||
| 1362 | |||
| 1363 | 2018-05-27 Thien-Thi Nguyen <ttn@gnu.org> | ||
| 1364 | |||
| 1365 | Mention pcase as a fifth conditional form | ||
| 1366 | |||
| 1367 | * doc/lispref/control.texi (Conditionals): ...here, | ||
| 1368 | in first para, w/ xref to "Pattern-Matching Conditional". | ||
| 1369 | |||
| 1370 | 2018-05-27 Thien-Thi Nguyen <ttn@gnu.org> | ||
| 1371 | |||
| 1372 | Overhaul pcase documentation | ||
| 1373 | |||
| 1374 | Suggested by Drew Adams (Bug#31311). | ||
| 1375 | |||
| 1376 | * doc/lispref/control.texi (Control Structures): | ||
| 1377 | Add "Pattern-Matching Conditional" to menu, before "Iteration". | ||
| 1378 | (Conditionals): Delete menu. | ||
| 1379 | (Pattern matching case statement): Delete node/subsection, | ||
| 1380 | by actually moving, renaming, and overhauling it to... | ||
| 1381 | (Pattern-Matching Conditional): ...new node/section. | ||
| 1382 | (pcase Macro): New node/subsection. | ||
| 1383 | (Extending pcase): Likewise. | ||
| 1384 | (Backquote Patterns): Likewise. | ||
| 1385 | * doc/lispref/elisp.texi (Top) In @detailmenu, add | ||
| 1386 | "Pattern-Matching Conditional" under "Control Structures" | ||
| 1387 | section and delete "Conditionals" section. | ||
| 1388 | * lisp/emacs-lisp/pcase.el (pcase): Rewrite docstring. | ||
| 1389 | (pcase-defmacro \` (qpat) ...): Likewise. | ||
| 1390 | |||
| 1391 | 2018-05-27 Thien-Thi Nguyen <ttn@gnu.org> | ||
| 1392 | |||
| 1393 | Use EXPVAL in docstrings of patterns defined using pcase-defmacro | ||
| 1394 | |||
| 1395 | Suggested by Drew Adams (Bug#31311). | ||
| 1396 | |||
| 1397 | * lisp/emacs-lisp/cl-macs.el (cl-struct): ...here. | ||
| 1398 | * lisp/emacs-lisp/eieio.el (eieio): Likewise. | ||
| 1399 | * lisp/emacs-lisp/radix-tree.el (radix-tree-leaf): Likewise. | ||
| 1400 | * lisp/emacs-lisp/rx.el (rx): Likewise. | ||
| 1401 | |||
| 1402 | 2018-05-27 Thien-Thi Nguyen <ttn@gnu.org> | ||
| 1403 | |||
| 1404 | Introduce EXPVAL for pcase, pcase-defmacro docstrings | ||
| 1405 | |||
| 1406 | Suggested by Drew Adams (Bug#31311). | ||
| 1407 | |||
| 1408 | * lisp/emacs-lisp/pcase.el (pcase): Use EXPVAL in | ||
| 1409 | docstring to stand for the result of evaluating EXP. | ||
| 1410 | (pcase-defmacro): Add (fn ...) form in docstring | ||
| 1411 | that includes [DOC], and the EXPVAL convention. | ||
| 1412 | |||
| 1413 | 2018-05-27 Thien-Thi Nguyen <ttn@gnu.org> | ||
| 1414 | |||
| 1415 | Ensure pcase doc shows `QPAT first among extensions | ||
| 1416 | |||
| 1417 | * lisp/emacs-lisp/pcase.el (pcase--make-docstring): | ||
| 1418 | Split extensions display into two phases, collection | ||
| 1419 | and display, separated by a reordering step that | ||
| 1420 | ensures backquote is the first. | ||
| 1421 | |||
| 1422 | 2018-05-25 Nicolas Petton <nicolas@petton.fr> | ||
| 1423 | |||
| 1424 | * etc/HISTORY: Update for Emacs 26.1 release. | ||
| 1425 | |||
| 1426 | * etc/AUTHORS: Update. | ||
| 1427 | |||
| 1 | 2018-05-25 Noam Postavsky <npostavs@gmail.com> | 1428 | 2018-05-25 Noam Postavsky <npostavs@gmail.com> |
| 2 | 1429 | ||
| 3 | Note caveat for backward regexp searching in docstring (Bug#31584) | 1430 | Note caveat for backward regexp searching in docstring (Bug#31584) |
| @@ -59730,7 +61157,7 @@ | |||
| 59730 | 61157 | ||
| 59731 | This file records repository revisions from | 61158 | This file records repository revisions from |
| 59732 | commit 9d56a21e6a696ad19ac65c4b405aeca44785884a (exclusive) to | 61159 | commit 9d56a21e6a696ad19ac65c4b405aeca44785884a (exclusive) to |
| 59733 | commit 35574609dd09e2eab0301309b0e3bf831f627fcc (inclusive). | 61160 | commit f205928d1f93f4373d755ca91805a88e022ac414 (inclusive). |
| 59734 | See ChangeLog.1 for earlier changes. | 61161 | See ChangeLog.1 for earlier changes. |
| 59735 | 61162 | ||
| 59736 | ;; Local Variables: | 61163 | ;; Local Variables: |
diff --git a/doc/lispintro/emacs-lisp-intro.texi b/doc/lispintro/emacs-lisp-intro.texi index a8e9fb13ce7..0b0c0a167d9 100644 --- a/doc/lispintro/emacs-lisp-intro.texi +++ b/doc/lispintro/emacs-lisp-intro.texi | |||
| @@ -2729,8 +2729,8 @@ In the old days, when you lacked a @file{~/.emacs} file and started an | |||
| 2729 | Emacs session by typing the command @code{emacs} alone, without naming | 2729 | Emacs session by typing the command @code{emacs} alone, without naming |
| 2730 | any files, Emacs started with the @file{*scratch*} buffer visible. | 2730 | any files, Emacs started with the @file{*scratch*} buffer visible. |
| 2731 | Nowadays, you will see a splash screen. You can follow one of the | 2731 | Nowadays, you will see a splash screen. You can follow one of the |
| 2732 | commands suggested on the splash screen, visit a file, or press the | 2732 | commands suggested on the splash screen, visit a file, or press @kbd{q} |
| 2733 | spacebar to reach the @file{*scratch*} buffer. | 2733 | to quit the splash screen and reach the @file{*scratch*} buffer. |
| 2734 | 2734 | ||
| 2735 | If you switch to the @file{*scratch*} buffer, type | 2735 | If you switch to the @file{*scratch*} buffer, type |
| 2736 | @code{(buffer-name)}, position the cursor after it, and then type | 2736 | @code{(buffer-name)}, position the cursor after it, and then type |
diff --git a/etc/HISTORY b/etc/HISTORY index ba86182a1c3..b239904253b 100644 --- a/etc/HISTORY +++ b/etc/HISTORY | |||
| @@ -12,10 +12,11 @@ development is sketchy, the following text summarizes what is known. | |||
| 12 | EMACS started out as a set of macros atop the TECO text editor, and | 12 | EMACS started out as a set of macros atop the TECO text editor, and |
| 13 | was first operational in late 1976. It was inspired by earlier work | 13 | was first operational in late 1976. It was inspired by earlier work |
| 14 | such as the E editor of Stanford, and was based on older TECO macro | 14 | such as the E editor of Stanford, and was based on older TECO macro |
| 15 | sets. EMACS in turn inspired several similar editors. See: | 15 | sets. See: Stallman RM. EMACS: The Extensible, Customizable |
| 16 | Stallman RM. EMACS: The Extensible, Customizable Self-Documenting | 16 | Self-Documenting Display Editor. AI Memo 519a, MIT, 1981-03-26 |
| 17 | Display Editor. AI Memo 519a, MIT, 1981-03-26 | ||
| 18 | <http://dspace.mit.edu/bitstream/handle/1721.1/5736/AIM-519A.pdf>. | 17 | <http://dspace.mit.edu/bitstream/handle/1721.1/5736/AIM-519A.pdf>. |
| 18 | EMACS in turn inspired several similar editors. For a summary of | ||
| 19 | this history, see <https://github.com/larsbrinkhoff/emacs-history>. | ||
| 19 | 20 | ||
| 20 | In 1984, work began on GNU Emacs, a fresh implementation designed to | 21 | In 1984, work began on GNU Emacs, a fresh implementation designed to |
| 21 | run on GNU and GNU-like systems, with a full-featured Lisp at its | 22 | run on GNU and GNU-like systems, with a full-featured Lisp at its |
diff --git a/lisp/emacs-lisp/debug.el b/lisp/emacs-lisp/debug.el index e8a3015b8fb..0efaa637129 100644 --- a/lisp/emacs-lisp/debug.el +++ b/lisp/emacs-lisp/debug.el | |||
| @@ -349,6 +349,7 @@ That buffer should be current already." | |||
| 349 | (backtrace-frames 'debug))) | 349 | (backtrace-frames 'debug))) |
| 350 | (print-escape-newlines t) | 350 | (print-escape-newlines t) |
| 351 | (print-escape-control-characters t) | 351 | (print-escape-control-characters t) |
| 352 | ;; If you increase print-level, add more depth in call_debugger. | ||
| 352 | (print-level 8) | 353 | (print-level 8) |
| 353 | (print-length 50) | 354 | (print-length 50) |
| 354 | (pos (point))) | 355 | (pos (point))) |
diff --git a/lisp/files.el b/lisp/files.el index 31e2f39a8d1..eabb3c0e06c 100644 --- a/lisp/files.el +++ b/lisp/files.el | |||
| @@ -148,12 +148,16 @@ This variable is relevant only if `backup-by-copying' and | |||
| 148 | Called with an absolute file name as argument, it returns t to enable backup.") | 148 | Called with an absolute file name as argument, it returns t to enable backup.") |
| 149 | 149 | ||
| 150 | (defcustom buffer-offer-save nil | 150 | (defcustom buffer-offer-save nil |
| 151 | "Non-nil in a buffer means always offer to save buffer on exit. | 151 | "Non-nil in a buffer means always offer to save buffer on exiting Emacs. |
| 152 | Do so even if the buffer is not visiting a file. | 152 | Do so even if the buffer is not visiting a file. |
| 153 | Automatically local in all buffers. | 153 | Automatically local in all buffers. |
| 154 | 154 | ||
| 155 | Set to the symbol `always' to offer to save buffer whenever | 155 | Set to the symbol `always' to offer to save buffer whenever |
| 156 | `save-some-buffers' is called." | 156 | `save-some-buffers' is called. |
| 157 | |||
| 158 | Note that this option has no effect on `kill-buffer'; | ||
| 159 | if you want to control what happens when a buffer is killed, | ||
| 160 | use `kill-buffer-query-functions'." | ||
| 157 | :type '(choice (const :tag "Never" nil) | 161 | :type '(choice (const :tag "Never" nil) |
| 158 | (const :tag "On Emacs exit" t) | 162 | (const :tag "On Emacs exit" t) |
| 159 | (const :tag "Whenever save-some-buffers is called" always)) | 163 | (const :tag "Whenever save-some-buffers is called" always)) |
diff --git a/lisp/imenu.el b/lisp/imenu.el index b4d7d903595..94ee6bc83a7 100644 --- a/lisp/imenu.el +++ b/lisp/imenu.el | |||
| @@ -179,7 +179,9 @@ with name concatenation." | |||
| 179 | 179 | ||
| 180 | (defcustom imenu-generic-skip-comments-and-strings t | 180 | (defcustom imenu-generic-skip-comments-and-strings t |
| 181 | "When non-nil, ignore text inside comments and strings. | 181 | "When non-nil, ignore text inside comments and strings. |
| 182 | Only affects `imenu--generic-function'." | 182 | Only affects `imenu-default-create-index-function' (and any |
| 183 | alternative implementation of `imenu-create-index-function' that | ||
| 184 | uses `imenu--generic-function')." | ||
| 183 | :type 'boolean | 185 | :type 'boolean |
| 184 | :group 'imenu | 186 | :group 'imenu |
| 185 | :version "24.4") | 187 | :version "24.4") |
| @@ -730,7 +732,7 @@ for modes which use `imenu--generic-function'. If it is not set, but | |||
| 730 | ;; so it needs to be careful never to loop! | 732 | ;; so it needs to be careful never to loop! |
| 731 | (defun imenu--generic-function (patterns) | 733 | (defun imenu--generic-function (patterns) |
| 732 | "Return an index alist of the current buffer based on PATTERNS. | 734 | "Return an index alist of the current buffer based on PATTERNS. |
| 733 | PATTERNS should be an alist with the same form as `imenu-generic-expression'. | 735 | PATTERNS should be an alist of the same form as `imenu-generic-expression'. |
| 734 | 736 | ||
| 735 | If `imenu-generic-skip-comments-and-strings' is non-nil, this ignores | 737 | If `imenu-generic-skip-comments-and-strings' is non-nil, this ignores |
| 736 | text inside comments and strings. | 738 | text inside comments and strings. |
diff --git a/lisp/skeleton.el b/lisp/skeleton.el index 1d1af825a17..e7ac2ea32b2 100644 --- a/lisp/skeleton.el +++ b/lisp/skeleton.el | |||
| @@ -268,7 +268,8 @@ available: | |||
| 268 | (or (eolp) (not skeleton-end-newline) (newline-and-indent)) | 268 | (or (eolp) (not skeleton-end-newline) (newline-and-indent)) |
| 269 | (run-hooks 'skeleton-end-hook) | 269 | (run-hooks 'skeleton-end-hook) |
| 270 | (sit-for 0) | 270 | (sit-for 0) |
| 271 | (or (pos-visible-in-window-p beg) | 271 | (or (not (eq (window-buffer) (current-buffer))) |
| 272 | (pos-visible-in-window-p beg) | ||
| 272 | (progn | 273 | (progn |
| 273 | (goto-char beg) | 274 | (goto-char beg) |
| 274 | (recenter 0))) | 275 | (recenter 0))) |
diff --git a/lisp/vc/vc-git.el b/lisp/vc/vc-git.el index 88052d7749b..75f458233ee 100644 --- a/lisp/vc/vc-git.el +++ b/lisp/vc/vc-git.el | |||
| @@ -301,9 +301,6 @@ in the order given by 'git status'." | |||
| 301 | '("--ignored")) | 301 | '("--ignored")) |
| 302 | "--")) | 302 | "--")) |
| 303 | (status (apply #'vc-git--run-command-string file args))) | 303 | (status (apply #'vc-git--run-command-string file args))) |
| 304 | ;; Alternatively, the `ignored' state could be detected with 'git | ||
| 305 | ;; ls-files -i -o --exclude-standard', but that's an extra process | ||
| 306 | ;; call, and the `ignored' state is rarely needed. | ||
| 307 | (if (null status) | 304 | (if (null status) |
| 308 | ;; If status is nil, there was an error calling git, likely because | 305 | ;; If status is nil, there was an error calling git, likely because |
| 309 | ;; the file is not in a git repo. | 306 | ;; the file is not in a git repo. |
| @@ -568,6 +565,7 @@ or an empty string if none." | |||
| 568 | (declare-function vc-set-async-update "vc-dispatcher" (process-buffer)) | 565 | (declare-function vc-set-async-update "vc-dispatcher" (process-buffer)) |
| 569 | 566 | ||
| 570 | (defun vc-git-dir-status-goto-stage (git-state) | 567 | (defun vc-git-dir-status-goto-stage (git-state) |
| 568 | ;; TODO: Look into reimplementing this using `git status --porcelain=v2'. | ||
| 571 | (let ((files (vc-git-dir-status-state->files git-state))) | 569 | (let ((files (vc-git-dir-status-state->files git-state))) |
| 572 | (erase-buffer) | 570 | (erase-buffer) |
| 573 | (pcase (vc-git-dir-status-state->stage git-state) | 571 | (pcase (vc-git-dir-status-state->stage git-state) |
| @@ -584,7 +582,7 @@ or an empty string if none." | |||
| 584 | "ls-files" "-z" "-c" "-s" "--")) | 582 | "ls-files" "-z" "-c" "-s" "--")) |
| 585 | (`ls-files-conflict | 583 | (`ls-files-conflict |
| 586 | (vc-git-command (current-buffer) 'async files | 584 | (vc-git-command (current-buffer) 'async files |
| 587 | "ls-files" "-z" "-c" "-s" "--")) | 585 | "ls-files" "-z" "-u" "--")) |
| 588 | (`ls-files-unknown | 586 | (`ls-files-unknown |
| 589 | (vc-git-command (current-buffer) 'async files | 587 | (vc-git-command (current-buffer) 'async files |
| 590 | "ls-files" "-z" "-o" "--directory" | 588 | "ls-files" "-z" "-o" "--directory" |
| @@ -947,9 +945,6 @@ This prompts for a branch to merge from." | |||
| 947 | (vc-git--run-command-string directory "status" "--porcelain" "--")) | 945 | (vc-git--run-command-string directory "status" "--porcelain" "--")) |
| 948 | (lines (when status (split-string status "\n" 'omit-nulls))) | 946 | (lines (when status (split-string status "\n" 'omit-nulls))) |
| 949 | files) | 947 | files) |
| 950 | ;; TODO: Look into reimplementing `vc-git-state', as well as | ||
| 951 | ;; `vc-git-dir-status-files', based on this output, thus making the | ||
| 952 | ;; extra process call in `vc-git-find-file-hook' unnecessary. | ||
| 953 | (dolist (line lines files) | 948 | (dolist (line lines files) |
| 954 | (when (string-match "\\([ MADRCU?!][ MADRCU?!]\\) \\(.+\\)\\(?: -> \\(.+\\)\\)?" | 949 | (when (string-match "\\([ MADRCU?!][ MADRCU?!]\\) \\(.+\\)\\(?: -> \\(.+\\)\\)?" |
| 955 | line) | 950 | line) |
| @@ -984,15 +979,10 @@ This prompts for a branch to merge from." | |||
| 984 | (defun vc-git-find-file-hook () | 979 | (defun vc-git-find-file-hook () |
| 985 | "Activate `smerge-mode' if there is a conflict." | 980 | "Activate `smerge-mode' if there is a conflict." |
| 986 | (when (and buffer-file-name | 981 | (when (and buffer-file-name |
| 987 | ;; FIXME | 982 | (eq (vc-state buffer-file-name 'Git) 'conflict) |
| 988 | ;; 1) the net result is to call git twice per file. | ||
| 989 | ;; 2) v-g-c-f is documented to take a directory. | ||
| 990 | ;; https://lists.gnu.org/r/emacs-devel/2014-01/msg01126.html | ||
| 991 | (vc-git-conflicted-files buffer-file-name) | ||
| 992 | (save-excursion | 983 | (save-excursion |
| 993 | (goto-char (point-min)) | 984 | (goto-char (point-min)) |
| 994 | (re-search-forward "^<<<<<<< " nil 'noerror))) | 985 | (re-search-forward "^<<<<<<< " nil 'noerror))) |
| 995 | (vc-file-setprop buffer-file-name 'vc-state 'conflict) | ||
| 996 | (smerge-start-session) | 986 | (smerge-start-session) |
| 997 | (when vc-git-resolve-conflicts | 987 | (when vc-git-resolve-conflicts |
| 998 | (add-hook 'after-save-hook 'vc-git-resolve-when-done nil 'local)) | 988 | (add-hook 'after-save-hook 'vc-git-resolve-when-done nil 'local)) |
diff --git a/src/coding.h b/src/coding.h index 165c1b29b71..d2cf4d8a7ba 100644 --- a/src/coding.h +++ b/src/coding.h | |||
| @@ -28,6 +28,8 @@ along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. */ | |||
| 28 | 28 | ||
| 29 | #include "lisp.h" | 29 | #include "lisp.h" |
| 30 | 30 | ||
| 31 | INLINE_HEADER_BEGIN | ||
| 32 | |||
| 31 | /* Index to arguments of Fdefine_coding_system_internal. */ | 33 | /* Index to arguments of Fdefine_coding_system_internal. */ |
| 32 | 34 | ||
| 33 | enum define_coding_system_arg_index | 35 | enum define_coding_system_arg_index |
| @@ -771,4 +773,6 @@ extern struct coding_system safe_terminal_coding; | |||
| 771 | 773 | ||
| 772 | extern char emacs_mule_bytes[256]; | 774 | extern char emacs_mule_bytes[256]; |
| 773 | 775 | ||
| 776 | INLINE_HEADER_END | ||
| 777 | |||
| 774 | #endif /* EMACS_CODING_H */ | 778 | #endif /* EMACS_CODING_H */ |
diff --git a/src/editfns.c b/src/editfns.c index efe83e811ba..e16a554de20 100644 --- a/src/editfns.c +++ b/src/editfns.c | |||
| @@ -3127,6 +3127,9 @@ determines whether case is significant or ignored. */) | |||
| 3127 | #undef ELEMENT | 3127 | #undef ELEMENT |
| 3128 | #undef EQUAL | 3128 | #undef EQUAL |
| 3129 | 3129 | ||
| 3130 | /* Counter used to rarely_quit in replace-buffer-contents. */ | ||
| 3131 | static unsigned short rbc_quitcounter; | ||
| 3132 | |||
| 3130 | #define XVECREF_YVECREF_EQUAL(ctx, xoff, yoff) \ | 3133 | #define XVECREF_YVECREF_EQUAL(ctx, xoff, yoff) \ |
| 3131 | buffer_chars_equal ((ctx), (xoff), (yoff)) | 3134 | buffer_chars_equal ((ctx), (xoff), (yoff)) |
| 3132 | 3135 | ||
| @@ -3136,6 +3139,9 @@ determines whether case is significant or ignored. */) | |||
| 3136 | /* Buffers to compare. */ \ | 3139 | /* Buffers to compare. */ \ |
| 3137 | struct buffer *buffer_a; \ | 3140 | struct buffer *buffer_a; \ |
| 3138 | struct buffer *buffer_b; \ | 3141 | struct buffer *buffer_b; \ |
| 3142 | /* Whether each buffer is unibyte/plain-ASCII or not. */ \ | ||
| 3143 | bool a_unibyte; \ | ||
| 3144 | bool b_unibyte; \ | ||
| 3139 | /* Bit vectors recording for each character whether it was deleted | 3145 | /* Bit vectors recording for each character whether it was deleted |
| 3140 | or inserted. */ \ | 3146 | or inserted. */ \ |
| 3141 | unsigned char *deletions; \ | 3147 | unsigned char *deletions; \ |
| @@ -3216,6 +3222,8 @@ differences between the two buffers. */) | |||
| 3216 | struct context ctx = { | 3222 | struct context ctx = { |
| 3217 | .buffer_a = a, | 3223 | .buffer_a = a, |
| 3218 | .buffer_b = b, | 3224 | .buffer_b = b, |
| 3225 | .a_unibyte = BUF_ZV (a) == BUF_ZV_BYTE (a), | ||
| 3226 | .b_unibyte = BUF_ZV (b) == BUF_ZV_BYTE (b), | ||
| 3219 | .deletions = SAFE_ALLOCA (del_bytes), | 3227 | .deletions = SAFE_ALLOCA (del_bytes), |
| 3220 | .insertions = SAFE_ALLOCA (ins_bytes), | 3228 | .insertions = SAFE_ALLOCA (ins_bytes), |
| 3221 | .fdiag = buffer + size_b + 1, | 3229 | .fdiag = buffer + size_b + 1, |
| @@ -3232,9 +3240,36 @@ differences between the two buffers. */) | |||
| 3232 | early. */ | 3240 | early. */ |
| 3233 | eassert (! early_abort); | 3241 | eassert (! early_abort); |
| 3234 | 3242 | ||
| 3243 | rbc_quitcounter = 0; | ||
| 3244 | |||
| 3235 | Fundo_boundary (); | 3245 | Fundo_boundary (); |
| 3246 | bool modification_hooks_inhibited = false; | ||
| 3236 | record_unwind_protect_excursion (); | 3247 | record_unwind_protect_excursion (); |
| 3237 | 3248 | ||
| 3249 | /* We are going to make a lot of small modifications, and having the | ||
| 3250 | modification hooks called for each of them will slow us down. | ||
| 3251 | Instead, we announce a single modification for the entire | ||
| 3252 | modified region. But don't do that if the caller inhibited | ||
| 3253 | modification hooks, because then they don't want that. */ | ||
| 3254 | ptrdiff_t from, to; | ||
| 3255 | if (!inhibit_modification_hooks) | ||
| 3256 | { | ||
| 3257 | ptrdiff_t k, l; | ||
| 3258 | |||
| 3259 | /* Find the first character position to be changed. */ | ||
| 3260 | for (k = 0; k < size_a && !bit_is_set (ctx.deletions, k); k++) | ||
| 3261 | ; | ||
| 3262 | from = BEGV + k; | ||
| 3263 | |||
| 3264 | /* Find the last character position to be changed. */ | ||
| 3265 | for (l = size_a; l > 0 && !bit_is_set (ctx.deletions, l - 1); l--) | ||
| 3266 | ; | ||
| 3267 | to = BEGV + l; | ||
| 3268 | prepare_to_modify_buffer (from, to, NULL); | ||
| 3269 | specbind (Qinhibit_modification_hooks, Qt); | ||
| 3270 | modification_hooks_inhibited = true; | ||
| 3271 | } | ||
| 3272 | |||
| 3238 | ptrdiff_t i = size_a; | 3273 | ptrdiff_t i = size_a; |
| 3239 | ptrdiff_t j = size_b; | 3274 | ptrdiff_t j = size_b; |
| 3240 | /* Walk backwards through the lists of changes. This was also | 3275 | /* Walk backwards through the lists of changes. This was also |
| @@ -3243,15 +3278,13 @@ differences between the two buffers. */) | |||
| 3243 | while (i >= 0 || j >= 0) | 3278 | while (i >= 0 || j >= 0) |
| 3244 | { | 3279 | { |
| 3245 | /* Allow the user to quit if this gets too slow. */ | 3280 | /* Allow the user to quit if this gets too slow. */ |
| 3246 | maybe_quit (); | 3281 | rarely_quit (++rbc_quitcounter); |
| 3247 | 3282 | ||
| 3248 | /* Check whether there is a change (insertion or deletion) | 3283 | /* Check whether there is a change (insertion or deletion) |
| 3249 | before the current position. */ | 3284 | before the current position. */ |
| 3250 | if ((i > 0 && bit_is_set (ctx.deletions, i - 1)) || | 3285 | if ((i > 0 && bit_is_set (ctx.deletions, i - 1)) || |
| 3251 | (j > 0 && bit_is_set (ctx.insertions, j - 1))) | 3286 | (j > 0 && bit_is_set (ctx.insertions, j - 1))) |
| 3252 | { | 3287 | { |
| 3253 | maybe_quit (); | ||
| 3254 | |||
| 3255 | ptrdiff_t end_a = min_a + i; | 3288 | ptrdiff_t end_a = min_a + i; |
| 3256 | ptrdiff_t end_b = min_b + j; | 3289 | ptrdiff_t end_b = min_b + j; |
| 3257 | /* Find the beginning of the current change run. */ | 3290 | /* Find the beginning of the current change run. */ |
| @@ -3259,14 +3292,13 @@ differences between the two buffers. */) | |||
| 3259 | --i; | 3292 | --i; |
| 3260 | while (j > 0 && bit_is_set (ctx.insertions, j - 1)) | 3293 | while (j > 0 && bit_is_set (ctx.insertions, j - 1)) |
| 3261 | --j; | 3294 | --j; |
| 3295 | |||
| 3296 | rarely_quit (rbc_quitcounter++); | ||
| 3297 | |||
| 3262 | ptrdiff_t beg_a = min_a + i; | 3298 | ptrdiff_t beg_a = min_a + i; |
| 3263 | ptrdiff_t beg_b = min_b + j; | 3299 | ptrdiff_t beg_b = min_b + j; |
| 3264 | eassert (beg_a >= BEGV); | ||
| 3265 | eassert (beg_b >= BUF_BEGV (b)); | ||
| 3266 | eassert (beg_a <= end_a); | 3300 | eassert (beg_a <= end_a); |
| 3267 | eassert (beg_b <= end_b); | 3301 | eassert (beg_b <= end_b); |
| 3268 | eassert (end_a <= ZV); | ||
| 3269 | eassert (end_b <= BUF_ZV (b)); | ||
| 3270 | eassert (beg_a < end_a || beg_b < end_b); | 3302 | eassert (beg_a < end_a || beg_b < end_b); |
| 3271 | if (beg_a < end_a) | 3303 | if (beg_a < end_a) |
| 3272 | del_range (beg_a, end_a); | 3304 | del_range (beg_a, end_a); |
| @@ -3280,8 +3312,17 @@ differences between the two buffers. */) | |||
| 3280 | --i; | 3312 | --i; |
| 3281 | --j; | 3313 | --j; |
| 3282 | } | 3314 | } |
| 3315 | SAFE_FREE_UNBIND_TO (count, Qnil); | ||
| 3316 | rbc_quitcounter = 0; | ||
| 3283 | 3317 | ||
| 3284 | return SAFE_FREE_UNBIND_TO (count, Qnil); | 3318 | if (modification_hooks_inhibited) |
| 3319 | { | ||
| 3320 | ptrdiff_t updated_to = to + ZV - BEGV - size_a; | ||
| 3321 | signal_after_change (from, to - from, updated_to - from); | ||
| 3322 | update_compositions (from, updated_to, CHECK_INSIDE); | ||
| 3323 | } | ||
| 3324 | |||
| 3325 | return Qnil; | ||
| 3285 | } | 3326 | } |
| 3286 | 3327 | ||
| 3287 | static void | 3328 | static void |
| @@ -3307,39 +3348,45 @@ bit_is_set (const unsigned char *a, ptrdiff_t i) | |||
| 3307 | /* Return true if the characters at position POS_A of buffer | 3348 | /* Return true if the characters at position POS_A of buffer |
| 3308 | CTX->buffer_a and at position POS_B of buffer CTX->buffer_b are | 3349 | CTX->buffer_a and at position POS_B of buffer CTX->buffer_b are |
| 3309 | equal. POS_A and POS_B are zero-based. Text properties are | 3350 | equal. POS_A and POS_B are zero-based. Text properties are |
| 3310 | ignored. */ | 3351 | ignored. |
| 3352 | |||
| 3353 | Implementation note: this function is called inside the inner-most | ||
| 3354 | loops of compareseq, so it absolutely must be optimized for speed, | ||
| 3355 | every last bit of it. E.g., each additional use of BEGV or such | ||
| 3356 | likes will slow down replace-buffer-contents by dozens of percents, | ||
| 3357 | because builtin_lisp_symbol will be called one more time in the | ||
| 3358 | innermost loop. */ | ||
| 3311 | 3359 | ||
| 3312 | static bool | 3360 | static bool |
| 3313 | buffer_chars_equal (struct context *ctx, | 3361 | buffer_chars_equal (struct context *ctx, |
| 3314 | ptrdiff_t pos_a, ptrdiff_t pos_b) | 3362 | ptrdiff_t pos_a, ptrdiff_t pos_b) |
| 3315 | { | 3363 | { |
| 3316 | eassert (pos_a >= 0); | ||
| 3317 | pos_a += BUF_BEGV (ctx->buffer_a); | 3364 | pos_a += BUF_BEGV (ctx->buffer_a); |
| 3318 | eassert (pos_a >= BUF_BEGV (ctx->buffer_a)); | ||
| 3319 | eassert (pos_a < BUF_ZV (ctx->buffer_a)); | ||
| 3320 | |||
| 3321 | eassert (pos_b >= 0); | ||
| 3322 | pos_b += BUF_BEGV (ctx->buffer_b); | 3365 | pos_b += BUF_BEGV (ctx->buffer_b); |
| 3323 | eassert (pos_b >= BUF_BEGV (ctx->buffer_b)); | ||
| 3324 | eassert (pos_b < BUF_ZV (ctx->buffer_b)); | ||
| 3325 | |||
| 3326 | bool a_unibyte = BUF_ZV (ctx->buffer_a) == BUF_ZV_BYTE (ctx->buffer_a); | ||
| 3327 | bool b_unibyte = BUF_ZV (ctx->buffer_b) == BUF_ZV_BYTE (ctx->buffer_b); | ||
| 3328 | 3366 | ||
| 3329 | /* Allow the user to escape out of a slow compareseq call. */ | 3367 | /* Allow the user to escape out of a slow compareseq call. */ |
| 3330 | maybe_quit (); | 3368 | rarely_quit (++rbc_quitcounter); |
| 3331 | 3369 | ||
| 3332 | ptrdiff_t bpos_a = | 3370 | ptrdiff_t bpos_a = |
| 3333 | a_unibyte ? pos_a : buf_charpos_to_bytepos (ctx->buffer_a, pos_a); | 3371 | ctx->a_unibyte ? pos_a : buf_charpos_to_bytepos (ctx->buffer_a, pos_a); |
| 3334 | ptrdiff_t bpos_b = | 3372 | ptrdiff_t bpos_b = |
| 3335 | b_unibyte ? pos_b : buf_charpos_to_bytepos (ctx->buffer_b, pos_b); | 3373 | ctx->b_unibyte ? pos_b : buf_charpos_to_bytepos (ctx->buffer_b, pos_b); |
| 3336 | 3374 | ||
| 3337 | if (a_unibyte && b_unibyte) | 3375 | /* We make the below a series of specific test to avoid using |
| 3376 | BUF_FETCH_CHAR_AS_MULTIBYTE, which references Lisp symbols, and | ||
| 3377 | is therefore significantly slower (see the note in the commentary | ||
| 3378 | to this function). */ | ||
| 3379 | if (ctx->a_unibyte && ctx->b_unibyte) | ||
| 3338 | return BUF_FETCH_BYTE (ctx->buffer_a, bpos_a) | 3380 | return BUF_FETCH_BYTE (ctx->buffer_a, bpos_a) |
| 3339 | == BUF_FETCH_BYTE (ctx->buffer_b, bpos_b); | 3381 | == BUF_FETCH_BYTE (ctx->buffer_b, bpos_b); |
| 3340 | 3382 | if (ctx->a_unibyte && !ctx->b_unibyte) | |
| 3341 | return BUF_FETCH_CHAR_AS_MULTIBYTE (ctx->buffer_a, bpos_a) | 3383 | return UNIBYTE_TO_CHAR (BUF_FETCH_BYTE (ctx->buffer_a, bpos_a)) |
| 3342 | == BUF_FETCH_CHAR_AS_MULTIBYTE (ctx->buffer_b, bpos_b); | 3384 | == BUF_FETCH_MULTIBYTE_CHAR (ctx->buffer_b, bpos_b); |
| 3385 | if (!ctx->a_unibyte && ctx->b_unibyte) | ||
| 3386 | return BUF_FETCH_MULTIBYTE_CHAR (ctx->buffer_a, bpos_a) | ||
| 3387 | == UNIBYTE_TO_CHAR (BUF_FETCH_BYTE (ctx->buffer_b, bpos_b)); | ||
| 3388 | return BUF_FETCH_MULTIBYTE_CHAR (ctx->buffer_a, bpos_a) | ||
| 3389 | == BUF_FETCH_MULTIBYTE_CHAR (ctx->buffer_b, bpos_b); | ||
| 3343 | } | 3390 | } |
| 3344 | 3391 | ||
| 3345 | 3392 | ||
diff --git a/src/eval.c b/src/eval.c index c16a267bc5e..256ca8ffdc8 100644 --- a/src/eval.c +++ b/src/eval.c | |||
| @@ -282,8 +282,12 @@ call_debugger (Lisp_Object arg) | |||
| 282 | /* Do not allow max_specpdl_size less than actual depth (Bug#16603). */ | 282 | /* Do not allow max_specpdl_size less than actual depth (Bug#16603). */ |
| 283 | EMACS_INT old_max = max (max_specpdl_size, count); | 283 | EMACS_INT old_max = max (max_specpdl_size, count); |
| 284 | 284 | ||
| 285 | if (lisp_eval_depth + 40 > max_lisp_eval_depth) | 285 | /* The previous value of 40 is too small now that the debugger |
| 286 | max_lisp_eval_depth = lisp_eval_depth + 40; | 286 | prints using cl-prin1 instead of prin1. Printing lists nested 8 |
| 287 | deep (which is the value of print-level used in the debugger) | ||
| 288 | currently requires 77 additional frames. See bug#31919. */ | ||
| 289 | if (lisp_eval_depth + 100 > max_lisp_eval_depth) | ||
| 290 | max_lisp_eval_depth = lisp_eval_depth + 100; | ||
| 287 | 291 | ||
| 288 | /* While debugging Bug#16603, previous value of 100 was found | 292 | /* While debugging Bug#16603, previous value of 100 was found |
| 289 | too small to avoid specpdl overflow in the debugger itself. */ | 293 | too small to avoid specpdl overflow in the debugger itself. */ |
diff --git a/src/lisp.h b/src/lisp.h index 6203a746a30..731a45da11a 100644 --- a/src/lisp.h +++ b/src/lisp.h | |||
| @@ -3012,15 +3012,13 @@ extern void defvar_kboard (struct Lisp_Kboard_Objfwd *, const char *, int); | |||
| 3012 | } while (false) | 3012 | } while (false) |
| 3013 | 3013 | ||
| 3014 | 3014 | ||
| 3015 | /* Elisp uses several stacks: | 3015 | /* Elisp uses multiple stacks: |
| 3016 | - the C stack. | 3016 | - The C stack. |
| 3017 | - the bytecode stack: used internally by the bytecode interpreter. | 3017 | - The specpdl stack keeps track of backtraces, unwind-protects and |
| 3018 | Allocated from the C stack. | 3018 | dynamic let-bindings. It is allocated from the 'specpdl' array, |
| 3019 | - The specpdl stack: keeps track of active unwind-protect and | 3019 | a manually managed stack. |
| 3020 | dynamic-let-bindings. Allocated from the `specpdl' array, a manually | 3020 | - The handler stack keeps track of active catch tags and condition-case |
| 3021 | managed stack. | 3021 | handlers. It is allocated in a manually managed stack implemented by a |
| 3022 | - The handler stack: keeps track of active catch tags and condition-case | ||
| 3023 | handlers. Allocated in a manually managed stack implemented by a | ||
| 3024 | doubly-linked list allocated via xmalloc and never freed. */ | 3022 | doubly-linked list allocated via xmalloc and never freed. */ |
| 3025 | 3023 | ||
| 3026 | /* Structure for recording Lisp call stack for backtrace purposes. */ | 3024 | /* Structure for recording Lisp call stack for backtrace purposes. */ |
| @@ -3113,7 +3111,7 @@ SPECPDL_INDEX (void) | |||
| 3113 | control structures. A struct handler contains all the information needed to | 3111 | control structures. A struct handler contains all the information needed to |
| 3114 | restore the state of the interpreter after a non-local jump. | 3112 | restore the state of the interpreter after a non-local jump. |
| 3115 | 3113 | ||
| 3116 | handler structures are chained together in a doubly linked list; the `next' | 3114 | Handler structures are chained together in a doubly linked list; the `next' |
| 3117 | member points to the next outer catchtag and the `nextfree' member points in | 3115 | member points to the next outer catchtag and the `nextfree' member points in |
| 3118 | the other direction to the next inner element (which is typically the next | 3116 | the other direction to the next inner element (which is typically the next |
| 3119 | free element since we mostly use it on the deepest handler). | 3117 | free element since we mostly use it on the deepest handler). |
diff --git a/src/w32fns.c b/src/w32fns.c index 3bd320928dd..7f7e1a404ce 100644 --- a/src/w32fns.c +++ b/src/w32fns.c | |||
| @@ -2192,6 +2192,11 @@ x_set_no_accept_focus (struct frame *f, Lisp_Object new_value, Lisp_Object old_v | |||
| 2192 | * | 2192 | * |
| 2193 | * Some window managers may not honor this parameter. The value `below' | 2193 | * Some window managers may not honor this parameter. The value `below' |
| 2194 | * is not supported on Windows. | 2194 | * is not supported on Windows. |
| 2195 | * | ||
| 2196 | * Internally, this function also handles a value 'above-suspended'. | ||
| 2197 | * That value is used to temporarily remove F from the 'above' group | ||
| 2198 | * to make sure that it does not obscure the window of a dialog in | ||
| 2199 | * progress. | ||
| 2195 | */ | 2200 | */ |
| 2196 | static void | 2201 | static void |
| 2197 | x_set_z_group (struct frame *f, Lisp_Object new_value, Lisp_Object old_value) | 2202 | x_set_z_group (struct frame *f, Lisp_Object new_value, Lisp_Object old_value) |
| @@ -7583,12 +7588,27 @@ file_dialog_callback (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) | |||
| 7583 | return 0; | 7588 | return 0; |
| 7584 | } | 7589 | } |
| 7585 | 7590 | ||
| 7591 | /** | ||
| 7592 | * w32_dialog_in_progress: | ||
| 7593 | * | ||
| 7594 | * This function is called by Fx_file_dialog and Fx_select_font and | ||
| 7595 | * serves to temporarily remove any Emacs frame currently in the | ||
| 7596 | * 'above' z-group from that group to assure that such a frame does | ||
| 7597 | * not hide the dialog window. Frames that are temporarily removed | ||
| 7598 | * from the 'above' group have their z_group bit-field set to | ||
| 7599 | * z_group_above_suspended. Any such frame is moved back to the | ||
| 7600 | * 'above' group as soon as the dialog finishes and has its z_group | ||
| 7601 | * bit-field reset to z_group_above. | ||
| 7602 | * | ||
| 7603 | * This function does not affect the z-order or the z-group state of | ||
| 7604 | * the dialog window itself. | ||
| 7605 | */ | ||
| 7586 | void | 7606 | void |
| 7587 | w32_dialog_in_progress (Lisp_Object in_progress) | 7607 | w32_dialog_in_progress (Lisp_Object in_progress) |
| 7588 | { | 7608 | { |
| 7589 | Lisp_Object frames, frame; | 7609 | Lisp_Object frames, frame; |
| 7590 | 7610 | ||
| 7591 | /* Don't let frames in `above' z-group obscure popups. */ | 7611 | /* Don't let frames in `above' z-group obscure dialog windows. */ |
| 7592 | FOR_EACH_FRAME (frames, frame) | 7612 | FOR_EACH_FRAME (frames, frame) |
| 7593 | { | 7613 | { |
| 7594 | struct frame *f = XFRAME (frame); | 7614 | struct frame *f = XFRAME (frame); |
diff --git a/src/xterm.c b/src/xterm.c index 9504bfb1834..af28dab860a 100644 --- a/src/xterm.c +++ b/src/xterm.c | |||
| @@ -10566,6 +10566,10 @@ x_set_skip_taskbar (struct frame *f, Lisp_Object new_value, Lisp_Object old_valu | |||
| 10566 | * windows that do not have the `below' property set. | 10566 | * windows that do not have the `below' property set. |
| 10567 | * | 10567 | * |
| 10568 | * Some window managers may not honor this parameter. | 10568 | * Some window managers may not honor this parameter. |
| 10569 | * | ||
| 10570 | * Internally, this function also handles a value 'above-suspended'. | ||
| 10571 | * That value is used to temporarily remove F from the 'above' group | ||
| 10572 | * to make sure that it does not obscure a menu currently popped up. | ||
| 10569 | */ | 10573 | */ |
| 10570 | void | 10574 | void |
| 10571 | x_set_z_group (struct frame *f, Lisp_Object new_value, Lisp_Object old_value) | 10575 | x_set_z_group (struct frame *f, Lisp_Object new_value, Lisp_Object old_value) |