Commit 9075fcc1 authored by Stefan Monnier's avatar Stefan Monnier
Browse files

Merge from emacs-24

parents 86009dd5 4f4cf9c8
...@@ -12,6 +12,7 @@ autom4te.cache ...@@ -12,6 +12,7 @@ autom4te.cache
makefile makefile
TAGS TAGS
*~ *~
.#*
/README.W32 /README.W32
/bin/ /bin/
...@@ -26,6 +27,8 @@ test/biditest.txt ...@@ -26,6 +27,8 @@ test/biditest.txt
Makefile Makefile
config.log config.log
config.status config.status
config.cache
lib-src/blessmail
lib-src/ctags lib-src/ctags
lib-src/ebrowse lib-src/ebrowse
lib-src/emacsclient lib-src/emacsclient
...@@ -34,12 +37,18 @@ lib-src/hexl ...@@ -34,12 +37,18 @@ lib-src/hexl
lib-src/make-docfile lib-src/make-docfile
lib-src/movemail lib-src/movemail
lib-src/profile lib-src/profile
lib-src/test-distrib
lib-src/update-game-score lib-src/update-game-score
*.o *.o
*.exe
*.res
lib/alloca.h lib/alloca.h
lib/arg-nonnull.h lib/arg-nonnull.h
lib/byteswap.h
lib/c++defs.h lib/c++defs.h
lib/dirent.h lib/dirent.h
lib/errno.h
lib/execinfo.h
lib/fcntl.h lib/fcntl.h
lib/getopt.h lib/getopt.h
lib/inttypes.h lib/inttypes.h
...@@ -47,6 +56,7 @@ lib/libgnu.a ...@@ -47,6 +56,7 @@ lib/libgnu.a
lib/signal.h lib/signal.h
lib/stdio.h lib/stdio.h
lib/stdlib.h lib/stdlib.h
lib/stdalign.h
lib/string.h lib/string.h
lib/sys/ lib/sys/
lib/time.h lib/time.h
...@@ -55,12 +65,13 @@ lib/warn-on-use.h ...@@ -55,12 +65,13 @@ lib/warn-on-use.h
src/bootstrap-emacs src/bootstrap-emacs
src/deps/ src/deps/
src/emacs src/emacs
src/emacs-25.0.50.1 src/emacs-[0-9]*
src/emacs-25.0.50.2
src/gl-stamp src/gl-stamp
src/globals.h src/globals.h
src/stamp-h1 src/stamp-h1
src/temacs src/temacs
src/temacs.map
src/temacs.tmp
doc/emacs/emacsver.texi doc/emacs/emacsver.texi
doc/man/emacs.1 doc/man/emacs.1
etc/refcards/emacsver.tex etc/refcards/emacsver.tex
...@@ -68,4 +79,5 @@ lib/.deps/ ...@@ -68,4 +79,5 @@ lib/.deps/
lisp/international/uni-brackets.el lisp/international/uni-brackets.el
lwlib/deps/ lwlib/deps/
lwlib/liblw.a lwlib/liblw.a
leim/changed.misc
leim/changed.tit
2014-11-16 Christoph Scholtes <cschol2112@gmail.com>
* .gitignore: Ignore generated file lib/stdalign.h.
2014-11-16 Paul Eggert <eggert@cs.ucla.edu>
Backport fix for minor Bazaar leftovers.
* .dir-locals.el: Remove reference to bzr commit --fixes debbugs.
2014-11-16 Eli Zaretskii <eliz@gnu.org>
* .gitignore: Add more ignorables.
2014-11-14 Andreas Schwab <schwab@linux-m68k.org> 2014-11-14 Andreas Schwab <schwab@linux-m68k.org>
* Makefile.in (config.status): Don't depend on * Makefile.in (config.status): Don't depend on
...@@ -28,8 +41,7 @@ ...@@ -28,8 +41,7 @@
2014-11-13 Lars Magne Ingebrigtsen <larsi@gnus.org> 2014-11-13 Lars Magne Ingebrigtsen <larsi@gnus.org>
* .gitignore: Copy over sufficient ignorable files from the old * .gitignore: Copy over sufficient ignorable files from the old
.bzrignore that a simple build doesn't list lots of unregistered .bzrignore that a simple build doesn't list lots of unregistered files.
files.
2014-11-11 Eric S. Raymond <esr@thyrsus.com> 2014-11-11 Eric S. Raymond <esr@thyrsus.com>
...@@ -45,8 +57,7 @@ ...@@ -45,8 +57,7 @@
The last CVS commit was 2009-12-27T08:11:12Z!cyd@stupidchicken.com.) The last CVS commit was 2009-12-27T08:11:12Z!cyd@stupidchicken.com.)
Committer/author email addresses are generally correct for the Committer/author email addresses are generally correct for the
transition day, not necessarily when the comit was originally transition day, not necessarily when the comit was originally made.
made.
2014-11-10 Glenn Morris <rgm@gnu.org> 2014-11-10 Glenn Morris <rgm@gnu.org>
......
2014-11-16 Glenn Morris <rgm@gnu.org>
* update_autogen: Auto-detect VCS in use.
(vcs): New variable.
(status, commit, main): Handle git.
2014-11-13 Andreas Schwab <schwab@suse.de> 2014-11-13 Andreas Schwab <schwab@suse.de>
* make-tarball.txt: Make annotated tag and push it out. * make-tarball.txt: Make annotated tag and push it out.
...@@ -10,8 +16,8 @@ ...@@ -10,8 +16,8 @@
2014-11-10 Eli Zaretskii <eliz@gnu.org> 2014-11-10 Eli Zaretskii <eliz@gnu.org>
* unidata/Makefile.in (${top_srcdir}/src/macuvs.h): Use * unidata/Makefile.in (${top_srcdir}/src/macuvs.h):
unmsys--file-name. (Bug#18955) Use unmsys--file-name. (Bug#18955)
2014-11-10 Glenn Morris <rgm@gnu.org> 2014-11-10 Glenn Morris <rgm@gnu.org>
...@@ -28,7 +34,7 @@ ...@@ -28,7 +34,7 @@
* grammars/c.by (template-type): Add :template-specifier and * grammars/c.by (template-type): Add :template-specifier and
:typevar to capture extra details about the template. :typevar to capture extra details about the template.
(opt-post-fcn-modifiers): Splice in the found symbol into the (opt-post-fcn-modifiers): Splice in the found symbol into the
return value correctly. return value correctly.
(QUESTION): New punctuation. (QUESTION): New punctuation.
(expression): Add ternary conditional support. (expression): Add ternary conditional support.
...@@ -36,8 +42,8 @@ ...@@ -36,8 +42,8 @@
* grammars/scheme.by (MODULE): New token. * grammars/scheme.by (MODULE): New token.
(scheme): Handle expanding the MODULE tag. (scheme): Handle expanding the MODULE tag.
(scheme-list): Remove closeparen required match. (scheme-list): Remove closeparen required match.
(scheme-in-list): Remove extraneous matches for DEFINE. Add (scheme-in-list): Remove extraneous matches for DEFINE.
support for MODULE Simplify matching for code & make work. Add support for MODULE Simplify matching for code & make work.
(name-args, name-arg-list, name-arg-expand): Make it work. (name-args, name-arg-list, name-arg-expand): Make it work.
2014-11-09 David Engster <dengste@eml.cc> 2014-11-09 David Engster <dengste@eml.cc>
......
...@@ -47,7 +47,9 @@ cd $PD ...@@ -47,7 +47,9 @@ cd $PD
cd ../ cd ../
[ -d admin ] || die "Could not locate admin directory" [ -d admin ] || die "Could not locate admin directory"
if [ -d .git ]; then if [ -d .bzr ]; then
vcs=bzr
elif [ -d .git ]; then
vcs=git vcs=git
else else
die "Cannot determine vcs" die "Cannot determine vcs"
...@@ -303,6 +305,9 @@ EOF ...@@ -303,6 +305,9 @@ EOF
modified=$(status $basegen) || die modified=$(status $basegen) || die
## bzr status output is always relative to top-level, not PWD.
[ "$vcs" = "bzr" ] && cd $oldpwd
commit "generated" $modified || die "commit error" commit "generated" $modified || die "commit error"
exit 0 exit 0
...@@ -374,7 +379,11 @@ echo "Checking status of loaddef files..." ...@@ -374,7 +379,11 @@ echo "Checking status of loaddef files..."
## It probably would be fine to just check+commit lisp/, since ## It probably would be fine to just check+commit lisp/, since
## making autoloads should not effect any other files. But better ## making autoloads should not effect any other files. But better
## safe than sorry. ## safe than sorry.
modified=$(status $genfiles $ldefs_out) || die modified=$(status $genfiles ${ldefs_out#lisp/}) || die
## bzr status output is always relative to top-level, not PWD.
[ "$vcs" = "bzr" ] && cd ../
commit "loaddefs" $modified || die "commit error" commit "loaddefs" $modified || die "commit error"
......
2014-11-16 Andreas Schwab <schwab@linux-m68k.org>
* version.el (emacs-repository-get-version): Use git rev-parse
instead of git log.
2014-11-16 Fabián Ezequiel Gallina <fgallina@gnu.org>
* progmodes/python.el (python-indent-calculate-levels):
Fix indentation behavior multiline dedenter statement. (Bug#18432)
2014-11-16 Fabián Ezequiel Gallina <fgallina@gnu.org>
* progmodes/python.el (python-indent-region):
Use python-indent-line and skip special cases. (Bug#18843)
2014-11-16 Peder O. Klingenberg <peder@klingenberg.no> (tiny change)
* mail/emacsbug.el (report-emacs-bug): Make a better guess at
envelope-from when reporting through sendmail (bug#19054).
2014-11-16 Stefan Monnier <monnier@iro.umontreal.ca> 2014-11-16 Stefan Monnier <monnier@iro.umontreal.ca>
* emacs-lisp/backquote.el (backquote-process): Optimize away the ,' case. * emacs-lisp/backquote.el (backquote-process): Optimize away ",'".
2014-11-15 Lars Magne Ingebrigtsen <larsi@gnus.org> 2014-11-15 Lars Magne Ingebrigtsen <larsi@gnus.org>
...@@ -94,13 +114,13 @@ ...@@ -94,13 +114,13 @@
2014-11-10 Kenjiro NAKAYAMA <nakayamakenjiro@gmail.com> 2014-11-10 Kenjiro NAKAYAMA <nakayamakenjiro@gmail.com>
* net/eww.el(eww-form-file(defface)): New defface of file upload form. * net/eww.el(eww-form-file(defface)): New defface of file upload form.
(eww-submit-file): New key map of file upload. (eww-submit-file): New key map of file upload.
(eww-form-file): New file upload button and file name context. (eww-form-file): New file upload button and file name context.
(eww-select-file): Select file and display selected file name. (eww-select-file): Select file and display selected file name.
(eww-tag-input): Handle input tag of file type. (eww-tag-input): Handle input tag of file type.
(eww-update-field): Add point offset. (eww-update-field): Add point offset.
(eww-submit): Add submit with multipart/form-data. (eww-submit): Add submit with multipart/form-data.
2014-11-10 Lars Magne Ingebrigtsen <larsi@gnus.org> 2014-11-10 Lars Magne Ingebrigtsen <larsi@gnus.org>
......
2014-11-16 Adam Sjøgren <asjo@koldfront.dk>
* mml2015.el (mml2015-display-key-image): New variable.
2014-11-14 Lars Magne Ingebrigtsen <larsi@gnus.org> 2014-11-14 Lars Magne Ingebrigtsen <larsi@gnus.org>
* gnus-sum.el (gnus-summary-exit-no-update): Don't query about * gnus-sum.el (gnus-summary-exit-no-update): Don't query about
......
...@@ -137,6 +137,12 @@ This requires either the OS X \"open\" command, or the freedesktop ...@@ -137,6 +137,12 @@ This requires either the OS X \"open\" command, or the freedesktop
(concat "mailto:" to))) (concat "mailto:" to)))
(error "Subject, To or body not found"))))) (error "Subject, To or body not found")))))
;; It's the default mail mode, so it seems OK to use its features.
(autoload 'message-bogus-recipient-p "message")
(autoload 'message-make-address "message")
(defvar message-send-mail-function)
(defvar message-sendmail-envelope-from)
;;;###autoload ;;;###autoload
(defun report-emacs-bug (topic &optional unused) (defun report-emacs-bug (topic &optional unused)
"Report a bug in GNU Emacs. "Report a bug in GNU Emacs.
...@@ -164,7 +170,12 @@ Prompts for bug subject. Leaves you in a mail buffer." ...@@ -164,7 +170,12 @@ Prompts for bug subject. Leaves you in a mail buffer."
;; that report-emacs-bug-orig-text remains valid. (Bug#5178) ;; that report-emacs-bug-orig-text remains valid. (Bug#5178)
(message-sort-headers) (message-sort-headers)
;; Stop message-mode stealing the properties we will add. ;; Stop message-mode stealing the properties we will add.
(set (make-local-variable 'message-strip-special-text-properties) nil)) (set (make-local-variable 'message-strip-special-text-properties) nil)
;; Make sure we default to the From: address as envelope when sending
;; through sendmail.
(when (and (not message-sendmail-envelope-from)
(message-bogus-recipient-p (message-make-address)))
(set (make-local-variable 'message-sendmail-envelope-from) 'header)))
(rfc822-goto-eoh) (rfc822-goto-eoh)
(forward-line 1) (forward-line 1)
;; Move the mail signature to the proper place. ;; Move the mail signature to the proper place.
...@@ -346,10 +357,6 @@ usually do not have translators for other languages.\n\n"))) ...@@ -346,10 +357,6 @@ usually do not have translators for other languages.\n\n")))
(define-obsolete-function-alias 'report-emacs-bug-info 'info-emacs-bug "24.3") (define-obsolete-function-alias 'report-emacs-bug-info 'info-emacs-bug "24.3")
;; It's the default mail mode, so it seems OK to use its features.
(autoload 'message-bogus-recipient-p "message")
(defvar message-send-mail-function)
(defun report-emacs-bug-hook () (defun report-emacs-bug-hook ()
"Do some checking before sending a bug report." "Do some checking before sending a bug report."
(save-excursion (save-excursion
......
...@@ -964,7 +964,11 @@ START is the buffer position where the sexp starts." ...@@ -964,7 +964,11 @@ START is the buffer position where the sexp starts."
(defun python-indent-calculate-levels () (defun python-indent-calculate-levels ()
"Calculate `python-indent-levels' and reset `python-indent-current-level'." "Calculate `python-indent-levels' and reset `python-indent-current-level'."
(if (not (python-info-dedenter-statement-p)) (if (or (python-info-continuation-line-p)
(not (python-info-dedenter-statement-p)))
;; XXX: This asks for a refactor. Even if point is on a
;; dedenter statement, it could be multiline and in that case
;; the continuation lines should be indented with normal rules.
(let* ((indentation (python-indent-calculate-indentation)) (let* ((indentation (python-indent-calculate-indentation))
(remainder (% indentation python-indent-offset)) (remainder (% indentation python-indent-offset))
(steps (/ (- indentation remainder) python-indent-offset))) (steps (/ (- indentation remainder) python-indent-offset)))
...@@ -1070,24 +1074,34 @@ Called from a program, START and END specify the region to indent." ...@@ -1070,24 +1074,34 @@ Called from a program, START and END specify the region to indent."
(or (bolp) (forward-line 1)) (or (bolp) (forward-line 1))
(while (< (point) end) (while (< (point) end)
(or (and (bolp) (eolp)) (or (and (bolp) (eolp))
(let (word) (when (and
(forward-line -1) ;; Skip if previous line is empty or a comment.
(back-to-indentation) (save-excursion
(setq word (current-word)) (let ((line-is-comment-p
(forward-line 1) (python-info-current-line-comment-p)))
(when (and word (forward-line -1)
;; Don't mess with strings, unless it's the (not
;; enclosing set of quotes. (or (and (python-info-current-line-comment-p)
(or (not (python-syntax-context 'string)) ;; Unless this line is a comment too.
(eq (not line-is-comment-p))
(syntax-after (python-info-current-line-empty-p)))))
(+ (1- (point)) ;; Don't mess with strings, unless it's the
(current-indentation) ;; enclosing set of quotes.
(python-syntax-count-quotes (char-after) (point)))) (or (not (python-syntax-context 'string))
(string-to-syntax "|")))) (eq
(beginning-of-line) (syntax-after
(delete-horizontal-space) (+ (1- (point))
(indent-to (python-indent-calculate-indentation))))) (current-indentation)
(python-syntax-count-quotes (char-after) (point))))
(string-to-syntax "|")))
;; Skip if current line is a block start, a
;; dedenter or block ender.
(save-excursion
(back-to-indentation)
(not (looking-at
(python-rx
(or block-start dedenter block-ender))))))
(python-indent-line)))
(forward-line 1)) (forward-line 1))
(move-marker end nil)))) (move-marker end nil))))
......
...@@ -187,8 +187,8 @@ only ask the VCS if we cannot find any information ourselves." ...@@ -187,8 +187,8 @@ only ask the VCS if we cannot find any information ourselves."
(let ((default-directory (file-name-as-directory dir))) (let ((default-directory (file-name-as-directory dir)))
(and (eq 0 (and (eq 0
(condition-case nil (condition-case nil
(call-process "git" nil '(t nil) nil "log" (call-process "git" nil '(t nil) nil "rev-parse"
"-1" "--pretty=format:%H") "HEAD")
(error nil))) (error nil)))
(not (zerop (buffer-size))) (not (zerop (buffer-size)))
(replace-regexp-in-string "\n" "" (buffer-string)))))))) (replace-regexp-in-string "\n" "" (buffer-string))))))))
......
2014-11-16 Eli Zaretskii <eliz@gnu.org>
* window.c (window_scroll_pixel_based): Avoid truncation/rounding
errors in computing the number of pixels to scroll. Suggested by
Kelly Dean <kelly@prtime.org>. (Bug#19060)
2014-11-16 Jan Djärv <jan.h.d@swipnet.se>
* nsmenu.m (update_frame_tool_bar): If tool bar changes height,
call updateFrameSize.
* nsterm.m (setFrame:): Remove call to display (Bug#18757).
2014-11-16 Jan Djärv <jan.h.d@swipnet.se>
* nsfns.m (x_set_foreground_color, x_set_background_color)
(x_set_cursor_color, Fxw_color_values): Block/unblock input,
use SET_FRAME_GARBAGED instead of redraw_frame (Bug#19036).
2014-11-15 Jan Djärv <jan.h.d@swipnet.se> 2014-11-15 Jan Djärv <jan.h.d@swipnet.se>
* nsterm.m (ns_send_appdefined): Check for application defined * nsterm.m (ns_send_appdefined): Check for application defined
...@@ -6,7 +25,7 @@ ...@@ -6,7 +25,7 @@
2014-11-14 David Reitter <david.reitter@gmail.com> 2014-11-14 David Reitter <david.reitter@gmail.com>
* nsterm.m (run): set timeout for event loop to prevent hang. * nsterm.m (run): Set timeout for event loop to prevent hang.
(Bug#18993) (Bug#18993)
2014-11-14 Paul Eggert <eggert@cs.ucla.edu> 2014-11-14 Paul Eggert <eggert@cs.ucla.edu>
...@@ -2856,8 +2875,7 @@ ...@@ -2856,8 +2875,7 @@
Consider horizontal scroll bar. Consider horizontal scroll bar.
(check_frame_size, adjust_window_margins): Remove functions and (check_frame_size, adjust_window_margins): Remove functions and
corresponding calls. corresponding calls.
(set_window_buffer): Initialize old_pointm and horizontal scroll (set_window_buffer): Initialize old_pointm and horizontal scroll bars.
bars.
(temp_output_buffer_show): Reset hscroll related fields. (temp_output_buffer_show): Reset hscroll related fields.
Initialize old_pointm. Initialize old_pointm.
(make_parent_window): Initialize old_pointm. (make_parent_window): Initialize old_pointm.
......
...@@ -280,9 +280,14 @@ Turn the input menu (an NSMenu) into a lisp list for tracking on lisp side ...@@ -280,9 +280,14 @@ Turn the input menu (an NSMenu) into a lisp list for tracking on lisp side
NSColor *col; NSColor *col;
EmacsCGFloat r, g, b, alpha; EmacsCGFloat r, g, b, alpha;
/* Must block_input, because ns_lisp_to_color does block/unblock_input
which means that col may be deallocated in its unblock_input if there
is user input, unless we also block_input. */
block_input ();
if (ns_lisp_to_color (arg, &col)) if (ns_lisp_to_color (arg, &col))
{ {
store_frame_param (f, Qforeground_color, oldval); store_frame_param (f, Qforeground_color, oldval);
unblock_input ();
error ("Unknown color"); error ("Unknown color");
} }
...@@ -299,8 +304,9 @@ Turn the input menu (an NSMenu) into a lisp list for tracking on lisp side ...@@ -299,8 +304,9 @@ Turn the input menu (an NSMenu) into a lisp list for tracking on lisp side
update_face_from_frame_parameter (f, Qforeground_color, arg); update_face_from_frame_parameter (f, Qforeground_color, arg);
/*recompute_basic_faces (f); */ /*recompute_basic_faces (f); */
if (FRAME_VISIBLE_P (f)) if (FRAME_VISIBLE_P (f))
redraw_frame (f); SET_FRAME_GARBAGED (f);
} }
unblock_input ();
} }
...@@ -312,9 +318,11 @@ Turn the input menu (an NSMenu) into a lisp list for tracking on lisp side ...@@ -312,9 +318,11 @@ Turn the input menu (an NSMenu) into a lisp list for tracking on lisp side
NSView *view = FRAME_NS_VIEW (f); NSView *view = FRAME_NS_VIEW (f);
EmacsCGFloat r, g, b, alpha; EmacsCGFloat r, g, b, alpha;
block_input ();
if (ns_lisp_to_color (arg, &col)) if (ns_lisp_to_color (arg, &col))
{ {
store_frame_param (f, Qbackground_color, oldval); store_frame_param (f, Qbackground_color, oldval);
unblock_input ();
error ("Unknown color"); error ("Unknown color");
} }
...@@ -351,8 +359,9 @@ Turn the input menu (an NSMenu) into a lisp list for tracking on lisp side ...@@ -351,8 +359,9 @@ Turn the input menu (an NSMenu) into a lisp list for tracking on lisp side
} }
if (FRAME_VISIBLE_P (f)) if (FRAME_VISIBLE_P (f))
redraw_frame (f); SET_FRAME_GARBAGED (f);
} }
unblock_input ();
} }
...@@ -361,9 +370,11 @@ Turn the input menu (an NSMenu) into a lisp list for tracking on lisp side ...@@ -361,9 +370,11 @@ Turn the input menu (an NSMenu) into a lisp list for tracking on lisp side
{ {
NSColor *col; NSColor *col;
block_input ();
if (ns_lisp_to_color (arg, &col)) if (ns_lisp_to_color (arg, &col))
{ {
store_frame_param (f, Qcursor_color, oldval); store_frame_param (f, Qcursor_color, oldval);
unblock_input ();
error ("Unknown color"); error ("Unknown color");
} }
...@@ -376,6 +387,7 @@ Turn the input menu (an NSMenu) into a lisp list for tracking on lisp side ...@@ -376,6 +387,7 @@ Turn the input menu (an NSMenu) into a lisp list for tracking on lisp side
x_update_cursor (f, 1); x_update_cursor (f, 1);
} }
update_face_from_frame_parameter (f, Qcursor_color, arg); update_face_from_frame_parameter (f, Qcursor_color, arg);
unblock_input ();
} }
...@@ -2331,11 +2343,16 @@ and GNUstep implementations ("distributor-specific release ...@@ -2331,11 +2343,16 @@ and GNUstep implementations ("distributor-specific release
check_window_system (NULL); check_window_system (NULL);
CHECK_STRING (color); CHECK_STRING (color);
block_input ();
if (ns_lisp_to_color (color, &col)) if (ns_lisp_to_color (color, &col))
return Qnil; {
unblock_input ();
return Qnil;
}
[[col colorUsingDefaultColorSpace] [[col colorUsingDefaultColorSpace]
getRed: &red green: &green blue: &blue alpha: &alpha]; getRed: &red green: &green blue: &blue alpha: &alpha];
unblock_input ();
return list3i (lrint (red * 65280), lrint (green * 65280), return list3i (lrint (red * 65280), lrint (green * 65280),
lrint (blue * 65280)); lrint (blue * 65280));
} }
......
...@@ -1026,10 +1026,13 @@ - (Lisp_Object)runMenuAt: (NSPoint)p forFrame: (struct frame *)f ...@@ -1026,10 +1026,13 @@ - (Lisp_Object)runMenuAt: (NSPoint)p forFrame: (struct frame *)f
EmacsView *view = FRAME_NS_VIEW (f); EmacsView *view = FRAME_NS_VIEW (f);
NSWindow *window = [view window]; NSWindow *window = [view window];