1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-24 06:20:43 -08:00
This commit is contained in:
Paul Eggert 2016-03-22 11:04:36 -07:00
commit f95bbe5a67
20 changed files with 102 additions and 57 deletions

View file

@ -238,7 +238,7 @@ TUTORIAL.zh
** Check the manual. ** Check the manual.
abbrevs.texi abbrevs.texi Steve Byrne
ack.texi ack.texi
anti.texi anti.texi
arevert-xtra.texi arevert-xtra.texi
@ -293,7 +293,7 @@ xresources.texi
** Check the Lisp manual. ** Check the Lisp manual.
abbrevs.texi abbrevs.texi Steve Byrne
anti.texi anti.texi
back.texi back.texi
backups.texi backups.texi

View file

@ -435,9 +435,9 @@ copies the expansion verbatim including its case pattern.
controls which characters are considered part of a word, for dynamic expansion controls which characters are considered part of a word, for dynamic expansion
purposes. The regular expression must match just one character, never purposes. The regular expression must match just one character, never
two or more. The same regular expression also determines which two or more. The same regular expression also determines which
characters are part of an expansion. The value @code{nil} has a special characters are part of an expansion. The (default) value @code{nil}
meaning: dynamic abbrevs are made of word characters, but expansions are has a special meaning: dynamic abbrevs are made of word characters,
made of word and symbol characters. but expansions are made of word and symbol characters.
@vindex dabbrev-abbrev-skip-leading-regexp @vindex dabbrev-abbrev-skip-leading-regexp
In shell scripts and makefiles, a variable name is sometimes prefixed 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
customize dynamic abbrev expansion to handle optional prefixes by setting customize dynamic abbrev expansion to handle optional prefixes by setting
the variable @code{dabbrev-abbrev-skip-leading-regexp}. Its value the variable @code{dabbrev-abbrev-skip-leading-regexp}. Its value
should be a regular expression that matches the optional prefix that should be a regular expression that matches the optional prefix that
dynamic abbrev expression should ignore. dynamic abbrev expression should ignore. The default is @code{nil},
which means no characters should be skipped.

View file

@ -198,7 +198,10 @@ abbrevs in a file automatically, under the control of variables
described here. described here.
@defopt abbrev-file-name @defopt abbrev-file-name
This is the default file name for reading and saving abbrevs. This is the default file name for reading and saving abbrevs. By
default, Emacs will look for @file{~/.emacs.d/abbrev_defs}, and, if
not found, for @file{~/.abbrev_defs}; if neither file exists, Emacs
will create @file{~/.emacs.d/abbrev_defs}.
@end defopt @end defopt
@defun quietly-read-abbrev-file &optional filename @defun quietly-read-abbrev-file &optional filename
@ -216,7 +219,7 @@ A non-@code{nil} value for @code{save-abbrevs} means that Emacs should
offer to save abbrevs (if any have changed) when files are saved. If offer to save abbrevs (if any have changed) when files are saved. If
the value is @code{silently}, Emacs saves the abbrevs without asking the value is @code{silently}, Emacs saves the abbrevs without asking
the user. @code{abbrev-file-name} specifies the file to save the the user. @code{abbrev-file-name} specifies the file to save the
abbrevs in. abbrevs in. The default value is @code{t}.
@end defopt @end defopt
@defvar abbrevs-changed @defvar abbrevs-changed
@ -282,7 +285,7 @@ omitted, it defaults to point. @code{name}, if non-@code{nil}, should
be the name by which this abbrev was found (a string); it is used to be the name by which this abbrev was found (a string); it is used to
figure out whether to adjust the capitalization of the expansion. The figure out whether to adjust the capitalization of the expansion. The
function returns @code{abbrev} if the abbrev was successfully function returns @code{abbrev} if the abbrev was successfully
inserted. inserted, otherwise it returns @code{nil}.
@end defun @end defun
@deffn Command abbrev-prefix-mark &optional arg @deffn Command abbrev-prefix-mark &optional arg

