declare builtin changes to reject -i when used with -n; readline changes to make control characters visible in search strings; readline signal handling changes to avoid data corruption and UAF; documentation updates for more consistent quoting

This commit is contained in:
Chet Ramey
2025-09-04 12:29:57 -04:00
parent ab17ddb7af
commit a451bfc3f5
46 changed files with 36912 additions and 1499 deletions
+43 -27
View File
@@ -10352,6 +10352,22 @@ of completions, one per line, to the standard output. Backslash will
escape a newline, if necessary. These are added to the set of possible
completions.
External commands that are invoked to generate completions ("external
completers") receive the word preceding the completion word as an
argument, as described above. This provides context that is sometimes
useful, but may include information that is considered sensitive or part
of a word expansion that will not appear in the command line after
expansion. That word may be visible in process listings or in audit
logs. This may be a concern to users and completion specification
authors if there is sensitive information on the command line before
expansion, since completion takes place before words are expanded. If
this is an issue, completion authors should use functions as wrappers
around external commands and pass context information to the external
command in a different way. External completers can infer context from
the COMP_LINE and COMP_POINT environment variables, but they need to
ensure they break words in the same way Readline does, using the
COMP_WORDBREAKS variable.
After generating all of the possible completions, Bash applies any
filter specified with the -X option to the completions in the list.
The filter is a pattern as used for pathname expansion; a & in the
@@ -13725,33 +13741,33 @@ Node: Keyboard Macros454402
Node: Miscellaneous Commands455106
Node: Readline vi Mode461676
Node: Programmable Completion462656
Node: Programmable Completion Builtins471396
Node: A Programmable Completion Example483136
Node: Using History Interactively488484
Node: Bash History Facilities489168
Node: Bash History Builtins492906
Node: History Interaction499380
Node: Event Designators504333
Node: Word Designators505914
Node: Modifiers508309
Node: Installing Bash510249
Node: Basic Installation511368
Node: Compilers and Options515247
Node: Compiling For Multiple Architectures516000
Node: Installation Names517756
Node: Specifying the System Type519993
Node: Sharing Defaults520742
Node: Operation Controls521459
Node: Optional Features522481
Node: Reporting Bugs535207
Node: Major Differences From The Bourne Shell536567
Node: GNU Free Documentation License557997
Node: Indexes583177
Node: Builtin Index583631
Node: Reserved Word Index590732
Node: Variable Index593180
Node: Function Index610596
Node: Concept Index624594
Node: Programmable Completion Builtins472395
Node: A Programmable Completion Example484135
Node: Using History Interactively489483
Node: Bash History Facilities490167
Node: Bash History Builtins493905
Node: History Interaction500379
Node: Event Designators505332
Node: Word Designators506913
Node: Modifiers509308
Node: Installing Bash511248
Node: Basic Installation512367
Node: Compilers and Options516246
Node: Compiling For Multiple Architectures516999
Node: Installation Names518755
Node: Specifying the System Type520992
Node: Sharing Defaults521741
Node: Operation Controls522458
Node: Optional Features523480
Node: Reporting Bugs536206
Node: Major Differences From The Bourne Shell537566
Node: GNU Free Documentation License558996
Node: Indexes584176
Node: Builtin Index584630
Node: Reserved Word Index591731
Node: Variable Index594179
Node: Function Index611595
Node: Concept Index625593

End Tag Table