mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-12-02 08:22:22 +00:00
Merge from origin/emacs-25
6e3adf8
Fix crash in syntax.c after GC973ce5a
Improve squiggly heredoc support in non-SMIE Ruby mode9d5cceb
Fix doc string quoting0b33a23
Fix mouse dragging of vertical dividers with scroll bars on l...a5d05f4
* etc/PROBLEMS: Mention the link-time problems on FreeBSD 11.
This commit is contained in:
commit
2aa6b47e3e
@ -2419,6 +2419,13 @@ files are installed. Then use:
|
||||
|
||||
(using the location of the 32-bit X libraries on your system).
|
||||
|
||||
*** Building on FreeBSD 11 fails at link time due to unresolved symbol
|
||||
|
||||
The symbol is sendmmsg@FBSD_1.4. This is due to a faulty libgio
|
||||
library on these systems. The solution is to reconfigure Emacs while
|
||||
disabling all the features that require libgio: rsvg, dbus, gconf, and
|
||||
imagemagick.
|
||||
|
||||
*** Building Emacs for Cygwin can fail with GCC 3
|
||||
|
||||
As of Emacs 22.1, there have been stability problems with Cygwin
|
||||
|
@ -6210,7 +6210,7 @@ and `list-directory-verbose-switches'."
|
||||
|
||||
PATTERN is assumed to represent a file-name wildcard suitable for the
|
||||
underlying filesystem. For Unix and GNU/Linux, each character from the
|
||||
set [ \\t\\n;<>&|()`'\"#$] is quoted with a backslash; for DOS/Windows, all
|
||||
set [ \\t\\n;<>&|()\\=`\\='\"#$] is quoted with a backslash; for DOS/Windows, all
|
||||
the parts of the pattern which don't include wildcard characters are
|
||||
quoted with double quotes.
|
||||
|
||||
|
@ -415,7 +415,15 @@ must be one of the symbols `header', `mode', or `vertical'."
|
||||
(or (not resize-mini-windows)
|
||||
(eq minibuffer-window
|
||||
(active-minibuffer-window)))))))
|
||||
(setq draggable nil))))
|
||||
(setq draggable nil)))
|
||||
((eq line 'vertical)
|
||||
(let ((divider-width (frame-right-divider-width frame)))
|
||||
(when (and (or (not (numberp divider-width))
|
||||
(zerop divider-width))
|
||||
(eq (cdr (assq 'vertical-scroll-bars
|
||||
(frame-parameters frame)))
|
||||
'left))
|
||||
(setq window (window-in-direction 'left window t))))))
|
||||
|
||||
(let* ((exitfun nil)
|
||||
(move
|
||||
|
@ -1151,7 +1151,7 @@ delimiter."
|
||||
((looking-at "<<")
|
||||
(cond
|
||||
((and (ruby-expr-beg 'heredoc)
|
||||
(looking-at "<<\\(-\\)?\\(\\([\"'`]\\)\\([^\n]+?\\)\\3\\|\\(?:\\sw\\|\\s_\\)+\\)"))
|
||||
(looking-at "<<\\([-~]\\)?\\(\\([\"'`]\\)\\([^\n]+?\\)\\3\\|\\(?:\\sw\\|\\s_\\)+\\)"))
|
||||
(setq re (regexp-quote (or (match-string 4) (match-string 2))))
|
||||
(if (match-beginning 1) (setq re (concat "\\s *" re)))
|
||||
(let* ((id-end (goto-char (match-end 0)))
|
||||
|
@ -4684,7 +4684,7 @@ Usage:
|
||||
SPECIAL MENUES:
|
||||
As an alternative to the speedbar, an index menu can be added (set
|
||||
option `vhdl-index-menu' to non-nil) or made accessible as a mouse menu
|
||||
(e.g. add \"(global-set-key '[S-down-mouse-3] 'imenu)\" to your start-up
|
||||
(e.g. add \"(global-set-key [S-down-mouse-3] \\='imenu)\" to your start-up
|
||||
file) for browsing the file contents (is not populated if buffer is
|
||||
larger than 256000). Also, a source file menu can be
|
||||
added (set option `vhdl-source-file-menu' to non-nil) for browsing the
|
||||
|
@ -3954,9 +3954,9 @@ the match data are the result of matching REGEXP against a substring
|
||||
of STRING, the same substring that is the actual text of the match which
|
||||
is passed to REP as its argument.
|
||||
|
||||
To replace only the first match (if any), make REGEXP match up to \\'
|
||||
To replace only the first match (if any), make REGEXP match up to \\\\='
|
||||
and replace a sub-expression, e.g.
|
||||
(replace-regexp-in-string \"\\\\(foo\\\\).*\\\\'\" \"bar\" \" foo foo\" nil nil 1)
|
||||
(replace-regexp-in-string \"\\\\(foo\\\\).*\\\\\\='\" \"bar\" \" foo foo\" nil nil 1)
|
||||
=> \" bar foo\""
|
||||
|
||||
;; To avoid excessive consing from multiple matches in long strings,
|
||||
|
@ -429,7 +429,7 @@ x exchanges point and mark.
|
||||
Mark ring is pushed at start of every successful search and when
|
||||
jump to line occurs. The mark is set on jump to buffer start or end.
|
||||
\\[point-to-register] save current position in character register.
|
||||
' go to position saved in character register.
|
||||
\\=' go to position saved in character register.
|
||||
s do forward incremental search.
|
||||
r do reverse incremental search.
|
||||
\\[View-search-regexp-forward] searches forward for regular expression, starting after current page.
|
||||
|
@ -3125,7 +3125,7 @@ - (NSString *)panel: (id)sender userEnteredFilename: (NSString *)filename
|
||||
|
||||
(setq ns-icon-type-alist
|
||||
(append ns-icon-type-alist
|
||||
'((\"^\\\\*\\\\(Group\\\\*$\\\\|Summary \\\\|Article\\\\*$\\\\)\"
|
||||
\\='((\"^\\\\*\\\\(Group\\\\*$\\\\|Summary \\\\|Article\\\\*$\\\\)\"
|
||||
. \"Gnus\"))))
|
||||
|
||||
When you miniaturize a Group, Summary or Article frame, Gnus.tiff will
|
||||
|
61
src/syntax.c
61
src/syntax.c
@ -2182,63 +2182,51 @@ skip_syntaxes (bool forwardp, Lisp_Object string, Lisp_Object lim)
|
||||
ptrdiff_t start_point = PT;
|
||||
ptrdiff_t pos = PT;
|
||||
ptrdiff_t pos_byte = PT_BYTE;
|
||||
unsigned char *p = PT_ADDR, *endp, *stop;
|
||||
|
||||
if (forwardp)
|
||||
{
|
||||
endp = (XINT (lim) == GPT) ? GPT_ADDR : CHAR_POS_ADDR (XINT (lim));
|
||||
stop = (pos < GPT && GPT < XINT (lim)) ? GPT_ADDR : endp;
|
||||
}
|
||||
else
|
||||
{
|
||||
endp = CHAR_POS_ADDR (XINT (lim));
|
||||
stop = (pos >= GPT && GPT > XINT (lim)) ? GAP_END_ADDR : endp;
|
||||
}
|
||||
unsigned char *p, *endp, *stop;
|
||||
|
||||
immediate_quit = 1;
|
||||
SETUP_SYNTAX_TABLE (pos, forwardp ? 1 : -1);
|
||||
|
||||
if (forwardp)
|
||||
{
|
||||
if (multibyte)
|
||||
while (true)
|
||||
{
|
||||
while (1)
|
||||
p = BYTE_POS_ADDR (pos_byte);
|
||||
endp = XINT (lim) == GPT ? GPT_ADDR : CHAR_POS_ADDR (XINT (lim));
|
||||
stop = pos < GPT && GPT < XINT (lim) ? GPT_ADDR : endp;
|
||||
|
||||
do
|
||||
{
|
||||
int nbytes;
|
||||
|
||||
if (p >= stop)
|
||||
{
|
||||
if (p >= endp)
|
||||
break;
|
||||
goto done;
|
||||
p = GAP_END_ADDR;
|
||||
stop = endp;
|
||||
}
|
||||
c = STRING_CHAR_AND_LENGTH (p, nbytes);
|
||||
if (multibyte)
|
||||
c = STRING_CHAR_AND_LENGTH (p, nbytes);
|
||||
else
|
||||
c = *p, nbytes = 1;
|
||||
if (! fastmap[SYNTAX (c)])
|
||||
break;
|
||||
goto done;
|
||||
p += nbytes, pos++, pos_byte += nbytes;
|
||||
UPDATE_SYNTAX_TABLE_FORWARD (pos);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
while (1)
|
||||
{
|
||||
if (p >= stop)
|
||||
{
|
||||
if (p >= endp)
|
||||
break;
|
||||
p = GAP_END_ADDR;
|
||||
stop = endp;
|
||||
}
|
||||
if (! fastmap[SYNTAX (*p)])
|
||||
break;
|
||||
p++, pos++, pos_byte++;
|
||||
UPDATE_SYNTAX_TABLE_FORWARD (pos);
|
||||
}
|
||||
while (!parse_sexp_lookup_properties
|
||||
|| pos < gl_state.e_property);
|
||||
|
||||
update_syntax_table_forward (pos + gl_state.offset,
|
||||
false, gl_state.object);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
p = BYTE_POS_ADDR (pos_byte);
|
||||
endp = CHAR_POS_ADDR (XINT (lim));
|
||||
stop = pos >= GPT && GPT > XINT (lim) ? GAP_END_ADDR : endp;
|
||||
|
||||
if (multibyte)
|
||||
{
|
||||
while (1)
|
||||
@ -2280,6 +2268,7 @@ skip_syntaxes (bool forwardp, Lisp_Object string, Lisp_Object lim)
|
||||
}
|
||||
}
|
||||
|
||||
done:
|
||||
SET_PT_BOTH (pos, pos_byte);
|
||||
immediate_quit = 0;
|
||||
|
||||
@ -3109,7 +3098,7 @@ but before count is used up, nil is returned. */)
|
||||
DEFUN ("backward-prefix-chars", Fbackward_prefix_chars, Sbackward_prefix_chars,
|
||||
0, 0, 0,
|
||||
doc: /* Move point backward over any number of chars with prefix syntax.
|
||||
This includes chars with expression prefix syntax class (') and those with
|
||||
This includes chars with expression prefix syntax class (\\=') and those with
|
||||
the prefix syntax flag (p). */)
|
||||
(void)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user