emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] trunk r117373: Merge from emacs-24; up to r117280


From: Glenn Morris
Subject: [Emacs-diffs] trunk r117373: Merge from emacs-24; up to r117280
Date: Sat, 21 Jun 2014 19:46:48 +0000
User-agent: Bazaar (2.6b2)

------------------------------------------------------------
revno: 117373 [merge]
revision-id: address@hidden
parent: address@hidden
parent: address@hidden
committer: Glenn Morris <address@hidden>
branch nick: trunk
timestamp: Sat 2014-06-21 12:45:59 -0700
message:
  Merge from emacs-24; up to r117280
modified:
  ChangeLog                      changelog-20091113204419-o5vbwnq5f7feedwu-1538
  admin/ChangeLog                changelog-20091113204419-o5vbwnq5f7feedwu-2226
  admin/notes/elpa               elpa-20101104170006-o3iihzzxxiosmkjw-1
  configure.ac                   
configure.in-20091113204419-o5vbwnq5f7feedwu-783
  doc/lispref/ChangeLog          changelog-20091113204419-o5vbwnq5f7feedwu-6155
  doc/lispref/positions.texi     
positions.texi-20091113204419-o5vbwnq5f7feedwu-6206
  doc/misc/ChangeLog             changelog-20091113204419-o5vbwnq5f7feedwu-6331
  doc/misc/autotype.texi         
autotype.texi-20091113204419-o5vbwnq5f7feedwu-6289
  doc/misc/dbus.texi             dbus.texi-20091113204419-o5vbwnq5f7feedwu-7963
  lisp/ChangeLog                 changelog-20091113204419-o5vbwnq5f7feedwu-1432
  lisp/delsel.el                 delsel.el-20091113204419-o5vbwnq5f7feedwu-540
  lisp/dired.el                  dired.el-20091113204419-o5vbwnq5f7feedwu-482
  lisp/emacs-lisp/smie.el        smie.el-20100517192034-xap3ihmey43772vj-1
  lisp/mouse.el                  mouse.el-20091113204419-o5vbwnq5f7feedwu-123
  lisp/net/dbus.el               dbus.el-20091113204419-o5vbwnq5f7feedwu-7962
  lisp/progmodes/python.el       python.el-20091113204419-o5vbwnq5f7feedwu-3008
  lisp/progmodes/ruby-mode.el    
rubymode.el-20091113204419-o5vbwnq5f7feedwu-8804
  lisp/progmodes/sh-script.el    shscript.el-20091113204419-o5vbwnq5f7feedwu-727
  lisp/simple.el                 simple.el-20091113204419-o5vbwnq5f7feedwu-403
  lisp/skeleton.el               skeleton.el-20091113204419-o5vbwnq5f7feedwu-728
  lisp/term/w32-win.el           w32win.el-20091113204419-o5vbwnq5f7feedwu-943
  lisp/term/xterm.el             xterm.el-20091113204419-o5vbwnq5f7feedwu-884
  lisp/textmodes/texinfo.el      texinfo.el-20091113204419-o5vbwnq5f7feedwu-124
  lisp/window.el                 window.el-20091113204419-o5vbwnq5f7feedwu-94
  lisp/xt-mouse.el               xtmouse.el-20091113204419-o5vbwnq5f7feedwu-905
  src/ChangeLog                  changelog-20091113204419-o5vbwnq5f7feedwu-1438
  src/dispextern.h               
dispextern.h-20091113204419-o5vbwnq5f7feedwu-218
  src/fileio.c                   fileio.c-20091113204419-o5vbwnq5f7feedwu-210
  src/font.c                     font.c-20091113204419-o5vbwnq5f7feedwu-8540
  src/image.c                    image.c-20091113204419-o5vbwnq5f7feedwu-2969
  src/indent.c                   indent.c-20091113204419-o5vbwnq5f7feedwu-181
  src/keyboard.c                 keyboard.c-20091113204419-o5vbwnq5f7feedwu-449
  src/xdisp.c                    xdisp.c-20091113204419-o5vbwnq5f7feedwu-240
  test/ChangeLog                 changelog-20091113204419-o5vbwnq5f7feedwu-8588
  test/automated/python-tests.el 
pythontests.el-20130220195218-kqcioz3fssz9hwe1-1
  test/indent/shell.sh           shell.sh-20110209185043-iuyrh0is1gz0s4w6-1
=== modified file 'ChangeLog'
--- a/ChangeLog 2014-06-20 16:05:10 +0000
+++ b/ChangeLog 2014-06-21 19:45:59 +0000
@@ -1,3 +1,13 @@
+2014-06-21  Paul Eggert  <address@hidden>
+
+       * configure.ac: Warn about --enable-link-time-optimization's issues
+       in --help message (Bug#17806).
+
+       Port to GCC 4.9.0 with link time optimization (Bug#17806).
+       * configure.ac (CFLAGS): With link time optimization,
+       use -ffat-lto-objects if supported; otherwise Emacs won't
+       build with GCC 4.9.0.
+
 2014-06-20  Paul Eggert  <address@hidden>
 
        Diagnose failures due to colons in directory names (Bug#17278).

=== modified file 'admin/ChangeLog'
--- a/admin/ChangeLog   2014-06-13 23:05:00 +0000
+++ b/admin/ChangeLog   2014-06-21 19:45:59 +0000
@@ -1,3 +1,8 @@
+2014-06-21  Stephen Berman  <address@hidden>
+
+       * notes/elpa: Use "git" instead of "bzr" in the name of machine to
+       clone the repository from.
+
 2014-06-13  Glenn Morris  <address@hidden>
 
        * unidata/Makefile.in (${DSTDIR}/charprop.el):

=== modified file 'admin/notes/elpa'
--- a/admin/notes/elpa  2013-08-29 19:20:42 +0000
+++ b/admin/notes/elpa  2014-06-16 21:29:08 +0000
@@ -3,9 +3,9 @@
 The GNU Emacs package archive, at elpa.gnu.org, is managed using a Git
 repository named "elpa", hosted on Savannah.  To check it out:
 
-  git clone git://bzr.sv.gnu.org/emacs/elpa
+  git clone git://git.sv.gnu.org/emacs/elpa
   cd elpa
-  git remote set-url --push origin git+ssh://bzr.sv.gnu.org/srv/git/emacs/elpa
+  git remote set-url --push origin git+ssh://git.sv.gnu.org/srv/git/emacs/elpa
   [create task branch for edits, etc.]
 
 Changes to this branch propagate to elpa.gnu.org via a "deployment" script run

=== modified file 'configure.ac'
--- a/configure.ac      2014-06-20 16:05:10 +0000
+++ b/configure.ac      2014-06-21 19:45:59 +0000
@@ -931,8 +931,11 @@
 AC_ARG_ENABLE(link-time-optimization,
 [AS_HELP_STRING([--enable-link-time-optimization],
                 [build emacs with link-time optimization.
-                This is supported for gcc since 4.5.0 and clang.
-                Note that clang support is experimental - see INSTALL])],
+                This requires GCC 4.5.0 or later, or clang.
+                (Note that clang support is experimental - see INSTALL.)
+                It also makes Emacs harder to debug, and when we tried it
+                with GCC 4.9.0 x86-64 it made Emacs slower, so it's not
+                recommended for typical use.])],
 if test "${enableval}" != "no"; then
    ac_lto_supported=no
    if test $emacs_cv_clang = yes; then
@@ -970,6 +973,13 @@
         # command, so plugin name is appended to ARFLAGS.
         ARFLAGS="cru --plugin $GOLD_PLUGIN"
         RANLIB="$RANLIB --plugin $GOLD_PLUGIN"
+      else
+        dnl The following is needed for GCC 4.9.0.  The GCC 4.9.0 release notes
+        dnl suggest that instead of -ffat-lto-objects we should use gcc-ar and
+        dnl gcc-ranlib in place of ar and ranlib, but gcc-ar makes /usr/bin/ar
+        dnl dump core on Fedora 20, so play it safe for now.
+        gl_COMPILER_OPTION_IF([-ffat-lto-objects],
+          [CFLAGS="$CFLAGS -ffat-lto-objects"])
       fi
    fi
 fi)

