emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] trunk r116831: Merge from emacs-24; up to r116824


From: Glenn Morris
Subject: [Emacs-diffs] trunk r116831: Merge from emacs-24; up to r116824
Date: Fri, 21 Mar 2014 19:04:42 +0000
User-agent: Bazaar (2.6b2)

------------------------------------------------------------
revno: 116831 [merge]
revision-id: address@hidden
parent: address@hidden
parent: address@hidden
committer: Glenn Morris <address@hidden>
branch nick: trunk
timestamp: Fri 2014-03-21 12:04:57 -0700
message:
  Merge from emacs-24; up to r116824
added:
  test/automated/data/package/simple-two-depend-1.1.el 
simpletwodepend1.1.e-20140321055401-qjbwu39bkvhuhhuh-1
modified:
  doc/lispref/ChangeLog          changelog-20091113204419-o5vbwnq5f7feedwu-6155
  doc/lispref/commands.texi      
commands.texi-20091113204419-o5vbwnq5f7feedwu-6165
  doc/lispref/frames.texi        
frames.texi-20091113204419-o5vbwnq5f7feedwu-6180
  doc/lispref/windows.texi       
windows.texi-20091113204419-o5vbwnq5f7feedwu-6224
  doc/misc/ChangeLog             changelog-20091113204419-o5vbwnq5f7feedwu-6331
  doc/misc/ede.texi              ede.texi-20091113204419-o5vbwnq5f7feedwu-11396
  doc/misc/vip.texi              vip.texi-20091113204419-o5vbwnq5f7feedwu-6327
  etc/NEWS                       news-20100311060928-aoit31wvzf25yr1z-1
  lisp/ChangeLog                 changelog-20091113204419-o5vbwnq5f7feedwu-1432
  lisp/align.el                  align.el-20091113204419-o5vbwnq5f7feedwu-1758
  lisp/electric.el               electric.el-20091113204419-o5vbwnq5f7feedwu-47
  lisp/emacs-lisp/package.el     package.el-20100617020707-ybavz666awsxwin6-2
  lisp/ffap.el                   ffap.el-20091113204419-o5vbwnq5f7feedwu-953
  lisp/net/tramp-sh.el           trampsh.el-20100913133439-a1faifh29eqoi4nh-1
  lisp/net/tramp.el              tramp.el-20091113204419-o5vbwnq5f7feedwu-2427
  lisp/nxml/nxml-enc.el          nxmlenc.el-20091113204419-o5vbwnq5f7feedwu-7810
  lisp/nxml/nxml-glyph.el        
nxmlglyph.el-20091113204419-o5vbwnq5f7feedwu-7811
  lisp/nxml/nxml-maint.el        
nxmlmaint.el-20091113204419-o5vbwnq5f7feedwu-7812
  lisp/nxml/nxml-mode.el         
nxmlmode.el-20091113204419-o5vbwnq5f7feedwu-7813
  lisp/nxml/nxml-ns.el           nxmlns.el-20091113204419-o5vbwnq5f7feedwu-7814
  lisp/nxml/nxml-outln.el        
nxmloutln.el-20091113204419-o5vbwnq5f7feedwu-7815
  lisp/nxml/nxml-parse.el        
nxmlparse.el-20091113204419-o5vbwnq5f7feedwu-7816
  lisp/nxml/nxml-rap.el          nxmlrap.el-20091113204419-o5vbwnq5f7feedwu-7817
  lisp/nxml/nxml-uchnm.el        
nxmluchnm.el-20091113204419-o5vbwnq5f7feedwu-7818
  lisp/nxml/nxml-util.el         
nxmlutil.el-20091113204419-o5vbwnq5f7feedwu-7819
  lisp/nxml/rng-cmpct.el         
rngcmpct.el-20091113204419-o5vbwnq5f7feedwu-7821
  lisp/nxml/rng-dt.el            rngdt.el-20091113204419-o5vbwnq5f7feedwu-7822
  lisp/nxml/rng-loc.el           rngloc.el-20091113204419-o5vbwnq5f7feedwu-7823
  lisp/nxml/rng-maint.el         
rngmaint.el-20091113204419-o5vbwnq5f7feedwu-7824
  lisp/nxml/rng-match.el         
rngmatch.el-20091113204419-o5vbwnq5f7feedwu-7825
  lisp/nxml/rng-nxml.el          rngnxml.el-20091113204419-o5vbwnq5f7feedwu-7826
  lisp/nxml/rng-parse.el         
rngparse.el-20091113204419-o5vbwnq5f7feedwu-7827
  lisp/nxml/rng-pttrn.el         
rngpttrn.el-20091113204419-o5vbwnq5f7feedwu-7828
  lisp/nxml/rng-uri.el           rnguri.el-20091113204419-o5vbwnq5f7feedwu-7829
  lisp/nxml/rng-util.el          rngutil.el-20091113204419-o5vbwnq5f7feedwu-7830
  lisp/nxml/rng-valid.el         
rngvalid.el-20091113204419-o5vbwnq5f7feedwu-7831
  lisp/nxml/rng-xsd.el           rngxsd.el-20091113204419-o5vbwnq5f7feedwu-7832
  lisp/nxml/xmltok.el            xmltok.el-20091113204419-o5vbwnq5f7feedwu-7836
  lisp/nxml/xsd-regexp.el        
xsdregexp.el-20091113204419-o5vbwnq5f7feedwu-7837
  lisp/progmodes/ruby-mode.el    
rubymode.el-20091113204419-o5vbwnq5f7feedwu-8804
  lisp/server.el                 server.el-20091113204419-o5vbwnq5f7feedwu-107
  lisp/skeleton.el               skeleton.el-20091113204419-o5vbwnq5f7feedwu-728
  lisp/term/tty-colors.el        
ttycolors.el-20091113204419-o5vbwnq5f7feedwu-1725
  src/ChangeLog                  changelog-20091113204419-o5vbwnq5f7feedwu-1438
  src/w32fns.c                   w32fns.c-20091113204419-o5vbwnq5f7feedwu-945
  src/w32term.c                  w32term.c-20091113204419-o5vbwnq5f7feedwu-950
  src/xterm.c                    xterm.c-20091113204419-o5vbwnq5f7feedwu-244
  test/automated/data/package/archive-contents 
archivecontents-20130627091649-1urk343g07eug5h7-3
  test/automated/package-test.el 
packagetest.el-20130627091655-6mb005jio30t2i3i-1
  test/indent/ruby.rb            ruby.rb-20120424165921-h044139hbrd7snvw-1
