[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master 28e0d0c: Merge from origin/emacs-24
From: |
Teodor Zlatanov |
Subject: |
[Emacs-diffs] master 28e0d0c: Merge from origin/emacs-24 |
Date: |
Sat, 13 Dec 2014 00:23:22 +0000 |
branch: master
commit 28e0d0c95d8e17e18e94744e99ccd68c8c911703
Author: Ted Zlatanov <address@hidden>
Commit: Ted Zlatanov <address@hidden>
Merge from origin/emacs-24
bd6c441 * simple.el (password-word-equivalents): Add "passcode", used for
numeric secrets like PINs or RSA tokens.
16d4c1c A better fix for bug#19346
82ec808 * .gitignore: Add !lib/std*.in.h, so as to not ignore the .in.h
files.
3cf7629 Git ignore lib/std*.h
301a401 Always define `gnutls-available-p' even if GnuTLS is not available.
d76b9b2 Don't break example string between 2 lines (bug#19257)
75b4857 Port commit-msg to mawk
9ac0332 Improve commit-msg messages and autosquash
0c2f254 Support overflow-newline-into-fringe together with word-wrap
(bug#19300)
935ee05 * net/tramp-sh.el (tramp-get-remote-path): Use a login shell in
order to determine `tramp-own-remote-path'.
c2db939 python.el: Support interpreter paths with spaces
d83f329 ChangeLog fix
0f9fbb9 Port commit-message checking to FreeBSD 9.
3db1ada admin/MAINTAINERS: Update my interests and responsibilities.
6382f24 * .gitignore: Ignore autosave files.
Conflicts:
ChangeLog
lisp/progmodes/python.el
src/gnutls.c
---
.gitignore | 7 ++--
ChangeLog | 62 ++++++++++++++++++++++++++++++++++
admin/MAINTAINERS | 23 ++++--------
build-aux/git-hooks/commit-msg | 72 +++++++++++++++++++++++++++++-----------
doc/lispref/ChangeLog | 5 +++
doc/lispref/text.texi | 8 ++--
lisp/ChangeLog | 15 ++++++++
lisp/net/tramp-sh.el | 52 +++++++++++++++++-----------
lisp/progmodes/python.el | 4 ++-
lisp/simple.el | 2 +-
src/ChangeLog | 23 +++++++++++++
src/emacs.c | 4 --
src/gnutls.c | 55 +++++++++++++++++-------------
src/gnutls.h | 4 +-
src/xdisp.c | 25 +++++++++----
15 files changed, 257 insertions(+), 104 deletions(-)
diff --git a/.gitignore b/.gitignore
index 228deaa..188dd9f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -64,10 +64,8 @@ lib/getopt.h
lib/inttypes.h
lib/libgnu.a
lib/signal.h
-lib/stdalign.h
-lib/stdint.h
-lib/stdio.h
-lib/stdlib.h
+lib/std*.h
+!lib/std*.in.h
lib/string.h
lib/sys/
lib/time.h
@@ -237,6 +235,7 @@ info/dir
*.rej
*~
.#*
+\#*\#
[0-9]*.patch
# Built by 'make install'.
diff --git a/ChangeLog b/ChangeLog
index 32083d7..6316823 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,65 @@
+2014-11-13 Lars Magne Ingebrigtsen <address@hidden>
+
+ * .gitignore: Copy over sufficient ignorable files from the old
+ .bzrignore that a simple build doesn't list lots of unregistered
+ files.
+
+2014-11-11 Eric S. Raymond <address@hidden>
+
+ * Makefile.in: git transition - set VCWITNESS appropriately for git.
+
+ All bzr revision IDS, and all CVS revision IDs for which a commit
+ could be identified, were changed to time-date!committer version
+ stamps. All .cvsignore files in the history became .gitignore
+ files. Fixes-bug annotations from bzr were copied into the
+ corresponding commit comments.
+
+ (The first .cvsignore commit was 1999-09-30T14:07:address@hidden
+ The last CVS commit was 2009-12-27T08:11:address@hidden)
+
+ Committer/author email addresses are generally correct for the
+ transition day, not necessarily when the comit was originally
+ made.
+
+2014-12-12 Paul Eggert <address@hidden>
+
+ Git ignore lib/std*.h
+ * .gitignore: Add lib/std*.h, to ignore stdarg.h, stdbool.h, and
+ stddef.h. Remove subsumed entries.
+ Add !lib/std*.in.h, so as to not ignore the .in.h files.
+
+2014-12-11 Paul Eggert <address@hidden>
+
+ Port commit-msg to mawk
+ Problem reported by Ted Zlatanov in:
+ http://lists.gnu.org/archive/html/emacs-devel/2014-12/msg01093.html
+ * build-aux/git-hooks/commit-msg (space, non_space, non_print):
+ New vars. Use them as approximations to POSIX bracket expressions,
+ on implementations like mawk that do not support POSIX regexps.
+
+ Improve commit-msg messages and autosquash
+ Problem reported by Michal Nazarewicz in Bug#19337.
+ * build-aux/git-hooks/commit-msg: Add "commit message" to
+ diagnostics. Distinguish better between tabs and other
+ unprintable chars in diagnostics. Don't complain if a prefix
+ "fixup! " or "squash! " makes a summary line too long.
+
+2014-12-08 Paul Eggert <address@hidden>
+
+ Port commit-message checking to FreeBSD 9.
+ This fixes a bug reported by Jan Djärv in:
+ http://lists.gnu.org/archive/html/emacs-devel/2014-12/msg00704.html
+ along with some other issues I noticed while testing with FreeBSD.
+ * build-aux/git-hooks/commit-msg: Prefer gawk if available.
+ Prefer en_US.UTF-8 to en_US.utf8, as it's more portable.
+ Work around bug in FreeBSD 9 awk, where /[[:cntrl:]]/ matches
+ ordinary text characters.
+ Be less tricky about quoting "'" in a shell script.
+
+2014-12-05 Stefan Monnier <address@hidden>
+
+ * .gitignore: Ignore autosave files.
+
2014-12-12 Paul Eggert <address@hidden>
Merge from gnulib
diff --git a/admin/MAINTAINERS b/admin/MAINTAINERS
index 9a46b64..57f199b 100644
--- a/admin/MAINTAINERS
+++ b/admin/MAINTAINERS
@@ -31,6 +31,7 @@ Eli Zaretskii
src/msdos.[ch]
src/dosfns.[ch]
src/w16select.c
+ src/unexcoff.c
lisp/term/internal.el
lisp/term/pc-win.el
lisp/dos-fns.el
@@ -80,14 +81,18 @@ Bastien Guerry
Eli Zaretskii
doc/*
lispref/*
- info/dir
src/xfaces.c
src/xdisp.c
src/term.c
src/dispnew.c
+ src/dispextern.h
src/frame.c
src/dired.c
+ src/unexw32.c
+ src/w32*.[ch]
+ src/window.c
+ nt/*
lisp/arc-mode.el
lisp/menu-bar.el
@@ -97,6 +102,8 @@ Eli Zaretskii
lisp/startup.el
lisp/w32*.el
+ admin/unidata/*
+
Stefan Monnier
src/intervals.c
src/keyboard.c
@@ -181,24 +188,10 @@ src/tparam.c
src/undo.c
src/unexaix.c
src/unexalpha.c
-src/unexcoff.c
src/unexelf.c
src/unexhp9k800.c
-src/unexw32.c
src/vm-limit.c
-src/w32.c
-src/w32console.c
-src/w32fns.c
-src/w32heap.c
-src/w32inevt.c
-src/w32menu.c
-src/w32proc.c
-src/w32reg.c
-src/w32select.c
-src/w32term.c
-src/w32xfns.c
src/widget.c
-src/window.c
src/xfns.c
src/xmenu.c
src/xrdb.c
diff --git a/build-aux/git-hooks/commit-msg b/build-aux/git-hooks/commit-msg
index 6a09edd..5eb994c 100755
--- a/build-aux/git-hooks/commit-msg
+++ b/build-aux/git-hooks/commit-msg
@@ -20,69 +20,101 @@
# Written by Paul Eggert.
+# Prefer gawk if available, as it handles NUL bytes properly.
+if type gawk >/dev/null 2>&1; then
+ awk=gawk
+else
+ awk=awk
+fi
+
# Use a UTF-8 locale if available, so that the UTF-8 check works.
# Use U+00A2 CENT SIGN to test whether the locale works.
cent_sign_utf8_octal='\302\242'
at_sign=`
printf "${cent_sign_utf8_octal}@" |
- awk '{print substr($0, 2)}' 2>/dev/null
+ $awk '{print substr($0, 2)}' 2>/dev/null
`
if test "$at_sign" != @; then
at_sign=`
printf "${cent_sign_utf8_octal}@" |
- LC_ALL=en_US.utf8 awk '{print substr($0, 2)}' 2>/dev/null
+ LC_ALL=en_US.UTF-8 $awk '{print substr($0, 2)}' 2>/dev/null
`
if test "$at_sign" = @; then
- LC_ALL=en_US.utf8; export LC_ALL
+ LC_ALL=en_US.UTF-8; export LC_ALL
fi
fi
# Check the log entry.
-exec awk '
+exec $awk '
+ BEGIN {
+ if (" " ~ /[[:space:]]/) {
+ space = "[[:space:]]"
+ non_space = "[^[:space:]]"
+ non_print = "[^[:print:]]"
+ } else {
+ # mawk 1.3.3 does not support POSIX bracket expressions.
+ # Approximate them as best we can.
+ space = "[ \f\n\r\t\v]"
+ non_space = "[^ \f\n\r\t\v]"
+ non_print = "[\1-\37\177]"
+ }
+ }
+
/^#/ { next }
!/^.*$/ {
- print "Invalid character (not UTF-8)"
+ print "Invalid character (not UTF-8) in commit message"
status = 1
}
- nlines == 0 && !/[^[:space:]]/ { next }
+ nlines == 0 && $0 !~ non_space { next }
{ nlines++ }
- nlines == 1 && /^[[:space:]]/ {
- print "White space at start of first line"
- status = 1
- }
+ nlines == 1 {
+ # Ignore special markers used by "git rebase --autosquash".
+ if (! sub(/^fixup! /, ""))
+ sub(/^squash! /, "")
- nlines == 2 && /[^[:space:]]/ {
- print "Nonempty second line"
- status = 1
+ if ($0 ~ "^" space) {
+ print "White space at start of commit message'\''s first line"
+ status = 1
+ }
}
- /[[:cntrl:]]/ {
- print "Text contains control character; please use spaces instead of tabs"
+ nlines == 2 && $0 ~ non_space {
+ print "Nonempty second line in commit message"
status = 1
}
- 72 < length && /[[:space:]]/ {
- print "Line longer than 72 characters"
+ 72 < length && $0 ~ space {
+ print "Line longer than 72 characters in commit message"
status = 1
}
140 < length {
- print "Word longer than 140 characters"
+ print "Word longer than 140 characters in commit message"
status = 1
}
/^Signed-off-by: / {
- print "'Signed-off-by:' present"
+ print "'\''Signed-off-by:'\'' in commit message"
+ status = 1
+ }
+
+ $0 ~ non_print {
+ if (gsub(/\t/, "")) {
+ print "Tab in commit message; please use spaces instead"
+ }
+ if ($0 ~ non_print) {
+ print "Unprintable character in commit message"
+ }
status = 1
}
END {
if (nlines == 0) {
- print "Empty change log entry"
+ print "Empty commit message"
status = 1
}
exit status
diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog
index e7b5606..ad94751 100644
--- a/doc/lispref/ChangeLog
+++ b/doc/lispref/ChangeLog
@@ -1,3 +1,8 @@
+2014-12-11 Eli Zaretskii <address@hidden>
+
+ * text.texi (Comparing Text): Prevent a text string from being
+ broken between 2 lines. (Bug#19257)
+
2014-12-09 Lars Magne Ingebrigtsen <address@hidden>
* files.texi (Contents of Directories): Document
diff --git a/doc/lispref/text.texi b/doc/lispref/text.texi
index 720343c..3ef565b 100644
--- a/doc/lispref/text.texi
+++ b/doc/lispref/text.texi
@@ -349,10 +349,10 @@ This function ignores case when comparing characters
if @code{case-fold-search} is address@hidden It always ignores
text properties.
-Suppose the current buffer contains the text @samp{foobarbar
-haha!rara!}; then in this example the two substrings are @samp{rbar }
-and @samp{rara!}. The value is 2 because the first substring is greater
-at the second character.
+Suppose you have the text @address@hidden haha!rara!}} in the
+current buffer; then in this example the two substrings are @samp{rbar
+} and @samp{rara!}. The value is 2 because the first substring is
+greater at the second character.
@example
(compare-buffer-substrings nil 6 11 nil 16 21)
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 1db7c97..a41b5cc 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,18 @@
+2014-12-12 Michael Albinus <address@hidden>
+
+ * simple.el (password-word-equivalents): Add "passcode", used for
+ numeric secrets like PINs or RSA tokens.
+
+2014-12-10 Michael Albinus <address@hidden>
+
+ * net/tramp-sh.el (tramp-get-remote-path): Use a login shell in
+ order to determine `tramp-own-remote-path'.
+
+2014-12-09 Fabián Ezequiel Gallina <address@hidden>
+
+ * progmodes/python.el (python-shell-parse-command): Quote
+ `python-shell-interpreter`. (Bug#19289)
+
2014-12-12 Stefan Monnier <address@hidden>
* progmodes/python.el (python-indent-line): Use `noindent' in strings.
diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el
index c564988..c4d5e2f 100644
--- a/lisp/net/tramp-sh.el
+++ b/lisp/net/tramp-sh.el
@@ -3868,6 +3868,18 @@ file exists and nonzero exit status otherwise."
(setq item (pop alist))
(when (string-match (car item) shell)
(setq extra-args (cdr item))))
+ ;; It is useful to set the prompt in the following command
+ ;; because some people have a setting for $PS1 which /bin/sh
+ ;; doesn't know about and thus /bin/sh will display a strange
+ ;; prompt. For example, if $PS1 has "${CWD}" in the value, then
+ ;; ksh will display the current working directory but /bin/sh
+ ;; will display a dollar sign. The following command line sets
+ ;; $PS1 to a sane value, and works under Bourne-ish shells as
+ ;; well as csh-like shells. We also unset the variable $ENV
+ ;; because that is read by some sh implementations (eg, bash
+ ;; when called as sh) on startup; this way, we avoid the startup
+ ;; file clobbering $PS1. $PROMPT_COMMAND is another way to set
+ ;; the prompt in /bin/bash, it must be discarded as well.
(tramp-send-command
vec (format
"exec env ENV='' HISTFILE=/dev/null PROMPT_COMMAND='' PS1=%s PS2=''
PS3='' %s %s"
@@ -3944,20 +3956,6 @@ seconds. If not, it produces an error message with the
given ERROR-ARGS."
Mainly sets the prompt and the echo correctly. PROC is the shell
process to set up. VEC specifies the connection."
(let ((tramp-end-of-output tramp-initial-end-of-output))
- ;; It is useful to set the prompt in the following command because
- ;; some people have a setting for $PS1 which /bin/sh doesn't know
- ;; about and thus /bin/sh will display a strange prompt. For
- ;; example, if $PS1 has "${CWD}" in the value, then ksh will
- ;; display the current working directory but /bin/sh will display
- ;; a dollar sign. The following command line sets $PS1 to a sane
- ;; value, and works under Bourne-ish shells as well as csh-like
- ;; shells. Daniel Pittman reports that the unusual positioning of
- ;; the single quotes makes it work under `rc', too. We also unset
- ;; the variable $ENV because that is read by some sh
- ;; implementations (eg, bash when called as sh) on startup; this
- ;; way, we avoid the startup file clobbering $PS1. $PROMPT_COMMAND
- ;; is another way to set the prompt in /bin/bash, it must be
- ;; discarded as well.
(tramp-open-shell
vec
(or (tramp-get-connection-property vec "remote-shell" nil)
@@ -5046,13 +5044,25 @@ Return ATTR."
"/bin:/usr/bin")
"/bin:/usr/bin"))))
(own-remote-path
- (when elt2
- (condition-case nil
- (tramp-send-command-and-read vec "echo \\\"$PATH\\\"")
- (error
- (tramp-message
- vec 3 "$PATH not set, ignoring `tramp-own-remote-path'.")
- nil)))))
+ ;; We cannot apply `tramp-send-command-and-read' because
+ ;; the login shell could return more than just the $PATH
+ ;; string. So we emulate that function.
+ (when elt2
+ (tramp-send-command
+ vec
+ (format
+ "%s -l %s 'echo \\\"$PATH\\\"'"
+ (tramp-get-method-parameter
+ (tramp-file-name-method vec) 'tramp-remote-shell)
+ (mapconcat
+ 'identity
+ (tramp-get-method-parameter
+ (tramp-file-name-method vec) 'tramp-remote-shell-args)
+ " ")))
+ (with-current-buffer (tramp-get-connection-buffer vec)
+ (goto-char (point-max))
+ (forward-line -1)
+ (read (current-buffer))))))
;; Replace place holder `tramp-default-remote-path'.
(when elt1
diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el
index f1d8cff..35e24e1 100644
--- a/lisp/progmodes/python.el
+++ b/lisp/progmodes/python.el
@@ -2125,7 +2125,9 @@ uniqueness for different types of configurations."
;; `python-shell-interpreter' absolute path can be found by
;; `executable-find'.
(format "%s %s"
- (executable-find python-shell-interpreter)
+ ;; FIXME: Why executable-find?
+ (shell-quote-argument
+ (executable-find python-shell-interpreter))
python-shell-interpreter-args)))
(define-obsolete-function-alias
diff --git a/lisp/simple.el b/lisp/simple.el
index 9f44798..0fcd5db 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -2796,7 +2796,7 @@ which is defined in the `warnings' library.\n")
t))
(defcustom password-word-equivalents
- '("password" "passphrase" "pass phrase"
+ '("password" "passcode" "passphrase" "pass phrase"
; These are sorted according to the GNU en_US locale.
"암호" ; ko
"パスワード" ; ja
diff --git a/src/ChangeLog b/src/ChangeLog
index 887ca89..fd37eae 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,26 @@
+2014-12-12 Eli Zaretskii <address@hidden>
+
+ * gnutls.c (Fgnutls_available_p, syms_of_gnutls): Move
+ gnutls-available-p out of the HAVE_GNUTLS conditional, and define
+ them only once.
+
+2014-12-11 Teodor Zlatanov <address@hidden>
+
+ * emacs.c (main): Always include gnutls.h and run syms_of_gnutls.
+
+ * gnutls.h: Always declare syms_of_gnutls.
+
+ * gnutls.c (Fgnutls_available_p syms_of_gnutls): Move later for
+ clarity. Let the availability check return Qnil when the GnuTLS
+ integration is not available, instead of erroring out.
+ (Bug#19346)
+
+2014-12-10 Eli Zaretskii <address@hidden>
+
+ * xdisp.c (move_it_in_display_line_to, display_line): Don't
+ disallow overflow-newline-into-fringe when word-wrap is in
+ effect. (Bug#19300)
+
2014-12-11 Stefan Monnier <address@hidden>
* fileio.c: Better preserve window-points during revert (bug#19161).
diff --git a/src/emacs.c b/src/emacs.c
index da34eaa..b9654d0 100644
--- a/src/emacs.c
+++ b/src/emacs.c
@@ -88,9 +88,7 @@ along with GNU Emacs. If not, see
<http://www.gnu.org/licenses/>. */
#include "sysselect.h"
#include "systime.h"
-#ifdef HAVE_GNUTLS
#include "gnutls.h"
-#endif
#if (defined PROFILING \
&& (defined __FreeBSD__ || defined GNU_LINUX || defined __MINGW32__))
@@ -1493,9 +1491,7 @@ Using an Emacs configured with --with-x-toolkit=lucid
does not have this problem
syms_of_fontset ();
#endif /* HAVE_NS */
-#ifdef HAVE_GNUTLS
syms_of_gnutls ();
-#endif
#ifdef HAVE_GFILENOTIFY
syms_of_gfilenotify ();
diff --git a/src/gnutls.c b/src/gnutls.c
index 4de2eaf..4e12d88 100644
--- a/src/gnutls.c
+++ b/src/gnutls.c
@@ -779,26 +779,6 @@ See also `gnutls-init'. */)
return emacs_gnutls_deinit (proc);
}
-DEFUN ("gnutls-available-p", Fgnutls_available_p, Sgnutls_available_p, 0, 0, 0,
- doc: /* Return t if GnuTLS is available in this instance of Emacs. */)
- (void)
-{
-#ifdef WINDOWSNT
- Lisp_Object found = Fassq (Qgnutls_dll, Vlibrary_cache);
- if (CONSP (found))
- return XCDR (found);
- else
- {
- Lisp_Object status;
- status = init_gnutls_functions () ? Qt : Qnil;
- Vlibrary_cache = Fcons (Fcons (Qgnutls_dll, status), Vlibrary_cache);
- return status;
- }
-#else
- return Qt;
-#endif
-}
-
static Lisp_Object
gnutls_hex_string (unsigned char *buf, ptrdiff_t buf_size, const char *prefix)
{
@@ -1101,7 +1081,6 @@ The return value is a property list with top-level keys
:warnings and
return result;
}
-
/* Initialize global GnuTLS state to defaults.
Call `gnutls-global-deinit' when GnuTLS usage is no longer needed.
Return zero on success. */
@@ -1602,9 +1581,36 @@ This function may also return `gnutls-e-again', or
return gnutls_make_error (ret);
}
+#endif /* HAVE_GNUTLS */
+
+DEFUN ("gnutls-available-p", Fgnutls_available_p, Sgnutls_available_p, 0, 0, 0,
+ doc: /* Return t if GnuTLS is available in this instance of Emacs. */)
+ (void)
+{
+#ifdef HAVE_GNUTLS
+# ifdef WINDOWSNT
+ Lisp_Object found = Fassq (Qgnutls_dll, Vlibrary_cache);
+ if (CONSP (found))
+ return XCDR (found);
+ else
+ {
+ Lisp_Object status;
+ status = init_gnutls_functions () ? Qt : Qnil;
+ Vlibrary_cache = Fcons (Fcons (Qgnutls_dll, status), Vlibrary_cache);
+ return status;
+ }
+# else /* !WINDOWSNT */
+ return Qt;
+# endif /* !WINDOWSNT */
+#else /* !HAVE_GNUTLS */
+ return Qnil;
+#endif /* !HAVE_GNUTLS */
+}
+
void
syms_of_gnutls (void)
{
+#ifdef HAVE_GNUTLS
gnutls_global_initialized = 0;
DEFSYM (Qgnutls_dll, "gnutls");
@@ -1646,7 +1652,6 @@ syms_of_gnutls (void)
defsubr (&Sgnutls_boot);
defsubr (&Sgnutls_deinit);
defsubr (&Sgnutls_bye);
- defsubr (&Sgnutls_available_p);
defsubr (&Sgnutls_peer_status);
defsubr (&Sgnutls_peer_status_warning_describe);
@@ -1656,6 +1661,8 @@ Set this larger than 0 to get debug output in the
*Messages* buffer.
1 is for important messages, 2 is for debug data, and higher numbers
are as per the GnuTLS logging conventions. */);
global_gnutls_log_level = 0;
-}
-#endif /* HAVE_GNUTLS */
+#endif /* HAVE_GNUTLS */
+
+ defsubr (&Sgnutls_available_p);
+}
diff --git a/src/gnutls.h b/src/gnutls.h
index 8a667c0..8a18976 100644
--- a/src/gnutls.h
+++ b/src/gnutls.h
@@ -82,8 +82,8 @@ extern void emacs_gnutls_transport_set_errno
(gnutls_session_t state, int err);
#endif
extern Lisp_Object emacs_gnutls_deinit (Lisp_Object);
-extern void syms_of_gnutls (void);
-
#endif
+extern void syms_of_gnutls (void);
+
#endif
diff --git a/src/xdisp.c b/src/xdisp.c
index 0d31468..f022790 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -8794,12 +8794,7 @@ move_it_in_display_line_to (struct it *it,
doesn't fit on the line, e.g. a wide image. */
it->hpos == 0
|| (new_x == it->last_visible_x
- && FRAME_WINDOW_P (it->f)
- /* When word-wrap is ON and we have a valid
- wrap point, we don't allow the last glyph
- to "just barely fit" on the line. */
- && (it->line_wrap != WORD_WRAP
- || wrap_it.sp < 0)))
+ && FRAME_WINDOW_P (it->f)))
{
++it->hpos;
it->current_x = new_x;
@@ -8866,7 +8861,8 @@ move_it_in_display_line_to (struct it *it,
}
if (ITERATOR_AT_END_OF_LINE_P (it)
&& (it->line_wrap != WORD_WRAP
- || wrap_it.sp < 0))
+ || wrap_it.sp < 0
+ || IT_OVERFLOW_NEWLINE_INTO_FRINGE (it)))
{
result = MOVE_NEWLINE_OR_CR;
break;
@@ -20438,7 +20434,8 @@ display_line (struct it *it)
{
/* If line-wrap is on, check if a previous
wrap point was found. */
- if (wrap_row_used > 0
+ if (!IT_OVERFLOW_NEWLINE_INTO_FRINGE (it)
+ && wrap_row_used > 0
/* Even if there is a previous wrap
point, continue the line here as
usual, if (i) the previous character
@@ -20468,6 +20465,18 @@ display_line (struct it *it)
row->continued_p = 0;
row->exact_window_width_line_p = 1;
}
+ /* If line-wrap is on, check if a
+ previous wrap point was found. */
+ else if (wrap_row_used > 0
+ /* Even if there is a previous wrap
+ point, continue the line here as
+ usual, if (i) the previous character
+ was a space or tab AND (ii) the
+ current character is not. */
+ && (!may_wrap
+ || IT_DISPLAYING_WHITESPACE (it)))
+ goto back_to_wrap;
+
}
}
else if (it->bidi_p)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] master 28e0d0c: Merge from origin/emacs-24,
Teodor Zlatanov <=