=== modified file 'doc/lispref/ChangeLog'
--- a/doc/lispref/ChangeLog     2014-06-15 00:17:21 +0000
+++ b/doc/lispref/ChangeLog     2014-06-21 19:45:59 +0000
@@ -1,3 +1,8 @@
+2014-06-21  Eli Zaretskii  <address@hidden>
+
+       * positions.texi (Screen Lines): Clarify how columns are counted
+       by vertical-motion.
+
 2014-06-15  Glenn Morris  <address@hidden>
 
        * Makefile.in (bootstrap-clean): New.

=== modified file 'doc/lispref/positions.texi'
--- a/doc/lispref/positions.texi        2014-04-09 16:58:08 +0000
+++ b/doc/lispref/positions.texi        2014-06-21 19:45:59 +0000
@@ -500,7 +500,11 @@
 The @var{count} argument can be a cons cell, @code{(@var{cols}
 . @var{lines})}, instead of an integer.  Then the function moves by
 @var{lines} screen lines, and puts point @var{cols} columns from the
-start of that screen line.
+visual start of that screen line.  Note that @var{cols} are counted
+from the @emph{visual} start of the line; if the window is scrolled
+horizontally (@pxref{Horizontal Scrolling}), the column on which point
+will end is in addition to the number of columns by which the text is
+scrolled.
 
 The return value is the number of screen lines over which point was
 moved.  The value may be less in absolute value than @var{count} if

=== modified file 'doc/misc/ChangeLog'
--- a/doc/misc/ChangeLog        2014-06-15 15:09:22 +0000
+++ b/doc/misc/ChangeLog        2014-06-21 19:45:59 +0000
@@ -1,3 +1,12 @@
+2014-06-21  Eli Zaretskii  <address@hidden>
+
+       * autotype.texi (Skeleton Language): Document the feature of \n
+       when at eol.
+
+2014-06-21  Michael Albinus  <address@hidden>
+
+       * dbus.texi (Type Conversion): Formatting edits in example.
+
 2014-06-15  Michael Albinus  <address@hidden>
 
        Sync with Tramp 2.2.10.

=== modified file 'doc/misc/autotype.texi'
--- a/doc/misc/autotype.texi    2014-06-10 02:20:31 +0000
+++ b/doc/misc/autotype.texi    2014-06-21 19:45:59 +0000
@@ -232,8 +232,11 @@
 @code{skeleton-transformation} when that is address@hidden
 @item @code{?\n}
 @c ??? something seems very wrong here.
-Insert a newline and align under current line.  Use newline character
address@hidden to prevent alignment.
+Insert a newline and align under current line, but not if this is the
+last element of a skeleton and the newline would be inserted at end of
+line.  Use newline character @code{?\n} to prevent alignment.  Use
address@hidden"\n"} as the last string element of a skeleton to insert a
+newline after the skeleton unconditionally.
 @item @code{_}
 Interesting point.  When wrapping skeletons around successive regions, they are
 put at these places.  Point is left at first @code{_} where nothing is wrapped.

=== modified file 'doc/misc/dbus.texi'
--- a/doc/misc/dbus.texi        2014-06-10 02:20:31 +0000
+++ b/doc/misc/dbus.texi        2014-06-21 19:45:59 +0000
@@ -1060,11 +1060,11 @@
   ""                          ;; No icon.
   "Notification summary"      ;; Summary.
   (format                     ;; Body.
-    "This is a test notification, raised from %s" (emacs-version))
+    "This is a test notification, raised from\n%S" (emacs-version))
   '(:array)                   ;; No actions (empty array of strings).
   '(:array :signature "@address@hidden") ;; No hints
                               ;; (empty array of dictionary entries).
-  :int32 -1)                 ;; Default timeout.
+  :int32 -1)                  ;; Default timeout.
 
 @result{} 3
 @end lisp

