Merge remote-tracking branch 'savannah/master' into feature/tree-sitter

This commit is contained in:
Yuan Fu 2022-11-21 12:54:35 -08:00
commit aaeaa310f0
No known key found for this signature in database
GPG key ID: 56E19BC57664A442
692 changed files with 36720 additions and 8897 deletions

View file

@ -1,12 +1,18 @@
Language: Cpp
BasedOnStyle: GNU
AlignEscapedNewlinesLeft: true
AlignOperands: Align
AlwaysBreakAfterReturnType: TopLevelDefinitions
BreakBeforeBinaryOperators: All
BreakBeforeBraces: GNU
ColumnLimit: 70
ContinuationIndentWidth: 2
ForEachMacros: [FOR_EACH_TAIL, FOR_EACH_TAIL_SAFE]
ForEachMacros:
- FOR_EACH_TAIL
- FOR_EACH_TAIL_SAFE
- FOR_EACH_LIVE_BUFFER
- ITREE_FOREACH
- FOR_EACH_ALIST_VALUE
IncludeCategories:
- Regex: '^<config\.h>$'
Priority: -1
@ -16,11 +22,17 @@ IncludeCategories:
Priority: 2
- Regex: '.*'
Priority: 3
WhitespaceSensitiveMacros:
- STR
- CALL1I
- CALL2I
- STR_VALUE
KeepEmptyLinesAtTheStartOfBlocks: false
MaxEmptyLinesToKeep: 1
PenaltyBreakBeforeFirstCallParameter: 2000
SpaceAfterCStyleCast: true
SpaceBeforeParens: Always
UseTab: Always
# Local Variables:
# mode: yaml

View file

