emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] trunk r117468: Merge from emacs-24; up to r117340


From: Glenn Morris
Subject: [Emacs-diffs] trunk r117468: Merge from emacs-24; up to r117340
Date: Thu, 03 Jul 2014 06:01:54 +0000
User-agent: Bazaar (2.6b2)

------------------------------------------------------------
revno: 117468 [merge]
revision-id: address@hidden
parent: address@hidden
parent: address@hidden
committer: Glenn Morris <address@hidden>
branch nick: trunk
timestamp: Wed 2014-07-02 23:00:53 -0700
message:
  Merge from emacs-24; up to r117340
modified:
  doc/emacs/ChangeLog            changelog-20091113204419-o5vbwnq5f7feedwu-6227
  doc/emacs/help.texi            help.texi-20091113204419-o5vbwnq5f7feedwu-6256
  doc/emacs/trouble.texi         
trouble.texi-20091113204419-o5vbwnq5f7feedwu-6279
  doc/lispintro/ChangeLog        changelog-20091113204419-o5vbwnq5f7feedwu-6128
  doc/lispintro/emacs-lisp-intro.texi 
emacslispintro.texi-20091113204419-o5vbwnq5f7feedwu-6143
  doc/lispref/ChangeLog          changelog-20091113204419-o5vbwnq5f7feedwu-6155
  doc/lispref/help.texi          help.texi-20091113204419-o5vbwnq5f7feedwu-6185
  doc/misc/ChangeLog             changelog-20091113204419-o5vbwnq5f7feedwu-6331
  doc/misc/idlwave.texi          
idlwave.texi-20091113204419-o5vbwnq5f7feedwu-6307
  doc/misc/info.texi             info.texi-20091113204419-o5vbwnq5f7feedwu-6308
  doc/misc/mh-e.texi             mhe.texi-20091113204419-o5vbwnq5f7feedwu-6311
  etc/ChangeLog                  changelog-20091113204419-o5vbwnq5f7feedwu-1485
  etc/refcards/calccard.tex      
calccard.tex-20091113204419-o5vbwnq5f7feedwu-5124
  lisp/ChangeLog                 changelog-20091113204419-o5vbwnq5f7feedwu-1432
  lisp/cus-edit.el               cusedit.el-20091113204419-o5vbwnq5f7feedwu-1091
  lisp/desktop.el                desktop.el-20091113204419-o5vbwnq5f7feedwu-591
  lisp/ehelp.el                  ehelp.el-20091113204419-o5vbwnq5f7feedwu-65
  lisp/emacs-lisp/pp.el          pp.el-20091113204419-o5vbwnq5f7feedwu-781
  lisp/emulation/viper.el        viper.el-20091113204419-o5vbwnq5f7feedwu-841
  lisp/finder.el                 finder.el-20091113204419-o5vbwnq5f7feedwu-499
  lisp/help.el                   help.el-20091113204419-o5vbwnq5f7feedwu-280
  lisp/mouse.el                  mouse.el-20091113204419-o5vbwnq5f7feedwu-123
  lisp/progmodes/f90.el          f90.el-20091113204419-o5vbwnq5f7feedwu-827
  lisp/progmodes/idlw-complete-structtag.el 
idlwcompletestructta-20091113204419-o5vbwnq5f7feedwu-3825
  lisp/progmodes/idlw-help.el    
idlwhelp.el-20091113204419-o5vbwnq5f7feedwu-3302
  lisp/progmodes/idlw-shell.el   
idlwshell.el-20091113204419-o5vbwnq5f7feedwu-1739
  lisp/progmodes/idlw-toolbar.el 
idlwtoolbar.el-20091113204419-o5vbwnq5f7feedwu-1740
  lisp/progmodes/idlwave.el      idlwave.el-20091113204419-o5vbwnq5f7feedwu-1731
  lisp/progmodes/pascal.el       pascal.el-20091113204419-o5vbwnq5f7feedwu-636
  lisp/progmodes/python.el       python.el-20091113204419-o5vbwnq5f7feedwu-3008
  lisp/ps-def.el                 psdef.el-20091113204419-o5vbwnq5f7feedwu-8533
  lisp/vc/ediff-mult.el          
ediffmult.el-20091113204419-o5vbwnq5f7feedwu-904
  lisp/vc/ediff-ptch.el          
ediffptch.el-20091113204419-o5vbwnq5f7feedwu-987
  lisp/vc/ediff.el               ediff.el-20091113204419-o5vbwnq5f7feedwu-769
  lisp/vc/log-edit.el            logedit.el-20091113204419-o5vbwnq5f7feedwu-1776
  lisp/vc/vc-git.el              vcgit.el-20091113204419-o5vbwnq5f7feedwu-5070
  src/ChangeLog                  changelog-20091113204419-o5vbwnq5f7feedwu-1438
  src/dispextern.h               
dispextern.h-20091113204419-o5vbwnq5f7feedwu-218
  src/dispnew.c                  dispnew.c-20091113204419-o5vbwnq5f7feedwu-258
  src/frame.c                    frame.c-20091113204419-o5vbwnq5f7feedwu-243
  src/menu.c                     menu.c-20091113204419-o5vbwnq5f7feedwu-8676
  src/window.h                   window.h-20091113204419-o5vbwnq5f7feedwu-271
  src/xdisp.c                    xdisp.c-20091113204419-o5vbwnq5f7feedwu-240
  src/xfaces.c                   xfaces.c-20091113204419-o5vbwnq5f7feedwu-560
  test/ChangeLog                 changelog-20091113204419-o5vbwnq5f7feedwu-8588
  test/automated/python-tests.el 
pythontests.el-20130220195218-kqcioz3fssz9hwe1-1
=== modified file 'doc/emacs/ChangeLog'
--- a/doc/emacs/ChangeLog       2014-06-23 06:43:20 +0000
+++ b/doc/emacs/ChangeLog       2014-07-03 06:00:53 +0000
@@ -1,3 +1,9 @@
+2014-07-03  Glenn Morris  <address@hidden>
+
+       * help.texi (Misc Help):
+       * trouble.texi (Checklist): "Online" help doesn't mean what it
+       used to any more.
+
 2014-06-23  Glenn Morris  <address@hidden>
 
        * Makefile.in (%.texi): Disable implicit rules.

=== modified file 'doc/emacs/help.texi'
--- a/doc/emacs/help.texi       2014-06-08 23:41:43 +0000
+++ b/doc/emacs/help.texi       2014-07-03 06:00:53 +0000
@@ -490,8 +490,7 @@
 @kindex C-h i
 @findex info
 @cindex Info
address@hidden manuals, on-line
address@hidden on-line manuals
address@hidden manuals, included
   @kbd{C-h i} (@code{info}) runs the Info program, which browses
 structured documentation files.  The entire Emacs manual is available
 within Info, along with many other manuals for the GNU system.  Type

=== modified file 'doc/emacs/trouble.texi'
--- a/doc/emacs/trouble.texi    2014-05-02 12:28:10 +0000
+++ b/doc/emacs/trouble.texi    2014-06-29 02:33:50 +0000
@@ -847,7 +847,7 @@
 @item
 If the bug is that the Emacs Manual or the Emacs Lisp Reference Manual
 fails to describe the actual behavior of Emacs, or that the text is
-confusing, copy in the text from the online manual which you think is
+confusing, copy in the text from the manual which you think is
 at fault.  If the section is small, just the section name is enough.
 
 @item

