diff options
| author | Paul Eggert | 2018-01-09 15:29:25 -0800 |
|---|---|---|
| committer | Paul Eggert | 2018-01-09 15:29:25 -0800 |
| commit | 646c8e56f8a11832f25523907b85d6522a99f361 (patch) | |
| tree | 80ffd41982cfa018b827304ec5137ae6025f6080 | |
| parent | 85f5ee14b55489845eaafbdf70d7f4e25ec44ed7 (diff) | |
| parent | d382d2bfc5072d4220b3e51785d22f70b147d63f (diff) | |
| download | emacs-646c8e56f8a11832f25523907b85d6522a99f361.tar.gz emacs-646c8e56f8a11832f25523907b85d6522a99f361.zip | |
Merge from origin/emacs-26
d382d2bfc5 * etc/DEBUG (Getting control to the debugger): Fix grammar.
687af4c8e8 * lisp/vc/vc.el (vc-region-history): log-view-vc-fileset h...
43e2aafae3 Don't bind dframe events on load (Bug#29599)
ab31bf3c5f * lisp/textmodes/picture.el (picture-mode-exit): Doc fix. ...
ed44d92fa6 * lisp/textmodes/picture.el (picture-open-line): Doc fix. ...
b87a772612 Fix description of 'emacs-internal'
a5256da588 Update PROBLEMS with selection-related issues
c59ecb005e New customization variable for python-mode indentation (Bu...
4e20c8f220 Fix menu keyboard shortcuts on macOS (Bug#29595)
# Conflicts:
# etc/NEWS
| -rw-r--r-- | doc/lispref/nonascii.texi | 4 | ||||
| -rw-r--r-- | etc/DEBUG | 2 | ||||
| -rw-r--r-- | etc/NEWS.26 | 7 | ||||
| -rw-r--r-- | etc/PROBLEMS | 26 | ||||
| -rw-r--r-- | lisp/dframe.el | 26 | ||||
| -rw-r--r-- | lisp/progmodes/python.el | 10 | ||||
| -rw-r--r-- | lisp/textmodes/picture.el | 10 | ||||
| -rw-r--r-- | lisp/vc/vc.el | 2 | ||||
| -rw-r--r-- | src/nsmenu.m | 21 |
9 files changed, 70 insertions, 38 deletions
diff --git a/doc/lispref/nonascii.texi b/doc/lispref/nonascii.texi index 9d6fc6ca72a..2fd2bbc1ce5 100644 --- a/doc/lispref/nonascii.texi +++ b/doc/lispref/nonascii.texi | |||
| @@ -1112,7 +1112,9 @@ represented in the internal Emacs encoding (@pxref{Text | |||
| 1112 | Representations}). This is like @code{raw-text} in that no code | 1112 | Representations}). This is like @code{raw-text} in that no code |
| 1113 | conversion happens, but different in that the result is multibyte | 1113 | conversion happens, but different in that the result is multibyte |
| 1114 | data. The name @code{emacs-internal} is an alias for | 1114 | data. The name @code{emacs-internal} is an alias for |
| 1115 | @code{utf-8-emacs}. | 1115 | @code{utf-8-emacs-unix} (so it forces no conversion of end-of-line, |
| 1116 | unlike @code{utf-8-emacs}, which can decode all 3 kinds of | ||
| 1117 | end-of-line conventions). | ||
| 1116 | 1118 | ||
| 1117 | @defun coding-system-get coding-system property | 1119 | @defun coding-system-get coding-system property |
| 1118 | This function returns the specified property of the coding system | 1120 | This function returns the specified property of the coding system |
| @@ -201,7 +201,7 @@ errors go through there. If you are only interested in errors that | |||
| 201 | would fire the Lisp debugger, breaking at 'maybe_call_debugger' is | 201 | would fire the Lisp debugger, breaking at 'maybe_call_debugger' is |
| 202 | useful. | 202 | useful. |
| 203 | 203 | ||
| 204 | Another technique for get control to the debugger is to put a | 204 | Another technique for getting control to the debugger is to put a |
| 205 | breakpoint in some rarely used function. One such convenient function | 205 | breakpoint in some rarely used function. One such convenient function |
| 206 | is Fredraw_display, which you can invoke at will interactively with | 206 | is Fredraw_display, which you can invoke at will interactively with |
| 207 | "M-x redraw-display RET". | 207 | "M-x redraw-display RET". |
diff --git a/etc/NEWS.26 b/etc/NEWS.26 index 55385f59a80..b4c489cf7bd 100644 --- a/etc/NEWS.26 +++ b/etc/NEWS.26 | |||
| @@ -1037,6 +1037,13 @@ located and whether GnuPG's option '--homedir' is used or not. | |||
| 1037 | --- | 1037 | --- |
| 1038 | *** Deleting a package no longer respects 'delete-by-moving-to-trash'. | 1038 | *** Deleting a package no longer respects 'delete-by-moving-to-trash'. |
| 1039 | 1039 | ||
| 1040 | ** Python | ||
| 1041 | |||
| 1042 | +++ | ||
| 1043 | *** The new variable 'python-indent-def-block-scale' has been added. | ||
| 1044 | It controls the depth of indentation of arguments inside multi-line | ||
| 1045 | function signatures. | ||
| 1046 | |||
| 1040 | ** Tramp | 1047 | ** Tramp |
| 1041 | 1048 | ||
| 1042 | +++ | 1049 | +++ |
diff --git a/etc/PROBLEMS b/etc/PROBLEMS index 5c72809f2a1..e7f6c267cbb 100644 --- a/etc/PROBLEMS +++ b/etc/PROBLEMS | |||
| @@ -1045,6 +1045,19 @@ commands show above to make them modifier keys. | |||
| 1045 | Note that if you have Alt keys but no Meta keys, Emacs translates Alt | 1045 | Note that if you have Alt keys but no Meta keys, Emacs translates Alt |
| 1046 | into Meta. This is because of the great importance of Meta in Emacs. | 1046 | into Meta. This is because of the great importance of Meta in Emacs. |
| 1047 | 1047 | ||
| 1048 | *** Emacs hangs or crashes when a large portion of text is selected or killed. | ||
| 1049 | |||
| 1050 | This is caused by a bug in the clipboard management applets (it has | ||
| 1051 | been observed in 'klipper' and 'clipit'), which periodically request | ||
| 1052 | the X clipboard contents from applications. After a while, Emacs may | ||
| 1053 | print a message: | ||
| 1054 | |||
| 1055 | Timed out waiting for property-notify event | ||
| 1056 | |||
| 1057 | A workaround is to not use 'klipper'/'clipit'. Upgrading 'klipper' to | ||
| 1058 | the one coming with KDE 3.3 or later might solve the problem; if it | ||
| 1059 | doesn't, set 'select-active-regions' to 'only' or nil. | ||
| 1060 | |||
| 1048 | ** Window-manager and toolkit-related problems | 1061 | ** Window-manager and toolkit-related problems |
| 1049 | 1062 | ||
| 1050 | *** Emacs built with GTK+ toolkit produces corrupted display on HiDPI screen | 1063 | *** Emacs built with GTK+ toolkit produces corrupted display on HiDPI screen |
| @@ -1149,19 +1162,6 @@ It is also reported that a bug in the gtk-engines-qt engine can cause this if | |||
| 1149 | Emacs is compiled with Gtk+. | 1162 | Emacs is compiled with Gtk+. |
| 1150 | The bug is fixed in version 0.7 or newer of gtk-engines-qt. | 1163 | The bug is fixed in version 0.7 or newer of gtk-engines-qt. |
| 1151 | 1164 | ||
| 1152 | *** KDE: Emacs hangs on KDE when a large portion of text is killed. | ||
| 1153 | |||
| 1154 | This is caused by a bug in the KDE applet 'klipper' which periodically | ||
| 1155 | requests the X clipboard contents from applications. Early versions | ||
| 1156 | of klipper don't implement the ICCCM protocol for large selections, | ||
| 1157 | which leads to Emacs being flooded with selection requests. After a | ||
| 1158 | while, Emacs may print a message: | ||
| 1159 | |||
| 1160 | Timed out waiting for property-notify event | ||
| 1161 | |||
| 1162 | A workaround is to not use 'klipper'. Upgrading 'klipper' to the one | ||
| 1163 | coming with KDE 3.3 or later also solves the problem. | ||
| 1164 | |||
| 1165 | *** KDE / Plasma 5: Emacs exhausts memory and needs to be killed | 1165 | *** KDE / Plasma 5: Emacs exhausts memory and needs to be killed |
| 1166 | 1166 | ||
| 1167 | This problem occurs when large selections contain mixed line endings | 1167 | This problem occurs when large selections contain mixed line endings |
diff --git a/lisp/dframe.el b/lisp/dframe.el index 9b0e550728a..12cedaf5201 100644 --- a/lisp/dframe.el +++ b/lisp/dframe.el | |||
| @@ -288,6 +288,7 @@ CREATE-HOOK is a hook to run after creating a frame." | |||
| 288 | (set frame-var nil)) | 288 | (set frame-var nil)) |
| 289 | ;; Set this as our currently attached frame | 289 | ;; Set this as our currently attached frame |
| 290 | (setq dframe-attached-frame (selected-frame)) | 290 | (setq dframe-attached-frame (selected-frame)) |
| 291 | (run-hooks 'dframe-setup-hook) | ||
| 291 | (run-hooks popup-hook) | 292 | (run-hooks popup-hook) |
| 292 | ;; Updated the buffer passed in to contain all the hacks needed | 293 | ;; Updated the buffer passed in to contain all the hacks needed |
| 293 | ;; to make it work well in a dedicated window. | 294 | ;; to make it work well in a dedicated window. |
| @@ -543,16 +544,21 @@ CACHE-VAR and BUFFER-VAR are symbols as in `dframe-frame-mode'." | |||
| 543 | ))) | 544 | ))) |
| 544 | 545 | ||
| 545 | ;;; Special frame event proxies | 546 | ;;; Special frame event proxies |
| 546 | ;; | 547 | (defvar dframe-setup-hook nil |
| 547 | (if (boundp 'special-event-map) | 548 | "Used for setting frame special event bindings.") |
| 548 | (progn | 549 | |
| 549 | (define-key special-event-map [make-frame-visible] | 550 | (defun dframe-set-special-events () |
| 550 | 'dframe-handle-make-frame-visible) | 551 | (define-key special-event-map [make-frame-visible] |
| 551 | (define-key special-event-map [iconify-frame] | 552 | 'dframe-handle-make-frame-visible) |
| 552 | 'dframe-handle-iconify-frame) | 553 | (define-key special-event-map [iconify-frame] |
| 553 | (define-key special-event-map [delete-frame] | 554 | 'dframe-handle-iconify-frame) |
| 554 | 'dframe-handle-delete-frame)) | 555 | (define-key special-event-map [delete-frame] |
| 555 | ) | 556 | 'dframe-handle-delete-frame) |
| 557 | ;; Only need to run once. | ||
| 558 | (remove-hook 'dframe-setup-hook #'dframe-set-special-events)) | ||
| 559 | |||
| 560 | (when (boundp 'special-event-map) | ||
| 561 | (add-hook 'dframe-setup-hook #'dframe-set-special-events)) | ||
| 556 | 562 | ||
| 557 | (defvar dframe-make-frame-visible-function nil | 563 | (defvar dframe-make-frame-visible-function nil |
| 558 | "Function used when a dframe controlled frame is de-iconified. | 564 | "Function used when a dframe controlled frame is de-iconified. |
diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index 68926b275ea..5baf6e0f80a 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el | |||
| @@ -752,6 +752,12 @@ It makes underscores and dots word constituent chars.") | |||
| 752 | :type '(repeat symbol) | 752 | :type '(repeat symbol) |
| 753 | :group 'python) | 753 | :group 'python) |
| 754 | 754 | ||
| 755 | (defcustom python-indent-def-block-scale 2 | ||
| 756 | "Multiplier applied to indentation inside multi-line def blocks." | ||
| 757 | :version "26.1" | ||
| 758 | :type 'integer | ||
| 759 | :safe 'natnump) | ||
| 760 | |||
| 755 | (defvar python-indent-current-level 0 | 761 | (defvar python-indent-current-level 0 |
| 756 | "Deprecated var available for compatibility.") | 762 | "Deprecated var available for compatibility.") |
| 757 | 763 | ||
| @@ -1071,9 +1077,9 @@ possibilities can be narrowed to specific indentation points." | |||
| 1071 | (current-indentation))) | 1077 | (current-indentation))) |
| 1072 | opening-block-start-points)))) | 1078 | opening-block-start-points)))) |
| 1073 | (`(,(or :inside-paren-newline-start-from-block) . ,start) | 1079 | (`(,(or :inside-paren-newline-start-from-block) . ,start) |
| 1074 | ;; Add two indentation levels to make the suite stand out. | ||
| 1075 | (goto-char start) | 1080 | (goto-char start) |
| 1076 | (+ (current-indentation) (* python-indent-offset 2)))))) | 1081 | (+ (current-indentation) |
| 1082 | (* python-indent-offset python-indent-def-block-scale)))))) | ||
| 1077 | 1083 | ||
| 1078 | (defun python-indent--calculate-levels (indentation) | 1084 | (defun python-indent--calculate-levels (indentation) |
| 1079 | "Calculate levels list given INDENTATION. | 1085 | "Calculate levels list given INDENTATION. |
diff --git a/lisp/textmodes/picture.el b/lisp/textmodes/picture.el index caf76a41a1a..6836fd09a07 100644 --- a/lisp/textmodes/picture.el +++ b/lisp/textmodes/picture.el | |||
| @@ -338,8 +338,9 @@ always moves to the beginning of a line." | |||
| 338 | (newline lines-left)))) | 338 | (newline lines-left)))) |
| 339 | 339 | ||
| 340 | (defun picture-open-line (arg) | 340 | (defun picture-open-line (arg) |
| 341 | "Insert an empty line after the current line. | 341 | "Insert ARG empty lines after the current line. |
| 342 | With positive argument insert that many lines." | 342 | ARG must be positive. |
| 343 | Interactively, ARG is the numeric argument, and defaults to 1." | ||
| 343 | (interactive "p") | 344 | (interactive "p") |
| 344 | (save-excursion | 345 | (save-excursion |
| 345 | (end-of-line) | 346 | (end-of-line) |
| @@ -788,8 +789,9 @@ they are not by default assigned to keys." | |||
| 788 | 789 | ||
| 789 | (defun picture-mode-exit (&optional nostrip) | 790 | (defun picture-mode-exit (&optional nostrip) |
| 790 | "Undo `picture-mode' and return to previous major mode. | 791 | "Undo `picture-mode' and return to previous major mode. |
| 791 | With no argument, strip whitespace from end of every line in Picture buffer; | 792 | With NOSTRIP omitted or nil, strip whitespace from end of every line |
| 792 | otherwise, just return to previous mode. | 793 | in Picture buffer; otherwise, just return to previous mode. |
| 794 | Interactively, NOSTRIP is the prefix argument, and defaults to nil. | ||
| 793 | Runs `picture-mode-exit-hook' at the end." | 795 | Runs `picture-mode-exit-hook' at the end." |
| 794 | (interactive "P") | 796 | (interactive "P") |
| 795 | (if (not (eq major-mode 'picture-mode)) | 797 | (if (not (eq major-mode 'picture-mode)) |
diff --git a/lisp/vc/vc.el b/lisp/vc/vc.el index 44c0c207d67..dec7ebb43e4 100644 --- a/lisp/vc/vc.el +++ b/lisp/vc/vc.el | |||
| @@ -2430,7 +2430,7 @@ When called interactively with a prefix argument, prompt for REMOTE-LOCATION." | |||
| 2430 | (with-current-buffer buf | 2430 | (with-current-buffer buf |
| 2431 | (vc-call-backend backend 'region-history-mode) | 2431 | (vc-call-backend backend 'region-history-mode) |
| 2432 | (set (make-local-variable 'log-view-vc-backend) backend) | 2432 | (set (make-local-variable 'log-view-vc-backend) backend) |
| 2433 | (set (make-local-variable 'log-view-vc-fileset) file) | 2433 | (set (make-local-variable 'log-view-vc-fileset) (list file)) |
| 2434 | (set (make-local-variable 'revert-buffer-function) | 2434 | (set (make-local-variable 'revert-buffer-function) |
| 2435 | (lambda (_ignore-auto _noconfirm) | 2435 | (lambda (_ignore-auto _noconfirm) |
| 2436 | (with-current-buffer buf | 2436 | (with-current-buffer buf |
diff --git a/src/nsmenu.m b/src/nsmenu.m index 5748b20ce81..58b45fb38e5 100644 --- a/src/nsmenu.m +++ b/src/nsmenu.m | |||
| @@ -643,14 +643,23 @@ x_activate_menubar (struct frame *f) | |||
| 643 | 643 | ||
| 644 | keyEq = [self parseKeyEquiv: wv->key]; | 644 | keyEq = [self parseKeyEquiv: wv->key]; |
| 645 | #ifdef NS_IMPL_COCOA | 645 | #ifdef NS_IMPL_COCOA |
| 646 | /* macOS just ignores modifier strings longer than one character */ | 646 | /* macOS mangles modifier strings longer than one character. */ |
| 647 | if (keyEquivModMask == 0) | 647 | if (keyEquivModMask == 0) |
| 648 | title = [title stringByAppendingFormat: @" (%@)", keyEq]; | 648 | { |
| 649 | title = [title stringByAppendingFormat: @" (%@)", keyEq]; | ||
| 650 | item = [self addItemWithTitle: (NSString *)title | ||
| 651 | action: @selector (menuDown:) | ||
| 652 | keyEquivalent: @""]; | ||
| 653 | } | ||
| 654 | else | ||
| 655 | { | ||
| 656 | #endif | ||
| 657 | item = [self addItemWithTitle: (NSString *)title | ||
| 658 | action: @selector (menuDown:) | ||
| 659 | keyEquivalent: keyEq]; | ||
| 660 | #ifdef NS_IMPL_COCOA | ||
| 661 | } | ||
| 649 | #endif | 662 | #endif |
| 650 | |||
| 651 | item = [self addItemWithTitle: (NSString *)title | ||
| 652 | action: @selector (menuDown:) | ||
| 653 | keyEquivalent: keyEq]; | ||
| 654 | [item setKeyEquivalentModifierMask: keyEquivModMask]; | 663 | [item setKeyEquivalentModifierMask: keyEquivModMask]; |
| 655 | 664 | ||
| 656 | [item setEnabled: wv->enabled]; | 665 | [item setEnabled: wv->enabled]; |