View file

@ -252,7 +252,9 @@ need to use a function that takes some other data type, you will need to
call it in an Elisp expression (which can also be used with call it in an Elisp expression (which can also be used with
@ref{Expansion, expansions}). As with other shells, you can @ref{Expansion, expansions}). As with other shells, you can
escape special characters and spaces with the backslash (@code{\}) and escape special characters and spaces with the backslash (@code{\}) and
apostrophes (@code{''}) and double quotes (@code{""}). apostrophes (@code{''}) and double quotes (@code{""}). This is needed
especially for file names with special characters like pipe
(@code{|}), which could be part of remote file names.
@node Built-ins @node Built-ins

View file

@ -25,9 +25,8 @@ Used and created by Tassilo Horn.")
(custom-theme-set-faces (custom-theme-set-faces
'tsdh-light 'tsdh-light
'(Info-quoted ((t (:weight bold)))) '(Info-quoted ((t (:underline "gray40" :weight bold))))
'(ace-jump-face-foreground ((t (:foreground "DeepPink" :box nil :weight bold)))) '(aw-leading-char-face ((t (:background "red" :foreground "white" :weight bold))))
'(aw-leading-char-face ((t (:inherit ace-jump-face-foreground))))
'(default ((t (:background "white" :foreground "black")))) '(default ((t (:background "white" :foreground "black"))))
'(diff-added ((t (:inherit diff-changed :background "light green")))) '(diff-added ((t (:inherit diff-changed :background "light green"))))
'(diff-changed ((t (:background "light steel blue")))) '(diff-changed ((t (:background "light steel blue"))))
@ -36,6 +35,8 @@ Used and created by Tassilo Horn.")
'(diff-indicator-removed ((t (:inherit diff-indicator-changed)))) '(diff-indicator-removed ((t (:inherit diff-indicator-changed))))
'(diff-removed ((t (:inherit diff-changed :background "sandy brown")))) '(diff-removed ((t (:inherit diff-changed :background "sandy brown"))))
'(dired-directory ((t (:inherit font-lock-function-name-face :weight bold)))) '(dired-directory ((t (:inherit font-lock-function-name-face :weight bold))))
'(font-lock-regexp-grouping-backslash ((t (:inherit bold :foreground "black"))))
'(font-lock-regexp-grouping-construct ((t (:inherit bold :foreground "black"))))
'(gnus-button ((t (:inherit button)))) '(gnus-button ((t (:inherit button))))
'(gnus-header-name ((t (:box (:line-width 1 :style released-button) :weight bold)))) '(gnus-header-name ((t (:box (:line-width 1 :style released-button) :weight bold))))
'(gnus-group-mail-1 ((t (:inherit gnus-group-mail-1-empty :weight bold)))) '(gnus-group-mail-1 ((t (:inherit gnus-group-mail-1-empty :weight bold))))

View file

@ -626,7 +626,7 @@ at the bottom edge of the page moves to the next page."
(image-bob) (image-bob)
(image-bol 1)) (image-bol 1))
(set-window-hscroll (selected-window) hscroll))) (set-window-hscroll (selected-window) hscroll)))
(image-next-line 1))) (image-next-line arg)))
(defun doc-view-previous-line-or-previous-page (&optional arg) (defun doc-view-previous-line-or-previous-page (&optional arg)
"Scroll downward by ARG lines if possible, else goto previous page. "Scroll downward by ARG lines if possible, else goto previous page.

View file

@ -593,7 +593,7 @@ Commands: Equivalent keys in read-only mode:
;; set-visited-file-name from calling set-auto-mode, which ;; set-visited-file-name from calling set-auto-mode, which
;; might kill all local variables and set forms-file nil, ;; might kill all local variables and set forms-file nil,
;; which will then barf in find-file-noselect below. This can ;; which will then barf in find-file-noselect below. This can
;; hapen when the user sets the default major mode that is ;; happen when the user sets the default major mode that is
;; different from the Fundamental mode. ;; different from the Fundamental mode.
(let (change-major-mode-with-file-name) (let (change-major-mode-with-file-name)
(set-visited-file-name nil)) (set-visited-file-name nil))

View file

@ -4585,6 +4585,8 @@ Argument MIME is non-nil if this is a mime message."
(list armor-start (- (point-max) after-end) mime (list armor-start (- (point-max) after-end) mime
armor-end-regexp))) armor-end-regexp)))
(declare-function rmail-mime-entity-truncated "rmailmm" (entity))
;; Should this have a key-binding, or be in a menu? ;; Should this have a key-binding, or be in a menu?
;; There doesn't really seem to be an appropriate menu. ;; There doesn't really seem to be an appropriate menu.
;; Eg the edit command is not in a menu either. ;; Eg the edit command is not in a menu either.