@ -1,4 +1,4 @@
;;; Directory Local Variables
;;; Directory Local Variables -*- no-byte-compile: t; -*-
;;; For more information see (info "(emacs) Directory Variables")
((nil . ((tab-width . 8)
@ -7,9 +7,11 @@
(emacs-lisp-docstring-fill-column . 65)
(vc-git-annotate-switches . "-w")
(bug-reference-url-format . "https://debbugs.gnu.org/%s")
(diff-add-log-use-relative-names . t)))
(diff-add-log-use-relative-names . t)
(vc-prepare-patches-separately . nil)))
(c-mode . ((c-file-style . "GNU")
(c-noise-macro-names . ("INLINE" "ATTRIBUTE_NO_SANITIZE_UNDEFINED" "UNINIT" "CALLBACK" "ALIGN_STACK"))
(c-noise-macro-names . ("INLINE" "NO_INLINE" "ATTRIBUTE_NO_SANITIZE_UNDEFINED"
"UNINIT" "CALLBACK" "ALIGN_STACK"))
(electric-quote-comment . nil)
(electric-quote-string . nil)
(indent-tabs-mode . t)

3
.gitignore vendored
View file

@ -25,6 +25,7 @@
# Personal customization.
.dir-locals-2.el
.no-advice-on-failure
# Built by 'autogen.sh'.
/aclocal.m4
@ -324,7 +325,7 @@ lib-src/seccomp-filter-exec.pfc
/etc/*.gschema.valid
# Ignore directory made by admin/make-manuals.
manual/
/manual/
# Ignore Finder files on MacOS.
.DS_Store

View file

@ -202,9 +202,10 @@ them right the first time, so here are guidelines for formatting them:
you can put a paragraph (after the empty line and before the
individual ChangeLog entries) that further describes the commit.
- Limit lines in commit messages to 78 characters, unless they consist
of a single word of at most 140 characters; this is enforced by a
commit hook.
- Lines in ChangeLog entries should preferably be not longer than 63
characters, and must not exceed 78 characters, unless they consist
of a single word of at most 140 characters; this 78/140 limit is
enforced by a commit hook.
- If only a single file is changed, the summary line can be the normal
file first line (starting with the asterisk). Then there is no

View file

@ -930,7 +930,7 @@
(mostlyclean_dirs, clean_dirs, distclean_dirs, maintainer_clean_dirs):
New variables.
(mostlyclean, clean, distclean, bootstrap-clean, maintainer-clean)
(extraclean): Define using each subdirectory as a prequisite.
(extraclean): Define using each subdirectory as a prerequisite.
* lib/Makefile.am (bootstrap-clean): New.
2014-06-15 Paul Eggert <eggert@cs.ucla.edu>
@ -5685,7 +5685,7 @@
(__mktime_internal): Use it systematically for all isdst comparisons.
This completes the fix for libc BZ #6723, and removes the need for
normalizing tm_isdst.
See <http://sourceware.org/bugzilla/show_bug.cgi?id=6723>
See <https://sourceware.org/bugzilla/show_bug.cgi?id=6723>
(not_equal_tm) [DEBUG]: Use isdst_differ here, too.
mktime: fix some integer overflow issues and sidestep the rest

View file

@ -9317,7 +9317,7 @@
optional.
* src/buffer.c (Fbarf_if_buffer_read_only): Rename argument POS
to POSITION to keep consisteny with doc-string.
to POSITION to keep consistent with doc-string.
2016-02-01 Paul Eggert <eggert@cs.ucla.edu>
@ -26343,7 +26343,7 @@
(verilog-type-font-keywords): Cycle delay operators like ##1 and
##[0:$] are now highlighted in their entirety similarly to the #
delay-control operator. Likewise, the followed-by operators #-#
and #=# are no longer partially highlighed.
and #=# are no longer partially highlighted.
(verilog-backward-syntactic-ws-quick)
(verilog-skip-backward-comments): Minor performance improvements
to buffer traversal functions for reduced latency.
@ -34464,7 +34464,7 @@
* lisp/emacs-lisp/package.el: Make archive and status pseudo-keywords
(package--has-keyword-p): Understand "arc:xxxx" and "status:xxxx"
as special keywords which match agains package archive and status
as special keywords which match against package archive and status
respectively.
* etc/NEWS: Document it.

View file

@ -4043,7 +4043,7 @@
* doc/emacs/maintaining.texi (Basic VC Editing): Mention Dired buffer.
* doc/emacs/text.texi (Outline Mode): Replace S-TAB with with S-<TAB>.
* doc/emacs/text.texi (Outline Mode): Replace S-TAB with S-<TAB>.
* etc/NEWS: Add some missing +++/--- and move some related items closer.
@ -5557,7 +5557,7 @@
Fix ert errors when there's a test that binds `debug-on-error'
* lisp/emacs-lisp/ert.el (ert--run-test-internal): Don't infloop
on errors when signalling errors (bug#51131).
on errors when signaling errors (bug#51131).
2021-10-10 Paul Eggert <eggert@cs.ucla.edu>
@ -5731,7 +5731,7 @@
2021-10-09 Dmitry Gutov <dgutov@yandex.ru>
Slight simplificaiton
Slight simplification
* lisp/progmodes/xref.el (xref--insert-xrefs):
Compute log only once. Use 'dolist'.
@ -12670,7 +12670,7 @@
2021-09-03 Lars Ingebrigtsen <larsi@gnus.org>
Fix `describe-function' for autoloaded adviced functions
Fix `describe-function' for autoloaded advised functions
* lisp/emacs-lisp/nadvice.el (advice--make-single-doc): Factor
out.
@ -20026,7 +20026,7 @@
Add query command removed in 4ff1f66b12
* lisp/net/rcirc.el (query): Readd accidentally removed command
* lisp/net/rcirc.el (query): Re-add accidentally removed command.
2021-07-06 Philip Kaludercic <philipk@posteo.net>
@ -21063,7 +21063,7 @@
Fix prompting for large files when loading literally
* lisp/files.el (find-file-noselect): Don't include "literally" in
the "large file" prompt if we're gonna load literally anyway
the "large file" prompt if we're going to load literally anyway
(bug#49144).
2021-06-21 Lars Ingebrigtsen <larsi@gnus.org>
@ -21772,7 +21772,7 @@
EIEIO: Promote the CLOS behavior over the EIEIO-specific behavior
Change docs to advertize `slot-value` rather than `oref`.
Change docs to advertise `slot-value` rather than `oref`.
Change the implementation of `:initform` to better match the CLOS semantics,
while preserving the EIEIO semantics, but warn when encountering cases
where the two diverge.
@ -21790,8 +21790,8 @@
* lisp/emacs-lisp/eieio.el (defclass): Warn about inapplicable
`:initarg` and about uses of init forms that are ambiguous.
(oref): Don't advertize the deprecated use of initargs as slot names.
(oref-default): Don't advertize the deprecated case where it returns the
(oref): Don't advertise the deprecated use of initargs as slot names.
(oref-default): Don't advertise the deprecated case where it returns the
initform's value.
(initialize-instance): Use `macroexp-const-p`.
* lisp/emacs-lisp/eieio-core.el (eieio--unbound): Rename from
@ -27204,7 +27204,7 @@
2021-04-25 Andrea Corallo <akrl@sdf.org>
Merge branch 'feature/native-comp' into into trunk
Merge branch 'feature/native-comp' into trunk
2021-04-25 Lars Ingebrigtsen <larsi@gnus.org>
@ -34265,7 +34265,7 @@
Use `length=' and family where possible in native comp code
* lisp/emacs-lisp/comp-cstr.el (comp-intersect-typesets)
(comp-cstr-imm): Use Use `length=' and family where possible.
(comp-cstr-imm): Use `length=' and family where possible.
* lisp/emacs-lisp/comp.el (comp-add-cond-cstrs-target-block)
(comp-compute-dominator-frontiers)
(batch-byte-native-compile-for-bootstrap): Likewise.
@ -35728,7 +35728,7 @@
(comp-arithm-cmp-fun-p, comp-negate-arithm-cmp-fun)
(comp-reverse-arithm-fun): Rename and add '=' '!='.
(comp-emit-assume, comp-add-cond-cstrs, comp-fwprop-insn): Update
for new function nameing and to handle '='.
for new function naming and to handle '='.
* lisp/emacs-lisp/comp-cstr.el (comp-cstr-=): New function.
* test/src/comp-tests.el (comp-tests-type-spec-tests): Add a bunch
of '=' specific tests.
@ -36674,7 +36674,7 @@
2021-02-24 Andrea Corallo <akrl@sdf.org>
Fix async compilation and paramenter naming
Fix async compilation and parameter naming
* lisp/emacs-lisp/comp.el (native--compile-async)
(native-compile-async): Fix broken parameter renaming.
@ -39854,7 +39854,7 @@
* lisp/net/mairix.el: Use lexical-binding.
Remove redundant `:group` args.
(mairix-widget-create-query): Remove unnused var `allwidgets`.
(mairix-widget-create-query): Remove unused var `allwidgets`.
2021-02-09 Juri Linkov <juri@linkov.net>
@ -40177,7 +40177,7 @@
* lisp/simple.el (recenter-current-error): New command.
* lisp/progmodes/grep.el (grep-mode-map):
Delete bidings for n and p.
Delete bindings for n and p.
* lisp/progmodes/compile.el (compilation-minor-mode-map):
Move here the n and p bindings.
@ -41213,7 +41213,7 @@
2021-02-02 Lars Ingebrigtsen <larsi@gnus.org>
Fix up invalid_syntax error signalling
Fix up invalid_syntax error signaling
* src/lread.c (invalid_syntax_lisp): Instead of putting the
line/column in a string, signal an error containing the numbers as
@ -41694,7 +41694,7 @@
in a global minor mode. This commit fixes bug #45792.
* lisp/international/quail.el (quail-show-guidance): Test the major mode is
not minibuffer-inactive-mode before proceding with the function.
not minibuffer-inactive-mode before proceeding with the function.
2021-01-31 Lars Ingebrigtsen <larsi@gnus.org>
@ -43613,7 +43613,7 @@
RFC2047-encode invalid Subject/From headers (bug#45925). This
will make them be displayed more consistently in the Summary
buffer (but still "wrong" sometimes, since there's not that much
we can guess at at this stage, charset wise).
we can guess at this stage, charset wise).
(nnml-parse-head): Use it.
2021-01-22 Michael Albinus <michael.albinus@gmx.de>
@ -48572,7 +48572,7 @@
c-laomib-loop. Insert code which calls c-laomib-loop minimally, with the help
of the new cache.
* lisp/progmodes/cc-mode.el (c-basic-common-init): Initialize the new cach
* lisp/progmodes/cc-mode.el (c-basic-common-init): Initialize the new cache
(at mode start).
(c-before-change): Invalidate the new cache.
(c-fl-decl-start): Add an extra check (> (point) bod-lim) to prevent looping.
@ -49106,7 +49106,7 @@
(comp-split-pos-neg): Minor.
(comp-normalize-typeset): Logic update.
(comp-union-typesets): Minor.
(comp-intersect-two-typesets): New functio.
(comp-intersect-two-typesets): New function.
(comp-intersect-typesets): Logic update.
(comp-range-union, comp-range-intersection): Minor.
(comp-cstr-union-homogeneous, comp-cstr-union-1-no-mem)
@ -50078,7 +50078,7 @@
Optimize c-parse-state for large buffers with few (if any) braces.
* lisp/progmodes/cc-engine.el (c-get-fallback-scan-pos): Search a maximum of
50,000 characters back for the two BODs. Return nil if we dont' find them.
50,000 characters back for the two BODs. Return nil if we don't find them.
(c-parse-state-get-strategy): For strategy `forward', always use the position
`good-pos' for `start-point', even when there's a change of current macro.
Deal with a possible return value of nil from c-get-fallback-scan-pos (as
@ -50911,7 +50911,7 @@
2020-12-12 Lars Ingebrigtsen <larsi@gnus.org>
Alter the "Redundant pcase patter" warning message
Alter the "Redundant pcase pattern" warning message
* lisp/emacs-lisp/pcase.el (pcase--expand): Make the "Redundant
pcase pattern" warning less vague (bug#31350).
@ -54142,7 +54142,7 @@
Tweak the face of unknown backend indicators in flymake
* lisp/progmodes/flymake.el (flymake--mode-line-format): Don't put
a face on the the "?" unknown backend indicator, because that
a face on the "?" unknown backend indicator, because that
looks odd in inactive windows (bug#44689).
2020-11-24 Paul W. Rankin <pwr@skeletons.cc>
@ -55996,7 +55996,7 @@
2020-11-12 Andrea Corallo <akrl@sdf.org>
Unline some functions to optimize bootstrap time
Uninline some functions to optimize bootstrap time
* lisp/emacs-lisp/comp.el (comp-mvar-value-vld-p)
(comp-mvar-value, comp-mvar-fixnum-p, comp-set-op-p)
@ -56612,7 +56612,7 @@
2020-11-07 Andrea Corallo <akrl@sdf.org>
Allow for manually bumbing new native compiler ABI versions
Allow for manually bumping new native compiler ABI versions
* src/comp.c (ABI_VERSION): Define macro.
(hash_native_abi): Include ABI_VERSION in the hashing.
@ -61229,7 +61229,7 @@
2020-10-14 Andrea Corallo <akrl@sdf.org>
Have `native-elisp-load' return the last registerd function
Have `native-elisp-load' return the last registered function
* lisp/emacs-lisp/comp.el (comp-emit-for-top-level): Synthesize
'top_level_run' so it returns the last value returned by
@ -63478,7 +63478,7 @@
user-error when there's a wrong password (bug#43704).
(epa--wrong-password-p): New function.
(epa-file-insert-file-contents): Use it, and stash the error away
for later signalling.
for later signaling.
* lisp/emacs-lisp/subr-x.el (if-let): Autoload.
@ -65831,7 +65831,7 @@
Better error handling after calling 'gcc_jit_context_compile_to_file'
Typically errors are catched in 'compile_function' but in case
Typically errors are caught in 'compile_function' but in case
libgccjit throw an error only afterwards while compiling the whole
compilation unit we have to report it correctly.
@ -67774,7 +67774,7 @@
2020-09-05 Lars Ingebrigtsen <larsi@gnus.org>
Revert "Display name with with spaces, but keep symbol name underneath"
Revert "Display name with spaces, but keep symbol name underneath"
This reverts commit e0c77bb62c1c950a82ea0517646d989dc5c1fe27.
@ -67854,7 +67854,7 @@
2020-09-05 ej-32u <ej32u@protonmail.com> (tiny change)
Display name with with spaces, but keep symbol name underneath
Display name with spaces, but keep symbol name underneath
* lisp/cus-edit.el (custom-unlispify-menu-entry): Display the
pretty name, but keep the real symbol name as the value (bug#41905).
@ -73089,7 +73089,7 @@
* lisp/textmodes/tex-mode.el (tex-font-lock-keywords-2): End the
expression before the terminating $ in constructions like $\it
identifiername$
(bug#28277). This avoids italicising the final $ character.
(bug#28277). This avoids italicizing the final $ character.
This fixes the final $ of the final test case here:
@ -73421,7 +73421,7 @@
2020-08-08 Lars Ingebrigtsen <larsi@gnus.org>
Modernise a code example in os.texi
Modernize a code example in os.texi
* doc/lispref/os.texi (Session Management): Use
with-current-buffer in the example instead of save+switch (bug#40341).
@ -75687,7 +75687,7 @@
* lisp/net/eww.el (eww-list-bookmarks): Don't show buffer if there
are no bookmarks. (Bug#41385)
(eww-bookmark-prepare): Move signalling an error if there are no
(eww-bookmark-prepare): Move signaling an error if there are no
bookmarks from here...
(eww-read-bookmarks): ...to here. Add new argument `error-out' to
control this.
@ -75941,7 +75941,7 @@
2020-07-13 Andrea Corallo <akrl@sdf.org>
Rework the backend to allocate arument arrays for call by references
Rework the backend to allocate argument arrays for call by references
* src/comp.c (comp_t): Add 'zero' field.
(emit_limple_call_ref): Allocate an array to host the parameters
@ -76328,7 +76328,7 @@
Add a simple pass to infer pure functions not explicitly declared as
such. Use this information only during compilation (speed 3) to
optimize out function calls whe possible.
optimize out function calls when possible.
2020-07-09 Andrea Corallo <akrl@sdf.org>
@ -77634,7 +77634,7 @@
Add an initial implementation to support dynamic scope. Arg
parsing/binding it's done using the existing code in use for
bytecode (no ad-hoc code is synthetized for that).
bytecode (no ad-hoc code is synthesized for that).
* src/lisp.h (struct Lisp_Subr): Add lambda_list field.
(SUBR_NATIVE_COMPILED_DYNP): New inliner.
@ -78012,7 +78012,7 @@
cd4f75bb86 Rename default function to next-error-buffer-unnavigated-c...
1dff0a8949 * lisp/image-mode.el (image-toggle-display-image): Fix fit...
a71d1787f1 * doc/misc/tramp.texi (Predefined connection information):...
079b0dc430 Delete, don't kill, dir dir fragments in icomplete-fido-ba...
079b0dc430 Delete, don't kill, dir fragments in icomplete-fido-ba...
6cdecc2659 Revert markup change in with-coding-priority docs
22f4fba8a9 * lisp/emulation/cua-rect.el (cua--rectangle-region-insert...
6b9eac6759 * lisp/simple.el (shell-command-on-region): Fix docstring.
@ -78249,7 +78249,7 @@
(comp-latch-make-fill): New function.
(comp-emit-uncond-jump, comp-emit-cond-jump): Update to emit
latches.
(comp-new-block-sym): Add a postfix paramenter.
(comp-new-block-sym): Add a postfix parameter.
2020-06-13 Andrea Corallo <akrl@sdf.org>
@ -78602,7 +78602,7 @@
Fix comp-call-optim-form-call for null `callee'
* lisp/emacs-lisp/comp.el (comp-call-optim-form-call): Guard
agains null `calle'.
against null `calle'.
2020-06-07 Glenn Morris <rgm@gnu.org>
@ -79675,7 +79675,7 @@
Simply return the directory selected by the user.
(project-switch-project-find-file): Remove.
(project-switch-project-dired): Rename to project-dired and make
it follow the convention of existing projec tcommands.
it follow the convention of existing project tcommands.
(project-switch-project-eshell): Ditto.
(project-switch-project): Instead of passing the project instance
to the command, just bind default-directory.
@ -80910,7 +80910,7 @@
'lambda_gc_guard' 'lambda_c_name_idx_h' 'data_imp_relocs'
'loaded_once' fields.
* src/comp.c (load_comp_unit): Use compilaiton unit 'loaded_once'
* src/comp.c (load_comp_unit): Use compilation unit 'loaded_once'
field.
(make_subr, Fcomp__register_lambda): New functions.
(Fcomp__register_subr): Make use of 'make_subr'.
@ -81264,7 +81264,7 @@
Fix bug #40992 whilst still allowing breakpoint highlights in edebug
Strategy: when an instrumented function gets re-evaluated, save the former
value of its symbol's `edebug' property in the new propery `ghost-edebug'. If
value of its symbol's `edebug' property in the new property `ghost-edebug'. If
this function is still being edebugged, edebug will then access its info from
this new property.
@ -83843,7 +83843,7 @@
Implement position independent dump.
Set the filename for every compilation unit as realtive to obtain a
Set the filename for every compilation unit as relative to obtain a
position independent dump.
* lisp/loadup.el: Modify filename for every compilation unit as
@ -84397,7 +84397,7 @@
* lisp/arc-mode.el: Rewrite displaying the summaries
Completely rewrite the code that displayes the summaries, so all
Completely rewrite the code that displays the summaries, so all
backends share the same code.
(archive--summarize-descs): New function.
@ -86075,7 +86075,7 @@
Merge remote-tracking branch 'savannah/master' into HEAD
2020-03-10 AndreaCorallo <akrl@sdf.org>
2020-03-10 Andrea Corallo <akrl@sdf.org>
* Improve load_comp_unit
@ -86084,7 +86084,7 @@
Guard also data_ephemeral_vec against compiler optimizations.
2020-03-10 AndreaCorallo <akrl@sdf.org>
2020-03-10 Andrea Corallo <akrl@sdf.org>
* Fix store_function_docstring for native functions
@ -86098,7 +86098,7 @@
native_intspec and native_doc fields has to be reached by the subr
cause are not anymore in the CU.
2020-03-10 AndreaCorallo <akrl@sdf.org>
2020-03-10 Andrea Corallo <akrl@sdf.org>
* Set relocation class as ephemeral in `comp-limplify-top-level'
@ -86547,17 +86547,17 @@
* lisp/replace.el (occur-1): Update default-directory in occur buffer.
2020-03-04 AndreaCorallo <akrl@sdf.org>
2020-03-04 Andrea Corallo <akrl@sdf.org>
* Do not crash if the output directory is created in the meanwhile
2020-03-03 AndreaCorallo <akrl@sdf.org>
2020-03-03 Andrea Corallo <akrl@sdf.org>
Hash eln ABI once and add it to the output compilation path
Fix org for eln new compilation folder layout
2020-03-03 AndreaCorallo <akrl@sdf.org>
2020-03-03 Andrea Corallo <akrl@sdf.org>
Rework `find-lisp-object-file-name'
@ -86668,7 +86668,7 @@
and 'fill-column' values. (Bug#36837)
(whitespace-lines-regexp): New function.
2020-03-01 AndreaCorallo <akrl@sdf.org>
2020-03-01 Andrea Corallo <akrl@sdf.org>
* ; Clean-up out of date comment
@ -86718,11 +86718,11 @@
* src/pdumper.c (dump_object): Fix hash for Lisp_Type after commit
202c3319a28c029d6971dccea92f92425c5e8067.
2020-02-29 AndreaCorallo <akrl@sdf.org>
2020-02-29 Andrea Corallo <akrl@sdf.org>
Introduce 'effective_load_path'
2020-02-29 AndreaCorallo <akrl@sdf.org>
2020-02-29 Andrea Corallo <akrl@sdf.org>
* Keep comp-subr-list into pure space
@ -87689,7 +87689,7 @@
(lispref/modes.texi): Explain avoiding lambdas on hooks.
2020-02-06 AndreaCorallo <akrl@sdf.org>
2020-02-06 Andrea Corallo <akrl@sdf.org>
Add system-configuration in the compilation output path
@ -87713,7 +87713,7 @@
Add function ssa-status as `comp-func' slot and have `comp-clean-ssa'
to run when necessary.
2020-03-01 AndreaCorallo <akrl@sdf.org>
2020-03-01 Andrea Corallo <akrl@sdf.org>
Remove relocation index form LIMPLE setimm
@ -87739,21 +87739,21 @@
Merge remote-tracking branch 'savannah/master' into HEAD
2020-02-26 AndreaCorallo <akrl@sdf.org>
2020-02-26 Andrea Corallo <akrl@sdf.org>
* ; Add a TODO for a future optimization
2020-02-26 AndreaCorallo <akrl@sdf.org>
2020-02-26 Andrea Corallo <akrl@sdf.org>
Store optimize qualities into .eln files
For now just comp-speed and comp-debug are stored.
2020-02-26 AndreaCorallo <akrl@sdf.org>
2020-02-26 Andrea Corallo <akrl@sdf.org>
Rename d-base allocation classe into d-default
Rename d-base allocation class into d-default
2020-02-26 AndreaCorallo <akrl@sdf.org>
2020-02-26 Andrea Corallo <akrl@sdf.org>
Add ephemeral relocation data class
@ -87793,7 +87793,7 @@
Test 'comp-eq' should not assume any string hashing policy
2020-02-21 AndreaCorallo <akrl@sdf.org>
2020-02-21 Andrea Corallo <akrl@sdf.org>
Emit 'top_level_run' objects as impure
@ -87801,7 +87801,7 @@
Verify '--with-nativecomp' has also '--with-dumping=pdumper'
2020-02-21 AndreaCorallo <akrl@sdf.org>
2020-02-21 Andrea Corallo <akrl@sdf.org>
Reorder m-var slots
@ -87819,7 +87819,7 @@
Use `sxhash-eq' to generate mvar SSA ids
2020-02-15 AndreaCorallo <akrl@sdf.org>
2020-02-15 Andrea Corallo <akrl@sdf.org>
Speed 2 goes default
@ -87832,7 +87832,7 @@
Every function call by reference gets use one unique array of
arguments.
2020-02-14 AndreaCorallo <akrl@sdf.org>
2020-02-14 Andrea Corallo <akrl@sdf.org>
Clean-up old gc disable refuse in comp-tests-non-locals
@ -88071,7 +88071,7 @@
Always define subr-native-elisp-p also without native compiler
2020-02-03 AndreaCorallo <akrl@sdf.com>
2020-02-03 Andrea Corallo <akrl@sdf.com>
Fix load_comp_unit for non zero speeds
@ -90740,7 +90740,7 @@
compute dominator tree
ssa and endge number generation with generator
ssa and edge number generation with generator
add edge computation
@ -91228,7 +91228,7 @@
optimize primitive native call
propagate contant types and optimize self calls
propagate constant types and optimize self calls
introduce stack_el_t
@ -91466,7 +91466,7 @@
introduce CASE_CALL_NARGS macro and add various ops
symbol_function set fset fget fget Bsubstring
symbol_function set fset fget Bsubstring
2020-01-01 Andrea Corallo <andrea_corallo@yahoo.it>
@ -93578,7 +93578,7 @@
2021-02-03 Michael Albinus <michael.albinus@gmx.de>
Fix an error in tramp-sh-handle-make-process. Dont' merge with master
Fix an error in tramp-sh-handle-make-process. Don't merge with master
* lisp/net/tramp-sh.el (tramp-sh-handle-make-process): Don't use heredoc
script whent the argument contains a string.
@ -95039,7 +95039,7 @@
2020-06-13 João Távora <joaotavora@gmail.com>
Delete, don't kill, dir dir fragments in icomplete-fido-backward-updir
Delete, don't kill, dir fragments in icomplete-fido-backward-updir
Reported by: Andrew Schwartzmeyer <andrew@schwartzmeyer.com>
@ -101413,7 +101413,7 @@
vc-hg: prompt for branch to merge
* lisp/vc/vc-hg.el (vc-hg-merge-branch): Prompt for revision to merge.
(vc-hg-revision-table): Use branches, tags and bookmarks as competion
(vc-hg-revision-table): Use branches, tags and bookmarks as completion
candidates.
* etc/NEWS: Mention changes of vc-hg.el
@ -101483,7 +101483,7 @@
(Create_Pixmap_From_Bitmap_Data):
(xpm_load): Use new function.
* src/xterm.c (x_composite_image): Use PictOpOver when there is a mask
so the transparency is honoured.
so the transparency is honored.
(x_draw_image_foreground_1): Use x_composite_image.
2019-11-29 Stefan Monnier <monnier@iro.umontreal.ca>
@ -103042,7 +103042,7 @@
open-paren-in-column-0-is-defun-start to nil) fixes bug #37910. It may also
have fixed bug #5490 and bug #18072.
* lisp/progmodes/cc-engine.el (c-state-cache-non-literal-place): Remove thi
* lisp/progmodes/cc-engine.el (c-state-cache-non-literal-place): Remove this
non-sensical function, replacing it with ....
(c-state-cache-lower-good-pos): New function.
(c-renarrow-state-cache, c-append-lower-brace-pair-to-state-cache)
@ -110631,7 +110631,7 @@
Fix reversed check in mm-possibly-verify-or-decrypt
* lisp/gnus/mm-decode.el (mm-possibly-verify-or-decrypt): Fix
reverse check thinko that made unverified singed messages not
reverse check thinko that made unverified signed messages not
display correctly.
2019-09-27 Wilson Snyder <wsnyder@wsnyder.org>
@ -113664,7 +113664,7 @@
Make the NSM not pop up an X dialogue on non-mouse actions
* lisp/emacs-lisp/rmc.el (read-multiple-choice): Don't pop up X
dialogues on (url-retrieve "https://expired.badssl.com/" #'ignore)
dialogs on (url-retrieve "https://expired.badssl.com/" #'ignore)
and the like.
2019-09-04 Lars Ingebrigtsen <larsi@gnus.org>
@ -115157,7 +115157,7 @@
2019-08-21 Lars Ingebrigtsen <larsi@gnus.org>
Make hide-ifdef-mode-prefix-key customisable
Make hide-ifdef-mode-prefix-key customizable
* lisp/progmodes/hideif.el (hide-ifdef-mode-prefix-key): Make into
a defcustom since it seems like this is something that should be
@ -117900,7 +117900,7 @@
(readbyte_from_file): Assert that `infile` is set.
(close_infile_unwind): Reset `infile` to its previous value rather than
to NULL.
(Fload): Remember the previous value of `infile` before chaning it.
(Fload): Remember the previous value of `infile` before changing it.
(readevalloop): Don't set `infile` any more.
2019-07-31 Paul Eggert <eggert@cs.ucla.edu>
@ -118316,7 +118316,7 @@
* lisp/mh-e/mh-speed.el (mh-speed-parse-flists-output):
* lisp/mh-e/mh-search.el (mh-index-parse-search-regexp): Avoid
warning about `values-list' by using `cl-values-list' insead.
warning about `values-list' by using `cl-values-list' instead.
2019-07-29 Lars Ingebrigtsen <larsi@gnus.org>
@ -126255,7 +126255,7 @@
Suppress warning about non-prefixed variable in mailalias.el
* lisp/mail/mailalias.el (patters): Suppress warning about
* lisp/mail/mailalias.el (pattern): Suppress warning about
non-prefixed variable used by `mail-complete-alist'.
2019-06-15 Lars Ingebrigtsen <larsi@gnus.org>
@ -130261,7 +130261,7 @@
8192 bytes is a reasonable number nowadays given typical file
system design.
* test/lisp/image-tests.el (image-tests--emacs-images-directory):
New contant.
New constant.
(image-type-from-file-header-test): New test.
2019-05-18 Michael Albinus <michael.albinus@gmx.de>
@ -130524,7 +130524,7 @@
2019-05-16 Lars Ingebrigtsen <larsi@gnus.org>
Avoind string-as-multibyte in ps-output-string-prim
Avoid string-as-multibyte in ps-output-string-prim
* lisp/ps-print.el (ps-output-string-prim): Avoid
`string-as-multibyte', and encode as utf-8 instead if multibyte.
@ -130710,7 +130710,7 @@
Fix diff-mode face problem when used in terminals (Bug#35695)
In a terminal supporting 256 colors, both diff-added and diff-removed
was mapped to the same greyish color.
was mapped to the same grayish color.
* lisp/vc/diff-mode.el: Modify the colors of diff-removed,
diff-added, diff-refine-removed, and diff-refine-added when
@ -136480,7 +136480,7 @@
Check gnus-newsgroup-dependencies is hash table in gnus-id-to-thread
* lisp/gnus/gnus-sum.el (gnus-id-to-thread): If dependencies haven't
been initialized yet, don't blow up. Mimicks previous (non hasht
been initialized yet, don't blow up. Mimics previous (non hash
table) behavior.
2019-03-31 Mattias Engdegård <mattiase@acm.org>
@ -140170,7 +140170,7 @@
* doc/misc/eshell.texi (Built-ins): Fix alias description
Dear eamcs developers, eshells current documentation first states
Dear emacs developers, eshell's current documentation first states
that alias definitions are not saved to an alias file, later that
they are saved to an alias file. I tested it and the latter is
correct.
@ -156879,7 +156879,7 @@
Merge from origin/emacs-26
90bea37 ; * etc/PROBLEMS: Fix fvwm version number in last commit
af82d1f * etc/PROBLEMS: Document stickyness problem with FVWM (Bug#31...
af82d1f * etc/PROBLEMS: Document stickiness problem with FVWM (Bug#31...
4a3aed2 Update Emacs Lisp Intro to match current behavior
21f2247 Merge branch 'emacs-26' of git.savannah.gnu.org:/srv/git/emac...
3257085 Fix previous commit
@ -158744,7 +158744,7 @@
2018-04-17 Basil L. Contovounesios <contovob@tcd.ie>
Modernise face specs and set version tags in eww/shr
Modernize face specs and set version tags in eww/shr
* lisp/net/shr.el (shr-strike-through, shr-link, shr-selected-link):
Set :version tag (bug#31200).
@ -159218,10 +159218,10 @@
2018-04-14 Lars Ingebrigtsen <larsi@gnus.org>
Modernise a Gnus function a bit
Modernize a Gnus function a bit
* lisp/gnus/gnus-start.el (gnus-update-active-hashtb-from-killed):
Modernise code a bit.
Modernize code a bit.
2018-04-14 Lars Ingebrigtsen <larsi@gnus.org>
@ -165960,7 +165960,7 @@
cl-loop: Calculate the array length just once
* lisp/emacs-lisp/cl-macs.el (cl--parse-loop-clause):
Dont calculate the array length on each iteration (Bug#29866).
Don't calculate the array length on each iteration (Bug#29866).
2018-01-07 Philipp Stephani <phst@google.com>
@ -166738,7 +166738,7 @@
5a7d009 * lisp/vc/smerge-mode.el (smerge-refine): Replace obsolete al...
e019c35 FOR_EACH_FRAME no longer assumes frame-list
d64b88d * src/font.c (Ffont_info): Doc fix. (Bug#29682)
92b2604 Modernise message.el face spec syntax
92b2604 Modernize message.el face spec syntax
b1efbe6 Update message.el obsolete face aliases
2494c14 ; * lisp/comint.el (comint-terminfo-terminal): Add a :version...
12ad276 Improve documentation of TERM environment variable
@ -167034,7 +167034,7 @@
5a7d0095a4 * lisp/vc/smerge-mode.el (smerge-refine): Replace obsolete...
e019c35df6 FOR_EACH_FRAME no longer assumes frame-list
d64b88da2f * src/font.c (Ffont_info): Doc fix. (Bug#29682)
92b2604a7f Modernise message.el face spec syntax
92b2604a7f Modernize message.el face spec syntax
b1efbe6564 Update message.el obsolete face aliases
2494c14e76 ; * lisp/comint.el (comint-terminfo-terminal): Add a :vers...
12ad276d15 Improve documentation of TERM environment variable
@ -169297,7 +169297,7 @@
2e1b3522b8 Improve documentation of 'line-number-display-width'
5b6e59cfdb Implement vc-default-dir-extra-headers for vc-rcs
22adeca42a In NEWS give advice on use of `switch-to-buffer' (Bug#28645)
2c3e6f1ddc Dont update primary selection with winner-undo
2c3e6f1ddc Don't update primary selection with winner-undo
b38724ab67 Work around ImageMagick bug 825
20cc68e871 Document rectangle-preview option more (Bug#27974)
a0b7b301dd Do not reject https://gnu.org in commit messages
@ -172340,7 +172340,7 @@
* doc/misc/eshell.texi (Built-ins): Fix alias description
Dear eamcs developers, eshells current documentation first states
Dear emacs developers, eshell's current documentation first states
that alias definitions are not saved to an alias file, later that
they are saved to an alias file. I tested it and the latter is
correct.
@ -176909,7 +176909,7 @@
2018-06-02 Martin Rudalics <rudalics@gmx.at>
* etc/PROBLEMS: Document stickyness problem with FVWM (Bug#31650)
* etc/PROBLEMS: Document stickiness problem with FVWM (Bug#31650)
2018-06-01 Eli Zaretskii <eliz@gnu.org>
@ -181827,7 +181827,7 @@
2017-12-15 Basil L. Contovounesios <contovob@tcd.ie>
Modernise message.el face spec syntax
Modernize message.el face spec syntax
* lisp/gnus/message.el (message-header-to, message-header-cc)
(message-header-subject, message-header-newsgroups)
@ -184352,7 +184352,7 @@
* src/lisp.h (COMMON_MULTIPLE): Move here from alloc.c.
* src/thread.c (THREAD_ALIGNMENT): New macro.
(main_thread): Use THREAD_ALIGNMENT to align propertly. (Bug#29040)
(main_thread): Use THREAD_ALIGNMENT to align properly. (Bug#29040)
2017-10-28 Eli Zaretskii <eliz@gnu.org>
@ -185296,10 +185296,10 @@
2017-10-17 Tino Calancha <tino.calancha@gmail.com>
Noam Postavsky <npostavs@gmail.com>
Dont update primary selection with winner-undo
Don't update primary selection with winner-undo
* lisp/winner.el (winner-set):
Dont update primary selection when select-enable-primary
Don't update primary selection when select-enable-primary
is non-nil (Bug#28631).
2017-10-17 Paul Eggert <eggert@cs.ucla.edu>
@ -185373,7 +185373,7 @@
* lisp/image.el (image-type-header-regexps):
Allow two or more CRs or LFs in initial whitespace sequences. See:
http://netpbm.sourceforge.net/doc/pbm.html
https://netpbm.sourceforge.net/doc/pbm.html
2017-10-16 Paul Eggert <eggert@cs.ucla.edu>
@ -185648,7 +185648,7 @@
Add mode map to Flymake diagnostic button
* lisp/progmodes/flymake.el (flymake--diagnostics-buffer-entries): Add
keymap propery.
keymap property.
2017-10-10 João Távora <joaotavora@gmail.com>
@ -192051,7 +192051,7 @@
2017-08-09 Tino Calancha <tino.calancha@gmail.com>
Ask files for deletion in buffer order: top first, botton later
Ask files for deletion in buffer order: top first, bottom later
* lisp/dired.el (dired-do-flagged-delete, dired-do-delete):
Call `nreverse' t invert the output of `dired-map-over-marks'.
@ -194580,7 +194580,7 @@
2017-07-09 R. Bernstein <rocky@gnu.org>
Add realgud faces faces to whiteboard...
Add realgud faces to whiteboard...
Adjust wheatgrass to use underline for enabled/disabled breakpoints
@ -195520,7 +195520,7 @@
Ignore mouse-movement for describe-key-briefly (Bug#12204)
* lisp/help.el (help-read-key-sequence): Add optional argument ot
* lisp/help.el (help-read-key-sequence): Add optional argument to
ignore `mouse-movement' events.
(describe-key-briefly): Use it.
* doc/emacs/help.texi (Key Help):
@ -197097,7 +197097,7 @@
Clang on macOS warns about these with -Wtautological-compare. POSIX
guarantees that rlim_t is
unsigned (cf.
http://pubs.opengroup.org/onlinepubs/009695399/basedefs/sys/resource.h.html),
https://pubs.opengroup.org/onlinepubs/009695399/basedefs/sys/resource.h.html),
so these resource limits can never be negative.
* src/emacs.c (main): Remove tautological comparisons.
@ -198690,7 +198690,7 @@
(tramp-adb-ls-toolbox-regexp):
Ignore addition links column on Android 7.
(tramp-adb-get-ls-command):
Dont use --color=none when using toybox (Android 7). It's not
Don't use --color=none when using toybox (Android 7). It's not
possible to disable coloring explicitly for toybox ls.
2017-05-27 Svante Carl v. Erichsen <Svante.v.Erichsen@web.de> (tiny change)
@ -199186,7 +199186,7 @@
2017-05-23 Paul Eggert <eggert@cs.ucla.edu>
Don't warn about missing brances on macOS
Don't warn about missing branches on macOS
On macOS, removing -Wmissing-braces is not enough; the warning has to
be disabled explicitly.
@ -199197,7 +199197,7 @@
' is commonly used as an apostrophe in the prose sections of spec
files, which was erroneously highlighted as strings. See for example
http://kmymoney2.sourceforge.net/phb/rpm-example.html
https://kmymoney2.sourceforge.net/phb/rpm-example.html
* lisp/progmodes/sh-script.el (sh-mode-syntax-table): Treat ' as
punctuation in RPM spec files.
@ -208945,7 +208945,7 @@
Revamp quitting and fix infloops
This fixes some infinite loops that cannot be quitted out of,
This fixes some infinite loops that cannot be quit out of,
e.g., (defun foo () (nth most-positive-fixnum '#1=(1 . #1#)))
when byte-compiled and when run under X. See:
https://lists.gnu.org/r/emacs-devel/2017-01/msg00577.html
@ -214158,7 +214158,7 @@
refactor systhread.h
This refactors systhread.h to move the notion of a "lisp mutex"
into thread.c. This lets us make make the global lock and
into thread.c. This lets us make the global lock and
post_acquire_global_lock static.
2012-08-17 Tom Tromey <tromey@redhat.com>
@ -218796,7 +218796,7 @@
* lib/stdint.in.h, m4/extensions.m4, m4/stdint.m4, m4/stdio_h.m4:
* m4/sys_types_h.m4: Copy from gnulib.
* lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
* lib/limits.in.h, m4/limits-h.m4: New files, copie from gnulib.
* lib/limits.in.h, m4/limits-h.m4: New files, copied from gnulib.
* nt/gnulib.mk: Merge changes from lib/gnulib.mk.
2016-09-15 Michael Albinus <michael.albinus@gmx.de>
@ -219462,7 +219462,7 @@
2016-09-02 Stefan Monnier <monnier@iro.umontreal.ca>
Check actual contents before promting about changed file
Check actual contents before prompting about changed file
* lisp/userlock.el (userlock--check-content-unchanged)
(userlock--ask-user-about-supersession-threat): New functions.
@ -220696,7 +220696,7 @@
* lisp/progmodes/cc-mode.el (c-after-change): When we detect a missing
invocation of c-before-change-functions, we assume the changed region is the
entire buffer, and call c-before-change explicitly before proceding.
entire buffer, and call c-before-change explicitly before proceeding.
2016-08-09 Alan Mackenzie <acm@muc.de>
@ -221327,8 +221327,8 @@
is never used. Hardcode the syntax so that the compilar can detect such
dead code and remove it from compiled code.
The only exception is RE_NO_POSIX_BACKTRACKING which can be separatelly
specified. Handle this separatelly with a function argument (replacing
The only exception is RE_NO_POSIX_BACKTRACKING which can be separately
specified. Handle this separately with a function argument (replacing
now unnecessary syntax argument).
With this patchset, size of Emacs binary on x86_64 machine is reduced by
@ -223962,10 +223962,10 @@
2016-06-15 Stefan Monnier <monnier@iro.umontreal.ca>
Advertize set-keymap-parent as replacement for copy-keymap
Advertise set-keymap-parent as replacement for copy-keymap
* doc/lispref/keymaps.texi (Creating Keymaps):
* src/keymap.c (Fcopy_keymap): Advertize set-keymap-parent as replacement.
* src/keymap.c (Fcopy_keymap): Advertise set-keymap-parent as replacement.
2016-06-15 Ted Zlatanov <tzz@lifelogs.com>
@ -226537,7 +226537,7 @@
Fix Bug#10085
* lisp/net/tramp.el (tramp-find-foreign-file-name-handler):
Add optional arguments OPERATION and COMPETION. Handle
Add optional arguments OPERATION and COMPLETION. Handle
`file-name-as-directory', `file-name-directory' and
`file-name-nondirectory' also in completion mode.
(tramp-file-name-handler): Use it. (Bug#10085)
@ -226854,7 +226854,7 @@
2016-04-30 Lars Ingebrigtsen <larsi@gnus.org>
Document mode mode line variables
Document mode line variables
* doc/lispref/modes.texi (Mode Line Variables): Document
`mode-line-front-space, `mode-line-misc-info',
@ -227546,7 +227546,7 @@
of the data end marker from here... (bug#23020).
(smtpmail-send-data): ... to here, so that we don't get a
"Sending done" before we've sent the final "." (which can make
the SMPT server reject the email.
the SMTP server reject the email.
2016-04-25 Lars Magne Ingebrigtsen <larsi@gnus.org>
@ -227801,7 +227801,7 @@
* lisp/auth-source.el
(auth-source-macos-keychain-search-items): Handle keychain
output correctly when has special chararcters (bug#22824).
output correctly when has special characters (bug#22824).
2016-04-24 Magnus Henoch <magnus.henoch@gmail.com>

View file

@ -187,7 +187,7 @@ X11 is being used.
libz (for PNG): https://www.zlib.net/
X libjpeg for JPEG: https://www.ijg.org/
X libtiff for TIFF: http://www.simplesystems.org/libtiff/
X libgif for GIF: http://giflib.sourceforge.net/
X libgif for GIF: https://giflib.sourceforge.net/
librsvg2 for SVG: https://wiki.gnome.org/Projects/LibRsvg
libwebp for WebP: https://developers.google.com/speed/webp/

View file

@ -52,14 +52,14 @@
# make bootstrap
# Removes all the compiled files to force a new bootstrap from a
# clean slate, and then build in the normal way. If the FAST Make
# variable is set, then the config.cache file isn't removed. This
# allows you to say
# variable is set, then the autom4te.cache directory and the
# config.cache file are not removed. This lets you say
#
# ./configure -C
# make FAST=true bootstrap
#
# and use the cached results from the configure run, which is much
# faster.
# faster though it does not work in general.
#
# make docs
# Make Emacs documentation files from their sources; requires makeinfo.
@ -405,16 +405,18 @@ actual-all: ${SUBDIR} info $(gsettings_SCHEMAS:.xml=.valid) src-depending-on-lis
# ADVICE-ON-FAILURE-END:bootstrap
advice-on-failure:
@[ -f .no-advice-on-failure ] && exit ${exit-status}; true
@echo >&2 '***'
@echo >&2 '*** '"\"make ${make-target}\" failed with exit status ${exit-status}."
@echo >&2 '***'
@cat Makefile | \
sed -n '/^# ADVICE-ON-FAILURE-BEGIN:${make-target}/,$${p;/^# ADVICE-ON-FAILURE-END:${make-target}/q};' | \
sed 's/^# /*** /' | grep -v '^*** ADVICE-ON-FAILURE-' >&2
sed -n '/^# ADVICE-ON-FAILURE-BEGIN:${make-target}/,$${p;/^# ADVICE-ON-FAILURE-END:${make-target}/q;};' | \
sed 's/^# /*** /' | grep -v '^\*\*\* ADVICE-ON-FAILURE-' >&2
@echo >&2 '***'
@exit ${exit-status}
sanity-check:
@[ -f .no-advice-on-failure ] && exit 0; true
@v=$$(src/emacs${EXEEXT} --batch --eval \
'(progn (defun f (n) (if (= 0 n) 1 (* n (f (- n 1))))) (princ (f 10)))' \
2> /dev/null); \
@ -423,8 +425,8 @@ sanity-check:
echo >&2 '*** '"\"make ${make-target}\" succeeded, but Emacs is not functional."; \
echo >&2 '***'; \
cat Makefile | \
sed -n '/^# ADVICE-ON-FAILURE-BEGIN:${make-target}/,$${p;/^# ADVICE-ON-FAILURE-END:${make-target}/q};' | \
sed 's/^# /*** /' | grep -v '^*** ADVICE-ON-FAILURE-' >&2; \
sed -n '/^# ADVICE-ON-FAILURE-BEGIN:${make-target}/,$${p;/^# ADVICE-ON-FAILURE-END:${make-target}/q;};' | \
sed 's/^# /*** /' | grep -v '^\*\*\* ADVICE-ON-FAILURE-' >&2; \
echo >&2 '***'; \
exit 1
@ -530,6 +532,11 @@ lisp: src
lib lib-src lisp nt: Makefile
$(MAKE) -C $@ all
trampolines: src lisp
ifeq ($(HAVE_NATIVE_COMP),yes)
$(MAKE) -C lisp trampolines
endif
# Pass an unexpanded $srcdir to src's Makefile, which then
# expands it using its own value of srcdir (which points to the
# source directory of src/).
@ -1035,7 +1042,7 @@ bootstrap-clean: $(distclean_dirs:=_bootstrap-clean)
rm -f ${srcdir}/etc/refcards/emacsver.tex
rm -rf native-lisp/ lisp/leim/ja-dic/
ifndef FAST
rm -f config.cache
rm -fr autom4te.cache config.cache
endif
${top_bootclean}

View file

@ -990,7 +990,7 @@ in the repository.")
;; to how a file was mentioned in the respective ChangeLog. It is
;; advisable to run a Grep command such as
;;
;; fgrep -R BASENAME . --include='ChangeLog*'
;; grep -F -R BASENAME . --include='ChangeLog*'
;;
;; where BASENAME is the old basename of the renamed file. This will
;; show all the different reference forms of the file in the various

View file

@ -35,18 +35,7 @@
## it with the -d option in the repository directory, in case a pull
## updates this script while it is working.
set -o nounset
die () # write error to stderr and exit
{
[ $# -gt 0 ] && echo "$PN: $*" >&2
exit 1
}
PN=${0##*/} # basename of script
PD=${0%/*}
[ "$PD" = "$0" ] && PD=. # if PATH includes PWD
source "${0%/*}/emacs-shell-lib"
usage ()
{
@ -129,13 +118,7 @@ OPTIND=1
[ "$test" ] && build=1
if [ -x "$(command -v mktemp)" ]; then
tempfile=$(mktemp "/tmp/$PN.XXXXXXXXXX")
else
tempfile=/tmp/$PN.$$
fi
trap 'rm -f $tempfile 2> /dev/null' EXIT
tempfile="$(emacs_mktemp)"
[ -e Makefile ] && [ "$build" ] && {
@ -263,5 +246,3 @@ git push || die "push error"
exit 0
### automerge ends here

View file

@ -54,7 +54,7 @@
#
# [v0.1, 5 May 1995] First release.
#
# Use the Unicode reporting form <http://www.unicode.org/reporting.html>
# Use the Unicode reporting form <https://www.unicode.org/reporting.html>
# for any questions or comments or to report errors in the data.
#
0020 20 # SPACE # space

View file

@ -57,7 +57,7 @@
#
# [v0.1, 5 May 1995] First release.
#
# Use the Unicode reporting form <http://www.unicode.org/reporting.html>
# Use the Unicode reporting form <https://www.unicode.org/reporting.html>
# for any questions or comments or to report errors in the data.
#
0020 20 # SPACE # space

View file

@ -131,7 +131,7 @@ Names should be as they appear in loaddefs.el.")
;; Don't create a file `abbrev-file-name'.
(setq save-abbrevs nil)
;; Avoid compile logs from adviced functions.
;; Avoid compile logs from advised functions.
(eval-after-load "bytecomp"
'(setq ad-default-compilation-action 'never))

View file

@ -1,4 +1,4 @@
#! /bin/sh
#!/bin/bash
# Copyright (C) 2001-2022 Free Software Foundation, Inc.
@ -17,6 +17,7 @@
# You should have received a copy of the GNU General Public License
# along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
source "${0%/*}/emacs-shell-lib"
if [ $# != 2 ]; then
cat <<EOF
@ -31,9 +32,8 @@ fi
old_tar=$1
new_tar=$2
old_tmp=/tmp/old.$$
new_tmp=/tmp/new.$$
trap "rm -f $old_tmp $new_tmp; exit 1" 1 2 15
old_tmp="$(emacs_mktemp ${PN}-old)"
new_tmp="$(emacs_mktemp ${PN}-new)"
tar tf "$old_tar" | sed -e 's,^[^/]*,,' | sort > $old_tmp
tar tf "$new_tar" | sed -e 's,^[^/]*,,' | sort > $new_tmp

87
admin/emacs-shell-lib Normal file
View file

@ -0,0 +1,87 @@
#!/bin/bash
### emacs-shell-lib - shared code for Emacs shell scripts
## Copyright (C) 2022 Free Software Foundation, Inc.
## Author: Stefan Kangas <stefankangas@gmail.com>
## This file is part of GNU Emacs.
## GNU Emacs is free software: you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation, either version 3 of the License, or
## (at your option) any later version.
## GNU Emacs is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
## You should have received a copy of the GNU General Public License
## along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
### Code:
# Set an explicit umask.
umask 077
# Treat unset variables as an error.
set -o nounset
# Exit immediately on error.
set -o errexit
# Avoid non-standard command output from non-C locales.
unset LANG LC_ALL LC_MESSAGES
PN=${0##*/} # basename of script
PD=${0%/*} # script directory
[ "$PD" = "$0" ] && PD=. # if PATH includes PWD
die () # write error to stderr and exit
{
[ $# -gt 0 ] && echo "$PN: $@" >&2
exit 1
}
emacs_tempfiles=()
emacs_tempfiles_cleanup ()
{
for file in ${emacs_tempfiles[@]}; do
rm -f "${file}" 2> /dev/null
done
}
trap '
ret=$?
emacs_tempfiles_cleanup
exit $ret
' EXIT
emacs_mktemp ()
{
local readonly file="${1-}"
local tempfile
local prefix
if [ -z "$file" ]; then
prefix="$PN"
else
prefix="$1"
fi
if [ -x "$(command -v mktemp)" ]; then
tempfile=$(mktemp "${TMPDIR-/tmp}/${prefix}.XXXXXXXXXX")
else
tempfile="${TMPDIR-/tmp}/${prefix}.$RANDOM$$"
(umask 077 && touch "$tempfile")
fi
[ -z "${tempfile}" ] && die "Creating temporary file failed"
emacs_tempfiles+=("${tempfile}")
echo "$tempfile"
}

View file

@ -1,5 +1,22 @@
#!/bin/bash
# Copyright (C) 2022 Free Software Foundation, Inc.
# This file is part of GNU Emacs.
# GNU Emacs is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# GNU Emacs is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
# This script is meant to be used as ./admin/emake, and will compile
# the Emacs tree with virtually all of the informational messages
# removed, and with errors/warnings highlighted in red. It'll give a

40
admin/git-bisect-start Executable file
View file

@ -0,0 +1,40 @@
#!/bin/bash
### Start a git bisection, and prune the branches that are the result of
### merging external trees into the Emacs repository.
## Copyright (C) 2022 Free Software Foundation, Inc.
## This file is part of GNU Emacs.
## GNU Emacs is free software: you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation, either version 3 of the License, or
## (at your option) any later version.
## GNU Emacs is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
## You should have received a copy of the GNU General Public License
## along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
### Commentary:
## Marking the last commits of external tree merges as "good" ensures
## that all the commits between the external tree root and the merge
## (excluding the merge-commit itself) are regarded as "good", so "git
## bisect" will never descend into these branches, which only have the
## files of the external tree, and in which Emacs can therefore not be
## built. The last commit is the parent of the merge commit in the
## external tree, that is, the parent of the merge commit that is not
## on master.
### Code:
git bisect start
# Prune commits 1e5b753bf4..806734c1b1 introduced by 0186faf2a1 (Eglot
# merge on Oct 20 2022)
git bisect good 806734c1b1f433de43d59d9a5e3a1e89d64315f6

View file

@ -126,7 +126,7 @@ variable
: SET symbol insertable-string-list newline
(VARIABLE-TAG $2 nil $3)
| SET symbol number newline
;; This so a common error w/ priority works.
;; This so a common error with priority works.
;; Note that "number" still has a string value in the lexer.
(VARIABLE-TAG $2 nil (list $3))
| SHOW symbol newline

View file

@ -41,7 +41,7 @@
;;
;; will show you any references to `change-log-date-face' in the
;; *.el files in a new buffer (in Grep mode). Hopefully you see
;; only the obsolete declaration and can proceed w/ its removal.
;; only the obsolete declaration and can proceed with its removal.
;; If not, please DTRT and refrain from the removal until those
;; references are properly transitioned.
;;

View file

@ -33,15 +33,7 @@
### Code:
set -o nounset
die () # write error to stderr and exit
{
[ $# -gt 0 ] && echo "$PN: $@" >&2
exit 1
}
PN=${0##*/} # basename of script
source "${0%/*}/emacs-shell-lib"
usage ()
{
@ -96,8 +88,7 @@ OPTIND=1
[ -e admin/admin.el ] || die "admin/admin.el not found"
tempfile=/tmp/$PN.$$
trap "rm -f $tempfile 2> /dev/null" EXIT
tempfile="$(emacs_mktemp)"
[ "$continue" ] || rm -rf $outdir

View file

@ -390,7 +390,7 @@ Next, regenerate the various manuals in HTML, PDF, and PS formats:
Now change to the 'manual' directory and invoke upload-manuals:
../admin/updload-manuals /path/to/webpages/cvs/checkout
../admin/upload-manuals /path/to/webpages/cvs/checkout
where /path/to/webpages/cvs/checkout is the place where you have the
CVS checkout of the Emacs Web pages, with subdirectories 'manual'

View file

@ -73,7 +73,7 @@ the ones that are not reproducible on the current release.
know if you are able to? If I don't hear back in a few
weeks, I'll just close this bug as unreproducible."
[ ] Check that the priority is reasonable. Most bugs should be
marked as normal, but crashers and security issues can be
marked as normal, but crashes and security issues can be
marked as serious.
3. Your changes will take some time to take effect. After a period of minutes
to hours, you will get a mail telling you the control message has been

View file

@ -42,6 +42,24 @@ yet another fun excursion into the exciting world of version control.
https://lists.gnu.org/r/emacs-devel/2010-04/msg00086.html
* feature and scratch branches
Besides the master branch, which is where development takes place, and
the "emacs-NN" release branches, we also have branches whose names
start with "scratch/" and "feature/". The "feature/" prefix is used
for feature branches that are intended to live for some time, while
"scratch/" is for one-off throw-away-after-use branches.
We do not intend to "git merge" from scratch branches, so force-pushes
are tolerated, as well as commits with poor style, incomplete commit
messages, etc.
We do expect to "git merge" from feature branches so: no force push,
and no commits that don't have a proper commit message.
Automatic tests are run for feature/* branches on EMBA.
See: https://emba.gnu.org/emacs/emacs/-/pipelines
* Installing changes from gnulib
Some of the files in Emacs are copied from gnulib. To synchronize
@ -110,6 +128,10 @@ again.
This is a semi-automated way to find the revision that introduced a bug.
Browse 'git help bisect' for technical instructions.
It is recommended to start a bisection with the admin/git-bisect-start
script. This script prunes the branches that are the result of
merging external trees into the Emacs repository.
* Maintaining ChangeLog history
Older ChangeLog entries are kept in history files named ChangeLog.1,

View file

@ -6,31 +6,31 @@ copyright.html.
The names, URLs, and dates for these files are as follows.
BidiBrackets.txt
http://www.unicode.org/Public/UNIDATA/BidiBrackets.txt
https://www.unicode.org/Public/UNIDATA/BidiBrackets.txt
2021-06-30
BidiMirroring.txt
http://www.unicode.org/Public/UNIDATA/BidiMirroring.txt
https://www.unicode.org/Public/UNIDATA/BidiMirroring.txt
2021-08-08
Blocks.txt
http://www.unicode.org/Public/8.0.0/ucd/Blocks.txt
https://www.unicode.org/Public/8.0.0/ucd/Blocks.txt
2021-01-22
IVD_Sequences.txt
http://www.unicode.org/ivd/
https://www.unicode.org/ivd/
2020-11-06
NormalizationTest.txt
http://www.unicode.org/Public/UNIDATA/NormalizationTest.txt
https://www.unicode.org/Public/UNIDATA/NormalizationTest.txt
2021-05-28
SpecialCasing.txt
http://unicode.org/Public/UNIDATA/SpecialCasing.txt
https://unicode.org/Public/UNIDATA/SpecialCasing.txt
2021-03-08
UnicodeData.txt
http://www.unicode.org/Public/UNIDATA/UnicodeData.txt
https://www.unicode.org/Public/UNIDATA/UnicodeData.txt
2021-07-06
emoji-data.txt

View file

@ -23,7 +23,7 @@
### Commentary:
## This script takes as input Unicode's Blocks.txt
## (http://www.unicode.org/Public/UNIDATA/Blocks.txt)
## (https://www.unicode.org/Public/UNIDATA/Blocks.txt)
## and produces output for Emacs's lisp/international/charscript.el.
## It lumps together all the blocks belonging to the same language.

View file

@ -13,7 +13,7 @@
<title>Unicode Terms of Use</title>
<link rel="stylesheet" type="text/css"
href="http://www.unicode.org/webscripts/standard_styles.css">
href="https://www.unicode.org/webscripts/standard_styles.css">
<style type="text/css">
pre {
@ -32,8 +32,8 @@
<td colspan="2">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class="icon" style="width:38px; height:35px"><a href="http://www.unicode.org/"><img border="0"
src="http://www.unicode.org/webscripts/logo60s2.gif" align="middle" alt="[Unicode]" width="34" height="33"></a></td>
<td class="icon" style="width:38px; height:35px"><a href="https://www.unicode.org/"><img border="0"
src="https://www.unicode.org/webscripts/logo60s2.gif" align="middle" alt="[Unicode]" width="34" height="33"></a></td>
<td class="icon" style="vertical-align:middle;"> &nbsp;<a class="bar"
href="https://www.unicode.org/copyright.html"><font size="3">Terms of Use</font></a></td>
<td class="bar"><a href="https://www.unicode.org/main.html" class="bar">Tech Site</a>
@ -112,7 +112,7 @@ <h1>Unicode® Copyright and Terms of Use</h1>
<p>For the general privacy policy governing access to this site, see
the&nbsp;
<a href="http://www.unicode.org/policies/privacy_policy.html">
<a href="https://www.unicode.org/policies/privacy_policy.html">
Unicode Privacy Policy</a>.</p>
<ol type="A">
@ -158,7 +158,7 @@ <h1>Unicode® Copyright and Terms of Use</h1>
specifications of rights and restrictions of use. For the book
editions (Unicode 5.0 and earlier), these are found on the back
of the
<a href="http://www.unicode.org/versions/Unicode5.0.0/Title.pdf">title page</a>.</li>
<a href="https://www.unicode.org/versions/Unicode5.0.0/Title.pdf">title page</a>.</li>
<li>
The Unicode PDF <a href="https://www.unicode.org/charts/">online code charts</a> carry specific restrictions. Those restrictions are incorporated as the
first page of each PDF code chart.</li>
@ -224,7 +224,7 @@ <h1>Unicode® Copyright and Terms of Use</h1>
<li><u><a name="5"></a>Trademarks &amp; Logos</u>
<ol>
<li>The Unicode Word Mark and the Unicode Logo are trademarks of Unicode, Inc. “The Unicode Consortium” and “Unicode, Inc.” are trade names of Unicode, Inc. Use of the information and materials found on this website indicates your acknowledgement of Unicode, Inc.s exclusive worldwide rights in the Unicode Word Mark, the Unicode Logo, and the Unicode trade names.</li>
<li><a href="http://www.unicode.org/policies/logo_policy.html">The Unicode Consortium Name and Trademark Usage Policy</a> (“Trademark Policy”) are incorporated herein by reference and you agree to abide by the provisions of the Trademark Policy, which may be changed from time to time in the sole discretion of Unicode, Inc.</li>
<li><a href="https://www.unicode.org/policies/logo_policy.html">The Unicode Consortium Name and Trademark Usage Policy</a> (“Trademark Policy”) are incorporated herein by reference and you agree to abide by the provisions of the Trademark Policy, which may be changed from time to time in the sole discretion of Unicode, Inc.</li>
<li>All third party trademarks referenced herein are the property of their respective owners.</li>
</ol>
</li>
@ -270,15 +270,15 @@ <h1>Unicode® Copyright and Terms of Use</h1>
<center>
<table cellspacing="0" cellpadding="0" border="0" id="table2">
<tr>
<td><a href="http://www.unicode.org/copyright.html">
<img src="http://www.unicode.org/img/hb_notice.gif"
<td><a href="https://www.unicode.org/copyright.html">
<img src="https://www.unicode.org/img/hb_notice.gif"
border="0" alt="Access to Copyright and terms of use"
width="216" height="50"></a></td>
</tr>
</table>
<script language="Javascript" type="text/javascript"
src="http://www.unicode.org/webscripts/lastModified.js">
src="https://www.unicode.org/webscripts/lastModified.js">
</script>
</center>

View file

@ -32,18 +32,7 @@
### Code:
set -o nounset
die () # write error to stderr and exit
{
[ $# -gt 0 ] && echo "$PN: $@" >&2
exit 1
}
PN=${0##*/} # basename of script
PD=${0%/*}
[ "$PD" = "$0" ] && PD=. # if PATH includes PWD
source "${0%/*}/emacs-shell-lib"
## This should be the admin directory.
cd $PD || exit
@ -102,10 +91,7 @@ done
[ "$basegen" ] || die "internal error"
tempfile=/tmp/$PN.$$
trap 'rm -f $tempfile 2> /dev/null' EXIT
tempfile="$(emacs_mktemp)"
while getopts ":hcfqA:CL" option ; do
case $option in
@ -312,5 +298,3 @@ commit "loaddefs" $modified || die "commit error"
exit 0
### update_autogen ends here

View file

@ -36,15 +36,7 @@
### Code:
set -o nounset
die () # write error to stderr and exit
{
[ $# -gt 0 ] && echo "$PN: $@" >&2
exit 1
}
PN=${0##*/} # basename of script
source "${0%/*}/emacs-shell-lib"
usage ()
{

View file

@ -1171,6 +1171,13 @@ if test "$emacs_cv_clang" = yes; then
gl_WARN_ADD([-Wno-tautological-constant-out-of-range-compare])
fi
# Suppress deprecation warnings from using sprintf variants,
# starting with Xcode 14.1 on macOS 13.
# These warnings are false alarms, as Emacs usage of sprintf is safe.
if test $opsys = darwin; then
gl_WARN_ADD([-Wno-deprecated-declarations])
fi
# Use a slightly smaller set of warning options for lib/.
nw=
nw="$nw -Wunused-macros"
@ -6771,6 +6778,7 @@ if test -f "$srcdir/$opt_makefile.in"; then
dnl Again, it's best not to use a variable. Though you can add
dnl ", [], [opt_makefile='$opt_makefile']" and it should work.
AC_CONFIG_FILES([test/Makefile])
AC_CONFIG_FILES([test/manual/noverlay/Makefile])
fi
opt_makefile=test/infra/Makefile
if test -f "$srcdir/$opt_makefile.in"; then

View file

@ -1356,7 +1356,7 @@
* dired.texi (Dired Deletion, Marks vs Flags): Document Emacs 24.3
changes to the mark and unmark commands.
(Comparison in Dired): Document chages to dired-diff. Remove M-=,
(Comparison in Dired): Document changes to dired-diff. Remove M-=,
which is no longer bound to dired-backup-diff.
2012-10-23 Bastien Guerry <bzg@gnu.org>
@ -2711,7 +2711,7 @@
of list-faces-display here, from Standard Faces node.
Note special role of `default' background.
(Standard Faces): Note special role of `default' background.
Note that region face may be taken fom GTK. Add xref to Text Display.
Note that region face may be taken from GTK. Add xref to Text Display.
(Text Scale): Rename from "Temporary Face Changes".
Callers changed. Don't bother documenting variable-pitch-mode.
(Font Lock): Copyedits. Remove font-lock-maximum-size.

View file

@ -537,10 +537,13 @@ C/C++ files this is usually the C compiler. Flymake can also use
build tools such as @code{make} for checking complicated projects.
To enable Flymake mode, type @kbd{M-x flymake-mode}. You can jump
to the errors that it finds by using @kbd{M-x flymake-goto-next-error}
and @kbd{M-x flymake-goto-prev-error}. To display any error messages
associated with the current line, type @kbd{M-x
flymake-display-err-menu-for-current-line}.
to the errors that it finds by using @w{@kbd{M-x
flymake-goto-next-error}} and @w{@kbd{M-x flymake-goto-prev-error}}.
To display a detailed overview of the diagnostics for the current
buffer, use the command @w{@kbd{M-x flymake-show-buffer-diagnostics}};
to display a similar overview of diagnostics for the entire project
(@pxref{Projects}), use @w{@kbd{M-x
flymake-show-project-diagnostics}}.
For more details about using Flymake,
@ifnottex

View file

@ -667,6 +667,16 @@ type @kbd{M-x disable-theme}.
the @file{*Custom Themes*} buffer; or type @kbd{M-x describe-theme}
anywhere in Emacs and enter the theme name.
@findex theme-choose-variant
Some themes have variants (most often just two: light and dark). You
can switch to another variant using @kbd{M-x theme-choose-variant}.
If the currently active theme has only one other variant, it will be
selected; if there are more variants, the command will prompt you
which one to switch to.
Note that @code{theme-choose-variant} only works if a single theme
is active.
@node Creating Custom Themes
@subsection Creating Custom Themes
@cindex custom themes, creating
@ -795,12 +805,12 @@ C-h v fill-column @key{RET}
displays something like this:
@example
fill-column is a variable defined in C source code.
fill-column is a variable defined in @quoteleft{}C source code@quoteright{}.
Its value is 70
Automatically becomes buffer-local when set.
This variable is safe as a file local variable if its value
satisfies the predicate integerp.
satisfies the predicate @quoteleft{}integerp@quoteright{}.
Probably introduced at or before Emacs version 18.
Documentation:
@ -1261,7 +1271,7 @@ mode: my-new
disable a minor mode in a local variables list, use the @code{eval}
keyword with a Lisp expression that runs the mode command
(@pxref{Minor Modes}). For example, the following local variables
list enables ElDoc mode (@pxref{Lisp Doc}) by calling
list enables ElDoc mode (@pxref{Programming Language Doc}) by calling
@code{eldoc-mode} with no argument (calling it with an argument of 1
would do the same), and disables Font Lock mode (@pxref{Font Lock}) by
calling @code{font-lock-mode} with an argument of @minus{}1.
@ -1649,7 +1659,7 @@ events.
or lower case; @acronym{ASCII} or non-@acronym{ASCII}) are reserved
for users. Emacs itself will never bind those key sequences, and
Emacs extensions should avoid binding them. In other words, users can
bind key sequences like @kbd{C-c a} or @kbd{C-c ç} and rely on these
bind key sequences like @kbd{C-c a} or @kbd{C-c @,{c}} and rely on these
never being shadowed by other Emacs bindings.
@node Prefix Keymaps
@ -2811,6 +2821,24 @@ strings incorrectly. You should then avoid adding Emacs Lisp code
that modifies the coding system in other ways, such as calls to
@code{set-language-environment}.
An alternative to using non-@acronym{ASCII} characters directly is
to use one of the character escape syntaxes described in
@pxref{General Escape Syntax,,, elisp, The Emacs Lisp Reference
Manual}, as they allow all Unicode codepoints to be specified using
only @acronym{ASCII} characters.
To bind non-@acronym{ASCII} keys, you must use a vector (@pxref{Init
Rebinding}). The string syntax cannot be used, since the
non-@acronym{ASCII} characters will be interpreted as meta keys. For
instance:
@example
(global-set-key [?@var{char}] 'some-function)
@end example
@noindent
Type @kbd{C-q}, followed by the key you want to bind, to insert @var{char}.
@node Early Init File
@subsection The Early Init File
@cindex early init file

View file

@ -807,7 +807,7 @@ should create non-existent directories in @var{new}.
The option @code{dired-create-destination-dirs-on-trailing-dirsep},
when set in addition to @code{dired-create-destination-dirs}, controls
wether a trailing directory separator at the destination is treated
whether a trailing directory separator at the destination is treated
specially. In that case, when renaming a directory @samp{old} to
@samp{new/} and no directory @samp{new} exists already, it will be
created and @samp{old} is moved into the newly created directory.

View file

@ -270,7 +270,7 @@ either at the top or bottom of the window depending on the scroll
direction. By default, @code{scroll-conservatively} is@tie{}0, which
means to always center point in the window.
This said, in minibuffer windows, scrolling is always conservative by
default because @code{scroll-minibuffer-conservatively} is non-nil,
default because @code{scroll-minibuffer-conservatively} is non-@code{nil},
which takes precedence over @code{scroll-conservatively}.
@vindex scroll-step

View file

@ -718,7 +718,7 @@ Documentation Lookup
* Info Lookup:: Looking up library functions and commands in Info files.
* Man Page:: Looking up man pages of library functions and commands.
* Lisp Doc:: Looking up Emacs Lisp functions, etc.
* Programming Language Doc:: Looking up program functions, variables, etc.
C and Related Modes

View file

@ -108,7 +108,7 @@ You can create such a file with the @command{xmlbmessage} tool.
@cindex crashes, Haiku
@cindex haiku debugger
@vindex haiku-debug-on-fatal-error
If the variable @code{haiku-debug-on-fatal-error} is non-nil, Emacs
If the variable @code{haiku-debug-on-fatal-error} is non-@code{nil}, Emacs
will launch the system debugger when a fatal signal is received. It
defaults to @code{t}. If GDB cannot be used on your system, please
attach the report generated by the system debugger when reporting a

View file

@ -570,8 +570,8 @@ change the variable @code{select-enable-clipboard} to @code{nil}.
instance, a web browser will usually let you choose ``Copy Image'' on
images, and this image will be put on the clipboard. On capable
platforms, Emacs can yank these objects with the @code{yank-media}
command---but only in modes that have support for it (@w{@pxref{Yanking
Media,,, elisp, The Emacs Lisp Reference Manual}}).
command---but only in modes that have support for it (@pxref{Yanking
Media,,, elisp, The Emacs Lisp Reference Manual}).
@cindex clipboard manager
@vindex x-select-enable-clipboard-manager

View file

@ -159,7 +159,7 @@ dialogue on quitting.
@vindex ns-auto-hide-menu-bar
@item ns-auto-hide-menu-bar
This variable specifies whether the macOS menu bar is hidden when an
Emacs frame is selected. If non-nil the menu bar is not shown unless
Emacs frame is selected. If non-@code{nil} the menu bar is not shown unless
the mouse pointer is moved near to the top of the screen.
@vindex ns-use-native-fullscreen
@ -178,14 +178,14 @@ These variables only apply to macOS 10.7 (Lion) and above.
@item ns-use-mwheel-acceleration
This variable controls whether Emacs ignores the system mousewheel
acceleration. When nil each `click' of the mousewheel will correspond
exactly with one mousewheel event. When non-nil, the default, each
exactly with one mousewheel event. When non-@code{nil}, the default, each
`click' may correspond with more than one mousewheel event, depending
on the user's input.
@vindex ns-use-mwheel-momentum
@item ns-use-mwheel-momentum
This variable controls whether Emacs ignores the system `momentum'
when scrolling using a trackpad. When non-nil, the default, scrolling
when scrolling using a trackpad. When non-@code{nil}, the default, scrolling
rapidly may result in the buffer continuing to scroll for a short
while after the user has lifted their fingers off the trackpad.

View file

@ -4,6 +4,8 @@
@c See file emacs.texi for copying conditions.
@node Maintaining
@chapter Maintaining Large Programs
@cindex maintaining large programs
@cindex large programming projects, maintaining
This chapter describes Emacs features for maintaining medium- to
large-size programs and packages. These features include:
@ -1830,6 +1832,8 @@ directory. @xref{Top,Eshell,Eshell, eshell, Eshell: The Emacs Shell}.
@item C-x p b
Switch to another buffer belonging to the current project
(@code{project-switch-to-buffer}).
@item C-x p C-b
List the project buffers (@code{project-list-buffers}).
@item C-x p k
Kill all live buffers that belong to the current project
(@code{project-kill-buffers}).
@ -1845,6 +1849,11 @@ switch between buffers that belong to the current project by prompting
for a buffer to switch and considering only the current project's
buffers as candidates for completion.
@findex project-list-buffers
Like the command @code{list-buffers} (@pxref{List Buffers}), the
command @kbd{C-x p C-b} (@code{project-list-buffers}) displays a list
of existing buffers, but only belonging to the current project.
@findex project-kill-buffers
@vindex project-kill-buffer-conditions
@vindex project-kill-buffers-display-buffer-list
@ -2094,6 +2103,13 @@ definitions of symbols. (One disadvantage of this kind of backend is
that it only knows about subunits that were loaded into the
interpreter.)
@item
If Eglot is activated for the current buffer's project
(@pxref{Projects}) and the current buffer's major mode, Eglot consults
an external language server program and provides the data supplied by
the server regarding the definitions of the identifiers in the
project. @xref{Eglot Features,,, eglot, Eglot: The Emacs LSP Client}.
@item
An external program can extract references by scanning the relevant
files, and build a database of these references. A backend can then
@ -2302,7 +2318,9 @@ Display the reference on the current line in the other window
@item r @var{pattern} @key{RET} @var{replacement} @key{RET}
Perform interactive query-replace on references that match
@var{pattern} (@code{xref-query-replace-in-results}), replacing
the match with @var{replacement}. @xref{Identifier Search}.
the match with @var{replacement}. This command can only be used in
@file{*xref*} buffers that show all the matches for an identifier in
all the relevant files. @xref{Identifier Search}.
@item g
@findex xref-revert-buffer
@ -2336,7 +2354,8 @@ them.
@item M-?
Find all the references for the identifier at point.
@item M-x xref-query-replace-in-results @key{RET} @var{replacement} @key{RET}
@item r
@itemx M-x xref-query-replace-in-results @key{RET} @var{replacement} @key{RET}
@itemx C-u M-x xref-query-replace-in-results @key{RET} @var{regexp} @key{RET} @var{replacement} @key{RET}
Interactively replace @var{regexp} with @var{replacement} in the names
of all the identifiers shown in the @file{*xref*} buffer.
@ -2382,16 +2401,18 @@ shown. The default value is @code{nil}, which just shows the results
in the @file{*xref*} buffer, but doesn't select any of them.
@findex xref-query-replace-in-results
@kbd{M-x xref-query-replace-in-results} reads a @var{replacement}
@kbd{r} (@code{xref-query-replace-in-results}) reads a @var{replacement}
string, just like ordinary @kbd{M-x query-replace-regexp}. It then
renames the identifiers shown in the @file{*xref*} buffer in all the
places in all the files where these identifiers are referenced, such
that their new name is @var{replacement}. This is useful when you
rename your identifiers as part of refactoring. This command should
be invoked in the @file{*xref*} buffer generated by @kbd{M-?}. With a
prefix argument, the command also prompts for a regexp to match
identifier names, and renames that regexp in the names of the matching
identifiers with @var{replacement}.
be invoked in the @file{*xref*} buffer generated by @kbd{M-?}. By
default, the command replaces the entire name of each identifier with
@var{replacement}, but if invoked with a prefix argument, the command
prompts for a regexp to match identifier names, and replaces only the
matches of that regexp in the names of the identifiers with
@var{replacement}.
@findex xref-find-references-and-replace
@kbd{M-x xref-find-references-and-replace} works similarly to
@ -3284,7 +3305,7 @@ according to @code{bug-reference-setup-from-mail-alist},
and @code{bug-reference-maybe-setup-from-irc} which does the setup
according to @code{bug-reference-setup-from-irc-alist}.
@end itemize
A setup function should return non-nil if it could setup bug-reference
A setup function should return non-@code{nil} if it could setup bug-reference
mode which is the case if the last thing the function does is calling
one of the helper functions above.

View file

@ -50,10 +50,10 @@ Ring}. Additionally, some commands will have an effect even on an
inactive region (for example @dfn{upcase-region}). You can also
reactivate the region with commands like @kbd{C-x C-x}.
The above default behavior is known as Transient Mark mode.
Disabling Transient Mark mode switches Emacs to an alternative
behavior, in which the region is usually not highlighted.
@xref{Disabled Transient Mark}.
The above behavior, which is the default in interactive sessions, is
known as Transient Mark mode. Disabling Transient Mark mode switches
Emacs to an alternative behavior, in which the region is usually not
highlighted. @xref{Disabled Transient Mark}.
@vindex highlight-nonselected-windows
Setting the mark in one buffer has no effect on the marks in other
@ -455,10 +455,11 @@ motion keys will extend the region set by shift-selection.
The default behavior of the mark and region, in which setting the
mark activates it and highlights the region, is called Transient Mark
mode. This is a minor mode that is enabled by default. It can be
toggled with @kbd{M-x transient-mark-mode}, or with the
@samp{Highlight Active Region} menu item in the @samp{Options} menu.
Turning it off switches Emacs to an alternative mode of operation:
mode. This is a minor mode that is enabled by default in interactive
sessions. It can be toggled with @kbd{M-x transient-mark-mode}, or
with the @samp{Highlight Active Region} menu item in the
@samp{Options} menu. Turning it off switches Emacs to an alternative
mode of operation:
@itemize @bullet
@item

View file

@ -1540,7 +1540,7 @@ color is supported. Therefore, Emacs provides an option
@code{comint-terminfo-terminal} to let you choose a terminal with more
advanced features, as defined in your system's terminfo database.
Emacs will use this option as the value for @env{TERM} so long as
@code{system-uses-terminfo} is non-nil.
@code{system-uses-terminfo} is non-@code{nil}.
Both @code{comint-terminfo-terminal} and @code{system-uses-terminfo}
can be declared as connection-local variables to adjust these options

View file

@ -127,7 +127,7 @@ see which mode is actually being entered.
Modes}). For example, you can put the following lines in your init
file to enable Flyspell minor mode in all text-based major modes
(@pxref{Spelling}), and ElDoc minor mode in Emacs Lisp mode
(@pxref{Lisp Doc}):
(@pxref{Programming Language Doc}):
@example
(add-hook 'text-mode-hook 'flyspell-mode)

View file

@ -49,6 +49,7 @@ Manual}.
* Package Statuses:: Which statuses a package can have.
* Package Installation:: Options for package installation.
* Package Files:: Where packages are installed.
* Fetching Package Sources:: Managing packages directly from source.
@end menu
@node Package Menu
@ -530,3 +531,73 @@ are laid out in the same way as in @code{package-user-dir}.
corresponding package subdirectory. This only works for packages
installed in @code{package-user-dir}; if told to act on a package in a
system-wide package directory, the deletion command signals an error.
@node Fetching Package Sources
@section Fetching Package Sources
@cindex package development source
@cindex upstream source, for packages
@cindex git source of package @c "git" is not technically correct
By default @code{package-install} downloads a Tarball from a package
archive and installs its files. This might be inadequate if you wish
to hack on the package sources and share your changes with others. In
that case, you may prefer to directly fetch and work on the upstream
source. This often makes it easier to develop patches and report
bugs.
@findex package-vc-install
@findex package-vc-checkout
One way to do this is to use @code{package-vc-install}, to fetch the
source code for a package directly from source. The command will also
automatically ensure that all files are byte-compiled and auto-loaded,
just like with a regular package. Packages installed this way behave
just like any other package. You can update them using
@code{package-update} or @code{package-update-all} and delete them
again using @code{package-delete}. They are even displayed in the
regular package listing. If you just wish to clone the source of a
package, without adding it to the package list, use
@code{package-vc-checkout}.
@vindex package-vc-selected-packages
@findex package-vc-install-selected-packages
An alternative way to use @code{package-vc-install} is via the
@code{package-vc-selected-packages} user option. This is an alist of
packages to install, where each key is a package name and the value is
@code{nil}, indicating that any revision is to install, a string,
indicating a specific revision or a package specification plist. The
side effect of setting the user option is to install the package, but
the process can also be manually triggered using the function
@code{package-vc-install-selected-packages}. Here is an example of
how the user option:
@example
@group
(setopt package-vc-selected-packages
'((modus-themes . "0f39eb3fd9") ;specific revision
(auctex . nil) ;any revision
(foo ;a package specification
:url "https://git.sv.gnu.org/r/foo-mode.git"
:branch "trunk")))
@end group
@end example
@findex package-report-bug
@findex package-vc-prepare-patch
With the source checkout, you might want to reproduce a bug against
the current development head or implement a new feature to scratch an
itch. If the package metadata indicates how to contact the
maintainer, you can use the command @code{package-report-bug} to
report a bug via Email. This report will include all the user options
that you have customized. If you have made a change you wish to share
with the maintainers, first commit your changes then use the command
@code{package-vc-prepare-patch} to share it. @xref{Preparing Patches}.
@findex package-vc-install-from-checkout
@findex package-vc-rebuild
If you maintain your own packages you might want to use a local
checkout instead of cloning a remote repository. You can do this by
using @code{package-vc-install-from-checkout}, which creates a symbolic link
from the package directory (@pxref{Package Files}) to your checkout
and initializes the code. Note that you might have to use
@code{package-vc-refresh} to repeat the initialization and update the
autoloads.

View file

@ -287,6 +287,13 @@ they occur in the buffer; if you want alphabetic sorting, use the
symbol @code{imenu--sort-by-name} as the value. You can also
define your own comparison function by writing Lisp code.
If Eglot is activated for the current buffer's project
(@pxref{Projects}) and the current buffer's major mode, Eglot provides
its own facility for producing the buffer's index based on the
analysis of the program source by the language-server which manages
the current buffer. @xref{Eglot Features,,, eglot, Eglot: The Emacs
LSP Client}.
Imenu provides the information to guide Which Function mode
@ifnottex
(@pxref{Which Function}).
@ -985,7 +992,7 @@ Set comment column (@code{comment-set-column}).
@item @kbd{C-M-j}
@itemx @kbd{M-j}
Like @kbd{@key{RET}} followed by inserting and aligning a comment
(@code{comment-indent-new-line}). @xref{Multi-Line Comments}.
(@code{default-indent-new-line}). @xref{Multi-Line Comments}.
@item @kbd{M-x comment-region}
@itemx @kbd{C-c C-c} (in C-like modes)
Add comment delimiters to all the lines in the region.
@ -1080,10 +1087,10 @@ the brace rather than at @code{comment-column}. For full details see
@kindex C-M-j
@kindex M-j
@cindex blank lines in programs
@findex comment-indent-new-line
@findex default-indent-new-line
@vindex comment-multi-line
If you are typing a comment and wish to continue it to another line,
type @kbd{M-j} or @kbd{C-M-j} (@code{comment-indent-new-line}). This
type @kbd{M-j} or @kbd{C-M-j} (@code{default-indent-new-line}). This
breaks the current line, and inserts the necessary comment delimiters
and indentation to continue the comment.
@ -1190,7 +1197,7 @@ use in your program.
@menu
* Info Lookup:: Looking up library functions and commands in Info files.
* Man Page:: Looking up man pages of library functions and commands.
* Lisp Doc:: Looking up Emacs Lisp functions, etc.
* Programming Language Doc:: Looking up program functions, variables, etc.
@end menu
@node Info Lookup
@ -1291,8 +1298,10 @@ WoMan Manual}.
the WoMan Info manual, which is distributed with Emacs.
@end ifnotinfo
@node Lisp Doc
@subsection Emacs Lisp Documentation Lookup
@node Programming Language Doc
@subsection Programming Language Documentation Lookup
@cindex documentation for program symbols
@cindex program functions and variables, documentation lookup
When editing Emacs Lisp code, you can use the commands @kbd{C-h f}
(@code{describe-function}) and @kbd{C-h v} (@code{describe-variable})
@ -1300,43 +1309,120 @@ to view the built-in documentation for the Lisp functions and
variables that you want to use. @xref{Name Help}.
@cindex ElDoc mode
@cindex at-point documentation for program symbols
@findex eldoc-mode
@findex global-eldoc-mode
ElDoc is a buffer-local minor mode that helps with looking up Lisp
documentation. When it is enabled, the echo area displays some useful
information whenever there is a Lisp function or variable at point;
for a function, it shows the argument list, and for a variable it
shows the first line of the variable's documentation string. To
toggle ElDoc mode, type @kbd{M-x eldoc-mode}. There's also a Global
ElDoc mode, which is turned on by default, and affects buffers whose
major mode sets the variables described below. Use @w{@kbd{M-x
global-eldoc-mode}} to turn it off globally.
ElDoc@footnote{
The name ``ElDoc'' is a historical accident: this mode started by
supporting Emacs Lisp buffers.
} is a buffer-local minor mode that helps with looking up
documentation of symbols (functions, methods, classes, variables,
etc.) in your program. When this mode is enabled, the echo area
displays useful information whenever there is a documented symbol at
point. For example, in buffers under the Emacs Lisp mode, it shows
the argument list of a function at point, and for a Lisp variable it
shows the first line of the variable's documentation string.
@vindex eldoc-documentation-strategy
@vindex eldoc-documentation-functions
These variables can be used to configure ElDoc mode:
To toggle ElDoc mode, type @kbd{M-x eldoc-mode}. There's also a
Global ElDoc mode, which is turned on by default, and turns on the
ElDoc mode in buffers whose major mode sets the variables described
below. Use @w{@kbd{M-x global-eldoc-mode}} to turn it off globally.
Various major modes configure the Global ElDoc mode to use their
documentation functions. Examples include Emacs Lisp mode, Python
mode, and Cfengine mode. In addition, Emacs features that provide
support for several major modes configure ElDoc to use their
facilities for retrieving the documentation. Examples include Eglot
(@pxref{Eglot Features,,, eglot, Eglot: The Emacs LSP Client}), which
provides documentation based on information from language servers;
Semantic's Idle Summary mode (@pxref{Idle Summary Mode,,, semantic,
Semantic Manual}); and Flymake, which uses ElDoc to show diagnostics
at point (@pxref{Finding diagnostics,,, flymake, GNU Flymake manual}).
The ElDoc mode works by scheduling the display of the available
documentation for the symbol at point after Emacs has been idle for
some short time. This avoids annoying flickering of documentation
messages in the echo area or the mode line when you type quickly and
without delay.
@findex eldoc-print-current-symbol-info
You can also trigger the display of documentation for a symbol at
point by using the command @kbd{M-x eldoc-print-current-symbol-info}.
The following variables can be used to configure ElDoc mode:
@vtable @code
@item eldoc-idle-delay
The value of this user option controls the amount of idle time before
the at-point documentation is displayed. It should be set to the
number of seconds to wait; the value of zero means to display without
any delay. The default is 0.5 sec.
@item eldoc-print-after-edit
If this user option is non-@code{nil}, ElDoc will show documentation
only after some editing command, like inserting or deleting some
text. This comes in handy if you want Emacs to display documentation
only about symbols that you type, but not about symbols that are
already in the buffer (so just reading the source code will not show
documentation). The default value is @code{nil}. If you change the
value, you need to toggle @code{eldoc-mode} off and on again.
@item eldoc-echo-area-use-multiline-p
This user option controls whether and how to truncate documentation
text if it is longer than the echo-area can display as a single screen
line. If the value is a positive number, it specifies the number of
screen lines that ElDoc is allowed to display in the echo area without
truncating the documentation. A positive integer specifies the
absolute maximum number of screen lines to use; a floating-point
number specifies the number of screen lines as a fraction of the
frame's height. The value of @code{t} means never truncate the
documentation (the echo-area will be resized up to the height allowed
by @code{max-mini-window-height}, @pxref{Minibuffer Edit}), whereas
the value of @code{nil} means truncate if the documentation is longer
than a single screen line. Finally, the special value
@code{truncate-sym-name-if-fit} (the default) means to truncate the
part of the documentation that represents a symbol's name if doing
that will allow the documentation to fit on a single screen line.
@item eldoc-echo-area-display-truncation-message
If non-@code{nil} (the default), and documentation shown in the echo
area is truncated because it's too long, follow the documentation by
instructions about how to view the complete documentation text. If
@code{nil}, just indicate with @samp{@dots{}} that the documentation
was truncated.
@findex eldoc-doc-buffer
@item eldoc-echo-area-prefer-doc-buffer
If the value of this user option is @code{t}, ElDoc will not show the
documentation in the echo area if the ElDoc buffer with the
documentation is already displayed in some window. (You can use the
command @kbd{M-x eldoc-doc-buffer} any time to show the ElDoc buffer.)
If the value of this option is the symbol @code{maybe}, the
documentation will not be displayed in the echo area if the ElDoc
buffer is shown in some window, and the documentation text has to be
truncated if displayed in the echo area. Finally, the value of
@code{nil} (the default) means always show the documentation in the
echo area.
@table @code
@item eldoc-documentation-strategy
This variable holds the function which is used to retrieve
documentation for the item at point from the functions in the hook
@code{eldoc-documentation-functions}. By default,
@code{eldoc-documentation-strategy} returns the first documentation
string produced by the @code{eldoc-documentation-functions} hook, but
it may be customized to compose those functions' results in other
ways.
This customizable variable's value is the function which is used to
retrieve and display documentation for the symbol at point. The
documentation is produced by the functions in the hook
@code{eldoc-documentation-functions}. The default value of
@code{eldoc-documentation-strategy} specifies that ElDoc should
display the first documentation text produced by functions in the
@code{eldoc-documentation-functions} hook, but you can customize
@code{eldoc-documentation-strategy} to work in other ways, such as
displaying all of the documentation texts concatenated together.
@item eldoc-documentation-functions
This abnormal hook holds documentation functions. It acts as a
collection of backends for ElDoc. This is what modes should use to
register their documentation functions with ElDoc.
@vindex eldoc-display-truncation-message
@item eldoc-display-truncation-message
If non-@code{nil} (the default), display a verbose message about how
to view a complete documentation (if it has been truncated in the echo
area). If @code{nil}, just mark truncated messages with @samp{...}.
@end table
This abnormal hook's value is a list of functions that can produce
documentation for the symbol at point as appropriate for the current
buffer's major-mode. These functions act as a collection of backends
for ElDoc. Major mode register their documentation lookup functions
with ElDoc by adding their functions to the buffer-local value of this
variable.
@end vtable
@node Hideshow
@section Hideshow minor mode
@ -1365,7 +1451,7 @@ count as blocks.
@findex hs-show-region
@findex hs-hide-level
@findex hs-toggle-hiding
@findex hs-mouse-toggle-hiding
@findex hs-toggle-hiding
@kindex C-c @@ C-h
@kindex C-c @@ C-s
@kindex C-c @@ C-c
@ -1382,9 +1468,8 @@ Hide the current block (@code{hs-hide-block}).
Show the current block (@code{hs-show-block}).
@item C-c @@ C-c
@itemx C-c @@ C-e
@itemx S-mouse-2
Either hide or show the current block (@code{hs-toggle-hiding}).
@item S-mouse-2
Toggle hiding for the block you click on (@code{hs-mouse-toggle-hiding}).
@item C-c @@ C-M-h
@itemx C-c @@ C-t
Hide all top-level blocks (@code{hs-hide-all}).
@ -1422,27 +1507,45 @@ nor comments). The default value is @code{code}.
Completion is normally done in the minibuffer (@pxref{Completion}),
but you can also complete symbol names in ordinary Emacs buffers.
@cindex tags-based completion
@kindex M-TAB
@kindex C-M-i
In programming language modes, type @kbd{C-M-i} or @kbd{M-@key{TAB}}
to complete the partial symbol before point. On graphical displays,
the @kbd{M-@key{TAB}} key is usually reserved by the window manager
for switching graphical windows, so you should type @kbd{C-M-i} or
@kbd{@key{ESC} @key{TAB}} instead.
@cindex tags-based completion
@findex completion-at-point@r{, in programming language modes}
@cindex Lisp symbol completion
@cindex completion (Lisp symbols)
In most programming language modes, @kbd{C-M-i} (or
@kbd{M-@key{TAB}}) invokes the command @code{completion-at-point},
which generates its completion list in a flexible way. If Semantic
mode is enabled, it tries to use the Semantic parser data for
completion (@pxref{Semantic}). If Semantic mode is not enabled or
fails at performing completion, it tries to complete using the
selected tags table (@pxref{Tags Tables}). If in Emacs Lisp mode, it
performs completion using the function, variable, or property names
defined in the current Emacs session.
@kbd{M-@key{TAB}}@footnote{
On graphical displays, the @kbd{M-@key{TAB}} key is usually reserved
by the window manager for switching graphical windows, so you should
type @kbd{C-M-i} or @kbd{@key{ESC} @key{TAB}} instead.
}) invokes the command @code{completion-at-point}, which generates the
list of possible completions for the symbol at point. This command
uses the available support facilities to come up with the completion
candidates:
@itemize @bullet
@item
If Eglot is activated for the current buffer's project
(@pxref{Projects}) and the current buffer's major mode, the command
tries to use the corresponding language server for producing the list
of completion candidates. @xref{Eglot Features,,, eglot, Eglot: The
Emacs LSP Client}.
@item
If Semantic mode is enabled (@pxref{Semantic}), the command tries to
use the Semantic parser data for completion.
@item
If Semantic mode is not enabled or fails at performing completion, the
command tries to complete using the selected tags table (@pxref{Tags
Tables}); you need to visit the tags table with @w{@kbd{M-x
visit-tags-table}} for that to work.
@item
In Emacs Lisp mode, the command performs completion using the
function, variable, or property names defined in the current Emacs
session.
@end itemize
In all other respects, in-buffer symbol completion behaves like
minibuffer completion. For instance, if Emacs cannot complete to

View file

@ -1409,6 +1409,14 @@ might use rot13 to hide important plot points.
rot13-other-window}. This displays the current buffer in another window
which applies the code when displaying the text.
@findex rot13-region
If you are only interested in a region, the command @kbd{M-x
rot13-region} might be preferable. This will encrypt/decrypt the
active region in-place. If the buffer is read-only, it will attempt
to display the plain text in the echo area. If the text is too long
for the echo area, the command will pop up a temporary buffer with the
encrypted/decrypted text.
@node Movemail
@section @command{movemail} program
@cindex @command{movemail} program

View file

@ -1348,18 +1348,19 @@ tailor them to your needs.
@kindex SPC @r{(Incremental search)}
@findex isearch-toggle-lax-whitespace
@vindex search-whitespace-regexp
By default, search commands perform @dfn{lax space matching}:
each space, or sequence of spaces, matches any sequence of one or more
whitespace characters in the text. (Incremental regexp search has a
separate default; see @ref{Regexp Search}.) Hence, @w{@samp{foo bar}}
matches @w{@samp{foo bar}}, @w{@samp{foo@ @ bar}},
@w{@samp{foo@ @ @ bar}}, and so on (but not @samp{foobar}). More
precisely, Emacs matches each sequence of space characters in the
search string to a regular expression specified by the variable
@code{search-whitespace-regexp}. For example, to make spaces match
sequences of newlines as well as spaces, set it to the regular expression
@samp{[[:space:]\n]+}. The default value of this variable considers
any sequence of spaces and tab characters as whitespace.
By default, search commands perform @dfn{lax space matching}: each
space, or sequence of spaces, matches any sequence of one or more
whitespace characters in the text. More precisely, Emacs matches each
sequence of space characters in the search string to a regular
expression specified by the user option
@code{search-whitespace-regexp}. The default value of this option
considers any sequence of spaces and tab characters as whitespace.
Hence, @w{@samp{foo bar}} matches @w{@samp{foo bar}}, @w{@samp{foo@ @
bar}}, @w{@samp{foo@ @ @ bar}}, and so on (but not @samp{foobar}). If
you want to make spaces match sequences of newlines as well as spaces
and tabs, customize the option to make its value be the regular
expression @samp{[ \t\n]+}. (The default behavior of the
incremental regexp search is different; see @ref{Regexp Search}.)
If you want whitespace characters to match exactly, you can turn lax
space matching off by typing @kbd{M-s @key{SPC}}

View file

@ -460,7 +460,7 @@ variables.
@vindex electric-quote-replace-double
You can also set the option @code{electric-quote-replace-double} to
a non-@code{nil} value. Then, typing @kbd{"} insert an appropriate
a non-@code{nil} value. Then, typing @kbd{"} inserts an appropriate
curved double quote depending on context: @t{“} at the beginning of
the buffer or after a line break, whitespace, opening parenthesis, or
quote character, and @t{”} otherwise.
@ -998,15 +998,14 @@ major mode's special commands. (The variable
@vindex outline-minor-mode-use-buttons
If @code{outline-minor-mode-use-buttons} is non-@code{nil}, Outline
minor mode will use buttons (at the start of the header lines) in
addition to ellipsis to show that a section is hidden. Using
@kbd{RET} (or clicking on the button with a mouse) will toggle
displaying the section.
@vindex outline-minor-mode-use-margins
If @code{outline-minor-mode-use-margins} is non-@code{nil}, Outline
minor mode will use the window margins in addition to ellipsis to show
that a section is hidden.
minor mode will use buttons at the beginning of the heading lines, in
addition to ellipsis, to show that a section is hidden. Clicking the
mouse on the button toggles display of the section. If the value of
this variable is @code{insert}, the buttons are inserted directly into
the buffer text, so @key{RET} on the button will also toggle display
of the section, like a mouse click does. If the value is
@code{in-margins}, Outline minor mode will use the window margins to
indicate that a section is hidden.
@vindex outline-minor-mode-cycle
If the @code{outline-minor-mode-cycle} user option is

View file

@ -16,6 +16,7 @@
* Revision Tags:: Symbolic names for revisions.
* Version Headers:: Inserting version control headers into working files.
* Editing VC Commands:: Editing the VC shell commands that Emacs will run.
* Preparing Patches:: Preparing and Composing patches from within VC
@end menu
@node Change Logs and VC
@ -282,6 +283,37 @@ type @w{@kbd{C-x v ! C-x v b l}} and then append the names of
additional branches to the end of the @samp{git log} command that VC
is about to run.
@node Preparing Patches
@subsubsection Preparing Patches
@findex vc-prepare-patch
When collaborating on projects it is common to send patches via email,
to share changes. If you wish to do this using VC, you can use the
@code{vc-prepare-patch} command. This will prompt you for the
revisions you wish to share, and which destination email address(es)
to use. The revisions are separated using commas (or whatever was
configured by @var{crm-separator}). The command will then prepare
those revisions using your @abbr{MUA, Mail User Agent} for you to
review and send.
When invoked interactively in a Log View buffer with marked revisions,
these revisions will be used.
@vindex vc-prepare-patches-separately
Depending on the value of the user option
@code{vc-prepare-patches-separately}, @code{vc-prepare-patch} will
generate one or more messages. The default value @code{t} means
prepare and display a message for each revision, one after another. A
value of @code{nil} means to generate a single message with all
patches attached in the body.
@vindex vc-default-patch-addressee
If you expect to contribute patches on a regular basis, you can set
the user option @code{vc-default-patch-addressee} to the address(es)
you wish to use. This will be used as the default value when invoking
@code{vc-prepare-patch}. Project maintainers may consider setting
this as a directory local variable (@pxref{Directory Variables}).
@node Customizing VC
@subsection Customizing VC

View file

@ -474,7 +474,7 @@ Each transform is a list of the form @w{@code{(@var{regexp}
@var{replacement} [@var{uniquify}])}}. @var{regexp} is a regular
expression to match against the file name; if it matches,
@code{replace-match} is used to replace the matching part with
@var{replacement}. If the optional element @var{uniquify} is non-nil,
@var{replacement}. If the optional element @var{uniquify} is non-@code{nil},
the auto-save file name is constructed by concatenating the directory
part of the transformed file name with the buffer's file name in which
all directory separators were changed to @samp{!} to prevent clashes.

View file

@ -427,19 +427,19 @@ It is a permanent local, unaffected by
@end defvar
@defvar buffer-file-number
This buffer-local variable holds the file number and directory device
number of the file visited in the current buffer, or @code{nil} if no
This buffer-local variable holds the inode number and device
identifier of the file visited in the current buffer, or @code{nil} if no
file or a nonexistent file is visited. It is a permanent local,
unaffected by @code{kill-all-local-variables}.
The value is normally a list of the form @code{(@var{filenum}
@var{devnum})}. This pair of numbers uniquely identifies the file among
The value is normally a list of the form @code{(@var{inodenum}
@var{device})}. This tuple uniquely identifies the file among
all files accessible on the system. See the function
@code{file-attributes}, in @ref{File Attributes}, for more information
about them.
If @code{buffer-file-name} is the name of a symbolic link, then both
numbers refer to the recursive target.
@var{inodenum} and @var{device} refer to the recursive target of the link.
@end defvar
@defun get-file-buffer filename

View file

@ -2726,7 +2726,7 @@ coordinates @var{x} and @var{y} in a specified frame or window,
@var{frame-or-window}, which defaults to the selected window.
The coordinates @var{x} and @var{y} are relative to the
text area of the selected window.
If @var{whole} is @code{non-nil}, the @var{x} coordinate is relative
If @var{whole} is non-@code{nil}, the @var{x} coordinate is relative
to the entire window area including scroll bars, margins and fringes.
@end defun

View file

@ -843,6 +843,14 @@ native compilation of that file. In addition, a similar variable
file. If both @code{no-byte-compile} and @code{no-native-compile} are
specified, the former takes precedence.
@cindex native compilation, prevent writing @file{*.eln} files
Sometimes there could be a need to prevent the native compilation
from writing its results, the @file{*.eln} files, into a subdirectory
of @code{user-emacs-directory} (@pxref{Init File}). You can do that
by either changing the value of @code{native-comp-eln-load-path}
(@pxref{Native-Compilation Variables}) or by temporarily pointing the
@env{HOME} environment variable to a non-existing directory.
@menu
* Native-Compilation Functions:: Functions to natively-compile Lisp.
* Native-Compilation Variables:: Variables controlling native compilation.
@ -985,7 +993,7 @@ too late.
While setting this variable disables automatic compilation of Lisp
files, the compiler may still be invoked to install @dfn{trampolines}
if any built-in functions are redefined. However, these trampolines
will not get written to disk.
will not get written to your cache directory.
You can also use the @samp{EMACS_INHIBIT_AUTOMATIC_NATIVE_COMPILATION}
environment variable to disable native compilation.
@ -1069,9 +1077,19 @@ pristine environment, that may not be true for the subprocess.
@end defopt
@defopt native-comp-async-query-on-exit
If this variable's value is non-nil, Emacs will query upon exiting
If this variable's value is non-@code{nil}, Emacs will query upon exiting
whether to exit and kill any asynchronous native-compilation
subprocesses that are still running, thus preventing the corresponding
@file{.eln} files from being written. If the value is @code{nil}, the
default, Emacs will kill these subprocesses without querying.
@end defopt
The variable @code{native-comp-eln-load-path} holds the list of
directories where Emacs looks for the @file{*.eln} files
(@pxref{Library Search}); in that role it is the equivalent of
@code{load-path} used to look for @file{*.el} and @file{*.elc} files.
The directories in this list are also used for writing the
@file{*.eln} files produced by asynchronous native-compilation;
specifically, Emacs will write these files into the first writable
directory in the list. Thus, you can control where native-compilation
stores the results by changing the value of this variable.

View file

@ -1534,7 +1534,7 @@ iterator with @code{iter-next} for anything interesting to happen.
Each call to a generator function produces a @emph{different}
iterator, each with its own state.
@defun iter-next iterator value
@defun iter-next iterator &optional value
Retrieve the next value from @var{iterator}. If there are no more
values to be generated (because @var{iterator}'s generator function
returned), @code{iter-next} signals the @code{iter-end-of-sequence}

View file

@ -1428,12 +1428,32 @@ emacs, The GNU Emacs Manual}.)
be a call to @code{deftheme}, and the last form should be a call to
@code{provide-theme}.
@defmac deftheme theme &optional doc
@defmac deftheme theme &optional doc &rest properties
This macro declares @var{theme} (a symbol) as the name of a Custom
theme. The optional argument @var{doc} should be a string describing
the theme; this is the description shown when the user invokes the
@code{describe-theme} command or types @kbd{?} in the @samp{*Custom
Themes*} buffer.
Themes*} buffer. The remaining arguments @var{properties} are used
pass a property list with theme attributes.
The following attributes are supported:
@table @code
@item :family
A symbol designating what ``family'' a theme belongs to. A
@dfn{family} of themes is a set of similar themes that differ by minor
aspects, such as face colors that are meant for the light vs dark
background of the frame.
@item :kind
A symbol. If a theme is enabled and this property has the value
@code{color-scheme}, then the @code{theme-choose-variant} command will
look for other available themes that belong to the same family in
order to switch the themes. Other values are currently unspecified
and should not be used.
@item :background-mode
A symbol, either @code{light} or @code{dark}. This attribute is
currently unused, but should still be specified.
@end table
Two special theme names are disallowed (using them causes an error):
@code{user} is a dummy theme that stores the user's direct

View file

@ -548,7 +548,7 @@ previous example as follows:
@end example
@end defmac
@defmac dolist-with-progress-reporter (var count [result]) reporter-or-message body@dots{}
@defmac dolist-with-progress-reporter (var list [result]) reporter-or-message body@dots{}
This is another convenience macro that works the same way as @code{dolist}
does, but also reports loop progress using the functions described
above. As in @code{dotimes-with-progress-reporter},
@ -2273,7 +2273,7 @@ complex text shaping requires that for some scripts. When that
happens, characters no longer map in a simple way to display columns,
and display layout decisions with such strings, such as truncating too
wide strings, can be a complex job. This function helps in performing
suvh jobs: it splits up its argument @var{string} into a list of
such jobs: it splits up its argument @var{string} into a list of
substrings, where each substring produces a single grapheme cluster
that should be displayed as a unit. Lisp programs can then use this
list to construct visually-valid substrings of @var{string} which will
@ -2587,7 +2587,7 @@ meaning the foreground color of the face. Omitting the attribute
@code{:color} means to use the foreground color of the face.
@var{style} should be a symbol @code{line} or @code{wave}, meaning to
use a straight or wavy line. Omitting the attribute @code{:style}
means to use a straight line. @var{position}, if non-nil, means to
means to use a straight line. @var{position}, if non-@code{nil}, means to
display the underline at the descent of the text, instead of at the
baseline level. If it is a number, then it specifies the amount of
pixels above the descent to display the underline.
@ -7347,7 +7347,7 @@ Display the next search result in @var{xwidget}. This function will
signal an error if a search query has not been already started in
@var{xwidget} through @code{xwidget-webkit-search}.
If @code{wrap-around} was non-nil when @code{xwidget-webkit-search}
If @code{wrap-around} was non-@code{nil} when @code{xwidget-webkit-search}
was called, then the search will restart from the beginning of the
document when its end is reached.
@end defun
@ -7357,7 +7357,7 @@ Display the previous search result in @var{xwidget}. This function
signals an error if a search query has not been already started in
@var{xwidget} through @code{xwidget-webkit-search}.
If @code{wrap-around} was non-nil when @code{xwidget-webkit-search}
If @code{wrap-around} was non-@code{nil} when @code{xwidget-webkit-search}
was called, then the search will restart from the end of the
document when its beginning is reached.
@end defun

View file

@ -1076,16 +1076,25 @@ current buffer, are saved and restored.
@cindex window configuration (Edebug)
The outside window configuration is saved and restored if
@code{edebug-save-windows} is non-@code{nil} (@pxref{Edebug Options}).
If the value of @code{edebug-save-windows} is a list, only the listed
windows are saved and restored.
The window configuration is not restored on error or quit, but the
outside selected window @emph{is} reselected even on error or quit in
case a @code{save-excursion} is active. If the value of
@code{edebug-save-windows} is a list, only the listed windows are saved
and restored.
case a @code{save-excursion} is active.
The window start and horizontal scrolling of the source code buffer are
not restored, however, so that the display remains coherent within Edebug.
@cindex buffer point changed by Edebug
@cindex edebug overwrites buffer point position
Saving and restoring the outside window configuration can sometimes
change the positions of point in the buffers on which the Lisp program
you are debugging operates, especially if your program moves point.
If this happens and interferes with your debugging, we recommend to
set @code{edebug-save-windows} to @code{nil}
(@pxref{Edebug Options}).
@item
The value of point in each displayed buffer is saved and restored if
@code{edebug-save-displayed-buffer-points} is non-@code{nil}.
@ -1655,10 +1664,16 @@ specify an Edebug form specification.
If this is non-@code{nil}, Edebug saves and restores the window
configuration. That takes some time, so if your program does not care
what happens to the window configurations, it is better to set this
variable to @code{nil}.
variable to @code{nil}. We also recommend to set this to @code{nil}
if the default value causes Edebug to overwrite the positions of point
in buffers that are involved in the program you are debugging, as
result of saving and restoring the window configuration; this could
happen if your program moves point in one or more of those buffers.
Another option to try to customize in this case is
@code{edebug-save-displayed-buffer-points}, described below.
If the value is a list, only the listed windows are saved and
restored.
If the value of @code{edebug-save-windows} is a list, only the listed
windows are saved and restored.
You can use the @kbd{W} command in Edebug to change this variable
interactively. @xref{Edebug Display Update}.

View file

@ -242,7 +242,7 @@ The message is @samp{Cannot determine image type}. @xref{Images}.
@item inhibited-interaction
The message is @samp{User interaction while inhibited}. This error is
signalled when @code{inhibit-interaction} is non-@code{nil} and a user
signaled when @code{inhibit-interaction} is non-@code{nil} and a user
interaction function (like @code{read-from-minibuffer}) is called.
@end table

View file

@ -1253,14 +1253,6 @@ the @samp{smb} method. For all other connection methods, runtime
tests are performed.
@end defun
@defun file-in-directory-p file dir
This function returns @code{t} if @var{file} is a file in directory
@var{dir}, or in a subdirectory of @var{dir}. It also returns
@code{t} if @var{file} and @var{dir} are the same directory. It
compares the truenames of the two directories. If @var{dir} does not
name an existing directory, the return value is @code{nil}.
@end defun
@defun vc-responsible-backend file
This function determines the responsible VC backend of the given
@var{file}. For example, if @file{emacs.c} is a file tracked by Git,
@ -1412,14 +1404,17 @@ The file's inode number (@code{file-attribute-inode-number}),
a nonnegative integer.
@item
The filesystem number of the device that the file is on
@code{file-attribute-device-number}), an integer.
This element and the file's inode number
together give enough information to distinguish any two files on the
system---no two files can have the same values for both of these
numbers.
The filesystem's identifier of the device that the file is on
(@code{file-attribute-device-number}), an integer or a cons cell of
two integers. The latter is sometimes used by remote files, in order
to distinguish remote filesystems from local ones.
@end enumerate
The file's inode and device together give enough information
to distinguish any two files on the system---no two files can have the
same values for both of these attributes. This tuple that uniquely
identifies the file is returned by @code{file-attribute-file-identifier}.
For example, here are the file attributes for @file{files.texi}:
@example
@ -3100,6 +3095,17 @@ is called with one argument (the file or directory) and should return
non-@code{nil} if that directory is the one it is looking for.
@end defun
@cindex parent directory of file
@cindex ancestor directory of file
@cindex file, ancestor directory of
@defun file-in-directory-p file dir
This function returns @code{t} if @var{file} is a file in directory
@var{dir}, or in a subdirectory of @var{dir}. It also returns
@code{t} if @var{file} and @var{dir} are the same directory. It
compares the truenames of the two directories. If @var{dir} does not
name an existing directory, the return value is @code{nil}.
@end defun
@defun directory-files-and-attributes directory &optional full-name match-regexp nosort id-format count
This is similar to @code{directory-files} in deciding which files
to report on and how to report their names. However, instead
@ -3130,7 +3136,7 @@ a list of file names that match it.
@var{pattern} is, by default, a ``glob''/wildcard string, e.g.,
@samp{"/tmp/*.png"} or @samp{"/*/*/foo.png"}, but can also be a
regular expression if the optional @var{regexp} parameter is non-nil.
regular expression if the optional @var{regexp} parameter is non-@code{nil}.
In any case, the matches are applied per sub-directory, so a match
can't span a parent/sub directory.

View file

@ -4058,70 +4058,89 @@ amount of different data types on the clipboard.
When the user drops something from another application over Emacs,
Emacs will try to insert any text and open any URL that was dropped.
If text was dropped, then it will always be inserted at the location
of the mouse pointer when the drop happened, or saved in the kill ring
if insertion failed (which can happen if the buffer is read-only). If
it was an URL, then Emacs tries to call an appropriate handler
function by first matching the URL against regexps defined in
@code{dnd-protocol-alist}, and then against @code{browse-url-handlers}
and @code{browse-url-default-handlers}, and failing that, inserting
the URL as plain text.
of the mouse pointer where the drop happened, or saved in the kill
ring if insertion failed, which could happen if the buffer was
read-only. If a URL was dropped instead, then Emacs will first try to
call an appropriate handler function by matching the URL against
regexps defined in the variable @code{dnd-protocol-alist}, and then
against those defined in the variables @code{browse-url-handlers} and
@code{browse-url-default-handlers}. Should no suitable handler be
located, Emacs will fall back to inserting the URL as plain text.
@defvar dnd-protocol-alist
This variable is a list of cons cells of the form
@w{@code{(@var{pattern} . @var{action})}}. @var{pattern} is a regexp
that URLs are matched against after being dropped. @var{action} is a
function that is called with two arguments should a URL being dropped
function that is called with two arguments, should a URL being dropped
match @var{pattern}: the URL being dropped, and the action being
performed for the drop (one of the symbols @code{copy}, @code{move},
@code{link}, @code{private} or @code{ask}).
performed for the drop, which is one of the symbols @code{copy},
@code{move}, @code{link}, @code{private} or @code{ask}.
If @var{action} is @var{private}, then it means the program that
initiated the drop wants Emacs to perform an unspecified action with
the URL; a reasonable action to perform in that case is to open the URL
or copy its contents into the current buffer. Otherwise, @var{action}
has the same meaning as the @var{action} argument to
@code{dnd-begin-file-drag}.
@end defvar
@cindex drag and drop, X
@cindex drag and drop, other formats
Emacs implements drag-and-drop for text and URLs individually for
each window system, and does not by default support the dropping of
anything else. Code that wishes to support the dropping of content
types not supported by Emacs can utilize the X-specific interface
described below:
Emacs implements receiving text and URLs individually for each
window system, and does not by default support receiving other kinds
of data as drops. To support receiving other kinds of data, use the
X-specific interface described below:
@vindex x-dnd-test-function
@vindex x-dnd-known-types
When a user drags something from another application over Emacs on
the X Window System, that other application expects Emacs to tell it
if Emacs can handle the data that was dragged. The variable
@code{x-dnd-test-function} is used by Emacs to determine what to
reply. The default value is @code{x-dnd-default-test-function} which
accepts drops if the type of the data to be dropped is present in
@code{x-dnd-known-types}. You can customize
@code{x-dnd-test-function} and/or @code{x-dnd-known-types} if you want
Emacs to accept or reject drops based on some other criteria.
When a user drags something from another application over Emacs
under the X Window System, that other application expects Emacs to
tell it if Emacs understands the data being dragged. The function in
the variable @code{x-dnd-test-function} is called by Emacs to
determine what to reply to any such inquiry. The default value is
@code{x-dnd-default-test-function}, which accepts drops if the type of
the data to be dropped is present in @code{x-dnd-known-types}.
Changing the variables @code{x-dnd-test-function} and
@code{x-dnd-known-types} can make Emacs accept or reject drops based
on some other criteria.
@vindex x-dnd-types-alist
If you want to change the way Emacs handles drop of different types
or add a new type, customize @code{x-dnd-types-alist}. This requires
detailed knowledge of what types other applications use for drag and
drop.
If you want to change the way Emacs receives drops of different data
types, or you want to enable it to understand a new type, change the variable
@code{x-dnd-types-alist}. Doing so correctly requires detailed
knowledge of what data types other applications use for drag and drop.
Those data types are typically implemented as special data types an
X selection provided by the other application can be converted to.
They can either be the same data types that are typically accepted by
@code{gui-set-selection}, or they can be MIME types, depending on the
specific drag-n-drop protocol being used. Plain text may be
@code{"STRING"} or @code{"text/plain"}, for example.
These data types are typically implemented as special data types
that can be obtained from an X selection provided by the other
application. In most cases, they are either the same data types that
are typically accepted by @code{gui-set-selection}, or MIME types,
depending on the specific drag-and-drop protocol being used. For
example, the data type used for plain text may be either
@code{"STRING"} or @code{"text/plain"}.
@vindex x-dnd-direct-save-function
@c FIXME: This description is overly-complicated and confusing. In
@c particular, the two calls to the function basically sound
@c identical, so it is unclear how should the function distinguish
@c between the first and the second one. The description of who asks
@c whom to do what is also very hard to understand. Needs rewording,
@c and needs shorter sentences. Perhaps examples could help.
However, @code{x-dnd-types-alist} does not handle a special kind of
drop sent by a program which wants Emacs to save a file in a location
Emacs must determine by itself. These drops are handled via the
variable @code{x-dnd-direct-save-function}, which should be a function
that accepts two arguments. If the first argument is non-@code{nil},
then the second argument is a string describing the name (with no
leading directory) that the other program recommends the file be saved
under, and the function should return the complete file name under
which it will be saved. Otherwise, the file has already been saved,
and the second argument is the complete name of the file. The
function should then perform whatever action is appropriate (i.e.,
open the file or refresh the directory listing.)
drop sent by a program that wants Emacs to tell it where to save a
file in a specific location determined by the user. These drops are
instead handled by a function that is the value of the variable
@code{x-dnd-direct-save-function}. This function should accept two arguments.
If the first argument is non-@code{nil}, then the second argument is a
file name to save (with leading directories) that the other
program recommends, and the
function should return the full file name under which it should be
saved. After the function completes, Emacs will ask the other program
to save the file under the name that was returned, and if the file was
successfully saved, call the function again with the first argument
set to a non-@code{nil} value and the second argument set to the file
name that was returned. The function should then perform whatever
action is appropriate (i.e., opening the file or refreshing a
directory listing.)
@cindex initiating drag-and-drop
On capable window systems, Emacs also supports dragging contents

View file

@ -533,6 +533,44 @@ Instead, use the @code{advertised-calling-convention} declaration
compiler emit a warning message when it compiles Lisp programs which
use the deprecated calling convention.
@cindex computed documentation string
@kindex :documentation
Documentation strings are usually static, but occasionally it can be
necessary to generate them dynamically. In some cases you can do so
by writing a macro which generates at compile time the code of the
function, including the desired documentation string. But you can
also generate the docstring dynamically by writing
@code{(:documentation @var{form})} instead of the documentation
string. This will evaluate @var{form} at run-time when the function
is defined and use it as the documentation string@footnote{This only
works in code using @code{lexical-binding}.}. You can also compute
the documentation string on the fly when it is requested, by setting
the @code{function-documentation} property of the function's symbol to
a Lisp form that evaluates to a string.
For example:
@example
@group
(defun adder (x)
(lambda (y)
(:documentation (format "Add %S to the argument Y." x))
(+ x y)))
(defalias 'adder5 (adder 5))
(documentation 'adder5)
@result{} "Add 5 to the argument Y."
@end group
@group
(put 'adder5 'function-documentation
'(concat (documentation (symbol-function 'adder5) 'raw)
" Consulted at " (format-time-string "%H:%M:%S")))
(documentation 'adder5)
@result{} "Add 5 to the argument Y. Consulted at 15:52:13"
(documentation 'adder5)
@result{} "Add 5 to the argument Y. Consulted at 15:52:18"
@end group
@end example
@node Function Names
@section Naming a Function
@cindex function definition
@ -696,7 +734,7 @@ a list of symbols representing the function alias chain, else
@result{} (b c)
@end example
If there's a loop in the definitions, an error will be signalled. If
If there's a loop in the definitions, an error will be signaled. If
@var{noerror} is non-@code{nil}, the non-looping parts of the chain is
returned instead.
@end defun

View file

@ -980,8 +980,8 @@ In addition to function descriptions, the list can also have string
elements, which are used to divide a documentation group into
sections.
@defun shortdoc-add-function shortdoc-add-function group section elem
Lisp packages can add functions to groups with this command. Each
@defun shortdoc-add-function group section elem
Lisp packages can add functions to groups with this function. Each
@var{elem} should be a function description, as described above.
@var{group} is the function group, and @var{section} is what section
in the function group to insert the function into.

View file

@ -554,12 +554,17 @@ trigger another garbage collection. You can use the result returned by
object type; space allocated to the contents of buffers does not count.
The initial threshold value is @code{GC_DEFAULT_THRESHOLD}, defined in
@file{alloc.c}. Since it's defined in @code{word_size} units, the value
is 400,000 for the default 32-bit configuration and 800,000 for the 64-bit
one. If you specify a larger value, garbage collection will happen less
often. This reduces the amount of time spent garbage collecting, but
increases total memory use. You may want to do this when running a program
that creates lots of Lisp data.
@file{alloc.c}. Since it's defined in @code{word_size} units, the
value is 400,000 for the default 32-bit configuration and 800,000 for
the 64-bit one. If you specify a larger value, garbage collection
will happen less often. This reduces the amount of time spent garbage
collecting, but increases total memory use. You may want to do this
when running a program that creates lots of Lisp data. However, we
recommend against increasing the threshold for prolonged periods of
time, and advise that you never set it higher than needed for the
program to run in reasonable time. Using thresholds higher than
necessary could potentially cause system-wide memory pressure, and
should therefore be avoided.
You can make collections more frequent by specifying a smaller value, down
to 1/10th of @code{GC_DEFAULT_THRESHOLD}. A value less than this minimum
@ -576,6 +581,9 @@ garbage collection occurs only when both criteria are satisfied.
As the heap size increases, the time to perform a garbage collection
increases. Thus, it can be desirable to do them less frequently in
proportion.
As with @code{gc-cons-threshold}, do not enlarge this more than
necessary, and never for prolonged periods of time.
@end defopt
Control over the garbage collector via @code{gc-cons-threshold} and

View file

@ -34,7 +34,9 @@ specifically to editing.
This is
@iftex
@ifset VERSION
edition @value{VERSION} of
@end ifset
@end iftex
the @cite{GNU Emacs Lisp Reference Manual},
corresponding to Emacs version @value{EMACSVER}.

View file

@ -1961,12 +1961,12 @@ and later discarded; this is not possible with a property list.
@cindex accessing plist properties
The following functions can be used to manipulate property lists.
They all compare property names using @code{eq}.
They all default to comparing property names using @code{eq}.
@defun plist-get plist property &optional predicate
This returns the value of the @var{property} property stored in the
property list @var{plist}. Comparisons are done with @var{predicate},
and defaults to @code{eq}. It accepts a malformed @var{plist}
which defaults to @code{eq}. It accepts a malformed @var{plist}
argument. If @var{property} is not found in the @var{plist}, it
returns @code{nil}. For example,
@ -1985,7 +1985,7 @@ returns @code{nil}. For example,
@defun plist-put plist property value &optional predicate
This stores @var{value} as the value of the @var{property} property in
the property list @var{plist}. Comparisons are done with @var{predicate},
and defaults to @code{eq}. It may modify @var{plist} destructively,
which defaults to @code{eq}. It may modify @var{plist} destructively,
or it may construct a new list structure without altering the old. The
function returns the modified property list, so you can store that back
in the place where you got @var{plist}. For example,
@ -2012,7 +2012,7 @@ compares properties using @code{equal} instead of @code{eq}.
@defun plist-member plist property &optional predicate
This returns non-@code{nil} if @var{plist} contains the given
@var{property}. Comparisons are done with @var{predicate}, and
@var{property}. Comparisons are done with @var{predicate}, which
defaults to @code{eq}. Unlike @code{plist-get}, this allows you to
distinguish between a missing property and a property with the value
@code{nil}. The value is actually the tail of @var{plist} whose

View file

@ -662,7 +662,7 @@ and @code{define-overloadable-function} (see the commentary in
and @code{define-global-minor-mode}.
@item Other definition types:
@code{defcustom}, @code{defgroup}, @code{defclass}
@code{defcustom}, @code{defgroup}, @code{deftheme}, @code{defclass}
(@pxref{Top,EIEIO,,eieio,EIEIO}), and @code{define-skeleton}
(@pxref{Top,Autotyping,,autotype,Autotyping}).
@end table

View file

@ -2745,7 +2745,7 @@ Here's a typical use case:
If @code{my-client-handling-function} ends up calling something that
asks the user for something (via @code{y-or-n-p} or
@code{read-from-minibuffer} or the like), an
@code{inhibited-interaction} error is signalled instead. The server
@code{inhibited-interaction} error is signaled instead. The server
code then catches that error and reports it to the client.
@node Minibuffer Misc

View file

@ -198,7 +198,7 @@ on the hook. The optional argument @var{depth} lets you indicate where the
function should be inserted in the list: it should then be a number
between -100 and 100 where the higher the value, the closer to the end of the
list the function should go. The @var{depth} defaults to 0 and for backward
compatibility when @var{depth} is a non-nil symbol it is interpreted as a depth
compatibility when @var{depth} is a non-@code{nil} symbol it is interpreted as a depth
of 90. Furthermore, when @var{depth} is strictly greater than 0 the function
is added @emph{after} rather than before functions of the same depth.
One should never use a depth of 100 (or -100), because one can never be
@ -1256,7 +1256,7 @@ will be a vector for the ID at @var{pos}. If there is no entry at
@vindex tabulated-list-use-header-line
@defun tabulated-list-header-overlay-p &optional POS
This @code{defsubst} returns non-nil if there is a fake header at
This @code{defsubst} returns non-@code{nil} if there is a fake header at
@var{pos}. A fake header is used if
@code{tabulated-list-use-header-line} is @code{nil} to put the column
names at the beginning of the buffer. If omitted or @code{nil},
@ -1269,7 +1269,7 @@ This function puts @var{tag} in the padding area of the current line.
The padding area can be empty space at the beginning of the line, the
width of which is governed by @code{tabulated-list-padding}.
@var{tag} should be a string, with a length less than or equal to
@code{tabulated-list-padding}. If @var{advance} is non-nil, this
@code{tabulated-list-padding}. If @var{advance} is non-@code{nil}, this
function advances point by one line.
@end defun
@ -1284,7 +1284,7 @@ This function changes the tabulated list entry at point, setting
the name of the column to change. @var{desc} is the new column
descriptor, which is inserted via @code{tabulated-list-print-col}.
If @var{change-entry-data} is non-nil, this function modifies the
If @var{change-entry-data} is non-@code{nil}, this function modifies the
underlying data (usually the column descriptor in the list
@code{tabulated-list-entries}) by setting the column descriptor of the
vector to @code{desc}.
@ -1851,7 +1851,9 @@ to enable or disable the buffer-local minor mode @var{mode} in all (or
some; see below) buffers. It also executes the @var{body} forms. To
turn on the minor mode in a buffer, it uses the function
@var{turn-on}; to turn off the minor mode, it calls @var{mode} with
@minus{}1 as argument.
@minus{}1 as argument. (The function @var{turn-on} is a separate
function so it could determine whether to enable the minor mode or not
when it is not a priori clear that it should always be enabled.)
Globally enabling the mode also affects buffers subsequently created
by visiting files, and buffers that use a major mode other than
@ -3150,9 +3152,10 @@ match found by @var{matcher} acts as the anchor for further searches
specified by @var{anchored-highlighter}. @var{anchored-highlighter}
is a list of the following form:
@c Don't wrap the line in the next @example, because that tends to
@c produce ugly indentation in Info
@example
(@var{anchored-matcher} @var{pre-form} @var{post-form}
@var{subexp-highlighters}@dots{})
(@var{anchored-matcher} @var{pre-form} @var{post-form} @var{subexp-highlighters}@dots{})
@end example
Here, @var{anchored-matcher}, like @var{matcher}, is either a regular

View file

@ -1238,6 +1238,9 @@ any given seed, the @code{random} function always generates the same
sequence of numbers. By default, Emacs initializes the random seed at
startup, in such a way that the sequence of values of @code{random}
(with overwhelming likelihood) differs in each Emacs run.
The random seed is typically initialized from system entropy;
however, on obsolescent platforms lacking entropy pools,
the seed is taken from less-random volatile data such as the current time.
Sometimes you want the random number sequence to be repeatable. For
example, when debugging a program whose behavior depends on the random
@ -1256,12 +1259,45 @@ nonnegative and less than @var{limit}. Otherwise, the value might be
any fixnum, i.e., any integer from @code{most-negative-fixnum} through
@code{most-positive-fixnum} (@pxref{Integer Basics}).
If @var{limit} is @code{t}, it means to choose a new seed as if Emacs
were restarting, typically from the system entropy. On systems
lacking entropy pools, choose the seed from less-random volatile data
such as the current time.
If @var{limit} is a string, it means to choose a new seed based on the
string's contents.
string's contents. This causes later calls to @code{random} to return
a reproducible sequence of results.
If @var{limit} is @code{t}, it means to choose a new seed as if Emacs
were restarting. This causes later calls to @code{random} to return
an unpredictable sequence of results.
@end defun
If you need a random nonce for cryptographic purposes, using
@code{random} is typically not the best approach, for several reasons:
@itemize @bullet
@item
Although you can use @code{(random t)} to consult system entropy,
doing so can adversely affect other parts of your program that benefit
from reproducible results.
@item
The system-dependent pseudo-random number generator (PRNG) used by
@code{random} is not necessarily suitable for cryptography.
@item
A call to @code{(random t)} does not give direct access to system
entropy; the entropy is passed through the system-dependent PRNG, thus
possibly biasing the results.
@item
On typical platforms the random seed contains only 32 bits, which is
typically narrower than an Emacs fixnum, and is not nearly enough for
cryptographic purposes.
@item
A @code{(random t)} call leaves information about the nonce scattered
about Emacs's internal state, increasing the size of the internal
attack surface.
@item
On obsolescent platforms lacking entropy pools, @code{(random t)} is
seeded from a cryptographically weak source.
@end itemize

View file

@ -507,7 +507,7 @@ string describing this signal.
Since there are processes violating this rule, returning exit codes
greater than 128 which are not bound to a signal, @code{process-file}
returns always the exit code as natural number for remote processes.
Setting this user option to non-nil forces @code{process-file} to
Setting this user option to non-@code{nil} forces @code{process-file} to
interpret such exit codes as signals, and to return a corresponding
string.
@end defopt
@ -2585,6 +2585,10 @@ that are mainly relevant to encrypted connections:
@item :nowait @var{boolean}
If non-@code{nil}, try to make an asynchronous connection.
@item :noquery @var{query-flag}
Initialize the process query flag to @var{query-flag}.
@xref{Query Before Exit}.
@item :coding @var{coding}
Use this to set the coding systems used by the network process, in
preference to binding @code{coding-system-for-read} or

View file

@ -395,13 +395,12 @@ range should not be the starting point of another one; for example,
@samp{[a-m-z]} should be avoided.
A character alternative can also specify named character classes
(@pxref{Char Classes}). This is a POSIX feature. For example,
@samp{[[:ascii:]]} matches any @acronym{ASCII} character.
Using a character class is equivalent to mentioning each of the
characters in that class; but the latter is not feasible in practice,
since some classes include thousands of different characters.
A character class should not appear as the lower or upper bound
of a range.
(@pxref{Char Classes}). For example, @samp{[[:ascii:]]} matches any
@acronym{ASCII} character. Using a character class is equivalent to
mentioning each of the characters in that class; but the latter is not
feasible in practice, since some classes include thousands of
different characters. A character class should not appear as the
lower or upper bound of a range.
The usual regexp special characters are not special inside a
character alternative. A completely different set of characters is
@ -617,7 +616,7 @@ This matches any character whose code is in the range 0--31.
This matches @samp{0} through @samp{9}. Thus, @samp{[-+[:digit:]]}
matches any digit, as well as @samp{+} and @samp{-}.
@item [:graph:]
This matches graphic characters---everything except whitespace,
This matches graphic characters---everything except spaces,
@acronym{ASCII} and non-@acronym{ASCII} control characters,
surrogates, and codepoints unassigned by Unicode, as indicated by the
Unicode @samp{general-category} property (@pxref{Character
@ -625,29 +624,39 @@ Properties}).
@item [:lower:]
This matches any lower-case letter, as determined by the current case
table (@pxref{Case Tables}). If @code{case-fold-search} is
non-@code{nil}, this also matches any upper-case letter.
non-@code{nil}, this also matches any upper-case letter. Note that a
buffer can have its own local case table different from the default
one.
@item [:multibyte:]
This matches any multibyte character (@pxref{Text Representations}).
@item [:nonascii:]
This matches any non-@acronym{ASCII} character.
@item [:print:]
This matches any printing character---either whitespace, or a graphic
character matched by @samp{[:graph:]}.
This matches any printing character---either spaces or graphic
characters matched by @samp{[:graph:]}.
@item [:punct:]
This matches any punctuation character. (At present, for multibyte
characters, it matches anything that has non-word syntax.)
characters, it matches anything that has non-word syntax, and thus its
exact definition can vary from one major mode to another, since the
syntax of a character depends on the major mode.)
@item [:space:]
This matches any character that has whitespace syntax
(@pxref{Syntax Class Table}).
(@pxref{Syntax Class Table}). Note that the syntax of a character,
and thus which characters are considered ``whitespace'',
depends on the major mode.
@item [:unibyte:]
This matches any unibyte character (@pxref{Text Representations}).
@item [:upper:]
This matches any upper-case letter, as determined by the current case
table (@pxref{Case Tables}). If @code{case-fold-search} is
non-@code{nil}, this also matches any lower-case letter.
non-@code{nil}, this also matches any lower-case letter. Note that a
buffer can have its own local case table different from the default
one.
@item [:word:]
This matches any character that has word syntax (@pxref{Syntax Class
Table}).
Table}). Note that the syntax of a character, and thus which
characters are considered ``word-constituent'', depends on the major
mode.
@item [:xdigit:]
This matches the hexadecimal digits: @samp{0} through @samp{9}, @samp{a}
through @samp{f} and @samp{A} through @samp{F}.
@ -1052,11 +1061,15 @@ customization.
@subsubsection Constructs in @code{rx} regexps
The various forms in @code{rx} regexps are described below. The
shorthand @var{rx} represents any @code{rx} form, and @var{rx}@dots{}
means zero or more @code{rx} forms. These are all valid arguments to
the @code{rx} macro. Where the corresponding string
regexp syntax is given, @var{A}, @var{B}, @dots{} are string regexp
subexpressions.
shorthand @var{rx} represents any @code{rx} form. @var{rx}@dots{}
means zero or more @code{rx} forms and, unless stated otherwise,
matches these forms in sequence as if wrapped in a @code{(seq @dots{})}
subform.
These are all valid arguments to the @code{rx} macro. All forms are
defined by their described semantics; the corresponding string regexps
are provided for ease of understanding only. @var{A}, @var{B}, @dots{}
denote (suitably bracketed) string regexp subexpressions therein.
@subsubheading Literals
@ -1290,12 +1303,12 @@ Match any character that has whitespace syntax
@item @code{lower}, @code{lower-case}
Match anything lower-case, as determined by the current case table.
If @code{case-fold-search} is non-nil, this also matches any
If @code{case-fold-search} is non-@code{nil}, this also matches any
upper-case letter.
@item @code{upper}, @code{upper-case}
Match anything upper-case, as determined by the current case table.
If @code{case-fold-search} is non-nil, this also matches any
If @code{case-fold-search} is non-@code{nil}, this also matches any
lower-case letter.
@item @code{graph}, @code{graphic}

View file

@ -484,7 +484,7 @@ is a multibyte string, we recommend to make sure @var{string} is also
multibyte, even if it's pure-@acronym{ASCII}.
Since it is impossible to change the number of characters in an
existing string, it is en error if @var{obj} consists of more
existing string, it is an error if @var{obj} consists of more
characters than would fit in @var{string} starting at character index
@var{idx}.
@end defun

View file

@ -718,9 +718,9 @@ byte-compiling any of the two files has equivalent results. The
shorthands @code{snu-split} and @code{snu-lines} used in the second
version are @emph{not} interned in the obarray. This is easily seen
by moving point to the location where the shorthands are used and
waiting for ElDoc (@pxref{Lisp Doc, , Local Variables in Files, emacs,
The GNU Emacs Manual}) to hint at the true full name of the symbol
under point in the echo area.
waiting for ElDoc (@pxref{Programming Language Doc, , Local Variables
in Files, emacs, The GNU Emacs Manual}) to hint at the true full name
of the symbol under point in the echo area.
Since @code{read-symbol-shorthands} is a file-local variable, it is
possible that multiple libraries depending on
@ -794,7 +794,7 @@ this case.
@end defvar
@defvar print-symbols-bare
When bound to non-nil, the Lisp printer prints only the bare symbol of
When bound to non-@code{nil}, the Lisp printer prints only the bare symbol of
a symbol with position, ignoring the position.
@end defvar

View file

@ -1525,7 +1525,7 @@ Some commands leave the region active after execution in such a way that
it interferes with selective undo of that command. To make @code{undo}
ignore the active region when invoked immediately after such a command,
set the property @code{undo-inhibit-region} of the command's function
symbol to a non-nil value. @xref{Standard Properties}.
symbol to a non-@code{nil} value. @xref{Standard Properties}.
@node Maintaining Undo
@section Maintaining Undo Lists
@ -4876,7 +4876,7 @@ If the optional argument @var{no-pad} is non-@code{nil} then this
function doesn't generate the padding.
@end defun
@deffn Command base64-decode-region beg end &optional base64url
@deffn Command base64-decode-region beg end &optional base64url ignore-invalid
This function converts the region from @var{beg} to @var{end} from base
64 code into the corresponding decoded text. It returns the length of
the decoded text.
@ -4885,9 +4885,11 @@ The decoding functions ignore newline characters in the encoded text.
If optional argument @var{base64url} is non-@code{nil}, then padding
is optional, and the URL variant of base 64 encoding is used.
If optional argument @var{ignore-invalid} is non-@code{nil}, then any
unrecognized characters are ignored.
@end deffn
@defun base64-decode-string string &optional base64url
@defun base64-decode-string string &optional base64url ignore-invalid
This function converts the string @var{string} from base 64 code into
the corresponding decoded text. It returns a unibyte string containing the
decoded text.
@ -4897,6 +4899,8 @@ The decoding functions ignore newline characters in the encoded text.
If optional argument @var{base64url} is non-@code{nil}, then padding
is optional, and the URL variant of base 64 encoding is used.
If optional argument @var{ignore-invalid} is non-@code{nil}, then any
unrecognized characters are ignored.
@end defun
@node Checksum/Hash
@ -5321,9 +5325,12 @@ This has exactly the same effect as the previous example, but is more
efficient and safer (because it doesn't involve any string parsing or
interpolation).
@code{sqlite-execute} returns the number of affected rows. For
instance, an @samp{insert} statement will return @samp{1}, whereas an
@samp{update} statement may return zero or a higher number.
@code{sqlite-execute} usually returns the number of affected rows.
For instance, an @samp{insert} statement will typically return
@samp{1}, whereas an @samp{update} statement may return zero or a
higher number. However, when using @acronym{SQL} statements like
@w{@samp{insert into @dots{} returning @dots{}}} and the like, the values
specified by @w{@samp{returning @dots{}}} will be returned instead.
Strings in SQLite are, by default, stored as @code{utf-8}, and
selecting a text column will decode the string using that charset.
@ -5919,7 +5926,7 @@ methods if these concepts apply to the transport. If they do, then
any system resources (e.g.@: processes, timers, etc.) used to listen for
messages on the wire should be released in @code{jsonrpc-shutdown},
i.e.@: they should only be needed while @code{jsonrpc-running-p} is
non-nil.
non-@code{nil}.
@end enumerate

View file

@ -1183,7 +1183,7 @@ Here is an example:
(let ((x 0)) ; @r{@code{x} is lexically bound.}
(setq my-ticker (lambda ()
(setq x (1+ x)))))
@result{} (closure ((x . 0) t) ()
@result{} (closure ((x . 0)) ()
(setq x (1+ x)))
(funcall my-ticker)
@ -2239,9 +2239,26 @@ still respecting file-local variables (@pxref{File Local Variables}).
@cindex connection local variables
Connection-local variables provide a general mechanism for different
variable settings in buffers with a remote connection. They are bound
variable settings in buffers with a remote connection (@pxref{Remote
Files,, Remote Files, emacs, The GNU Emacs Manual}). They are bound
and set depending on the remote connection a buffer is dedicated to.
@menu
* Connection Local Profiles:: Storing variable settings to
apply to connections.
* Applying Connection Local Variables:: Using connection-local values
in your code.
@end menu
@node Connection Local Profiles
@subsection Connection Local Profiles
@cindex connection local profiles
Emacs uses connection-local profiles to store the variable settings
to apply to particular connections. You can then associate these with
remote connections by defining the criteria when they should apply,
using @code{connection-local-set-profiles}.
@defun connection-local-set-profile-variables profile variables
This function defines a set of variable settings for the connection
@var{profile}, which is a symbol. You can later assign the connection
@ -2311,13 +2328,13 @@ always applies. Example:
@example
@group
(connection-local-set-profiles
'(:application 'tramp :protocol "ssh" :machine "localhost")
'(:application tramp :protocol "ssh" :machine "localhost")
'remote-bash 'remote-null-device)
@end group
@group
(connection-local-set-profiles
'(:application 'tramp :protocol "sudo"
'(:application tramp :protocol "sudo"
:user "root" :machine "localhost")
'remote-ksh 'remote-null-device)
@end group
@ -2329,13 +2346,13 @@ Therefore, the example above would be equivalent to
@example
@group
(connection-local-set-profiles
'(:application 'tramp :protocol "ssh" :machine "localhost")
'(:application tramp :protocol "ssh" :machine "localhost")
'remote-bash)
@end group
@group
(connection-local-set-profiles
'(:application 'tramp :protocol "sudo"
'(:application tramp :protocol "sudo"
:user "root" :machine "localhost")
'remote-ksh)
@end group
@ -2356,6 +2373,14 @@ names. The function @code{connection-local-set-profiles} updates this
list.
@end deffn
@node Applying Connection Local Variables
@subsection Applying Connection Local Variables
@cindex connection local variables, applying
When writing connection-aware code, you'll need to collect, and
possibly apply, any connection-local variables. There are several
ways to do this, as described below.
@defun hack-connection-local-variables criteria
This function collects applicable connection-local variables
associated with @var{criteria} in
@ -2365,7 +2390,7 @@ Example:
@example
@group
(hack-connection-local-variables
'(:application 'tramp :protocol "ssh" :machine "localhost"))
'(:application tramp :protocol "ssh" :machine "localhost"))
@end group
@group
@ -2384,41 +2409,13 @@ This function looks for connection-local variables according to
@var{criteria}, and immediately applies them in the current buffer.
@end defun
@defmac with-connection-local-variables &rest body
All connection-local variables, which are specified by
@code{default-directory}, are applied.
@defmac with-connection-local-application-variables application &rest body
Apply all connection-local variables for @code{application}, which are
specified by @code{default-directory}.
After that, @var{body} is executed, and the connection-local variables
are unwound. Example:
@example
@group
(connection-local-set-profile-variables
'remote-perl
'((perl-command-name . "/usr/local/bin/perl")
(perl-command-switch . "-e %s")))
@end group
@group
(connection-local-set-profiles
'(:application 'tramp :protocol "ssh" :machine "remotehost")
'remote-perl)
@end group
@group
(let ((default-directory "/ssh:remotehost:/working/dir/"))
(with-connection-local-variables
do something useful))
@end group
@end example
@end defmac
@defvar connection-local-default-application
The default application, a symbol, to be applied in
@code{with-connection-local-variables}. It defaults to @code{tramp},
but in case you want to overwrite Tramp's settings temporarily, you
could let-bind it like
@example
@group
(connection-local-set-profile-variables
@ -2429,17 +2426,74 @@ could let-bind it like
@group
(connection-local-set-profiles
'(:application 'my-app :protocol "ssh" :machine "remotehost")
'(:application my-app :protocol "ssh" :machine "remotehost")
'my-remote-perl)
@end group
@group
(let ((default-directory "/ssh:remotehost:/working/dir/")
(connection-local-default-application 'my-app))
(with-connection-local-variables
(let ((default-directory "/ssh:remotehost:/working/dir/"))
(with-connection-local-application-variables 'my-app
do something useful))
@end group
@end example
@end defmac
@defvar connection-local-default-application
The default application, a symbol, to be applied in
@code{with-connection-local-variables}. It defaults to @code{tramp},
but you can let-bind it to change the application temporarily
(@pxref{Local Variables}).
This variable must not be changed globally.
@end defvar
@defmac with-connection-local-variables &rest body
This is equivalent to
@code{with-connection-local-application-variables}, but uses
@code{connection-local-default-application} for the application.
@end defmac
@defmac setq-connection-local [symbol form]@dots{}
This macro sets each @var{symbol} connection-locally to the result of
evaluating the corresponding @var{form}, using the connection-local
profile specified in @code{connection-local-profile-name-for-setq}; if
the profile name is @code{nil}, this macro will just set the variables
normally, as with @code{setq} (@pxref{Setting Variables}).
For example, you can use this macro in combination with
@code{with-connection-local-variables} or
@code{with-connection-local-application-variables} to lazily
initialize connection-local settings:
@example
@group
(defvar my-app-variable nil)
(connection-local-set-profile-variables
'my-app-connection-default-profile
'((my-app-variable . nil)))
(connection-local-set-profiles
'(:application my-app)
'my-app-connection-default-profile)
@end group
@group
(defun my-app-get-variable ()
(with-connection-local-application-variables 'my-app
(or my-app-variable
(setq-connection-local my-app-variable
do something useful))))
@end group
@end example
@end defmac
@defvar connection-local-profile-name-for-setq
The connection-local profile name, a symbol, to use when setting
variables via @code{setq-connection-local}. This is let-bound in the
body of @code{with-connection-local-variables}, but you can also
let-bind it yourself if you'd like to set variables on a different
profile.
This variable must not be changed globally.
@end defvar

View file

@ -2624,7 +2624,7 @@ default value is an empty display action, i.e., @w{@code{(nil . nil)}}.
The value of this option is an alist mapping conditions to display
actions. Each condition is passed to @code{buffer-match-p}, along
with the buffer name and the @var{action} argument passed to
@code{display-buffer}. If it returns a non-nil value, then
@code{display-buffer}. If it returns a non-@code{nil} value, then
@code{display-buffer} uses the corresponding display action to display
the buffer.
@end defopt
@ -6684,32 +6684,32 @@ time window change functions were run for @var{window}'s frame. If it
returns @code{nil}, @var{window} has been created after that. If it
returns @code{t}, @var{window} was not shown at that time but has been
restored from a previously saved window configuration afterwards.
Otherwise, the return value is the buffer shown by @code{window} at
Otherwise, the return value is the buffer shown by @var{window} at
that time.
@end defun
@defun window-old-pixel-width &optional window
This function returns the total pixel width of @var{window} the
last time window change functions found @code{window} live on its
frame. It is zero if @code{window} was created after that.
last time window change functions found @var{window} live on its
frame. It is zero if @var{window} was created after that.
@end defun
@defun window-old-pixel-height &optional window
This function returns the total pixel height of @var{window} the last
time window change functions found @code{window} live on its frame.
It is zero if @code{window} was created after that.
time window change functions found @var{window} live on its frame.
It is zero if @var{window} was created after that.
@end defun
@defun window-old-body-pixel-width &optional window
This function returns the pixel width of @var{window}'s text area the
last time window change functions found @code{window} live on its
frame. It is zero if @code{window} was created after that.
last time window change functions found @var{window} live on its
frame. It is zero if @var{window} was created after that.
@end defun
@defun window-old-body-pixel-height &optional window
This function returns the pixel height of @var{window}'s text area the
last time window change functions found @code{window} live on its
frame. It is zero if @code{window} was created after that.
last time window change functions found @var{window} live on its
frame. It is zero if @var{window} was created after that.
@end defun
In order to find out which window or frame was selected the last time

View file

@ -1460,7 +1460,7 @@
2013-10-24 Michael Albinus <michael.albinus@gmx.de>
* ert.texi (Running Tests Interactively): Adapt examle output.
* ert.texi (Running Tests Interactively): Adapt example output.
(Tests and Their Environment): Mention skip-unless.
2013-10-23 Glenn Morris <rgm@gnu.org>
@ -3525,7 +3525,7 @@
2012-01-03 Carsten Dominik <carsten.dominik@gmail.com>
* org.texi (The clock table): Mention that ACHIVED trees
* org.texi (The clock table): Mention that ARCHIVED trees
contribute to the clock table.
2012-01-03 Carsten Dominik <carsten.dominik@gmail.com> (tiny change)
@ -4420,12 +4420,7 @@
2011-02-05 Era Eriksson <era+tramp@iki.fi> (tiny change)
* tramp.texi:
Replace "delimet" with "delimit" globally.
Replace "explicite" with "explicit" globally.
Replace "instead of" with "instead" where there was nothing after "of".
Audit use of comma before interrogative pronoun, "that", or "which".
Minor word order, spelling, wording changes.
* tramp.texi: Minor word order, spelling, wording changes.
2011-02-04 Teodor Zlatanov <tzz@lifelogs.com>
@ -5868,7 +5863,7 @@
2009-09-02 Carsten Dominik <carsten.dominik@gmail.com>
* org.texi (Effort estimates): Document new effort setting commands.
(Agenda commands): Document the new keys fro agenda time motion.
(Agenda commands): Document the new keys for agenda time motion.
Document entry text mode. Improve documentation of the keys to include
inactive time stamps into the agenda view.
(Feedback): Document the new bug report command.
@ -10409,7 +10404,7 @@
* sc.texi (Emacs 18 MUAs):
* speedbar.texi (Top):
* url.texi (History):
Delete duplicate duplicate words.
Delete duplicate words.
2005-07-16 Johan Bockgård <bojohan@users.sourceforge.net> (tiny change)

View file

@ -68,13 +68,13 @@ DOCMISC_W32 = @DOCMISC_W32@
## Info files to build and install on all platforms.
INFO_COMMON = auth autotype bovine calc ccmode cl \
dbus dired-x ebrowse ede ediff edt eieio \
emacs-mime epa erc ert eshell eudc efaq eww \
flymake forms gnus emacs-gnutls htmlfontify idlwave ido info.info \
mairix-el message mh-e modus-themes newsticker nxml-mode octave-mode \
org pcl-cvs pgg rcirc remember reftex sasl \
sc semantic ses sieve smtpmail speedbar srecode todo-mode transient \
tramp url vhdl-mode vip viper vtable widget wisent woman
dbus dired-x ebrowse ede ediff edt efaq eglot eieio \
emacs-gnutls emacs-mime epa erc ert eshell eudc eww \
flymake forms gnus htmlfontify idlwave ido info.info \
mairix-el message mh-e modus-themes newsticker nxml-mode \
octave-mode org pcl-cvs pgg rcirc reftex remember sasl \
sc semantic ses sieve smtpmail speedbar srecode todo-mode \
tramp transient url vhdl-mode vip viper vtable widget wisent woman
## Info files to install on current platform.
INFO_INSTALL = $(INFO_COMMON) $(DOCMISC_W32)

View file

@ -526,6 +526,8 @@ If several entries match, the one matching the most items (where an
while searching for an entry matching the @code{rms} user on host
@code{gnu.org} and port @code{22}, then the entry
@file{gnu.org:22/rms.gpg} is preferred over @file{gnu.org.gpg}.
However, such processing is not applied when the option
@code{auth-source-pass-extra-parameters} is set to @code{t}.
Users of @code{pass} may also be interested in functionality provided
by other Emacs packages:
@ -549,6 +551,22 @@ Set this variable to a string that should separate an host name from a
port in an entry. Defaults to @samp{:}.
@end defvar
@defvar auth-source-pass-extra-query-keywords
This expands the selection of available keywords to include
@code{:max} and @code{:require} and tells more of them to accept a
list of query parameters as an argument. When searching, it also
favors the @samp{rms@@gnu.org.gpg} form for usernames over the
@samp{gnu.org/rms.gpg} form, regardless of whether a @code{:user}
param was provided.
In general, if you prefer idiosyncrasies traditionally exhibited by
this backend, such as prioritizing field count in a filename, try
setting this option to @code{nil}. But, if you experience problems
predicting the outcome of searches relative to other auth-source
backends or encounter code expecting to query multiple backends
uniformly, try flipping it back to @code{t} (the default).
@end defvar
@node Help for developers
@chapter Help for developers

View file

@ -580,7 +580,7 @@ you are going to be editing AWK files, @file{README} describes how to
configure your (X)Emacs so that @ccmode{} will supersede the obsolete
@code{awk-mode.el} which might have been supplied with your (X)Emacs.
@ccmode{} might not work with older versions of Emacs or XEmacs. See
the @ccmode{} release notes at @uref{http://cc-mode.sourceforge.net}
the @ccmode{} release notes at @uref{https://cc-mode.sourceforge.net}
for the latest information on Emacs version and package compatibility
(@pxref{Updating CC Mode}).
@ -2191,7 +2191,7 @@ foo& bar
@defvar c-asymmetry-fontification-flag
@vindex asymmetry-fontification-flag @r{(c-)}
When @code{c-asymmetry-fontification-flag} is non-nil (which it is by
When @code{c-asymmetry-fontification-flag} is non-@code{nil} (which it is by
default), code like the above, with white space either before or after
the operator, but not both, is fontified as a declaration. When the
variable is nil, such a construct gets the default face.
@ -3170,7 +3170,7 @@ E. Jones' Filladapt package@footnote{It's available from
lack a feature that makes it work suboptimally when
@code{c-comment-prefix-regexp} matches the empty string (which it does
by default). A patch for that is available from
@uref{http://cc-mode.sourceforge.net/,, the CC Mode web site}.},
@uref{https://cc-mode.sourceforge.net/,, the CC Mode web site}.},
@c 2005/11/22: The above is still believed to be the case.
which handles things like bulleted lists nicely. There's a convenience
function @code{c-setup-filladapt} that tunes the relevant variables in
@ -7583,7 +7583,7 @@ have old versions of @ccmode{} and so should be upgraded. Access to the
compatibility, etc.@: are all available on the web site:
@quotation
@uref{http://cc-mode.sourceforge.net/}
@uref{https://cc-mode.sourceforge.net/}
@end quotation
@ -7617,7 +7617,7 @@ the GNU Bug Tracker at @url{https://debbugs.gnu.org}, then sends it on
to @email{bug-cc-mode@@gnu.org}. You can also send reports, other
questions, and suggestions (kudos?@: @t{;-)} to that address. It's a
mailing list which you can join or browse an archive of; see the web site at
@uref{http://cc-mode.sourceforge.net/} for further details.
@uref{https://cc-mode.sourceforge.net/} for further details.
@cindex announcement mailing list
If you want to get announcements of new @ccmode{} releases, send the

View file

@ -3381,9 +3381,9 @@ true for all elements.
@defun cl-reduce function seq @t{&key :from-end :start :end :initial-value :key}
This function returns the result of calling @var{function} on the
first and second element of @var{seq}, then calling @var{function}
first and second elements of @var{seq}, then calling @var{function}
with that result and the third element of @var{seq}, then with that
result and the third element of @var{seq}, etc.
result and the fourth element of @var{seq}, etc.
Here is an example. Suppose @var{function} is @code{*} and @var{seq}
is the list @code{(2 3 4 5)}. The first two elements of the list are
@ -4051,7 +4051,7 @@ following keywords can be used:
@table @code
@item :read-only
A non-nil value means the slot should not be @code{setf}-able;
A non-@code{nil} value means the slot should not be @code{setf}-able;
the slot's value is determined when the object is created and does
not change afterward.

View file

@ -1432,7 +1432,7 @@ See @file{ede-proj-obj.el} for examples of the combination.
@item ede-project-placeholder
@table @asis
@item Children:
@w{@xref{ede-project}.}
@xref{ede-project}.
@end table
@end table
@end table
@ -1515,12 +1515,12 @@ Make sure placeholder @var{THIS} is replaced with the real thing, and pass throu
@table @code
@item eieio-speedbar-directory-button
@table @code
@item @w{@xref{ede-project-placeholder}.}
@item @xref{ede-project-placeholder}.
@table @code
@item ede-project
@table @asis
@item Children:
@w{@xref{ede-cpp-root-project},} @w{ede-emacs-project,} @w{ede-linux-project,} @w{ede-maven-project,} @w{@xref{ede-simple-project},} @w{@xref{ede-simple-base-project},} @w{@xref{ede-proj-project},} @w{@xref{project-am-makefile},} @w{@xref{ede-step-project}.}
@xref{ede-cpp-root-project}, @w{ede-emacs-project,} @w{ede-linux-project,} @w{ede-maven-project,} @xref{ede-simple-project}, @xref{ede-simple-base-project}, @xref{ede-proj-project}, @xref{project-am-makefile}, @xref{ede-step-project}.
@end table
@end table
@end table
@ -1801,9 +1801,9 @@ Commit change to local variables in @var{PROJ}.
@table @code
@item eieio-speedbar-directory-button
@table @code
@item @w{@xref{ede-project-placeholder}.}
@item @xref{ede-project-placeholder}.
@table @code
@item @w{@xref{ede-project}.}
@item @xref{ede-project}.
@table @code
@item ede-cpp-root-project
No children
@ -1923,9 +1923,9 @@ This knows details about or source tree.
@table @code
@item eieio-speedbar-directory-button
@table @code
@item @w{@xref{ede-project-placeholder}.}
@item @xref{ede-project-placeholder}.
@table @code
@item @w{@xref{ede-project}.}
@item @xref{ede-project}.
@table @code
@item ede-simple-project
No children
@ -1953,9 +1953,9 @@ Commit any change to @var{PROJ} to its file.
@table @code
@item eieio-speedbar-directory-button
@table @code
@item @w{@xref{ede-project-placeholder}.}
@item @xref{ede-project-placeholder}.
@table @code
@item @w{@xref{ede-project}.}
@item @xref{ede-project}.
@table @code
@item ede-simple-base-project
No children
@ -1983,9 +1983,9 @@ This one project could control a tree of subdirectories.
@table @code
@item eieio-speedbar-directory-button
@table @code
@item @w{@xref{ede-project-placeholder}.}
@item @xref{ede-project-placeholder}.
@table @code
@item @w{@xref{ede-project}.}
@item @xref{ede-project}.
@table @code
@item ede-proj-project
No children
@ -2173,9 +2173,9 @@ Commit change to local variables in @var{PROJ}.
@table @code
@item eieio-speedbar-directory-button
@table @code
@item @w{@xref{ede-project-placeholder}.}
@item @xref{ede-project-placeholder}.
@table @code
@item @w{@xref{ede-project}.}
@item @xref{ede-project}.
@table @code
@item project-am-makefile
No children
@ -2215,9 +2215,9 @@ buffer being in order to provide a smart default target type.
@table @code
@item eieio-speedbar-directory-button
@table @code
@item @w{@xref{ede-project-placeholder}.}
@item @xref{ede-project-placeholder}.
@table @code
@item @w{@xref{ede-project}.}
@item @xref{ede-project}.
@table @code
@item ede-step-project
No children
@ -2371,7 +2371,7 @@ Commit change to local variables in @var{PROJ}.
@item ede-target
@table @asis
@item Children:
@w{ede-cpp-root-target,} @w{ede-emacs-target-c,} @w{ede-emacs-target-el,} @w{ede-emacs-target-misc,} @w{ede-linux-target-c,} @w{ede-linux-target-misc,} @w{ede-maven-target-java,} @w{ede-maven-target-c,} @w{ede-maven-target-misc,} @w{ede-simple-target,} @w{@xref{ede-proj-target},} @w{@xref{project-am-target}.}
@w{ede-cpp-root-target,} @w{ede-emacs-target-c,} @w{ede-emacs-target-el,} @w{ede-emacs-target-misc,} @w{ede-linux-target-c,} @w{ede-linux-target-misc,} @w{ede-maven-target-java,} @w{ede-maven-target-c,} @w{ede-maven-target-misc,} @w{ede-simple-target,} @xref{ede-proj-target}, @xref{project-am-target}.
@end table
@end table
@end table
@ -2536,7 +2536,7 @@ Call this when a user finishes customizing @var{TARGET}.
@end deffn
@deffn Method project-edit-file-target :AFTER ot
Edit the target @var{OT} associated w/ this file.
Edit the target @var{OT} associated with this file.
@end deffn
@deffn Method ede-documentation :AFTER this
@ -2577,12 +2577,12 @@ Retrieves the slot @code{menu} from an object of class @code{ede-target}
@table @code
@item eieio-speedbar-directory-button
@table @code
@item @w{@xref{ede-target}.}
@item @xref{ede-target}.
@table @code
@item ede-proj-target
@table @asis
@item Children:
@w{@xref{ede-proj-target-makefile},} @w{ede-proj-target-aux,} @w{@xref{ede-proj-target-scheme}.}
@xref{ede-proj-target-makefile}, @w{ede-proj-target-aux,} @xref{ede-proj-target-scheme}.
@end table
@end table
@end table
@ -2766,14 +2766,14 @@ sources variable.
@table @code
@item eieio-speedbar-directory-button
@table @code
@item @w{@xref{ede-target}.}
@item @xref{ede-target}.
@table @code
@item @w{@xref{ede-proj-target}.}
@item @xref{ede-proj-target}.
@table @code
@item ede-proj-target-makefile
@table @asis
@item Children:
@w{@xref{semantic-ede-proj-target-grammar},} @w{@xref{ede-proj-target-makefile-objectcode},} @w{@xref{ede-proj-target-elisp},} @w{@xref{ede-proj-target-makefile-miscelaneous},} @w{@xref{ede-proj-target-makefile-info}.}
@xref{semantic-ede-proj-target-grammar}, @xref{ede-proj-target-makefile-objectcode}, @xref{ede-proj-target-elisp}, @xref{ede-proj-target-makefile-miscelaneous}, @xref{ede-proj-target-makefile-info}.
@end table
@end table
@end table
@ -2864,11 +2864,11 @@ Use @var{CONFIGURATION} as the current configuration to query.
@table @code
@item eieio-speedbar-directory-button
@table @code
@item @w{@xref{ede-target}.}
@item @xref{ede-target}.
@table @code
@item @w{@xref{ede-proj-target}.}
@item @xref{ede-proj-target}.
@table @code
@item @w{@xref{ede-proj-target-makefile}.}
@item @xref{ede-proj-target-makefile}.
@table @code
@item semantic-ede-proj-target-grammar
No children
@ -2918,16 +2918,16 @@ Argument @var{THIS} is the target that should insert stuff.
@table @code
@item eieio-speedbar-directory-button
@table @code
@item @w{@xref{ede-target}.}
@item @xref{ede-target}.
@table @code
@item @w{@xref{ede-proj-target}.}
@item @xref{ede-proj-target}.
@table @code
@item @w{@xref{ede-proj-target-makefile}.}
@item @xref{ede-proj-target-makefile}.
@table @code
@item ede-proj-target-makefile-objectcode
@table @asis
@item Children:
@w{@xref{ede-proj-target-makefile-archive},} @w{@xref{ede-proj-target-makefile-program}.}
@xref{ede-proj-target-makefile-archive}, @xref{ede-proj-target-makefile-program}.
@end table
@end table
@end table
@ -2980,13 +2980,13 @@ Argument @var{THIS} is the target to get sources from.
@table @code
@item eieio-speedbar-directory-button
@table @code
@item @w{@xref{ede-target}.}
@item @xref{ede-target}.
@table @code
@item @w{@xref{ede-proj-target}.}
@item @xref{ede-proj-target}.
@table @code
@item @w{@xref{ede-proj-target-makefile}.}
@item @xref{ede-proj-target-makefile}.
@table @code
@item @w{@xref{ede-proj-target-makefile-objectcode}.}
@item @xref{ede-proj-target-makefile-objectcode}.
@table @code
@item ede-proj-target-makefile-archive
No children
@ -3023,18 +3023,18 @@ Makefile.am generator, so use it to add this important bin program.
@table @code
@item eieio-speedbar-directory-button
@table @code
@item @w{@xref{ede-target}.}
@item @xref{ede-target}.
@table @code
@item @w{@xref{ede-proj-target}.}
@item @xref{ede-proj-target}.
@table @code
@item @w{@xref{ede-proj-target-makefile}.}
@item @xref{ede-proj-target-makefile}.
@table @code
@item @w{@xref{ede-proj-target-makefile-objectcode}.}
@item @xref{ede-proj-target-makefile-objectcode}.
@table @code
@item ede-proj-target-makefile-program
@table @asis
@item Children:
@w{@xref{ede-proj-target-makefile-shared-object}.}
@xref{ede-proj-target-makefile-shared-object}.
@end table
@end table
@end table
@ -3102,15 +3102,15 @@ Insert bin_PROGRAMS variables needed by target @var{THIS}.
@table @code
@item eieio-speedbar-directory-button
@table @code
@item @w{@xref{ede-target}.}
@item @xref{ede-target}.
@table @code
@item @w{@xref{ede-proj-target}.}
@item @xref{ede-proj-target}.
@table @code
@item @w{@xref{ede-proj-target-makefile}.}
@item @xref{ede-proj-target-makefile}.
@table @code
@item @w{@xref{ede-proj-target-makefile-objectcode}.}
@item @xref{ede-proj-target-makefile-objectcode}.
@table @code
@item @w{@xref{ede-proj-target-makefile-program}.}
@item @xref{ede-proj-target-makefile-program}.
@table @code
@item ede-proj-target-makefile-shared-object
No children
@ -3162,16 +3162,16 @@ Makefile.am generator, so use it to add this important bin program.
@table @code
@item eieio-speedbar-directory-button
@table @code
@item @w{@xref{ede-target}.}
@item @xref{ede-target}.
@table @code
@item @w{@xref{ede-proj-target}.}
@item @xref{ede-proj-target}.
@table @code
@item @w{@xref{ede-proj-target-makefile}.}
@item @xref{ede-proj-target-makefile}.
@table @code
@item ede-proj-target-elisp
@table @asis
@item Children:
@w{@xref{ede-proj-target-elisp-autoloads}.}
@xref{ede-proj-target-elisp-autoloads}.
@end table
@end table
@end table
@ -3238,13 +3238,13 @@ is found, such as a @code{-version} variable, or the standard header.
@table @code
@item eieio-speedbar-directory-button
@table @code
@item @w{@xref{ede-target}.}
@item @xref{ede-target}.
@table @code
@item @w{@xref{ede-proj-target}.}
@item @xref{ede-proj-target}.
@table @code
@item @w{@xref{ede-proj-target-makefile}.}
@item @xref{ede-proj-target-makefile}.
@table @code
@item @w{@xref{ede-proj-target-elisp}.}
@item @xref{ede-proj-target-elisp}.
@table @code
@item ede-proj-target-elisp-autoloads
No children
@ -3353,11 +3353,11 @@ sources variable.
@table @code
@item eieio-speedbar-directory-button
@table @code
@item @w{@xref{ede-target}.}
@item @xref{ede-target}.
@table @code
@item @w{@xref{ede-proj-target}.}
@item @xref{ede-proj-target}.
@table @code
@item @w{@xref{ede-proj-target-makefile}.}
@item @xref{ede-proj-target-makefile}.
@table @code
@item ede-proj-target-makefile-miscelaneous
No children
@ -3409,11 +3409,11 @@ Return a list of files which @var{THIS} target depends on.
@table @code
@item eieio-speedbar-directory-button
@table @code
@item @w{@xref{ede-target}.}
@item @xref{ede-target}.
@table @code
@item @w{@xref{ede-proj-target}.}
@item @xref{ede-proj-target}.
@table @code
@item @w{@xref{ede-proj-target-makefile}.}
@item @xref{ede-proj-target-makefile}.
@table @code
@item ede-proj-target-makefile-info
No children
@ -3495,9 +3495,9 @@ when working in Automake mode.
@table @code
@item eieio-speedbar-directory-button
@table @code
@item @w{@xref{ede-target}.}
@item @xref{ede-target}.
@table @code
@item @w{@xref{ede-proj-target}.}
@item @xref{ede-proj-target}.
@table @code
@item ede-proj-target-scheme
No children
@ -3539,12 +3539,12 @@ Tweak the configure file (current buffer) to accommodate @var{THIS}.
@table @code
@item eieio-speedbar-directory-button
@table @code
@item @w{@xref{ede-target}.}
@item @xref{ede-target}.
@table @code
@item project-am-target
@table @asis
@item Children:
@w{@xref{project-am-objectcode},} @w{project-am-header,} @w{@xref{project-am-lisp},} @w{@xref{project-am-texinfo},} @w{@xref{project-am-man}.}
@xref{project-am-objectcode}, @w{project-am-header,} @xref{project-am-lisp}, @xref{project-am-texinfo}, @xref{project-am-man}.
@end table
@end table
@end table
@ -3563,7 +3563,7 @@ Run the current project in the debugger.
@end deffn
@deffn Method project-edit-file-target :AFTER obj
Edit the target associated w/ this file.
Edit the target associated with this file.
@end deffn
@node project-am-objectcode
@ -3577,14 +3577,14 @@ Edit the target associated w/ this file.
@table @code
@item eieio-speedbar-directory-button
@table @code
@item @w{@xref{ede-target}.}
@item @xref{ede-target}.
@table @code
@item @w{@xref{project-am-target}.}
@item @xref{project-am-target}.
@table @code
@item project-am-objectcode
@table @asis
@item Children:
@w{@xref{project-am-program},} @w{project-am-lib.}
@xref{project-am-program}, @w{project-am-lib.}
@end table
@end table
@end table
@ -3622,11 +3622,11 @@ There are no default header files.
@table @code
@item eieio-speedbar-directory-button
@table @code
@item @w{@xref{ede-target}.}
@item @xref{ede-target}.
@table @code
@item @w{@xref{project-am-target}.}
@item @xref{project-am-target}.
@table @code
@item @w{@xref{project-am-objectcode}.}
@item @xref{project-am-objectcode}.
@table @code
@item project-am-program
No children
@ -3660,9 +3660,9 @@ Additional LD args.
@table @code
@item eieio-speedbar-directory-button
@table @code
@item @w{@xref{ede-target}.}
@item @xref{ede-target}.
@table @code
@item @w{@xref{project-am-target}.}
@item @xref{project-am-target}.
@table @code
@item @w{project-am-header.}
@table @code
@ -3693,9 +3693,9 @@ Return the default macro to 'edit' for this object.
@table @code
@item eieio-speedbar-directory-button
@table @code
@item @w{@xref{ede-target}.}
@item @xref{ede-target}.
@table @code
@item @w{@xref{project-am-target}.}
@item @xref{project-am-target}.
@table @code
@item @w{project-am-header.}
@table @code
@ -3726,9 +3726,9 @@ Return the default macro to 'edit' for this object.
@table @code
@item eieio-speedbar-directory-button
@table @code
@item @w{@xref{ede-target}.}
@item @xref{ede-target}.
@table @code
@item @w{@xref{project-am-target}.}
@item @xref{project-am-target}.
@table @code
@item project-am-lisp
No children
@ -3756,9 +3756,9 @@ Return the default macro to 'edit' for this object.
@table @code
@item eieio-speedbar-directory-button
@table @code
@item @w{@xref{ede-target}.}
@item @xref{ede-target}.
@table @code
@item @w{@xref{project-am-target}.}
@item @xref{project-am-target}.
@table @code
@item project-am-texinfo
No children
@ -3808,9 +3808,9 @@ files in the project.
@table @code
@item eieio-speedbar-directory-button
@table @code
@item @w{@xref{ede-target}.}
@item @xref{ede-target}.
@table @code
@item @w{@xref{project-am-target}.}
@item @xref{project-am-target}.
@table @code
@item project-am-man
No children
@ -3963,7 +3963,7 @@ compile commands.
@item ede-compilation-program
@table @asis
@item Children:
@w{@xref{ede-compiler},} @w{@xref{ede-linker}.}
@xref{ede-compiler}, @xref{ede-linker}.
@end table
@end table
@end table
@ -4071,12 +4071,12 @@ Tweak the configure file (current buffer) to accommodate @var{THIS}.
@table @code
@item eieio-instance-inheritor
@table @code
@item @w{@xref{ede-compilation-program}.}
@item @xref{ede-compilation-program}.
@table @code
@item ede-compiler
@table @asis
@item Children:
@w{@xref{ede-object-compiler},} @w{semantic-ede-grammar-compiler-class.}
@xref{ede-object-compiler}, @w{semantic-ede-grammar-compiler-class.}
@end table
@end table
@ -4179,9 +4179,9 @@ Return a string based on @var{THIS} representing a make object variable.
@table @code
@item eieio-instance-inheritor
@table @code
@item @w{@xref{ede-compilation-program}.}
@item @xref{ede-compilation-program}.
@table @code
@item @w{@xref{ede-compiler}.}
@item @xref{ede-compiler}.
@table @code
@item ede-object-compiler
No children
@ -4222,7 +4222,7 @@ Insert variables needed by the compiler @var{THIS}.
@table @code
@item eieio-instance-inheritor
@table @code
@item @w{@xref{ede-compilation-program}.}
@item @xref{ede-compilation-program}.
@table @code
@item ede-linker
No children

View file

@ -1744,7 +1744,7 @@ date now, so no concrete pointers are available.
You will need an implementation of TeX for Windows.
A number of implementations are listed on the
@uref{http://www.tug.org/interest.html#free, TeX Users Group} website.
@uref{https://www.tug.org/interest.html#free, TeX Users Group} website.
@node Spell check
@section How do I perform spell checks?
@ -1899,7 +1899,7 @@ Christopher Payne wrote a Visual Studio add-in that makes Emacs the
default text editor, this has now been taken over by Jeff Paquette.
See the following two URLs for details:
@itemize
@item @uref{http://sourceforge.net/projects/visemacs/} for the latest version.
@item @uref{https://sourceforge.net/projects/visemacs/} for the latest version.
@item @uref{http://www.smathers.net/VisEmacs.htm} for notes on usage.
@end itemize
@ -2039,7 +2039,7 @@ this option is set. (I don't see it on VC++ 4.0.)
@cindex Borland C++, integration with Emacs
Jonathan Arnold has written an
@uref{http://www.buddydog.org/C++Builder/c++builder.html, EmacsEdit
@uref{https://www.buddydog.org/C++Builder/c++builder.html, EmacsEdit
``expert''} for interfacing C++ Builder and Emacs.
@node Version control
@ -2194,7 +2194,7 @@ to port software to Windows.
@cindex image libraries, gnuwin32
@cindex image libraries, development
@uref{http://gnuwin32.sourceforge.net/}
@uref{https://gnuwin32.sourceforge.net/}
GnuWin32 provides precompiled native Windows ports of a wide selection
of Free software and libraries. Unfortunately, the ports are

View file

@ -2668,7 +2668,7 @@ To disable or change the way backups are made,
@cindex Backup files in a single directory
You can control where Emacs puts backup files by customizing the
variable @code{backup-directory-alist}. This variable's value
specifies that files whose names match specific patters should have
specifies that files whose names match specific patterns should have
their backups put in certain directories. A typical use is to add the
element @code{("." . @var{dir})} to force Emacs to put @strong{all}
backup files in the directory @file{dir}.
@ -3622,13 +3622,13 @@ To build Emacs from source for MS-DOS, see the instructions in the file
on plain DOS, and also on all versions of MS-Windows from version 3.X
onwards, including Windows XP and Vista. Pre-built binaries may be
available at
@uref{http://www.delorie.com/pub/djgpp/current/v2gnu/emacs.README}
@uref{https://www.delorie.com/pub/djgpp/current/v2gnu/emacs.README}
For a list of other implementations of Emacs (and Emacs
look-alikes), consult the list of ``Emacs implementations and literature,''
available at
@uref{http://www.finseth.com/emacs.html}
@uref{https://www.finseth.com/emacs.html}
Note that while many of these programs look similar to Emacs, they often
lack certain features, such as the Emacs Lisp extension language.
@ -3757,7 +3757,7 @@ Various spell-checkers are compatible with Emacs, including:
@table @b
@item Hunspell
@uref{http://hunspell.sourceforge.net/}
@uref{https://hunspell.github.io/}
@item GNU Aspell
@uref{http://aspell.net/}

1160
doc/misc/eglot.texi Normal file

File diff suppressed because it is too large Load diff

View file

@ -79,6 +79,7 @@ Advanced Usage
* Connecting:: Ways of connecting to an IRC server.
* Sample Configuration:: An example configuration file.
* Integrations:: Integrations available for ERC.
* Options:: Options that are available for ERC.
@end detailmenu
@ -526,6 +527,7 @@ Translate morse code in messages
@menu
* Connecting:: Ways of connecting to an IRC server.
* Sample Configuration:: An example configuration file.
* Integrations:: Integrations available for ERC.
* Options:: Options that are available for ERC.
@end menu
@ -861,7 +863,8 @@ The default value for all three options is the function
@code{erc-auth-source-search}. It tries to merge relevant contextual
parameters with those provided or discovered from the logical connection
or the underlying transport. Some auth-source back ends may not be
compatible; netrc, plstore, json, and secrets are currently supported.
compatible; netrc, plstore, json, secrets, and pass are currently
supported.
@end defopt
@subheading Full name
@ -990,6 +993,32 @@ stuff, to the current ERC buffer."
;; (setq erc-kill-server-buffer-on-quit t)
@end lisp
@node Integrations
@section Integrations
@cindex integrations
@subheading URL
For anything to work, you'll want to set @code{url-irc-function} to
@code{url-irc-erc}. As a rule of thumb, libraries relying directly on
@code{url-retrieve} should be fine out the box from Emacs 29.1 onward.
On older versions of Emacs, you may need to @code{(require 'erc)}
beforehand. @pxref{Retrieving URLs,,, url, URL}.
For other apps and libraries, such as those relying on the
higher-level @code{browse-url}, you'll oftentimes be asked to specify
a pattern, sometimes paired with a function that accepts a string URL
as a first argument. For example, with EWW, you may need to tack
something like @code{"\\|\\`irc6?s?:"} onto the end of
@code{eww-use-browse-url}. But with @code{gnus-button-alist}, you'll
need a function as well:
@lisp
'("\\birc6?s?://[][a-z0-9.,@@_:+%?&/#-]+" 0 t browse-url-irc 0)
@end lisp
@noindent
Users on Emacs 28 and below may need to use @code{browse-url} instead.
@node Options
@section Options
@cindex options

View file

@ -439,11 +439,6 @@ Print the current local time as a human-readable string. This command
is similar to, but slightly different from, the GNU Coreutils
@command{date} command.
@item define
@cmindex define
Define a variable alias.
@xref{Variable Aliases, , , elisp, The Emacs Lisp Reference Manual}.
@item diff
@cmindex diff
Compare files using Emacs's internal @code{diff} (not to be confused
@ -699,10 +694,18 @@ used for comparing lists of strings.
This command can be loaded as part of the eshell-xtra module, which is
disabled by default.
@item set
@cmindex set
Set variable values, using the function @code{set} like a command
(@pxref{Setting Variables,,, elisp, GNU Emacs Lisp Reference Manual}).
A variable name can be a symbol, in which case it refers to a Lisp
variable, or a string, referring to an environment variable
(@pxref{Arguments}).
@item setq
@cmindex setq
Set variable values, using the function @code{setq} like a command.
@xref{Setting Variables,,, elisp, GNU Emacs Lisp Reference Manual}.
Set variable values, using the function @code{setq} like a command
(@pxref{Setting Variables,,, elisp, GNU Emacs Lisp Reference Manual}).
@item source
@cmindex source
@ -714,9 +717,12 @@ current environment.
@cmindex su
@itemx sudo
@cmindex sudo
Uses TRAMP's @command{su} or @command{sudo} method @pxref{Inline methods, , , tramp}
to run a command via @command{su} or @command{sudo}. These commands
are in the eshell-tramp module, which is disabled by default.
@itemx doas
@cmindex doas
Uses TRAMP's @command{su}, @command{sudo}, or @command{doas} method
@pxref{Inline methods, , , tramp} to run a command via @command{su},
@command{sudo}, or @command{doas}. These commands are in the
eshell-tramp module, which is disabled by default.
@item substitute
@ -748,7 +754,9 @@ disabled by default.
@item unset
@cmindex unset
Unset an environment variable.
Unset one or more variables. As with @command{set}, a variable name
can be a symbol, in which case it refers to a Lisp variable, or a
string, referring to an environment variable.
@item wait
@cmindex wait
@ -795,12 +803,12 @@ command-line switch:
@table @var
@item short
This element, if non-nil, should be a character to be used as a short
This element, if non-@code{nil}, should be a character to be used as a short
switch, like @code{-@var{short}}. At least one of this element and
@var{long} must be non-nil.
@var{long} must be non-@code{nil}.
@item long
This element, if non-nil, should be a string to be used as a long
This element, if non-@code{nil}, should be a string to be used as a long
switch, like @code{--@var{long}}.
@item value
@ -886,12 +894,35 @@ For example, you could handle a subset of the options for the
@node Variables
@section Variables
Since Eshell is just an Emacs @acronym{REPL}@footnote{
@vindex eshell-prefer-lisp-variables
Since Eshell is a combination of an Emacs @acronym{REPL}@footnote{
Short for ``Read-Eval-Print Loop''.
}
, it does not have its own scope, and simply stores variables the same
you would in an Elisp program. Eshell provides a command version of
@code{setq} for convenience.
} and a command shell, it can refer to variables from two different
sources: ordinary Emacs Lisp variables, as well as environment
variables. By default, when using a variable in Eshell, it will first
look in the list of built-in variables, then in the list of
environment variables, and finally in the list of Lisp variables. If
you would prefer to use Lisp variables over environment variables, you
can set @code{eshell-prefer-lisp-variables} to @code{t}.
You can set variables in a few different ways. To set a Lisp
variable, you can use the command @samp{setq @var{name} @var{value}},
which works much like its Lisp counterpart (@pxref{Setting Variables,
, , elisp, The Emacs Lisp Reference Manual}). To set an environment
variable, use @samp{export @var{name}=@var{value}}. You can also use
@samp{set @var{variable} @var{value}}, which sets a Lisp variable if
@var{variable} is a symbol, or an environment variable if it's a
string (@pxref{Arguments}). Finally, you can temporarily set
environment variables for a single command with
@samp{@var{name}=@var{value} @var{command} @dots{}}. This is
equivalent to:
@example
@{
export @var{name}=@var{value}
@var{command} @dots{}
@}
@end example
@subsection Built-in variables
Eshell knows a few built-in variables:
@ -914,6 +945,16 @@ When using @code{$-}, you can also access older directories in the
directory ring via subscripting, e.g.@: @samp{$-[1]} refers to the
working directory @emph{before} the previous one.
@vindex $PATH
@item $PATH
This specifies the directories to search for executable programs. Its
value is a string, separated by @code{":"} for Unix and GNU systems,
and @code{";"} for MS systems. This variable is connection-aware, so
whenever you change the current directory to a different host
(@pxref{Remote Files, , , emacs, The GNU Emacs Manual}),
the value will automatically update to reflect the search path on that
host.
@vindex $_
@item $_
This refers to the last argument of the last command. With a
@ -1085,7 +1126,7 @@ Repeatedly evaluate @var{commands} until @var{conditional} is
satisfied.
@item for @var{var} in @var{list}@dots{} @{ @var{commands} @}
Iterate over each element of of @var{list}, storing the element in
Iterate over each element of @var{list}, storing the element in
@var{var} and evaluating @var{commands}. If @var{list} is not a list,
treat it as a list of one element. If you specify multiple
@var{lists}, this will iterate over each of them in turn.
@ -1138,7 +1179,7 @@ a number if possible.
@item one or both (non-@code{nil}) lists
Concatenate ``adjacent'' elements of each value (possibly converting
back to a number as above). For example, @samp{$list("a" "b")c}
back to a number as above). For example, @samp{$(list "a" "b")c}
returns @samp{("a" "bc")}.
@item anything else

View file

@ -85,6 +85,10 @@ LDAP, Lightweight Directory Access Protocol
BBDB, Big Brother's Insidious Database
@item
macOS Contacts
@item
@code{ecomplete}, Emacs's electrical completion
@item
@code{mailabbrev}, Emacs's abbrev-expansion of mail aliases
@end itemize
The main features of the EUDC interface are:
@ -110,6 +114,8 @@ Interface to BBDB to let you insert server records into your own BBDB database
* LDAP:: What is LDAP ?
* BBDB:: What is BBDB ?
* macOS Contacts:: What is macOS Contacts ?
* ecomplete:: What is @code{ecomplete} ?
* mailabbrev:: What is @code{mailabbrev}?
@end menu
@ -173,14 +179,73 @@ Address Book; the EUDC macOS Contacts back end also works on those
older versions.
@node ecomplete
@section @code{ecomplete}
@code{ecomplete} is Emacs's ``electric completion'', and it is part of
Emacs. It stores all information in an @file{ecompleterc} file, whose
location, and name can be configured via the variable
@code{ecomplete-database-file} (which see). The format of the file
is:
@display
((TYPE_1 ITEM_1 ITEM_2 ...)
(TYPE_2 ITEM_N+1 ITEM_N+2 ...)
...)
@end display
That is, it is an alist map where the key is the type of match (so
that you can have one list of things for ``mail'', and one for, say,
``mastodon''). In each of these sections you then have a list where
each item is of the form:
@display
(KEY TIMES-USED LAST-TIME-USED STRING)
@end display
When performing a query, the result will be all items where the search
term matches all, or part of STRING.
When EUDC performs queries with @code{ecomplete}, the name of each
attribute making up the query is used as the type in which the lookup
is performed. The mapping from EUDC attribute names to
@code{ecomplete} type names is performed according to the variable
@code{eudc-ecomplete-attributes-translation-alist} (which see).
@node mailabbrev
@section @code{mailabbrev}
@code{mailabbrev} is Emacs's ``abbrev-expansion of mail aliases'', and
it is part of Emacs. It stores all information in a @file{mailrc}
file, whose location, and name can be configured via the variable
@code{mail-personal-alias-file} (which see). The @file{mailrc} file
has the same format as the @command{mail} and @command{mailx} commands
use for their startup configuration file. @code{mailabbrev} processes
@samp{alias}, and @samp{source} statements in the @file{mailrc} file.
@samp{alias} statements can define simple aliases and distribution
lists, and can be nested in that the alias expansion can contain
references to other alias definitions. Forward references, that is
references to aliases before they are actually defined, are possible,
too.
Originally, @code{mailabbrev} was designed to be used with
@code{abbrev-mode}. The @code{mailabbrev} EUDC backend does not use
@code{abbrev-mode}, but queries @code{mailabbrev} for alias entries
only, and returns these as EUDC results. All entries where the alias
name exactly equals either the @code{email}, @code{name}, or
@code{firstname} attribute value in the EUDC query, will be returned
as matches. When a @file{mailrc} alias defines a distribution list,
that is it expands to more than one email address, the EUDC result
will contain a single entry, which will contain an email attribute
only, whose value will be a comma-separated list of RFC 5322 formatted
recipient specifications.
@node Installation
@chapter Installation
Add the following to your @file{.emacs} init file:
@lisp
(require 'eudc)
@end lisp
This will install EUDC at startup.
EUDC is built-in to Emacs, and its main functions are autoloaded.
After installing EUDC you will find (the next time you launch Emacs) a
new @code{Directory Search} submenu in the @samp{Tools} menu that will
@ -200,6 +265,8 @@ email composition buffers (@pxref{Inline Query Expansion})
@menu
* LDAP Configuration:: EUDC needs external support for LDAP
* macOS Contacts Configuration:: Enable the macOS Contacts backend
* ecomplete Configuration:: Enable the ecomplete backend
* mailabbrev Configuration:: Enable the mailabbrev backend
@end menu
@node LDAP Configuration
@ -256,7 +323,7 @@ will return all LDAP entries with surnames that begin with
@code{Smith}. In every LDAP query it makes, EUDC implicitly appends
the wildcard character to the end of the last word, except if the word
corresponds to an attribute which is a member of
`eudc-ldap-no-wildcard-attributes'.
@code{eudc-ldap-no-wildcard-attributes}.
@menu
* Emacs-only Configuration:: Configure with @file{.emacs}
@ -406,9 +473,9 @@ level to 5 by appending @code{-d 5} to the command line.
macOS Contacts support is added by means of @file{eudcb-mab.el}, or
@file{eudcb-macos-contacts.el} which are part of Emacs.
To enable a macOS Contacts backend, first `require' the respective
library to load it, and then set the `eudc-server' to localhost in
your init file:
To enable a macOS Contacts backend, first @code{require} the
respective library to load it, and then set the @code{eudc-server} to
localhost in your init file:
@lisp
(require 'eudcb-macos-contacts)
(eudc-macos-contacts-set-server "localhost")
@ -433,6 +500,32 @@ command-line utility before upgrading to a new version of macOS.
existing configurations, and may be removed in a future release.
@node ecomplete Configuration
@section @code{ecomplete} Configuration
@code{ecomplete} is Emacs's ``electrical completion'', and is part of
Emacs. To use it, you will need to set up a database file
(@pxref{ecomplete}) first.
It will be autoloaded on demand.
You can also enable multi-server queries as described in
@pxref{Multi-server Queries}.
@node mailabbrev Configuration
@section @code{mailabbrev} Configuration
@code{mailabbrev} is Emacs's ``abbrev-expansion of mail aliases'', and
it is part of Emacs. To use it, you will need to set up a database file
(@pxref{mailabbrev}) first.
It will be autoloaded on demand.
You can also enable multi-server queries as described in
@pxref{Multi-server Queries}.
@node Usage
@chapter Usage
@ -916,13 +1009,23 @@ in other places, like for example the body of the message.
@section The Server Hotlist
EUDC lets you maintain a list of frequently used servers so that you
can easily switch from one to another. This hotlist appears in the
@samp{Server} submenu. You select a server in this list by clicking on
its name. You can add the current server to the list with the command
@kbd{M-x eudc-bookmark-current-server}. The list is contained in the variable
@code{eudc-server-hotlist} which is stored in and retrieved from the file
designated by @code{eudc-options-file}. EUDC also provides a facility to
edit the hotlist interactively (@pxref{The Hotlist Edit Buffer}).
can easily switch from one to another. Most users should configure
the hotlist via Customize, and store the configuration in the main
Emacs initialization file. Configuring it dynamically can be
confusing, particularly if the hotlist settings are saved to
@code{eudc-options-file} automatically. @code{eudc-options-file} is
historical and support for it is still maintained, but new EUDC users
should set @code{eudc-ignore-options-file} to @code{t}.
However, this hotlist also appears in the @samp{Server} submenu. You
select a server in this list by clicking on its name. You can add the
current server to the list with the command @kbd{M-x
eudc-bookmark-current-server}. The list is contained in the variable
@code{eudc-server-hotlist} which is stored in and retrieved from the
file designated by @code{eudc-options-file}, or normal Emacs
initialization if @code{eudc-ignore-options-file} is non-nil. EUDC
also provides a facility to edit the hotlist interactively (@pxref{The
Hotlist Edit Buffer}).
The hotlist is also used to make queries on multiple servers
successively (@pxref{Multi-server Queries}). The order in which the
@ -937,6 +1040,14 @@ Add @var{server} to the hotlist of servers
Add the current server to the hotlist of servers
@end deffn
@defvar eudc-ignore-options-file
If non-nil, then EUDC ignores @code{eudc-options-file} and warns or
issues an error when an attempt is made to use it. Most users should
set this, and keep their EUDC configuration in the main Emacs
initialization file instead. The separate eudc-options file has
created confusion for users in the past.
@end defvar
@defvar eudc-options-file
The name of a file where EUDC stores its internal variables (the
hotlist and the current server). EUDC will try to load that file upon

View file

@ -312,7 +312,7 @@ been reported.
Which fringe (if any) should show the warning/error bitmaps.
@item flymake-wrap-around
If non-nil, moving to errors with @code{flymake-goto-next-error} and
If non-@code{nil}, moving to errors with @code{flymake-goto-next-error} and
@code{flymake-goto-prev-error} wraps around buffer boundaries.
@end vtable
@ -615,7 +615,7 @@ delimited by @var{beg} and @var{end}. @var{type} is a diagnostic
symbol (@pxref{Flymake error types}), and @var{text} is a description
of the problem detected in this region. Most commonly @var{locus} is
the buffer object designating for the current buffer being
syntax-checked. However, it may be a string nameing a file relative
syntax-checked. However, it may be a string naming a file relative
to the current working directory. @xref{Foreign and list-only
diagnostics}, for when this may be useful. Depending on the type of
@var{locus}, @var{beg} and @var{end} are both either buffer positions
@ -844,8 +844,8 @@ Binding,,, elisp, The Emacs Lisp Reference Manual}) to be active.
* Interaction with other modes::
@end menu
@findex flymake-proc-legacy-backend
The backend @code{flymake-proc-legacy-backend} was originally designed
@findex flymake-proc-legacy-flymake
The backend @code{flymake-proc-legacy-flymake} was originally designed
to be extended for supporting new syntax check tools and error message
patterns. It is also controlled by its own set of customization variables
@ -878,7 +878,7 @@ line-idx col-idx err-text-idx)}. @xref{Parsing the output}.
@item flymake-proc-diagnostic-type-pred
A function to classify a diagnostic text as particular type of error.
Should be a function taking an error text and returning a diagnostic
symbol (@pxref{Flymake error types}). If non-nil is returned but
symbol (@pxref{Flymake error types}). If non-@code{nil} is returned but
there is no such symbol in that table, a warning is assumed. If nil
is returned, an error is assumed. Can also be a regular expression
that should match only warnings. This variable replaces the old
@ -1053,7 +1053,7 @@ check-syntax:
@cindex syntax check models
@cindex master file
@code{flymake-proc-legacy-backend} saves a copy of the buffer in a
@code{flymake-proc-legacy-flymake} saves a copy of the buffer in a
temporary file in the buffer's directory (or in the system temporary
directory, for Java files), creates a syntax check command and
launches a process with this command. The output is parsed using a

View file

@ -1330,7 +1330,7 @@ details.
However, what you really want is the Insidious Big Brother
Database bbdb. Get it from
@uref{http://bbdb.sourceforge.net/, bbdb's website}.
@uref{https://bbdb.sourceforge.net/, bbdb's website}.
Now place the following in @file{~/.gnus.el}, to activate bbdb for Gnus:
@example
@ -1782,13 +1782,13 @@ when you're online.
Let's talk about Unix systems first: For the news part,
the easiest solution is a small nntp server like
@uref{https://www.leafnode.org/, Leafnode} or
@uref{http://patrik.iki.fi/sn/, sn},
@uref{https://patrik.iki.fi/sn/, sn},
of course you can also install a full featured news
server like
@uref{https://www.isc.org/othersoftware/, inn}.
Then you want to fetch your Mail, popular choices
are @uref{https://www.fetchmail.info/, fetchmail}
and @uref{http://pyropus.ca/software/getmail/, getmail}.
and @uref{https://pyropus.ca/software/getmail/, getmail}.
You should tell those to write the mail to your disk and
Gnus to read it from there. Last but not least the mail
sending part: This can be done with every MTA like

View file

@ -8045,7 +8045,7 @@ to a string containing the default command and options (default
@findex gnus-summary-muttprint
@vindex gnus-summary-muttprint-program
Save the current article into muttprint. That is, print it using the
external program @uref{http://muttprint.sourceforge.net/,
external program @uref{https://muttprint.sourceforge.net/,
Muttprint}. The program name and options to use is controlled by the
variable @code{gnus-summary-muttprint-program}.
(@code{gnus-summary-muttprint}).
@ -9343,7 +9343,7 @@ Use Gnus rendered based on w3m.
Use @uref{http://emacs-w3m.namazu.org/, emacs-w3m}.
@item w3m-standalone
Use @uref{http://w3m.sourceforge.net/, w3m}.
Use @uref{https://w3m.sourceforge.net/, w3m}.
@item links
Use @uref{http://links.twibright.com/, Links}.
@ -10497,7 +10497,7 @@ normally, but it'll make this command work a whole lot faster. Of
course, it'll make group entry somewhat slow.
@vindex gnus-refer-thread-use-search
If @code{gnus-refer-thread-use-search} is non-nil then those backends
If @code{gnus-refer-thread-use-search} is non-@code{nil} then those backends
that know how to find threads directly will search not just in the
current group but all groups on the same server.
@ -10515,7 +10515,7 @@ is true and the initial referral starts from a summary buffer for a
non-virtual group this may not be possible. In this case a new
summary buffer is created holding a virtual group with the result of
the thread search.) If @code{gnus-refer-thread-limit-to-thread} is
non-nil then the summary buffer will be limited to articles in the
non-@code{nil} then the summary buffer will be limited to articles in the
thread.
@item M-^ (Summary)
@ -13602,7 +13602,7 @@ Here's the method for a public spool:
If you are behind a firewall and only have access to the @acronym{NNTP}
server from the firewall machine, you can instruct Gnus to @code{rlogin}
on the firewall machine and connect with
@uref{http://netcat.sourceforge.net/, netcat} from there to the
@uref{https://netcat.sourceforge.net/, netcat} from there to the
@acronym{NNTP} server.
Doing this can be rather fiddly, but your virtual server definition
should probably look something like this:
@ -21569,7 +21569,7 @@ Search Groups}).
Search queries can be specified one of two ways: either using the
syntax of the engine responsible for the group you're searching, or
using Gnus' generalized search syntax. Set the option
@code{gnus-search-use-parsed-queries} to a non-nil value to used the
@code{gnus-search-use-parsed-queries} to a non-@code{nil} value to used the
generalized syntax. The advantage of this syntax is that, if you have
multiple backends indexed by different engines, you don't need to
remember which one you're searching---it's also possible to issue the
@ -21592,11 +21592,10 @@ details on Gnus' query language, see @ref{Search Queries}.
In order to search for messages from any given server, that server
must have a search engine associated with it. IMAP servers do their
own searching (theoretically it is possible to use a different engine
to search an IMAP store, but we don't recommend it), but in all other
cases the user will have to manually specify an engine to use. This
can be done at two different levels: by server type, or on a
per-server basis.
own searching, and searching IMAP groups will work with no additional
configuration, but in all other cases the user will have to manually
specify an engine to use. This can be done at two different levels:
by server type, or on a per-server basis.
@vindex gnus-search-default-engines
The option @code{gnus-search-default-engines} assigns search engines
@ -21900,14 +21899,13 @@ be found at
@uref{http://www.rpcurnow.force9.co.uk/mairix/index.html}
Though mairix might not be as flexible as other search tools like
swish++ or namazu, which you can use via the @code{nnir} back end, it
has the prime advantage of being incredibly fast. On current systems, it
can easily search through headers and message bodies of thousands and
thousands of mails in well under a second. Building the database
necessary for searching might take a minute or two, but only has to be
done once fully. Afterwards, the updates are done incrementally and
therefore are really fast, too. Additionally, mairix is very easy to set
up.
swish++ or namazu, it has the prime advantage of being incredibly
fast. On current systems, it can easily search through headers and
message bodies of thousands and thousands of mails in well under a
second. Building the database necessary for searching might take a
minute or two, but only has to be done once fully. Afterwards, the
updates are done incrementally and therefore are really fast, too.
Additionally, mairix is very easy to set up.
For maximum speed though, mairix should be used with mails stored in
@code{Maildir} or @code{MH} format (this includes the @code{nnml} back
@ -22545,6 +22543,21 @@ to you, using @kbd{G b u} and updating the group will usually fix this.
@end itemize
@node nnir
@section Migrating from nnir
@cindex nnir
Gnus' previous search engine was called nnir, and is obsolete as of
Emacs version 28. If you've upgraded Emacs and are now getting
obsolete-variable warnings about @code{nnir-*} variables, migration is
fairly straightforward. In addition to the variables raised by the
warnings, all previous engine-specific variables can be updated by
simply replacing the @code{nnir-} prefix with @code{gnus-search-}.
For instance, @code{nnir-notmuch-program} is now
@code{gnus-search-notmuch-program}.
@iftex
@iflatex
@chapter Message
@ -23794,7 +23807,7 @@ On a GNU/Linux system, the @code{display} program is included in the
ImageMagick package. For external conversion programs look for packages
with names like @code{netpbm}, @code{libgr-progs} and @code{compface}.
On Windows, you may use the packages @code{netpbm} and @code{compface}
from @url{http://gnuwin32.sourceforge.net}. You need to add the
from @url{https://gnuwin32.sourceforge.net}. You need to add the
@code{bin} directory to your @code{PATH} environment variable.
@c In fact only the following DLLs and binaries seem to be required:
@c compface1.dll uncompface.exe libnetpbm10.dll icontopbm.exe
@ -26329,7 +26342,7 @@ size, it will reject insertion of new entries.
@end defvar
@defvar gnus-registry-register-all
If this option is non-nil, the registry will register all messages, as
If this option is non-@code{nil}, the registry will register all messages, as
you see them. This is important to making split-to-parent and
Message-ID references work correctly, as the registry needs to know
where all messages are, but it can slow down group opening and the
@ -26429,7 +26442,7 @@ have to put a rule like this:
in your fancy split setup.
If @code{gnus-registry-register-all} is non-nil (the default), the
If @code{gnus-registry-register-all} is non-@code{nil} (the default), the
registry will perform splitting for all messages. If it is nil,
splitting will only happen for children of messages you've explicitly
registered.
@ -26508,7 +26521,7 @@ Store @code{value} under @code{key} for message @code{id}.
@defun gnus-registry-get-id-key (id key)
Get the data under @code{key} for message @code{id}. If the option
@code{gnus-registry-register-all} is non-nil, this function will also
@code{gnus-registry-register-all} is non-@code{nil}, this function will also
create an entry for @code{id} if one doesn't exist.
@end defun
@ -26633,7 +26646,7 @@ connections after the system resumes. On systems compiled with D-Bus
support (check the value of @code{(featurep 'dbusbind)}), Gnus can
register a D-Bus signal to automatically close all server connections
before the system goes to sleep. To enable this, set
@code{gnus-dbus-close-on-sleep} to a non-nil value.
@code{gnus-dbus-close-on-sleep} to a non-@code{nil} value.
For more information about D-Bus and Emacs, @pxref{Top,,, dbus, D-Bus integration in Emacs}.
@ -26911,10 +26924,17 @@ Gnus 5.10 on May 1st 2003 (24 releases).
On the January 4th 2004, No Gnus was begun.
Gnus 5.11 was bundled with GNU Emacs 22.1 in June 2007.
A version of No Gnus was released as Gnus 5.13 with GNU Emacs 23.1 in
July 2009.
On April 19, 2010 Gnus development was moved to Git.
On the January 31th 2012, Ma Gnus was begun.
Since then, Gnus has only been released together with Emacs.
If you happen upon a version of Gnus that has a prefixed name---``(ding)
Gnus'', ``September Gnus'', ``Red Gnus'', ``Quassia Gnus'',
``Pterodactyl Gnus'', ``Oort Gnus'', ``No Gnus'', ``Ma Gnus''---don't
@ -29080,8 +29100,9 @@ moving articles to a group that has not turned auto-expire on.
@subsubsection Ma Gnus
@cindex Ma Gnus
I'm sure there will be lots of text here. It's really spelled 真
Gnus.
It's really spelled 真Gnus. Ma Gnus was the code name for the
development version of Gnus started in 2012. These days, Gnus is only
released together with Emacs.
New features in Ma Gnus:
@ -29111,6 +29132,8 @@ The new hooks @code{gnus-gcc-pre-body-encode-hook} and
the message body of the Gcc copy of a sent message.
@xref{Archived Messages}.
For more recent changes, see the Emacs @file{NEWS} files.
@end itemize
@end itemize

View file

@ -1005,7 +1005,7 @@ that they can deposit messages and lock the door, while your private
key corresponds to the opening combination for the safe.)
Thus, you need to perform the following steps for e-mail encryption,
typically outside Emacs. See, for example, the
typically outside Emacs. See, for example,
@uref{https://www.gnupg.org/gph/en/manual.html, The GNU Privacy
Handbook} for details covering the standard @acronym{OpenPGP} with
@acronym{GnuPG}.

View file

@ -3082,7 +3082,7 @@ retracted---without question@footnote{In previous versions of MH-E,
this option suppressed the confirmation in @code{mh-kill-folder}.
Since this kept most users from setting this option,
@code{mh-kill-folder} was modified in version 6.0 to always ask for
confirmation subject to @code{mh-kill-folder-suppress-prompt-hook}.
confirmation subject to @code{mh-kill-folder-suppress-prompt-functions}.
@xref{Folders}.}.
@cindex MH-Folder mode
@ -3364,7 +3364,7 @@ Hook run by q before quitting MH-E (default: @code{nil}).
Hook run by @code{mh-folder-mode} when visiting a new folder (default:
@code{nil}).
@c -------------------------
@item mh-kill-folder-suppress-prompt-hook
@item mh-kill-folder-suppress-prompt-functions
Abnormal hook run at the beginning of @code{mh-kill-folder} (default:
@code{'mh-search-p}).
@c -------------------------
@ -7540,8 +7540,8 @@ Allowlisted message face
@cindex spam filters, bogofilter
MH-E depends on @uref{https://spamassassin.apache.org/, SpamAssassin},
@uref{http://bogofilter.sourceforge.net/, bogofilter}, or
@uref{http://spamprobe.sourceforge.net/, SpamProbe} to throw the dreck
@uref{https://bogofilter.sourceforge.net/, bogofilter}, or
@uref{https://spamprobe.sourceforge.net/, SpamProbe} to throw the dreck
away. This chapter describes briefly how to configure these programs
to work well with MH-E and how to use MH-E's interface that provides
continuing education for these programs.
@ -7721,7 +7721,7 @@ done by adding the following to your @file{crontab}:
Bogofilter is a Bayesian spam filtering program. Get it from your
local distribution or from the
@uref{http://bogofilter.sourceforge.net/, bogofilter web site}.
@uref{https://bogofilter.sourceforge.net/, bogofilter web site}.
Bogofilter is taught by running:
@ -7791,7 +7791,7 @@ bogofilter.
@cindex spam filters, SpamProbe
SpamProbe is a Bayesian spam filtering program. Get it from your local
distribution or from the @uref{http://spamprobe.sourceforge.net,
distribution or from the @uref{https://spamprobe.sourceforge.net,
SpamProbe web site}.
To use SpamProbe, add the following recipes to @file{~/.procmailrc}:
@ -8633,7 +8633,7 @@ via SourceForge (@pxref{Bug Reports}).
@cindex FAQ
@cindex MH FAQ
The article @uref{http://www.newt.com/faq/mh.html, @cite{MH Frequently
The article @uref{https://www.newt.com/faq/mh.html, @cite{MH Frequently
Asked Questions (FAQ) with Answers}} appears monthly in the newsgroup
@samp{comp.mail.mh}. While very little is there that deals with MH-E
specifically, there is an incredible wealth of material about MH

View file

@ -4,9 +4,9 @@
#+language: en
#+options: ':t toc:nil author:t email:t num:t
#+startup: content
#+macro: stable-version 2.7.0
#+macro: release-date 2022-10-01
#+macro: development-version 2.8.0-dev
#+macro: stable-version 3.0.0
#+macro: release-date 2022-10-28
#+macro: development-version 3.1.0-dev
#+macro: file @@texinfo:@file{@@$1@@texinfo:}@@
#+macro: space @@texinfo:@: @@
#+macro: kbd @@texinfo:@kbd{@@$1@@texinfo:}@@
@ -35,6 +35,7 @@ Current development target is {{{development-version}}}.
+ Homepage: https://protesilaos.com/emacs/modus-themes.
+ Git repository: https://git.sr.ht/~protesilaos/modus-themes.
+ Mailing list: https://lists.sr.ht/~protesilaos/modus-themes.
+ Backronym: My Old Display Unexpectedly Sharpened ... themes
#+toc: headlines 8 insert TOC here, with eight headline levels
@ -632,7 +633,7 @@ to user options to take effect ([[#h:3f3c3728-1b34-437d-9d0c-b110f5b161a9][Enabl
:end:
#+vindex: modus-themes-deuteranopia
Brief: When non-nil use red/blue color-coding instead of red/green,
Brief: When non-~nil~ use red/blue color-coding instead of red/green,
where appropriate.
Symbol: ~modus-themes-deuteranopia~ (=boolean= type)
@ -679,7 +680,7 @@ Possible values:
The default is to use a bold typographic weight only when it is
required.
With a non-nil value (~t~) display several syntactic constructs in bold
With a non-~nil~ value (~t~) display several syntactic constructs in bold
weight. This concerns keywords and other important aspects of code
syntax. It also affects certain mode line indicators and command-line
prompts.
@ -709,7 +710,7 @@ Possible values:
The default is to not use slanted text forms (italics) unless it is
absolutely necessary.
With a non-nil value (~t~) choose to render more faces in italics. This
With a non-~nil~ value (~t~) choose to render more faces in italics. This
typically affects documentation strings and code comments.
Advanced users may also want to configure the exact attributes of the
@ -799,7 +800,7 @@ Possible values:
1. ~nil~ (default)
2. ~t~
When set to non-nil (~t~), configure some spacing-sensitive faces like Org
When set to non-~nil~ (~t~), configure some spacing-sensitive faces like Org
tables and code blocks to always inherit from the ~fixed-pitch~ face.
This is to ensure that certain constructs like code blocks and tables
remain monospaced even when users opt for a mode that remaps typeface
@ -926,8 +927,8 @@ an empty list). The list can include any of the following symbols:
the form of =(height . FLOAT)=
+ ~all-buttons~
The default (a nil value or an empty list) is a gray background combined
with a pseudo three-dimensional effect.
The default (a ~nil~ value or an empty list) is a gray background
combined with a pseudo three-dimensional effect.
The ~flat~ property makes the button two dimensional.
@ -1068,7 +1069,7 @@ effect, color, and border visibility:
+ A floating point to set the height of the mode line's text. It can
also be a cons cell in the form of ~(height . FLOAT)~.
The default (a nil value or an empty list) is a two-dimensional
The default (a ~nil~ value or an empty list) is a two-dimensional
rectangle with a border around it. The active and the inactive mode
lines use different shades of grayscale values for the background,
foreground, border.
@ -1097,7 +1098,7 @@ of NATNUM pixels at the boundaries of the mode lines. The default value
is 1 and does not need to be specified explicitly. The padding has no
effect when the ~moody~ property is also used, because Moody already
applies its own tweaks. To ensure that the underline is placed at the
bottom of the mode line, set ~x-underline-at-descent-line~ to non-nil
bottom of the mode line, set ~x-underline-at-descent-line~ to non-~nil~
(this is not needed when the ~borderless~ property is also set). For
users on Emacs 29, the ~x-use-underline-position-properties~ variable must
also be set to nil.
@ -1159,7 +1160,7 @@ colors (which have been carefully designed to be highly accessible).
Furthermore, because Moody expects an underline and overline instead of
a box style, it is strongly advised to set ~x-underline-at-descent-line~
to a non-nil value.
to a non-~nil~ value.
Finally, note that various packages which heavily modify the mode line,
such as =doom-modeline=, =nano-modeline=, =powerline=, =spaceline= may not look
@ -1183,7 +1184,7 @@ Possible values:
+ ~t~
By default, all tab interfaces use backgrounds which are shades of gray.
When this option is set to non-nil, the backgrounds become colorful.
When this option is set to non-~nil~, the backgrounds become colorful.
This affects the built-in ~tab-bar-mode~ and ~tab-line-mode~, as well as the
Centaur tabs package.
@ -1202,8 +1203,9 @@ Symbol: ~modus-themes-completions~ (=alist= type properties)
This affects Company, Corfu, Flx, Helm, Icomplete/Fido, Ido, Ivy,
Orderless, Selectrum, Vertico. The value is an alist that takes the
form of a =(key . properties)= combination. Here is a sample, followed
by a description of the particularities:
form of a =(KEY . PROPERTIES)= combination. =KEY= is a symbol, while
=PROPERTIES= is a list. Here is a sample, followed by a description
of the particularities:
#+begin_src emacs-lisp
(setq modus-themes-completions
@ -1213,10 +1215,10 @@ by a description of the particularities:
#+end_src
The ~matches~ key refers to the highlighted characters that correspond
to the user's input. By default (nil or an empty list), they have a
bold weight and a colored foreground. The list of properties may
include any of the following symbols regardless of the order they may
appear in:
to the user's input. When its properties are ~nil~ or an empty list,
matching characters in the user interface will have a bold weight and
a colored foreground. The list of properties may include any of the
following symbols regardless of the order they may appear in:
- ~background~ to add a background color;
@ -1232,10 +1234,10 @@ appear in:
variable. The absence of a weight means that bold will be used.
The ~selection~ key applies to the current line or currently matched
candidate, depending on the specifics of the User Interface. By default
(nil or an empty list), it has a subtle gray background, a bold weight,
and the base foreground value for the text. The list of properties it
accepts is as follows (order is not significant):
candidate, depending on the specifics of the user interface. When its
properties are ~nil~ or an empty list, it has a subtle gray background,
a bold weight, and the base foreground value for the text. The list
of properties it accepts is as follows (order is not significant):
- ~accented~ to make the background colorful instead of gray;
@ -1251,7 +1253,11 @@ accepts is as follows (order is not significant):
cetera. Valid symbols are defined in the ~modus-themes-weights~
variable. The absence of a weight means that bold will be used.
The ~popup~ key takes the same values as ~selection~.
The ~popup~ key takes the same values as ~selection~. The only
difference is that it applies specifically to user interfaces that
display an inline popup and thus have slightly different styling
requirements than the minibuffer. The two prominent packages are
=company= and =corfu=.
Apart from specifying each key separately, a fallback list is accepted.
This is only useful when the desired aesthetic is the same across all
@ -1276,21 +1282,10 @@ corresponding key is simply ignored (~matches~ does not have ~accented~
and ~text-also~, while ~selection~ and ~popup~ do not have
~background~).
A concise expression of those associations can be written as follows,
where the ~car~ is always the key and the ~cdr~ is the list of
properties (whatever order they may appear in):
#+begin_src emacs-lisp
(setq modus-themes-completions
'((matches extrabold background intense)
(selection semibold accented intense)
(popup accented)))
#+end_src
[[#h:2793a224-2109-4f61-a106-721c57c01375][Configure bold and italic faces]].
Also refer to the Orderless documentation for its intersection with
Company (if you choose to use those in tandem).
Also refer to the documentation of the ~orderless~ package for its
intersection with ~company~ (if you choose to use those in tandem).
** Option for mail citations
:properties:
@ -1312,7 +1307,7 @@ Possible values:
3. ~faint~
4. ~monochrome~
By default (a nil value) citations are styled with contrasting hues to
By default (a ~nil~ value) citations are styled with contrasting hues to
denote their depth. Colors are easy to tell apart because they
complement each other, but they otherwise are not very prominent.
@ -1342,17 +1337,16 @@ Symbol: ~modus-themes-fringes~ (=choice= type)
Possible values:
1. ~nil~ (default)
1. ~nil~
2. ~subtle~
3. ~intense~
The default is to use the same color as that of the main background,
meaning that the fringes are not obvious though they still occupy the
space given to them by ~fringe-mode~.
When the value is nil, do not apply a distinct background color.
Options ~subtle~ and ~intense~ apply a gray background, making the fringes
visible. The difference between the two is one of degree, as their
names imply.
With a value of ~subtle~ use a gray background color that is
visible yet close to the main background color.
With ~intense~ use a more pronounced gray background color.
** Option for language checkers
:properties:
@ -1435,16 +1429,16 @@ Brief: Control the style of the current line of ~hl-line-mode~.
Symbol: ~modus-themes-hl-line~ (=choice= type, list of properties)
Possible values are expressed as a list of properties (default is ~nil~ or
an empty list). The list can include any of the following symbols:
The value is a list of properties, each designated by a symbol. With
a ~nil~ value, or an empty list, the style is a subtle gray background
color.
Possible properties are the following symbols:
+ ~accented~
+ ~intense~
+ ~underline~
The default (a ~nil~ value or an empty list) is a subtle gray background
color.
The property ~accented~ changes the background to a colored variant.
An ~underline~ property draws a line below the highlighted area. Its
@ -1471,8 +1465,9 @@ In user configuration files the form may look like this:
(setq modus-themes-hl-line '(underline accented))
#+end_src
Set ~x-underline-at-descent-line~ to a non-nil value for better results
with underlines.
Set ~x-underline-at-descent-line~ to a non-~nil~ value so that the
placement of the underline coincides with the lower boundary of the
colored background.
This style affects several packages that enable ~hl-line-mode~, such as
=elfeed=, =notmuch=, and =mu4e=.
@ -1506,7 +1501,7 @@ Similarly, the faces for ~display-line-numbers-major-tick~ and its
counterpart ~display-line-numbers-minor-tick~ use appropriate styles that
involve a bespoke background and foreground combination.
With a non-nil value (~t~), line numbers have no background of their own.
With a non-~nil~ value (~t~), line numbers have no background of their own.
Instead they retain the primary background of the theme, blending with
the rest of the buffer. Foreground values for all relevant faces are
updated to accommodate this aesthetic.
@ -1529,7 +1524,7 @@ Possible value:
2. ~t~
By default all mouseover effects apply a highlight with a subtle colored
background. When non-nil, these have a more pronounced effect.
background. When non-~nil~, these have a more pronounced effect.
Note that this affects the generic ~highlight~ which, strictly speaking,
is not limited to mouse usage.
@ -1713,11 +1708,11 @@ Option ~desaturated~ follows the same principles as with the default
(~nil~), though it tones down all relevant colors.
Option ~bg-only~ applies a background but does not override the text's
foreground. This makes it suitable for a non-nil value passed to
foreground. This makes it suitable for a non-~nil~ value passed to
~diff-font-lock-syntax~ (note: Magit does not support syntax highlighting
in diffs---last checked on 2021-12-02).
When the user option ~modus-themes-deuteranopia~ is non-nil, all diffs
When the user option ~modus-themes-deuteranopia~ is non-~nil~, all diffs
will use a red/blue color-coding system instead of the standard
red/green. Other stylistic changes are made in the interest of
optimizing for such a use-case.
@ -1776,8 +1771,8 @@ of the block. Disable the extension of such backgrounds by setting
~org-fontify-whole-block-delimiter-line~ to nil.
Code blocks use their major mode's colors only when the variable
~org-src-fontify-natively~ is non-nil. While quote/verse blocks require
setting ~org-fontify-quote-and-verse-blocks~ to a non-nil value.
~org-src-fontify-natively~ is non-~nil~. While quote/verse blocks require
setting ~org-fontify-quote-and-verse-blocks~ to a non-~nil~ value.
[[#h:f44cc6e3-b0f1-4a5e-8a90-9e48fa557b50][Update Org block delimiter fontification]].
@ -1894,7 +1889,7 @@ An ~event~ key covers (i) headings with a plain time stamp that are
shown on the agenda, also known as events, (ii) entries imported from
the diary, and (iii) other items that derive from a symbolic expression
or sexp (phases of the moon, holidays, etc.). By default all those look
the same and have a subtle foreground color (the default is a nil value
the same and have a subtle foreground color (the default is a ~nil~ value
or an empty list). This key accepts a list of properties. Those are:
- ~accented~ applies an accent value to the event's foreground,
@ -1925,7 +1920,7 @@ A ~scheduled~ key applies to tasks with a scheduled date. By default (a
~nil~ value), those use varying shades of yellow to denote (i) a past or
current date and (ii) a future date. Valid values are symbols:
- nil (default);
- ~nil~ (default);
- ~uniform~ to make all scheduled dates the same color;
- ~rainbow~ to use contrasting colors for past, present, future
scheduled dates.
@ -1963,7 +1958,7 @@ passed as a symbol. Those are:
being too late. The difference between ready and clear states is
attenuated by painting both of them using shades of green. This
option thus highlights the alert and overdue states.
- When ~modus-themes-deuteranopia~ is non-nil the exact style of the habit
- When ~modus-themes-deuteranopia~ is non-~nil~ the exact style of the habit
graph adapts to the needs of users with red-green color deficiency by
substituting every instance of green with blue or cyan (depending on
the specifics).
@ -2108,7 +2103,7 @@ In user configuration files the form may look like this:
#+end_src
When defining the styles per heading level, it is possible to pass a
non-nil value (~t~) instead of a list of properties. This will retain the
non-~nil~ value (~t~) instead of a list of properties. This will retain the
original aesthetic for that level. For example:
#+begin_src emacs-lisp
@ -2153,7 +2148,7 @@ and tab line.
The default is to use the same font as the rest of Emacs, which usually
is a monospaced family.
With a non-nil value (~t~) apply a proportionately spaced typeface. This
With a non-~nil~ value (~t~) apply a proportionately spaced typeface. This
is done by assigning the ~variable-pitch~ face to the relevant items.
[[#h:defcf4fc-8fa8-4c29-b12e-7119582cc929][Font configurations for Org and others]].
@ -2839,7 +2834,7 @@ To reset the changes, we apply this and reload the theme:
Users who wish to leverage such a mechanism can opt to implement it
on-demand by means of a global minor mode. The following snippet covers
both themes and expands to some more assosiations in the palette:
both themes and expands to some more associations in the palette:
#+begin_src emacs-lisp
(define-minor-mode my-modus-themes-tinted
@ -3654,7 +3649,7 @@ specification of that variable looks like this:
With the exception of ~org-verbatim~ and ~org-code~ faces, everything else
uses the corresponding type of emphasis: a bold typographic weight, or
italicised, underlined, and struck through text.
italicized, underlined, and struck through text.
The best way for users to add some extra attributes, such as a
foreground color, is to define their own faces and assign them to the
@ -4681,6 +4676,7 @@ have lots of extensions, so the "full support" may not be 100% true…
+ notmuch
+ num3-mode
+ nxml-mode
+ olivetti
+ orderless
+ org*
+ org-journal
@ -4753,7 +4749,7 @@ have lots of extensions, so the "full support" may not be 100% true…
+ tab-bar-groups
+ tab-bar-mode
+ tab-line-mode
+ table (built-in table.el)
+ table (built-in {{{file(table.el)}}})
+ telega
+ telephone-line
+ terraform-mode
@ -4768,7 +4764,7 @@ have lots of extensions, so the "full support" may not be 100% true…
+ tuareg
+ typescript
+ undo-tree
+ vc (vc-dir.el, vc-hooks.el)
+ vc ({{{file(vc-dir.el)}}}, {{{file(vc-hooks.el)}}})
+ vertico
+ vertico-quick
+ vimish-fold
@ -4793,8 +4789,7 @@ have lots of extensions, so the "full support" may not be 100% true…
+ yasnippet
+ ztree
Plus many other miscellaneous faces that are provided by the upstream
GNU Emacs distribution.
Plus many other miscellaneous faces that are provided by Emacs.
** Indirectly covered packages
:properties:
@ -5397,7 +5392,7 @@ https://github.com/tumashu/company-posframe/]
:custom_id: h:98bdf319-1e32-4469-8a01-771200fba65c
:end:
The built-in IRC client ~erc~ has the ability to colorise any text using
The built-in IRC client ~erc~ has the ability to colorize any text using
escape sequences that start with =^C= (inserted with {{{kbd(C-q C-c)}}}) and are
followed by a number for the foreground and background.[fn:: This page
explains the basics, though it is not specific to Emacs:
@ -5453,7 +5448,7 @@ Consult the doc string of ~shr-use-colors~.
By default, packages that build on top of the Simple HTML Remember (=shr=)
use proportionately spaced fonts. This is controlled by the user option
~shr-use-fonts~, which is set to non-nil by default. To use the standard
~shr-use-fonts~, which is set to non-~nil~ by default. To use the standard
font instead, set that variable to nil.
[[#h:defcf4fc-8fa8-4c29-b12e-7119582cc929][Font configurations for Org and others]].
@ -5543,9 +5538,9 @@ ANSI color number 1 (red) from the already-supported array of
:end:
Hints are drawn by [[https://imagemagick.org/][ImageMagick]], not Emacs, i.e., ImageMagick doesn't
know about the hint face unless you tell ImageMagick about it. By
know about the hint face unless you tell ImageMagick about it. By
default, only the foreground and background color attributes are
passed. The below snippet adds to those the various font attributes. As
passed. The below snippet adds to those the various font attributes. As
it queries various faces, specifically ~pdf-links-read-link~ and the faces
it inherits, it needs to be added to your initialization file after
you've customized any faces.
@ -5816,9 +5811,9 @@ In general, an additional source of light other than that of the monitor
can help reduce eye strain: the eyes are more relaxed when they do not
have to focus on one point to gather light.
The monitor's display settings must be accounted for. Gamma values, in
The monitor's display settings must be accounted for. Gamma values, in
particular, need to be calibrated to neither amplify nor distort the
perception of black. Same principle for sharpness, brightness, and
perception of black. Same principle for sharpness, brightness, and
contrast as determined by the hardware, which all have an effect on how
text is read on the screen.
@ -5883,7 +5878,7 @@ interface virtually unusable.
[[#h:5808be52-361a-4d18-88fd-90129d206f9b][Option for links]].
Again, one must exercise judgement in order to avoid discrimination,
Again, one must exercise judgment in order to avoid discrimination,
where "discrimination" refers to:
+ The treatment of substantially different magnitudes as if they were of
@ -6125,22 +6120,22 @@ The Modus themes are a collective effort. Every bit of work matters.
Yiltiz, Ilja Kocken, Iris Garcia, Ivan Popovych, Jeremy Friesen,
Jerry Zhang, Johannes Grødem, John Haman, Jonas Collberg, Jorge
Morais, Joshua O'Connor, Julio C. Villasante, Kenta Usami, Kevin
Fleming, Kévin Le Gouguec, Kostadin Ninev, Len Trigg, Lennart
C. Karssen, Luis Miguel Castañeda, Magne Hov, Manuel Uberti, Mark
Bestley, Mark Burton, Mark Simpson, Markus Beppler, Matt Armstrong,
Mauro Aranda, Maxime Tréca, Michael Goldenberg, Morgan Smith, Morgan
Willcock, Murilo Pereira, Nicky van Foreest, Nicolas De Jaeghere,
Paul Poloskov, Pengji Zhang, Pete Kazmier, Peter Wu, Philip
Kaludercic, Pierre Téchoueyres, Przemysław Kryger, Robert Hepple,
Roman Rudakov, Ryan Phillips, Rytis Paškauskas, Rudolf Adamkovič,
Sam Kleinman, Samuel Culpepper, Saša Janiška, Shreyas Ragavan, Simon
Pugnet, Tassilo Horn, Thibaut Verron, Thomas Heartman, Togan
Muftuoglu, Tony Zorman, Trey Merkley, Tomasz Hołubowicz, Toon Claes,
Uri Sharf, Utkarsh Singh, Vincent Foley. As well as users: Ben,
CsBigDataHub1, Emacs Contrib, Eugene, Fourchaux, Fredrik, Moesasji,
Nick, Summer Emacs, TheBlob42, Trey, bepolymathe, bit9tream,
derek-upham, doolio, fleimgruber, gitrj95, iSeeU, jixiuf, okamsn,
pRot0ta1p.
Fleming, Kévin Le Gouguec, Kevin Kainan Li, Kostadin Ninev, Len
Trigg, Lennart C. Karssen, Luis Miguel Castañeda, Magne Hov, Manuel
Uberti, Mark Bestley, Mark Burton, Mark Simpson, Markus Beppler,
Matt Armstrong, Matthias Fuchs, Mauro Aranda, Maxime Tréca, Michael
Goldenberg, Morgan Smith, Morgan Willcock, Murilo Pereira, Nicky van
Foreest, Nicolas De Jaeghere, Pablo Stafforini, Paul Poloskov,
Pengji Zhang, Pete Kazmier, Peter Wu, Philip Kaludercic, Pierre
Téchoueyres, Przemysław Kryger, Robert Hepple, Roman Rudakov, Ryan
Phillips, Rytis Paškauskas, Rudolf Adamkovič, Sam Kleinman, Samuel
Culpepper, Saša Janiška, Shreyas Ragavan, Simon Pugnet, Tassilo
Horn, Thibaut Verron, Thomas Heartman, Togan Muftuoglu, Tony Zorman,
Trey Merkley, Tomasz Hołubowicz, Toon Claes, Uri Sharf, Utkarsh
Singh, Vincent Foley. As well as users: Ben, CsBigDataHub1, Emacs
Contrib, Eugene, Fourchaux, Fredrik, Moesasji, Nick, Summer Emacs,
TheBlob42, Trey, bepolymathe, bit9tream, derek-upham, doolio,
fleimgruber, gitrj95, iSeeU, jixiuf, okamsn, pRot0ta1p.
+ Packaging :: Basil L.{{{space()}}} Contovounesios, Eli Zaretskii,
Glenn Morris, Mauro Aranda, Richard Stallman, Stefan Kangas (core

View file

@ -172,7 +172,7 @@ is fetched for the very first time.
@vindex newsticker-obsolete-item-max-age
@item newsticker-keep-obsolete-items
Obsolete headlines are removed immediately unless
@code{newsticker-keep-obsolete-items} is non-nil in which case they
@code{newsticker-keep-obsolete-items} is non-@code{nil} in which case they
are kept until @code{newsticker-obsolete-item-max-age} is reached.
@vindex newsticker-automatically-mark-items-as-old

View file

@ -204,9 +204,10 @@ The GNU Emacs Manual}). Currently, function names can be indexed.
@cindex ElDoc Mode Support
@vindex octave-eldoc-message-style
ElDoc mode (@pxref{Lisp Doc,,, emacs, The GNU Emacs Manual}) is
supported. By customizing @code{octave-eldoc-message-style} it can be
changed from displaying one or multi line hints.
ElDoc mode (@pxref{Programming Language Doc,,, emacs, The GNU Emacs
Manual}) is supported. By customizing
@code{octave-eldoc-message-style} it can be changed from displaying
one or multi line hints.
@c @cindex TAGS
@c @cindex Emacs TAGS files

View file

@ -68,8 +68,8 @@ of Org, as well as additional information, frequently asked questions
[[https://orgmode.org]].
#+cindex: print edition
An earlier version (7.3) of this manual is available as a [[http://www.network-theory.co.uk/org/manual/][paperback
book from Network Theory Ltd.]].
An earlier version (7.3) of this manual was published as a paperback book by
Network Theory Ltd. in 2010.
** Installation
:PROPERTIES:
@ -3234,7 +3234,7 @@ options:
| Link Type | Example |
|------------+----------------------------------------------------------|
| http | =http://staff.science.uva.nl/c.dominik/= |
| http | =https://staff.science.uva.nl/c.dominik/= |
| https | =https://orgmode.org/= |
| doi | =doi:10.1000/182= |
| file | =file:/home/dominik/images/jupiter.jpg= |
@ -3567,7 +3567,7 @@ replacement text. Here is an example:
'(("bugzilla" . "http://10.1.2.9/bugzilla/show_bug.cgi?id=")
("Nu Html Checker" . "https://validator.w3.org/nu/?doc=%h")
("duckduckgo" . "https://duckduckgo.com/?q=%s")
("omap" . "http://nominatim.openstreetmap.org/search?q=%s&polygon=1")
("omap" . "https://nominatim.openstreetmap.org/search?q=%s&polygon=1")
("ads" . "https://ui.adsabs.harvard.edu/search/q=%20author%3A\"%s\"")))
#+end_src
@ -3596,7 +3596,7 @@ can define them in the file with
#+cindex: @samp{LINK}, keyword
#+begin_example
,#+LINK: bugzilla http://10.1.2.9/bugzilla/show_bug.cgi?id=
,#+LINK: bugzilla https://10.1.2.9/bugzilla/show_bug.cgi?id=
,#+LINK: duckduckgo https://duckduckgo.com/?q=%s
#+end_example
@ -13642,7 +13642,7 @@ not have descriptions, such as these links =[[file:img.jpg]]= or
=[[./img.jpg]]=, as direct image insertions in the final PDF output. In
the PDF, they are no longer links but actual images embedded on the
page. The LaTeX export back-end uses =\includegraphics= macro to
insert the image. But for TikZ (http://sourceforge.net/projects/pgf/)
insert the image. But for TikZ (https://sourceforge.net/projects/pgf/)
images, the back-end uses an ~\input~ macro wrapped within
a ~tikzpicture~ environment.
@ -13982,7 +13982,7 @@ some text in German...
#+cindex: Markdown export
The Markdown export back-end, "md", converts an Org file to Markdown
format, as defined at http://daringfireball.net/projects/markdown/.
format, as defined at https://daringfireball.net/projects/markdown/.
Since it is built on top of the HTML back-end (see [[*HTML Export]]), it
converts every Org construct not defined in Markdown syntax, such as
@ -16569,7 +16569,7 @@ identifying a reference in the bibliography.
- Each key can be qualified by a /prefix/ (e.g.\nbsp{}"see ") and/or
a /suffix/ (e.g.\nbsp{}"p.\nbsp{}123"), giving information useful or necessary
fo the comprehension of the citation but not included in the
for the comprehension of the citation but not included in the
reference.
- A single citation can cite more than one reference ; the keys are
@ -22053,7 +22053,7 @@ MathJax are processed. When dvipng, dvisvgm, or ImageMagick suite is
used to create images, any LaTeX environment is handled.
[fn:112] These are respectively available at
[[http://sourceforge.net/projects/dvipng/]], [[http://dvisvgm.bplaced.net/]]
[[https://sourceforge.net/projects/dvipng/]], [[http://dvisvgm.bplaced.net/]]
and from the ImageMagick suite. Choose the converter by setting the
variable ~org-preview-latex-default-process~ accordingly.
@ -22123,9 +22123,9 @@ semantic relevance.
[fn:130] Please note that exported formulas are part of an HTML
document, and that signs such as =<=, =>=, or =&= have special
meanings. See [[http://docs.mathjax.org/en/latest/tex.html#tex-and-latex-in-html-documents][MathJax TeX and LaTeX support]].
meanings. See [[https://docs.mathjax.org/en/latest/tex.html#tex-and-latex-in-html-documents][MathJax TeX and LaTeX support]].
[fn:131] See [[http://docs.mathjax.org/en/latest/tex.html#tex-extensions][TeX and LaTeX extensions]] in the [[http://docs.mathjax.org][MathJax manual]] to learn
[fn:131] See [[https://docs.mathjax.org/en/latest/tex.html#tex-extensions][TeX and LaTeX extensions]] in the [[https://docs.mathjax.org][MathJax manual]] to learn
about extensions.
[fn:132] If the classes on TODO keywords and tags lead to conflicts,
@ -22140,14 +22140,14 @@ as latexmk, can select the correct bibliography compiler.
which requires the flag =-shell-escape= to be added to
~org-latex-pdf-process~.
[fn:135] See [[http://docs.oasis-open.org/office/v1.2/OpenDocument-v1.2.html][Open Document Format for Office Applications
[fn:135] See [[https://docs.oasis-open.org/office/v1.2/OpenDocument-v1.2.html][Open Document Format for Office Applications
(OpenDocument) Version 1.2]].
[fn:136] See [[http://www.mathtoweb.com/cgi-bin/mathtoweb_home.pl][MathToWeb]].
[fn:137] See [[http://dlmf.nist.gov/LaTeXML/]].
[fn:137] See [[https://dlmf.nist.gov/LaTeXML/]].
[fn:138] [[http://docs.oasis-open.org/office/v1.2/OpenDocument-v1.2.html][OpenDocument-v1.2 Specification]]
[fn:138] [[https://docs.oasis-open.org/office/v1.2/OpenDocument-v1.2.html][OpenDocument-v1.2 Specification]]
[fn:139] See the =<table:table-template>= element of the
OpenDocument-v1.2 specification.
@ -22170,7 +22170,7 @@ are not evaluated when they appear in a keyword (see [[*Summary of
In-Buffer Settings]]).
[fn:144] For noweb literate programming details, see
http://www.cs.tufts.edu/~nr/noweb/.
https://www.cs.tufts.edu/~nr/noweb/.
[fn:145] For more information, please refer to the commentary section
in =org-tempo.el=.

View file

@ -259,7 +259,7 @@ Use @kbd{C-c C-@key{SPC}} to switch to these buffers.
@vindex rcirc-track-ignore-server-buffer-flag
If the user wishes to ignore events in the server buffer, set
@code{rcirc-track-ignore-server-buffer-flag} to a non-nil value.
@code{rcirc-track-ignore-server-buffer-flag} to a non-@code{nil} value.
@node Reference
@chapter Reference
@ -693,7 +693,7 @@ buffers.
@cindex rcirc-track-abbrevate-flag
By default the channel names are abbreviated, set
@code{rcirc-track-abbrevate-flag} to a non-nil value. This might be
@code{rcirc-track-abbrevate-flag} to a non-@code{nil} value. This might be
interesting if the IRC activities are not tracked in the mode line,
but somewhere else.

View file

@ -3605,7 +3605,7 @@ menu. @xref{Key Bindings}.
@deffn Command reftex-toc
Show the table of contents for the current document. When called with
one ore two @kbd{C-u} prefixes, rescan the document first.
one or two @kbd{C-u} prefixes, rescan the document first.
@end deffn
@deffn Command reftex-label
@ -5292,7 +5292,7 @@ Some improvements for XEmacs compatibility.
@itemize @bullet
@item
Fixed bug with @samp{%F} in a label prefix. Added new escapes
@samp{%m} and @samp{%M} for mater file name and master directory.
@samp{%m} and @samp{%M} for master file name and master directory.
@end itemize
@noindent @b{Version 4.24}

View file

@ -424,13 +424,6 @@ The default priority for remembered mail messages.
@section Saving to an Org Mode file
@cindex org mode, integration
@ignore
From org.texi:
Up to version 6.36 Org used a special setup
for @file{remember.el}. @file{org-remember.el} is still part of Org mode for
backward compatibility with existing setups. You can find the documentation
for org-remember at @url{http://orgmode.org/org-remember.pdf}.
@end ignore
For instructions on how to integrate Remember with Org Mode,
consult @ref{Capture, , , org}.

Some files were not shown because too many files have changed in this diff Show more