mirror of
https://https.git.savannah.gnu.org/git/bash.git
synced 2026-08-07 18:52:35 +02:00
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:
@@ -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>
|
||||
|
||||
|
||||
@@ -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
File diff suppressed because it is too large
Load Diff
+6506
-7219
File diff suppressed because it is too large
Load Diff
+122
-122
@@ -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
|
||||
|
||||
|
||||
Binary file not shown.
+1
-1
@@ -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
@@ -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
@@ -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
File diff suppressed because it is too large
Load Diff
+122
-122
@@ -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
@@ -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)
|
||||
|
||||
|
||||
Binary file not shown.
+1
-1
@@ -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
File diff suppressed because it is too large
Load Diff
Binary file not shown.
+38
-39
@@ -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)
|
||||
|
||||
@@ -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
@@ -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') \
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
@@ -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[];
|
||||
|
||||
Reference in New Issue
Block a user