View file

@ -1409,7 +1409,7 @@ been put there by c-put-char-property. POINT remains unchanged."
(c-state-cache-good-pos c-state-cache-good-pos) (c-state-cache-good-pos c-state-cache-good-pos)
;(c-state-nonlit-pos-cache (copy-tree c-state-nonlit-pos-cache)) ;(c-state-nonlit-pos-cache (copy-tree c-state-nonlit-pos-cache))
;(c-state-nonlit-pos-cache-limit c-state-nonlit-pos-cache-limit) ;(c-state-nonlit-pos-cache-limit c-state-nonlit-pos-cache-limit)
;(c-state-semi-nonlit-pos-cache (copy-treec c-state-semi-nonlit-pos-cache)) ;(c-state-semi-nonlit-pos-cache (copy-tree c-state-semi-nonlit-pos-cache))
;(c-state-semi-nonlit-pos-cache-limit c-state-semi-nonlit-pos-cache) ;(c-state-semi-nonlit-pos-cache-limit c-state-semi-nonlit-pos-cache)
(c-state-brace-pair-desert (copy-tree c-state-brace-pair-desert)) (c-state-brace-pair-desert (copy-tree c-state-brace-pair-desert))
(c-state-point-min c-state-point-min) (c-state-point-min c-state-point-min)

View file