=== modified file 'doc/lispintro/ChangeLog'
--- a/doc/lispintro/ChangeLog   2014-06-23 06:43:20 +0000
+++ b/doc/lispintro/ChangeLog   2014-07-03 06:00:53 +0000
@@ -1,3 +1,8 @@
+2014-07-03  Glenn Morris  <address@hidden>
+
+       * emacs-lisp-intro.texi (Note for Novices, Finding More, Conclusion):
+       "Online" help doesn't mean what it used to any more.
+
 2014-06-23  Glenn Morris  <address@hidden>
 
        * Makefile.in (%.texi): Disable implicit rules.

=== modified file 'doc/lispintro/emacs-lisp-intro.texi'
--- a/doc/lispintro/emacs-lisp-intro.texi       2014-06-10 02:20:31 +0000
+++ b/doc/lispintro/emacs-lisp-intro.texi       2014-07-03 06:00:53 +0000
@@ -903,7 +903,7 @@
 If you don't know GNU Emacs, you can still read this document
 profitably.  However, I recommend you learn Emacs, if only to learn to
 move around your computer screen.  You can teach yourself how to use
-Emacs with the on-line tutorial.  To use it, type @kbd{C-h t}.  (This
+Emacs with the built-in tutorial.  To use it, type @kbd{C-h t}.  (This
 means you press and release the @key{CTRL} key and the @kbd{h} at the
 same time, and then press and release @kbd{t}.)
 
@@ -4657,7 +4657,7 @@
 rather than a general library.  Each library, or file, contains
 functions that relate to a particular topic or activity, such as
 @file{abbrev.el} for handling abbreviations and other typing
-shortcuts, and @file{help.el} for on-line help.  (Sometimes several
+shortcuts, and @file{help.el} for help.  (Sometimes several
 libraries provide code for a single activity, as the various
 @address@hidden files provide code for reading electronic mail.)
 In @cite{The GNU Emacs Manual}, you will see sentences such as ``The
@@ -18685,9 +18685,9 @@
 experts, but for people who know what you know.  (The @cite{Reference
 Manual} comes with the standard GNU Emacs distribution.  Like this
 introduction, it comes as a Texinfo source file, so you can read it
-on-line and as a typeset, printed book.)
+on your computer and as a typeset, printed book.)
 
-Go to the other on-line help that is part of GNU Emacs: the on-line
+Go to the other built-in help that is part of GNU Emacs: the built-in
 documentation for all functions and variables, and @code{find-tag},
 the program that takes you to sources.
 

=== modified file 'doc/lispref/ChangeLog'
--- a/doc/lispref/ChangeLog     2014-07-02 01:49:31 +0000
+++ b/doc/lispref/ChangeLog     2014-07-03 06:00:53 +0000
@@ -1,3 +1,8 @@
+2014-07-03  Glenn Morris  <address@hidden>
+
+       * help.texi (Help Functions): "Online" help doesn't mean what it
+       used to any more.
+
 2014-07-02  Stefan Monnier  <address@hidden>
 
        * keymaps.texi (Key Lookup): Remove mention of indirect entries.

=== modified file 'doc/lispref/help.texi'
--- a/doc/lispref/help.texi     2014-03-16 09:26:58 +0000
+++ b/doc/lispref/help.texi     2014-06-29 02:33:50 +0000
@@ -508,7 +508,7 @@
 @node Help Functions
 @section Help Functions
 
-  Emacs provides a variety of on-line help functions, all accessible to
+  Emacs provides a variety of built-in help functions, all accessible to
 the user as subcommands of the prefix @kbd{C-h}.  For more information
 about them, see @ref{Help, , Help, emacs, The GNU Emacs Manual}.  Here
 we describe some program-level interfaces to the same information.

=== modified file 'doc/misc/ChangeLog'
--- a/doc/misc/ChangeLog        2014-06-24 07:15:26 +0000
+++ b/doc/misc/ChangeLog        2014-07-03 06:00:53 +0000
@@ -1,3 +1,10 @@
+2014-07-03  Glenn Morris  <address@hidden>
+
+       * info.texi, mh-e.texi: "Online help" doesn't mean what it
+       used to any more.
+
+       * idlwave.texi (Introduction): Comment out dead http screenshot links.
+
 2014-06-24  Leo Liu  <address@hidden>
 
        * dired-x.texi (Omitting Files in Dired, Omitting Variables):

=== modified file 'doc/misc/idlwave.texi'
--- a/doc/misc/idlwave.texi     2014-06-10 02:20:31 +0000
+++ b/doc/misc/idlwave.texi     2014-07-03 06:00:53 +0000
@@ -239,24 +239,27 @@
 And much, much more...
 @end itemize
 
address@hidden Dead links, 2014/06.
address@hidden
 @ifnottex
 @cindex Screenshots
 Here are a number of screenshots showing IDLWAVE in action:
 
 @itemize @bullet
 @item
address@hidden://idlwave.org/screenshots/emacs_21_nav.gif,An IDLWAVE buffer}
address@hidden
address@hidden://idlwave.org/screenshots/emacs_21_keys.gif,A keyword being 
completed}
address@hidden
address@hidden://idlwave.org/screenshots/emacs_21_help.gif,Online help text.}
address@hidden
address@hidden://idlwave.org/screenshots/emacs_21_ri.gif,Routine information 
displayed}
address@hidden
address@hidden://idlwave.org/screenshots/emacs_21_bp.gif,Debugging code
address@hidden://github.com/jdtsmith/idlwave/screenshots/emacs_21_nav.gif,An 
IDLWAVE buffer}
address@hidden
address@hidden://github.com/jdtsmith/idlwave/screenshots/emacs_21_keys.gif,A 
keyword being completed}
address@hidden
address@hidden://github.com/jdtsmith/idlwave/screenshots/emacs_21_help.gif,Online
 help text.}
address@hidden
address@hidden://github.com/jdtsmith/idlwave/screenshots/emacs_21_ri.gif,Routine
 information displayed}
address@hidden
address@hidden://github.com/jdtsmith/idlwave/screenshots/emacs_21_bp.gif,Debugging
 code
 stopped at a breakpoint}
 @end itemize
 @end ifnottex
address@hidden ignore
 
 IDLWAVE is the distant successor to the @file{idl.el} and
 @file{idl-shell.el} files written by Chris Chase.  The modes and files

=== modified file 'doc/misc/info.texi'
--- a/doc/misc/info.texi        2014-06-08 19:30:13 +0000
+++ b/doc/misc/info.texi        2014-06-29 02:33:50 +0000
@@ -12,7 +12,7 @@
 @comment %**end of header
 
 @copying
-This file describes how to use Info, the on-line, menu-driven GNU
+This file describes how to use Info, the menu-driven GNU
 documentation system.
 
 Copyright @copyright{} 1989, 1992, 1996--2014 Free Software Foundation, Inc.
@@ -51,7 +51,7 @@
 @node Top
 @top Info: An Introduction
 
-The GNU Project distributes most of its on-line manuals in the
+The GNU Project distributes most of its manuals in the
 @dfn{Info format}, which you read using an @dfn{Info reader}.  You are
 probably using an Info reader to read this now.
 
@@ -98,7 +98,7 @@
 about them.  Reading it on paper or with an HTML browser is less
 effective, since you must take it on faith that the commands described
 really do what the manual says.  By all means go through this manual
-now that you have it; but please try going through the on-line version
+now that you have it; but please try going through the Info version
 as well.
 
 @cindex Info reader, how to invoke

