Merge remote-tracking branch 'origin/master' into feature/pgtk
This commit is contained in:
commit
15d5af8cb0
23 changed files with 1447 additions and 704 deletions
98
ChangeLog.3
98
ChangeLog.3
|
@ -1,3 +1,95 @@
|
|||
2021-12-01 Juri Linkov <juri@linkov.net>
|
||||
|
||||
* lisp/repeat.el: Use same logic for repeat-check-key and repeat-exit-timeout.
|
||||
|
||||
* lisp/repeat.el (repeat-check-key): Use for repeat-check-key the same logic
|
||||
as is used for repeat-exit-timeout in repeat-post-hook (bug#51390).
|
||||
(repeat-post-hook): Check for repeat-exit-timeout symbol property.
|
||||
|
||||
2021-12-01 Juri Linkov <juri@linkov.net>
|
||||
|
||||
* lisp/help.el (help--analyze-key): Prefer posn-set-point over mouse-set-point
|
||||
|
||||
* lisp/help.el (help--analyze-key): Use posn-set-point instead of
|
||||
mouse-set-point that runs the hook mouse-leave-buffer-hook via
|
||||
mouse-minibuffer-check. Using posn-set-point also unnecessitates
|
||||
extra conditions added in bug#51421.
|
||||
|
||||
* lisp/isearch.el (isearch-describe-key, isearch-describe-mode):
|
||||
Add precautions to not call isearch-update when the executed
|
||||
command exited isearch-mode (bug#51173).
|
||||
|
||||
2021-12-01 Stefan Kangas <stefan@marxist.se>
|
||||
|
||||
Bump Emacs version to 28.0.90
|
||||
|
||||
* README:
|
||||
* configure.ac:
|
||||
* msdos/sed2v2.inp:
|
||||
* nt/README.W32: Bump Emacs version to 28.0.90.
|
||||
|
||||
2021-12-01 Alan Mackenzie <acm@muc.de>
|
||||
|
||||
CC Mode: Recognise "struct foo {" as introducing a type declaration
|
||||
|
||||
This fixes bug #52157.
|
||||
|
||||
* lisp/progmodes/cc-engine.el (c-forward-decl-or-cast-1): If such a construct
|
||||
is parsed, set the flag at-type-decl which is part of the function's return
|
||||
value.
|
||||
|
||||
2021-12-01 Stefan Kangas <stefan@marxist.se>
|
||||
|
||||
Update authors.el for Emacs 28
|
||||
|
||||
* admin/authors.el (authors-aliases, authors-ignored-files)
|
||||
(authors-renamed-files-alist): Update for Emacs 28.
|
||||
|
||||
2021-11-30 Juri Linkov <juri@linkov.net>
|
||||
|
||||
* lisp/repeat.el: Fix long-standing problem when a random key activates map
|
||||
|
||||
* lisp/repeat.el (repeat-check-key): New defcustom (bug#51390).
|
||||
(repeat--command-property): New internal function.
|
||||
(repeat-check-key): New function.
|
||||
(repeat-post-hook): Use repeat--command-property and repeat-check-key.
|
||||
|
||||
* test/lisp/repeat-tests.el (repeat-tests-check-key): New test.
|
||||
|
||||
2021-11-30 Juri Linkov <juri@linkov.net>
|
||||
|
||||
* lisp/repeat.el (repeat-keep-prefix): Change default to nil.
|
||||
|
||||
'repeat-keep-prefix' doesn't yet have sufficient support
|
||||
that covers all cases in bug#51281, so it's disabled now.
|
||||
|
||||
2021-11-30 Juri Linkov <juri@linkov.net>
|
||||
|
||||
* test/lisp/repeat-tests.el (repeat-tests-call-b): Test for commit 588caf0b27.
|
||||
|
||||
This tests for 'repeat-map' as a variable instead of a symbol.
|
||||
|
||||
2021-11-30 Juri Linkov <juri@linkov.net>
|
||||
|
||||
* src/callint.c (Fcall_interactively): Fix inhibit_mouse_event_check.
|
||||
|
||||
Don't search for the next mouse event with parameters
|
||||
when inhibit-mouse-event-check is non-nil (bug#50067).
|
||||
|
||||
2021-11-30 Lars Ingebrigtsen <larsi@gnus.org>
|
||||
|
||||
Fix regression in gdb-frame-handler
|
||||
|
||||
* lisp/progmodes/gdb-mi.el (gdb-frame-handler): Protect against
|
||||
nil fullnames (bug#52196).
|
||||
|
||||
2021-11-30 YugaEgo <yet@ego.team> (tiny change)
|
||||
|
||||
Format and index concept 'predicate' in ELisp Intro
|
||||
|
||||
* doc/lispintro/emacs-lisp-intro.texi (Wrong Type of Argument):
|
||||
Add index and format definition (bug#52197).
|
||||
|
||||
2021-11-29 Protesilaos Stavrou <info@protesilaos.com>
|
||||
|
||||
Remove problematic characters from modus-themes.org (bug#52126)
|
||||
|
@ -130058,6 +130150,7 @@
|
|||
to pacify LeakSanitizer.
|
||||
|
||||
2019-04-20 Michael R. Mauger <michael@mauger.com>
|
||||
|
||||
Fix Bug#35307.
|
||||
|
||||
* lisp/progmodes/sql.el(sql-product-alist): Added
|
||||
|
@ -130067,6 +130160,7 @@
|
|||
adjustments needed for Emacs to support it.
|
||||
|
||||
2019-04-20 Michael R. Mauger <michael@mauger.com>
|
||||
|
||||
Fix Bug#24483.
|
||||
|
||||
* lisp/progmodes/sql.el
|
||||
|
@ -233319,9 +233413,7 @@
|
|||
|
||||
This file records repository revisions from
|
||||
commit 9d56a21e6a696ad19ac65c4b405aeca44785884a (exclusive) to
|
||||
2021-03-18bd67a4f40a733cb139ace3af4616bc2702282 (inclusive).
|
||||
2021-02-03d9244f7cbef9f91e697ad5fc0ce49ec97 (inclusive).
|
||||
commit 30553d889d733613e8e5fd22358980baa7ee148e (inclusive).
|
||||
commit 334ff0232e07dad2ff5595b7f85c0f6f5efcb11c (inclusive).
|
||||
See ChangeLog.2 for earlier changes.
|
||||
|
||||
;; Local Variables:
|
||||
|
|
|
@ -50,6 +50,7 @@ files.")
|
|||
("Álvar Jesús Ibeas Martín" "Álvar Ibeas")
|
||||
("Andrea Corallo" "AndreaCorallo")
|
||||
("Andrew Csillag" "Drew Csillag")
|
||||
("Andrew G Cohen" "Andrew Cohen")
|
||||
("Anna M. Bigatti" "Anna Bigatti")
|
||||
("Aurélien Aptel" "Aurelien Aptel")
|
||||
("Barry A. Warsaw" "Barry A. Warsaw, Century Computing, Inc."
|
||||
|
@ -59,6 +60,7 @@ files.")
|
|||
("Bill Mann" "William F. Mann")
|
||||
("Bill Rozas" "Guillermo J. Rozas")
|
||||
(nil "binjo.cn@gmail.com")
|
||||
(nil "bug-gnu-emacs@gnu.org") ; mistake
|
||||
("Björn Torkelsson" "Bjorn Torkelsson")
|
||||
("Brian Fox" "Brian J. Fox")
|
||||
("Brian P Templeton" "BT Templeton")
|
||||
|
@ -84,6 +86,7 @@ files.")
|
|||
("Emilio C. Lopes" "Emilio Lopes")
|
||||
("Eric M. Ludlam" "Eric Ludlam")
|
||||
("Eric S. Raymond" "Eric Raymond")
|
||||
("Etienne Prud’Homme" "Etienne Prud'Homme")
|
||||
("Fabián Ezequiel Gallina" "Fabian Ezequiel Gallina" "Fabi.n E\\. Gallina")
|
||||
(nil "felix.*EmacsWiki")
|
||||
(nil "foudfou")
|
||||
|
@ -132,7 +135,6 @@ files.")
|
|||
("Kim F. Storm" "Kim Storm")
|
||||
("Kyle Jones" "Kyle E. Jones")
|
||||
("Lars Magne Ingebrigtsen" "Lars Ingebrigtsen")
|
||||
(nil "leo")
|
||||
(nil "LynX@bk.ru")
|
||||
(nil "lu4nx")
|
||||
("Marcus G. Daniels" "Marcus Daniels")
|
||||
|
@ -143,7 +145,8 @@ files.")
|
|||
("Agustín Martín" "Agustin Martin" "Agustín Martín Domingo")
|
||||
("Martin Lorentzon" "Martin Lorentzson")
|
||||
("Matt Swift" "Matthew Swift")
|
||||
(nil "Madhu")
|
||||
("Mattias Engdegård" "Mattias Engdegard")
|
||||
(nil "^Madhu")
|
||||
(nil "mu@magi.net.ru")
|
||||
("Maxime Edouard Robert Froumentin" "Max Froumentin")
|
||||
("Michael R. Mauger" "Michael Mauger")
|
||||
|
@ -206,7 +209,7 @@ files.")
|
|||
("Takaaki Ota" "Tak Ota")
|
||||
("Takahashi Naoto" "Naoto Takahashi")
|
||||
("Teodor Zlatanov" "Ted Zlatanov")
|
||||
(nil "TEC")
|
||||
(nil "^TEC")
|
||||
(nil "The PCL-CVS Trust")
|
||||
("Thomas Dye" "Tom Dye")
|
||||
("Thomas Horsley" "Tom Horsley") ; FIXME ?
|
||||
|
@ -232,7 +235,7 @@ files.")
|
|||
("Carlos Pita" "memeplex")
|
||||
("Vinicius Jose Latorre" "viniciusjl")
|
||||
("Gaby Launay" "galaunay")
|
||||
("Dick R. Chiang" "dickmao" "dick")
|
||||
("Dick R. Chiang" "dickmao")
|
||||
)
|
||||
"Alist of author aliases.
|
||||
|
||||
|
|
|
@ -44,7 +44,7 @@ PD=${0%/*}
|
|||
[ "$PD" = "$0" ] && PD=. # if PATH includes PWD
|
||||
|
||||
## This should be the admin directory.
|
||||
cd $PD
|
||||
cd $PD || exit
|
||||
cd ../
|
||||
[ -d admin ] || die "Could not locate admin directory"
|
||||
|
||||
|
@ -53,7 +53,7 @@ cd ../
|
|||
usage ()
|
||||
{
|
||||
cat 1>&2 <<EOF
|
||||
Usage: ${PN} [-f] [-c] [-q] [-A dir] [-I] [-L] [-C] [-- make-flags]
|
||||
Usage: ${PN} [-f] [-c] [-q] [-A dir] [-L] [-C] [-- make-flags]
|
||||
Update some auto-generated files in the Emacs tree.
|
||||
By default, only does the versioned loaddefs-like files in lisp/.
|
||||
This requires a build. Passes any non-option args to make (eg -- -j2).
|
||||
|
@ -63,7 +63,6 @@ Options:
|
|||
commit them (caution).
|
||||
-q: be quiet; only give error messages, not status messages.
|
||||
-A: only update autotools files, copying into specified dir.
|
||||
-H: also update ChangeLog.${changelog_n}
|
||||
-L: also update ldefs-boot.el.
|
||||
-C: start from a clean state. Slower, but more correct.
|
||||
EOF
|
||||
|
@ -80,13 +79,10 @@ clean=
|
|||
autogendir= # was "autogen"
|
||||
ldefs_flag=1
|
||||
lboot_flag=
|
||||
changelog_flag=
|
||||
|
||||
## Parameters.
|
||||
ldefs_in=lisp/loaddefs.el
|
||||
ldefs_out=lisp/ldefs-boot.el
|
||||
changelog_n=$(sed -n 's/CHANGELOG_HISTORY_INDEX_MAX *= *//p' Makefile.in)
|
||||
changelog_files="ChangeLog.$changelog_n"
|
||||
sources="configure.ac lib/Makefile.am"
|
||||
## Files to copy into autogendir.
|
||||
## Everything:
|
||||
|
@ -106,10 +102,10 @@ done
|
|||
|
||||
tempfile=/tmp/$PN.$$
|
||||
|
||||
trap "rm -f $tempfile 2> /dev/null" EXIT
|
||||
trap 'rm -f $tempfile 2> /dev/null' EXIT
|
||||
|
||||
|
||||
while getopts ":hcfqA:HCIL" option ; do
|
||||
while getopts ":hcfqA:CL" option ; do
|
||||
case $option in
|
||||
(h) usage ;;
|
||||
|
||||
|
@ -125,8 +121,6 @@ while getopts ":hcfqA:HCIL" option ; do
|
|||
|
||||
(C) clean=1 ;;
|
||||
|
||||
(H) changelog_flag=1 ;;
|
||||
|
||||
(L) lboot_flag=1 ;;
|
||||
|
||||
(\?) die "Bad option -$OPTARG" ;;
|
||||
|
@ -321,14 +315,6 @@ modified=$(status $genfiles $ldefs_out $grammar_out) || die
|
|||
commit "loaddefs" $modified || die "commit error"
|
||||
|
||||
|
||||
## Less important than the other stuff, so do it last.
|
||||
[ ! "$changelog_flag" ] || {
|
||||
make change-history-nocommit || die "make change-history error"
|
||||
modified=$(status $changelog_files) || die
|
||||
commit "ChangeLog" $modified || die "commit error"
|
||||
}
|
||||
|
||||
|
||||
exit 0
|
||||
|
||||
### update_autogen ends here
|
||||
|
|
|
@ -8282,8 +8282,9 @@ images, such as U+00AD @sc{soft hyphen}.
|
|||
|
||||
@item bidi-control
|
||||
This is a subset of @code{format-control}, but only includes
|
||||
characters that are related to bi-directional control, like U+2069
|
||||
@sc{pop directional isolate} and U+202A @sc{left-to-right embedding}.
|
||||
characters that are related to bidirectional formatting control, like
|
||||
U+2069 @sc{pop directional isolate} and U+202A @sc{left-to-right
|
||||
embedding}. @xref{Bidirectional Display}.
|
||||
|
||||
Characters of Unicode General Category [Cf], such as U+200E
|
||||
@sc{left-to-right mark}, but excluding characters that have graphic
|
||||
|
|
|
@ -966,6 +966,15 @@ use the function @code{process-tty-name} (@pxref{Process
|
|||
Information}).
|
||||
@end defvar
|
||||
|
||||
@defvar process-error-pause-time
|
||||
If a process sentinel/filter function has an error, Emacs will (by
|
||||
default) pause Emacs for @code{process-error-pause-time} seconds after
|
||||
displaying this error, so that users will see the error in question.
|
||||
However, this can lead to situations where Emacs becomes unresponsive
|
||||
(if there's a lot of these errors happening), so this can be disabled
|
||||
by setting @code{process-error-pause-time} to 0.
|
||||
@end defvar
|
||||
|
||||
@node Deleting Processes
|
||||
@section Deleting Processes
|
||||
@cindex deleting processes
|
||||
|
|
1655
etc/AUTHORS
1655
etc/AUTHORS
File diff suppressed because it is too large
Load diff
42
etc/NEWS
42
etc/NEWS
|
@ -43,7 +43,7 @@ development files are present on your system, and configure Emacs with
|
|||
*** Double buffering is now enabled on the Haiku operating system.
|
||||
Unlike X, there is no compile-time option to enable or disable
|
||||
double-buffering. If you wish to disable double-buffering, change the
|
||||
frame parameter `inhibit-double-buffering' instead.
|
||||
frame parameter 'inhibit-double-buffering' instead.
|
||||
|
||||
** Emacs now installs the ".pdmp" file using a unique fingerprint in the name.
|
||||
The file is typically installed using a file name akin to
|
||||
|
@ -56,7 +56,7 @@ If your X server has support and you have the XInput 2 development headers
|
|||
installed, you can configure Emacs with the option '--with-xinput2' to enable
|
||||
this support.
|
||||
|
||||
The named feature `xinput2' can be used to test for the presence of
|
||||
The named feature 'xinput2' can be used to test for the presence of
|
||||
XInput 2 support from Lisp programs.
|
||||
|
||||
|
||||
|
@ -75,6 +75,16 @@ time.
|
|||
|
||||
* Changes in Emacs 29.1
|
||||
|
||||
---
|
||||
** 'write-file' will now copy some file mode bits.
|
||||
If the current buffer is visiting a file that is executable, the
|
||||
'C-c C-w' command will now make the new file executable, too.
|
||||
|
||||
+++
|
||||
** New user option 'process-error-pause-time'.
|
||||
This determines how long to pause Emacs after a process
|
||||
filter/sentinel error has been handled.
|
||||
|
||||
+++
|
||||
** New face 'variable-pitch-text'.
|
||||
This face is like 'variable-pitch' (from which it inherits), but is
|
||||
|
@ -91,7 +101,7 @@ on the mode lines (along with 'mode-line-inactive').
|
|||
** The mode line now uses a proportional font by default.
|
||||
To get the old monospaced mode line back, customize the
|
||||
'mode-line-active' and 'mode-line-inactive' faces not to inherit from
|
||||
the 'variable-pitch' face, or add this to your ~/.emacs:
|
||||
the 'variable-pitch' face, or add this to your "~/.emacs":
|
||||
|
||||
(set-face-attribute 'mode-line-active nil :inherit 'mode-line)
|
||||
(set-face-attribute 'mode-line-inactive nil :inherit 'mode-line)
|
||||
|
@ -122,13 +132,15 @@ This is in addition to previously-supported ways of discovering 24-bit
|
|||
color support: either via the "RGB" or "setf24" capabilities, or if
|
||||
the 'COLORTERM' environment variable is set to the value "truecolor".
|
||||
|
||||
** ERT
|
||||
|
||||
+++
|
||||
** New ERT variables 'ert-batch-print-length' and 'ert-batch-print-level'.
|
||||
*** New ERT variables 'ert-batch-print-length' and 'ert-batch-print-level'.
|
||||
These variables will override 'print-length' and 'print-level' when
|
||||
printing Lisp values in ERT batch test results.
|
||||
|
||||
---
|
||||
** Redefining an ERT test in batch mode now signals an error
|
||||
*** Redefining an ERT test in batch mode now signals an error.
|
||||
Executing 'ert-deftest' with the same name as an existing test causes
|
||||
the previous definition to be discarded, which was probably not
|
||||
intended when this occurs in batch mode. To remedy the error, rename
|
||||
|
@ -168,7 +180,7 @@ command also works for non-Emoji characters.)
|
|||
|
||||
---
|
||||
*** 'C-h b' uses outlining by default.
|
||||
Set 'describe-bindings-outline' to nil to get the old behaviour.
|
||||
Set 'describe-bindings-outline' to nil to get the old behavior.
|
||||
|
||||
---
|
||||
*** Jumping to function/variable source now saves mark before moving point.
|
||||
|
@ -310,8 +322,8 @@ the current buffer.
|
|||
|
||||
+++
|
||||
*** Buffer names can now be stored in registers.
|
||||
For instance, to enable jumping to the *Messages* buffer with
|
||||
`C-x r j m':
|
||||
For instance, to enable jumping to the "*Messages*" buffer with
|
||||
'C-x r j m':
|
||||
|
||||
(set-register ?m '(buffer . "*Messages*"))
|
||||
|
||||
|
@ -382,7 +394,7 @@ the common "utm_" trackers from URLs.
|
|||
To get the monospace font back, you can put something like the
|
||||
following in your .gnus file:
|
||||
|
||||
(set-face-attribute 'gnus-header nil :inherit 'unspecified)
|
||||
(set-face-attribute 'gnus-header nil :inherit 'unspecified)
|
||||
|
||||
---
|
||||
*** The default value of 'gnus-treat-fold-headers' is now 'head'.
|
||||
|
@ -591,8 +603,8 @@ updating the thumbnail file.
|
|||
|
||||
*** New user option 'dired-free-space'.
|
||||
Dired will now, by default, include the free space in the first line
|
||||
instead of having it on a separate line. To get the previous
|
||||
behaviour back, say:
|
||||
instead of having it on a separate line. To get the previous behavior
|
||||
back, say:
|
||||
|
||||
(setq dired-free-space 'separate)
|
||||
|
||||
|
@ -741,6 +753,10 @@ with recent versions of Firefox.
|
|||
** The function 'image-dired-get-exif-data' is now obsolete.
|
||||
Use 'exif-parse-file' and 'exif-field' instead.
|
||||
|
||||
---
|
||||
** 'insert-directory' alternatives should not change the free disk space line.
|
||||
This change is now applied in 'dired-insert-directory'.
|
||||
|
||||
|
||||
* Lisp Changes in Emacs 29.1
|
||||
|
||||
|
@ -761,7 +777,7 @@ This allows setting a minimum display width for a region of text.
|
|||
+++
|
||||
** New event type 'touch-end'.
|
||||
This event is sent whenever the user's finger moves off the mouse
|
||||
wheel on some mice, and when the user's finger moves off the touchpad.
|
||||
wheel on some mice, or when the user's finger moves off the touchpad.
|
||||
|
||||
** Keymaps and key definitions
|
||||
|
||||
|
@ -1048,7 +1064,7 @@ This function is used to control where and if an xwidget stores
|
|||
cookies set by web pages on disk.
|
||||
|
||||
** New variable 'help-buffer-under-preparation'.
|
||||
This variable is bound to t during the preparation of a *Help* buffer.
|
||||
This variable is bound to t during the preparation of a "*Help*" buffer.
|
||||
|
||||
|
||||
* Changes in Emacs 29.1 on Non-Free Operating Systems
|
||||
|
|
|
@ -575,6 +575,7 @@ Leaving \"Default\" unchecked is equivalent with specifying a default of
|
|||
(ns-scroll-event-delta-factor ns float "29.1")
|
||||
;; process.c
|
||||
(delete-exited-processes processes-basics boolean)
|
||||
(process-error-pause-time processes-basics integer "29.1")
|
||||
;; syntax.c
|
||||
(parse-sexp-ignore-comments editing-basics boolean)
|
||||
(words-include-escapes editing-basics boolean)
|
||||
|
|
|
@ -580,7 +580,9 @@ files in the active region if `dired-mark-region' is non-nil."
|
|||
|
||||
(defalias 'virtual-dired 'dired-virtual)
|
||||
(defun dired-virtual (dirname &optional switches)
|
||||
"Try to make the current buffer into a Dired buffer.
|
||||
"Treat the current buffer as a Dired buffer showing directory DIRNAME.
|
||||
Interactively, prompt for DIRNAME.
|
||||
|
||||
This command is rarely useful, but may be convenient if you want
|
||||
to peruse and move around in the output you got from \"ls
|
||||
-lR\" (or something similar), without having access to the actual
|
||||
|
@ -588,8 +590,8 @@ file system.
|
|||
|
||||
Most Dired commands that don't consult the file system will work
|
||||
as advertised, but commands that try to alter the file system
|
||||
will usually fail. (If the output is from the current system,
|
||||
most of those commands, too, will work fine.)
|
||||
will usually fail. (However, if the output is from the current
|
||||
system, most of those commands will work fine.)
|
||||
|
||||
If you have saved a Dired buffer in a file you can use \\[dired-virtual] to
|
||||
resume it in a later session.
|
||||
|
|
|
@ -210,12 +210,13 @@ If a character, new links are unconditionally marked with that character."
|
|||
:group 'dired-mark)
|
||||
|
||||
(defcustom dired-free-space 'first
|
||||
"Whether to display free disk space in dired buffers.
|
||||
"Whether and how to display the amount of free disk space in Dired buffers.
|
||||
If nil, don't display.
|
||||
If `separate', display on a separate line (along with used count).
|
||||
If `first', display the free disk space on the first line."
|
||||
If `first', display only the free disk space on the first line,
|
||||
following the directory name."
|
||||
:type '(choice (const :tag "On a separate line" separate)
|
||||
(const :tag "On the first line" first)
|
||||
(const :tag "On the first line, after directory name" first)
|
||||
(const :tag "Don't display" nil))
|
||||
:version "29.1"
|
||||
:group 'dired)
|
||||
|
@ -1658,7 +1659,10 @@ see `dired-use-ls-dired' for more details.")
|
|||
(point))
|
||||
((eq dired-free-space 'first)
|
||||
(goto-char beg)
|
||||
(when (and (looking-at " */")
|
||||
(when (and (looking-at
|
||||
(if (memq system-type '(windows-nt ms-dos))
|
||||
" *[A-Za-z]:/"
|
||||
" */"))
|
||||
(progn
|
||||
(end-of-line)
|
||||
(eq (char-after (1- (point))) ?:)))
|
||||
|
|
|
@ -136,11 +136,12 @@ Other uses risk returning non-nil value that point to the wrong file."
|
|||
(defvar macroexp--warned (make-hash-table :test #'equal :weakness 'key))
|
||||
|
||||
(defun macroexp--warn-wrap (msg form category)
|
||||
(let ((when-compiled (lambda ()
|
||||
(when (if (listp category)
|
||||
(apply #'byte-compile-warning-enabled-p category)
|
||||
(byte-compile-warning-enabled-p category))
|
||||
(byte-compile-warn "%s" msg)))))
|
||||
(let ((when-compiled
|
||||
(lambda ()
|
||||
(when (if (consp category)
|
||||
(apply #'byte-compile-warning-enabled-p category)
|
||||
(byte-compile-warning-enabled-p category))
|
||||
(byte-compile-warn "%s" msg)))))
|
||||
`(progn
|
||||
(macroexp--funcall-if-compiled ',when-compiled)
|
||||
,form)))
|
||||
|
|
|
@ -4745,7 +4745,6 @@ using \\<minibuffer-local-map>\\[next-history-element].
|
|||
If optional second arg CONFIRM is non-nil, this function
|
||||
asks for confirmation before overwriting an existing file.
|
||||
Interactively, confirmation is required unless you supply a prefix argument."
|
||||
;; (interactive "FWrite file: ")
|
||||
(interactive
|
||||
(list (if buffer-file-name
|
||||
(read-file-name "Write file: "
|
||||
|
@ -4756,33 +4755,44 @@ Interactively, confirmation is required unless you supply a prefix argument."
|
|||
default-directory)
|
||||
nil nil))
|
||||
(not current-prefix-arg)))
|
||||
(or (null filename) (string-equal filename "")
|
||||
(progn
|
||||
;; If arg is a directory name,
|
||||
;; use the default file name, but in that directory.
|
||||
(if (directory-name-p filename)
|
||||
(setq filename (concat filename
|
||||
(file-name-nondirectory
|
||||
(or buffer-file-name (buffer-name))))))
|
||||
(and confirm
|
||||
(file-exists-p filename)
|
||||
;; NS does its own confirm dialog.
|
||||
(not (and (eq (framep-on-display) 'ns)
|
||||
(listp last-nonmenu-event)
|
||||
use-dialog-box))
|
||||
(or (y-or-n-p (format-message
|
||||
"File `%s' exists; overwrite? " filename))
|
||||
(user-error "Canceled")))
|
||||
(set-visited-file-name filename (not confirm))))
|
||||
(set-buffer-modified-p t)
|
||||
;; Make buffer writable if file is writable.
|
||||
(and buffer-file-name
|
||||
(file-writable-p buffer-file-name)
|
||||
(setq buffer-read-only nil))
|
||||
(save-buffer)
|
||||
;; It's likely that the VC status at the new location is different from
|
||||
;; the one at the old location.
|
||||
(vc-refresh-state))
|
||||
(let ((old-modes
|
||||
(and buffer-file-name
|
||||
;; File may have gone away; ignore errors in that case.
|
||||
(ignore-errors (file-modes buffer-file-name)))))
|
||||
(or (null filename) (string-equal filename "")
|
||||
(progn
|
||||
;; If arg is a directory name,
|
||||
;; use the default file name, but in that directory.
|
||||
(if (directory-name-p filename)
|
||||
(setq filename (concat filename
|
||||
(file-name-nondirectory
|
||||
(or buffer-file-name (buffer-name))))))
|
||||
(and confirm
|
||||
(file-exists-p filename)
|
||||
;; NS does its own confirm dialog.
|
||||
(not (and (eq (framep-on-display) 'ns)
|
||||
(listp last-nonmenu-event)
|
||||
use-dialog-box))
|
||||
(or (y-or-n-p (format-message
|
||||
"File `%s' exists; overwrite? " filename))
|
||||
(user-error "Canceled")))
|
||||
(set-visited-file-name filename (not confirm))))
|
||||
(set-buffer-modified-p t)
|
||||
;; Make buffer writable if file is writable.
|
||||
(and buffer-file-name
|
||||
(file-writable-p buffer-file-name)
|
||||
(setq buffer-read-only nil))
|
||||
(save-buffer)
|
||||
;; If the old file was executable, then make the new file
|
||||
;; executable, too.
|
||||
(when (and old-modes
|
||||
(not (zerop (logand #o111 old-modes))))
|
||||
(set-file-modes buffer-file-name
|
||||
(logior (logand #o111 old-modes)
|
||||
(file-modes buffer-file-name))))
|
||||
;; It's likely that the VC status at the new location is different from
|
||||
;; the one at the old location.
|
||||
(vc-refresh-state)))
|
||||
|
||||
(defun file-extended-attributes (filename)
|
||||
"Return an alist of extended attributes of file FILENAME.
|
||||
|
|
|
@ -2213,11 +2213,12 @@ unfolded."
|
|||
(goto-char (point-max)))))))
|
||||
|
||||
(defun gnus--variable-pitch-p (face)
|
||||
(or (eq face 'variable-pitch)
|
||||
(let ((parent (face-attribute face :inherit)))
|
||||
(if (eq parent 'unspecified)
|
||||
nil
|
||||
(seq-some #'gnus--variable-pitch-p (ensure-list parent))))))
|
||||
(when face
|
||||
(or (eq face 'variable-pitch)
|
||||
(let ((parent (face-attribute face :inherit)))
|
||||
(if (eq parent 'unspecified)
|
||||
nil
|
||||
(seq-some #'gnus--variable-pitch-p (ensure-list parent)))))))
|
||||
|
||||
(defun gnus-article-treat-fold-headers ()
|
||||
"Fold message headers."
|
||||
|
|
14
lisp/help.el
14
lisp/help.el
|
@ -704,18 +704,14 @@ in the selected window."
|
|||
(mouse-msg (if (or (memq 'click modifiers) (memq 'down modifiers)
|
||||
(memq 'drag modifiers))
|
||||
" at that spot" ""))
|
||||
;; Use `mouse-set-point' to handle the case when a menu item
|
||||
;; Use `posn-set-point' to handle the case when a menu item
|
||||
;; is selected from the context menu that should describe KEY
|
||||
;; at the position of mouse click that opened the context menu.
|
||||
;; When no mouse was involved, don't use `mouse-set-point'.
|
||||
(defn (if (or buffer
|
||||
;; Clicks on the menu bar produce "event" that
|
||||
;; is just '(menu-bar)', for which
|
||||
;; `mouse-set-point' is not useful.
|
||||
(and (not (windowp (posn-window (event-start event))))
|
||||
(not (framep (posn-window (event-start event))))))
|
||||
;; When no mouse was involved, don't use `posn-set-point'.
|
||||
(defn (if buffer
|
||||
(key-binding key t)
|
||||
(save-excursion (mouse-set-point event) (key-binding key t)))))
|
||||
(save-excursion (posn-set-point (event-end event))
|
||||
(key-binding key t)))))
|
||||
;; Handle the case where we faked an entry in "Select and Paste" menu.
|
||||
(when (and (eq defn nil)
|
||||
(stringp (aref key (1- (length key))))
|
||||
|
|
|
@ -1493,8 +1493,8 @@ Setup `char-width-table' appropriate for non-CJK language environment."
|
|||
(aset char-acronym-table #x202D "LRO") ; LEFT-TO-RIGHT OVERRIDE
|
||||
(aset char-acronym-table #x202E "RLO") ; RIGHT-TO-LEFT OVERRIDE
|
||||
(aset char-acronym-table #x2060 "WJ") ; WORD JOINER
|
||||
(aset char-acronym-table #x2066 "LTRI") ; LEFT-TO-RIGHT ISOLATE
|
||||
(aset char-acronym-table #x2067 "RTLI") ; RIGHT-TO-LEFT ISOLATE
|
||||
(aset char-acronym-table #x2066 "LRI") ; LEFT-TO-RIGHT ISOLATE
|
||||
(aset char-acronym-table #x2067 "RLI") ; RIGHT-TO-LEFT ISOLATE
|
||||
(aset char-acronym-table #x2069 "PDI") ; POP DIRECTIONAL ISOLATE
|
||||
(aset char-acronym-table #x206A "ISS") ; INHIBIT SYMMETRIC SWAPPING
|
||||
(aset char-acronym-table #x206B "ASS") ; ACTIVATE SYMMETRIC SWAPPING
|
||||
|
@ -1520,16 +1520,18 @@ Setup `char-width-table' appropriate for non-CJK language environment."
|
|||
(aset char-acronym-table (+ #xE0021 i) (format " %c TAG" (+ 33 i))))
|
||||
(aset char-acronym-table #xE007F "->|TAG") ; CANCEL TAG
|
||||
|
||||
;; We can't use the \N{name} things here, because this file is used
|
||||
;; too early in the build process.
|
||||
(defvar glyphless--bidi-control-characters
|
||||
'( ?\N{left-to-right embedding}
|
||||
?\N{right-to-left embedding}
|
||||
?\N{left-to-right override}
|
||||
?\N{right-to-left override}
|
||||
?\N{left-to-right isolate}
|
||||
?\N{right-to-left isolate}
|
||||
?\N{first strong isolate}
|
||||
?\N{pop directional formatting}
|
||||
?\N{pop directional isolate}))
|
||||
'(#x202a ; ?\N{left-to-right embedding}
|
||||
#x202b ; ?\N{right-to-left embedding}
|
||||
#x202d ; ?\N{left-to-right override}
|
||||
#x202e ; ?\N{right-to-left override}
|
||||
#x2066 ; ?\N{left-to-right isolate}
|
||||
#x2067 ; ?\N{right-to-left isolate}
|
||||
#x2068 ; ?\N{first strong isolate}
|
||||
#x202c ; ?\N{pop directional formatting}
|
||||
#x2069)) ; ?\N{pop directional isolate})
|
||||
|
||||
(defun update-glyphless-char-display (&optional variable value)
|
||||
"Make the setting of `glyphless-char-display-control' take effect.
|
||||
|
@ -1628,8 +1630,8 @@ GROUP must be one of these symbols:
|
|||
excluding characters that have graphic images,
|
||||
such as U+00AD (SHY).
|
||||
`bidi-control': A subset of `format-control', but only characters
|
||||
that are relevant for bi-directional control, like
|
||||
U+2069 (PDI) and U+202B (RLE).
|
||||
that are relevant for bidirectional formatting control,
|
||||
like U+2069 (PDI) and U+202B (RLE).
|
||||
`variation-selectors':
|
||||
Characters in the range U+FE00..U+FE0F, used for
|
||||
selecting alternate glyph presentations, such as
|
||||
|
|
|
@ -521,14 +521,14 @@ This is like `describe-bindings', but displays only Isearch keys."
|
|||
(interactive)
|
||||
(let ((display-buffer-overriding-action isearch--display-help-action))
|
||||
(call-interactively 'describe-key))
|
||||
(isearch-update))
|
||||
(when isearch-mode (isearch-update)))
|
||||
|
||||
(defun isearch-describe-mode ()
|
||||
"Display documentation of Isearch mode."
|
||||
(interactive)
|
||||
(let ((display-buffer-overriding-action isearch--display-help-action))
|
||||
(describe-function 'isearch-forward))
|
||||
(isearch-update))
|
||||
(when isearch-mode (isearch-update)))
|
||||
|
||||
(defalias 'isearch-mode-help 'isearch-describe-mode)
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
;;; ob-julia.el --- org-babel functions for julia code evaluation -*- lexical-binding: t; -*-
|
||||
|
||||
;; Copyright (C) 2013-2021 Free Software Foundation, Inc.
|
||||
;; Authors: G. Jay Kerns, based on ob-R.el by Eric Schulte and Dan Davison
|
||||
;; Authors: G. Jay Kerns
|
||||
;; Maintainer: Pedro Bruel <pedro.bruel@gmail.com>
|
||||
;; Keywords: literate programming, reproducible research, scientific computing
|
||||
;; Homepage: https://github.com/phrb/ob-julia
|
||||
|
@ -24,6 +24,8 @@
|
|||
;;; Commentary:
|
||||
|
||||
;; Org-Babel support for evaluating julia code
|
||||
;;
|
||||
;; Based on ob-R.el by Eric Schulte and Dan Davison.
|
||||
|
||||
;;; Code:
|
||||
(require 'cl-lib)
|
||||
|
|
|
@ -109,6 +109,18 @@ This is only effective if supported by your mouse or touchpad."
|
|||
:type 'boolean
|
||||
:version "29.1")
|
||||
|
||||
(defcustom pixel-scroll-precision-momentum-tick 0.16
|
||||
"Number of seconds between each momentum scroll."
|
||||
:group 'mouse
|
||||
:type 'float
|
||||
:version "29.1")
|
||||
|
||||
(defcustom pixel-scroll-precision-momentum-factor 0.95
|
||||
"Factor by which to reduce scroll velocity on each momentum scroll"
|
||||
:group 'mouse
|
||||
:type 'float
|
||||
:version "29.1")
|
||||
|
||||
(defun pixel-scroll-in-rush-p ()
|
||||
"Return non-nil if next scroll should be non-smooth.
|
||||
When scrolling request is delivered soon after the previous one,
|
||||
|
@ -501,14 +513,14 @@ wheel."
|
|||
It is a vector of the form [ VELOCITY TIME ]."
|
||||
(or (window-parameter nil 'kinetic-state)
|
||||
(set-window-parameter nil 'kinetic-state
|
||||
(vector (make-ring 4) nil))))
|
||||
(vector (make-ring 10) nil))))
|
||||
|
||||
(defun pixel-scroll-accumulate-velocity (delta)
|
||||
"Accumulate DELTA into the current window's kinetic scroll state."
|
||||
(let* ((state (pixel-scroll-kinetic-state))
|
||||
(time (aref state 1)))
|
||||
(when (and time (> (- (float-time) time) 0.5))
|
||||
(aset state 0 (make-ring 45)))
|
||||
(aset state 0 (make-ring 10)))
|
||||
(ring-insert (aref state 0)
|
||||
(cons (aset state 1 (float-time))
|
||||
delta))))
|
||||
|
@ -532,23 +544,26 @@ It is a vector of the form [ VELOCITY TIME ]."
|
|||
(state nil))
|
||||
(with-selected-window window
|
||||
(setq state (pixel-scroll-kinetic-state))
|
||||
(when (aref state 1)
|
||||
(when (and (aref state 1)
|
||||
(listp (aref state 0)))
|
||||
(unwind-protect (progn
|
||||
(aset state 0
|
||||
(pixel-scroll-calculate-velocity state))
|
||||
(/ (pixel-scroll-calculate-velocity state) 2))
|
||||
(let ((velocity (aref state 0)))
|
||||
(if (> velocity 0)
|
||||
(while (> velocity 0)
|
||||
(pixel-scroll-precision-scroll-up 1)
|
||||
(setq velocity (1- velocity))
|
||||
(sit-for 0.1)
|
||||
(redisplay t))
|
||||
(while (< velocity 0)
|
||||
(pixel-scroll-precision-scroll-down 1)
|
||||
(setq velocity (1+ velocity))
|
||||
(sit-for 0.1)
|
||||
(redisplay t)))))
|
||||
(aset state 0 (make-ring 45))
|
||||
(while (> velocity 1)
|
||||
(pixel-scroll-precision-scroll-up (round velocity))
|
||||
(setq velocity (* velocity
|
||||
pixel-scroll-precision-momentum-factor))
|
||||
(redisplay t)
|
||||
(sit-for pixel-scroll-precision-momentum-tick)))
|
||||
(while (< velocity -1)
|
||||
(pixel-scroll-precision-scroll-down (round (abs velocity)))
|
||||
(setq velocity (* velocity
|
||||
pixel-scroll-precision-momentum-factor))
|
||||
(redisplay t)
|
||||
(sit-for pixel-scroll-precision-momentum-tick))))
|
||||
(aset state 0 (make-ring 10))
|
||||
(aset state 1 nil)))))))
|
||||
|
||||
;;;###autoload
|
||||
|
|
|
@ -10009,7 +10009,12 @@ This function might do hidden buffer changes."
|
|||
(save-excursion
|
||||
(goto-char type-start)
|
||||
(let ((c-promote-possible-types t))
|
||||
(c-forward-type)))))
|
||||
(c-forward-type))))
|
||||
|
||||
;; Signal a type declaration for "struct foo {".
|
||||
(when (and backup-at-type-decl
|
||||
(eq (char-after) ?{))
|
||||
(setq at-type-decl t)))
|
||||
|
||||
(setq backup-at-type at-type
|
||||
backup-type-start type-start
|
||||
|
|
|
@ -345,7 +345,9 @@ For example, you can set it to <return> like `isearch-exit'."
|
|||
(defcustom repeat-exit-timeout nil
|
||||
"Break the repetition chain of keys after specified timeout.
|
||||
When a number, exit the transient repeating mode after idle time
|
||||
of the specified number of seconds."
|
||||
of the specified number of seconds.
|
||||
You can also set the property `repeat-exit-timeout' on the command symbol.
|
||||
This property can override the value of this variable."
|
||||
:type '(choice (const :tag "No timeout to exit repeating sequence" nil)
|
||||
(number :tag "Timeout in seconds to exit repeating"))
|
||||
:group 'convenience
|
||||
|
@ -431,8 +433,9 @@ See `describe-repeat-maps' for a list of all repeatable commands."
|
|||
|
||||
(defun repeat-check-key (key map)
|
||||
"Check if the last key is suitable to activate the repeating MAP."
|
||||
(let ((property (repeat--command-property 'repeat-check-key)))
|
||||
(or (if repeat-check-key (eq property 'no) (not (eq property t)))
|
||||
(let* ((prop (repeat--command-property 'repeat-check-key))
|
||||
(check-key (unless (eq prop 'no) (or prop repeat-check-key))))
|
||||
(or (not check-key)
|
||||
(lookup-key map (vector key))
|
||||
;; Try without modifiers:
|
||||
(lookup-key map (vector (event-basic-type key))))))
|
||||
|
@ -475,14 +478,16 @@ See `describe-repeat-maps' for a list of all repeatable commands."
|
|||
(cancel-timer repeat-exit-timer)
|
||||
(setq repeat-exit-timer nil))
|
||||
|
||||
(when repeat-exit-timeout
|
||||
(setq repeat-exit-timer
|
||||
(run-with-idle-timer
|
||||
repeat-exit-timeout nil
|
||||
(lambda ()
|
||||
(setq repeat-in-progress nil)
|
||||
(funcall exitfun)
|
||||
(funcall repeat-echo-function nil)))))))))))
|
||||
(let* ((prop (repeat--command-property 'repeat-exit-timeout))
|
||||
(timeout (unless (eq prop 'no) (or prop repeat-exit-timeout))))
|
||||
(when timeout
|
||||
(setq repeat-exit-timer
|
||||
(run-with-idle-timer
|
||||
timeout nil
|
||||
(lambda ()
|
||||
(setq repeat-in-progress nil)
|
||||
(funcall exitfun)
|
||||
(funcall repeat-echo-function nil))))))))))))
|
||||
|
||||
(setq repeat-map nil)
|
||||
(setq repeat--prev-mb (cons (minibuffer-depth) current-minibuffer-command))
|
||||
|
|
|
@ -34,7 +34,7 @@ The value can be any of the groups supported by
|
|||
(const :tag "C0 Control" c0-control)
|
||||
(const :tag "C1 Control" c1-control)
|
||||
(const :tag "Format Control" format-control)
|
||||
(const :tag "Bi-directional Control" bidi-control)
|
||||
(const :tag "Bidirectional Control" bidi-control)
|
||||
(const :tag "Variation Selectors" variation-selectors)
|
||||
(const :tag "No Font" no-font)))
|
||||
:group 'display)
|
||||
|
|
|
@ -5994,7 +5994,8 @@ read_process_output_error_handler (Lisp_Object error_val)
|
|||
cmd_error_internal (error_val, "error in process filter: ");
|
||||
Vinhibit_quit = Qt;
|
||||
update_echo_area ();
|
||||
Fsleep_for (make_fixnum (2), Qnil);
|
||||
if (process_error_pause_time > 0)
|
||||
Fsleep_for (make_fixnum (process_error_pause_time), Qnil);
|
||||
return Qt;
|
||||
}
|
||||
|
||||
|
@ -7421,7 +7422,8 @@ exec_sentinel_error_handler (Lisp_Object error_val)
|
|||
cmd_error_internal (error_val, "error in process sentinel: ");
|
||||
Vinhibit_quit = Qt;
|
||||
update_echo_area ();
|
||||
Fsleep_for (make_fixnum (2), Qnil);
|
||||
if (process_error_pause_time > 0)
|
||||
Fsleep_for (make_fixnum (process_error_pause_time), Qnil);
|
||||
return Qt;
|
||||
}
|
||||
|
||||
|
@ -8577,6 +8579,12 @@ Enlarge the value only if the subprocess generates very large (megabytes)
|
|||
amounts of data in one go. */);
|
||||
read_process_output_max = 4096;
|
||||
|
||||
DEFVAR_INT ("process-error-pause-time", process_error_pause_time,
|
||||
doc: /* The number of seconds to pause after handling process errors.
|
||||
This isn't used for all process-related errors, but is used when a
|
||||
sentinel or a process filter function has an error. */);
|
||||
process_error_pause_time = 1;
|
||||
|
||||
DEFSYM (Qinternal_default_interrupt_process,
|
||||
"internal-default-interrupt-process");
|
||||
DEFSYM (Qinterrupt_process_functions, "interrupt-process-functions");
|
||||
|
|
57
src/xdisp.c
57
src/xdisp.c
|
@ -28817,6 +28817,21 @@ normal_char_height (struct font *font, int c)
|
|||
return ascent + descent;
|
||||
}
|
||||
|
||||
/* Return the "standard" pixel width of a character from FACE's font,
|
||||
if the font is fixed-pitch, zero otherwise. */
|
||||
static int
|
||||
get_normal_width (struct face *face)
|
||||
{
|
||||
struct font *ascii_font = face->ascii_face->font;
|
||||
/* Heuristics: fixed-pitch fonts have the value of MAX-WIDTH not
|
||||
much larger than AVERAGE-WIDTH. */
|
||||
bool fixed_pitch =
|
||||
ascii_font->average_width == ascii_font->space_width
|
||||
&& ascii_font->average_width != 0
|
||||
&& ascii_font->max_width < 3 * ascii_font->average_width;
|
||||
return fixed_pitch ? ascii_font->space_width : 0;
|
||||
}
|
||||
|
||||
/* EXPORT for RIF:
|
||||
Set *LEFT and *RIGHT to the left and right overhang of GLYPH on
|
||||
frame F. Overhangs of glyphs other than type CHAR_GLYPH are
|
||||
|
@ -30914,6 +30929,17 @@ gui_produce_glyphs (struct it *it)
|
|||
it->phys_ascent = pcm->ascent + boff;
|
||||
it->phys_descent = pcm->descent - boff;
|
||||
it->pixel_width = pcm->width;
|
||||
if (align_columns_display)
|
||||
{
|
||||
int unit_width = get_normal_width (face);
|
||||
if (unit_width > 0)
|
||||
{
|
||||
int ncolumns =
|
||||
(it->pixel_width - 1 + unit_width) / unit_width;
|
||||
|
||||
it->pixel_width = ncolumns * unit_width;
|
||||
}
|
||||
}
|
||||
/* Don't use font-global values for ascent and descent
|
||||
if they result in an exceedingly large line height. */
|
||||
if (it->override_ascent < 0)
|
||||
|
@ -31491,6 +31517,17 @@ gui_produce_glyphs (struct it *it)
|
|||
it->glyph_row->contains_overlapping_glyphs_p = true;
|
||||
|
||||
it->pixel_width = cmp->pixel_width;
|
||||
if (align_columns_display)
|
||||
{
|
||||
int unit_width = get_normal_width (face);
|
||||
if (unit_width > 0)
|
||||
{
|
||||
int ncolumns =
|
||||
(it->pixel_width - 1 + unit_width) / unit_width;
|
||||
|
||||
it->pixel_width = ncolumns * unit_width;
|
||||
}
|
||||
}
|
||||
it->ascent = it->phys_ascent = cmp->ascent;
|
||||
it->descent = it->phys_descent = cmp->descent;
|
||||
IT_APPLY_FACE_BOX(it, face);
|
||||
|
@ -31536,6 +31573,17 @@ gui_produce_glyphs (struct it *it)
|
|||
it->glyph_row->contains_overlapping_glyphs_p = true;
|
||||
it->ascent = it->phys_ascent = metrics.ascent;
|
||||
it->descent = it->phys_descent = metrics.descent;
|
||||
if (align_columns_display)
|
||||
{
|
||||
int unit_width = get_normal_width (face);
|
||||
if (unit_width > 0)
|
||||
{
|
||||
int ncolumns =
|
||||
(it->pixel_width - 1 + unit_width) / unit_width;
|
||||
|
||||
it->pixel_width = ncolumns * unit_width;
|
||||
}
|
||||
}
|
||||
}
|
||||
IT_APPLY_FACE_BOX(it, face);
|
||||
|
||||
|
@ -35612,6 +35660,15 @@ variable are ignored and the default 0.25 is used instead. */);
|
|||
Value is a number or a cons (WIDTH-DPI . HEIGHT-DPI). */);
|
||||
Vdisplay_pixels_per_inch = make_float (72.0);
|
||||
|
||||
DEFVAR_BOOL ("align-columns-display", align_columns_display,
|
||||
doc: /* Whether to align columns on GUI frames.
|
||||
If this is non-nil characters displayed on GUI frames will be
|
||||
aligned to produce straight columns. This is achieved by
|
||||
enlarging the pixel width of characters to an integral
|
||||
multiple of pixels taken by ASCII characters of the same face.
|
||||
This affects only fixed-pitch fonts. */);
|
||||
align_columns_display = false;
|
||||
|
||||
#ifdef GLYPH_DEBUG
|
||||
DEFVAR_INT ("debug-end-pos", debug_end_pos, doc: /* Don't ask. */);
|
||||
#endif
|
||||
|
|
Loading…
Add table
Reference in a new issue