@ -2173,7 +2173,7 @@ See `font-lock-syntax-table'.")
'font-lock-string-face))) 'font-lock-string-face)))
;; Perl-ish keywords. ;; Perl-ish keywords.
"\\_<\\(?:BEGIN\\|END\\)\\_>\\|^__END__$" "\\_<\\(?:BEGIN\\|END\\)\\_>\\|^__END__$"
;; Variables. ;; Singleton objects.
(,(concat ruby-font-lock-keyword-beg-re (,(concat ruby-font-lock-keyword-beg-re
"\\_<\\(nil\\|true\\|false\\)\\_>") "\\_<\\(nil\\|true\\|false\\)\\_>")
1 font-lock-constant-face) 1 font-lock-constant-face)
@ -2181,7 +2181,7 @@ See `font-lock-syntax-table'.")
("\\_<__\\(?:LINE\\|ENCODING\\|FILE\\)__\\_>" ("\\_<__\\(?:LINE\\|ENCODING\\|FILE\\)__\\_>"
(0 font-lock-builtin-face)) (0 font-lock-builtin-face))
;; Symbols. ;; Symbols.
("\\(^\\|[^:]\\)\\(:@?\\(?:\\w\\|_\\)+\\)\\([!?=]\\)?" ("\\(^\\|[^:]\\)\\(:@\\{0,2\\}\\(?:\\sw\\|\\s_\\)+\\)"
(2 font-lock-constant-face) (2 font-lock-constant-face)
(3 (unless (and (eq (char-before (match-end 3)) ?=) (3 (unless (and (eq (char-before (match-end 3)) ?=)
(eq (char-after (match-end 3)) ?>)) (eq (char-after (match-end 3)) ?>))

View file

@ -436,6 +436,8 @@ If SELECT is non-nil, select the target window."
;;; XREF buffer (part of the UI) ;;; XREF buffer (part of the UI)
;; The xref buffer is used to display a set of xrefs. ;; The xref buffer is used to display a set of xrefs.
(defconst xref-buffer-name "*xref*"
"The name of the buffer to show xrefs.")
(defmacro xref--with-dedicated-window (&rest body) (defmacro xref--with-dedicated-window (&rest body)
`(let* ((xref-w (get-buffer-window xref-buffer-name)) `(let* ((xref-w (get-buffer-window xref-buffer-name))
@ -470,6 +472,9 @@ If SELECT is non-nil, select the target window."
(xref--show-pos-in-buf marker buf select)) (xref--show-pos-in-buf marker buf select))
(user-error (message (error-message-string err))))) (user-error (message (error-message-string err)))))
(defvar-local xref--window nil
"The original window this xref buffer was created from.")
(defun xref-show-location-at-point () (defun xref-show-location-at-point ()
"Display the source of xref at point in the appropriate window, if any." "Display the source of xref at point in the appropriate window, if any."
(interactive) (interactive)
@ -500,9 +505,6 @@ If SELECT is non-nil, select the target window."
(back-to-indentation) (back-to-indentation)
(get-text-property (point) 'xref-item))) (get-text-property (point) 'xref-item)))
(defvar-local xref--window nil
"The original window this xref buffer was created from.")
(defun xref-goto-xref () (defun xref-goto-xref ()
"Jump to the xref on the current line and select its window." "Jump to the xref on the current line and select its window."
(interactive) (interactive)
@ -624,9 +626,6 @@ references displayed in the current *xref* buffer."
(t (t
(error "No %s xref" (if backward "previous" "next")))))) (error "No %s xref" (if backward "previous" "next"))))))
(defconst xref-buffer-name "*xref*"
"The name of the buffer to show xrefs.")
(defvar xref--button-map (defvar xref--button-map
(let ((map (make-sparse-keymap))) (let ((map (make-sparse-keymap)))
(define-key map [(control ?m)] #'xref-goto-xref) (define-key map [(control ?m)] #'xref-goto-xref)

View file

@ -408,15 +408,19 @@ A non-nil INTERACTIVE argument means to run the `post-self-insert-hook'."
(last-command-event ?\n) (last-command-event ?\n)
;; Don't auto-fill if we have a numeric argument. ;; Don't auto-fill if we have a numeric argument.
(auto-fill-function (if arg nil auto-fill-function)) (auto-fill-function (if arg nil auto-fill-function))
(arg (prefix-numeric-value arg))
(postproc (postproc
;; Do the rest in post-self-insert-hook, because we want to do it ;; Do the rest in post-self-insert-hook, because we want to do it
;; *before* other functions on that hook. ;; *before* other functions on that hook.
(lambda () (lambda ()
(cl-assert (eq ?\n (char-before))) ;; We are not going to insert any newlines if arg is
;; non-positive.
(or (and (numberp arg) (<= arg 0))
(cl-assert (eq ?\n (char-before))))
;; Mark the newline(s) `hard'. ;; Mark the newline(s) `hard'.
(if use-hard-newlines (if use-hard-newlines
(set-hard-newline-properties (set-hard-newline-properties
(- (point) (prefix-numeric-value arg)) (point))) (- (point) arg) (point)))
;; If the newline leaves the previous line blank, and we ;; If the newline leaves the previous line blank, and we
;; have a left margin, delete that from the blank line. ;; have a left margin, delete that from the blank line.
(save-excursion (save-excursion
@ -433,19 +437,21 @@ A non-nil INTERACTIVE argument means to run the `post-self-insert-hook'."
(move-to-left-margin nil t))))) (move-to-left-margin nil t)))))
(unwind-protect (unwind-protect
(if (not interactive) (if (not interactive)
;; FIXME: For non-interactive uses, many calls actually just want ;; FIXME: For non-interactive uses, many calls actually
;; (insert "\n"), so maybe we should do just that, so as to avoid ;; just want (insert "\n"), so maybe we should do just
;; the risk of filling or running abbrevs unexpectedly. ;; that, so as to avoid the risk of filling or running
(let ((post-self-insert-hook (list postproc))) ;; abbrevs unexpectedly.
(self-insert-command (prefix-numeric-value arg))) (let ((post-self-insert-hook (list postproc)))
(unwind-protect (self-insert-command arg))
(progn (unwind-protect
(add-hook 'post-self-insert-hook postproc nil t) (progn
(self-insert-command (prefix-numeric-value arg))) (add-hook 'post-self-insert-hook postproc nil t)
;; We first used let-binding to protect the hook, but that was naive (self-insert-command arg))
;; since add-hook affects the symbol-default value of the variable, ;; We first used let-binding to protect the hook, but that
;; whereas the let-binding might only protect the buffer-local value. ;; was naive since add-hook affects the symbol-default
(remove-hook 'post-self-insert-hook postproc t))) ;; value of the variable, whereas the let-binding might
;; only protect the buffer-local value.
(remove-hook 'post-self-insert-hook postproc t)))
(cl-assert (not (member postproc post-self-insert-hook))) (cl-assert (not (member postproc post-self-insert-hook)))
(cl-assert (not (member postproc (default-value 'post-self-insert-hook)))))) (cl-assert (not (member postproc (default-value 'post-self-insert-hook))))))
nil) nil)

View file

@ -532,7 +532,7 @@ bidi_copy_it (struct bidi_it *to, struct bidi_it *from)
/* Copy everything from the start through the active part of /* Copy everything from the start through the active part of
the level stack. */ the level stack. */
memcpy (to, from, memcpy (to, from,
(offsetof (struct bidi_it, level_stack[1]) (offsetof (struct bidi_it, level_stack) + sizeof from->level_stack[0]
+ from->stack_idx * sizeof from->level_stack[0])); + from->stack_idx * sizeof from->level_stack[0]));
} }

View file

@ -27,13 +27,12 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#include "emacsgtkfixed.h" #include "emacsgtkfixed.h"
/* Silence a bogus diagnostic; see GNOME bug 683906. */ /* Silence a bogus diagnostic; see GNOME bug 683906. */
#if 4 < __GNUC__ + (7 <= __GNUC_MINOR__) #if 4 < __GNUC__ + (7 <= __GNUC_MINOR__) && ! GLIB_CHECK_VERSION (2, 35, 7)
# pragma GCC diagnostic push # pragma GCC diagnostic push
# pragma GCC diagnostic ignored "-Wunused-local-typedefs" # pragma GCC diagnostic ignored "-Wunused-local-typedefs"
#endif #endif
typedef struct _EmacsFixed EmacsFixed; typedef struct _EmacsFixed EmacsFixed;
typedef struct _EmacsFixedPrivate EmacsFixedPrivate;
typedef struct _EmacsFixedClass EmacsFixedClass; typedef struct _EmacsFixedClass EmacsFixedClass;
struct _EmacsFixedPrivate struct _EmacsFixedPrivate

View file

@ -30,7 +30,6 @@ G_BEGIN_DECLS
struct frame; struct frame;
typedef struct _EmacsFixedPrivate EmacsFixedPrivate; typedef struct _EmacsFixedPrivate EmacsFixedPrivate;
typedef struct _EmacsFixedClass EmacsFixedClass;
struct _EmacsFixed struct _EmacsFixed
{ {

View file

@ -3,8 +3,7 @@
Copyright (C) 1988, 1993-1994, 1999, 2001-2016 Free Software Foundation, Copyright (C) 1988, 1993-1994, 1999, 2001-2016 Free Software Foundation,
Inc. Inc.
Author: Wolfgang Rupprecht (ac Author: Wolfgang Rupprecht (according to ack.texi)
ording to ack.texi)
This file is part of GNU Emacs. This file is part of GNU Emacs.

View file

@ -1300,7 +1300,7 @@ xg_create_frame_widgets (struct frame *f)
if (! g_signal_handler_find (G_OBJECT (gs), if (! g_signal_handler_find (G_OBJECT (gs),
G_SIGNAL_MATCH_FUNC, G_SIGNAL_MATCH_FUNC,
0, 0, 0, 0, 0, 0,
G_CALLBACK (style_changed_cb), (gpointer) G_CALLBACK (style_changed_cb),
0)) 0))
{ {
g_signal_connect (G_OBJECT (gs), "notify::gtk-theme-name", 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)
if (!!visible != !!toggle_on) if (!!visible != !!toggle_on)
{ {
g_signal_handlers_block_by_func (G_OBJECT (wtoggle), gpointer cb = (gpointer) G_CALLBACK (xg_toggle_visibility_cb);
G_CALLBACK (xg_toggle_visibility_cb), g_signal_handlers_block_by_func (G_OBJECT (wtoggle), cb, gobject);
gobject);
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (wtoggle), visible); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (wtoggle), visible);
g_signal_handlers_unblock_by_func g_signal_handlers_unblock_by_func (G_OBJECT (wtoggle), cb, gobject);
(G_OBJECT (wtoggle),
G_CALLBACK (xg_toggle_visibility_cb),
gobject);
} }
x_gtk_show_hidden_files = visible; x_gtk_show_hidden_files = visible;
} }

View file

@ -1768,7 +1768,8 @@ CHAR_TABLE_EXTRA_SLOTS (struct Lisp_Char_Table *ct)
/* Make sure that sub char-table contents slot is where we think it is. */ /* Make sure that sub char-table contents slot is where we think it is. */
verify (offsetof (struct Lisp_Sub_Char_Table, contents) verify (offsetof (struct Lisp_Sub_Char_Table, contents)
== offsetof (struct Lisp_Vector, contents[SUB_CHAR_TABLE_OFFSET])); == (offsetof (struct Lisp_Vector, contents)
+ SUB_CHAR_TABLE_OFFSET * sizeof (Lisp_Object)));
/*********************************************************************** /***********************************************************************
Symbols Symbols

View file

@ -1172,10 +1172,31 @@ ns_clip_to_row (struct window *w, struct glyph_row *row,
========================================================================== */ ========================================================================== */
// This bell implementation shows the visual bell image asynchronously
// from the rest of Emacs. This is done by adding a NSView to the
// superview of the Emacs window and removing it using a timer.
//
// Unfortunately, some Emacs operations, like scrolling, is done using
// low-level primitives that copy the content of the window, including
// the bell image. To some extent, this is handled by removing the
// image prior to scrolling and marking that the window is in need for
// redisplay.
//
// To test this code, make sure that there is no artifacts of the bell
// image in the following situations. Use a non-empty buffer (like the
// tutorial) to ensure that a scroll is performed:
//
// * Single-window: C-g C-v
//
// * Side-by-windows: C-x 3 C-g C-v
//
// * Windows above each other: C-x 2 C-g C-v
@interface EmacsBell : NSImageView @interface EmacsBell : NSImageView
{ {
// Number of currently active bell:s. // Number of currently active bell:s.
unsigned int nestCount; unsigned int nestCount;
NSView * mView;
bool isAttached; bool isAttached;
} }
- (void)show:(NSView *)view; - (void)show:(NSView *)view;
@ -1204,7 +1225,6 @@ ns_clip_to_row (struct window *w, struct glyph_row *row,
[self.image unlockFocus]; [self.image unlockFocus];
#else #else
self.image = [NSImage imageNamed:NSImageNameCaution]; self.image = [NSImage imageNamed:NSImageNameCaution];
[self.image setScalesWhenResized:YES];
[self.image setSize:NSMakeSize(self.image.size.width * 5, [self.image setSize:NSMakeSize(self.image.size.width * 5,
self.image.size.height * 5)]; self.image.size.height * 5)];
#endif #endif
@ -1229,6 +1249,7 @@ ns_clip_to_row (struct window *w, struct glyph_row *row,
[self setFrameSize:self.image.size]; [self setFrameSize:self.image.size];
isAttached = true; isAttached = true;
mView = view;
[[[view window] contentView] addSubview:self [[[view window] contentView] addSubview:self
positioned:NSWindowAbove positioned:NSWindowAbove
relativeTo:nil]; relativeTo:nil];
@ -1258,9 +1279,12 @@ ns_clip_to_row (struct window *w, struct glyph_row *row,
-(void)remove -(void)remove
{ {
NSTRACE ("[EmacsBell remove]");
if (isAttached) if (isAttached)
{ {
NSTRACE_MSG ("removeFromSuperview");
[self removeFromSuperview]; [self removeFromSuperview];
mView.needsDisplay = YES;
isAttached = false; isAttached = false;
} }
} }
@ -1310,6 +1334,8 @@ static void hide_bell ()
Ensure the bell is hidden. Ensure the bell is hidden.
-------------------------------------------------------------------------- */ -------------------------------------------------------------------------- */
{ {
NSTRACE ("hide_bell");
if (bell_view != nil) if (bell_view != nil)
{ {
[bell_view remove]; [bell_view remove];
@ -2392,6 +2418,8 @@ ns_clear_frame_area (struct frame *f, int x, int y, int width, int height)
static void static void
ns_copy_bits (struct frame *f, NSRect src, NSRect dest) ns_copy_bits (struct frame *f, NSRect src, NSRect dest)
{ {
NSTRACE ("ns_copy_bits");
if (FRAME_NS_VIEW (f)) if (FRAME_NS_VIEW (f))
{ {
hide_bell(); // Ensure the bell image isn't scrolled. hide_bell(); // Ensure the bell image isn't scrolled.

View file

@ -1785,6 +1785,14 @@ Several special characters do not work properly there."
(file-truename tramp-test-temporary-file-directory) nil (file-truename tramp-test-temporary-file-directory) nil
(string-match "^HP-UX" (tramp-get-connection-property v "uname" "")))) (string-match "^HP-UX" (tramp-get-connection-property v "uname" ""))))
(defun tramp--test-darwin-p ()
"Check, whether the remote host runs Mac OS X.
Several special characters do not work properly there."
;; We must refill the cache. `file-truename' does it.
(with-parsed-tramp-file-name
(file-truename tramp-test-temporary-file-directory) nil
(string-match "^Darwin" (tramp-get-connection-property v "uname" ""))))
(defun tramp--test-check-files (&rest files) (defun tramp--test-check-files (&rest files)
"Run a simple but comprehensive test over every file in FILES." "Run a simple but comprehensive test over every file in FILES."
;; We must use `file-truename' for the temporary directory, because ;; We must use `file-truename' for the temporary directory, because
@ -2038,9 +2046,10 @@ Use the `ls' command."
(file-name-coding-system 'utf-8)) (file-name-coding-system 'utf-8))
(tramp--test-check-files (tramp--test-check-files
(unless (tramp--test-hpux-p) "Γυρίστε το Γαλαξία με Ώτο Στοπ") (unless (tramp--test-hpux-p) "Γυρίστε το Γαλαξία με Ώτο Στοπ")
(unless (tramp--test-hpux-p) (unless (or (tramp--test-hpux-p) (tramp--test-darwin-p))
"أصبح بوسعك الآن تنزيل نسخة كاملة من موسوعة ويكيبيديا العربية لتصفحها بلا اتصال بالإنترنت") "أصبح بوسعك الآن تنزيل نسخة كاملة من موسوعة ويكيبيديا العربية لتصفحها بلا اتصال بالإنترنت")
"银河系漫游指南系列" (unless (tramp--test-darwin-p)
"银河系漫游指南系列")
"Автостопом по гала́ктике"))) "Автостопом по гала́ктике")))
(ert-deftest tramp-test32-utf8 () (ert-deftest tramp-test32-utf8 ()