=== modified file 'doc/misc/mh-e.texi'
--- a/doc/misc/mh-e.texi        2014-06-10 02:20:31 +0000
+++ b/doc/misc/mh-e.texi        2014-07-03 06:00:53 +0000
@@ -227,7 +227,7 @@
 @kindex C-h t
 
 If you don't already use GNU Emacs but want to learn more, you can
-read an online tutorial by starting GNU Emacs and typing @kbd{C-h t}
+read a built-in tutorial by starting GNU Emacs and typing @kbd{C-h t}
 (@code{help-with-tutorial}). (To learn about this notation, see
 @ref{Conventions}.) If you want to take the plunge, consult the
 @iftex
@@ -1066,9 +1066,9 @@
 about every MH-E command and option.
 
 @cindex Emacs, info
address@hidden Emacs, online help
address@hidden Emacs, built-in help
 @cindex info
address@hidden online help
address@hidden built-in help
 @findex describe-mode
 @findex mh-help
 @kindex ?
@@ -1083,12 +1083,12 @@
 like to rebind the keys, the command summaries also list the
 associated Emacs Lisp function. Furthermore, even if you're stranded
 on a desert island with a laptop and are without your manuals, you can
-get a summary of all these commands with GNU Emacs online help: use
+get a summary of all these commands with GNU Emacs built-in help: use
 @kbd{C-h m} (@code{describe-mode}) for a brief summary of commands,
 @kbd{?} (@code{mh-help}) for an even briefer address@hidden
 help appears in a buffer called @file{*MH-E Help*}
 (@pxref{Miscellaneous}).} (@kbd{C-c ?} in MH-Letter mode), or @kbd{C-h
-i} to read this manual via Info. The online help is quite good; try
+i} to read this manual via Info. The built-in help is quite good; try
 running @kbd{C-h C-h}. This brings up a list of available help topics,
 one of which displays the documentation for a given key (like @kbd{C-h
 k C-n}). Another useful help feature is to view the manual section
@@ -1120,21 +1120,21 @@
 @c Yes, some of the stuff in the following sections is redundant, but
 @c TeX barfs if the @ifs are inside the @footnote.
 @iftex
address@hidden @cite{GNU Emacs Lisp Reference Manual} may be available
-online in the Info system by typing @kbd{C-h i m Emacs Lisp
address@hidden @cite{GNU Emacs Lisp Reference Manual} should be available
+via the Info system by typing @kbd{C-h i m Emacs Lisp
 @key{RET}}. It is also available online at @*
 @uref{http://www.gnu.org/software/emacs/manual/elisp.html}.}
 @end iftex
 @ifinfo
 @address@hidden, The GNU Emacs Lisp Reference Manual, , elisp, GNU
-Emacs Lisp Reference Manual}, which may be available online in the
+Emacs Lisp Reference Manual}, which should be available via the
 Info system. It is also available online at
 @uref{http://www.gnu.org/software/emacs/manual/elisp.html}.}
 @end ifinfo
 @ifhtml
 @footnote{The
 @uref{http://www.gnu.org/software/emacs/manual/elisp.html,
-The GNU Emacs Lisp Reference Manual} may also be available online in
+The GNU Emacs Lisp Reference Manual} should be available via
 the Info system by typing @kbd{C-h i m Emacs Lisp @key{RET}}.}
 @end ifhtml
 and you can look at the code itself for examples. Look in the Emacs
@@ -1142,7 +1142,7 @@
 @file{/usr/local/share/emacs/lisp/mh-e}) and find all the @file{mh-*.el}
 files there. When calling MH-E and other Emacs Lisp functions directly
 from Emacs Lisp code, you'll need to know the correct arguments. Use
-the online help for this. For example, try @kbd{C-h f
+the built-in help for this. For example, try @kbd{C-h f
 mh-execute-commands @key{RET}}. If you write your own functions,
 please do not prefix your symbols (variables and functions) with
 @samp{mh-}. This prefix is reserved for the MH-E package. To avoid
@@ -6405,7 +6405,7 @@
 The Menu Bar} in @cite{The GNU Emacs Manual}.
 @end ifhtml
 
-The Emacs manual describes how to get online help for a particular
+The Emacs manual describes how to get help for a particular
 menu item. You can also look up a menu item in the index of this
 manual in two ways: all of the menu items are listed alphabetically,
 and you can also browse all of the items under the index entry

=== modified file 'etc/ChangeLog'
--- a/etc/ChangeLog     2014-06-28 17:27:29 +0000
+++ b/etc/ChangeLog     2014-07-03 06:00:53 +0000
@@ -1,3 +1,8 @@
+2014-07-03  Glenn Morris  <address@hidden>
+
+       * refcards/calccard.tex (section{Getting Help}):
+       Meaning of "on-line" has changed.
+
 2014-06-28  Glenn Morris  <address@hidden>
 
        * publicsuffix.txt: Update from source.

=== modified file 'etc/refcards/calccard.tex'
--- a/etc/refcards/calccard.tex 2014-01-01 07:43:34 +0000
+++ b/etc/refcards/calccard.tex 2014-06-29 02:33:50 +0000
@@ -297,7 +297,7 @@
 \key{describe key briefly}{h c}
 \key{describe key fully}{h k}
 \key{describe function or command}{h f}
-\key{read on-line manual}{h i{\rm\enskip or\enskip}\calcprefix i}
+\key{read Info manual}{h i{\rm\enskip or\enskip}\calcprefix i}
 \key{read full Calc summary}{h s{\rm\enskip or\enskip}\calcprefix s}
 
 \section{Error Recovery}