=== modified file 'doc/lispref/ChangeLog'
--- a/doc/lispref/ChangeLog     2014-03-20 17:58:01 +0000
+++ b/doc/lispref/ChangeLog     2014-03-21 19:04:57 +0000
@@ -1,3 +1,15 @@
+2014-03-21  Martin Rudalics  <address@hidden>
+
+       * frames.texi (Size and Position): In `frame-resize-pixelwise'
+       description drop remark about frame maximization.
+       * windows.texi (Display Action Functions): Add description for
+       `display-buffer-no-window' and explain use of `allow-no-window'
+       alist entries.
+
+2014-03-21  Glenn Morris  <address@hidden>
+
+       * commands.texi (Defining Commands): Copyedit re `interactive-only'.
+
 2014-03-20  Paul Eggert  <address@hidden>
 
        * internals.texi (C Integer Types): Prefer 'false' and 'true'

=== modified file 'doc/lispref/commands.texi'
--- a/doc/lispref/commands.texi 2014-03-18 01:19:03 +0000
+++ b/doc/lispref/commands.texi 2014-03-21 07:06:55 +0000
@@ -123,11 +123,10 @@
 form in the function body itself.  This feature is seldom used.
 
 @cindex @code{interactive-only} property
-  Sometimes, a named command is only intended to be called
-interactively, never directly from Lisp.  In that case, give it a
address@hidden @code{interactive-only} property.  In that case, the
-byte compiler will print a warning message if the command is called
-from Lisp.
+  Sometimes, a function is only intended to be called interactively,
+never directly from Lisp.  In that case, give the function a
address@hidden @code{interactive-only} property.  This causes the
+byte compiler to warn if the command is called from Lisp.
 
 @menu
 * Using Interactive::     General rules for @code{interactive}.

=== modified file 'doc/lispref/frames.texi'
--- a/doc/lispref/frames.texi   2014-03-18 01:19:03 +0000
+++ b/doc/lispref/frames.texi   2014-03-21 09:23:22 +0000
@@ -1163,10 +1163,7 @@
 always done character-wise.  Calling @code{set-frame-size} (see below)
 with arguments that do not specify the frame size as an integer multiple
 of its character size may be, however, either ignored or cause a
-rounding (GTK+, Windows) or get accepted (Lucid, Motif).  This also
-means that with some toolkits and a display whose size is not an
-integral multiple of your default font, you may have to set this to
address@hidden in order to fully maximize a frame.
+rounding (GTK+, Windows) or get accepted (Lucid, Motif).
 @end defopt
 
 @defun set-frame-size frame width height pixelwise

=== modified file 'doc/lispref/windows.texi'
--- a/doc/lispref/windows.texi  2014-03-18 01:19:03 +0000
+++ b/doc/lispref/windows.texi  2014-03-21 09:23:22 +0000
@@ -2280,6 +2280,15 @@
 windows are dedicated to another buffer (@pxref{Dedicated Windows}).
 @end defun
 
address@hidden display-buffer-no-window buffer alist
+If @var{alist} has a address@hidden @code{allow-no-window} entry, then
+this function does not display @code{buffer}.  This allows to override
+the default action and avoid displaying the buffer.  It is assumed that
+when the caller specifies a address@hidden @code{allow-no-window} value
+it can handle a @code{nil} value returned from @code{display-buffer} in
+this case.
address@hidden defun
+
 To illustrate the use of action functions, consider the following
 example.
 

=== modified file 'doc/misc/ChangeLog'
--- a/doc/misc/ChangeLog        2014-03-18 21:14:36 +0000
+++ b/doc/misc/ChangeLog        2014-03-21 07:00:21 +0000
@@ -1,3 +1,8 @@
+2014-03-21  Glenn Morris  <address@hidden>
+
+       * ede.texi (ede-linux):
+       * vip.texi (New Bindings): Tiny copyedits.
+
 2014-03-18  Stefan Monnier  <address@hidden>
 
        * vip.texi (Other Vi Commands): Adjust doc of C-j.

=== modified file 'doc/misc/ede.texi'
--- a/doc/misc/ede.texi 2014-03-18 21:12:42 +0000
+++ b/doc/misc/ede.texi 2014-03-21 07:00:21 +0000
@@ -917,7 +917,7 @@
 
 Through the variables @code{project-linux-build-directory-default} and
 @code{project-linux-architecture-default}, you can set the build
-directory and its architecture, resp.  The default is to assume that
+directory and its architecture, respectively.  The default is to assume that
 the build happens in the source directory and to auto-detect the
 architecture; if the auto-detection fails, you will be asked.
 

=== modified file 'doc/misc/vip.texi'
--- a/doc/misc/vip.texi 2014-03-20 17:14:45 +0000
+++ b/doc/misc/vip.texi 2014-03-21 07:00:21 +0000
@@ -569,7 +569,7 @@
 @kindex 1300 @kbd{X} (@code{vip-ctl-x-equivalent})
 These keys will exit from vi mode and return to emacs mode temporarily.
 If you type @kbd{C} (@kbd{X}), Emacs will be in emacs mode and will believe
-that you have typed @kbd{C-c} (@kbd{C-x}, resp.) in emacs mode. Moreover,
+that you have typed @kbd{C-c} (@kbd{C-x}) in emacs mode. Moreover,
 if the following character you type is an upper-case letter, then Emacs
 will believe that you have typed the corresponding control character.
 You will be in vi mode again after the command is executed.  For example,

=== modified file 'etc/NEWS'
--- a/etc/NEWS  2014-03-21 17:04:50 +0000
+++ b/etc/NEWS  2014-03-21 19:04:57 +0000
@@ -240,6 +240,7 @@
 *** New hooks `focus-in-hook', `focus-out-hook'.
 These are normal hooks run when an Emacs frame gains or loses input focus.
 
++++
 *** Emacs can now change frame sizes in units of pixels, rather than
 text rows or columns.  When maximizing a frame or making it fullscreen,
 remaining extra pixels are no longer given to the minibuffer, the rightmost
@@ -248,6 +249,7 @@
 is non-nil, all frame size changes happen pixelwise and set the
 corresponding size hints for the window manager.
 
++++
 *** Emacs can now change window sizes in units of pixels.
 Mouse-dragging a mode line or window divider now changes the size of
 adjacent windows pixelwise.  If the new option `window-resize-pixelwise'
@@ -261,6 +263,7 @@
 count partially visible lines or columns if called with a nil PIXELWISE
 argument.
 
++++
 *** Emacs can now draw dividers between adjacent windows.  To put
 dividers between side-by-side/vertically stacked windows customize the
 frame parameters `right-divider-width' and `bottom-divider-width' to
@@ -271,25 +274,30 @@
 two are useful to provide a 3D effect, or to better distinguish dividers
 from surrounding display objects.
 
++++
 *** New functions are provided to return the pixel sizes of window
 components, namely `window-scroll-bar-width', `window-mode-line-height'
 `window-header-line-height', `window-right-divider-width' and
 `window-bottom-divider-width'.
 
++++
 *** The new function `window-text-pixel-size' returns the size of the
 text of a window's buffer in pixels.  This allows functions like
 `fit-frame-to-buffer' and `fit-window-to-buffer' to accurately fit a
 window to its buffer as it will be displayed.
 
++++
 *** `fit-window-to-buffer' can now resize windows in both dimensions.
 This behavior is controlled by the new option
 `fit-window-to-buffer-horizontally'.  The new option
 `fit-frame-to-buffer' allows to fit the window's frame to its buffer.
 
++++
 *** `fit-frame-to-buffer' now fits frames in both dimensions.  The new
 options `fit-frame-to-buffer-margins' and `fit-frame-to-buffer-sizes'
 control the size of the frame and its position on screen.
 
+---
 *** Temp Buffer Resize Mode can now adjust height and width of windows
 and frames.  `temp-buffer-resize-mode' is now able to adjust the height
 and the width of a window displaying a temporary buffer.  The new option
@@ -328,9 +336,11 @@
 `display-buffer' choose or make a window at the bottom of the selected
 frame.
 
