Merge branch 'emacs-29' of git.sv.gnu.org:/srv/git/emacs into emacs-29
This commit is contained in:
commit
1198cdb556
23 changed files with 120 additions and 43 deletions
2
README
2
README
|
@ -2,7 +2,7 @@ Copyright (C) 2001-2023 Free Software Foundation, Inc.
|
||||||
See the end of the file for license conditions.
|
See the end of the file for license conditions.
|
||||||
|
|
||||||
|
|
||||||
This directory tree holds version 29.1 of GNU Emacs, the extensible,
|
This directory tree holds version 29.1.50 of GNU Emacs, the extensible,
|
||||||
customizable, self-documenting real-time display editor.
|
customizable, self-documenting real-time display editor.
|
||||||
|
|
||||||
The file INSTALL in this directory says how to build and install GNU
|
The file INSTALL in this directory says how to build and install GNU
|
||||||
|
|
|
@ -426,6 +426,13 @@ Now change to the 'manual' directory and invoke upload-manuals:
|
||||||
If upload-manuals fails, resolve the problems and re-invoke it.
|
If upload-manuals fails, resolve the problems and re-invoke it.
|
||||||
This requires running make-manuals again, since upload-manuals
|
This requires running make-manuals again, since upload-manuals
|
||||||
destructively modifies the 'manual' directory where you invoke it.
|
destructively modifies the 'manual' directory where you invoke it.
|
||||||
|
|
||||||
|
If new files fail to be "cvs add"ed, they need to be manually
|
||||||
|
removed from under /path/to/webpages/cvs/checkout before retrying
|
||||||
|
upload-manuals, because if they exist, they will not be handled as
|
||||||
|
"new" files, and will not be "cvs add"ed by the next run of the
|
||||||
|
script.
|
||||||
|
|
||||||
Also, upload-manuals invokes "cvs commit -f", so if you run it
|
Also, upload-manuals invokes "cvs commit -f", so if you run it
|
||||||
several times, some files will be committed more than once even
|
several times, some files will be committed more than once even
|
||||||
though they were not changed in-between. Suck it up.
|
though they were not changed in-between. Suck it up.
|
||||||
|
|
|
@ -23,7 +23,7 @@ dnl along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
AC_PREREQ([2.65])
|
AC_PREREQ([2.65])
|
||||||
dnl Note this is parsed by (at least) make-dist and lisp/cedet/ede/emacs.el.
|
dnl Note this is parsed by (at least) make-dist and lisp/cedet/ede/emacs.el.
|
||||||
AC_INIT([GNU Emacs], [29.1], [bug-gnu-emacs@gnu.org], [],
|
AC_INIT([GNU Emacs], [29.1.50], [bug-gnu-emacs@gnu.org], [],
|
||||||
[https://www.gnu.org/software/emacs/])
|
[https://www.gnu.org/software/emacs/])
|
||||||
|
|
||||||
dnl Set emacs_config_options to the options of 'configure', quoted for the shell,
|
dnl Set emacs_config_options to the options of 'configure', quoted for the shell,
|
||||||
|
|
|
@ -2804,7 +2804,12 @@ library. @xref{Hooks}.
|
||||||
@subsection How Emacs Finds Your Init File
|
@subsection How Emacs Finds Your Init File
|
||||||
|
|
||||||
Emacs normally finds your init file in a location under your home
|
Emacs normally finds your init file in a location under your home
|
||||||
directory. @xref{Init File}.
|
directory@footnote{
|
||||||
|
On MS-Windows, there's no single directory considered by all programs
|
||||||
|
as ``the home directory'' of the user. Emacs uses one of the
|
||||||
|
pertinent directories as the equivalent of your home directory; see
|
||||||
|
@ref{Windows HOME}, for the details.
|
||||||
|
}. @xref{Init File}.
|
||||||
|
|
||||||
Emacs looks for your init file using the filenames @file{~/.emacs.el},
|
Emacs looks for your init file using the filenames @file{~/.emacs.el},
|
||||||
@file{~/.emacs}, or @file{~/.emacs.d/init.el} in that order; you can
|
@file{~/.emacs}, or @file{~/.emacs.d/init.el} in that order; you can
|
||||||
|
|
|
@ -706,7 +706,7 @@ produced by typing those commands.
|
||||||
for the detailed raw data. Reporting the facts is straightforward,
|
for the detailed raw data. Reporting the facts is straightforward,
|
||||||
but many people strain to posit explanations and report them instead
|
but many people strain to posit explanations and report them instead
|
||||||
of the facts. If the explanations are based on guesses about how
|
of the facts. If the explanations are based on guesses about how
|
||||||
Emacs is implemented, they night not be useful; meanwhile, lacking the
|
Emacs is implemented, they might not be useful; meanwhile, lacking the
|
||||||
facts, we will have no real information about the bug. If you want to
|
facts, we will have no real information about the bug. If you want to
|
||||||
actually @emph{debug} the problem, and report explanations that are
|
actually @emph{debug} the problem, and report explanations that are
|
||||||
more than guesses, that is useful---but please include the raw facts
|
more than guesses, that is useful---but please include the raw facts
|
||||||
|
|
|
@ -187,9 +187,13 @@ selected frame.
|
||||||
@end defvar
|
@end defvar
|
||||||
|
|
||||||
@defopt server-after-make-frame-hook
|
@defopt server-after-make-frame-hook
|
||||||
A normal hook run when the Emacs server creates a client frame. When
|
A normal hook run when the Emacs server starts using a client frame.
|
||||||
this hook is called, the created frame is the selected one.
|
When this hook is called, the client frame is the selected one. Note
|
||||||
@xref{Emacs Server,,, emacs, The GNU Emacs Manual}.
|
that, depending on how @command{emacsclient} was invoked
|
||||||
|
(@pxref{Invoking emacsclient,,, emacs, The GNU Emacs Manual}), this
|
||||||
|
client frame could be a new frame created for the client, or it could
|
||||||
|
be an existing frame that the server reused for handling the client
|
||||||
|
commands. @xref{Emacs Server,,, emacs, The GNU Emacs Manual}.
|
||||||
@end defopt
|
@end defopt
|
||||||
|
|
||||||
|
|
||||||
|
|
27
etc/NEWS
27
etc/NEWS
|
@ -15,6 +15,33 @@ in older Emacs versions.
|
||||||
You can narrow news to a specific version by calling 'view-emacs-news'
|
You can narrow news to a specific version by calling 'view-emacs-news'
|
||||||
with a prefix argument or by typing 'C-u C-h C-n'.
|
with a prefix argument or by typing 'C-u C-h C-n'.
|
||||||
|
|
||||||
|
|
||||||
|
* Installation Changes in Emacs 29.2
|
||||||
|
|
||||||
|
|
||||||
|
* Startup Changes in Emacs 29.2
|
||||||
|
|
||||||
|
|
||||||
|
* Changes in Emacs 29.2
|
||||||
|
|
||||||
|
|
||||||
|
* Editing Changes in Emacs 29.2
|
||||||
|
|
||||||
|
|
||||||
|
* Changes in Specialized Modes and Packages in Emacs 29.2
|
||||||
|
|
||||||
|
|
||||||
|
* New Modes and Packages in Emacs 29.2
|
||||||
|
|
||||||
|
|
||||||
|
* Incompatible Lisp Changes in Emacs 29.2
|
||||||
|
|
||||||
|
|
||||||
|
* Lisp Changes in Emacs 29.2
|
||||||
|
|
||||||
|
|
||||||
|
* Changes in Emacs 29.2 on Non-Free Operating Systems
|
||||||
|
|
||||||
|
|
||||||
* Installation Changes in Emacs 29.1
|
* Installation Changes in Emacs 29.1
|
||||||
|
|
||||||
|
|
|
@ -226,9 +226,9 @@ mnemonics of the following coding systems:
|
||||||
(put 'mode-line-mule-info 'risky-local-variable t)
|
(put 'mode-line-mule-info 'risky-local-variable t)
|
||||||
|
|
||||||
(defvar mode-line-client
|
(defvar mode-line-client
|
||||||
`(""
|
`(:eval
|
||||||
(:propertize ("" (:eval (if (frame-parameter nil 'client) "@" "")))
|
(if (frame-parameter nil 'client)
|
||||||
help-echo ,(purecopy "emacsclient frame")))
|
,(propertize "@" 'help-echo (purecopy "emacsclient frame"))))
|
||||||
"Mode line construct for identifying emacsclient frames.")
|
"Mode line construct for identifying emacsclient frames.")
|
||||||
;; Autoload if this file no longer dumped.
|
;; Autoload if this file no longer dumped.
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
|
|
|
@ -445,13 +445,19 @@ classes."
|
||||||
(setcar dash-l ?.)) ; Reduce --x to .-x
|
(setcar dash-l ?.)) ; Reduce --x to .-x
|
||||||
(setq items (nconc items '((?- . ?-))))))
|
(setq items (nconc items '((?- . ?-))))))
|
||||||
|
|
||||||
;; Deal with leading ^ and range ^-x.
|
;; Deal with leading ^ and range ^-x in non-negated set.
|
||||||
(when (and (consp (car items))
|
(when (and (eq (car-safe (car items)) ?^)
|
||||||
(eq (caar items) ?^)
|
(not negated))
|
||||||
(cdr items))
|
(if (eq (cdar items) ?^)
|
||||||
;; Move ^ and ^-x to second place.
|
;; single leading ^
|
||||||
(setq items (cons (cadr items)
|
(when (cdr items)
|
||||||
(cons (car items) (cddr items)))))
|
;; Move the ^ to second place.
|
||||||
|
(setq items (cons (cadr items)
|
||||||
|
(cons (car items) (cddr items)))))
|
||||||
|
;; Split ^-x to _-x^
|
||||||
|
(setq items (cons (cons ?_ (cdar items))
|
||||||
|
(cons '(?^ . ?^)
|
||||||
|
(cdr items))))))
|
||||||
|
|
||||||
(cond
|
(cond
|
||||||
;; Empty set: if negated, any char, otherwise match-nothing.
|
;; Empty set: if negated, any char, otherwise match-nothing.
|
||||||
|
|
|
@ -995,7 +995,8 @@ Returns a list of the form (REAL-FUNCTION DEF ALIASED REAL-DEF)."
|
||||||
(symbol-name function)))))))
|
(symbol-name function)))))))
|
||||||
(real-def (cond
|
(real-def (cond
|
||||||
((and aliased (not (subrp def)))
|
((and aliased (not (subrp def)))
|
||||||
(car (function-alias-p real-function t)))
|
(or (car (function-alias-p real-function))
|
||||||
|
real-function))
|
||||||
((subrp def) (intern (subr-name def)))
|
((subrp def) (intern (subr-name def)))
|
||||||
(t def))))
|
(t def))))
|
||||||
|
|
||||||
|
|
|
@ -168,7 +168,7 @@ the available version of Tree-sitter for java."
|
||||||
:override t
|
:override t
|
||||||
:feature 'constant
|
:feature 'constant
|
||||||
`(((identifier) @font-lock-constant-face
|
`(((identifier) @font-lock-constant-face
|
||||||
(:match "\\`[A-Z_][A-Z_\\d]*\\'" @font-lock-constant-face))
|
(:match "\\`[A-Z_][0-9A-Z_]*\\'" @font-lock-constant-face))
|
||||||
[(true) (false)] @font-lock-constant-face)
|
[(true) (false)] @font-lock-constant-face)
|
||||||
:language 'java
|
:language 'java
|
||||||
:override t
|
:override t
|
||||||
|
|
|
@ -106,7 +106,7 @@ name.")
|
||||||
|
|
||||||
(defconst js--plain-method-re
|
(defconst js--plain-method-re
|
||||||
(concat "^\\s-*?\\(" js--dotted-name-re "\\)\\.prototype"
|
(concat "^\\s-*?\\(" js--dotted-name-re "\\)\\.prototype"
|
||||||
"\\.\\(" js--name-re "\\)\\s-*?=\\s-*?\\(\\(:?async[ \t\n]+\\)function\\)\\_>")
|
"\\.\\(" js--name-re "\\)\\s-*?=\\s-*?\\(\\(?:async[ \t\n]+\\)function\\)\\_>")
|
||||||
"Regexp matching an explicit JavaScript prototype \"method\" declaration.
|
"Regexp matching an explicit JavaScript prototype \"method\" declaration.
|
||||||
Group 1 is a (possibly-dotted) class name, group 2 is a method name,
|
Group 1 is a (possibly-dotted) class name, group 2 is a method name,
|
||||||
and group 3 is the `function' keyword.")
|
and group 3 is the `function' keyword.")
|
||||||
|
@ -3540,7 +3540,7 @@ Check if a node type is available, then return the right font lock rules."
|
||||||
:language 'javascript
|
:language 'javascript
|
||||||
:feature 'constant
|
:feature 'constant
|
||||||
'(((identifier) @font-lock-constant-face
|
'(((identifier) @font-lock-constant-face
|
||||||
(:match "\\`[A-Z_][A-Z_\\d]*\\'" @font-lock-constant-face))
|
(:match "\\`[A-Z_][0-9A-Z_]*\\'" @font-lock-constant-face))
|
||||||
|
|
||||||
[(true) (false) (null)] @font-lock-constant-face)
|
[(true) (false) (null)] @font-lock-constant-face)
|
||||||
|
|
||||||
|
@ -3646,7 +3646,7 @@ Check if a node type is available, then return the right font lock rules."
|
||||||
:feature 'number
|
:feature 'number
|
||||||
'((number) @font-lock-number-face
|
'((number) @font-lock-number-face
|
||||||
((identifier) @font-lock-number-face
|
((identifier) @font-lock-number-face
|
||||||
(:match "\\`\\(:?NaN\\|Infinity\\)\\'" @font-lock-number-face)))
|
(:match "\\`\\(?:NaN\\|Infinity\\)\\'" @font-lock-number-face)))
|
||||||
|
|
||||||
:language 'javascript
|
:language 'javascript
|
||||||
:feature 'operator
|
:feature 'operator
|
||||||
|
|
|
@ -1021,7 +1021,7 @@ leading double colon is not added."
|
||||||
(:match "\\`\\$[#\"'`:?]" @global_var))
|
(:match "\\`\\$[#\"'`:?]" @global_var))
|
||||||
;; ?' ?" ?` are character literals.
|
;; ?' ?" ?` are character literals.
|
||||||
((character) @char
|
((character) @char
|
||||||
(:match "\\`?[#\"'`:?]" @char))
|
(:match "\\`\\?[#\"'`:?]" @char))
|
||||||
;; Symbols like :+, :<=> or :foo=.
|
;; Symbols like :+, :<=> or :foo=.
|
||||||
((simple_symbol) @symbol
|
((simple_symbol) @symbol
|
||||||
(:match "\\s." @symbol))
|
(:match "\\s." @symbol))
|
||||||
|
|
|
@ -143,7 +143,7 @@
|
||||||
eol))
|
eol))
|
||||||
@font-lock-builtin-face)))
|
@font-lock-builtin-face)))
|
||||||
((identifier) @font-lock-type-face
|
((identifier) @font-lock-type-face
|
||||||
(:match "\\`\\(:?Err\\|Ok\\|None\\|Some\\)\\'" @font-lock-type-face)))
|
(:match "\\`\\(?:Err\\|Ok\\|None\\|Some\\)\\'" @font-lock-type-face)))
|
||||||
|
|
||||||
:language 'rust
|
:language 'rust
|
||||||
:feature 'comment
|
:feature 'comment
|
||||||
|
@ -232,9 +232,12 @@
|
||||||
(type_identifier) @font-lock-type-face
|
(type_identifier) @font-lock-type-face
|
||||||
((scoped_identifier name: (identifier) @rust-ts-mode--fontify-tail))
|
((scoped_identifier name: (identifier) @rust-ts-mode--fontify-tail))
|
||||||
((scoped_identifier path: (identifier) @font-lock-type-face)
|
((scoped_identifier path: (identifier) @font-lock-type-face)
|
||||||
(:match
|
(:match ,(rx bos
|
||||||
"\\`\\(u8\\|u16\\|u32\\|u64\\|u128\\|usize\\|i8\\|i16\\|i32\\|i64\\|i128\\|isize\\|char\\|str\\)\\'"
|
(or "u8" "u16" "u32" "u64" "u128" "usize"
|
||||||
@font-lock-type-face))
|
"i8" "i16" "i32" "i64" "i128" "isize"
|
||||||
|
"char" "str")
|
||||||
|
eos)
|
||||||
|
@font-lock-type-face))
|
||||||
((scoped_identifier path: (identifier) @rust-ts-mode--fontify-scope))
|
((scoped_identifier path: (identifier) @rust-ts-mode--fontify-scope))
|
||||||
((scoped_type_identifier path: (identifier) @rust-ts-mode--fontify-scope))
|
((scoped_type_identifier path: (identifier) @rust-ts-mode--fontify-scope))
|
||||||
(type_identifier) @font-lock-type-face)
|
(type_identifier) @font-lock-type-face)
|
||||||
|
@ -249,7 +252,7 @@
|
||||||
:feature 'constant
|
:feature 'constant
|
||||||
`((boolean_literal) @font-lock-constant-face
|
`((boolean_literal) @font-lock-constant-face
|
||||||
((identifier) @font-lock-constant-face
|
((identifier) @font-lock-constant-face
|
||||||
(:match "\\`[A-Z][A-Z\\d_]*\\'" @font-lock-constant-face)))
|
(:match "\\`[A-Z][0-9A-Z_]*\\'" @font-lock-constant-face)))
|
||||||
|
|
||||||
:language 'rust
|
:language 'rust
|
||||||
:feature 'variable
|
:feature 'variable
|
||||||
|
|
|
@ -198,7 +198,7 @@ Argument LANGUAGE is either `typescript' or `tsx'."
|
||||||
:language language
|
:language language
|
||||||
:feature 'constant
|
:feature 'constant
|
||||||
`(((identifier) @font-lock-constant-face
|
`(((identifier) @font-lock-constant-face
|
||||||
(:match "\\`[A-Z_][A-Z_\\d]*\\'" @font-lock-constant-face))
|
(:match "\\`[A-Z_][0-9A-Z_]*\\'" @font-lock-constant-face))
|
||||||
[(true) (false) (null)] @font-lock-constant-face)
|
[(true) (false) (null)] @font-lock-constant-face)
|
||||||
|
|
||||||
:language language
|
:language language
|
||||||
|
@ -345,7 +345,7 @@ Argument LANGUAGE is either `typescript' or `tsx'."
|
||||||
:feature 'number
|
:feature 'number
|
||||||
`((number) @font-lock-number-face
|
`((number) @font-lock-number-face
|
||||||
((identifier) @font-lock-number-face
|
((identifier) @font-lock-number-face
|
||||||
(:match "\\`\\(:?NaN\\|Infinity\\)\\'" @font-lock-number-face)))
|
(:match "\\`\\(?:NaN\\|Infinity\\)\\'" @font-lock-number-face)))
|
||||||
|
|
||||||
:language language
|
:language language
|
||||||
:feature 'operator
|
:feature 'operator
|
||||||
|
|
|
@ -182,8 +182,10 @@ space (this means characters from ! to ~; or from code 33 to
|
||||||
:type 'hook)
|
:type 'hook)
|
||||||
|
|
||||||
(defcustom server-after-make-frame-hook nil
|
(defcustom server-after-make-frame-hook nil
|
||||||
"Hook run when the Emacs server creates a client frame.
|
"Hook run when the Emacs server starts using a client frame.
|
||||||
The created frame is selected when the hook is called."
|
The client frame is selected when the hook is called.
|
||||||
|
The client frame could be a newly-created frame, or an
|
||||||
|
existing frame reused for this purpose."
|
||||||
:type 'hook
|
:type 'hook
|
||||||
:version "27.1")
|
:version "27.1")
|
||||||
|
|
||||||
|
|
|
@ -67,7 +67,7 @@
|
||||||
/^#undef PACKAGE_NAME/s/^.*$/#define PACKAGE_NAME ""/
|
/^#undef PACKAGE_NAME/s/^.*$/#define PACKAGE_NAME ""/
|
||||||
/^#undef PACKAGE_STRING/s/^.*$/#define PACKAGE_STRING ""/
|
/^#undef PACKAGE_STRING/s/^.*$/#define PACKAGE_STRING ""/
|
||||||
/^#undef PACKAGE_TARNAME/s/^.*$/#define PACKAGE_TARNAME ""/
|
/^#undef PACKAGE_TARNAME/s/^.*$/#define PACKAGE_TARNAME ""/
|
||||||
/^#undef PACKAGE_VERSION/s/^.*$/#define PACKAGE_VERSION "29.1"/
|
/^#undef PACKAGE_VERSION/s/^.*$/#define PACKAGE_VERSION "29.1.50"/
|
||||||
/^#undef SYSTEM_TYPE/s/^.*$/#define SYSTEM_TYPE "ms-dos"/
|
/^#undef SYSTEM_TYPE/s/^.*$/#define SYSTEM_TYPE "ms-dos"/
|
||||||
/^#undef HAVE_DECL_GETENV/s/^.*$/#define HAVE_DECL_GETENV 1/
|
/^#undef HAVE_DECL_GETENV/s/^.*$/#define HAVE_DECL_GETENV 1/
|
||||||
/^#undef SYS_SIGLIST_DECLARED/s/^.*$/#define SYS_SIGLIST_DECLARED 1/
|
/^#undef SYS_SIGLIST_DECLARED/s/^.*$/#define SYS_SIGLIST_DECLARED 1/
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
Copyright (C) 2001-2023 Free Software Foundation, Inc.
|
Copyright (C) 2001-2023 Free Software Foundation, Inc.
|
||||||
See the end of the file for license conditions.
|
See the end of the file for license conditions.
|
||||||
|
|
||||||
Emacs version 29.1 for MS-Windows
|
Emacs version 29.1.50 for MS-Windows
|
||||||
|
|
||||||
This README file describes how to set up and run a precompiled
|
This README file describes how to set up and run a precompiled
|
||||||
distribution of the latest version of GNU Emacs for MS-Windows. You
|
distribution of the latest version of GNU Emacs for MS-Windows. You
|
||||||
|
|
|
@ -470,7 +470,7 @@ used for non-Latin and other unusual characters (such as emoji) is
|
||||||
ignored as well, as are display properties and invisible text.
|
ignored as well, as are display properties and invisible text.
|
||||||
For these reasons, the results are not generally reliable;
|
For these reasons, the results are not generally reliable;
|
||||||
for accurate dimensions of text as it will be displayed,
|
for accurate dimensions of text as it will be displayed,
|
||||||
use `window-text-pixel-size' instead.
|
use `string-pixel-width' or `window-text-pixel-size' instead.
|
||||||
usage: (string-width STRING &optional FROM TO) */)
|
usage: (string-width STRING &optional FROM TO) */)
|
||||||
(Lisp_Object str, Lisp_Object from, Lisp_Object to)
|
(Lisp_Object str, Lisp_Object from, Lisp_Object to)
|
||||||
{
|
{
|
||||||
|
|
|
@ -11116,8 +11116,8 @@ the command loop or by `read-key-sequence'.
|
||||||
The value is always a vector. */)
|
The value is always a vector. */)
|
||||||
(void)
|
(void)
|
||||||
{
|
{
|
||||||
return Fvector (this_command_key_count
|
ptrdiff_t nkeys = this_command_key_count - this_single_command_key_start;
|
||||||
- this_single_command_key_start,
|
return Fvector (nkeys < 0 ? 0 : nkeys,
|
||||||
(XVECTOR (this_command_keys)->contents
|
(XVECTOR (this_command_keys)->contents
|
||||||
+ this_single_command_key_start));
|
+ this_single_command_key_start));
|
||||||
}
|
}
|
||||||
|
|
|
@ -17601,6 +17601,7 @@ redisplay_window_error (Lisp_Object error_data)
|
||||||
if (max_redisplay_ticks > 0
|
if (max_redisplay_ticks > 0
|
||||||
&& CONSP (error_data)
|
&& CONSP (error_data)
|
||||||
&& EQ (XCAR (error_data), Qerror)
|
&& EQ (XCAR (error_data), Qerror)
|
||||||
|
&& CONSP (XCDR (error_data))
|
||||||
&& STRINGP (XCAR (XCDR (error_data))))
|
&& STRINGP (XCAR (XCDR (error_data))))
|
||||||
Vdelayed_warnings_list = Fcons (list2 (XCAR (error_data),
|
Vdelayed_warnings_list = Fcons (list2 (XCAR (error_data),
|
||||||
XCAR (XCDR (error_data))),
|
XCAR (XCDR (error_data))),
|
||||||
|
@ -27091,7 +27092,7 @@ display_mode_element (struct it *it, int depth, int field_width, int precision,
|
||||||
|
|
||||||
oprops = Fcopy_sequence (oprops);
|
oprops = Fcopy_sequence (oprops);
|
||||||
tem = props;
|
tem = props;
|
||||||
while (CONSP (tem))
|
while (CONSP (tem) && CONSP (XCDR (tem)))
|
||||||
{
|
{
|
||||||
oprops = plist_put (oprops, XCAR (tem),
|
oprops = plist_put (oprops, XCAR (tem),
|
||||||
XCAR (XCDR (tem)));
|
XCAR (XCDR (tem)));
|
||||||
|
|
11
src/xfns.c
11
src/xfns.c
|
@ -5109,6 +5109,17 @@ This function is an internal primitive--use `make-frame' instead. */)
|
||||||
gui_default_parameter (f, parms, Qfullscreen, Qnil,
|
gui_default_parameter (f, parms, Qfullscreen, Qnil,
|
||||||
"fullscreen", "Fullscreen", RES_TYPE_SYMBOL);
|
"fullscreen", "Fullscreen", RES_TYPE_SYMBOL);
|
||||||
|
|
||||||
|
#ifdef USE_CAIRO
|
||||||
|
/* Set the initial size of the Cairo surface to the frame's current
|
||||||
|
width and height. If the window manager doesn't resize the new
|
||||||
|
frame after it's first mapped, Emacs will create a surface with
|
||||||
|
empty dimensions in response to to the initial exposure event,
|
||||||
|
which will persist until the next time it's resized.
|
||||||
|
(bug#64923) */
|
||||||
|
x_cr_update_surface_desired_size (f, FRAME_PIXEL_WIDTH (f),
|
||||||
|
FRAME_PIXEL_HEIGHT (f));
|
||||||
|
#endif /* USE_CAIRO */
|
||||||
|
|
||||||
/* Make the window appear on the frame and enable display, unless
|
/* Make the window appear on the frame and enable display, unless
|
||||||
the caller says not to. However, with explicit parent, Emacs
|
the caller says not to. However, with explicit parent, Emacs
|
||||||
cannot control visibility, so don't try. */
|
cannot control visibility, so don't try. */
|
||||||
|
|
|
@ -112,23 +112,33 @@
|
||||||
(should (equal (rx (any "]" "^") (any "]" "-") (any "-" "^")
|
(should (equal (rx (any "]" "^") (any "]" "-") (any "-" "^")
|
||||||
(not (any "]" "^")) (not (any "]" "-"))
|
(not (any "]" "^")) (not (any "]" "-"))
|
||||||
(not (any "-" "^")))
|
(not (any "-" "^")))
|
||||||
"[]^][]-][-^][^]^][^]-][^-^]"))
|
"[]^][]-][-^][^]^][^]-][^^-]"))
|
||||||
(should (equal (rx (any "]" "^" "-") (not (any "]" "^" "-")))
|
(should (equal (rx (any "]" "^" "-") (not (any "]" "^" "-")))
|
||||||
"[]^-][^]^-]"))
|
"[]^-][^]^-]"))
|
||||||
|
(should (equal (rx (any "^-f") (any "^-f" "-")
|
||||||
|
(any "^-f" "z") (any "^-f" "z" "-"))
|
||||||
|
"[_-f^][_-f^-][_-f^z][_-f^z-]"))
|
||||||
|
(should (equal (rx (not (any "^-f")) (not (any "^-f" "-"))
|
||||||
|
(not (any "^-f" "z")) (not (any "^-f" "z" "-")))
|
||||||
|
"[^^-f][^^-f-][^^-fz][^^-fz-]"))
|
||||||
|
(should (equal (rx (any "^-f" word) (any "^-f" "-" word))
|
||||||
|
"[_-f^[:word:]][_-f^[:word:]-]"))
|
||||||
|
(should (equal (rx (not (any "^-f" word)) (not (any "^-f" "-" word)))
|
||||||
|
"[^^-f[:word:]][^^-f[:word:]-]"))
|
||||||
(should (equal (rx (any "-" ascii) (any "^" ascii) (any "]" ascii))
|
(should (equal (rx (any "-" ascii) (any "^" ascii) (any "]" ascii))
|
||||||
"[[:ascii:]-][[:ascii:]^][][:ascii:]]"))
|
"[[:ascii:]-][[:ascii:]^][][:ascii:]]"))
|
||||||
(should (equal (rx (not (any "-" ascii)) (not (any "^" ascii))
|
(should (equal (rx (not (any "-" ascii)) (not (any "^" ascii))
|
||||||
(not (any "]" ascii)))
|
(not (any "]" ascii)))
|
||||||
"[^[:ascii:]-][^[:ascii:]^][^][:ascii:]]"))
|
"[^[:ascii:]-][^^[:ascii:]][^][:ascii:]]"))
|
||||||
(should (equal (rx (any "-]" ascii) (any "^]" ascii) (any "-^" ascii))
|
(should (equal (rx (any "-]" ascii) (any "^]" ascii) (any "-^" ascii))
|
||||||
"[][:ascii:]-][]^[:ascii:]][[:ascii:]^-]"))
|
"[][:ascii:]-][]^[:ascii:]][[:ascii:]^-]"))
|
||||||
(should (equal (rx (not (any "-]" ascii)) (not (any "^]" ascii))
|
(should (equal (rx (not (any "-]" ascii)) (not (any "^]" ascii))
|
||||||
(not (any "-^" ascii)))
|
(not (any "-^" ascii)))
|
||||||
"[^][:ascii:]-][^]^[:ascii:]][^[:ascii:]^-]"))
|
"[^][:ascii:]-][^]^[:ascii:]][^^[:ascii:]-]"))
|
||||||
(should (equal (rx (any "-]^" ascii) (not (any "-]^" ascii)))
|
(should (equal (rx (any "-]^" ascii) (not (any "-]^" ascii)))
|
||||||
"[]^[:ascii:]-][^]^[:ascii:]-]"))
|
"[]^[:ascii:]-][^]^[:ascii:]-]"))
|
||||||
(should (equal (rx (any "^" lower upper) (not (any "^" lower upper)))
|
(should (equal (rx (any "^" lower upper) (not (any "^" lower upper)))
|
||||||
"[[:lower:]^[:upper:]][^[:lower:]^[:upper:]]"))
|
"[[:lower:]^[:upper:]][^^[:lower:][:upper:]]"))
|
||||||
(should (equal (rx (any "-" lower upper) (not (any "-" lower upper)))
|
(should (equal (rx (any "-" lower upper) (not (any "-" lower upper)))
|
||||||
"[[:lower:][:upper:]-][^[:lower:][:upper:]-]"))
|
"[[:lower:][:upper:]-][^[:lower:][:upper:]-]"))
|
||||||
(should (equal (rx (any "]" lower upper) (not (any "]" lower upper)))
|
(should (equal (rx (any "]" lower upper) (not (any "]" lower upper)))
|
||||||
|
@ -143,7 +153,7 @@
|
||||||
"[]-a-][^]-a-]"))
|
"[]-a-][^]-a-]"))
|
||||||
(should (equal (rx (any "--]") (not (any "--]"))
|
(should (equal (rx (any "--]") (not (any "--]"))
|
||||||
(any "-" "^-a") (not (any "-" "^-a")))
|
(any "-" "^-a") (not (any "-" "^-a")))
|
||||||
"[].-\\-][^].-\\-][-^-a][^-^-a]"))
|
"[].-\\-][^].-\\-][_-a^-][^^-a-]"))
|
||||||
(should (equal (rx (not (any "!a" "0-8" digit nonascii)))
|
(should (equal (rx (not (any "!a" "0-8" digit nonascii)))
|
||||||
"[^!0-8a[:digit:][:nonascii:]]"))
|
"[^!0-8a[:digit:][:nonascii:]]"))
|
||||||
(should (equal (rx (any) (not (any)))
|
(should (equal (rx (any) (not (any)))
|
||||||
|
|
Loading…
Add table
Reference in a new issue