=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2014-07-02 00:57:53 +0000
+++ b/lisp/ChangeLog    2014-07-03 06:00:53 +0000
@@ -1,3 +1,56 @@
+2014-07-03  Juri Linkov  <address@hidden>
+
+       * desktop.el (desktop-save): Rename arg `auto-save' to
+       `only-if-changed'.  Doc fix.  (Bug#17873)
+
+2014-07-03  Stefan Monnier  <address@hidden>
+
+       * mouse.el (mouse-yank-primary, mouse-yank-secondary):
+       Use insert-for-yank (bug#17271).
+
+2014-07-03  Leo Liu  <address@hidden>
+
+       * emacs-lisp/pp.el (pp-eval-expression, pp-eval-last-sexp):
+       Support lexical-binding.
+
+2014-07-03  Stefan Monnier  <address@hidden>
+
+       * vc/log-edit.el (log-edit-goto-eoh): New function.
+       (log-edit--match-first-line): Use it (bug#17861).
+
+2014-07-03  Glenn Morris  <address@hidden>
+
+       * vc/log-edit.el (log-edit-hook): Add missing :version.
+
+2014-07-03  Fabián Ezequiel Gallina  <address@hidden>
+
+       * progmodes/python.el (python-indent-post-self-insert-function):
+       Enhancements to electric indentation behavior inside
+       parens. (Bug#17658)
+
+2014-07-03  Stefan Monnier  <address@hidden>
+
+       * ps-def.el (ps-generate-postscript-with-faces1): Don't mess with
+       buffer-invisibility-spec (bug#17867).
+
+2014-07-03  Andreas Schwab  <address@hidden>
+
+       * vc/vc-git.el (vc-git-checkin): When operating on the whole tree
+       pass "-a".
+
+2014-07-03  Glenn Morris  <address@hidden>
+
+       * cus-edit.el (help):
+       * finder.el (finder-known-keywords):
+       * help.el (help-for-help-internal):
+       * vc/ediff-mult.el (ediff-meta-buffer-verbose-message)
+       (ediff-redraw-registry-buffer):
+       * vc/ediff-ptch.el (ediff-patch-file-internal):
+       Doc fixes re "online" help.  (Bug#17803)
+
+       * progmodes/idlwave.el (idlwave): Update url-link for custom group.
+       (idlwave-mode): Doc URL update.
+
 2014-07-01  Juri Linkov  <address@hidden>
 
        * man.el: Display man pages immediately and use process-filter

=== modified file 'lisp/cus-edit.el'
--- a/lisp/cus-edit.el  2014-02-10 01:34:22 +0000
+++ b/lisp/cus-edit.el  2014-06-29 02:33:50 +0000
@@ -324,7 +324,7 @@
   :group 'emacs)
 
 (defgroup help nil
-  "Support for on-line help systems."
+  "Support for Emacs help systems."
   :group 'emacs)
 
 (defgroup multimedia nil

=== modified file 'lisp/desktop.el'
--- a/lisp/desktop.el   2014-06-24 23:23:41 +0000
+++ b/lisp/desktop.el   2014-07-02 23:45:12 +0000
@@ -942,12 +942,13 @@
                            :predicate #'desktop--check-dont-save))))
 
 ;;;###autoload
-(defun desktop-save (dirname &optional release auto-save)
+(defun desktop-save (dirname &optional release only-if-changed)
   "Save the desktop in a desktop file.
 Parameter DIRNAME specifies where to save the desktop file.
 Optional parameter RELEASE says whether we're done with this desktop.
-If AUTO-SAVE is non-nil, compare the saved contents to the one last saved,
-and don't save the buffer if they are the same."
+If ONLY-IF-CHANGED is non-nil, compare the current desktop information
+to that in the desktop file, and if the desktop information has not
+changed since it was last saved then do not rewrite the file."
   (interactive (list
                 ;; Or should we just use (car desktop-path)?
                 (let ((default (if (member "." desktop-path)
@@ -1020,7 +1021,7 @@
 
          (setq default-directory desktop-dirname)
          ;; When auto-saving, avoid writing if nothing has changed since the 
last write.
-         (let* ((beg (and auto-save
+         (let* ((beg (and only-if-changed
                           (save-excursion
                             (goto-char (point-min))
                             ;; Don't check the header with changing timestamp

=== modified file 'lisp/ehelp.el'
--- a/lisp/ehelp.el     2014-02-10 01:34:22 +0000
+++ b/lisp/ehelp.el     2014-06-29 02:33:50 +0000
@@ -25,7 +25,7 @@
 ;;; Commentary:
 
 ;; This package provides a pre-packaged `Electric Help Mode' for
-;; browsing on-line help screens.  There is one entry point,
+;; browsing Emacs help screens.  There is one entry point,
 ;; `with-electric-help'; all you have to give it is a no-argument
 ;; function that generates the actual text of the help into the current
 ;; buffer.

=== modified file 'lisp/emacs-lisp/pp.el'
--- a/lisp/emacs-lisp/pp.el     2014-01-01 07:43:34 +0000
+++ b/lisp/emacs-lisp/pp.el     2014-07-02 05:05:50 +0000
@@ -129,7 +129,7 @@
   (interactive
    (list (read--expression "Eval: ")))
   (message "Evaluating...")
-  (setq values (cons (eval expression) values))
+  (setq values (cons (eval expression lexical-binding) values))
   (pp-display-expression (car values) "*Pp Eval Output*"))
 
 ;;;###autoload
@@ -165,7 +165,7 @@
 Ignores leading comment characters."
   (interactive "P")
   (if arg
-      (insert (pp-to-string (eval (pp-last-sexp))))
+      (insert (pp-to-string (eval (pp-last-sexp) lexical-binding)))
     (pp-eval-expression (pp-last-sexp))))
 
 ;;;###autoload

=== modified file 'lisp/emulation/viper.el'
--- a/lisp/emulation/viper.el   2014-01-27 02:02:28 +0000
+++ b/lisp/emulation/viper.el   2014-06-29 02:33:50 +0000
@@ -107,7 +107,7 @@
 ;;  ----------------
 ;;  Bug reports and ideas contributed by many users have helped
 ;;  improve Viper and the various versions of VIP.
-;;  See the on-line manual for a complete list of contributors.
+;;  See the manual for a complete list of contributors.
 ;;
 ;;
 ;;; Notes:

=== modified file 'lisp/finder.el'
--- a/lisp/finder.el    2014-03-14 20:41:01 +0000
+++ b/lisp/finder.el    2014-06-29 02:33:50 +0000
@@ -52,7 +52,7 @@
     (frames     . "Emacs frames and window systems")
     (games     . "games, jokes and amusements")
     (hardware  . "interfacing with system hardware")
-    (help      . "on-line help systems")
+    (help      . "Emacs help systems")
     (hypermedia . "links between text or other media types")
     (i18n      . "internationalization and character-set support")
     (internal  . "code for Emacs internals, build process, defaults")

=== modified file 'lisp/help.el'
--- a/lisp/help.el      2014-06-13 09:00:08 +0000
+++ b/lisp/help.el      2014-07-03 06:00:53 +0000
@@ -23,7 +23,7 @@
 
 ;;; Commentary:
 
-;; This code implements GNU Emacs's on-line help system, the one invoked by
+;; This code implements GNU Emacs's built-in help system, the one invoked by
 ;; `M-x help-for-help'.
 
 ;;; Code:
@@ -198,13 +198,13 @@
               documentation matches the PATTERN (a list of words or a regexp).
 e           Go to the *Messages* buffer which logs echo-area messages.
 f FUNCTION  Display documentation for the given function.
-F COMMAND   Show the on-line manual's section that describes the command.
+F COMMAND   Show the Emacs manual's section that describes the command.
 g           Display information about the GNU project.
 h           Display the HELLO file which illustrates various scripts.
-i           Start the Info documentation reader: read on-line manuals.
+i           Start the Info documentation reader: read included manuals.
 I METHOD    Describe a specific input method, or RET for current.
 k KEYS      Display the full documentation for the key sequence.
-K KEYS      Show the on-line manual's section for the command bound to KEYS.
+K KEYS      Show the Emacs manual's section for the command bound to KEYS.
 l           Show last 300 input keystrokes (lossage).
 L LANG-ENV  Describes a specific language environment, or RET for current.
 m           Display documentation of current minor modes and current major 
mode,
@@ -214,7 +214,7 @@
 P PACKAGE   Describe the given Emacs Lisp package.
 r           Display the Emacs manual in Info mode.
 s           Display contents of current syntax table, plus explanations.
-S SYMBOL    Show the section for the given symbol in the on-line manual
+S SYMBOL    Show the section for the given symbol in the Info manual
               for the programming language used in this buffer.
 t           Start the Emacs learn-by-doing tutorial.
 v VARIABLE  Display the given variable's documentation and value.

=== modified file 'lisp/mouse.el'
--- a/lisp/mouse.el     2014-06-23 15:32:24 +0000
+++ b/lisp/mouse.el     2014-07-03 06:00:53 +0000
@@ -1079,7 +1079,7 @@
     (unless primary
       (error "No selection is available"))
     (push-mark (point))
-    (insert primary)))
+    (insert-for-yank primary)))
 
 (defun mouse-kill-ring-save (click)
   "Copy the region between point and the mouse click in the kill ring.
@@ -1361,7 +1361,7 @@
   (or mouse-yank-at-point (mouse-set-point click))
   (let ((secondary (x-get-selection 'SECONDARY)))
     (if secondary
-        (insert secondary)
+        (insert-for-yank secondary)
       (error "No secondary selection"))))
 
 (defun mouse-kill-secondary ()

=== modified file 'lisp/progmodes/f90.el'
--- a/lisp/progmodes/f90.el     2014-05-29 03:45:29 +0000
+++ b/lisp/progmodes/f90.el     2014-07-03 06:00:53 +0000
@@ -71,8 +71,8 @@
 ;; For example:
 ;; (add-to-list 'auto-mode-alist '("\\.f\\'" . f90-mode))
 
-;; Once you have entered f90-mode, you may get more info by using
-;; the command describe-mode (C-h m). For online help use
+;; Once you have entered f90-mode, you can get more info by using
+;; the command describe-mode (C-h m).  For help use
 ;; C-h f <Name of function you want described>, or
 ;; C-h v <Name of variable you want described>.
 

=== modified file 'lisp/progmodes/idlw-complete-structtag.el'
--- a/lisp/progmodes/idlw-complete-structtag.el 2014-01-01 07:43:34 +0000
+++ b/lisp/progmodes/idlw-complete-structtag.el 2014-06-29 02:17:17 +0000
@@ -49,14 +49,14 @@
 ;;
 ;; New versions of IDLWAVE, documentation, and more information available
 ;; from:
-;;                 http://idlwave.org
+;;                 http://github.com/jdtsmith/idlwave
 ;;
 ;; INSTALLATION
 ;; ============
 ;; Put this file on the emacs load path and load it with the following
 ;; line in your init file:
 ;;
-;;   (add-hook 'idlwave-load-hook 
+;;   (add-hook 'idlwave-load-hook
 ;;             (lambda () (require 'idlw-complete-structtag)))
 ;;
 ;; DESCRIPTION

=== modified file 'lisp/progmodes/idlw-help.el'
--- a/lisp/progmodes/idlw-help.el       2014-05-29 03:45:29 +0000
+++ b/lisp/progmodes/idlw-help.el       2014-07-03 06:00:53 +0000
@@ -32,7 +32,7 @@
 ;; along with new versions of IDLWAVE, documentation, and more
 ;; information, at:
 ;;
-;;           http://idlwave.org
+;;           http://github.com/jdtsmith/idlwave
 ;;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 

=== modified file 'lisp/progmodes/idlw-shell.el'
--- a/lisp/progmodes/idlw-shell.el      2014-06-26 06:28:04 +0000
+++ b/lisp/progmodes/idlw-shell.el      2014-07-03 06:00:53 +0000
@@ -40,7 +40,7 @@
 ;;
 ;; New versions of IDLWAVE, documentation, and more information
 ;; available from:
-;;                 http://idlwave.org
+;;                 http://github.com/jdtsmith/idlwave
 ;;
 ;; INSTALLATION:
 ;; =============
@@ -58,7 +58,7 @@
 ;;   The newest version of this file can be found on the maintainers
 ;;   web site.
 ;;
-;;     http://idlwave.org
+;;     http://github.com/jdtsmith/idlwave
 ;;
 ;; DOCUMENTATION
 ;; =============
@@ -923,7 +923,7 @@
    Info documentation for this package is available.  Use \\[idlwave-info]
    to display (complain to your sysadmin if that does not work).
    For PostScript and HTML versions of the documentation, check IDLWAVE's
-   homepage at URL `http://idlwave.org'.
+   homepage at URL `http://github.com/jdtsmith/idlwave'.
    IDLWAVE has customize support - see the group `idlwave'.
 
 8. Keybindings

=== modified file 'lisp/progmodes/idlw-toolbar.el'
--- a/lisp/progmodes/idlw-toolbar.el    2014-01-01 07:43:34 +0000
+++ b/lisp/progmodes/idlw-toolbar.el    2014-06-29 02:17:17 +0000
@@ -29,7 +29,7 @@
 
 ;; New versions of IDLWAVE, documentation, and more information
 ;; available from:
-;;                 http://idlwave.org
+;;                 http://github.com/jdtsmith/idlwave
 
 
 ;;; Code:

=== modified file 'lisp/progmodes/idlwave.el'
--- a/lisp/progmodes/idlwave.el 2014-04-23 02:22:06 +0000
+++ b/lisp/progmodes/idlwave.el 2014-06-29 02:17:17 +0000
@@ -44,7 +44,7 @@
 ;;
 ;; New versions of IDLWAVE, documentation, and more information
 ;; available from:
-;;                 http://idlwave.org
+;;                 http://github.com/jdtsmith/idlwave
 ;;
 ;; INSTALLATION
 ;; ============
@@ -64,7 +64,7 @@
 ;; The newest version of this file is available from the maintainer's
 ;; Webpage:
 ;;
-;;   http://idlwave.org
+;;   http://github.com/jdtsmith/idlwave
 ;;
 ;; DOCUMENTATION
 ;; =============
@@ -179,7 +179,7 @@
   "Major mode for editing IDL .pro files."
   :tag "IDLWAVE"
   :link '(url-link :tag "Home Page"
-                  "http://idlwave.org";)
+                  "http://github.com/jdtsmith/idlwave";)
   :link '(emacs-commentary-link :tag "Commentary in idlw-shell.el"
                                "idlw-shell.el")
   :link '(emacs-commentary-link :tag "Commentary in idlwave.el" "idlwave.el")
@@ -1878,7 +1878,8 @@
    Info documentation for this package is available.  Use
    \\[idlwave-info] to display (complain to your sysadmin if that does
    not work).  For Postscript, PDF, and HTML versions of the
-   documentation, check IDLWAVE's homepage at URL `http://idlwave.org'.
+   documentation, check IDLWAVE's homepage at URL
+   `http://github.com/jdtsmith/idlwave'.
    IDLWAVE has customize support - see the group `idlwave'.
 
 10.Keybindings

=== modified file 'lisp/progmodes/pascal.el'
--- a/lisp/progmodes/pascal.el  2014-04-10 13:56:28 +0000
+++ b/lisp/progmodes/pascal.el  2014-06-29 02:33:50 +0000
@@ -26,8 +26,8 @@
 ;; =====
 
 ;; Emacs should enter Pascal mode when you find a Pascal source file.
-;; When you have entered Pascal mode, you may get more info by pressing
-;; C-h m. You may also get online help describing various functions by:
+;; When you have entered Pascal mode, you can get more info by pressing
+;; C-h m.  You can also get help describing various functions by:
 ;; C-h f <Name of function you want described>
 
 ;; If you want to customize Pascal mode to fit you better, you may add

=== modified file 'lisp/progmodes/python.el'
--- a/lisp/progmodes/python.el  2014-06-21 19:45:59 +0000
+++ b/lisp/progmodes/python.el  2014-07-03 06:00:53 +0000
@@ -1096,16 +1096,28 @@
   (when (and electric-indent-mode
              (eq (char-before) last-command-event))
     (cond
-     ((and (not (bolp))
-           (memq (char-after) '(?\) ?\] ?\})))
+     ;; Electric indent inside parens
+     ((and
+       (not (bolp))
+       (let ((paren-start (python-syntax-context 'paren)))
+         ;; Check that point is inside parens.
+         (when paren-start
+           (not
+            ;; Filter the case where input is happening in the same
+            ;; line where the open paren is.
+            (= (line-number-at-pos)
+               (line-number-at-pos paren-start)))))
+       ;; When content has been added before the closing paren or a
+       ;; comma has been inserted, it's ok to do the trick.
+       (or
+        (memq (char-after) '(?\) ?\] ?\}))
+        (eq (char-before) ?,)))
       (save-excursion
         (goto-char (line-beginning-position))
-        ;; If after going to the beginning of line the point
-        ;; is still inside a paren it's ok to do the trick
-        (when (python-syntax-context 'paren)
-          (let ((indentation (python-indent-calculate-indentation)))
-            (when (< (current-indentation) indentation)
-              (indent-line-to indentation))))))
+        (let ((indentation (python-indent-calculate-indentation)))
+          (when (< (current-indentation) indentation)
+            (indent-line-to indentation)))))
+     ;; Electric colon
      ((and (eq ?: last-command-event)
            (memq ?: electric-indent-chars)
            (not current-prefix-arg)

=== modified file 'lisp/ps-def.el'
--- a/lisp/ps-def.el    2014-04-15 13:21:18 +0000
+++ b/lisp/ps-def.el    2014-07-01 02:25:52 +0000
@@ -325,8 +325,6 @@
          ;; Emacs
          (property-change from)
          (overlay-change from)
-         (save-buffer-invisibility-spec buffer-invisibility-spec)
-         (buffer-invisibility-spec nil)
          before-string after-string)
       (while (< from to)
        (and (< property-change to)     ; Don't search for property change

=== modified file 'lisp/vc/ediff-mult.el'
--- a/lisp/vc/ediff-mult.el     2014-01-01 07:43:34 +0000
+++ b/lisp/vc/ediff-mult.el     2014-06-29 02:33:50 +0000
@@ -140,7 +140,7 @@
  uh/um:\tunmark all sessions marked for hiding/operation
  n,SPC:\tnext session
  p,DEL:\tprevious session
-     E:\tbrowse Ediff on-line manual
+     E:\tbrowse Ediff manual
      T:\ttoggle truncation of long file names
      q:\tquit this session group
 ")
@@ -1464,7 +1464,7 @@
      R in any Ediff session:   display session registry
      n,SPC: next session
      p,DEL: previous session
-         E: browse Ediff on-line manual
+         E: browse Ediff manual
          q: bury registry
 
 

=== modified file 'lisp/vc/ediff-ptch.el'
--- a/lisp/vc/ediff-ptch.el     2014-01-01 07:43:34 +0000
+++ b/lisp/vc/ediff-ptch.el     2014-06-29 02:33:50 +0000
@@ -735,7 +735,7 @@
     ediff-patch-program    = %S             ediff-patch-options    = %S
     ediff-backup-extension = %S             ediff-backup-specs     = %S
 
-See Ediff on-line manual for more details on these variables.
+See Ediff manual for more details on these variables.
 In particular, check the documentation for `ediff-backup-specs'.
 
 In any of the above cases, Ediff doesn't compare files automatically.

=== modified file 'lisp/vc/ediff.el'
--- a/lisp/vc/ediff.el  2014-04-02 07:07:11 +0000
+++ b/lisp/vc/ediff.el  2014-06-29 02:33:50 +0000
@@ -64,7 +64,7 @@
 ;; compressed files.  Details are given below.
 
 ;; Finally, Ediff supports directory-level comparison, merging and patching.
-;; See the on-line manual for details.
+;; See the Ediff manual for details.
 
 ;; This package builds upon the ideas borrowed from emerge.el and several
 ;; Ediff's functions are adaptations from emerge.el.  Much of the functionality

=== modified file 'lisp/vc/log-edit.el'
--- a/lisp/vc/log-edit.el       2014-02-08 23:01:45 +0000
+++ b/lisp/vc/log-edit.el       2014-07-01 15:15:03 +0000
@@ -132,6 +132,8 @@
                           log-edit-insert-changelog
                           log-edit-show-files)
   "Hook run at the end of `log-edit'."
+  ;; Added log-edit-insert-message-template, moved log-edit-show-files.
+  :version "24.4"
   :group 'log-edit
   :type '(hook :options (log-edit-insert-message-template
                         log-edit-insert-cvs-rcstemplate
@@ -355,9 +357,15 @@
       (set-match-data (list start (point)))
       (point))))
 
+(defun log-edit-goto-eoh ()             ;FIXME: Almost rfc822-goto-eoh!
+  (goto-char (point-min))
+  (when (re-search-forward
+        "^\\([^[:alpha:]]\\|[[:alnum:]-]+[^[:alnum:]-:]\\)" nil 'move)
+    (goto-char (match-beginning 0))))
+
 (defun log-edit--match-first-line (limit)
   (let ((start (point)))
-    (rfc822-goto-eoh)
+    (log-edit-goto-eoh)
     (skip-chars-forward "\n")
     (and (< start (line-end-position))
          (< (point) limit)

=== modified file 'lisp/vc/vc-git.el'
--- a/lisp/vc/vc-git.el 2014-03-08 06:56:22 +0000
+++ b/lisp/vc/vc-git.el 2014-06-29 20:48:55 +0000
@@ -674,7 +674,7 @@
     (cl-flet ((boolean-arg-fn
                (argument)
                (lambda (value) (when (equal value "yes") (list argument)))))
-      ;; When operating on the whole tree, better pass nil than ".", since "."
+      ;; When operating on the whole tree, better pass "-a" than ".", since "."
       ;; fails when we're committing a merge.
       (apply 'vc-git-command nil 0 (if only files)
              (nconc (list "commit" "-m")
@@ -684,7 +684,7 @@
                        ("Amend" . ,(boolean-arg-fn "--amend"))
                        ("Sign-Off" . ,(boolean-arg-fn "--signoff")))
                      comment)
-                    (if only (list "--only" "--")))))))
+                   (if only (list "--only" "--") '("-a")))))))
 
 (defun vc-git-find-revision (file rev buffer)
   (let* (process-file-side-effects

=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2014-07-02 15:22:49 +0000
+++ b/src/ChangeLog     2014-07-03 06:00:53 +0000
@@ -1,3 +1,28 @@
+2014-07-03  Eli Zaretskii  <address@hidden>
+
+       * dispnew.c (prepare_desired_row): Accept 2 additional arguments:
+       the window whose glyph row is being prepared and a flag whether it
+       is for mode/header line.  Make sure the glyph row's marginal areas
+       are in sync with what the window wants.
+       (Bug#17892)
+
+       * xdisp.c (display_line, display_mode_line): Call
+       prepare_desired_row with additional arguments, as appropriate.
+
+       * dispextern.h (prepare_desired_row): Adjust prototype.
+
+2014-07-03  Dmitry Antipov  <address@hidden>
+
+       * xfaces.c (init_frame_faces): Always realize basic faces (Bug#17889).
+       * menu.c (Fx_popup_dialog): Set Vmenu_updating_frame to avoid crash
+       caused by xw_popup_dialog in daemon mode (Bug#17891).
+
+2014-07-03  Eli Zaretskii  <address@hidden>
+
+       * frame.c (do_switch_frame): When switching to another TTY frame,
+       make sure FrameCols and FrameRows are in sync with the new frame's
+       data.  (Bug#17875)
+
 2014-07-02  Dmitry Antipov  <address@hidden>
 
        Shrink Lisp_Sub_Char_Table by preferring C integers to Lisp_Objects.

=== modified file 'src/dispextern.h'
--- a/src/dispextern.h  2014-06-21 19:45:59 +0000
+++ b/src/dispextern.h  2014-07-03 06:00:53 +0000
@@ -3460,7 +3460,7 @@
 void blank_row (struct window *, struct glyph_row *, int);
 void clear_glyph_matrix_rows (struct glyph_matrix *, int, int);
 void clear_glyph_row (struct glyph_row *);
-void prepare_desired_row (struct glyph_row *);
+void prepare_desired_row (struct window *, struct glyph_row *, bool);
 void update_single_window (struct window *, bool);
 void do_pending_window_change (bool);
 void change_frame_size (struct frame *, int, int, bool, bool, bool, bool);

=== modified file 'src/dispnew.c'
--- a/src/dispnew.c     2014-06-04 09:16:46 +0000
+++ b/src/dispnew.c     2014-07-01 18:00:29 +0000
@@ -449,7 +449,8 @@
               + x);
 
          if (w == NULL
-             || row == matrix->rows + dim.height - 1
+             || (row == matrix->rows + dim.height - 1
+                 && WINDOW_WANTS_MODELINE_P (w))
              || (row == matrix->rows && matrix->header_line_p))
            {
              row->glyphs[TEXT_AREA]
@@ -492,8 +493,9 @@
                = xnrealloc (row->glyphs[LEFT_MARGIN_AREA],
                             dim.width, sizeof (struct glyph));
 
-             /* The mode line never has marginal areas.  */
-             if (row == matrix->rows + dim.height - 1
+             /* The mode line, if displayed, never has marginal areas.  */
+             if ((row == matrix->rows + dim.height - 1
+                  && !(w && WINDOW_WANTS_MODELINE_P (w)))
                  || (row == matrix->rows && matrix->header_line_p))
                {
                  row->glyphs[TEXT_AREA]
@@ -1049,13 +1051,16 @@
 
 #endif /* 0 */
 
-/* Prepare ROW for display.  Desired rows are cleared lazily,
-   i.e. they are only marked as to be cleared by setting their
+/* Prepare ROW for display in windows W.  Desired rows are cleared
+   lazily, i.e. they are only marked as to be cleared by setting their
    enabled_p flag to zero.  When a row is to be displayed, a prior
-   call to this function really clears it.  */
+   call to this function really clears it.  In addition, this function
+   makes sure the marginal areas of ROW are in sync with the window's
+   display margins.  MODE_LINE_P non-zero means we are preparing a
+   glyph row for header line or mode line.  */
 
 void
-prepare_desired_row (struct glyph_row *row)
+prepare_desired_row (struct window *w, struct glyph_row *row, bool mode_line_p)
 {
   if (!row->enabled_p)
     {
@@ -1065,6 +1070,39 @@
       row->enabled_p = true;
       row->reversed_p = rp;
     }
+  if (mode_line_p)
+    {
+      /* Mode and header lines, if displayed, never have marginal
+        areas.  If we are called with MODE_LINE_P non-zero, we are
+        displaying the mode/header line in this window, and so the
+        marginal areas of this glyph row should be eliminated.  This
+        is needed when the mode/header line is switched on in a
+        window that has display margins.  */
+      if (w->left_margin_cols > 0)
+       row->glyphs[TEXT_AREA] = row->glyphs[LEFT_MARGIN_AREA];
+      if (w->right_margin_cols > 0)
+       row->glyphs[RIGHT_MARGIN_AREA] = row->glyphs[LAST_AREA];
+    }
+  else if (row == MATRIX_MODE_LINE_ROW (w->desired_matrix)
+          || row == MATRIX_HEADER_LINE_ROW (w->desired_matrix))
+    {
+      /* The real number of glyphs reserved for the margins is
+        recorded in the glyph matrix, and can be different from
+        window's left_margin_cols and right_margin_cols; see
+        margin_glyphs_to_reserve for when that happens.  */
+      int left = w->desired_matrix->left_margin_glyphs;
+      int right = w->desired_matrix->right_margin_glyphs;
+
+      /* Make sure the marginal areas of this row are in sync with
+        what the window wants, when the 1st/last row of the matrix
+        actually displays text and not header/mode line.  */
+      if (w->left_margin_cols > 0
+         && (left != row->glyphs[TEXT_AREA] - row->glyphs[LEFT_MARGIN_AREA]))
+       row->glyphs[TEXT_AREA] = row->glyphs[LEFT_MARGIN_AREA] + left;
+      if (w->right_margin_cols > 0
+         && (right != row->glyphs[LAST_AREA] - row->glyphs[RIGHT_MARGIN_AREA]))
+       row->glyphs[RIGHT_MARGIN_AREA] = row->glyphs[LAST_AREA] - right;
+    }
 }
 
 

=== modified file 'src/frame.c'
--- a/src/frame.c       2014-06-17 16:09:19 +0000
+++ b/src/frame.c       2014-07-03 06:00:53 +0000
@@ -46,6 +46,7 @@
 #ifdef HAVE_WINDOW_SYSTEM
 #include "fontset.h"
 #endif
+#include "cm.h"
 #ifdef MSDOS
 #include "msdos.h"
 #include "dosfns.h"
@@ -854,7 +855,9 @@
 
   if (FRAME_TERMCAP_P (XFRAME (frame)) || FRAME_MSDOS_P (XFRAME (frame)))
     {
-      Lisp_Object top_frame = FRAME_TTY (XFRAME (frame))->top_frame;
+      struct frame *f = XFRAME (frame);
+      struct tty_display_info *tty = FRAME_TTY (f);
+      Lisp_Object top_frame = tty->top_frame;
 
       /* Don't mark the frame garbaged and/or obscured if we are
         switching to the frame that is already the top frame of that
@@ -864,9 +867,16 @@
          if (FRAMEP (top_frame))
            /* Mark previously displayed frame as now obscured.  */
            SET_FRAME_VISIBLE (XFRAME (top_frame), 2);
-         SET_FRAME_VISIBLE (XFRAME (frame), 1);
+         SET_FRAME_VISIBLE (f, 1);
+         /* If the new TTY frame changed dimensions, we need to
+            resync term.c's idea of the frame size with the new
+            frame's data.  */
+         if (FRAME_COLS (f) != FrameCols (tty))
+           FrameCols (tty) = FRAME_COLS (f);
+         if (FRAME_LINES (f) != FrameRows (tty))
+           FrameRows (tty) = FRAME_LINES (f);
        }
-      FRAME_TTY (XFRAME (frame))->top_frame = frame;
+      tty->top_frame = frame;
     }
 
   selected_frame = frame;

=== modified file 'src/menu.c'
--- a/src/menu.c        2014-06-22 05:00:14 +0000
+++ b/src/menu.c        2014-07-03 06:00:53 +0000
@@ -1529,6 +1529,11 @@
        but I don't want to make one now.  */
     CHECK_WINDOW (window);
 
+  /* Note that xw_popup_dialog can call menu code, so
+     Vmenu_updating_frame should be set (Bug#17891).  */
+  eassert (f && FRAME_LIVE_P (f));
+  XSETFRAME (Vmenu_updating_frame, f);
+
   /* Force a redisplay before showing the dialog.  If a frame is created
      just before showing the dialog, its contents may not have been fully
      drawn, as this depends on timing of events from the X server.  Redisplay

=== modified file 'src/window.h'
--- a/src/window.h      2014-01-01 07:43:34 +0000
+++ b/src/window.h      2014-07-01 17:07:24 +0000
@@ -271,8 +271,10 @@
     int left_fringe_width;
     int right_fringe_width;
 
-    /* Width of left and right marginal areas in columns.
-       A value of 0 means no margin.  */
+    /* Requested width of left and right marginal areas in columns.  A
+       value of 0 means no margin.  The actual values are recorded in
+       the window's glyph matrix, in the left_margin_glyphs and
+       right_margin_glyphs members.  */
     int left_margin_cols;
     int right_margin_cols;
 

=== modified file 'src/xdisp.c'
--- a/src/xdisp.c       2014-06-23 04:11:29 +0000
+++ b/src/xdisp.c       2014-07-03 06:00:53 +0000
@@ -19878,7 +19878,7 @@
     }
 
   /* Clear the result glyph row and enable it.  */
-  prepare_desired_row (row);
+  prepare_desired_row (it->w, row, false);
 
   row->y = it->current_y;
   row->start = it->start;
@@ -21517,7 +21517,7 @@
   /* Don't extend on a previously drawn mode-line.
      This may happen if called from pos_visible_p.  */
   it.glyph_row->enabled_p = false;
-  prepare_desired_row (it.glyph_row);
+  prepare_desired_row (w, it.glyph_row, true);
 
   it.glyph_row->mode_line_p = 1;
 

=== modified file 'src/xfaces.c'
--- a/src/xfaces.c      2014-06-10 03:32:36 +0000
+++ b/src/xfaces.c      2014-07-03 06:00:53 +0000
@@ -676,19 +676,9 @@
     }
 #endif /* HAVE_WINDOW_SYSTEM */
 
-  /* Realize basic faces.  Must have enough information in frame
-     parameters to realize basic faces at this point.  */
-#ifdef HAVE_X_WINDOWS
-  if (!FRAME_X_P (f) || FRAME_X_WINDOW (f))
-#endif
-#ifdef HAVE_NTGUI
-  if (!FRAME_WINDOW_P (f) || FRAME_W32_WINDOW (f))
-#endif
-#ifdef HAVE_NS
-  if (!FRAME_NS_P (f) || FRAME_NS_WINDOW (f))
-#endif
-    if (!realize_basic_faces (f))
-       emacs_abort ();
+  /* Realize faces early (Bug#17889).  */
+  if (!realize_basic_faces (f))
+    emacs_abort ();
 }
 
 

=== modified file 'test/ChangeLog'
--- a/test/ChangeLog    2014-06-30 19:58:56 +0000
+++ b/test/ChangeLog    2014-07-03 06:00:53 +0000
@@ -1,3 +1,9 @@
+2014-07-03  Fabián Ezequiel Gallina  <address@hidden>
+
+       * automated/python-tests.el (python-tests-self-insert): New function.
+       (python-triple-quote-pairing): Use it.
+       (python-util-forward-comment-1): New test. (Bug#17658)
+
 2014-06-30  Fabián Ezequiel Gallina  <address@hidden>
 
        * automated/subr-x-tests.el: New file.

=== modified file 'test/automated/python-tests.el'
--- a/test/automated/python-tests.el    2014-06-21 14:14:54 +0000
+++ b/test/automated/python-tests.el    2014-07-01 03:54:11 +0000
@@ -86,6 +86,24 @@
         found-point
       (and restore-point (goto-char starting-point)))))
 
+(defun python-tests-self-insert (char-or-str)
+  "Call `self-insert-command' for chars in CHAR-OR-STR."
+  (let ((chars
+         (cond
+          ((characterp char-or-str)
+           (list char-or-str))
+          ((stringp char-or-str)
+           (string-to-list char-or-str))
+          ((not
+            (cl-remove-if #'characterp char-or-str))
+           char-or-str)
+          (t (error "CHAR-OR-STR must be a char, string, or list of char")))))
+    (mapc
+     (lambda (char)
+       (let ((last-command-event char))
+         (call-interactively 'self-insert-command)))
+     chars)))
+
 
 ;;; Tests for your tests, so you can test while you test.
 
@@ -2715,9 +2733,6 @@
   (should (string= (python-util-strip-string "\n \t \n\r ") ""))
   (should (string= (python-util-strip-string "") "")))
 
-
-;;; Electricity
-
 (ert-deftest python-util-forward-comment-1 ()
   (python-tests-with-temp-buffer
    (concat
@@ -2730,36 +2745,85 @@
    (python-util-forward-comment -1)
    (should (= (point) (point-min)))))
 
+
+;;; Electricity
+
+(ert-deftest python-parens-electric-indent-1 ()
+  (require 'electric)
+  (let ((eim electric-indent-mode))
+    (unwind-protect
+        (progn
+          (python-tests-with-temp-buffer
+              "
+from django.conf.urls import patterns, include, url
+
+from django.contrib import admin
+
+from myapp import views
+
+
+urlpatterns = patterns('',
+    url(r'^$', views.index
+)
+"
+            (electric-indent-mode 1)
+            (python-tests-look-at "views.index")
+            (end-of-line)
+
+            ;; Inserting commas within the same line should leave
+            ;; indentation unchanged.
+            (python-tests-self-insert ",")
+            (should (= (current-indentation) 4))
+
+            ;; As well as any other input happening within the same
+            ;; set of parens.
+            (python-tests-self-insert " name='index')")
+            (should (= (current-indentation) 4))
+
+            ;; But a comma outside it, should trigger indentation.
+            (python-tests-self-insert ",")
+            (should (= (current-indentation) 23))
+
+            ;; Newline indents to the first argument column
+            (python-tests-self-insert "\n")
+            (should (= (current-indentation) 23))
+
+            ;; All this input must not change indentation
+            (indent-line-to 4)
+            (python-tests-self-insert "url(r'^/login$', views.login)")
+            (should (= (current-indentation) 4))
+
+            ;; But this comma does
+            (python-tests-self-insert ",")
+            (should (= (current-indentation) 23))))
+      (or eim (electric-indent-mode -1)))))
+
 (ert-deftest python-triple-quote-pairing ()
   (require 'electric)
   (let ((epm electric-pair-mode))
     (unwind-protect
         (progn
           (python-tests-with-temp-buffer
-           "\"\"\n"
-           (or epm (electric-pair-mode 1))
-           (goto-char (1- (point-max)))
-           (let ((last-command-event ?\"))
-             (call-interactively 'self-insert-command))
-           (should (string= (buffer-string)
-                            "\"\"\"\"\"\"\n"))
-           (should (= (point) 4)))
-          (python-tests-with-temp-buffer
-           "\n"
-           (let ((last-command-event ?\"))
-             (dotimes (i 3)
-               (call-interactively 'self-insert-command)))
-           (should (string= (buffer-string)
-                            "\"\"\"\"\"\"\n"))
-           (should (= (point) 4)))
-          (python-tests-with-temp-buffer
-           "\"\n\"\"\n"
-           (goto-char (1- (point-max)))
-           (let ((last-command-event ?\"))
-             (call-interactively 'self-insert-command))
-           (should (= (point) (1- (point-max))))
-           (should (string= (buffer-string)
-                            "\"\n\"\"\"\n"))))
+              "\"\"\n"
+            (or epm (electric-pair-mode 1))
+            (goto-char (1- (point-max)))
+            (python-tests-self-insert ?\")
+            (should (string= (buffer-string)
+                             "\"\"\"\"\"\"\n"))
+            (should (= (point) 4)))
+          (python-tests-with-temp-buffer
+              "\n"
+            (python-tests-self-insert (list ?\" ?\" ?\"))
+            (should (string= (buffer-string)
+                             "\"\"\"\"\"\"\n"))
+            (should (= (point) 4)))
+          (python-tests-with-temp-buffer
+              "\"\n\"\"\n"
+            (goto-char (1- (point-max)))
+            (python-tests-self-insert ?\")
+            (should (= (point) (1- (point-max))))
+            (should (string= (buffer-string)
+                             "\"\n\"\"\"\n"))))
       (or epm (electric-pair-mode -1)))))
 
 


reply via email to

[Prev in Thread] Current Thread [Next in Thread]