++++
 *** New display action function `display-buffer-no-window' to not
 display the buffer in a window.
 
++++
 *** New display action alist entry `allow-no-window' to indicate the
 caller of `display-buffer' is ready to handle the case of not
 displaying the buffer in a window.

=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2014-03-21 17:04:50 +0000
+++ b/lisp/ChangeLog    2014-03-21 19:04:57 +0000
@@ -1,3 +1,51 @@
+2014-03-21  Michael Albinus  <address@hidden>
+
+       * net/tramp.el (tramp-methods): Add docstring for `tramp-login-env'
+       and `tramp-copy-env'.
+
+       * net/tramp-sh.el (tramp-methods) <sudo>: Add `tramp-login-env'.
+       (tramp-maybe-open-connection): Handle `tramp-login-env'.
+
+2014-03-21  Glenn Morris  <address@hidden>
+
+       * electric.el (electric-indent-post-self-insert-function): Add doc.
+
+2014-03-21  Dmitry Gutov  <address@hidden>
+
+       * emacs-lisp/package.el (package-compute-transaction):
+       Use `version-list-<=' to compare the requirement version against
+       the version of package already to be installed.  Update the error
+       message.  (Bug#16826)
+
+       * progmodes/ruby-mode.el (ruby-smie-rules):
+       Add indentation rule for ` @ '.  (Bug#17050)
+
+2014-03-21  Juanma Barranquero  <address@hidden>
+
+       * align.el (align-regexp): Remove superfluous backslash.
+
+       * ffap.el (ffap-ftp-default-user, ffap-url-regexp)
+       (ffap-pass-wildcards-to-dired, dired-at-point-require-prefix)
+       (ffap-rfc-path, ffap-ftp-sans-slash-regexp, ffap-menu-regexp):
+       Fix docstring typos.
+       (ffap-next): Use C-u in docstring.
+       (ffap-machine-p, ffap-list-env, ffap-alist, ffap-alist)
+       (ffap-string-at-point-mode-alist, ffap-menu, ffap-menu-ask):
+       Remove superfluous backslashes.
+       (ffap-string-at-point): Reflow docstring.
+
+       * server.el (server-host): Reflow docstring.
+       (server-unload-function): Fix docstring typo.
+       (server-eval-at): Remove superfluous backslash.
+
+       * skeleton.el (skeleton-insert): Remove superfluous backslash.
+       (skeleton-insert): Doc fix.
+       (skeleton-insert): Reflow docstring.
+
+       * term/tty-colors.el (tty-color-alist, tty-modify-color-alist)
+       (tty-color-approximate, tty-color-by-index, tty-color-values)
+       (tty-color-desc): Remove superfluous backslashes.
+
 2014-03-21  Glenn Morris  <address@hidden>
 
        * cus-start.el (history-length): Bump :version.

=== modified file 'lisp/align.el'
--- a/lisp/align.el     2014-02-10 01:34:22 +0000
+++ b/lisp/align.el     2014-03-21 01:12:57 +0000
@@ -937,7 +937,7 @@
 See `align-rules-list' for more information about these options.
 
 The non-interactive form of the previous example would look something like:
-  \(align-regexp (point-min) (point-max) \"\\\\(\\\\s-*\\\\)(\")
+  (align-regexp (point-min) (point-max) \"\\\\(\\\\s-*\\\\)(\")
 
 This function is a nothing more than a small wrapper that helps you
 construct a rule to pass to `align-region', which does the real work."

=== modified file 'lisp/electric.el'
--- a/lisp/electric.el  2014-03-20 17:14:45 +0000
+++ b/lisp/electric.el  2014-03-21 07:19:21 +0000
@@ -228,6 +228,10 @@
 mode set `electric-indent-inhibit', but this can be used as a workaround.")
 
 (defun electric-indent-post-self-insert-function ()
+  "Function that `electric-indent-mode' adds to `post-self-insert-hook'.
+This indents if the hook `electric-indent-functions' returns non-nil,
+or if a member of `electric-indent-chars' was typed; but not in a string
+or comment."
   ;; FIXME: This reindents the current line, but what we really want instead is
   ;; to reindent the whole affected text.  That's the current line for simple
   ;; cases, but not all cases.  We do take care of the newline case in an
@@ -286,7 +290,8 @@
   (let ((electric-indent-mode nil))
     (newline arg 'interactive)))
 
-;;;###autoload(define-key global-map "\C-j" 'electric-newline-and-maybe-indent)
+;;;###autoload
+(define-key global-map "\C-j" 'electric-newline-and-maybe-indent)
 ;;;###autoload
 (defun electric-newline-and-maybe-indent ()
   "Insert a newline.

=== modified file 'lisp/emacs-lisp/package.el'
--- a/lisp/emacs-lisp/package.el        2014-03-19 16:14:26 +0000
+++ b/lisp/emacs-lisp/package.el        2014-03-21 06:06:52 +0000
@@ -923,10 +923,10 @@
             (setq already pkg)))
       (cond
        (already
-        (if (version-list-< next-version (package-desc-version already))
+        (if (version-list-<= next-version (package-desc-version already))
             ;; Move to front, so it gets installed early enough (bug#14082).
             (setq packages (cons already (delq already packages)))
-          (error "Need package `%s-%s', but only %s is available"
+          (error "Need package `%s-%s', but only %s is being installed"
                  next-pkg (package-version-join next-version)
                  (package-version-join (package-desc-version already)))))
 

=== modified file 'lisp/ffap.el'
--- a/lisp/ffap.el      2014-02-10 01:34:22 +0000
+++ b/lisp/ffap.el      2014-03-21 01:12:57 +0000
@@ -164,9 +164,9 @@
   :version "24.3")
 
 (defcustom ffap-ftp-default-user "anonymous"
-  "User name in ftp file names generated by `ffap-host-to-path'.
+  "User name in FTP file names generated by `ffap-host-to-path'.
 Note this name may be omitted if it equals the default
-\(either `efs-default-user' or `ange-ftp-default-user'\)."
+\(either `efs-default-user' or `ange-ftp-default-user')."
   :type 'string
   :group 'ffap)
 
@@ -185,7 +185,7 @@
    "\\|"
    "\\(ftp\\|https?\\|telnet\\|gopher\\|www\\|wais\\)://" ; needs host
    "\\)")
-  "Regexp matching the beginning of a URI, for FFAP.
+  "Regexp matching the beginning of a URI, for ffap.
 If the value is nil, disable URL-matching features in ffap.")
 
 (defcustom ffap-foo-at-bar-prefix "mailto"
@@ -228,7 +228,7 @@
   :group 'ffap)
 
 (defcustom ffap-pass-wildcards-to-dired nil
-  "If non-nil, pass filenames matching `ffap-dired-wildcards' to dired."
+  "If non-nil, pass filenames matching `ffap-dired-wildcards' to Dired."
   :type 'boolean
   :group 'ffap)
 
@@ -291,8 +291,8 @@
 
 (defcustom dired-at-point-require-prefix nil
   "If non-nil, reverse the prefix argument to `dired-at-point'.
-This is nil so neophytes notice FFAP.  Experts may prefer to
-disable FFAP most of the time."
+This is nil so neophytes notice ffap.  Experts may prefer to
+disable ffap most of the time."
   :type 'boolean
   :group 'ffap
   :version "20.3")
@@ -343,7 +343,7 @@
   "Search buffer for next file or URL, and run ffap.
 Optional argument BACK says to search backwards.
 Optional argument WRAP says to try wrapping around if necessary.
-Interactively: use a single prefix to search backwards,
+Interactively: use a single prefix \\[universal-argument] to search backwards,
 double prefix to wrap forward, triple to wrap backwards.
 Actual search is done by the function `ffap-next-guess'."
   (interactive
@@ -413,7 +413,7 @@
 Depending on the domain (none, known, or unknown), follow the strategy
 named by the variable `ffap-machine-p-local', `ffap-machine-p-known',
 or `ffap-machine-p-unknown'.  Pinging uses `open-network-stream'.
-Optional SERVICE specifies the port used \(default \"discard\"\).
+Optional SERVICE specifies the port used (default \"discard\").
 Optional QUIET flag suppresses the \"Pinging...\" message.
 Optional STRATEGY overrides the three variables above.
 Returned values:
@@ -642,7 +642,7 @@
 
 (defun ffap-list-env (env &optional empty)
   "Return a list of strings parsed from environment variable ENV.
-Optional EMPTY is the default list if \(getenv ENV\) is undefined, and
+Optional EMPTY is the default list if (getenv ENV) is undefined, and
 also is substituted for the first empty-string component, if there is one.
 Uses `path-separator' to separate the path into substrings."
   ;; We cannot use parse-colon-path (files.el), since it kills
@@ -787,12 +787,12 @@
      . ffap-rfc)                       ; "100% RFC2100 compliant"
     (dired-mode . ffap-dired)          ; maybe in a subdirectory
     )
-  "Alist of \(KEY . FUNCTION\) pairs parsed by `ffap-file-at-point'.
+  "Alist of (KEY . FUNCTION) pairs parsed by `ffap-file-at-point'.
 If string NAME at point (maybe \"\") is not a file or URL, these pairs
 specify actions to try creating such a string.  A pair matches if either
   KEY is a symbol, and it equals `major-mode', or
   KEY is a string, it should match NAME as a regexp.
-On a match, \(FUNCTION NAME\) is called and should return a file, an
+On a match, (FUNCTION NAME) is called and should return a file, an
 URL, or nil.  If nil, search the alist for further matches.")
 
 (put 'ffap-alist 'risky-local-variable t)
@@ -980,7 +980,7 @@
 (defcustom ffap-rfc-path
   (concat (ffap-host-to-filename "ftp.rfc-editor.org") "/in-notes/rfc%s.txt")
   "A `format' string making a filename for RFC documents.
-This can be an ange-ftp or tramp remote filename to download, or
+This can be an ange-ftp or Tramp remote filename to download, or
 a local filename if you have full set of RFCs locally.  See also
 `ffap-rfc-directories'."
   :type 'string
@@ -1018,8 +1018,8 @@
     ;; Mathematica paths: allow backquotes
     (math-mode ",-:$+<>@-Z_[:lower:]~`" "<" "@>;.,!?`:")
     )
-  "Alist of \(MODE CHARS BEG END\), where MODE is a symbol,
-possibly a major-mode name, or one of the symbol
+  "Alist of (MODE CHARS BEG END), where MODE is a symbol,
+possibly a major-mode name, or one of the symbols
 `file', `url', `machine', and `nocolon'.
 Function `ffap-string-at-point' uses the data fields as follows:
 1. find a maximal string of CHARS around point,
@@ -1032,8 +1032,8 @@
 
 (defun ffap-string-at-point (&optional mode)
   "Return a string of characters from around point.
-MODE (defaults to value of `major-mode') is a symbol used to look up string
-syntax parameters in `ffap-string-at-point-mode-alist'.
+MODE (defaults to value of `major-mode') is a symbol used to look up
+string syntax parameters in `ffap-string-at-point-mode-alist'.
 If MODE is not found, we use `file' instead of MODE.
 If the region is active, return a string from the region.
 Sets the variable `ffap-string-at-point' and the variable
@@ -1143,7 +1143,7 @@
    ;; Icky regexp avoids: default: 123: foo::bar cs:pub
    ;; It does match on: address@hidden: cs:/pub mathcs.emory.edu: (point at 
end)
    
"\\`\\([^:@address@hidden:@]+:\\|address@hidden:]+\\.[^@:]+:\\|[^:]+:[~/]\\)\\([^:]\\|\\'\\)")
-  "Strings matching this are coerced to ftp file names by ffap.
+  "Strings matching this are coerced to FTP file names by ffap.
 That is, ffap just prepends \"/\".  Set to nil to disable.")
 
 (defun ffap-file-at-point ()
@@ -1445,7 +1445,7 @@
 (defcustom ffap-menu-regexp nil
   "If non-nil, regexp overriding `ffap-next-regexp' in `ffap-menu'.
 Make this more restrictive for faster menu building.
-For example, try \":/\" for URL (and some ftp) references."
+For example, try \":/\" for URL (and some FTP) references."
   :type '(choice (const nil) regexp)
   :group 'ffap)
 
@@ -1465,7 +1465,7 @@
   "Put up a menu of files and URLs mentioned in this buffer.
 Then set mark, jump to choice, and try to fetch it.  The menu is
 cached in `ffap-menu-alist', and rebuilt by `ffap-menu-rescan'.
-The optional RESCAN argument \(a prefix, interactively\) forces
+The optional RESCAN argument (a prefix, interactively) forces
 a rebuild.  Searches with `ffap-menu-regexp'."
   (interactive "P")
   ;; (require 'imenu) -- no longer used, but roughly emulated
@@ -1498,7 +1498,7 @@
 
 (defun ffap-menu-ask (title alist cont)
   "Prompt from a menu of choices, and then apply some action.
-Arguments are TITLE, ALIST, and CONT \(a continuation function\).
+Arguments are TITLE, ALIST, and CONT (a continuation function).
 This uses either a menu or the minibuffer depending on invocation.
 The TITLE string is used as either the prompt or menu title.
 Each ALIST entry looks like (STRING . DATA) and defines one choice.

=== modified file 'lisp/net/tramp-sh.el'
--- a/lisp/net/tramp-sh.el      2014-03-17 09:28:47 +0000
+++ b/lisp/net/tramp-sh.el      2014-03-21 13:02:25 +0000
@@ -227,6 +227,8 @@
   '("sudo"
     (tramp-login-program        "sudo")
     (tramp-login-args           (("-u" "%u") ("-s") ("-H") ("-p" "Password:")))
+    ;; Local $SHELL could be a nasty one, like zsh or fish.  Let's override it.
+    (tramp-login-env            (("SHELL") ("/bin/sh")))
     (tramp-remote-shell         "/bin/sh")
     (tramp-remote-shell-args    ("-c"))
     (tramp-connection-timeout   10)))
@@ -4492,6 +4494,9 @@
                         (login-args
                          (tramp-get-method-parameter
                           l-method 'tramp-login-args))
+                        (login-env
+                         (tramp-get-method-parameter
+                          l-method 'tramp-login-env))
                         (async-args
                          (tramp-get-method-parameter
                           l-method 'tramp-async-args))
@@ -4549,6 +4554,24 @@
                          tramp-current-user   (or g-user   l-user)
                          tramp-current-host   (or g-host   l-host))
 
+                   ;; Add login environment.
+                   (when login-env
+                     (setq
+                      login-env
+                      (mapcar
+                       (lambda (x)
+                         (setq x (mapcar (lambda (y) (format-spec y spec)) x))
+                         (unless (member "" x) (mapconcat 'identity x " ")))
+                       login-env))
+                     (while login-env
+                       (setq command
+                             (format
+                              "%s=%s %s"
+                              (pop login-env)
+                              (tramp-shell-quote-argument (pop login-env))
+                              command)))
+                     (setq command (concat "env " command)))
+
                    ;; Replace `login-args' place holders.
                    (setq
                     l-host (or l-host "")

=== modified file 'lisp/net/tramp.el'
--- a/lisp/net/tramp.el 2014-03-17 09:28:47 +0000
+++ b/lisp/net/tramp.el 2014-03-21 13:02:25 +0000
@@ -230,6 +230,9 @@
     `tramp-make-tramp-temp-file'.  \"%k\" indicates the keep-date
     parameter of a program, if exists.  \"%c\" adds additional
     `tramp-ssh-controlmaster-options' options for the first hop.
+  * `tramp-login-env'
+     A list of environment variables and their values, which will
+     be set when calling `tramp-login-program'.
   * `tramp-async-args'
     When an asynchronous process is started, we know already that
     the connection works.  Therefore, we can pass additional
@@ -242,6 +245,9 @@
   * `tramp-copy-args'
     This specifies the list of parameters to pass to the above mentioned
     program, the hints for `tramp-login-args' also apply here.
+  * `tramp-copy-env'
+     A list of environment variables and their values, which will
+     be set when calling `tramp-copy-program'.
   * `tramp-copy-keep-date'
     This specifies whether the copying program when the preserves the
     timestamp of the original file.

=== modified file 'lisp/nxml/nxml-enc.el'
--- a/lisp/nxml/nxml-enc.el     2014-01-01 07:43:34 +0000
+++ b/lisp/nxml/nxml-enc.el     2014-03-21 06:56:55 +0000
@@ -3,7 +3,7 @@
 ;; Copyright (C) 2003, 2007-2014 Free Software Foundation, Inc.
 
 ;; Author: James Clark
-;; Keywords: XML
+;; Keywords: wp, hypermedia, languages, XML
 
 ;; This file is part of GNU Emacs.
 

=== modified file 'lisp/nxml/nxml-glyph.el'
--- a/lisp/nxml/nxml-glyph.el   2014-01-01 07:43:34 +0000
+++ b/lisp/nxml/nxml-glyph.el   2014-03-21 06:56:55 +0000
@@ -3,7 +3,7 @@
 ;; Copyright (C) 2003, 2007-2014 Free Software Foundation, Inc.
 
 ;; Author: James Clark
-;; Keywords: XML
+;; Keywords: wp, hypermedia, languages, XML
 
 ;; This file is part of GNU Emacs.
 

=== modified file 'lisp/nxml/nxml-maint.el'
--- a/lisp/nxml/nxml-maint.el   2014-01-01 07:43:34 +0000
+++ b/lisp/nxml/nxml-maint.el   2014-03-21 06:56:55 +0000
@@ -3,7 +3,7 @@
 ;; Copyright (C) 2003, 2007-2014 Free Software Foundation, Inc.
 
 ;; Author: James Clark
-;; Keywords: XML
+;; Keywords: wp, hypermedia, languages, XML
 
 ;; This file is part of GNU Emacs.
 

=== modified file 'lisp/nxml/nxml-mode.el'
--- a/lisp/nxml/nxml-mode.el    2014-01-25 19:15:42 +0000
+++ b/lisp/nxml/nxml-mode.el    2014-03-21 06:56:55 +0000
@@ -3,7 +3,7 @@
 ;; Copyright (C) 2003-2004, 2007-2014 Free Software Foundation, Inc.
 
 ;; Author: James Clark
-;; Keywords: XML
+;; Keywords: wp, hypermedia, languages, XML
 
 ;; This file is part of GNU Emacs.
 

=== modified file 'lisp/nxml/nxml-ns.el'
--- a/lisp/nxml/nxml-ns.el      2014-01-01 07:43:34 +0000
+++ b/lisp/nxml/nxml-ns.el      2014-03-21 06:56:55 +0000
@@ -3,7 +3,7 @@
 ;; Copyright (C) 2003, 2007-2014 Free Software Foundation, Inc.
 
 ;; Author: James Clark
-;; Keywords: XML
+;; Keywords: wp, hypermedia, languages, XML
 
 ;; This file is part of GNU Emacs.
 

=== modified file 'lisp/nxml/nxml-outln.el'
--- a/lisp/nxml/nxml-outln.el   2014-01-01 07:43:34 +0000
+++ b/lisp/nxml/nxml-outln.el   2014-03-21 06:56:55 +0000
@@ -3,7 +3,7 @@
 ;; Copyright (C) 2004, 2007-2014 Free Software Foundation, Inc.
 
 ;; Author: James Clark
-;; Keywords: XML
+;; Keywords: wp, hypermedia, languages, XML
 
 ;; This file is part of GNU Emacs.
 

=== modified file 'lisp/nxml/nxml-parse.el'
--- a/lisp/nxml/nxml-parse.el   2014-01-01 07:43:34 +0000
+++ b/lisp/nxml/nxml-parse.el   2014-03-21 06:56:55 +0000
@@ -3,7 +3,7 @@
 ;; Copyright (C) 2003, 2007-2014 Free Software Foundation, Inc.
 
 ;; Author: James Clark
-;; Keywords: XML
+;; Keywords: wp, hypermedia, languages, XML
 
 ;; This file is part of GNU Emacs.
 

=== modified file 'lisp/nxml/nxml-rap.el'
--- a/lisp/nxml/nxml-rap.el     2014-01-01 07:43:34 +0000
+++ b/lisp/nxml/nxml-rap.el     2014-03-21 06:56:55 +0000
@@ -3,7 +3,7 @@
 ;; Copyright (C) 2003-2004, 2007-2014 Free Software Foundation, Inc.
 
 ;; Author: James Clark
-;; Keywords: XML
+;; Keywords: wp, hypermedia, languages, XML
 
 ;; This file is part of GNU Emacs.
 

=== modified file 'lisp/nxml/nxml-uchnm.el'
--- a/lisp/nxml/nxml-uchnm.el   2014-01-01 07:43:34 +0000
+++ b/lisp/nxml/nxml-uchnm.el   2014-03-21 06:56:55 +0000
@@ -3,7 +3,7 @@
 ;; Copyright (C) 2003, 2007-2014 Free Software Foundation, Inc.
 
 ;; Author: James Clark
-;; Keywords: XML
+;; Keywords: wp, hypermedia, languages, XML
 
 ;; This file is part of GNU Emacs.
 

=== modified file 'lisp/nxml/nxml-util.el'
--- a/lisp/nxml/nxml-util.el    2014-01-01 07:43:34 +0000
+++ b/lisp/nxml/nxml-util.el    2014-03-21 06:56:55 +0000
@@ -3,7 +3,7 @@
 ;; Copyright (C) 2003, 2007-2014 Free Software Foundation, Inc.
 
 ;; Author: James Clark
-;; Keywords: XML
+;; Keywords: wp, hypermedia, languages, XML
 
 ;; This file is part of GNU Emacs.
 

=== modified file 'lisp/nxml/rng-cmpct.el'
--- a/lisp/nxml/rng-cmpct.el    2014-01-01 07:43:34 +0000
+++ b/lisp/nxml/rng-cmpct.el    2014-03-21 06:56:55 +0000
@@ -3,7 +3,7 @@
 ;; Copyright (C) 2003, 2007-2014 Free Software Foundation, Inc.
 
 ;; Author: James Clark
-;; Keywords: XML, RelaxNG
+;; Keywords: wp, hypermedia, languages, XML, RelaxNG
 
 ;; This file is part of GNU Emacs.
 

=== modified file 'lisp/nxml/rng-dt.el'
--- a/lisp/nxml/rng-dt.el       2014-01-01 07:43:34 +0000
+++ b/lisp/nxml/rng-dt.el       2014-03-21 06:56:55 +0000
@@ -3,7 +3,7 @@
 ;; Copyright (C) 2003, 2007-2014 Free Software Foundation, Inc.
 
 ;; Author: James Clark
-;; Keywords: XML, RelaxNG
+;; Keywords: wp, hypermedia, languages, XML, RelaxNG
 
 ;; This file is part of GNU Emacs.
 

=== modified file 'lisp/nxml/rng-loc.el'
--- a/lisp/nxml/rng-loc.el      2014-01-01 07:43:34 +0000
+++ b/lisp/nxml/rng-loc.el      2014-03-21 06:56:55 +0000
@@ -3,7 +3,7 @@
 ;; Copyright (C) 2003, 2007-2014 Free Software Foundation, Inc.
 
 ;; Author: James Clark
-;; Keywords: XML, RelaxNG
+;; Keywords: wp, hypermedia, languages, XML, RelaxNG
 
 ;; This file is part of GNU Emacs.
 

=== modified file 'lisp/nxml/rng-maint.el'
--- a/lisp/nxml/rng-maint.el    2014-01-01 07:43:34 +0000
+++ b/lisp/nxml/rng-maint.el    2014-03-21 06:56:55 +0000
@@ -3,7 +3,7 @@
 ;; Copyright (C) 2003, 2007-2014 Free Software Foundation, Inc.
 
 ;; Author: James Clark
-;; Keywords: XML, RelaxNG
+;; Keywords: wp, hypermedia, languages, XML, RelaxNG
 
 ;; This file is part of GNU Emacs.
 

=== modified file 'lisp/nxml/rng-match.el'
--- a/lisp/nxml/rng-match.el    2014-01-01 07:43:34 +0000
+++ b/lisp/nxml/rng-match.el    2014-03-21 06:56:55 +0000
@@ -3,7 +3,7 @@
 ;; Copyright (C) 2003, 2007-2014 Free Software Foundation, Inc.
 
 ;; Author: James Clark
-;; Keywords: XML, RelaxNG
+;; Keywords: wp, hypermedia, languages, XML, RelaxNG
 
 ;; This file is part of GNU Emacs.
 

=== modified file 'lisp/nxml/rng-nxml.el'
--- a/lisp/nxml/rng-nxml.el     2014-01-01 07:43:34 +0000
+++ b/lisp/nxml/rng-nxml.el     2014-03-21 06:56:55 +0000
@@ -3,7 +3,7 @@
 ;; Copyright (C) 2003, 2007-2014 Free Software Foundation, Inc.
 
 ;; Author: James Clark
-;; Keywords: XML, RelaxNG
+;; Keywords: wp, hypermedia, languages, XML, RelaxNG
 
 ;; This file is part of GNU Emacs.
 

=== modified file 'lisp/nxml/rng-parse.el'
--- a/lisp/nxml/rng-parse.el    2014-01-01 07:43:34 +0000
+++ b/lisp/nxml/rng-parse.el    2014-03-21 06:56:55 +0000
@@ -3,7 +3,7 @@
 ;; Copyright (C) 2003, 2007-2014 Free Software Foundation, Inc.
 
 ;; Author: James Clark
-;; Keywords: XML, RelaxNG
+;; Keywords: wp, hypermedia, languages, XML, RelaxNG
 
 ;; This file is part of GNU Emacs.
 

=== modified file 'lisp/nxml/rng-pttrn.el'
--- a/lisp/nxml/rng-pttrn.el    2014-01-01 07:43:34 +0000
+++ b/lisp/nxml/rng-pttrn.el    2014-03-21 06:56:55 +0000
@@ -3,7 +3,7 @@
 ;; Copyright (C) 2003, 2007-2014 Free Software Foundation, Inc.
 
 ;; Author: James Clark
-;; Keywords: XML, RelaxNG
+;; Keywords: wp, hypermedia, languages, XML, RelaxNG
 
 ;; This file is part of GNU Emacs.
 

=== modified file 'lisp/nxml/rng-uri.el'
--- a/lisp/nxml/rng-uri.el      2014-01-01 07:43:34 +0000
+++ b/lisp/nxml/rng-uri.el      2014-03-21 06:56:55 +0000
@@ -3,7 +3,7 @@
 ;; Copyright (C) 2003, 2007-2014 Free Software Foundation, Inc.
 
 ;; Author: James Clark
-;; Keywords: XML
+;; Keywords: wp, hypermedia, languages, XML
 
 ;; This file is part of GNU Emacs.
 

=== modified file 'lisp/nxml/rng-util.el'
--- a/lisp/nxml/rng-util.el     2014-01-01 07:43:34 +0000
+++ b/lisp/nxml/rng-util.el     2014-03-21 06:56:55 +0000
@@ -3,7 +3,7 @@
 ;; Copyright (C) 2003, 2007-2014 Free Software Foundation, Inc.
 
 ;; Author: James Clark
-;; Keywords: XML, RelaxNG
+;; Keywords: wp, hypermedia, languages, XML, RelaxNG
 
 ;; This file is part of GNU Emacs.
 

=== modified file 'lisp/nxml/rng-valid.el'
--- a/lisp/nxml/rng-valid.el    2014-01-01 07:43:34 +0000
+++ b/lisp/nxml/rng-valid.el    2014-03-21 06:56:55 +0000
@@ -3,7 +3,7 @@
 ;; Copyright (C) 2003, 2007-2014 Free Software Foundation, Inc.
 
 ;; Author: James Clark
-;; Keywords: XML, RelaxNG
+;; Keywords: wp, hypermedia, languages, XML, RelaxNG
 
 ;; This file is part of GNU Emacs.
 

=== modified file 'lisp/nxml/rng-xsd.el'
--- a/lisp/nxml/rng-xsd.el      2014-01-01 07:43:34 +0000
+++ b/lisp/nxml/rng-xsd.el      2014-03-21 06:56:55 +0000
@@ -3,7 +3,7 @@
 ;; Copyright (C) 2003, 2007-2014 Free Software Foundation, Inc.
 
 ;; Author: James Clark
-;; Keywords: XML, RelaxNG
+;; Keywords: wp, hypermedia, languages, XML, RelaxNG
 
 ;; This file is part of GNU Emacs.
 

=== modified file 'lisp/nxml/xmltok.el'
--- a/lisp/nxml/xmltok.el       2014-01-01 07:43:34 +0000
+++ b/lisp/nxml/xmltok.el       2014-03-21 06:56:55 +0000
@@ -3,7 +3,7 @@
 ;; Copyright (C) 2003, 2007-2014 Free Software Foundation, Inc.
 
 ;; Author: James Clark
-;; Keywords: XML
+;; Keywords: wp, hypermedia, languages, XML
 
 ;; This file is part of GNU Emacs.
 

=== modified file 'lisp/nxml/xsd-regexp.el'
--- a/lisp/nxml/xsd-regexp.el   2014-01-01 07:43:34 +0000
+++ b/lisp/nxml/xsd-regexp.el   2014-03-21 06:56:55 +0000
@@ -3,7 +3,7 @@
 ;; Copyright (C) 2003, 2007-2014 Free Software Foundation, Inc.
 
 ;; Author: James Clark
-;; Keywords: XML, regexp
+;; Keywords: wp, hypermedia, languages, XML, regexp
 
 ;; This file is part of GNU Emacs.
 

=== modified file 'lisp/progmodes/ruby-mode.el'
--- a/lisp/progmodes/ruby-mode.el       2014-03-13 13:37:27 +0000
+++ b/lisp/progmodes/ruby-mode.el       2014-03-21 04:26:39 +0000
@@ -650,6 +650,10 @@
        ;; because we want to reject hanging tokens at bol, too.
        (unless (or (eolp) (forward-comment 1))
          (cons 'column (current-column)))))
+    (`(:before . " @ ")
+     (save-excursion
+       (skip-chars-forward " \t")
+       (cons 'column (current-column))))
     (`(:before . "do") (ruby-smie--indent-to-stmt))
     (`(:before . ".")
      (if (smie-rule-sibling-p)

=== modified file 'lisp/server.el'
--- a/lisp/server.el    2014-02-10 01:34:22 +0000
+++ b/lisp/server.el    2014-03-21 01:12:57 +0000
@@ -104,10 +104,10 @@
   "The name or IP address to use as host address of the server process.
 If set, the server accepts remote connections; otherwise it is local.
 
-DO NOT give this a non-nil value unless you know what you are
-doing!  On unsecured networks, accepting remote connections is
-very dangerous, because server-client communication (including
-session authentication) is not encrypted."
+DO NOT give this a non-nil value unless you know what you are doing!
+On unsecured networks, accepting remote connections is very dangerous,
+because server-client communication (including session authentication)
+is not encrypted."
   :group 'server
   :type '(choice
           (string :tag "Name or IP address")
@@ -1634,7 +1634,7 @@
 (define-key ctl-x-map "#" 'server-edit)
 
 (defun server-unload-function ()
-  "Unload the server library."
+  "Unload the Server library."
   (server-mode -1)
   (substitute-key-definition 'server-edit nil ctl-x-map)
   (save-current-buffer
@@ -1648,7 +1648,7 @@
   "Contact the Emacs server named SERVER and evaluate FORM there.
 Returns the result of the evaluation, or signals an error if it
 cannot contact the specified server.  For example:
-  \(server-eval-at \"server\" '(emacs-pid))
+  (server-eval-at \"server\" '(emacs-pid))
 returns the process ID of the Emacs instance running \"server\"."
   (let* ((server-dir (if server-use-tcp server-auth-dir server-socket-dir))
         (server-file (expand-file-name server server-dir))

=== modified file 'lisp/skeleton.el'
--- a/lisp/skeleton.el  2014-03-20 18:13:16 +0000
+++ b/lisp/skeleton.el  2014-03-21 19:04:57 +0000
@@ -180,7 +180,7 @@
 With optional second argument REGIONS, wrap first interesting point
 \(`_') in skeleton around next REGIONS words, if REGIONS is positive.
 If REGIONS is negative, wrap REGIONS preceding interregions into first
-REGIONS interesting positions \(successive `_'s) in skeleton.
+REGIONS interesting positions (successive `_'s) in skeleton.
 
 An interregion is the stretch of text between two contiguous marked
 points.  If you marked A B C [] (where [] is the cursor) in
@@ -205,21 +205,21 @@
        @       add position to `skeleton-positions'
        &       do next ELEMENT if previous moved point
        |       do next ELEMENT if previous didn't move point
-       -num    delete num preceding characters (see `skeleton-untabify')
+       -NUM    delete NUM preceding characters (see `skeleton-untabify')
        resume: skipped, continue here if quit is signaled
        nil     skipped
 
 After termination, point will be positioned at the last occurrence of -
 or at the first occurrence of _ or at the end of the inserted text.
 
-Further elements can be defined via `skeleton-further-elements'.  ELEMENT may
-itself be a SKELETON with an INTERACTOR.  The user is prompted repeatedly for
-different inputs.  The SKELETON is processed as often as the user enters a
-non-empty string.  \\[keyboard-quit] terminates skeleton insertion, but
-continues after `resume:' and positions at `_' if any.  If INTERACTOR in such
-a subskeleton is a prompt-string which contains a \".. %s ..\" it is
-formatted with `skeleton-subprompt'.  Such an INTERACTOR may also be a list of
-strings with the subskeleton being repeated once for each string.
+Further elements can be defined via `skeleton-further-elements'.
+ELEMENT may itself be a SKELETON with an INTERACTOR.  The user is prompted
+repeatedly for different inputs.  The SKELETON is processed as often as
+the user enters a non-empty string.  \\[keyboard-quit] terminates skeleton 
insertion, but
+continues after `resume:' and positions at `_' if any.  If INTERACTOR in
+such a subskeleton is a prompt-string which contains a \".. %s ..\" it is
+formatted with `skeleton-subprompt'.  Such an INTERACTOR may also be a list
+of strings with the subskeleton being repeated once for each string.
 
 Quoted Lisp expressions are evaluated for their side-effects.
 Other Lisp expressions are evaluated and the value treated as above.

=== modified file 'lisp/term/tty-colors.el'
--- a/lisp/term/tty-colors.el   2014-02-10 01:34:22 +0000
+++ b/lisp/term/tty-colors.el   2014-03-21 01:12:57 +0000
@@ -771,7 +771,7 @@
   "Return an alist of colors supported by FRAME's terminal.
 FRAME defaults to the selected frame.
 Each element of the returned alist is of the form:
- \(NAME INDEX R G B\)
+ (NAME INDEX R G B)
 where NAME is the name of the color, a string;
 INDEX is the index of this color to be sent to the terminal driver
 when the color should be displayed; it is typically a small integer;
@@ -785,10 +785,10 @@
 
 (defun tty-modify-color-alist (elt &optional frame)
   "Put the association ELT into the alist of terminal colors for FRAME.
-ELT should be of the form  \(NAME INDEX R G B\) (see `tty-color-alist'
+ELT should be of the form  (NAME INDEX R G B) (see `tty-color-alist'
 for details).
 If the association for NAME already exists in the color alist, it is
-modified to specify \(INDEX R G B\) as its cdr.  Otherwise, ELT is
+modified to specify (INDEX R G B) as its cdr.  Otherwise, ELT is
 appended to the end of the color alist.
 If FRAME is unspecified or nil, it defaults to the selected frame.
 Value is the modified color alist for FRAME."
@@ -856,7 +856,7 @@
 
 (defun tty-color-approximate (rgb &optional frame)
   "Find the color in `tty-color-alist' that best approximates RGB.
-Value is a list of the form \(NAME INDEX R G B\).
+Value is a list of the form (NAME INDEX R G B).
 The argument RGB should be an rgb value, that is, a list of three
 integers in the 0..65535 range.
 FRAME defaults to the selected frame."
@@ -981,7 +981,7 @@
   "Given a numeric index of a tty color, return its description.
 
 FRAME, if unspecified or nil, defaults to the selected frame.
-Value is a list of the form \(NAME INDEX R G B\)."
+Value is a list of the form (NAME INDEX R G B)."
   (and idx
        (let ((colors (tty-color-alist frame))
             desc found)
@@ -997,14 +997,14 @@
 
 If COLOR is not directly supported by the display, return the RGB
 values for a supported color that is its best approximation.
-The value is a list of integer RGB values--\(RED GREEN BLUE\).
+The value is a list of integer RGB values--(RED GREEN BLUE).
 These values range from 0 to 65535; white is (65535 65535 65535).
 If FRAME is omitted or nil, use the selected frame."
   (cddr (tty-color-desc color frame)))
 
 (defun tty-color-desc (color &optional frame)
   "Return the description of the color COLOR for a character terminal.
-Value is a list of the form \(NAME INDEX R G B\).  The returned NAME or
+Value is a list of the form (NAME INDEX R G B).  The returned NAME or
 RGB value may not be the same as the argument COLOR, because the latter
 might need to be approximated if it is not supported directly."
   (and (stringp color)

=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2014-03-21 17:04:50 +0000
+++ b/src/ChangeLog     2014-03-21 19:04:57 +0000
@@ -1,3 +1,15 @@
+2014-03-21  YAMAMOTO Mitsuharu  <address@hidden>
+
+       Fix regression introduced by patch for Bug#10500.
+       * xterm.c (x_draw_image_relief): Respect Vtool_bar_button_margin.
+       * w32term.c (x_draw_image_relief): Likewise.
+
+2014-03-21  Martin Rudalics  <address@hidden>
+
+       * w32fns.c (w32_wnd_proc): For WM_WINDOWPOSCHANGING don't
+       constrain frame size in SW_SHOWMAXIMIZED case so we can truly
+       maximize a frame for odd default fonts.
+
 2014-03-21  Glenn Morris  <address@hidden>
 
        * minibuf.c (history-length): Increase default from 30 to 100.

=== modified file 'src/w32fns.c'
--- a/src/w32fns.c      2014-03-21 08:51:02 +0000
+++ b/src/w32fns.c      2014-03-21 19:04:57 +0000
@@ -3805,7 +3805,8 @@
        wp.length = sizeof (WINDOWPLACEMENT);
        GetWindowPlacement (hwnd, &wp);
 
-       if (wp.showCmd != SW_SHOWMINIMIZED && (lppos->flags & SWP_NOSIZE) == 0)
+       if (wp.showCmd != SW_SHOWMAXIMIZED && wp.showCmd != SW_SHOWMINIMIZED
+           && (lppos->flags & SWP_NOSIZE) == 0)
          {
            RECT rect;
            int wdiff;

=== modified file 'src/w32term.c'
--- a/src/w32term.c     2014-03-14 10:38:46 +0000
+++ b/src/w32term.c     2014-03-21 10:14:10 +0000
@@ -1892,6 +1892,7 @@
 x_draw_image_relief (struct glyph_string *s)
 {
   int x1, y1, thick, raised_p, top_p, bot_p, left_p, right_p;
+  int extra_x, extra_y;
   RECT r;
   int x = s->x;
   int y = s->ybase - image_ascent (s->img, s->face, &s->slice);
@@ -1925,16 +1926,31 @@
 
   x1 = x + s->slice.width - 1;
   y1 = y + s->slice.height - 1;
+
+  extra_x = extra_y = 0;
+  if (s->face->id == TOOL_BAR_FACE_ID)
+    {
+      if (CONSP (Vtool_bar_button_margin)
+         && INTEGERP (XCAR (Vtool_bar_button_margin))
+         && INTEGERP (XCDR (Vtool_bar_button_margin)))
+       {
+         extra_x = XINT (XCAR (Vtool_bar_button_margin));
+         extra_y = XINT (XCDR (Vtool_bar_button_margin));
+       }
+      else if (INTEGERP (Vtool_bar_button_margin))
+       extra_x = extra_y = XINT (Vtool_bar_button_margin);
+    }
+
   top_p = bot_p = left_p = right_p = 0;
 
   if (s->slice.x == 0)
-    x -= thick, left_p = 1;
+    x -= thick + extra_x, left_p = 1;
   if (s->slice.y == 0)
-    y -= thick, top_p = 1;
+    y -= thick + extra_y, top_p = 1;
   if (s->slice.x + s->slice.width == s->img->width)
-    x1 += thick, right_p = 1;
+    x1 += thick + extra_x, right_p = 1;
   if (s->slice.y + s->slice.height == s->img->height)
-    y1 += thick, bot_p = 1;
+    y1 += thick + extra_y, bot_p = 1;
 
   x_setup_relief_colors (s);
   get_glyph_string_clip_rect (s, &r);
@@ -5651,21 +5667,11 @@
   if (!frame_resize_pixelwise)
     {
       /* If we don't resize frames pixelwise, round sizes to multiples
-        of character sizes.  Otherwise, Windows may clip our frame
-        rectangle at a character size boundary and we risk losing our
-        mode line.  Bug#16923 might be a consequence of this.
-
-        So far, this is a Windows specific problem; other toolkits may
-        prefer to not resize the frame if the delta is not large enough
-        (GTK) or resize the frame pixelwise as requested (Lucid,
-        Motif).  Windows just doesn't call us back (probably because of
-        the size hint settings which it apparently interprets strictly)
-        neither when the user tries to mouse-drag a frame border by,
-        nor when calling `set-frame-size' with a delta of less than the
-        canonical character size.  If w32_enable_frame_resize_hack is
-        enabled (which it now is by default) we'd then below resize the
-        frame's root window in preparation of a WM_SIZE message to come
-        which, however, is not going to happen. */
+        of character sizes here.  Otherwise, when enforcing size hints
+        while processing WM_WINDOWPOSCHANGING in w32_wnd_proc, we might
+        clip our frame rectangle to a multiple of the frame's character
+        size and subsequently lose our mode line or scroll bar.
+        Bug#16923 could be one possible consequence of this.  */
       int unit_width = FRAME_COLUMN_WIDTH (f);
       int unit_height = FRAME_LINE_HEIGHT (f);
 
@@ -5695,9 +5701,7 @@
   }
 
   /* If w32_enable_frame_resize_hack is non-nil, immediately apply the
-     new pixel sizes to the frame and its subwindows.  This approach is
-     fragile because Windows might not honor the resize request issued
-     by my_set_window_pos with a WM_SIZE message (see previous comment).
+     new pixel sizes to the frame and its subwindows.
 
      Jason Rumney earlier refused to call change_frame_size right here
      with the following argument:

=== modified file 'src/xterm.c'
--- a/src/xterm.c       2014-03-21 12:10:23 +0000
+++ b/src/xterm.c       2014-03-21 19:04:57 +0000
@@ -2162,6 +2162,7 @@
 x_draw_image_relief (struct glyph_string *s)
 {
   int x1, y1, thick, raised_p, top_p, bot_p, left_p, right_p;
+  int extra_x, extra_y;
   XRectangle r;
   int x = s->x;
   int y = s->ybase - image_ascent (s->img, s->face, &s->slice);
@@ -2194,16 +2195,31 @@
 
   x1 = x + s->slice.width - 1;
   y1 = y + s->slice.height - 1;
+
+  extra_x = extra_y = 0;
+  if (s->face->id == TOOL_BAR_FACE_ID)
+    {
+      if (CONSP (Vtool_bar_button_margin)
+         && INTEGERP (XCAR (Vtool_bar_button_margin))
+         && INTEGERP (XCDR (Vtool_bar_button_margin)))
+       {
+         extra_x = XINT (XCAR (Vtool_bar_button_margin));
+         extra_y = XINT (XCDR (Vtool_bar_button_margin));
+       }
+      else if (INTEGERP (Vtool_bar_button_margin))
+       extra_x = extra_y = XINT (Vtool_bar_button_margin);
+    }
+
   top_p = bot_p = left_p = right_p = 0;
 
   if (s->slice.x == 0)
-    x -= thick, left_p = 1;
+    x -= thick + extra_x, left_p = 1;
   if (s->slice.y == 0)
-    y -= thick, top_p = 1;
+    y -= thick + extra_y, top_p = 1;
   if (s->slice.x + s->slice.width == s->img->width)
-    x1 += thick, right_p = 1;
+    x1 += thick + extra_x, right_p = 1;
   if (s->slice.y + s->slice.height == s->img->height)
-    y1 += thick, bot_p = 1;
+    y1 += thick + extra_y, bot_p = 1;
 
   x_setup_relief_colors (s);
   get_glyph_string_clip_rect (s, &r);

=== modified file 'test/automated/data/package/archive-contents'
--- a/test/automated/data/package/archive-contents      2013-10-01 01:38:37 
+0000
+++ b/test/automated/data/package/archive-contents      2014-03-21 06:06:52 
+0000
@@ -6,6 +6,10 @@
  (simple-depend .
                 [(1 0)
                  ((simple-single (1 3))) "A single-file package with a 
dependency." single])
+ (simple-two-depend .
+                [(1 1)
+                 ((simple-depend (1 0)) (simple-single (1 3)))
+                 "A single-file package with two dependencies." single])
  (multi-file .
              [(0 2 3)
               nil "Example of a multi-file tar package" tar

=== added file 'test/automated/data/package/simple-two-depend-1.1.el'
--- a/test/automated/data/package/simple-two-depend-1.1.el      1970-01-01 
00:00:00 +0000
+++ b/test/automated/data/package/simple-two-depend-1.1.el      2014-03-21 
06:06:52 +0000
@@ -0,0 +1,17 @@
+;;; simple-two-depend.el --- A single-file package with two dependencies.
+
+;; Author: J. R. Hacker <address@hidden>
+;; Version: 1.1
+;; Keywords: frobnicate
+;; Package-Requires: ((simple-depend "1.0") (simple-single "1.3"))
+
+;;; Commentary:
+
+;; Depends on two another packages.
+
+;;; Code:
+
+(defvar simple-two-depend "Value"
+  "Some trivial code")
+
+;;; simple-two-depend.el ends here

=== modified file 'test/automated/package-test.el'
--- a/test/automated/package-test.el    2014-01-01 07:43:34 +0000
+++ b/test/automated/package-test.el    2014-03-21 06:06:52 +0000
@@ -203,12 +203,22 @@
     (should (package-installed-p 'simple-single))
     (should (package-installed-p 'simple-depend))))
 
+(ert-deftest package-test-install-two-dependencies ()
+  "Install a package which includes a dependency."
+  (with-package-test ()
+    (package-initialize)
+    (package-refresh-contents)
+    (package-install 'simple-two-depend)
+    (should (package-installed-p 'simple-single))
+    (should (package-installed-p 'simple-depend))
+    (should (package-installed-p 'simple-two-depend))))
+
 (ert-deftest package-test-refresh-contents ()
   "Parse an \"archive-contents\" file."
   (with-package-test ()
     (package-initialize)
     (package-refresh-contents)
-    (should (eq 3 (length package-archive-contents)))))
+    (should (eq 4 (length package-archive-contents)))))
 
 (ert-deftest package-test-install-single-from-archive ()
   "Install a single package from a package archive."

=== modified file 'test/indent/ruby.rb'
--- a/test/indent/ruby.rb       2014-03-01 22:04:59 +0000
+++ b/test/indent/ruby.rb       2014-03-21 04:26:39 +0000
@@ -379,3 +379,20 @@
    'd' => %w(e f)
  }
 }
+
+# Bug#17050
+
+return render json: {
+                errors: { base: [message] },
+                copying: copying
+              },
+              status: 400
+
+top test(
+      some,
+      top,
+      test)
+
+foo bar, {
+      tee: qux
+    }


reply via email to

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