=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2014-06-19 21:08:44 +0000
+++ b/lisp/ChangeLog    2014-06-21 19:45:59 +0000
@@ -1,3 +1,98 @@
+2014-06-21  Fabián Ezequiel Gallina  <address@hidden>
+
+       Fix completion retrieval parsing (bug#17209).
+       * progmodes/python.el (python-mode):
+       (python-util-strip-string): New function.
+       (python-shell-completion-get-completions): Use it.
+
+2014-06-21  Eli Zaretskii  <address@hidden>
+
+       * skeleton.el (skeleton-insert): Fix last change.
+
+2014-06-21  Fabián Ezequiel Gallina  <address@hidden>
+
+       Enhancements for outline integration (bug#17796).
+       * progmodes/python.el (python-mode): Properly set
+       outline-heading-end-regexp so that comments after colons for
+       defuns are supported.
+
+2014-06-21  Eli Zaretskii  <address@hidden>
+
+       * skeleton.el (skeleton-insert): Doc fix.
+
+2014-06-21  Stefan Monnier  <address@hidden>
+
+       * emacs-lisp/smie.el (smie-config--guess): Fix typo.
+       (smie-config-guess): Use smie-config-local so the rules are obeyed
+       (bug#17818).
+
+       * mouse.el (mouse-drag-line): Don't re-add to unread-comment-events,
+       since it's already done inside the loop (bug#17819).
+
+2014-06-21  Martin Rudalics  <address@hidden>
+
+       * mouse.el (mouse-drag-line): Re-remove code initially removed
+       on 2013-03-09 and inadvertently reintroduced on 2013-11-30
+       (Bug#17819).
+
+2014-06-21  Stefan Monnier  <address@hidden>
+
+       * progmodes/sh-script.el (sh-smie-sh-rules): For { after &&, don't
+       align with the surrounding parent (bug#17721).
+
+2014-06-21  Eli Zaretskii  <address@hidden>
+
+       * textmodes/texinfo.el (texinfo-mode): Set skeleton-end-newline
+       locally to nil.
+       (texinfo-insert-block, address@hidden)
+       (address@hidden, address@hidden): Adjust to
+       local setting of skeleton-end-newline by adding an explicit \n to
+       the skeletons where appropriate.  (Bug#17801)
+
+2014-06-21  Stefan Monnier  <address@hidden>
+
+       * emacs-lisp/smie.el (smie--hanging-eolp-function): New var.
+       (smie-indent--hanging-p): Use it.
+       * progmodes/sh-script.el (sh-set-shell): Set it (bug#17621).
+
+2014-06-21  Leo Liu  <address@hidden>
+
+       * simple.el (read-quoted-char): Don't let help chars pop up help
+       buffer.  (Bug#16617)
+
+2014-06-21  Stefan Monnier  <address@hidden>
+
+       * progmodes/sh-script.el (sh-smie-sh-rules): Use same rule for && as
+       for | (bug#17621).
+
+       * xt-mouse.el (xterm-mouse--read-event-sequence-1000):
+       Drop unknown events instead of burping.
+
+2014-06-21  Eli Zaretskii  <address@hidden>
+
+       * term/w32-win.el (dynamic-library-alist): Support giflib 5.1.0
+       and later.  (Bug#17790)
+
+2014-06-21  Juri Linkov  <address@hidden>
+
+       * dired.el (dired-mark-pop-up): Let-bind display-buffer-mark-dedicated
+       to `soft'.  (Bug#17554)
+
+2014-06-21  Stefan Monnier  <address@hidden>
+
+       * delsel.el (electric-newline-and-maybe-indent): Mark it as well
+       (bug#17737).
+
+2014-06-21  Dmitry Gutov  <address@hidden>
+
+       * progmodes/ruby-mode.el (ruby-font-lock-keywords): Don't fontify
+       `!' in `!~' with `font-lock-negation-char-face'.  (Bug#17732)
+
+2014-06-21  Michael Albinus  <address@hidden>
+
+       * net/dbus.el (dbus-call-method): Push only non D-Bus events into
+       `unread-command-events'.
+
 2014-06-19  William Xu  <address@hidden>
 
        * progmodes/hideif.el (hif-string-to-number): Don't return float for

=== modified file 'lisp/delsel.el'
--- a/lisp/delsel.el    2014-02-18 18:14:36 +0000
+++ b/lisp/delsel.el    2014-06-17 13:40:03 +0000
@@ -188,6 +188,7 @@
 (put 'reindent-then-newline-and-indent 'delete-selection t)
 (put 'newline-and-indent 'delete-selection t)
 (put 'newline 'delete-selection t)
+(put 'electric-newline-and-maybe-indent 'delete-selection t)
 (put 'open-line 'delete-selection 'kill)
 
 ;; This is very useful for canceling a selection in the minibuffer without

=== modified file 'lisp/dired.el'
--- a/lisp/dired.el     2014-05-12 06:59:30 +0000
+++ b/lisp/dired.el     2014-06-21 19:45:59 +0000
@@ -3099,7 +3099,10 @@
          ;; If FILES defaulted to the current line's file.
          (= (length files) 1))
       (apply function args)
-    (let ((buffer (get-buffer-create (or buffer-or-name " *Marked Files*"))))
+    (let ((buffer (get-buffer-create (or buffer-or-name " *Marked Files*")))
+         ;; Mark *Marked Files* window as softly-dedicated, to prevent
+         ;; other buffers e.g. *Completions* from reusing it (bug#17554).
+         (display-buffer-mark-dedicated 'soft))
       (with-current-buffer buffer
        (with-current-buffer-window
         buffer

=== modified file 'lisp/emacs-lisp/smie.el'
--- a/lisp/emacs-lisp/smie.el   2014-06-13 15:31:17 +0000
+++ b/lisp/emacs-lisp/smie.el   2014-06-20 21:10:40 +0000
@@ -1155,6 +1155,15 @@
 The functions whose name starts with \"smie-rule-\" are helper functions
 designed specifically for use in this function.")
 
+(defvar smie--hanging-eolp-function
+  ;; FIXME: This is a quick hack for 24.4.  Don't document it and replace with
+  ;; a well-defined function with a cleaner interface instead!
+  (lambda ()
+    (skip-chars-forward " \t")
+    (or (eolp)
+       (and ;; (looking-at comment-start-skip) ;(bug#16041).
+        (forward-comment (point-max))))))
+
 (defalias 'smie-rule-hanging-p 'smie-indent--hanging-p)
 (defun smie-indent--hanging-p ()
   "Return non-nil if the current token is \"hanging\".
@@ -1168,10 +1177,7 @@
                    (not (eobp))
                    ;; Could be an open-paren.
                    (forward-char 1))
-               (skip-chars-forward " \t")
-               (or (eolp)
-                   (and ;; (looking-at comment-start-skip) ;(bug#16041).
-                        (forward-comment (point-max))))
+              (funcall smie--hanging-eolp-function)
                (point))))))
 
 (defalias 'smie-rule-bolp 'smie-indent--bolp)
@@ -2132,7 +2138,7 @@
                   nil
                 (push (cons (+ offset (nth 2 sig)) sig) rules)
                 ;; Adjust the rest of the data.
-                (pcase-dolist ((and cotrace `(,count ,toffset ,trace))
+                (pcase-dolist ((and cotrace `(,count ,toffset . ,trace))
                                cotraces)
                   (setf (nth 1 cotrace) (- toffset offset))
                   (dolist (sig trace)
@@ -2161,15 +2167,14 @@
     (cond
      ((null config) (message "Nothing to change"))
      ((null smie-config--buffer-local)
-      (message "Local rules set")
-      (setq smie-config--buffer-local config))
+      (smie-config-local config)
+      (message "Local rules set"))
      ((y-or-n-p "Replace existing local config? ")
       (message "Local rules replaced")
-      (setq smie-config--buffer-local config))
+      (smie-config-local config))
      ((y-or-n-p "Merge with existing local config? ")
       (message "Local rules adjusted")
-      (setq smie-config--buffer-local
-            (append config smie-config--buffer-local)))
+      (smie-config-local (append config smie-config--buffer-local)))
      (t
       (message "Rules guessed: %S" config)))))
 

=== modified file 'lisp/mouse.el'
--- a/lisp/mouse.el     2014-06-06 02:35:17 +0000
+++ b/lisp/mouse.el     2014-06-21 19:45:59 +0000
@@ -390,8 +390,6 @@
         (window (posn-window start))
         (frame (window-frame window))
         (minibuffer-window (minibuffer-window frame))
-         (on-link (and mouse-1-click-follows-link
-                      (mouse-on-link-p start)))
         (side (and (eq line 'vertical)
                    (or (cdr (assq 'vertical-scroll-bars
                                   (frame-parameters frame)))
@@ -487,15 +485,7 @@
          (unless (zerop growth)
            (setq dragged t)
            (adjust-window-trailing-edge
-            window (if (eq line 'mode) growth (- growth)) nil t))))))
-    ;; Process the terminating event.
-    (when (and (mouse-event-p event) on-link (not dragged)
-              (mouse--remap-link-click-p start-event event))
-      ;; If mouse-2 has never been done by the user, it doesn't have
-      ;; the necessary property to be interpreted correctly.
-      (put 'mouse-2 'event-kind 'mouse-click)
-      (setcar event 'mouse-2)
-      (push event unread-command-events))))
+            window (if (eq line 'mode) growth (- growth)) nil t))))))))
 
 (defun mouse-drag-mode-line (start-event)
   "Change the height of a window by dragging on the mode line."

=== modified file 'lisp/net/dbus.el'
--- a/lisp/net/dbus.el  2014-05-16 13:11:09 +0000
+++ b/lisp/net/dbus.el  2014-06-15 12:15:25 +0000
@@ -318,10 +318,12 @@
              (while (eq (car result) :pending)
                (let ((event (let ((inhibit-redisplay t) unread-command-events)
                               (read-event nil nil check-interval))))
-                 (when event
-                   (setf unread-command-events
-                         (nconc unread-command-events
-                                (cons event nil))))
+                (when event
+                  (if (ignore-errors (dbus-check-event event))
+                      (setf result (gethash key dbus-return-values-table))
+                    (setf unread-command-events
+                          (nconc unread-command-events
+                                 (cons event nil)))))
                  (when (< check-interval 1)
                    (setf check-interval (* check-interval 1.05))))))
            (when (eq (car result) :error)

=== modified file 'lisp/progmodes/python.el'
--- a/lisp/progmodes/python.el  2014-06-12 02:35:26 +0000
+++ b/lisp/progmodes/python.el  2014-06-21 19:45:59 +0000
@@ -2461,8 +2461,10 @@
     (and completion-code
          (> (length input) 0)
          (with-current-buffer (process-buffer process)
-           (let ((completions (python-shell-send-string-no-output
-                               (format completion-code input) process)))
+           (let ((completions
+                  (python-util-strip-string
+                   (python-shell-send-string-no-output
+                    (format completion-code input) process))))
              (and (> (length completions) 2)
                   (split-string completions
                                 "^'\\|^\"\\|;\\|'$\\|\"$" t)))))))
@@ -3648,6 +3650,14 @@
               n (1- n)))
       (reverse acc))))
 
+(defun python-util-strip-string (string)
+  "Strip STRING whitespace and newlines from end and beginning."
+  (replace-regexp-in-string
+   (rx (or (: string-start (* (any whitespace ?\r ?\n)))
+           (: (* (any whitespace ?\r ?\n)) string-end)))
+   ""
+   string))
+
 
 (defun python-electric-pair-string-delimiter ()
   (when (and electric-pair-mode
@@ -3736,7 +3746,7 @@
 
   (set (make-local-variable 'outline-regexp)
        (python-rx (* space) block-start))
-  (set (make-local-variable 'outline-heading-end-regexp) ":\\s-*\n")
+  (set (make-local-variable 'outline-heading-end-regexp) ":[^\n]*\n")
   (set (make-local-variable 'outline-level)
        #'(lambda ()
            "`outline-level' function for Python mode."

=== modified file 'lisp/progmodes/ruby-mode.el'
--- a/lisp/progmodes/ruby-mode.el       2014-05-05 23:18:18 +0000
+++ b/lisp/progmodes/ruby-mode.el       2014-06-16 03:33:29 +0000
@@ -2152,7 +2152,7 @@
     (ruby-match-expression-expansion
      2 font-lock-variable-name-face t)
     ;; Negation char.
-    ("\\(?:^\\|[^[:alnum:]_]\\)\\(!+\\)[^=]"
+    ("\\(?:^\\|[^[:alnum:]_]\\)\\(!+\\)[^=~]"
      1 font-lock-negation-char-face)
     ;; Character literals.
     ;; FIXME: Support longer escape sequences.

=== modified file 'lisp/progmodes/sh-script.el'
--- a/lisp/progmodes/sh-script.el       2014-05-29 03:45:29 +0000
+++ b/lisp/progmodes/sh-script.el       2014-06-21 19:45:59 +0000
@@ -1975,7 +1975,11 @@
                   (<= indent initial))
          `(column . ,(+ initial sh-indentation)))))
     (`(:before . ,(or `"(" `"{" `"["))
-     (if (smie-rule-hanging-p) (smie-rule-parent)))
+     (when (smie-rule-hanging-p)
+       (if (not (smie-rule-prev-p "&&" "||" "|"))
+          (smie-rule-parent)
+        (smie-backward-sexp 'halfexp)
+        `(column . ,(smie-indent-virtual)))))
     ;; FIXME: Maybe this handling of ;; should be made into
     ;; a smie-rule-terminator function that takes the substitute ";" as arg.
     (`(:before . ,(or `";;" `";&" `";;&"))
@@ -1993,7 +1997,7 @@
                             (smie-rule-bolp))))
                  (current-column)
                (smie-indent-calculate)))))
-    (`(:after . "|") (if (smie-rule-parent-p "|") nil 4))
+    (`(:after . ,(or `"|" `"&&" `"||")) (if (smie-rule-parent-p token) nil 4))
     ;; Attempt at backward compatibility with the old config variables.
     (`(:before . "fi") (sh-var-value 'sh-indent-for-fi))
     (`(:before . "done") (sh-var-value 'sh-indent-for-done))
@@ -2300,6 +2304,11 @@
         (let ((mksym (lambda (name)
                        (intern (format "sh-smie-%s-%s"
                                        sh-indent-supported-here name)))))
+         (add-function :around (local 'smie--hanging-eolp-function)
+                       (lambda (orig)
+                         (if (looking-at "[ \t]*\\\\\n")
+                             (goto-char (match-end 0))
+                           (funcall orig))))
           (smie-setup (symbol-value (funcall mksym "grammar"))
                       (funcall mksym "rules")
                       :forward-token  (funcall mksym "forward-token")

=== modified file 'lisp/simple.el'
--- a/lisp/simple.el    2014-06-13 15:50:38 +0000
+++ b/lisp/simple.el    2014-06-21 19:45:59 +0000
@@ -658,11 +658,16 @@
 The optional argument PROMPT specifies a string to use to prompt the user.
 The variable `read-quoted-char-radix' controls which radix to use
 for numeric input."
-  (let ((message-log-max nil) done (first t) (code 0) translated)
+  (let ((message-log-max nil)
+       (help-events (delq nil (mapcar (lambda (c) (unless (characterp c) c))
+                                      help-event-list)))
+       done (first t) (code 0) translated)
     (while (not done)
       (let ((inhibit-quit first)
-           ;; Don't let C-h get the help message--only help function keys.
+           ;; Don't let C-h or other help chars get the help
+           ;; message--only help function keys.  See bug#16617.
            (help-char nil)
+           (help-event-list help-events)
            (help-form
             "Type the special character you want to use,
 or the octal character code.

=== modified file 'lisp/skeleton.el'
--- a/lisp/skeleton.el  2014-03-21 19:04:57 +0000
+++ b/lisp/skeleton.el  2014-06-21 19:45:59 +0000
@@ -197,7 +197,8 @@
 If ELEMENT is a string or a character it gets inserted (see also
 `skeleton-transformation-function').  Other possibilities are:
 
-       \\n     go to next line and indent according to mode
+       \\n     if not the last element of the skeleton, or not at eol,
+                go to next line and indent according to mode
        _       interesting point, interregion here
        -       interesting point, no interregion interaction, overrides
                interesting point set by _
@@ -212,6 +213,10 @@
 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.
 
+Note that \\n as the last element of the skeleton only inserts a
+newline if not at eol.  If you want to unconditionally insert a newline
+at the end of the skeleton, use \"\\n\" instead.
+
 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

=== modified file 'lisp/term/w32-win.el'
--- a/lisp/term/w32-win.el      2014-04-11 07:02:28 +0000
+++ b/lisp/term/w32-win.el      2014-06-18 15:15:52 +0000
@@ -251,13 +251,16 @@
        ;; libraries according to the version of giflib we were
        ;; compiled against.  (If we were compiled without GIF support,
        ;; libgif-version's value is -1.)
-       (if (>= libgif-version 50000)
-          ;; Yes, giflib 5.x uses 6 as the major version of the API,
-          ;; thus "libgif-6.dll" below (giflib 4.x used 5 as the
-          ;; major API version).
-          ;; giflib5.dll is from the lua-files project.
-          '(gif "libgif-6.dll" "giflib5.dll")
-        '(gif "libgif-5.dll" "giflib4.dll" "libungif4.dll" "libungif.dll"))
+       (if (>= libgif-version 50100)
+          ;; Yes, giflib 5.0 uses 6 as the major version of the API,
+          ;; and giflib 5.1 uses 7, thus "libgif-7.dll" and
+          ;; "libgif-6.dll" below (giflib 4.x used 5 as the major API
+          ;; version).  giflib5.dll is from the lua-files project,
+          ;; and gif.dll is from luapower.
+          '(gif "libgif-7.dll")
+        (if (>= libgif-version 50000)
+            '(gif "libgif-6.dll" "giflib5.dll" "gif.dll")
+        '(gif "libgif-5.dll" "giflib4.dll" "libungif4.dll" "libungif.dll")))
        '(svg "librsvg-2-2.dll")
        '(gdk-pixbuf "libgdk_pixbuf-2.0-0.dll")
        '(glib "libglib-2.0-0.dll")

=== modified file 'lisp/term/xterm.el'
--- a/lisp/term/xterm.el        2014-06-15 00:06:30 +0000
+++ b/lisp/term/xterm.el        2014-06-21 19:45:59 +0000
@@ -606,8 +606,8 @@
           ;; Gnome terminal 2.32.1 reports 1;2802;0
           (setq version 200))
         (when (equal (match-string 1 str) "83")
-          ;; OSX's Terminal.app (version 2.3 (309), which returns 83;40003;0)
-          ;; seems to also lack support for some of these (bug#17607).
+          ;; `screen' (which returns 83;40003;0) seems to also lack support for
+          ;; some of these (bug#17607).
           (setq version 240))
         ;; If version is 242 or higher, assume the xterm supports
         ;; reporting the background color (TODO: maybe earlier

=== modified file 'lisp/textmodes/texinfo.el'
--- a/lisp/textmodes/texinfo.el 2014-02-10 01:34:22 +0000
+++ b/lisp/textmodes/texinfo.el 2014-06-20 08:47:10 +0000
@@ -44,6 +44,8 @@
 
 (defvar outline-heading-alist)
 
+(defvar skeleton-end-newline)
+
 (defgroup texinfo nil
   "Texinfo Mode."
   :link '(custom-group-link :tag "Font Lock Faces group" font-lock-faces)
@@ -626,6 +628,11 @@
   (setq-local tex-first-line-header-regexp "^\\\\input")
   (setq-local tex-trailer "@bye\n")
 
+  ;; Prevent skeleton.el from adding a newline to each inserted
+  ;; skeleton.  Those which do want a newline do that explicitly in
+  ;; their define-skeleton form.
+  (setq-local skeleton-end-newline nil)
+
   ;; Prevent filling certain lines, in addition to ones specified by
   ;; the user.
   (setq-local auto-fill-inhibit-regexp
@@ -653,7 +660,7 @@
   (if (or (string-match "\\`def" str)
           (member str '("table" "ftable" "vtable")))
       '(nil " " -))
-  \n _ \n "@end " str \n)
+  \n _ \n "@end " str \n \n)
 
 (defun texinfo-inside-macro-p (macro &optional bound)
   "Non-nil if inside a macro matching the regexp MACRO."
@@ -732,7 +739,7 @@
       (backward-word 1)
             (texinfo-last-unended-begin)
       (or (match-string 1) '-)))
-  \n "@end " str \n)
+  \n "@end " str \n \n)
 
 (define-skeleton texinfo-insert-braces
   "Make a pair of braces and be poised to type inside of them.
@@ -771,7 +778,7 @@
 (define-skeleton address@hidden
   "Insert the string address@hidden' in a Texinfo buffer."
   nil
-  \n "@example" \n)
+  \n "@example" \n \n)
 
 (define-skeleton address@hidden
   "Insert a address@hidden' command in a Texinfo buffer.
@@ -816,7 +823,7 @@
 
 (define-skeleton address@hidden
   "Insert the string address@hidden' in a Texinfo buffer."
-  \n "@quotation" \n)
+  \n "@quotation" \n _ \n)
 
 (define-skeleton address@hidden
   "Insert a address@hidden' command in a Texinfo buffer.

=== modified file 'lisp/window.el'
--- a/lisp/window.el    2014-06-03 12:38:17 +0000
+++ b/lisp/window.el    2014-06-18 07:57:27 +0000
@@ -5966,7 +5966,7 @@
 ;; FIXME: By the way, there could be more levels of dedication:
 ;; - `barely' dedicated doesn't prevent reuse of the window, only records that
 ;;   the window hasn't been used for something else yet.
-;; - `softly' dedicated only allows reuse when asked explicitly.
+;; - `soft' (`softly') dedicated only allows reuse when asked explicitly.
 ;; - `strongly' never allows reuse.
 (defvar display-buffer-mark-dedicated nil
   "If non-nil, `display-buffer' marks the windows it creates as dedicated.

=== modified file 'lisp/xt-mouse.el'
--- a/lisp/xt-mouse.el  2014-05-11 05:49:14 +0000
+++ b/lisp/xt-mouse.el  2014-06-21 19:45:59 +0000
@@ -145,26 +145,25 @@
 (defun xterm-mouse--read-event-sequence-1000 ()
   (let* ((code (- (read-event) 32))
          (type
-         (intern
-          ;; For buttons > 3, the release-event looks differently
-          ;; (see xc/programs/xterm/button.c, function EditorButton),
-          ;; and come in a release-event only, no down-event.
-          (cond ((>= code 64)
-                 (format "mouse-%d" (- code 60)))
-                ((memq code '(8 9 10))
-                 (format "M-down-mouse-%d" (- code 7)))
-                ((memq code '(3 11))
-                  (let ((down (car (terminal-parameter
-                                    nil 'xterm-mouse-last-down))))
-                    (when (and down (string-match "[0-9]" (symbol-name down)))
-                      (format (if (eq code 3) "mouse-%s" "M-mouse-%s")
-                              (match-string 0 (symbol-name down))))))
-                ((memq code '(0 1 2))
-                 (format "down-mouse-%d" (+ 1 code))))))
+         ;; For buttons > 3, the release-event looks differently
+         ;; (see xc/programs/xterm/button.c, function EditorButton),
+         ;; and come in a release-event only, no down-event.
+         (cond ((>= code 64)
+                (format "mouse-%d" (- code 60)))
+               ((memq code '(8 9 10))
+                (format "M-down-mouse-%d" (- code 7)))
+               ((memq code '(3 11))
+                 (let ((down (car (terminal-parameter
+                                   nil 'xterm-mouse-last-down))))
+                   (when (and down (string-match "[0-9]" (symbol-name down)))
+                     (format (if (eq code 3) "mouse-%s" "M-mouse-%s")
+                             (match-string 0 (symbol-name down))))))
+               ((memq code '(0 1 2))
+                (format "down-mouse-%d" (+ 1 code)))))
          (x (- (read-event) 33))
          (y (- (read-event) 33)))
     (and type (wholenump x) (wholenump y)
-         (list type x y))))
+         (list (intern type) x y))))
 
 ;; XTerm's 1006-mode terminal mouse click reporting has the form
 ;; <BUTTON> ; <X> ; <Y> <M or m>, where the button and ordinates are

=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2014-06-19 16:52:20 +0000
+++ b/src/ChangeLog     2014-06-21 19:45:59 +0000
@@ -1,3 +1,42 @@
+2014-06-21  Eli Zaretskii  <address@hidden>
+
+       * indent.c (Fvertical_motion): Doc fix.
+       Move to the goal column, if any, with a single call to
+       move_it_in_display_line, not in two calls.  Doing this with two
+       calls causes move_it_in_display_line apply the line-prefix
+       handling twice instead of just once.  (Bug#17823)
+
+2014-06-21  Paul Eggert  <address@hidden>
+
+       Port to OS X ACLs (Bug#17810).
+       * fileio.c (Ffile_acl): Port to OS X, where acl_get_file (...,
+       ACL_TYPE_ACCESS) doesn't work.
+
+2014-06-21  Stefan Monnier  <address@hidden>
+
+       * keyboard.c (read_key_sequence): Don't invoke Vprefix_help_command
+       before checking key-translation-map (bug#17659).
+
+2014-06-21  Dmitry Antipov  <address@hidden>
+
+       * font.c (font_make_object): Avoid dangling pointer which may
+       crash GC (Bug#17771).
+
+2014-06-21  Eli Zaretskii  <address@hidden>
+
+       * image.c [5 < GIFLIB_MAJOR + (1 <= GIFLIB_MINOR)]: Declare the
+       prototype of DGifCloseFile as appropriate for older and newer
+       versions of giflib.
+       (gif_close): New function, encapsulates the differences in the
+       calling sequence of DGifCloseFile before v5.1.0 and after it.
+       (gif_load): Call gif_close instead of DGifCloseFile.  Divulge the
+       error string where appropriate.  (Bug#17790)
+
+       * xdisp.c (Fmove_point_visually): Instead of testing for keyboard
+       macro execution, make sure point didn't move since last complete
+       redisplay, as the condition for using the glyph matrix
+       information.  (Bug#17777)
+
 2014-06-19  Dmitry Antipov  <address@hidden>
 
        Minor cleanup of fonset code.

=== modified file 'src/dispextern.h'
--- a/src/dispextern.h  2014-06-10 04:55:03 +0000
+++ b/src/dispextern.h  2014-06-21 19:45:59 +0000
@@ -2591,7 +2591,8 @@
   int vpos;
 
   /* Horizontal matrix position reached in move_it_in_display_line.
-     Only set there, not in display_line.  */
+     Only set there, not in display_line, and only when the X
+     coordinate is past first_visible_x.  */
   int hpos;
 
   /* Left fringe bitmap number (enum fringe_bitmap_type).  */

=== modified file 'src/fileio.c'
--- a/src/fileio.c      2014-06-17 03:14:00 +0000
+++ b/src/fileio.c      2014-06-21 19:45:59 +0000
@@ -3013,6 +3013,9 @@
   acl_t acl;
   Lisp_Object acl_string;
   char *str;
+# ifndef HAVE_ACL_TYPE_EXTENDED
+  acl_type_t ACL_TYPE_EXTENDED = ACL_TYPE_ACCESS;
+# endif
 #endif
 
   absname = expand_and_dir_to_file (filename,
@@ -3027,7 +3030,7 @@
 #ifdef HAVE_ACL_SET_FILE
   absname = ENCODE_FILE (absname);
 
-  acl = acl_get_file (SSDATA (absname), ACL_TYPE_ACCESS);
+  acl = acl_get_file (SSDATA (absname), ACL_TYPE_EXTENDED);
   if (acl == NULL)
     return Qnil;
 

=== modified file 'src/font.c'
--- a/src/font.c        2014-06-17 13:41:14 +0000
+++ b/src/font.c        2014-06-21 19:45:59 +0000
@@ -207,6 +207,9 @@
     = (struct font *) allocate_pseudovector (size, FONT_OBJECT_MAX, PVEC_FONT);
   int i;
 
+  /* GC can happen before the driver is set up,
+     so avoid dangling pointer here (Bug#17771).  */
+  font->driver = NULL;
   XSETFONT (font_object, font);
 
   if (! NILP (entity))

=== modified file 'src/image.c'
--- a/src/image.c       2014-06-02 17:55:38 +0000
+++ b/src/image.c       2014-06-21 19:45:59 +0000
@@ -7250,7 +7250,11 @@
 #ifdef WINDOWSNT
 
 /* GIF library details.  */
+#if 5 < GIFLIB_MAJOR + (1 <= GIFLIB_MINOR)
+DEF_IMGLIB_FN (int, DGifCloseFile, (GifFileType *, int *));
+#else
 DEF_IMGLIB_FN (int, DGifCloseFile, (GifFileType *));
+#endif
 DEF_IMGLIB_FN (int, DGifSlurp, (GifFileType *));
 #if GIFLIB_MAJOR < 5
 DEF_IMGLIB_FN (GifFileType *, DGifOpen, (void *, InputFunc));
@@ -7320,6 +7324,22 @@
   return len;
 }
 
+static int
+gif_close (GifFileType *gif, int *err)
+{
+  int retval;
+
+#if 5 < GIFLIB_MAJOR + (1 <= GIFLIB_MINOR)
+  retval = fn_DGifCloseFile (gif, err);
+#else
+  retval = fn_DGifCloseFile (gif);
+#if GIFLIB_MAJOR >= 5
+  if (err)
+    *err = gif->Error;
+#endif
+#endif
+  return retval;
+}
 
 /* Load GIF image IMG for use on frame F.  Value is true if
    successful.  */
@@ -7344,9 +7364,7 @@
   Lisp_Object specified_data = image_spec_value (img->spec, QCdata, NULL);
   unsigned long bgcolor = 0;
   EMACS_INT idx;
-#if GIFLIB_MAJOR >= 5
   int gif_err;
-#endif
 
   if (NILP (specified_data))
     {
@@ -7414,7 +7432,7 @@
   if (!check_image_size (f, gif->SWidth, gif->SHeight))
     {
       image_error ("Invalid image size (see `max-image-size')", Qnil, Qnil);
-      fn_DGifCloseFile (gif);
+      gif_close (gif, NULL);
       return 0;
     }
 
@@ -7423,7 +7441,7 @@
   if (rc == GIF_ERROR || gif->ImageCount <= 0)
     {
       image_error ("Error reading `%s'", img->spec, Qnil);
-      fn_DGifCloseFile (gif);
+      gif_close (gif, NULL);
       return 0;
     }
 
@@ -7435,7 +7453,7 @@
       {
        image_error ("Invalid image number `%s' in image `%s'",
                     image_number, img->spec);
-       fn_DGifCloseFile (gif);
+       gif_close (gif, NULL);
        return 0;
       }
   }
@@ -7453,7 +7471,7 @@
   if (!check_image_size (f, width, height))
     {
       image_error ("Invalid image size (see `max-image-size')", Qnil, Qnil);
-      fn_DGifCloseFile (gif);
+      gif_close (gif, NULL);
       return 0;
     }
 
@@ -7471,7 +7489,7 @@
             && 0 <= subimg_left && subimg_left <= width - subimg_width))
        {
          image_error ("Subimage does not fit in image", Qnil, Qnil);
-         fn_DGifCloseFile (gif);
+         gif_close (gif, NULL);
          return 0;
        }
     }
@@ -7479,7 +7497,7 @@
   /* Create the X image and pixmap.  */
   if (!image_create_x_image_and_pixmap (f, img, width, height, 0, &ximg, 0))
     {
-      fn_DGifCloseFile (gif);
+      gif_close (gif, NULL);
       return 0;
     }
 
@@ -7650,7 +7668,18 @@
                            Fcons (make_number (gif->ImageCount),
                                   img->lisp_data));
 
-  fn_DGifCloseFile (gif);
+  if (gif_close (gif, &gif_err) == GIF_ERROR)
+    {
+#if 5 <= GIFLIB_MAJOR
+      char *error_text = fn_GifErrorString (gif_err);
+
+      if (error_text)
+       image_error ("Error closing `%s': %s",
+                    img->spec, build_string (error_text));
+#else
+      image_error ("Error closing `%s'", img->spec, Qnil);
+#endif
+    }
 
   /* Maybe fill in the background field while we have ximg handy. */
   if (NILP (image_spec_value (img->spec, QCbackground, NULL)))

=== modified file 'src/indent.c'
--- a/src/indent.c      2014-04-12 11:21:47 +0000
+++ b/src/indent.c      2014-06-21 12:30:02 +0000
@@ -1944,9 +1944,12 @@
 parameters such as width, horizontal scrolling, and so on.
 The default is to use the selected window's parameters.
 
-LINES can optionally take the form (COLS . LINES), in which case
-the motion will not stop at the start of a screen line but on
-its column COLS (if such exists on that line, that is).
+LINES can optionally take the form (COLS . LINES), in which case the
+motion will not stop at the start of a screen line but COLS column
+from the visual start of the line (if such exists on that line, that
+is).  If the line is scrolled horizontally, COLS is interpreted
+visually, i.e., as addition to the columns of text beyond the left
+edge of the window.
 
 `vertical-motion' always uses the current buffer,
 regardless of which buffer is displayed in WINDOW.
@@ -2126,20 +2129,14 @@
            }
        }
 
-      /* Move to the goal column, if one was specified.  */
+      /* Move to the goal column, if one was specified.  If the window
+        was originally hscrolled, the goal column is interpreted as
+        an addition to the hscroll amount.  */
       if (!NILP (lcols))
        {
-         /* If the window was originally hscrolled, move forward by
-            the hscrolled amount first.  */
-         if (first_x > 0)
-           {
-             move_it_in_display_line (&it, ZV, first_x, MOVE_TO_X);
-             it.current_x = 0;
-           }
-         move_it_in_display_line
-           (&it, ZV,
-            (int)(cols * FRAME_COLUMN_WIDTH (XFRAME (w->frame)) + 0.5),
-            MOVE_TO_X);
+         int to_x = (int)(cols * FRAME_COLUMN_WIDTH (XFRAME (w->frame)) + 0.5);
+
+         move_it_in_display_line (&it, ZV, first_x + to_x, MOVE_TO_X);
        }
 
       SET_PT_BOTH (IT_CHARPOS (it), IT_BYTEPOS (it));

=== modified file 'src/keyboard.c'
--- a/src/keyboard.c    2014-06-17 16:09:19 +0000
+++ b/src/keyboard.c    2014-06-21 19:45:59 +0000
@@ -2181,7 +2181,7 @@
 
 
 
-/* Input of single characters from keyboard */
+/* Input of single characters from keyboard.  */
 
 static Lisp_Object kbd_buffer_get_event (KBOARD **kbp, bool *used_mouse_menu,
                                         struct timespec *end_time);
@@ -9382,16 +9382,6 @@
          first_unbound = min (t, first_unbound);
 
          head = EVENT_HEAD (key);
-         if (help_char_p (head) && t > 0)
-           {
-             read_key_sequence_cmd = Vprefix_help_command;
-             keybuf[t++] = key;
-             last_nonmenu_event = key;
-             /* The Microsoft C compiler can't handle the goto that
-                would go here.  */
-             dummyflag = 1;
-             break;
-           }
 
          if (SYMBOLP (head))
            {
@@ -9649,6 +9639,17 @@
 
          goto replay_sequence;
        }
+
+      if (NILP (current_binding)
+         && help_char_p (EVENT_HEAD (key)) && t > 1)
+           {
+             read_key_sequence_cmd = Vprefix_help_command;
+             /* The Microsoft C compiler can't handle the goto that
+                would go here.  */
+             dummyflag = 1;
+             break;
+           }
+
       /* If KEY is not defined in any of the keymaps,
         and cannot be part of a function key or translation,
         and is a shifted function key,

=== modified file 'src/xdisp.c'
--- a/src/xdisp.c       2014-06-17 16:09:19 +0000
+++ b/src/xdisp.c       2014-06-21 19:45:59 +0000
@@ -15790,7 +15790,7 @@
       redisplay itself, when it decides that the previous window start
       point is fine and should be kept.  Search for "goto force_start"
       below to see the details.  Like the values of window-start
-      specified outside of redisply, these internally deduced values
+      specified outside of redisplay, these internally-deduced values
       are tested for feasibility, and ignored if found to be
       unfeasible.
 
@@ -20741,12 +20741,15 @@
      recorded in the glyphs, at least as long as the goal is on the
      screen.  */
   if (w->window_end_valid
-      && NILP (Vexecuting_kbd_macro)
       && !windows_or_buffers_changed
       && b
       && !b->clip_changed
       && !b->prevent_redisplay_optimizations_p
       && !window_outdated (w)
+      /* We rely below on the cursor coordinates to be up to date, but
+        we cannot trust them if some command moved point since the
+        last complete redisplay.  */
+      && w->last_point == BUF_PT (b)
       && w->cursor.vpos >= 0
       && w->cursor.vpos < w->current_matrix->nrows
       && (row = MATRIX_ROW (w->current_matrix, w->cursor.vpos))->enabled_p)

=== modified file 'test/ChangeLog'
--- a/test/ChangeLog    2014-06-15 15:56:58 +0000
+++ b/test/ChangeLog    2014-06-21 19:45:59 +0000
@@ -1,3 +1,7 @@
+2014-06-21  Fabián Ezequiel Gallina  <address@hidden>
+
+       * automated/python-tests.el (python-util-strip-string-1): New test.
+
 2014-06-15  Michael Albinus  <address@hidden>
 
        Sync with Tramp 2.2.10.

=== modified file 'test/automated/python-tests.el'
--- a/test/automated/python-tests.el    2014-04-09 01:50:29 +0000
+++ b/test/automated/python-tests.el    2014-06-21 14:14:54 +0000
@@ -2706,6 +2706,15 @@
         (equal (symbol-value (car ccons)) (cdr ccons)))))
     (kill-buffer buffer)))
 
+(ert-deftest python-util-strip-string-1 ()
+  (should (string= (python-util-strip-string "\t\r\n    str") "str"))
+  (should (string= (python-util-strip-string "str \n\r") "str"))
+  (should (string= (python-util-strip-string "\t\r\n    str \n\r ") "str"))
+  (should
+   (string= (python-util-strip-string "\n str \nin \tg \n\r") "str \nin \tg"))
+  (should (string= (python-util-strip-string "\n \t \n\r ") ""))
+  (should (string= (python-util-strip-string "") "")))
+
 
 ;;; Electricity
 

=== modified file 'test/indent/shell.sh'
--- a/test/indent/shell.sh      2013-10-29 14:46:23 +0000
+++ b/test/indent/shell.sh      2014-06-20 14:23:30 +0000
@@ -23,6 +23,24 @@
         ;;
 esac
 
+{                              # bug#17621
+    foo1 &&
+       foo2 &&
+        bar
+
+    foo1 &&     \
+        foo2 && \
+        bar
+}
+
+for foo in bar; do              #  bug#17721
+    [ -e $foo ] && {
+        echo t
+    } && {
+       echo r
+    }
+done
+
 echo -n $(( 5 << 2 ))
 # This should not be treated as a heredoc (bug#12770).
 2


reply via email to

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