aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Eggert2016-03-22 11:04:36 -0700
committerPaul Eggert2016-03-22 11:04:36 -0700
commitf95bbe5a67e03fe6d05cbfb4d0c9151a754d6ccd (patch)
tree770fbf699587d51ed3a374c6f01bdd655394c66c
parent4869e0d85a215e7fb0262430a48aa4d5804bf0a4 (diff)
parentb8ea08b037fb16395b90481162587706e71b487c (diff)
downloademacs-f95bbe5a67e03fe6d05cbfb4d0c9151a754d6ccd.tar.gz
emacs-f95bbe5a67e03fe6d05cbfb4d0c9151a754d6ccd.zip
-
-rw-r--r--admin/release-process4
-rw-r--r--doc/emacs/abbrevs.texi9
-rw-r--r--doc/lispref/abbrevs.texi9
-rw-r--r--doc/misc/eshell.texi4
-rw-r--r--etc/themes/tsdh-light-theme.el7
-rw-r--r--lisp/doc-view.el2
-rw-r--r--lisp/forms.el2
-rw-r--r--lisp/mail/rmail.el2
-rw-r--r--lisp/progmodes/cc-defs.el2
-rw-r--r--lisp/progmodes/ruby-mode.el4
-rw-r--r--lisp/progmodes/xref.el11
-rw-r--r--lisp/simple.el36
-rw-r--r--src/bidi.c2
-rw-r--r--src/emacsgtkfixed.c3
-rw-r--r--src/emacsgtkfixed.h1
-rw-r--r--src/floatfns.c3
-rw-r--r--src/gtkutil.c12
-rw-r--r--src/lisp.h3
-rw-r--r--src/nsterm.m30
-rw-r--r--test/lisp/net/tramp-tests.el13
20 files changed, 102 insertions, 57 deletions
diff --git a/admin/release-process b/admin/release-process
index f378662adc0..2668ea3b445 100644
--- a/admin/release-process
+++ b/admin/release-process
@@ -238,7 +238,7 @@ TUTORIAL.zh
238 238
239** Check the manual. 239** Check the manual.
240 240
241abbrevs.texi 241abbrevs.texi Steve Byrne
242ack.texi 242ack.texi
243anti.texi 243anti.texi
244arevert-xtra.texi 244arevert-xtra.texi
@@ -293,7 +293,7 @@ xresources.texi
293 293
294** Check the Lisp manual. 294** Check the Lisp manual.
295 295
296abbrevs.texi 296abbrevs.texi Steve Byrne
297anti.texi 297anti.texi
298back.texi 298back.texi
299backups.texi 299backups.texi
diff --git a/doc/emacs/abbrevs.texi b/doc/emacs/abbrevs.texi
index e0441a1984d..a1db34cf0ee 100644
--- a/doc/emacs/abbrevs.texi
+++ b/doc/emacs/abbrevs.texi
@@ -435,9 +435,9 @@ copies the expansion verbatim including its case pattern.
435controls which characters are considered part of a word, for dynamic expansion 435controls which characters are considered part of a word, for dynamic expansion
436purposes. The regular expression must match just one character, never 436purposes. The regular expression must match just one character, never
437two or more. The same regular expression also determines which 437two or more. The same regular expression also determines which
438characters are part of an expansion. The value @code{nil} has a special 438characters are part of an expansion. The (default) value @code{nil}
439meaning: dynamic abbrevs are made of word characters, but expansions are 439has a special meaning: dynamic abbrevs are made of word characters,
440made of word and symbol characters. 440but expansions are made of word and symbol characters.
441 441
442@vindex dabbrev-abbrev-skip-leading-regexp 442@vindex dabbrev-abbrev-skip-leading-regexp
443 In shell scripts and makefiles, a variable name is sometimes prefixed 443 In shell scripts and makefiles, a variable name is sometimes prefixed
@@ -445,4 +445,5 @@ with @samp{$} and sometimes not. Major modes for this kind of text can
445customize dynamic abbrev expansion to handle optional prefixes by setting 445customize dynamic abbrev expansion to handle optional prefixes by setting
446the variable @code{dabbrev-abbrev-skip-leading-regexp}. Its value 446the variable @code{dabbrev-abbrev-skip-leading-regexp}. Its value
447should be a regular expression that matches the optional prefix that 447should be a regular expression that matches the optional prefix that
448dynamic abbrev expression should ignore. 448dynamic abbrev expression should ignore. The default is @code{nil},
449which means no characters should be skipped.
diff --git a/doc/lispref/abbrevs.texi b/doc/lispref/abbrevs.texi
index 5f5a395c97a..cdea2a8b3c8 100644
--- a/doc/lispref/abbrevs.texi
+++ b/doc/lispref/abbrevs.texi
@@ -198,7 +198,10 @@ abbrevs in a file automatically, under the control of variables
198described here. 198described here.
199 199
200@defopt abbrev-file-name 200@defopt abbrev-file-name
201This is the default file name for reading and saving abbrevs. 201This is the default file name for reading and saving abbrevs. By
202default, Emacs will look for @file{~/.emacs.d/abbrev_defs}, and, if
203not found, for @file{~/.abbrev_defs}; if neither file exists, Emacs
204will create @file{~/.emacs.d/abbrev_defs}.
202@end defopt 205@end defopt
203 206
204@defun quietly-read-abbrev-file &optional filename 207@defun quietly-read-abbrev-file &optional filename
@@ -216,7 +219,7 @@ A non-@code{nil} value for @code{save-abbrevs} means that Emacs should
216offer to save abbrevs (if any have changed) when files are saved. If 219offer to save abbrevs (if any have changed) when files are saved. If
217the value is @code{silently}, Emacs saves the abbrevs without asking 220the value is @code{silently}, Emacs saves the abbrevs without asking
218the user. @code{abbrev-file-name} specifies the file to save the 221the user. @code{abbrev-file-name} specifies the file to save the
219abbrevs in. 222abbrevs in. The default value is @code{t}.
220@end defopt 223@end defopt
221 224
222@defvar abbrevs-changed 225@defvar abbrevs-changed
@@ -282,7 +285,7 @@ omitted, it defaults to point. @code{name}, if non-@code{nil}, should
282be the name by which this abbrev was found (a string); it is used to 285be the name by which this abbrev was found (a string); it is used to
283figure out whether to adjust the capitalization of the expansion. The 286figure out whether to adjust the capitalization of the expansion. The
284function returns @code{abbrev} if the abbrev was successfully 287function returns @code{abbrev} if the abbrev was successfully
285inserted. 288inserted, otherwise it returns @code{nil}.
286@end defun 289@end defun
287 290
288@deffn Command abbrev-prefix-mark &optional arg 291@deffn Command abbrev-prefix-mark &optional arg
diff --git a/doc/misc/eshell.texi b/doc/misc/eshell.texi
index f90c7d3e8fb..a7a3840aa5f 100644
--- a/doc/misc/eshell.texi
+++ b/doc/misc/eshell.texi
@@ -252,7 +252,9 @@ need to use a function that takes some other data type, you will need to
252call it in an Elisp expression (which can also be used with 252call it in an Elisp expression (which can also be used with
253@ref{Expansion, expansions}). As with other shells, you can 253@ref{Expansion, expansions}). As with other shells, you can
254escape special characters and spaces with the backslash (@code{\}) and 254escape special characters and spaces with the backslash (@code{\}) and
255apostrophes (@code{''}) and double quotes (@code{""}). 255apostrophes (@code{''}) and double quotes (@code{""}). This is needed
256especially for file names with special characters like pipe
257(@code{|}), which could be part of remote file names.
256 258
257@node Built-ins 259@node Built-ins
258 260
diff --git a/etc/themes/tsdh-light-theme.el b/etc/themes/tsdh-light-theme.el
index 422b26c8ebf..9d618c5e501 100644
--- a/etc/themes/tsdh-light-theme.el
+++ b/etc/themes/tsdh-light-theme.el
@@ -25,9 +25,8 @@ Used and created by Tassilo Horn.")
25 25
26(custom-theme-set-faces 26(custom-theme-set-faces
27 'tsdh-light 27 'tsdh-light
28 '(Info-quoted ((t (:weight bold)))) 28 '(Info-quoted ((t (:underline "gray40" :weight bold))))
29 '(ace-jump-face-foreground ((t (:foreground "DeepPink" :box nil :weight bold)))) 29 '(aw-leading-char-face ((t (:background "red" :foreground "white" :weight bold))))
30 '(aw-leading-char-face ((t (:inherit ace-jump-face-foreground))))
31 '(default ((t (:background "white" :foreground "black")))) 30 '(default ((t (:background "white" :foreground "black"))))
32 '(diff-added ((t (:inherit diff-changed :background "light green")))) 31 '(diff-added ((t (:inherit diff-changed :background "light green"))))
33 '(diff-changed ((t (:background "light steel blue")))) 32 '(diff-changed ((t (:background "light steel blue"))))
@@ -36,6 +35,8 @@ Used and created by Tassilo Horn.")
36 '(diff-indicator-removed ((t (:inherit diff-indicator-changed)))) 35 '(diff-indicator-removed ((t (:inherit diff-indicator-changed))))
37 '(diff-removed ((t (:inherit diff-changed :background "sandy brown")))) 36 '(diff-removed ((t (:inherit diff-changed :background "sandy brown"))))
38 '(dired-directory ((t (:inherit font-lock-function-name-face :weight bold)))) 37 '(dired-directory ((t (:inherit font-lock-function-name-face :weight bold))))
38 '(font-lock-regexp-grouping-backslash ((t (:inherit bold :foreground "black"))))
39 '(font-lock-regexp-grouping-construct ((t (:inherit bold :foreground "black"))))
39 '(gnus-button ((t (:inherit button)))) 40 '(gnus-button ((t (:inherit button))))
40 '(gnus-header-name ((t (:box (:line-width 1 :style released-button) :weight bold)))) 41 '(gnus-header-name ((t (:box (:line-width 1 :style released-button) :weight bold))))
41 '(gnus-group-mail-1 ((t (:inherit gnus-group-mail-1-empty :weight bold)))) 42 '(gnus-group-mail-1 ((t (:inherit gnus-group-mail-1-empty :weight bold))))
diff --git a/lisp/doc-view.el b/lisp/doc-view.el
index 9d912c3f6d9..223565cedb6 100644
--- a/lisp/doc-view.el
+++ b/lisp/doc-view.el
@@ -626,7 +626,7 @@ at the bottom edge of the page moves to the next page."
626 (image-bob) 626 (image-bob)
627 (image-bol 1)) 627 (image-bol 1))
628 (set-window-hscroll (selected-window) hscroll))) 628 (set-window-hscroll (selected-window) hscroll)))
629 (image-next-line 1))) 629 (image-next-line arg)))
630 630
631(defun doc-view-previous-line-or-previous-page (&optional arg) 631(defun doc-view-previous-line-or-previous-page (&optional arg)
632 "Scroll downward by ARG lines if possible, else goto previous page. 632 "Scroll downward by ARG lines if possible, else goto previous page.
diff --git a/lisp/forms.el b/lisp/forms.el
index c0b48fd3b63..b068352e6eb 100644
--- a/lisp/forms.el
+++ b/lisp/forms.el
@@ -593,7 +593,7 @@ Commands: Equivalent keys in read-only mode:
593 ;; set-visited-file-name from calling set-auto-mode, which 593 ;; set-visited-file-name from calling set-auto-mode, which
594 ;; might kill all local variables and set forms-file nil, 594 ;; might kill all local variables and set forms-file nil,
595 ;; which will then barf in find-file-noselect below. This can 595 ;; which will then barf in find-file-noselect below. This can
596 ;; hapen when the user sets the default major mode that is 596 ;; happen when the user sets the default major mode that is
597 ;; different from the Fundamental mode. 597 ;; different from the Fundamental mode.
598 (let (change-major-mode-with-file-name) 598 (let (change-major-mode-with-file-name)
599 (set-visited-file-name nil)) 599 (set-visited-file-name nil))
diff --git a/lisp/mail/rmail.el b/lisp/mail/rmail.el
index 5c2331aea48..734155e217d 100644
--- a/lisp/mail/rmail.el
+++ b/lisp/mail/rmail.el
@@ -4585,6 +4585,8 @@ Argument MIME is non-nil if this is a mime message."
4585 (list armor-start (- (point-max) after-end) mime 4585 (list armor-start (- (point-max) after-end) mime
4586 armor-end-regexp))) 4586 armor-end-regexp)))
4587 4587
4588(declare-function rmail-mime-entity-truncated "rmailmm" (entity))
4589
4588;; Should this have a key-binding, or be in a menu? 4590;; Should this have a key-binding, or be in a menu?
4589;; There doesn't really seem to be an appropriate menu. 4591;; There doesn't really seem to be an appropriate menu.
4590;; Eg the edit command is not in a menu either. 4592;; Eg the edit command is not in a menu either.
diff --git a/lisp/progmodes/cc-defs.el b/lisp/progmodes/cc-defs.el
index 7365f695f3b..ba15d7f13e0 100644
--- a/lisp/progmodes/cc-defs.el
+++ b/lisp/progmodes/cc-defs.el
@@ -1409,7 +1409,7 @@ been put there by c-put-char-property. POINT remains unchanged."
1409 (c-state-cache-good-pos c-state-cache-good-pos) 1409 (c-state-cache-good-pos c-state-cache-good-pos)
1410 ;(c-state-nonlit-pos-cache (copy-tree c-state-nonlit-pos-cache)) 1410 ;(c-state-nonlit-pos-cache (copy-tree c-state-nonlit-pos-cache))
1411 ;(c-state-nonlit-pos-cache-limit c-state-nonlit-pos-cache-limit) 1411 ;(c-state-nonlit-pos-cache-limit c-state-nonlit-pos-cache-limit)
1412 ;(c-state-semi-nonlit-pos-cache (copy-treec c-state-semi-nonlit-pos-cache)) 1412 ;(c-state-semi-nonlit-pos-cache (copy-tree c-state-semi-nonlit-pos-cache))
1413 ;(c-state-semi-nonlit-pos-cache-limit c-state-semi-nonlit-pos-cache) 1413 ;(c-state-semi-nonlit-pos-cache-limit c-state-semi-nonlit-pos-cache)
1414 (c-state-brace-pair-desert (copy-tree c-state-brace-pair-desert)) 1414 (c-state-brace-pair-desert (copy-tree c-state-brace-pair-desert))
1415 (c-state-point-min c-state-point-min) 1415 (c-state-point-min c-state-point-min)
diff --git a/lisp/progmodes/ruby-mode.el b/lisp/progmodes/ruby-mode.el
index 2389f742937..972bf99145e 100644
--- a/lisp/progmodes/ruby-mode.el
+++ b/lisp/progmodes/ruby-mode.el
@@ -2173,7 +2173,7 @@ See `font-lock-syntax-table'.")
2173 'font-lock-string-face))) 2173 'font-lock-string-face)))
2174 ;; Perl-ish keywords. 2174 ;; Perl-ish keywords.
2175 "\\_<\\(?:BEGIN\\|END\\)\\_>\\|^__END__$" 2175 "\\_<\\(?:BEGIN\\|END\\)\\_>\\|^__END__$"
2176 ;; Variables. 2176 ;; Singleton objects.
2177 (,(concat ruby-font-lock-keyword-beg-re 2177 (,(concat ruby-font-lock-keyword-beg-re
2178 "\\_<\\(nil\\|true\\|false\\)\\_>") 2178 "\\_<\\(nil\\|true\\|false\\)\\_>")
2179 1 font-lock-constant-face) 2179 1 font-lock-constant-face)
@@ -2181,7 +2181,7 @@ See `font-lock-syntax-table'.")
2181 ("\\_<__\\(?:LINE\\|ENCODING\\|FILE\\)__\\_>" 2181 ("\\_<__\\(?:LINE\\|ENCODING\\|FILE\\)__\\_>"
2182 (0 font-lock-builtin-face)) 2182 (0 font-lock-builtin-face))
2183 ;; Symbols. 2183 ;; Symbols.
2184 ("\\(^\\|[^:]\\)\\(:@?\\(?:\\w\\|_\\)+\\)\\([!?=]\\)?" 2184 ("\\(^\\|[^:]\\)\\(:@\\{0,2\\}\\(?:\\sw\\|\\s_\\)+\\)"
2185 (2 font-lock-constant-face) 2185 (2 font-lock-constant-face)
2186 (3 (unless (and (eq (char-before (match-end 3)) ?=) 2186 (3 (unless (and (eq (char-before (match-end 3)) ?=)
2187 (eq (char-after (match-end 3)) ?>)) 2187 (eq (char-after (match-end 3)) ?>))
diff --git a/lisp/progmodes/xref.el b/lisp/progmodes/xref.el
index 69e6a154ae5..feed0fb36d9 100644
--- a/lisp/progmodes/xref.el
+++ b/lisp/progmodes/xref.el
@@ -436,6 +436,8 @@ If SELECT is non-nil, select the target window."
436;;; XREF buffer (part of the UI) 436;;; XREF buffer (part of the UI)
437 437
438;; The xref buffer is used to display a set of xrefs. 438;; The xref buffer is used to display a set of xrefs.
439(defconst xref-buffer-name "*xref*"
440 "The name of the buffer to show xrefs.")
439 441
440(defmacro xref--with-dedicated-window (&rest body) 442(defmacro xref--with-dedicated-window (&rest body)
441 `(let* ((xref-w (get-buffer-window xref-buffer-name)) 443 `(let* ((xref-w (get-buffer-window xref-buffer-name))
@@ -470,6 +472,9 @@ If SELECT is non-nil, select the target window."
470 (xref--show-pos-in-buf marker buf select)) 472 (xref--show-pos-in-buf marker buf select))
471 (user-error (message (error-message-string err))))) 473 (user-error (message (error-message-string err)))))
472 474
475(defvar-local xref--window nil
476 "The original window this xref buffer was created from.")
477
473(defun xref-show-location-at-point () 478(defun xref-show-location-at-point ()
474 "Display the source of xref at point in the appropriate window, if any." 479 "Display the source of xref at point in the appropriate window, if any."
475 (interactive) 480 (interactive)
@@ -500,9 +505,6 @@ If SELECT is non-nil, select the target window."
500 (back-to-indentation) 505 (back-to-indentation)
501 (get-text-property (point) 'xref-item))) 506 (get-text-property (point) 'xref-item)))
502 507
503(defvar-local xref--window nil
504 "The original window this xref buffer was created from.")
505
506(defun xref-goto-xref () 508(defun xref-goto-xref ()
507 "Jump to the xref on the current line and select its window." 509 "Jump to the xref on the current line and select its window."
508 (interactive) 510 (interactive)
@@ -624,9 +626,6 @@ references displayed in the current *xref* buffer."
624 (t 626 (t
625 (error "No %s xref" (if backward "previous" "next")))))) 627 (error "No %s xref" (if backward "previous" "next"))))))
626 628
627(defconst xref-buffer-name "*xref*"
628 "The name of the buffer to show xrefs.")
629
630(defvar xref--button-map 629(defvar xref--button-map
631 (let ((map (make-sparse-keymap))) 630 (let ((map (make-sparse-keymap)))
632 (define-key map [(control ?m)] #'xref-goto-xref) 631 (define-key map [(control ?m)] #'xref-goto-xref)
diff --git a/lisp/simple.el b/lisp/simple.el
index 1701eb0e0f3..971f6006732 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -408,15 +408,19 @@ A non-nil INTERACTIVE argument means to run the `post-self-insert-hook'."
408 (last-command-event ?\n) 408 (last-command-event ?\n)
409 ;; Don't auto-fill if we have a numeric argument. 409 ;; Don't auto-fill if we have a numeric argument.
410 (auto-fill-function (if arg nil auto-fill-function)) 410 (auto-fill-function (if arg nil auto-fill-function))
411 (arg (prefix-numeric-value arg))
411 (postproc 412 (postproc
412 ;; Do the rest in post-self-insert-hook, because we want to do it 413 ;; Do the rest in post-self-insert-hook, because we want to do it
413 ;; *before* other functions on that hook. 414 ;; *before* other functions on that hook.
414 (lambda () 415 (lambda ()
415 (cl-assert (eq ?\n (char-before))) 416 ;; We are not going to insert any newlines if arg is
417 ;; non-positive.
418 (or (and (numberp arg) (<= arg 0))
419 (cl-assert (eq ?\n (char-before))))
416 ;; Mark the newline(s) `hard'. 420 ;; Mark the newline(s) `hard'.
417 (if use-hard-newlines 421 (if use-hard-newlines
418 (set-hard-newline-properties 422 (set-hard-newline-properties
419 (- (point) (prefix-numeric-value arg)) (point))) 423 (- (point) arg) (point)))
420 ;; If the newline leaves the previous line blank, and we 424 ;; If the newline leaves the previous line blank, and we
421 ;; have a left margin, delete that from the blank line. 425 ;; have a left margin, delete that from the blank line.
422 (save-excursion 426 (save-excursion
@@ -433,19 +437,21 @@ A non-nil INTERACTIVE argument means to run the `post-self-insert-hook'."
433 (move-to-left-margin nil t))))) 437 (move-to-left-margin nil t)))))
434 (unwind-protect 438 (unwind-protect
435 (if (not interactive) 439 (if (not interactive)
436 ;; FIXME: For non-interactive uses, many calls actually just want 440 ;; FIXME: For non-interactive uses, many calls actually
437 ;; (insert "\n"), so maybe we should do just that, so as to avoid 441 ;; just want (insert "\n"), so maybe we should do just
438 ;; the risk of filling or running abbrevs unexpectedly. 442 ;; that, so as to avoid the risk of filling or running
439 (let ((post-self-insert-hook (list postproc))) 443 ;; abbrevs unexpectedly.
440 (self-insert-command (prefix-numeric-value arg))) 444 (let ((post-self-insert-hook (list postproc)))
441 (unwind-protect 445 (self-insert-command arg))
442 (progn 446 (unwind-protect
443 (add-hook 'post-self-insert-hook postproc nil t) 447 (progn
444 (self-insert-command (prefix-numeric-value arg))) 448 (add-hook 'post-self-insert-hook postproc nil t)
445 ;; We first used let-binding to protect the hook, but that was naive 449 (self-insert-command arg))
446 ;; since add-hook affects the symbol-default value of the variable, 450 ;; We first used let-binding to protect the hook, but that
447 ;; whereas the let-binding might only protect the buffer-local value. 451 ;; was naive since add-hook affects the symbol-default
448 (remove-hook 'post-self-insert-hook postproc t))) 452 ;; value of the variable, whereas the let-binding might
453 ;; only protect the buffer-local value.
454 (remove-hook 'post-self-insert-hook postproc t)))
449 (cl-assert (not (member postproc post-self-insert-hook))) 455 (cl-assert (not (member postproc post-self-insert-hook)))
450 (cl-assert (not (member postproc (default-value 'post-self-insert-hook)))))) 456 (cl-assert (not (member postproc (default-value 'post-self-insert-hook))))))
451 nil) 457 nil)
diff --git a/src/bidi.c b/src/bidi.c
index a68ffdb7e6d..c23ff954356 100644
--- a/src/bidi.c
+++ b/src/bidi.c
@@ -532,7 +532,7 @@ bidi_copy_it (struct bidi_it *to, struct bidi_it *from)
532 /* Copy everything from the start through the active part of 532 /* Copy everything from the start through the active part of
533 the level stack. */ 533 the level stack. */
534 memcpy (to, from, 534 memcpy (to, from,
535 (offsetof (struct bidi_it, level_stack[1]) 535 (offsetof (struct bidi_it, level_stack) + sizeof from->level_stack[0]
536 + from->stack_idx * sizeof from->level_stack[0])); 536 + from->stack_idx * sizeof from->level_stack[0]));
537} 537}
538 538
diff --git a/src/emacsgtkfixed.c b/src/emacsgtkfixed.c
index cebd7b613c7..ca0bbfbb866 100644
--- a/src/emacsgtkfixed.c
+++ b/src/emacsgtkfixed.c
@@ -27,13 +27,12 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
27#include "emacsgtkfixed.h" 27#include "emacsgtkfixed.h"
28 28
29/* Silence a bogus diagnostic; see GNOME bug 683906. */ 29/* Silence a bogus diagnostic; see GNOME bug 683906. */
30#if 4 < __GNUC__ + (7 <= __GNUC_MINOR__) 30#if 4 < __GNUC__ + (7 <= __GNUC_MINOR__) && ! GLIB_CHECK_VERSION (2, 35, 7)
31# pragma GCC diagnostic push 31# pragma GCC diagnostic push
32# pragma GCC diagnostic ignored "-Wunused-local-typedefs" 32# pragma GCC diagnostic ignored "-Wunused-local-typedefs"
33#endif 33#endif
34 34
35typedef struct _EmacsFixed EmacsFixed; 35typedef struct _EmacsFixed EmacsFixed;
36typedef struct _EmacsFixedPrivate EmacsFixedPrivate;
37typedef struct _EmacsFixedClass EmacsFixedClass; 36typedef struct _EmacsFixedClass EmacsFixedClass;
38 37
39struct _EmacsFixedPrivate 38struct _EmacsFixedPrivate
diff --git a/src/emacsgtkfixed.h b/src/emacsgtkfixed.h
index 3d6a76ab570..0d09525e02a 100644
--- a/src/emacsgtkfixed.h
+++ b/src/emacsgtkfixed.h
@@ -30,7 +30,6 @@ G_BEGIN_DECLS
30struct frame; 30struct frame;
31 31
32typedef struct _EmacsFixedPrivate EmacsFixedPrivate; 32typedef struct _EmacsFixedPrivate EmacsFixedPrivate;
33typedef struct _EmacsFixedClass EmacsFixedClass;
34 33
35struct _EmacsFixed 34struct _EmacsFixed
36{ 35{
diff --git a/src/floatfns.c b/src/floatfns.c
index b9af03b3431..c1bd25877e3 100644
--- a/src/floatfns.c
+++ b/src/floatfns.c
@@ -3,8 +3,7 @@
3Copyright (C) 1988, 1993-1994, 1999, 2001-2016 Free Software Foundation, 3Copyright (C) 1988, 1993-1994, 1999, 2001-2016 Free Software Foundation,
4Inc. 4Inc.
5 5
6Author: Wolfgang Rupprecht (ac 6Author: Wolfgang Rupprecht (according to ack.texi)
7ording to ack.texi)
8 7
9This file is part of GNU Emacs. 8This file is part of GNU Emacs.
10 9
diff --git a/src/gtkutil.c b/src/gtkutil.c
index 7dca5851f29..ba059b73a70 100644
--- a/src/gtkutil.c
+++ b/src/gtkutil.c
@@ -1300,7 +1300,7 @@ xg_create_frame_widgets (struct frame *f)
1300 if (! g_signal_handler_find (G_OBJECT (gs), 1300 if (! g_signal_handler_find (G_OBJECT (gs),
1301 G_SIGNAL_MATCH_FUNC, 1301 G_SIGNAL_MATCH_FUNC,
1302 0, 0, 0, 1302 0, 0, 0,
1303 G_CALLBACK (style_changed_cb), 1303 (gpointer) G_CALLBACK (style_changed_cb),
1304 0)) 1304 0))
1305 { 1305 {
1306 g_signal_connect (G_OBJECT (gs), "notify::gtk-theme-name", 1306 g_signal_connect (G_OBJECT (gs), "notify::gtk-theme-name",
@@ -1832,14 +1832,10 @@ xg_toggle_notify_cb (GObject *gobject, GParamSpec *arg1, gpointer user_data)
1832 1832
1833 if (!!visible != !!toggle_on) 1833 if (!!visible != !!toggle_on)
1834 { 1834 {
1835 g_signal_handlers_block_by_func (G_OBJECT (wtoggle), 1835 gpointer cb = (gpointer) G_CALLBACK (xg_toggle_visibility_cb);
1836 G_CALLBACK (xg_toggle_visibility_cb), 1836 g_signal_handlers_block_by_func (G_OBJECT (wtoggle), cb, gobject);
1837 gobject);
1838 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (wtoggle), visible); 1837 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (wtoggle), visible);
1839 g_signal_handlers_unblock_by_func 1838 g_signal_handlers_unblock_by_func (G_OBJECT (wtoggle), cb, gobject);
1840 (G_OBJECT (wtoggle),
1841 G_CALLBACK (xg_toggle_visibility_cb),
1842 gobject);
1843 } 1839 }
1844 x_gtk_show_hidden_files = visible; 1840 x_gtk_show_hidden_files = visible;
1845 } 1841 }
diff --git a/src/lisp.h b/src/lisp.h
index d0abb24b685..e606ffa0259 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -1768,7 +1768,8 @@ CHAR_TABLE_EXTRA_SLOTS (struct Lisp_Char_Table *ct)
1768 1768
1769/* Make sure that sub char-table contents slot is where we think it is. */ 1769/* Make sure that sub char-table contents slot is where we think it is. */
1770verify (offsetof (struct Lisp_Sub_Char_Table, contents) 1770verify (offsetof (struct Lisp_Sub_Char_Table, contents)
1771 == offsetof (struct Lisp_Vector, contents[SUB_CHAR_TABLE_OFFSET])); 1771 == (offsetof (struct Lisp_Vector, contents)
1772 + SUB_CHAR_TABLE_OFFSET * sizeof (Lisp_Object)));
1772 1773
1773/*********************************************************************** 1774/***********************************************************************
1774 Symbols 1775 Symbols
diff --git a/src/nsterm.m b/src/nsterm.m
index 38aa4a3a413..b796193af77 100644
--- a/src/nsterm.m
+++ b/src/nsterm.m
@@ -1172,10 +1172,31 @@ ns_clip_to_row (struct window *w, struct glyph_row *row,
1172 ========================================================================== */ 1172 ========================================================================== */
1173 1173
1174 1174
1175// This bell implementation shows the visual bell image asynchronously
1176// from the rest of Emacs. This is done by adding a NSView to the
1177// superview of the Emacs window and removing it using a timer.
1178//
1179// Unfortunately, some Emacs operations, like scrolling, is done using
1180// low-level primitives that copy the content of the window, including
1181// the bell image. To some extent, this is handled by removing the
1182// image prior to scrolling and marking that the window is in need for
1183// redisplay.
1184//
1185// To test this code, make sure that there is no artifacts of the bell
1186// image in the following situations. Use a non-empty buffer (like the
1187// tutorial) to ensure that a scroll is performed:
1188//
1189// * Single-window: C-g C-v
1190//
1191// * Side-by-windows: C-x 3 C-g C-v
1192//
1193// * Windows above each other: C-x 2 C-g C-v
1194
1175@interface EmacsBell : NSImageView 1195@interface EmacsBell : NSImageView
1176{ 1196{
1177 // Number of currently active bell:s. 1197 // Number of currently active bell:s.
1178 unsigned int nestCount; 1198 unsigned int nestCount;
1199 NSView * mView;
1179 bool isAttached; 1200 bool isAttached;
1180} 1201}
1181- (void)show:(NSView *)view; 1202- (void)show:(NSView *)view;
@@ -1204,7 +1225,6 @@ ns_clip_to_row (struct window *w, struct glyph_row *row,
1204 [self.image unlockFocus]; 1225 [self.image unlockFocus];
1205#else 1226#else
1206 self.image = [NSImage imageNamed:NSImageNameCaution]; 1227 self.image = [NSImage imageNamed:NSImageNameCaution];
1207 [self.image setScalesWhenResized:YES];
1208 [self.image setSize:NSMakeSize(self.image.size.width * 5, 1228 [self.image setSize:NSMakeSize(self.image.size.width * 5,
1209 self.image.size.height * 5)]; 1229 self.image.size.height * 5)];
1210#endif 1230#endif
@@ -1229,6 +1249,7 @@ ns_clip_to_row (struct window *w, struct glyph_row *row,
1229 [self setFrameSize:self.image.size]; 1249 [self setFrameSize:self.image.size];
1230 1250
1231 isAttached = true; 1251 isAttached = true;
1252 mView = view;
1232 [[[view window] contentView] addSubview:self 1253 [[[view window] contentView] addSubview:self
1233 positioned:NSWindowAbove 1254 positioned:NSWindowAbove
1234 relativeTo:nil]; 1255 relativeTo:nil];
@@ -1258,9 +1279,12 @@ ns_clip_to_row (struct window *w, struct glyph_row *row,
1258 1279
1259-(void)remove 1280-(void)remove
1260{ 1281{
1282 NSTRACE ("[EmacsBell remove]");
1261 if (isAttached) 1283 if (isAttached)
1262 { 1284 {
1285 NSTRACE_MSG ("removeFromSuperview");
1263 [self removeFromSuperview]; 1286 [self removeFromSuperview];
1287 mView.needsDisplay = YES;
1264 isAttached = false; 1288 isAttached = false;
1265 } 1289 }
1266} 1290}
@@ -1310,6 +1334,8 @@ static void hide_bell ()
1310 Ensure the bell is hidden. 1334 Ensure the bell is hidden.
1311 -------------------------------------------------------------------------- */ 1335 -------------------------------------------------------------------------- */
1312{ 1336{
1337 NSTRACE ("hide_bell");
1338
1313 if (bell_view != nil) 1339 if (bell_view != nil)
1314 { 1340 {
1315 [bell_view remove]; 1341 [bell_view remove];
@@ -2392,6 +2418,8 @@ ns_clear_frame_area (struct frame *f, int x, int y, int width, int height)
2392static void 2418static void
2393ns_copy_bits (struct frame *f, NSRect src, NSRect dest) 2419ns_copy_bits (struct frame *f, NSRect src, NSRect dest)
2394{ 2420{
2421 NSTRACE ("ns_copy_bits");
2422
2395 if (FRAME_NS_VIEW (f)) 2423 if (FRAME_NS_VIEW (f))
2396 { 2424 {
2397 hide_bell(); // Ensure the bell image isn't scrolled. 2425 hide_bell(); // Ensure the bell image isn't scrolled.
diff --git a/test/lisp/net/tramp-tests.el b/test/lisp/net/tramp-tests.el
index a29e42e7343..d9563ec9174 100644
--- a/test/lisp/net/tramp-tests.el
+++ b/test/lisp/net/tramp-tests.el
@@ -1785,6 +1785,14 @@ Several special characters do not work properly there."
1785 (file-truename tramp-test-temporary-file-directory) nil 1785 (file-truename tramp-test-temporary-file-directory) nil
1786 (string-match "^HP-UX" (tramp-get-connection-property v "uname" "")))) 1786 (string-match "^HP-UX" (tramp-get-connection-property v "uname" ""))))
1787 1787
1788(defun tramp--test-darwin-p ()
1789 "Check, whether the remote host runs Mac OS X.
1790Several special characters do not work properly there."
1791 ;; We must refill the cache. `file-truename' does it.
1792 (with-parsed-tramp-file-name
1793 (file-truename tramp-test-temporary-file-directory) nil
1794 (string-match "^Darwin" (tramp-get-connection-property v "uname" ""))))
1795
1788(defun tramp--test-check-files (&rest files) 1796(defun tramp--test-check-files (&rest files)
1789 "Run a simple but comprehensive test over every file in FILES." 1797 "Run a simple but comprehensive test over every file in FILES."
1790 ;; We must use `file-truename' for the temporary directory, because 1798 ;; We must use `file-truename' for the temporary directory, because
@@ -2038,9 +2046,10 @@ Use the `ls' command."
2038 (file-name-coding-system 'utf-8)) 2046 (file-name-coding-system 'utf-8))
2039 (tramp--test-check-files 2047 (tramp--test-check-files
2040 (unless (tramp--test-hpux-p) "Γυρίστε το Γαλαξία με Ώτο Στοπ") 2048 (unless (tramp--test-hpux-p) "Γυρίστε το Γαλαξία με Ώτο Στοπ")
2041 (unless (tramp--test-hpux-p) 2049 (unless (or (tramp--test-hpux-p) (tramp--test-darwin-p))
2042 "أصبح بوسعك الآن تنزيل نسخة كاملة من موسوعة ويكيبيديا العربية لتصفحها بلا اتصال بالإنترنت") 2050 "أصبح بوسعك الآن تنزيل نسخة كاملة من موسوعة ويكيبيديا العربية لتصفحها بلا اتصال بالإنترنت")
2043 "银河系漫游指南系列" 2051 (unless (tramp--test-darwin-p)
2052 "银河系漫游指南系列")
2044 "Автостопом по гала́ктике"))) 2053 "Автостопом по гала́ктике")))
2045 2054
2046(ert-deftest tramp-test32-utf8 () 2055(ert-deftest tramp-test32-utf8 ()