fix readline vi-mode mark commands to prevent errors if user types an arrow key where a mark name is expected; fix for non-ascii characters being included in variable names if the system isalnum(3) returns success for the character

This commit is contained in:
Chet Ramey
2026-08-07 11:46:08 -04:00
parent 9b6349ef40
commit 9c8a70bc9e
24 changed files with 18698 additions and 19440 deletions
+26
View File
@@ -13158,3 +13158,29 @@ lib/readline/display.c
- rl_redisplay: make sure not to display any standout mode if the
region is zero-length (rl_point == rl_mark)
Report and fix from kurku <sandovin@mail.ru>
8/5
---
syntax.h
- CNAMESTART, CNAME: add flags for characters that are valid shell
variable name starters and characters, respectively
mksyntax.c
- set CNAMESTART and CNAME for the appropriate characters from the
portable character set in sh_syntaxtab[]
8/6
---
lib/readline/vi_mode.c
- _rl_vi_set_mark,_rl_vi_goto_mark: if we read ESC for the mark
identifier, and we're reading from the terminal, check for queued
input and assume we have something like an arrow key sequence if
there is input available to be read. In this case, we push the
ESC back so we can read the entire arrow key or CSI sequence.
Report from kurku <sandovin@mail.ru>
general.h
- legal_variable_starter,legal_variable_char: change to use the
appropriate CNAME and CNAMESTART flags from sh_syntaxtab[]
Report from zheng <charname@qq.com>
+1 -1
View File
@@ -264,7 +264,7 @@ MACHTYPE A string describing the current system Bash is running on.
MAILCHECK How often, in seconds, Bash checks for new mail.
MAILPATH A colon-separated list of filenames which Bash checks
for new mail.
OSTYPE The version of Unix this version of Bash is running on.
OSTYPE The version of the operating system this version of Bash is running on.
PATH A colon-separated list of directories to search when
looking for commands.
PROMPT_COMMAND A command to be executed before the printing of each
+6641 -6903
View File
File diff suppressed because it is too large Load Diff
+6506 -7219
View File
File diff suppressed because it is too large Load Diff
+122 -122
View File
@@ -1,9 +1,9 @@
This is bash.info, produced by makeinfo version 7.3 from bashref.texi.
This text is a brief description of the features that are present in the
Bash shell (version 5.3, 1 July 2026).
Bash shell (version 5.3, 9 July 2026).
This is Edition 5.3, last updated 1 July 2026, of The GNU Bash
This is Edition 5.3, last updated 9 July 2026, of The GNU Bash
Reference Manual, for Bash, Version 5.3.
Copyright © 1988-2026 Free Software Foundation, Inc.
@@ -26,10 +26,10 @@ Bash Features
*************
This text is a brief description of the features that are present in the
Bash shell (version 5.3, 1 July 2026). The Bash home page is
Bash shell (version 5.3, 9 July 2026). The Bash home page is
<http://www.gnu.org/software/bash/>.
This is Edition 5.3, last updated 1 July 2026, of The GNU Bash
This is Edition 5.3, last updated 9 July 2026, of The GNU Bash
Reference Manual, for Bash, Version 5.3.
Bash contains features that appear in other popular shells, and some
@@ -1165,14 +1165,14 @@ File: bash.info, Node: Conditional Constructs, Next: Command Grouping, Prev:
quote special pattern characters where that's necessary.
The array variable BASH_REMATCH records which parts of the string
matched the pattern. Bash unsets BASH_REMATCH before attempting
the match, so if there is no match, it remains unset. The element
of BASH_REMATCH with index 0 contains the portion of the string
matching the entire regular expression. Substrings matched by
parenthesized subexpressions within the regular expression are
saved in the remaining BASH_REMATCH indices. The element of
BASH_REMATCH with index N is the portion of the string matching
the Nth parenthesized subexpression.
matched the pattern. Bash unsets each element of BASH_REMATCH
before attempting the match, so if there is no match, it remains
empty. The element of BASH_REMATCH with index 0 contains the
portion of the string matching the entire regular expression.
Substrings matched by parenthesized subexpressions within the
regular expression are saved in the remaining BASH_REMATCH
indices. The element of BASH_REMATCH with index N is the portion
of the string matching the Nth parenthesized subexpression.
Bash sets BASH_REMATCH in the global scope if it is not set; if
it is declared as a local variable before running [[, Bash keeps
@@ -9824,8 +9824,8 @@ File: bash.info, Node: Commands For History, Next: Commands For Text, Prev: C
previous command begin with word 0). A negative argument inserts
the Nth word from the end of the previous command. Once the
argument N is computed, this uses the history expansion facilities
to extract the Nth word, as if the !N history expansion had been
specified.
to extract the Nth word, as if the !!:N history expansion had
been specified.
yank-last-arg (M-. or M-_)
Insert last argument to the previous command (the last word of the
@@ -13795,114 +13795,114 @@ Node: Lists30976
Node: Compound Commands32925
Node: Looping Constructs33934
Node: Conditional Constructs36483
Node: Command Grouping51780
Node: Coprocesses53272
Node: GNU Parallel55958
Node: Shell Functions56876
Node: Shell Parameters65324
Node: Positional Parameters70225
Node: Special Parameters71315
Node: Shell Expansions74776
Node: Brace Expansion76965
Node: Tilde Expansion80301
Node: Shell Parameter Expansion83256
Node: Command Substitution104104
Node: Arithmetic Expansion107955
Node: Process Substitution109139
Node: Word Splitting110306
Node: Filename Expansion112750
Node: Pattern Matching115974
Node: Quote Removal121740
Node: Redirections122044
Node: Executing Commands132313
Node: Simple Command Expansion132980
Node: Command Search and Execution135088
Node: Command Execution Environment137532
Node: Environment141058
Node: Exit Status142961
Node: Signals145020
Node: Shell Scripts149968
Node: Shell Builtin Commands153272
Node: Bourne Shell Builtins155613
Node: Bash Builtins182332
Node: Modifying Shell Behavior220067
Node: The Set Builtin220409
Node: The Shopt Builtin232441
Node: Special Builtins249494
Node: Shell Variables250483
Node: Bourne Shell Variables250917
Node: Bash Variables253425
Node: Bash Features292709
Node: Invoking Bash293723
Node: Bash Startup Files300953
Node: Interactive Shells306313
Node: What is an Interactive Shell?306721
Node: Is this Shell Interactive?307383
Node: Interactive Shell Behavior308207
Node: Bash Conditional Expressions311968
Node: Shell Arithmetic317385
Node: Aliases320712
Node: Arrays323846
Node: The Directory Stack331548
Node: Directory Stack Builtins332345
Node: Controlling the Prompt336790
Node: The Restricted Shell339909
Node: Bash POSIX Mode343002
Node: Shell Compatibility Mode362961
Node: Job Control371968
Node: Job Control Basics372425
Node: Job Control Builtins378793
Node: Job Control Variables385581
Node: Command Line Editing386812
Node: Introduction and Notation388515
Node: Readline Interaction390867
Node: Readline Bare Essentials392055
Node: Readline Movement Commands393863
Node: Readline Killing Commands394859
Node: Readline Arguments396882
Node: Searching397972
Node: Readline Init File400215
Node: Readline Init File Syntax401518
Node: Conditional Init Constructs428469
Node: Sample Init File432854
Node: Bindable Readline Commands435974
Node: Commands For Moving437512
Node: Commands For History439976
Node: Commands For Text445367
Node: Commands For Killing449492
Node: Numeric Arguments452280
Node: Commands For Completion453432
Node: Keyboard Macros459128
Node: Miscellaneous Commands459829
Node: Readline vi Mode467372
Node: Programmable Completion468349
Node: Programmable Completion Builtins478085
Node: A Programmable Completion Example489822
Node: Using History Interactively495167
Node: Bash History Facilities495848
Node: Bash History Builtins499583
Node: History Interaction507178
Node: Event Designators512128
Node: Word Designators513706
Node: Modifiers516098
Node: Installing Bash518035
Node: Basic Installation519151
Node: Compilers and Options523027
Node: Compiling For Multiple Architectures523777
Node: Installation Names525530
Node: Specifying the System Type527764
Node: Sharing Defaults528510
Node: Operation Controls529224
Node: Optional Features530243
Node: Reporting Bugs542966
Node: Major Differences From The Bourne Shell544323
Node: GNU Free Documentation License565750
Node: Indexes590927
Node: Builtin Index591378
Node: Reserved Word Index598476
Node: Variable Index600921
Node: Function Index618334
Node: Concept Index632467
Node: Command Grouping51795
Node: Coprocesses53287
Node: GNU Parallel55973
Node: Shell Functions56891
Node: Shell Parameters65339
Node: Positional Parameters70240
Node: Special Parameters71330
Node: Shell Expansions74791
Node: Brace Expansion76980
Node: Tilde Expansion80316
Node: Shell Parameter Expansion83271
Node: Command Substitution104119
Node: Arithmetic Expansion107970
Node: Process Substitution109154
Node: Word Splitting110321
Node: Filename Expansion112765
Node: Pattern Matching115989
Node: Quote Removal121755
Node: Redirections122059
Node: Executing Commands132328
Node: Simple Command Expansion132995
Node: Command Search and Execution135103
Node: Command Execution Environment137547
Node: Environment141073
Node: Exit Status142976
Node: Signals145035
Node: Shell Scripts149983
Node: Shell Builtin Commands153287
Node: Bourne Shell Builtins155628
Node: Bash Builtins182347
Node: Modifying Shell Behavior220082
Node: The Set Builtin220424
Node: The Shopt Builtin232456
Node: Special Builtins249509
Node: Shell Variables250498
Node: Bourne Shell Variables250932
Node: Bash Variables253440
Node: Bash Features292724
Node: Invoking Bash293738
Node: Bash Startup Files300968
Node: Interactive Shells306328
Node: What is an Interactive Shell?306736
Node: Is this Shell Interactive?307398
Node: Interactive Shell Behavior308222
Node: Bash Conditional Expressions311983
Node: Shell Arithmetic317400
Node: Aliases320727
Node: Arrays323861
Node: The Directory Stack331563
Node: Directory Stack Builtins332360
Node: Controlling the Prompt336805
Node: The Restricted Shell339924
Node: Bash POSIX Mode343017
Node: Shell Compatibility Mode362976
Node: Job Control371983
Node: Job Control Basics372440
Node: Job Control Builtins378808
Node: Job Control Variables385596
Node: Command Line Editing386827
Node: Introduction and Notation388530
Node: Readline Interaction390882
Node: Readline Bare Essentials392070
Node: Readline Movement Commands393878
Node: Readline Killing Commands394874
Node: Readline Arguments396897
Node: Searching397987
Node: Readline Init File400230
Node: Readline Init File Syntax401533
Node: Conditional Init Constructs428484
Node: Sample Init File432869
Node: Bindable Readline Commands435989
Node: Commands For Moving437527
Node: Commands For History439991
Node: Commands For Text445384
Node: Commands For Killing449509
Node: Numeric Arguments452297
Node: Commands For Completion453449
Node: Keyboard Macros459145
Node: Miscellaneous Commands459846
Node: Readline vi Mode467389
Node: Programmable Completion468366
Node: Programmable Completion Builtins478102
Node: A Programmable Completion Example489839
Node: Using History Interactively495184
Node: Bash History Facilities495865
Node: Bash History Builtins499600
Node: History Interaction507195
Node: Event Designators512145
Node: Word Designators513723
Node: Modifiers516115
Node: Installing Bash518052
Node: Basic Installation519168
Node: Compilers and Options523044
Node: Compiling For Multiple Architectures523794
Node: Installation Names525547
Node: Specifying the System Type527781
Node: Sharing Defaults528527
Node: Operation Controls529241
Node: Optional Features530260
Node: Reporting Bugs542983
Node: Major Differences From The Bourne Shell544340
Node: GNU Free Documentation License565767
Node: Indexes590944
Node: Builtin Index591395
Node: Reserved Word Index598493
Node: Variable Index600938
Node: Function Index618351
Node: Concept Index632484

End Tag Table
BIN
View File
Binary file not shown.
+1 -1
View File
@@ -114,7 +114,7 @@
@xrdef{Pattern Matching-title}{Pattern Matching}
@xrdef{Pattern Matching-snt}{Section@tie 3.5.8.1}
@xrdef{Filename Expansion-pg}{39}
@xrdef{Pattern Matching-pg}{39}
@xrdef{Pattern Matching-pg}{40}
@xrdef{Quote Removal-title}{Quote Removal}
@xrdef{Quote Removal-snt}{Section@tie 3.5.9}
@xrdef{Redirections-title}{Redirections}
+2 -2
View File
@@ -64,8 +64,8 @@
\entry{expansion, pathname}{39}{expansion, pathname}
\entry{filename expansion}{39}{filename expansion}
\entry{pathname expansion}{39}{pathname expansion}
\entry{pattern matching}{39}{pattern matching}
\entry{matching, pattern}{39}{matching, pattern}
\entry{pattern matching}{40}{pattern matching}
\entry{matching, pattern}{40}{matching, pattern}
\entry{redirection}{41}{redirection}
\entry{command expansion}{45}{command expansion}
\entry{command execution}{46}{command execution}
+2 -2
View File
@@ -87,7 +87,7 @@
\entry{localization}{7}
\entry{login shell}{102}
\initial {M}
\entry{matching, pattern}{39}
\entry{matching, pattern}{40}
\entry{metacharacter}{3}
\initial {N}
\entry{name}{3}
@@ -101,7 +101,7 @@
\entry{parameters, positional}{23}
\entry{parameters, special}{24}
\entry{pathname expansion}{39}
\entry{pattern matching}{39}
\entry{pattern matching}{40}
\entry{pipeline}{10}
\entry{POSIX}{3}
\entry{POSIX description}{116}
+1176 -1428
View File
File diff suppressed because it is too large Load Diff
+122 -122
View File
@@ -2,9 +2,9 @@ This is bashref.info, produced by makeinfo version 7.3 from
bashref.texi.
This text is a brief description of the features that are present in the
Bash shell (version 5.3, 1 July 2026).
Bash shell (version 5.3, 9 July 2026).
This is Edition 5.3, last updated 1 July 2026, of The GNU Bash
This is Edition 5.3, last updated 9 July 2026, of The GNU Bash
Reference Manual, for Bash, Version 5.3.
Copyright © 1988-2026 Free Software Foundation, Inc.
@@ -27,10 +27,10 @@ Bash Features
*************
This text is a brief description of the features that are present in the
Bash shell (version 5.3, 1 July 2026). The Bash home page is
Bash shell (version 5.3, 9 July 2026). The Bash home page is
<http://www.gnu.org/software/bash/>.
This is Edition 5.3, last updated 1 July 2026, of The GNU Bash
This is Edition 5.3, last updated 9 July 2026, of The GNU Bash
Reference Manual, for Bash, Version 5.3.
Bash contains features that appear in other popular shells, and some
@@ -1166,14 +1166,14 @@ File: bashref.info, Node: Conditional Constructs, Next: Command Grouping, Pre
quote special pattern characters where that's necessary.
The array variable BASH_REMATCH records which parts of the string
matched the pattern. Bash unsets BASH_REMATCH before attempting
the match, so if there is no match, it remains unset. The element
of BASH_REMATCH with index 0 contains the portion of the string
matching the entire regular expression. Substrings matched by
parenthesized subexpressions within the regular expression are
saved in the remaining BASH_REMATCH indices. The element of
BASH_REMATCH with index N is the portion of the string matching
the Nth parenthesized subexpression.
matched the pattern. Bash unsets each element of BASH_REMATCH
before attempting the match, so if there is no match, it remains
empty. The element of BASH_REMATCH with index 0 contains the
portion of the string matching the entire regular expression.
Substrings matched by parenthesized subexpressions within the
regular expression are saved in the remaining BASH_REMATCH
indices. The element of BASH_REMATCH with index N is the portion
of the string matching the Nth parenthesized subexpression.
Bash sets BASH_REMATCH in the global scope if it is not set; if
it is declared as a local variable before running [[, Bash keeps
@@ -9825,8 +9825,8 @@ File: bashref.info, Node: Commands For History, Next: Commands For Text, Prev
previous command begin with word 0). A negative argument inserts
the Nth word from the end of the previous command. Once the
argument N is computed, this uses the history expansion facilities
to extract the Nth word, as if the !N history expansion had been
specified.
to extract the Nth word, as if the !!:N history expansion had
been specified.
yank-last-arg (M-. or M-_)
Insert last argument to the previous command (the last word of the
@@ -13796,114 +13796,114 @@ Node: Lists31039
Node: Compound Commands32991
Node: Looping Constructs34003
Node: Conditional Constructs36555
Node: Command Grouping51855
Node: Coprocesses53350
Node: GNU Parallel56039
Node: Shell Functions56960
Node: Shell Parameters65411
Node: Positional Parameters70315
Node: Special Parameters71408
Node: Shell Expansions74872
Node: Brace Expansion77064
Node: Tilde Expansion80403
Node: Shell Parameter Expansion83361
Node: Command Substitution104212
Node: Arithmetic Expansion108066
Node: Process Substitution109253
Node: Word Splitting110423
Node: Filename Expansion112870
Node: Pattern Matching116097
Node: Quote Removal121866
Node: Redirections122173
Node: Executing Commands132445
Node: Simple Command Expansion133115
Node: Command Search and Execution135226
Node: Command Execution Environment137673
Node: Environment141202
Node: Exit Status143108
Node: Signals145170
Node: Shell Scripts150121
Node: Shell Builtin Commands153428
Node: Bourne Shell Builtins155772
Node: Bash Builtins182494
Node: Modifying Shell Behavior220232
Node: The Set Builtin220577
Node: The Shopt Builtin232612
Node: Special Builtins249668
Node: Shell Variables250660
Node: Bourne Shell Variables251097
Node: Bash Variables253608
Node: Bash Features292895
Node: Invoking Bash293912
Node: Bash Startup Files301145
Node: Interactive Shells306508
Node: What is an Interactive Shell?306919
Node: Is this Shell Interactive?307584
Node: Interactive Shell Behavior308411
Node: Bash Conditional Expressions312175
Node: Shell Arithmetic317595
Node: Aliases320925
Node: Arrays324062
Node: The Directory Stack331767
Node: Directory Stack Builtins332567
Node: Controlling the Prompt337015
Node: The Restricted Shell340137
Node: Bash POSIX Mode343233
Node: Shell Compatibility Mode363195
Node: Job Control372205
Node: Job Control Basics372665
Node: Job Control Builtins379036
Node: Job Control Variables385827
Node: Command Line Editing387061
Node: Introduction and Notation388767
Node: Readline Interaction391122
Node: Readline Bare Essentials392313
Node: Readline Movement Commands394124
Node: Readline Killing Commands395123
Node: Readline Arguments397149
Node: Searching398242
Node: Readline Init File400488
Node: Readline Init File Syntax401794
Node: Conditional Init Constructs428748
Node: Sample Init File433136
Node: Bindable Readline Commands436259
Node: Commands For Moving437800
Node: Commands For History440267
Node: Commands For Text445661
Node: Commands For Killing449789
Node: Numeric Arguments452580
Node: Commands For Completion453735
Node: Keyboard Macros459434
Node: Miscellaneous Commands460138
Node: Readline vi Mode467684
Node: Programmable Completion468664
Node: Programmable Completion Builtins478403
Node: A Programmable Completion Example490143
Node: Using History Interactively495491
Node: Bash History Facilities496175
Node: Bash History Builtins499913
Node: History Interaction507511
Node: Event Designators512464
Node: Word Designators514045
Node: Modifiers516440
Node: Installing Bash518380
Node: Basic Installation519499
Node: Compilers and Options523378
Node: Compiling For Multiple Architectures524131
Node: Installation Names525887
Node: Specifying the System Type528124
Node: Sharing Defaults528873
Node: Operation Controls529590
Node: Optional Features530612
Node: Reporting Bugs543338
Node: Major Differences From The Bourne Shell544698
Node: GNU Free Documentation License566128
Node: Indexes591308
Node: Builtin Index591762
Node: Reserved Word Index598863
Node: Variable Index601311
Node: Function Index618727
Node: Concept Index632863
Node: Command Grouping51870
Node: Coprocesses53365
Node: GNU Parallel56054
Node: Shell Functions56975
Node: Shell Parameters65426
Node: Positional Parameters70330
Node: Special Parameters71423
Node: Shell Expansions74887
Node: Brace Expansion77079
Node: Tilde Expansion80418
Node: Shell Parameter Expansion83376
Node: Command Substitution104227
Node: Arithmetic Expansion108081
Node: Process Substitution109268
Node: Word Splitting110438
Node: Filename Expansion112885
Node: Pattern Matching116112
Node: Quote Removal121881
Node: Redirections122188
Node: Executing Commands132460
Node: Simple Command Expansion133130
Node: Command Search and Execution135241
Node: Command Execution Environment137688
Node: Environment141217
Node: Exit Status143123
Node: Signals145185
Node: Shell Scripts150136
Node: Shell Builtin Commands153443
Node: Bourne Shell Builtins155787
Node: Bash Builtins182509
Node: Modifying Shell Behavior220247
Node: The Set Builtin220592
Node: The Shopt Builtin232627
Node: Special Builtins249683
Node: Shell Variables250675
Node: Bourne Shell Variables251112
Node: Bash Variables253623
Node: Bash Features292910
Node: Invoking Bash293927
Node: Bash Startup Files301160
Node: Interactive Shells306523
Node: What is an Interactive Shell?306934
Node: Is this Shell Interactive?307599
Node: Interactive Shell Behavior308426
Node: Bash Conditional Expressions312190
Node: Shell Arithmetic317610
Node: Aliases320940
Node: Arrays324077
Node: The Directory Stack331782
Node: Directory Stack Builtins332582
Node: Controlling the Prompt337030
Node: The Restricted Shell340152
Node: Bash POSIX Mode343248
Node: Shell Compatibility Mode363210
Node: Job Control372220
Node: Job Control Basics372680
Node: Job Control Builtins379051
Node: Job Control Variables385842
Node: Command Line Editing387076
Node: Introduction and Notation388782
Node: Readline Interaction391137
Node: Readline Bare Essentials392328
Node: Readline Movement Commands394139
Node: Readline Killing Commands395138
Node: Readline Arguments397164
Node: Searching398257
Node: Readline Init File400503
Node: Readline Init File Syntax401809
Node: Conditional Init Constructs428763
Node: Sample Init File433151
Node: Bindable Readline Commands436274
Node: Commands For Moving437815
Node: Commands For History440282
Node: Commands For Text445678
Node: Commands For Killing449806
Node: Numeric Arguments452597
Node: Commands For Completion453752
Node: Keyboard Macros459451
Node: Miscellaneous Commands460155
Node: Readline vi Mode467701
Node: Programmable Completion468681
Node: Programmable Completion Builtins478420
Node: A Programmable Completion Example490160
Node: Using History Interactively495508
Node: Bash History Facilities496192
Node: Bash History Builtins499930
Node: History Interaction507528
Node: Event Designators512481
Node: Word Designators514062
Node: Modifiers516457
Node: Installing Bash518397
Node: Basic Installation519516
Node: Compilers and Options523395
Node: Compiling For Multiple Architectures524148
Node: Installation Names525904
Node: Specifying the System Type528141
Node: Sharing Defaults528890
Node: Operation Controls529607
Node: Optional Features530629
Node: Reporting Bugs543355
Node: Major Differences From The Bourne Shell544715
Node: GNU Free Documentation License566145
Node: Indexes591325
Node: Builtin Index591779
Node: Reserved Word Index598880
Node: Variable Index601328
Node: Function Index618744
Node: Concept Index632880

End Tag Table
+23 -23
View File
@@ -1,12 +1,12 @@
This is pdfTeX, Version 3.141592653-2.6-1.40.27 (TeX Live 2025/MacPorts 2025.74524_1) (preloaded format=pdfetex 2025.9.16) 29 APR 2026 10:19
This is pdfTeX, Version 3.141592653-2.6-1.40.29 (TeX Live 2026/MacPorts 2026.78235_5) (preloaded format=pdfetex 2026.6.8) 6 AUG 2026 11:31
entering extended mode
restricted \write18 enabled.
file:line:error style messages enabled.
%&-line parsing enabled.
**\input /usr/local/src/bash/bash-20260428/doc/bashref.texi \input /usr/local/s
rc/bash/bash-20260428/doc/bashref.texi
(/usr/local/src/bash/bash-20260428/doc/bashref.texi
(/usr/local/src/bash/bash-20260428/doc/texinfo.tex
**\input /usr/local/src/bash/bash-20260724/doc/bashref.texi \input /usr/local/s
rc/bash/bash-20260724/doc/bashref.texi
(/usr/local/src/bash/bash-20260724/doc/bashref.texi
(/usr/local/src/bash/bash-20260724/doc/texinfo.tex
Loading texinfo [version 2015-11-22.14]:
\outerhsize=\dimen16
\outervsize=\dimen17
@@ -162,15 +162,15 @@ This is `epsf.tex' v2.7.4 <14 February 2011>
texinfo.tex: doing @include of version.texi
(/usr/local/src/bash/bash-20260428/doc/version.texi) [1{/opt/local/var/db/texmf
(/usr/local/src/bash/bash-20260724/doc/version.texi) [1{/opt/local/var/db/texmf
/fonts/map/pdftex/updmap/pdftex.map}] [2]
(/usr/local/build/bash/bash-20260428/doc/bashref.toc [-1] [-2] [-3]) [-4]
(/usr/local/build/bash/bash-20260428/doc/bashref.toc)
(/usr/local/build/bash/bash-20260428/doc/bashref.toc) Chapter 1
(/usr/local/build/bash/bash-20260724/doc/bashref.toc [-1] [-2] [-3]) [-4]
(/usr/local/build/bash/bash-20260724/doc/bashref.toc)
(/usr/local/build/bash/bash-20260724/doc/bashref.toc) Chapter 1
\openout0 = `bashref.toc'.
(/usr/local/build/bash/bash-20260428/doc/bashref.aux)
(/usr/local/build/bash/bash-20260724/doc/bashref.aux)
\openout1 = `bashref.aux'.
[1] Chapter 2 [2]
@@ -232,7 +232,7 @@ exlive/fonts/enc/dvips/cm-super/cm-super-t1.enc}] [21] [22] [23] [24]
[52]
[53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67]
[68] [69] [70] [71] [72] [73]
Overfull \hbox (38.26585pt too wide) in paragraph at lines 5981--5981
Overfull \hbox (38.26585pt too wide) in paragraph at lines 5984--5984
[]@texttt set [-abefhkmnptuvxBCEHPT] [-o @textttsl option-name@texttt ] [--] [
-] [@textttsl ar-gu-ment []@texttt ][]
@@ -245,7 +245,7 @@ Overfull \hbox (38.26585pt too wide) in paragraph at lines 5981--5981
.etc.
Overfull \hbox (38.26585pt too wide) in paragraph at lines 5982--5982
Overfull \hbox (38.26585pt too wide) in paragraph at lines 5985--5985
[]@texttt set [+abefhkmnptuvxBCEHPT] [+o @textttsl option-name@texttt ] [--] [
-] [@textttsl ar-gu-ment []@texttt ][]
@@ -265,7 +265,7 @@ Overfull \hbox (38.26585pt too wide) in paragraph at lines 5982--5982
texinfo.tex: doing @include of rluser.texi
(/usr/local/src/bash/bash-20260428/lib/readline/doc/rluser.texi Chapter 8
(/usr/local/src/bash/bash-20260724/lib/readline/doc/rluser.texi Chapter 8
[130] [131] [132] [133] [134] [135] [136] [137] [138] [139] [140] [141]
Underfull \hbox (badness 7540) in paragraph at lines 969--975
[]@textrm In the ex-am-ple above, @textttsl C-u[] @textrm is bound to the func
@@ -314,10 +314,10 @@ gnored[]
texinfo.tex: doing @include of hsuser.texi
(/usr/local/src/bash/bash-20260428/lib/readline/doc/hsuser.texi Chapter 9
(/usr/local/src/bash/bash-20260724/lib/readline/doc/hsuser.texi Chapter 9
[168] [169] [170] [171] [172] [173] [174]) Chapter 10 [175] [176] [177]
[178] [179]
Underfull \hbox (badness 10000) in paragraph at lines 10855--10864
Underfull \hbox (badness 10000) in paragraph at lines 10876--10885
[]@textrm All of the fol-low-ing op-tions ex-cept for `@texttt alt-array-implem
entation[]@textrm '[],
@@ -330,7 +330,7 @@ entation[]@textrm '[],
.etc.
Underfull \hbox (badness 10000) in paragraph at lines 10855--10864
Underfull \hbox (badness 10000) in paragraph at lines 10876--10885
@textrm `@texttt disabled-builtins[]@textrm '[], `@texttt direxpand-default[]@t
extrm '[], `@texttt strict-posix-default[]@textrm '[], and
@@ -347,13 +347,13 @@ extrm '[], `@texttt strict-posix-default[]@textrm '[], and
texinfo.tex: doing @include of fdl.texi
(/usr/local/src/bash/bash-20260428/doc/fdl.texi [193] [194] [195] [196]
(/usr/local/src/bash/bash-20260724/doc/fdl.texi [193] [194] [195] [196]
[197] [198] [199]) Appendix D [200] [201] [202] [203] [204] [205] [206]
[207] [208] [209] )
Here is how much of TeX's memory you used:
4117 strings out of 495820
47665 string characters out of 6170887
145121 words of memory out of 5000000
4117 strings out of 495821
47665 string characters out of 6170903
145117 words of memory out of 5000000
5053 multiletter control sequences out of 15000+600000
34315 words of font info for 116 fonts, out of 8000000 for 9000
701 hyphenation exceptions out of 8191
@@ -374,10 +374,10 @@ fonts/type1/public/amsfonts/cm/cmti10.pfb></opt/local/share/texmf-texlive/fonts
lic/amsfonts/cm/cmtt9.pfb></opt/local/share/texmf-texlive/fonts/type1/public/cm
-super/sfrm1095.pfb></opt/local/share/texmf-texlive/fonts/type1/public/cm-super
/sfrm1440.pfb>
Output written on bashref.pdf (215 pages, 814924 bytes).
Output written on bashref.pdf (215 pages, 815595 bytes).
PDF statistics:
2954 PDF objects out of 2984 (max. 8388607)
2691 compressed objects within 27 object streams
2955 PDF objects out of 2984 (max. 8388607)
2692 compressed objects within 27 object streams
343 named destinations out of 1000 (max. 500000)
1157 words of extra memory for PDF output out of 10000 (max. 10000000)
BIN
View File
Binary file not shown.
+1 -1
View File
@@ -36,7 +36,7 @@
@numsubsecentry{Process Substitution}{3.5.6}{Process Substitution}{38}
@numsubsecentry{Word Splitting}{3.5.7}{Word Splitting}{38}
@numsubsecentry{Filename Expansion}{3.5.8}{Filename Expansion}{39}
@numsubsubsecentry{Pattern Matching}{3.5.8.1}{Pattern Matching}{39}
@numsubsubsecentry{Pattern Matching}{3.5.8.1}{Pattern Matching}{40}
@numsubsecentry{Quote Removal}{3.5.9}{Quote Removal}{41}
@numsecentry{Redirections}{3.6}{Redirections}{41}
@numsubsecentry{Redirecting Input}{3.6.1}{}{43}
+2267 -2341
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+38 -39
View File
@@ -1,63 +1,62 @@
_R_B_A_S_H(1) General Commands Manual _R_B_A_S_H(1)
_R_B_A_S_H(1) General Commands Manual _R_B_A_S_H(1)
NNAAMMEE
rbash - restricted bash, see bbaasshh(1)
rbash - restricted bash, see bbaasshh(1)
RREESSTTRRIICCTTEEDD SSHHEELLLL
If bbaasshh is started with the name rrbbaasshh, or the --rr option is supplied at
invocation, the shell becomes _r_e_s_t_r_i_c_t_e_d. A restricted shell is used
to set up an environment more controlled than the standard shell. It
behaves identically to bbaasshh with the exception that the following are
disallowed or not performed:
If bbaasshh is started with the name rrbbaasshh, or the --rr option is supplied at in-
vocation, the shell becomes _r_e_s_t_r_i_c_t_e_d. A restricted shell is used to set
up an environment more controlled than the standard shell. It behaves
identically to bbaasshh with the exception that the following are disallowed or
not performed:
+o Changing directories with ccdd.
* Changing directories with ccdd.
+o Setting or unsetting the values of SSHHEELLLL, PPAATTHH, HHIISSTTFFIILLEE, EENNVV,
or BBAASSHH__EENNVV.
* Setting or unsetting the values of SSHHEELLLL, PPAATTHH, HHIISSTTFFIILLEE, EENNVV, or
BBAASSHH__EENNVV.
+o Specifying command names containing //.
* Specifying command names containing //.
+o Specifying a filename containing a // as an argument to the ..
builtin command.
* Specifying a filename containing a // as an argument to the ..
builtin command.
+o Using the --pp option to the .. builtin command to specify a
search path.
* Using the --pp option to the .. builtin command to specify a search
path.
+o Specifying a filename containing a slash as an argument to the
hhiissttoorryy builtin command.
* Specifying a filename containing a slash as an argument to the hhiiss--
ttoorryy builtin command.
+o Specifying a filename containing a slash as an argument to the
--pp option to the hhaasshh builtin command.
* Specifying a filename containing a slash as an argument to the --pp
option to the hhaasshh builtin command.
+o Importing function definitions from the shell environment at
startup.
* Importing function definitions from the shell environment at
startup.
+o Parsing the values of BBAASSHHOOPPTTSS and SSHHEELLLLOOPPTTSS from the shell en-
vironment at startup.
* Parsing the values of BBAASSHHOOPPTTSS and SSHHEELLLLOOPPTTSS from the shell environ-
ment at startup.
+o Redirecting output using the >, >|, <>, >&, &>, and >> redirec-
tion operators.
* Redirecting output using the >, >|, <>, >&, &>, and >> redirection
operators.
+o Using the eexxeecc builtin command to replace the shell with another
command.
* Using the eexxeecc builtin command to replace the shell with another
command.
+o Adding or deleting builtin commands with the --ff and --dd options
to the eennaabbllee builtin command.
* Adding or deleting builtin commands with the --ff and --dd options to
the eennaabbllee builtin command.
+o Using the eennaabbllee builtin command to enable disabled shell
builtins.
* Using the eennaabbllee builtin command to enable disabled shell builtins.
+o Specifying the --pp option to the ccoommmmaanndd builtin command.
* Specifying the --pp option to the ccoommmmaanndd builtin command.
+o Turning off restricted mode with sseett ++rr or sshhoopptt --uu rree--
ssttrriicctteedd__sshheellll.
* Turning off restricted mode with sseett ++rr or sshhoopptt --uu rree--
ssttrriicctteedd__sshheellll.
These restrictions are enforced after any startup files are read.
These restrictions are enforced after any startup files are read.
When a command that is found to be a shell script is executed, rrbbaasshh
turns off any restrictions in the shell spawned to execute the script.
When a command that is found to be a shell script is executed, rrbbaasshh turns
off any restrictions in the shell spawned to execute the script.
SSEEEE AALLSSOO
bash(1)
bash(1)
Bash-5.3 2021 November 22 _R_B_A_S_H(1)
Bash-5.3 2021 November 22 _R_B_A_S_H(1)
+7 -2
View File
@@ -110,8 +110,13 @@ extern char *strcpy (char *, const char *);
#define INT_BUFSIZE_BOUND(t) (INT_STRLEN_BOUND (t) + 1)
/* Define exactly what a legal shell identifier consists of. */
#define legal_variable_starter(c) (ISALPHA(c) || (c == '_'))
#define legal_variable_char(c) (ISALNUM(c) || c == '_')
#if 0
#define legal_variable_starter(c) (c < 128 && (ISALPHA(c) || c == '_'))
#define legal_variable_char(c) (c < 128 && (ISALNUM(c) || c == '_'))
#else
#define legal_variable_starter(c) (sh_syntaxtab[c] & CNAMESTART)
#define legal_variable_char(c) (sh_syntaxtab[c] & CNAME)
#endif
/* Definitions used in subst.c and by the `read' builtin for field
splitting. */
+2 -1
View File
@@ -78,7 +78,8 @@
#define DIGIT(c) ((c) >= '0' && (c) <= '9')
#define ISWORD(c) (ISLETTER(c) || DIGIT(c) || ((c) == '_'))
#define ISNAME(c) (IN_CTYPE_DOMAIN(c) && (sh_syntaxtab[(unsigned char)c] & CNAME))
#define ISNAMESTART(c) (IN_CTYPE_DOMAIN(c) && (sh_syntaxtab[(unsigned char)c] & CNAMESTART))
#define HEXVALUE(c) \
(((c) >= 'a' && (c) <= 'f') \
+12
View File
@@ -2365,6 +2365,14 @@ rl_vi_possible_completions (void)
}
#endif
static inline int
_rl_vi_check_arrows (void)
{
return ((RL_ISSTATE (RL_STATE_INPUTPENDING|RL_STATE_MACROINPUT) == 0) &&
_rl_pushed_input_available () == 0 &&
_rl_input_queued (0));
}
/* Functions to save and restore marks. */
static int
_rl_vi_set_mark (void)
@@ -2378,6 +2386,8 @@ _rl_vi_set_mark (void)
if (ch < 0 || ch < 'a' || ch > 'z') /* make test against 0 explicit */
{
rl_ding ();
if (ch == ESC && _rl_vi_check_arrows ())
_rl_unget_char (ch); /* assume arrow key or other CSI sequence */
return 1;
}
ch -= 'a';
@@ -2429,6 +2439,8 @@ _rl_vi_goto_mark (void)
else if (ch < 0 || ch < 'a' || ch > 'z') /* make test against 0 explicit */
{
rl_ding ();
if (ch == ESC && _rl_vi_check_arrows ())
_rl_unget_char (ch); /* assume arrow key or other CSI sequence */
return 1;
}
+44 -1
View File
@@ -2,7 +2,7 @@
* mksyntax.c - construct shell syntax table for fast char attribute lookup.
*/
/* Copyright (C) 2000-2009,2012,2022-2024 Free Software Foundation, Inc.
/* Copyright (C) 2000-2009,2012,2022-2024,2026 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -60,6 +60,8 @@ struct wordflag {
{ CSPECVAR, "CSPECVAR" },
{ CSUBSTOP, "CSUBSTOP" },
{ CBLANK, "CBLANK" },
{ CNAME, "CNAME" },
{ CNAMESTART, "CNAMESTART" }
};
#define N_WFLAGS (sizeof (wordflags) / sizeof (wordflags[0]))
@@ -198,6 +200,45 @@ addblanks (void)
}
}
static void
setnamechars(void)
{
lsyntax['_'] |= CNAME|CNAMESTART;
lsyntax['0'] |= CNAME; lsyntax['1'] |= CNAME; lsyntax['2'] |= CNAME;
lsyntax['3'] |= CNAME; lsyntax['4'] |= CNAME; lsyntax['5'] |= CNAME;
lsyntax['6'] |= CNAME; lsyntax['7'] |= CNAME; lsyntax['8'] |= CNAME;
lsyntax['9'] |= CNAME;
lsyntax['a'] |= CNAME|CNAMESTART; lsyntax['b'] |= CNAME|CNAMESTART;
lsyntax['c'] |= CNAME|CNAMESTART; lsyntax['d'] |= CNAME|CNAMESTART;
lsyntax['e'] |= CNAME|CNAMESTART; lsyntax['f'] |= CNAME|CNAMESTART;
lsyntax['g'] |= CNAME|CNAMESTART; lsyntax['h'] |= CNAME|CNAMESTART;
lsyntax['i'] |= CNAME|CNAMESTART; lsyntax['j'] |= CNAME|CNAMESTART;
lsyntax['k'] |= CNAME|CNAMESTART; lsyntax['l'] |= CNAME|CNAMESTART;
lsyntax['m'] |= CNAME|CNAMESTART; lsyntax['n'] |= CNAME|CNAMESTART;
lsyntax['o'] |= CNAME|CNAMESTART; lsyntax['p'] |= CNAME|CNAMESTART;
lsyntax['q'] |= CNAME|CNAMESTART; lsyntax['r'] |= CNAME|CNAMESTART;
lsyntax['s'] |= CNAME|CNAMESTART; lsyntax['t'] |= CNAME|CNAMESTART;
lsyntax['u'] |= CNAME|CNAMESTART; lsyntax['v'] |= CNAME|CNAMESTART;
lsyntax['w'] |= CNAME|CNAMESTART; lsyntax['x'] |= CNAME|CNAMESTART;
lsyntax['y'] |= CNAME|CNAMESTART; lsyntax['z'] |= CNAME|CNAMESTART;
lsyntax['A'] |= CNAME|CNAMESTART; lsyntax['B'] |= CNAME|CNAMESTART;
lsyntax['C'] |= CNAME|CNAMESTART; lsyntax['D'] |= CNAME|CNAMESTART;
lsyntax['E'] |= CNAME|CNAMESTART; lsyntax['F'] |= CNAME|CNAMESTART;
lsyntax['G'] |= CNAME|CNAMESTART; lsyntax['H'] |= CNAME|CNAMESTART;
lsyntax['I'] |= CNAME|CNAMESTART; lsyntax['J'] |= CNAME|CNAMESTART;
lsyntax['K'] |= CNAME|CNAMESTART; lsyntax['L'] |= CNAME|CNAMESTART;
lsyntax['M'] |= CNAME|CNAMESTART; lsyntax['N'] |= CNAME|CNAMESTART;
lsyntax['O'] |= CNAME|CNAMESTART; lsyntax['P'] |= CNAME|CNAMESTART;
lsyntax['Q'] |= CNAME|CNAMESTART; lsyntax['R'] |= CNAME|CNAMESTART;
lsyntax['S'] |= CNAME|CNAMESTART; lsyntax['T'] |= CNAME|CNAMESTART;
lsyntax['U'] |= CNAME|CNAMESTART; lsyntax['V'] |= CNAME|CNAMESTART;
lsyntax['W'] |= CNAME|CNAMESTART; lsyntax['X'] |= CNAME|CNAMESTART;
lsyntax['Y'] |= CNAME|CNAMESTART; lsyntax['Z'] |= CNAME|CNAMESTART;
}
/* load up the correct flag values in lsyntax */
static void
load_lsyntax (void)
@@ -234,6 +275,8 @@ load_lsyntax (void)
addcstr ("-=?+", CSUBSTOP); /* OP in ${paramOPword} */
addblanks ();
setnamechars ();
}
static void
BIN
View File
Binary file not shown.
+1703 -1232
View File
File diff suppressed because it is too large Load Diff
+2
View File
@@ -63,6 +63,8 @@
#define CSPECVAR 0x0800 /* single-character shell variable name */
#define CSUBSTOP 0x1000 /* values of OP for ${word[:]OPstuff} */
#define CBLANK 0x2000 /* whitespace (blank) character */
#define CNAME 0x4000 /* POSIX name character ([_0-9a-zA-Z]) */
#define CNAMESTART 0x8000 /* POSIX name start character ([_a-zA-Z]) */
/* Defines for use by the rest of the shell. */
extern int sh_syntaxtab[];