Commit d7a89815 authored by Fabián Ezequiel Gallina's avatar Fabián Ezequiel Gallina
Browse files

Merge from origin/emacs-24

d279e668 Fix assertion violations in try_window_id (Bug#19511)
031eadcb Fix dired quoting bug with "Hit`N`Hide"
5981b4b1 More doc fixes for bug#19502 -- make documentation less X-specific.
143516c7 src/emacs.c (syms_of_emacs) <system-configuration>: Doc fix.  (Bug#19502)
parents 3a8b7013 d279e668
2015-01-04 Eli Zaretskii <eliz@gnu.org>
* frames.texi (Display Feature Testing): Make the description of
x-server-version and x-server-vendor less X-specific. (Bug#19502)
2015-01-15 Eli Zaretskii <eliz@gnu.org>
* streams.texi (Input Functions): Document 'set-binary-mode'.
......
......@@ -2782,20 +2782,26 @@ colors).
This function returns the number of color cells the screen supports.
@end defun
These functions obtain additional information specifically
about X displays.
These functions obtain additional information about the window
system in use where Emacs shows the specified @var{display}. (Their
names begin with @code{x-} for historical reasons.)
@defun x-server-version &optional display
This function returns the list of version numbers of the X server
running the display. The value is a list of three integers: the major
and minor version numbers of the X protocol, and the
distributor-specific release number of the X server software itself.
This function returns the list of version numbers of the GUI window
system running on @var{display}, such as the X server on GNU and Unix
systems. The value is a list of three integers: the major and minor
version numbers of the protocol, and the distributor-specific release
number of the window system software itself. On GNU and Unix systems,
these are normally the version of the X protocol and the
distributor-specific release number of the X server software. On
MS-Windows, this is the version of the Windows OS.
@end defun
@defun x-server-vendor &optional display
This function returns the ``vendor'' that provided the X server
software (as a string). Really this means whoever distributes the X
server.
This function returns the ``vendor'' that provided the window system
software (as a string). On GNU and Unix systems this really means
whoever distributes the X server. On MS-Windows this is the vendor ID
string of the Windows OS (Microsoft).
When the developers of X labeled software distributors as
``vendors'', they showed their false assumption that no system could
......
2015-01-04 Paul Eggert <eggert@cs.ucla.edu>
Fix dired quoting bug with "Hit`N`Hide"
Fixes Bug#19498.
* files.el (shell-quote-wildcard-pattern): Also quote "`".
2015-01-27 Katsumi Yamaoka <yamaoka@jpl.org>
* emacs-lisp/cl.el (cl--function-convert):
......
......@@ -6094,7 +6094,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.
......@@ -6108,12 +6108,12 @@ need to be passed verbatim to shell commands."
;; argument has quotes, we can safely assume it is already
;; quoted by the caller.
(if (or (string-match "[\"]" pattern)
;; We quote [&()#$'] in case their shell is a port of a
;; We quote [&()#$`'] in case their shell is a port of a
;; Unixy shell. We quote [,=+] because stock DOS and
;; Windows shells require that in some cases, such as
;; passing arguments to batch files that use positional
;; arguments like %1.
(not (string-match "[ \t;&()#$',=+]" pattern)))
(not (string-match "[ \t;&()#$`',=+]" pattern)))
pattern
(let ((result "\"")
(beg 0)
......@@ -6128,7 +6128,7 @@ need to be passed verbatim to shell commands."
(concat result (substring pattern beg) "\""))))
(t
(let ((beg 0))
(while (string-match "[ \t\n;<>&|()'\"#$]" pattern beg)
(while (string-match "[ \t\n;<>&|()`'\"#$]" pattern beg)
(setq pattern
(concat (substring pattern 0 (match-beginning 0))
"\\"
......
2015-01-05 Eli Zaretskii <eliz@gnu.org>
* xdisp.c (move_it_to, try_cursor_movement): Don't use the window
end information if the window_end_valid flag is unset.
(try_window_id): If the call to display_line invalidated the
window end information, give up the try_window_id optimization.
(Bug#19511)
2015-01-04 Eli Zaretskii <eliz@gnu.org>
* w32fns.c (Fx_server_version, Fx_server_vendor): Doc fix.
* xfns.c (Fx_server_version, Fx_server_vendor): Doc fix.
* emacs.c (syms_of_emacs) <system-configuration>: Doc fix.
(Bug#19502)
2015-01-27 Paul Eggert <eggert@cs.ucla.edu>
Use bool for boolean in xfaces.c
......
......@@ -2392,9 +2392,7 @@ hpux, irix, usg-unix-v) indicates some sort of Unix system. */);
/* See configure.ac (and config.nt) for the possible SYSTEM_TYPEs. */
DEFVAR_LISP ("system-configuration", Vsystem_configuration,
doc: /* Value is string indicating configuration Emacs was built for.
On MS-Windows, the value reflects the OS flavor and version on which
Emacs is running. */);
doc: /* Value is string indicating configuration Emacs was built for. */);
Vsystem_configuration = build_string (EMACS_CONFIGURATION);
DEFVAR_LISP ("system-configuration-options", Vsystem_configuration_options,
......
......@@ -4895,25 +4895,38 @@ If omitted or nil, that stands for the selected frame's display. */)
}
DEFUN ("x-server-vendor", Fx_server_vendor, Sx_server_vendor, 0, 1, 0,
doc: /* Return the "vendor ID" string of the W32 system (Microsoft).
The optional argument DISPLAY specifies which display to ask about.
DISPLAY should be either a frame or a display name (a string).
doc: /* Return the "vendor ID" string of the GUI software on TERMINAL.
\(Labeling every distributor as a "vendor" embodies the false assumption
that operating systems cannot be developed and distributed noncommercially.)
For GNU and Unix systems, this queries the X server software; for
MS-Windows, this queries the OS.
The optional argument TERMINAL specifies which display to ask about.
TERMINAL should be a terminal object, a frame or a display name (a string).
If omitted or nil, that stands for the selected frame's display. */)
(Lisp_Object display)
(Lisp_Object terminal)
{
return build_string ("Microsoft Corp.");
}
DEFUN ("x-server-version", Fx_server_version, Sx_server_version, 0, 1, 0,
doc: /* Return the version numbers of the server of DISPLAY.
The value is a list of three integers: the major and minor
version numbers of the X Protocol in use, and the distributor-specific
release number. See also the function `x-server-vendor'.
doc: /* Return the version numbers of the GUI software on TERMINAL.
The value is a list of three integers specifying the version of the GUI
software in use.
The optional argument DISPLAY specifies which display to ask about.
DISPLAY should be either a frame or a display name (a string).
For GNU and Unix system, the first 2 numbers are the version of the X
Protocol used on TERMINAL and the 3rd number is the distributor-specific
release number. For MS-Windows, the 3 numbers report the version and
the build number of the OS.
See also the function `x-server-vendor'.
The optional argument TERMINAL specifies which display to ask about.
TERMINAL should be a terminal object, a frame or a display name (a string).
If omitted or nil, that stands for the selected frame's display. */)
(Lisp_Object display)
(Lisp_Object terminal)
{
return list3i (w32_major_version, w32_minor_version, w32_build_number);
}
......
......@@ -9263,6 +9263,7 @@ move_it_to (struct it *it, ptrdiff_t to_charpos, int to_x, int to_y, int to_vpos
&& it->current_x == it->last_visible_x - 1
&& it->c != '\n'
&& it->c != '\t'
&& it->w->window_end_valid
&& it->vpos < it->w->window_end_vpos)
{
it->continuation_lines_width += it->current_x;
......@@ -15383,7 +15384,8 @@ try_cursor_movement (Lisp_Object window, struct text_pos startp, int *scroll_ste
/* Likewise there was a check whether window_end_vpos is nil or larger
than the window. Now window_end_vpos is int and so never nil, but
let's leave eassert to check whether it fits in the window. */
eassert (w->window_end_vpos < w->current_matrix->nrows);
eassert (!w->window_end_valid
|| w->window_end_vpos < w->current_matrix->nrows);
/* Handle case where text has not changed, only point, and it has
not moved off the frame. */
......@@ -18123,6 +18125,21 @@ try_window_id (struct window *w)
if (f->fonts_changed)
return -1;
/* The redisplay iterations in display_line above could have
triggered font-lock, which could have done something that
invalidates IT->w window's end-point information, on which we
rely below. E.g., one package, which will remain unnamed, used
to install a font-lock-fontify-region-function that called
bury-buffer, whose side effect is to switch the buffer displayed
by IT->w, and that predictably resets IT->w's window_end_valid
flag, which we already tested at the entry to this function.
Amply punish such packages/modes by giving up on this
optimization in those cases. */
if (!w->window_end_valid)
{
clear_glyph_matrix (w->desired_matrix);
return -1;
}
/* Compute differences in buffer positions, y-positions etc. for
lines reused at the bottom of the window. Compute what we can
......
......@@ -3542,10 +3542,15 @@ If omitted or nil, that stands for the selected frame's display. */)
}
DEFUN ("x-server-vendor", Fx_server_vendor, Sx_server_vendor, 0, 1, 0,
doc: /* Return the "vendor ID" string of the X server of display TERMINAL.
doc: /* Return the "vendor ID" string of the GUI software on TERMINAL.
\(Labeling every distributor as a "vendor" embodies the false assumption
that operating systems cannot be developed and distributed noncommercially.)
The optional argument TERMINAL specifies which display to ask about.
For GNU and Unix systems, this queries the X server software; for
MS-Windows, this queries the OS.
TERMINAL should be a terminal object, a frame or a display name (a string).
If omitted or nil, that stands for the selected frame's display. */)
(Lisp_Object terminal)
......@@ -3558,10 +3563,16 @@ If omitted or nil, that stands for the selected frame's display. */)
}
DEFUN ("x-server-version", Fx_server_version, Sx_server_version, 0, 1, 0,
doc: /* Return the version numbers of the X server of display TERMINAL.
The value is a list of three integers: the major and minor
version numbers of the X Protocol in use, and the distributor-specific release
number. See also the function `x-server-vendor'.
doc: /* Return the version numbers of the GUI software on TERMINAL.
The value is a list of three integers specifying the version of the GUI
software in use.
For GNU and Unix system, the first 2 numbers are the version of the X
Protocol used on TERMINAL and the 3rd number is the distributor-specific
release number. For MS-Windows, the 3 numbers report the version and
the build number of the OS.
See also the function `x-server-vendor'.
The optional argument TERMINAL specifies which display to ask about.
TERMINAL should be a terminal object, a frame or a display name (a string).
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment