commit bash-20131227 snapshot

This commit is contained in:
Chet Ramey
2013-12-30 09:39:07 -05:00
parent ceae08e044
commit 6e51e0d00d
30 changed files with 37503 additions and 12265 deletions
+26
View File
@@ -5499,3 +5499,29 @@ expr.c
- exp2: save token pointer before calling readtok(), arrange to use
saved token pointer when printing error token on a division by 0
error
12/27
-----
lib/readline/display.c
- rl_redisplay: when calculating effects of invisible characters in a
prompt that is split across physical screen lines to set the indices
of linebreaks, don't bother testing local_prompt_prefix (line 751).
That prefix doesn't matter when calculating prompt visible and
invisible characters. Fixes problem reported by Jinesh Choksi
<jinesh@onelittlehope.com>
Makefile.in
- install: make sure to use $(DESTDIR) when installing OTHER_DOCS.
Report and fix from Matthias Klose <doko@debian.org>
doc/texinfo.tex
- updated to version of 2013-09-11
12/28
-----
lib/readline/undo.c
- rl_do_undo: if we are undoing from a history entry (rl_undo_list ==
current_history()->data), make sure the change to rl_line_buffer is
reflected in the history entry. We use the guts of
rl_maybe_replace_line to do the work. Fixes problem reported by
gregrwm <backuppc-users@whitleymott.net>
+22
View File
@@ -5494,3 +5494,25 @@ execute_cmd.c
- execute_for_command: make sure to set line_number before expanding
the word list, so expansion errors have the right line number.
From a report from Ben Okopnik <ben@okopnik.com>
expr.c
- exp2: save token pointer before calling readtok(), arrange to use
saved token pointer when printing error token on a division by 0
error
12/27
-----
lib/readline/display.c
- rl_redisplay: when calculating effects of invisible characters in a
prompt that is split across physical screen lines to set the indices
of linebreaks, don't bother testing local_prompt_prefix (line 751).
That prefix doesn't matter when calculating prompt visible and
invisible characters. Fixes problem reported by Jinesh Choksi
<jinesh@onelittlehope.com>
Makefile.in
- install: make sure to use $(DESTDIR) when installing OTHER_DOCS.
Report and fix from Matthias Klose <doko@debian.org>
doc/texinfo.tex
- updated to version of 2013-09-11
+2 -2
View File
@@ -1,4 +1,4 @@
# Makefile for bash-4.3, version 4.10
# Makefile for bash-4.3, version 4.11
#
# Copyright (C) 1996-2012 Free Software Foundation, Inc.
@@ -766,7 +766,7 @@ installdirs:
install: .made installdirs
$(INSTALL_PROGRAM) $(INSTALLMODE) $(Program) $(DESTDIR)$(bindir)/$(Program)
$(INSTALL_SCRIPT) $(INSTALLMODE2) bashbug $(DESTDIR)$(bindir)/bashbug
$(INSTALL_DATA) $(OTHER_DOCS) $(docdir)
$(INSTALL_DATA) $(OTHER_DOCS) $(DESTDIR)$(docdir)
-( cd $(DOCDIR) ; $(MAKE) $(MFLAGS) \
man1dir=$(man1dir) man1ext=$(man1ext) \
man3dir=$(man3dir) man3ext=$(man3ext) \
+61 -61
View File
@@ -155,11 +155,11 @@
@xrdef{Modifying Shell Behavior-snt}{Section@tie 4.3}
@xrdef{The Set Builtin-title}{The Set Builtin}
@xrdef{The Set Builtin-snt}{Section@tie 4.3.1}
@xrdef{Modifying Shell Behavior-pg}{59}
@xrdef{The Set Builtin-pg}{59}
@xrdef{Modifying Shell Behavior-pg}{58}
@xrdef{The Set Builtin-pg}{58}
@xrdef{The Shopt Builtin-title}{The Shopt Builtin}
@xrdef{The Shopt Builtin-snt}{Section@tie 4.3.2}
@xrdef{The Shopt Builtin-pg}{63}
@xrdef{The Shopt Builtin-pg}{62}
@xrdef{Special Builtins-title}{Special Builtins}
@xrdef{Special Builtins-snt}{Section@tie 4.4}
@xrdef{Special Builtins-pg}{68}
@@ -186,11 +186,11 @@
@xrdef{What is an Interactive Shell?-title}{What is an Interactive Shell?}
@xrdef{What is an Interactive Shell?-snt}{Section@tie 6.3.1}
@xrdef{Interactive Shells-pg}{83}
@xrdef{What is an Interactive Shell?-pg}{83}
@xrdef{Is this Shell Interactive?-title}{Is this Shell Interactive?}
@xrdef{Is this Shell Interactive?-snt}{Section@tie 6.3.2}
@xrdef{Interactive Shell Behavior-title}{Interactive Shell Behavior}
@xrdef{Interactive Shell Behavior-snt}{Section@tie 6.3.3}
@xrdef{What is an Interactive Shell?-pg}{84}
@xrdef{Is this Shell Interactive?-pg}{84}
@xrdef{Interactive Shell Behavior-pg}{84}
@xrdef{Bash Conditional Expressions-title}{Bash Conditional Expressions}
@@ -209,29 +209,29 @@
@xrdef{The Directory Stack-snt}{Section@tie 6.8}
@xrdef{Directory Stack Builtins-title}{Directory Stack Builtins}
@xrdef{Directory Stack Builtins-snt}{Section@tie 6.8.1}
@xrdef{The Directory Stack-pg}{91}
@xrdef{Directory Stack Builtins-pg}{91}
@xrdef{The Directory Stack-pg}{90}
@xrdef{Directory Stack Builtins-pg}{90}
@xrdef{Controlling the Prompt-title}{Controlling the Prompt}
@xrdef{Controlling the Prompt-snt}{Section@tie 6.9}
@xrdef{Controlling the Prompt-pg}{92}
@xrdef{The Restricted Shell-title}{The Restricted Shell}
@xrdef{The Restricted Shell-snt}{Section@tie 6.10}
@xrdef{The Restricted Shell-pg}{93}
@xrdef{Bash POSIX Mode-title}{Bash POSIX Mode}
@xrdef{Bash POSIX Mode-snt}{Section@tie 6.11}
@xrdef{The Restricted Shell-pg}{93}
@xrdef{Bash POSIX Mode-pg}{94}
@xrdef{Job Control-title}{Job Control}
@xrdef{Job Control-snt}{Chapter@tie 7}
@xrdef{Job Control Basics-title}{Job Control Basics}
@xrdef{Job Control Basics-snt}{Section@tie 7.1}
@xrdef{Job Control-pg}{98}
@xrdef{Job Control Basics-pg}{98}
@xrdef{Job Control-pg}{97}
@xrdef{Job Control Basics-pg}{97}
@xrdef{Job Control Builtins-title}{Job Control Builtins}
@xrdef{Job Control Builtins-snt}{Section@tie 7.2}
@xrdef{Job Control Builtins-pg}{99}
@xrdef{Job Control Builtins-pg}{98}
@xrdef{Job Control Variables-title}{Job Control Variables}
@xrdef{Job Control Variables-snt}{Section@tie 7.3}
@xrdef{Job Control Variables-pg}{101}
@xrdef{Job Control Variables-pg}{100}
@xrdef{Command Line Editing-title}{Command Line Editing}
@xrdef{Command Line Editing-snt}{Chapter@tie 8}
@xrdef{Introduction and Notation-title}{Introduction to Line Editing}
@@ -240,145 +240,145 @@
@xrdef{Readline Interaction-snt}{Section@tie 8.2}
@xrdef{Readline Bare Essentials-title}{Readline Bare Essentials}
@xrdef{Readline Bare Essentials-snt}{Section@tie 8.2.1}
@xrdef{Command Line Editing-pg}{102}
@xrdef{Introduction and Notation-pg}{102}
@xrdef{Readline Interaction-pg}{102}
@xrdef{Command Line Editing-pg}{101}
@xrdef{Introduction and Notation-pg}{101}
@xrdef{Readline Interaction-pg}{101}
@xrdef{Readline Movement Commands-title}{Readline Movement Commands}
@xrdef{Readline Movement Commands-snt}{Section@tie 8.2.2}
@xrdef{Readline Killing Commands-title}{Readline Killing Commands}
@xrdef{Readline Killing Commands-snt}{Section@tie 8.2.3}
@xrdef{Readline Bare Essentials-pg}{103}
@xrdef{Readline Movement Commands-pg}{103}
@xrdef{Readline Bare Essentials-pg}{102}
@xrdef{Readline Movement Commands-pg}{102}
@xrdef{Readline Arguments-title}{Readline Arguments}
@xrdef{Readline Arguments-snt}{Section@tie 8.2.4}
@xrdef{Searching-title}{Searching for Commands in the History}
@xrdef{Searching-snt}{Section@tie 8.2.5}
@xrdef{Readline Killing Commands-pg}{104}
@xrdef{Readline Arguments-pg}{104}
@xrdef{Searching-pg}{104}
@xrdef{Readline Killing Commands-pg}{103}
@xrdef{Readline Arguments-pg}{103}
@xrdef{Searching-pg}{103}
@xrdef{Readline Init File-title}{Readline Init File}
@xrdef{Readline Init File-snt}{Section@tie 8.3}
@xrdef{Readline Init File Syntax-title}{Readline Init File Syntax}
@xrdef{Readline Init File Syntax-snt}{Section@tie 8.3.1}
@xrdef{Readline Init File-pg}{105}
@xrdef{Readline Init File Syntax-pg}{105}
@xrdef{Readline Init File-pg}{104}
@xrdef{Readline Init File Syntax-pg}{104}
@xrdef{Conditional Init Constructs-title}{Conditional Init Constructs}
@xrdef{Conditional Init Constructs-snt}{Section@tie 8.3.2}
@xrdef{Conditional Init Constructs-pg}{112}
@xrdef{Conditional Init Constructs-pg}{111}
@xrdef{Sample Init File-title}{Sample Init File}
@xrdef{Sample Init File-snt}{Section@tie 8.3.3}
@xrdef{Sample Init File-pg}{113}
@xrdef{Sample Init File-pg}{112}
@xrdef{Bindable Readline Commands-title}{Bindable Readline Commands}
@xrdef{Bindable Readline Commands-snt}{Section@tie 8.4}
@xrdef{Commands For Moving-title}{Commands For Moving}
@xrdef{Commands For Moving-snt}{Section@tie 8.4.1}
@xrdef{Commands For History-title}{Commands For Manipulating The History}
@xrdef{Commands For History-snt}{Section@tie 8.4.2}
@xrdef{Bindable Readline Commands-pg}{116}
@xrdef{Commands For Moving-pg}{116}
@xrdef{Commands For History-pg}{117}
@xrdef{Bindable Readline Commands-pg}{115}
@xrdef{Commands For Moving-pg}{115}
@xrdef{Commands For History-pg}{116}
@xrdef{Commands For Text-title}{Commands For Changing Text}
@xrdef{Commands For Text-snt}{Section@tie 8.4.3}
@xrdef{Commands For Text-pg}{118}
@xrdef{Commands For Text-pg}{117}
@xrdef{Commands For Killing-title}{Killing And Yanking}
@xrdef{Commands For Killing-snt}{Section@tie 8.4.4}
@xrdef{Commands For Killing-pg}{119}
@xrdef{Commands For Killing-pg}{118}
@xrdef{Numeric Arguments-title}{Specifying Numeric Arguments}
@xrdef{Numeric Arguments-snt}{Section@tie 8.4.5}
@xrdef{Numeric Arguments-pg}{120}
@xrdef{Numeric Arguments-pg}{119}
@xrdef{Commands For Completion-title}{Letting Readline Type For You}
@xrdef{Commands For Completion-snt}{Section@tie 8.4.6}
@xrdef{Commands For Completion-pg}{121}
@xrdef{Commands For Completion-pg}{120}
@xrdef{Keyboard Macros-title}{Keyboard Macros}
@xrdef{Keyboard Macros-snt}{Section@tie 8.4.7}
@xrdef{Keyboard Macros-pg}{122}
@xrdef{Keyboard Macros-pg}{121}
@xrdef{Miscellaneous Commands-title}{Some Miscellaneous Commands}
@xrdef{Miscellaneous Commands-snt}{Section@tie 8.4.8}
@xrdef{Miscellaneous Commands-pg}{123}
@xrdef{Miscellaneous Commands-pg}{122}
@xrdef{Readline vi Mode-title}{Readline vi Mode}
@xrdef{Readline vi Mode-snt}{Section@tie 8.5}
@xrdef{Programmable Completion-title}{Programmable Completion}
@xrdef{Programmable Completion-snt}{Section@tie 8.6}
@xrdef{Readline vi Mode-pg}{125}
@xrdef{Programmable Completion-pg}{125}
@xrdef{Readline vi Mode-pg}{124}
@xrdef{Programmable Completion-pg}{124}
@xrdef{Programmable Completion Builtins-title}{Programmable Completion Builtins}
@xrdef{Programmable Completion Builtins-snt}{Section@tie 8.7}
@xrdef{Programmable Completion Builtins-pg}{127}
@xrdef{Programmable Completion Builtins-pg}{126}
@xrdef{A Programmable Completion Example-title}{A Programmable Completion Example}
@xrdef{A Programmable Completion Example-snt}{Section@tie 8.8}
@xrdef{A Programmable Completion Example-pg}{131}
@xrdef{A Programmable Completion Example-pg}{130}
@xrdef{Using History Interactively-title}{Using History Interactively}
@xrdef{Using History Interactively-snt}{Chapter@tie 9}
@xrdef{Bash History Facilities-title}{Bash History Facilities}
@xrdef{Bash History Facilities-snt}{Section@tie 9.1}
@xrdef{Bash History Builtins-title}{Bash History Builtins}
@xrdef{Bash History Builtins-snt}{Section@tie 9.2}
@xrdef{Using History Interactively-pg}{134}
@xrdef{Bash History Facilities-pg}{134}
@xrdef{Bash History Builtins-pg}{134}
@xrdef{Using History Interactively-pg}{133}
@xrdef{Bash History Facilities-pg}{133}
@xrdef{Bash History Builtins-pg}{133}
@xrdef{History Interaction-title}{History Expansion}
@xrdef{History Interaction-snt}{Section@tie 9.3}
@xrdef{Event Designators-title}{Event Designators}
@xrdef{Event Designators-snt}{Section@tie 9.3.1}
@xrdef{History Interaction-pg}{136}
@xrdef{History Interaction-pg}{135}
@xrdef{Event Designators-pg}{135}
@xrdef{Word Designators-title}{Word Designators}
@xrdef{Word Designators-snt}{Section@tie 9.3.2}
@xrdef{Event Designators-pg}{137}
@xrdef{Word Designators-pg}{137}
@xrdef{Word Designators-pg}{136}
@xrdef{Modifiers-title}{Modifiers}
@xrdef{Modifiers-snt}{Section@tie 9.3.3}
@xrdef{Modifiers-pg}{138}
@xrdef{Modifiers-pg}{137}
@xrdef{Installing Bash-title}{Installing Bash}
@xrdef{Installing Bash-snt}{Chapter@tie 10}
@xrdef{Basic Installation-title}{Basic Installation}
@xrdef{Basic Installation-snt}{Section@tie 10.1}
@xrdef{Compilers and Options-title}{Compilers and Options}
@xrdef{Compilers and Options-snt}{Section@tie 10.2}
@xrdef{Installing Bash-pg}{139}
@xrdef{Basic Installation-pg}{139}
@xrdef{Installing Bash-pg}{138}
@xrdef{Basic Installation-pg}{138}
@xrdef{Compiling For Multiple Architectures-title}{Compiling For Multiple Architectures}
@xrdef{Compiling For Multiple Architectures-snt}{Section@tie 10.3}
@xrdef{Installation Names-title}{Installation Names}
@xrdef{Installation Names-snt}{Section@tie 10.4}
@xrdef{Specifying the System Type-title}{Specifying the System Type}
@xrdef{Specifying the System Type-snt}{Section@tie 10.5}
@xrdef{Compilers and Options-pg}{140}
@xrdef{Compiling For Multiple Architectures-pg}{140}
@xrdef{Installation Names-pg}{140}
@xrdef{Specifying the System Type-pg}{140}
@xrdef{Compilers and Options-pg}{139}
@xrdef{Compiling For Multiple Architectures-pg}{139}
@xrdef{Installation Names-pg}{139}
@xrdef{Specifying the System Type-pg}{139}
@xrdef{Sharing Defaults-title}{Sharing Defaults}
@xrdef{Sharing Defaults-snt}{Section@tie 10.6}
@xrdef{Operation Controls-title}{Operation Controls}
@xrdef{Operation Controls-snt}{Section@tie 10.7}
@xrdef{Optional Features-title}{Optional Features}
@xrdef{Optional Features-snt}{Section@tie 10.8}
@xrdef{Sharing Defaults-pg}{141}
@xrdef{Operation Controls-pg}{141}
@xrdef{Optional Features-pg}{141}
@xrdef{Sharing Defaults-pg}{140}
@xrdef{Operation Controls-pg}{140}
@xrdef{Optional Features-pg}{140}
@xrdef{Reporting Bugs-title}{Reporting Bugs}
@xrdef{Reporting Bugs-snt}{Appendix@tie @char65{}}
@xrdef{Reporting Bugs-pg}{146}
@xrdef{Reporting Bugs-pg}{145}
@xrdef{Major Differences From The Bourne Shell-title}{Major Differences From The Bourne Shell}
@xrdef{Major Differences From The Bourne Shell-snt}{Appendix@tie @char66{}}
@xrdef{Major Differences From The Bourne Shell-pg}{147}
@xrdef{Major Differences From The Bourne Shell-pg}{146}
@xrdef{GNU Free Documentation License-title}{GNU Free Documentation License}
@xrdef{GNU Free Documentation License-snt}{Appendix@tie @char67{}}
@xrdef{GNU Free Documentation License-pg}{153}
@xrdef{GNU Free Documentation License-pg}{152}
@xrdef{Indexes-title}{Indexes}
@xrdef{Indexes-snt}{Appendix@tie @char68{}}
@xrdef{Builtin Index-title}{Index of Shell Builtin Commands}
@xrdef{Builtin Index-snt}{Section@tie @char68.1}
@xrdef{Indexes-pg}{161}
@xrdef{Builtin Index-pg}{161}
@xrdef{Indexes-pg}{160}
@xrdef{Builtin Index-pg}{160}
@xrdef{Reserved Word Index-title}{Index of Shell Reserved Words}
@xrdef{Reserved Word Index-snt}{Section@tie @char68.2}
@xrdef{Variable Index-title}{Parameter and Variable Index}
@xrdef{Variable Index-snt}{Section@tie @char68.3}
@xrdef{Reserved Word Index-pg}{162}
@xrdef{Variable Index-pg}{162}
@xrdef{Reserved Word Index-pg}{161}
@xrdef{Variable Index-pg}{161}
@xrdef{Function Index-title}{Function Index}
@xrdef{Function Index-snt}{Section@tie @char68.4}
@xrdef{Function Index-pg}{164}
@xrdef{Function Index-pg}{163}
@xrdef{Concept Index-title}{Concept Index}
@xrdef{Concept Index-snt}{Section@tie @char68.5}
@xrdef{Concept Index-pg}{166}
@xrdef{Concept Index-pg}{165}
+20 -20
View File
@@ -30,30 +30,30 @@
\entry{help}{53}{\code {help}}
\entry{let}{53}{\code {let}}
\entry{local}{53}{\code {local}}
\entry{logout}{54}{\code {logout}}
\entry{mapfile}{54}{\code {mapfile}}
\entry{logout}{53}{\code {logout}}
\entry{mapfile}{53}{\code {mapfile}}
\entry{printf}{54}{\code {printf}}
\entry{read}{55}{\code {read}}
\entry{readarray}{56}{\code {readarray}}
\entry{source}{57}{\code {source}}
\entry{type}{57}{\code {type}}
\entry{source}{56}{\code {source}}
\entry{type}{56}{\code {type}}
\entry{typeset}{57}{\code {typeset}}
\entry{ulimit}{57}{\code {ulimit}}
\entry{unalias}{58}{\code {unalias}}
\entry{set}{59}{\code {set}}
\entry{shopt}{63}{\code {shopt}}
\entry{dirs}{91}{\code {dirs}}
\entry{set}{58}{\code {set}}
\entry{shopt}{62}{\code {shopt}}
\entry{dirs}{90}{\code {dirs}}
\entry{popd}{91}{\code {popd}}
\entry{pushd}{92}{\code {pushd}}
\entry{bg}{99}{\code {bg}}
\entry{fg}{99}{\code {fg}}
\entry{jobs}{99}{\code {jobs}}
\entry{kill}{100}{\code {kill}}
\entry{wait}{100}{\code {wait}}
\entry{disown}{100}{\code {disown}}
\entry{suspend}{100}{\code {suspend}}
\entry{compgen}{127}{\code {compgen}}
\entry{complete}{128}{\code {complete}}
\entry{compopt}{131}{\code {compopt}}
\entry{fc}{134}{\code {fc}}
\entry{history}{135}{\code {history}}
\entry{pushd}{91}{\code {pushd}}
\entry{bg}{98}{\code {bg}}
\entry{fg}{98}{\code {fg}}
\entry{jobs}{98}{\code {jobs}}
\entry{kill}{99}{\code {kill}}
\entry{wait}{99}{\code {wait}}
\entry{disown}{99}{\code {disown}}
\entry{suspend}{99}{\code {suspend}}
\entry{compgen}{126}{\code {compgen}}
\entry{complete}{127}{\code {complete}}
\entry{compopt}{130}{\code {compopt}}
\entry{fc}{133}{\code {fc}}
\entry{history}{134}{\code {history}}
+20 -20
View File
@@ -7,7 +7,7 @@
\initial {A}
\entry {\code {alias}}{48}
\initial {B}
\entry {\code {bg}}{99}
\entry {\code {bg}}{98}
\entry {\code {bind}}{48}
\entry {\code {break}}{41}
\entry {\code {builtin}}{49}
@@ -15,14 +15,14 @@
\entry {\code {caller}}{50}
\entry {\code {cd}}{42}
\entry {\code {command}}{50}
\entry {\code {compgen}}{127}
\entry {\code {complete}}{128}
\entry {\code {compopt}}{131}
\entry {\code {compgen}}{126}
\entry {\code {complete}}{127}
\entry {\code {compopt}}{130}
\entry {\code {continue}}{42}
\initial {D}
\entry {\code {declare}}{50}
\entry {\code {dirs}}{91}
\entry {\code {disown}}{100}
\entry {\code {dirs}}{90}
\entry {\code {disown}}{99}
\initial {E}
\entry {\code {echo}}{52}
\entry {\code {enable}}{52}
@@ -31,28 +31,28 @@
\entry {\code {exit}}{43}
\entry {\code {export}}{43}
\initial {F}
\entry {\code {fc}}{134}
\entry {\code {fg}}{99}
\entry {\code {fc}}{133}
\entry {\code {fg}}{98}
\initial {G}
\entry {\code {getopts}}{43}
\initial {H}
\entry {\code {hash}}{44}
\entry {\code {help}}{53}
\entry {\code {history}}{135}
\entry {\code {history}}{134}
\initial {J}
\entry {\code {jobs}}{99}
\entry {\code {jobs}}{98}
\initial {K}
\entry {\code {kill}}{100}
\entry {\code {kill}}{99}
\initial {L}
\entry {\code {let}}{53}
\entry {\code {local}}{53}
\entry {\code {logout}}{54}
\entry {\code {logout}}{53}
\initial {M}
\entry {\code {mapfile}}{54}
\entry {\code {mapfile}}{53}
\initial {P}
\entry {\code {popd}}{91}
\entry {\code {printf}}{54}
\entry {\code {pushd}}{92}
\entry {\code {pushd}}{91}
\entry {\code {pwd}}{44}
\initial {R}
\entry {\code {read}}{55}
@@ -60,16 +60,16 @@
\entry {\code {readonly}}{44}
\entry {\code {return}}{45}
\initial {S}
\entry {\code {set}}{59}
\entry {\code {set}}{58}
\entry {\code {shift}}{45}
\entry {\code {shopt}}{63}
\entry {\code {source}}{57}
\entry {\code {suspend}}{100}
\entry {\code {shopt}}{62}
\entry {\code {source}}{56}
\entry {\code {suspend}}{99}
\initial {T}
\entry {\code {test}}{45}
\entry {\code {times}}{46}
\entry {\code {trap}}{47}
\entry {\code {type}}{57}
\entry {\code {type}}{56}
\entry {\code {typeset}}{57}
\initial {U}
\entry {\code {ulimit}}{57}
@@ -77,4 +77,4 @@
\entry {\code {unalias}}{58}
\entry {\code {unset}}{48}
\initial {W}
\entry {\code {wait}}{100}
\entry {\code {wait}}{99}
+30 -30
View File
@@ -72,8 +72,8 @@
\entry{signal handling}{38}{signal handling}
\entry{shell script}{39}{shell script}
\entry{special builtin}{68}{special builtin}
\entry{login shell}{82}{login shell}
\entry{interactive shell}{82}{interactive shell}
\entry{login shell}{81}{login shell}
\entry{interactive shell}{81}{interactive shell}
\entry{startup files}{82}{startup files}
\entry{interactive shell}{83}{interactive shell}
\entry{shell, interactive}{83}{shell, interactive}
@@ -85,34 +85,34 @@
\entry{arithmetic evaluation}{87}{arithmetic evaluation}
\entry{alias expansion}{88}{alias expansion}
\entry{arrays}{89}{arrays}
\entry{directory stack}{91}{directory stack}
\entry{directory stack}{90}{directory stack}
\entry{prompting}{92}{prompting}
\entry{restricted shell}{93}{restricted shell}
\entry{POSIX Mode}{94}{POSIX Mode}
\entry{job control}{98}{job control}
\entry{foreground}{98}{foreground}
\entry{background}{98}{background}
\entry{suspending jobs}{98}{suspending jobs}
\entry{Readline, how to use}{101}{Readline, how to use}
\entry{interaction, readline}{102}{interaction, readline}
\entry{notation, readline}{103}{notation, readline}
\entry{command editing}{103}{command editing}
\entry{editing command lines}{103}{editing command lines}
\entry{killing text}{104}{killing text}
\entry{yanking text}{104}{yanking text}
\entry{kill ring}{104}{kill ring}
\entry{initialization file, readline}{105}{initialization file, readline}
\entry{variables, readline}{106}{variables, readline}
\entry{programmable completion}{125}{programmable completion}
\entry{completion builtins}{127}{completion builtins}
\entry{History, how to use}{133}{History, how to use}
\entry{command history}{134}{command history}
\entry{history list}{134}{history list}
\entry{history builtins}{134}{history builtins}
\entry{history expansion}{136}{history expansion}
\entry{event designators}{137}{event designators}
\entry{history events}{137}{history events}
\entry{installation}{139}{installation}
\entry{configuration}{139}{configuration}
\entry{Bash installation}{139}{Bash installation}
\entry{Bash configuration}{139}{Bash configuration}
\entry{job control}{97}{job control}
\entry{foreground}{97}{foreground}
\entry{background}{97}{background}
\entry{suspending jobs}{97}{suspending jobs}
\entry{Readline, how to use}{100}{Readline, how to use}
\entry{interaction, readline}{101}{interaction, readline}
\entry{notation, readline}{102}{notation, readline}
\entry{command editing}{102}{command editing}
\entry{editing command lines}{102}{editing command lines}
\entry{killing text}{103}{killing text}
\entry{yanking text}{103}{yanking text}
\entry{kill ring}{103}{kill ring}
\entry{initialization file, readline}{104}{initialization file, readline}
\entry{variables, readline}{105}{variables, readline}
\entry{programmable completion}{124}{programmable completion}
\entry{completion builtins}{126}{completion builtins}
\entry{History, how to use}{132}{History, how to use}
\entry{command history}{133}{command history}
\entry{history list}{133}{history list}
\entry{history builtins}{133}{history builtins}
\entry{history expansion}{135}{history expansion}
\entry{event designators}{135}{event designators}
\entry{history events}{135}{history events}
\entry{installation}{138}{installation}
\entry{configuration}{138}{configuration}
\entry{Bash installation}{138}{Bash installation}
\entry{Bash configuration}{138}{Bash configuration}
+30 -30
View File
@@ -5,17 +5,17 @@
\entry {arithmetic, shell}{87}
\entry {arrays}{89}
\initial {B}
\entry {background}{98}
\entry {Bash configuration}{139}
\entry {Bash installation}{139}
\entry {background}{97}
\entry {Bash configuration}{138}
\entry {Bash installation}{138}
\entry {Bourne shell}{5}
\entry {brace expansion}{21}
\entry {builtin}{3}
\initial {C}
\entry {command editing}{103}
\entry {command editing}{102}
\entry {command execution}{36}
\entry {command expansion}{35}
\entry {command history}{134}
\entry {command history}{133}
\entry {command search}{36}
\entry {command substitution}{28}
\entry {command timing}{8}
@@ -28,17 +28,17 @@
\entry {commands, shell}{8}
\entry {commands, simple}{8}
\entry {comments, shell}{7}
\entry {completion builtins}{127}
\entry {configuration}{139}
\entry {completion builtins}{126}
\entry {configuration}{138}
\entry {control operator}{3}
\entry {coprocess}{15}
\initial {D}
\entry {directory stack}{91}
\entry {directory stack}{90}
\initial {E}
\entry {editing command lines}{103}
\entry {editing command lines}{102}
\entry {environment}{37}
\entry {evaluation, arithmetic}{87}
\entry {event designators}{137}
\entry {event designators}{135}
\entry {execution environment}{36}
\entry {exit status}{3, 38}
\entry {expansion}{21}
@@ -54,37 +54,37 @@
\entry {field}{3}
\entry {filename}{3}
\entry {filename expansion}{29}
\entry {foreground}{98}
\entry {foreground}{97}
\entry {functions, shell}{17}
\initial {H}
\entry {history builtins}{134}
\entry {history events}{137}
\entry {history expansion}{136}
\entry {history list}{134}
\entry {History, how to use}{133}
\entry {history builtins}{133}
\entry {history events}{135}
\entry {history expansion}{135}
\entry {history list}{133}
\entry {History, how to use}{132}
\initial {I}
\entry {identifier}{3}
\entry {initialization file, readline}{105}
\entry {installation}{139}
\entry {interaction, readline}{102}
\entry {interactive shell}{82, 83}
\entry {initialization file, readline}{104}
\entry {installation}{138}
\entry {interaction, readline}{101}
\entry {interactive shell}{81, 83}
\entry {internationalization}{7}
\initial {J}
\entry {job}{3}
\entry {job control}{3, 98}
\entry {job control}{3, 97}
\initial {K}
\entry {kill ring}{104}
\entry {killing text}{104}
\entry {kill ring}{103}
\entry {killing text}{103}
\initial {L}
\entry {localization}{7}
\entry {login shell}{82}
\entry {login shell}{81}
\initial {M}
\entry {matching, pattern}{30}
\entry {metacharacter}{3}
\initial {N}
\entry {name}{3}
\entry {native languages}{7}
\entry {notation, readline}{103}
\entry {notation, readline}{102}
\initial {O}
\entry {operator, shell}{3}
\initial {P}
@@ -100,13 +100,13 @@
\entry {process group}{3}
\entry {process group ID}{3}
\entry {process substitution}{29}
\entry {programmable completion}{125}
\entry {programmable completion}{124}
\entry {prompting}{92}
\initial {Q}
\entry {quoting}{6}
\entry {quoting, ANSI}{6}
\initial {R}
\entry {Readline, how to use}{101}
\entry {Readline, how to use}{100}
\entry {redirection}{31}
\entry {reserved word}{3}
\entry {restricted shell}{93}
@@ -121,16 +121,16 @@
\entry {signal handling}{38}
\entry {special builtin}{4, 68}
\entry {startup files}{82}
\entry {suspending jobs}{98}
\entry {suspending jobs}{97}
\initial {T}
\entry {tilde expansion}{22}
\entry {token}{4}
\entry {translation, native languages}{7}
\initial {V}
\entry {variable, shell}{18}
\entry {variables, readline}{106}
\entry {variables, readline}{105}
\initial {W}
\entry {word}{4}
\entry {word splitting}{29}
\initial {Y}
\entry {yanking text}{104}
\entry {yanking text}{103}
BIN
View File
Binary file not shown.
+106 -106
View File
@@ -1,106 +1,106 @@
\entry{beginning-of-line (C-a)}{116}{\code {beginning-of-line (C-a)}}
\entry{end-of-line (C-e)}{116}{\code {end-of-line (C-e)}}
\entry{forward-char (C-f)}{116}{\code {forward-char (C-f)}}
\entry{backward-char (C-b)}{116}{\code {backward-char (C-b)}}
\entry{forward-word (M-f)}{116}{\code {forward-word (M-f)}}
\entry{backward-word (M-b)}{116}{\code {backward-word (M-b)}}
\entry{shell-forward-word ()}{116}{\code {shell-forward-word ()}}
\entry{shell-backward-word ()}{116}{\code {shell-backward-word ()}}
\entry{clear-screen (C-l)}{116}{\code {clear-screen (C-l)}}
\entry{redraw-current-line ()}{116}{\code {redraw-current-line ()}}
\entry{accept-line (Newline or Return)}{117}{\code {accept-line (Newline or Return)}}
\entry{previous-history (C-p)}{117}{\code {previous-history (C-p)}}
\entry{next-history (C-n)}{117}{\code {next-history (C-n)}}
\entry{beginning-of-history (M-<)}{117}{\code {beginning-of-history (M-<)}}
\entry{end-of-history (M->)}{117}{\code {end-of-history (M->)}}
\entry{reverse-search-history (C-r)}{117}{\code {reverse-search-history (C-r)}}
\entry{forward-search-history (C-s)}{117}{\code {forward-search-history (C-s)}}
\entry{non-incremental-reverse-search-history (M-p)}{117}{\code {non-incremental-reverse-search-history (M-p)}}
\entry{non-incremental-forward-search-history (M-n)}{117}{\code {non-incremental-forward-search-history (M-n)}}
\entry{history-search-forward ()}{117}{\code {history-search-forward ()}}
\entry{history-search-backward ()}{117}{\code {history-search-backward ()}}
\entry{history-substr-search-forward ()}{117}{\code {history-substr-search-forward ()}}
\entry{history-substr-search-backward ()}{118}{\code {history-substr-search-backward ()}}
\entry{yank-nth-arg (M-C-y)}{118}{\code {yank-nth-arg (M-C-y)}}
\entry{yank-last-arg (M-. or M-_)}{118}{\code {yank-last-arg (M-. or M-_)}}
\entry{delete-char (C-d)}{118}{\code {delete-char (C-d)}}
\entry{backward-delete-char (Rubout)}{118}{\code {backward-delete-char (Rubout)}}
\entry{forward-backward-delete-char ()}{118}{\code {forward-backward-delete-char ()}}
\entry{quoted-insert (C-q or C-v)}{118}{\code {quoted-insert (C-q or C-v)}}
\entry{self-insert (a, b, A, 1, !, ...{})}{118}{\code {self-insert (a, b, A, 1, !, \dots {})}}
\entry{transpose-chars (C-t)}{119}{\code {transpose-chars (C-t)}}
\entry{transpose-words (M-t)}{119}{\code {transpose-words (M-t)}}
\entry{upcase-word (M-u)}{119}{\code {upcase-word (M-u)}}
\entry{downcase-word (M-l)}{119}{\code {downcase-word (M-l)}}
\entry{capitalize-word (M-c)}{119}{\code {capitalize-word (M-c)}}
\entry{overwrite-mode ()}{119}{\code {overwrite-mode ()}}
\entry{kill-line (C-k)}{119}{\code {kill-line (C-k)}}
\entry{backward-kill-line (C-x Rubout)}{119}{\code {backward-kill-line (C-x Rubout)}}
\entry{unix-line-discard (C-u)}{119}{\code {unix-line-discard (C-u)}}
\entry{kill-whole-line ()}{119}{\code {kill-whole-line ()}}
\entry{kill-word (M-d)}{119}{\code {kill-word (M-d)}}
\entry{backward-kill-word (M-DEL)}{120}{\code {backward-kill-word (M-\key {DEL})}}
\entry{shell-kill-word ()}{120}{\code {shell-kill-word ()}}
\entry{shell-backward-kill-word ()}{120}{\code {shell-backward-kill-word ()}}
\entry{unix-word-rubout (C-w)}{120}{\code {unix-word-rubout (C-w)}}
\entry{unix-filename-rubout ()}{120}{\code {unix-filename-rubout ()}}
\entry{delete-horizontal-space ()}{120}{\code {delete-horizontal-space ()}}
\entry{kill-region ()}{120}{\code {kill-region ()}}
\entry{copy-region-as-kill ()}{120}{\code {copy-region-as-kill ()}}
\entry{copy-backward-word ()}{120}{\code {copy-backward-word ()}}
\entry{copy-forward-word ()}{120}{\code {copy-forward-word ()}}
\entry{yank (C-y)}{120}{\code {yank (C-y)}}
\entry{yank-pop (M-y)}{120}{\code {yank-pop (M-y)}}
\entry{digit-argument (M-0, M-1, ...{} M--)}{120}{\code {digit-argument (\kbd {M-0}, \kbd {M-1}, \dots {} \kbd {M--})}}
\entry{universal-argument ()}{120}{\code {universal-argument ()}}
\entry{complete (TAB)}{121}{\code {complete (\key {TAB})}}
\entry{possible-completions (M-?)}{121}{\code {possible-completions (M-?)}}
\entry{insert-completions (M-*)}{121}{\code {insert-completions (M-*)}}
\entry{menu-complete ()}{121}{\code {menu-complete ()}}
\entry{menu-complete-backward ()}{121}{\code {menu-complete-backward ()}}
\entry{delete-char-or-list ()}{121}{\code {delete-char-or-list ()}}
\entry{complete-filename (M-/)}{121}{\code {complete-filename (M-/)}}
\entry{possible-filename-completions (C-x /)}{121}{\code {possible-filename-completions (C-x /)}}
\entry{complete-username (M-~)}{122}{\code {complete-username (M-~)}}
\entry{possible-username-completions (C-x ~)}{122}{\code {possible-username-completions (C-x ~)}}
\entry{complete-variable (M-$)}{122}{\code {complete-variable (M-$)}}
\entry{possible-variable-completions (C-x $)}{122}{\code {possible-variable-completions (C-x $)}}
\entry{complete-hostname (M-@)}{122}{\code {complete-hostname (M-@)}}
\entry{possible-hostname-completions (C-x @)}{122}{\code {possible-hostname-completions (C-x @)}}
\entry{complete-command (M-!)}{122}{\code {complete-command (M-!)}}
\entry{possible-command-completions (C-x !)}{122}{\code {possible-command-completions (C-x !)}}
\entry{dynamic-complete-history (M-TAB)}{122}{\code {dynamic-complete-history (M-\key {TAB})}}
\entry{dabbrev-expand ()}{122}{\code {dabbrev-expand ()}}
\entry{complete-into-braces (M-{\tt \char 123})}{122}{\code {complete-into-braces (M-{\tt \char 123})}}
\entry{start-kbd-macro (C-x ()}{122}{\code {start-kbd-macro (C-x ()}}
\entry{end-kbd-macro (C-x ))}{122}{\code {end-kbd-macro (C-x ))}}
\entry{call-last-kbd-macro (C-x e)}{122}{\code {call-last-kbd-macro (C-x e)}}
\entry{print-last-kbd-macro ()}{123}{\code {print-last-kbd-macro ()}}
\entry{re-read-init-file (C-x C-r)}{123}{\code {re-read-init-file (C-x C-r)}}
\entry{abort (C-g)}{123}{\code {abort (C-g)}}
\entry{do-uppercase-version (M-a, M-b, M-x, ...{})}{123}{\code {do-uppercase-version (M-a, M-b, M-\var {x}, \dots {})}}
\entry{prefix-meta (ESC)}{123}{\code {prefix-meta (\key {ESC})}}
\entry{undo (C-_ or C-x C-u)}{123}{\code {undo (C-_ or C-x C-u)}}
\entry{revert-line (M-r)}{123}{\code {revert-line (M-r)}}
\entry{tilde-expand (M-&)}{123}{\code {tilde-expand (M-&)}}
\entry{set-mark (C-@)}{123}{\code {set-mark (C-@)}}
\entry{exchange-point-and-mark (C-x C-x)}{123}{\code {exchange-point-and-mark (C-x C-x)}}
\entry{character-search (C-])}{123}{\code {character-search (C-])}}
\entry{character-search-backward (M-C-])}{123}{\code {character-search-backward (M-C-])}}
\entry{skip-csi-sequence ()}{123}{\code {skip-csi-sequence ()}}
\entry{insert-comment (M-#)}{124}{\code {insert-comment (M-#)}}
\entry{dump-functions ()}{124}{\code {dump-functions ()}}
\entry{dump-variables ()}{124}{\code {dump-variables ()}}
\entry{dump-macros ()}{124}{\code {dump-macros ()}}
\entry{glob-complete-word (M-g)}{124}{\code {glob-complete-word (M-g)}}
\entry{glob-expand-word (C-x *)}{124}{\code {glob-expand-word (C-x *)}}
\entry{glob-list-expansions (C-x g)}{124}{\code {glob-list-expansions (C-x g)}}
\entry{display-shell-version (C-x C-v)}{124}{\code {display-shell-version (C-x C-v)}}
\entry{shell-expand-line (M-C-e)}{124}{\code {shell-expand-line (M-C-e)}}
\entry{history-expand-line (M-^)}{124}{\code {history-expand-line (M-^)}}
\entry{magic-space ()}{125}{\code {magic-space ()}}
\entry{alias-expand-line ()}{125}{\code {alias-expand-line ()}}
\entry{history-and-alias-expand-line ()}{125}{\code {history-and-alias-expand-line ()}}
\entry{insert-last-argument (M-. or M-_)}{125}{\code {insert-last-argument (M-. or M-_)}}
\entry{operate-and-get-next (C-o)}{125}{\code {operate-and-get-next (C-o)}}
\entry{edit-and-execute-command (C-xC-e)}{125}{\code {edit-and-execute-command (C-xC-e)}}
\entry{beginning-of-line (C-a)}{115}{\code {beginning-of-line (C-a)}}
\entry{end-of-line (C-e)}{115}{\code {end-of-line (C-e)}}
\entry{forward-char (C-f)}{115}{\code {forward-char (C-f)}}
\entry{backward-char (C-b)}{115}{\code {backward-char (C-b)}}
\entry{forward-word (M-f)}{115}{\code {forward-word (M-f)}}
\entry{backward-word (M-b)}{115}{\code {backward-word (M-b)}}
\entry{shell-forward-word ()}{115}{\code {shell-forward-word ()}}
\entry{shell-backward-word ()}{115}{\code {shell-backward-word ()}}
\entry{clear-screen (C-l)}{115}{\code {clear-screen (C-l)}}
\entry{redraw-current-line ()}{115}{\code {redraw-current-line ()}}
\entry{accept-line (Newline or Return)}{116}{\code {accept-line (Newline or Return)}}
\entry{previous-history (C-p)}{116}{\code {previous-history (C-p)}}
\entry{next-history (C-n)}{116}{\code {next-history (C-n)}}
\entry{beginning-of-history (M-<)}{116}{\code {beginning-of-history (M-<)}}
\entry{end-of-history (M->)}{116}{\code {end-of-history (M->)}}
\entry{reverse-search-history (C-r)}{116}{\code {reverse-search-history (C-r)}}
\entry{forward-search-history (C-s)}{116}{\code {forward-search-history (C-s)}}
\entry{non-incremental-reverse-search-history (M-p)}{116}{\code {non-incremental-reverse-search-history (M-p)}}
\entry{non-incremental-forward-search-history (M-n)}{116}{\code {non-incremental-forward-search-history (M-n)}}
\entry{history-search-forward ()}{116}{\code {history-search-forward ()}}
\entry{history-search-backward ()}{116}{\code {history-search-backward ()}}
\entry{history-substr-search-forward ()}{116}{\code {history-substr-search-forward ()}}
\entry{history-substr-search-backward ()}{117}{\code {history-substr-search-backward ()}}
\entry{yank-nth-arg (M-C-y)}{117}{\code {yank-nth-arg (M-C-y)}}
\entry{yank-last-arg (M-. or M-_)}{117}{\code {yank-last-arg (M-. or M-_)}}
\entry{delete-char (C-d)}{117}{\code {delete-char (C-d)}}
\entry{backward-delete-char (Rubout)}{117}{\code {backward-delete-char (Rubout)}}
\entry{forward-backward-delete-char ()}{117}{\code {forward-backward-delete-char ()}}
\entry{quoted-insert (C-q or C-v)}{117}{\code {quoted-insert (C-q or C-v)}}
\entry{self-insert (a, b, A, 1, !, ...{})}{117}{\code {self-insert (a, b, A, 1, !, \dots {})}}
\entry{transpose-chars (C-t)}{118}{\code {transpose-chars (C-t)}}
\entry{transpose-words (M-t)}{118}{\code {transpose-words (M-t)}}
\entry{upcase-word (M-u)}{118}{\code {upcase-word (M-u)}}
\entry{downcase-word (M-l)}{118}{\code {downcase-word (M-l)}}
\entry{capitalize-word (M-c)}{118}{\code {capitalize-word (M-c)}}
\entry{overwrite-mode ()}{118}{\code {overwrite-mode ()}}
\entry{kill-line (C-k)}{118}{\code {kill-line (C-k)}}
\entry{backward-kill-line (C-x Rubout)}{118}{\code {backward-kill-line (C-x Rubout)}}
\entry{unix-line-discard (C-u)}{118}{\code {unix-line-discard (C-u)}}
\entry{kill-whole-line ()}{118}{\code {kill-whole-line ()}}
\entry{kill-word (M-d)}{118}{\code {kill-word (M-d)}}
\entry{backward-kill-word (M-DEL)}{119}{\code {backward-kill-word (M-\key {DEL})}}
\entry{shell-kill-word ()}{119}{\code {shell-kill-word ()}}
\entry{shell-backward-kill-word ()}{119}{\code {shell-backward-kill-word ()}}
\entry{unix-word-rubout (C-w)}{119}{\code {unix-word-rubout (C-w)}}
\entry{unix-filename-rubout ()}{119}{\code {unix-filename-rubout ()}}
\entry{delete-horizontal-space ()}{119}{\code {delete-horizontal-space ()}}
\entry{kill-region ()}{119}{\code {kill-region ()}}
\entry{copy-region-as-kill ()}{119}{\code {copy-region-as-kill ()}}
\entry{copy-backward-word ()}{119}{\code {copy-backward-word ()}}
\entry{copy-forward-word ()}{119}{\code {copy-forward-word ()}}
\entry{yank (C-y)}{119}{\code {yank (C-y)}}
\entry{yank-pop (M-y)}{119}{\code {yank-pop (M-y)}}
\entry{digit-argument (M-0, M-1, ...{} M--)}{119}{\code {digit-argument (\kbd {M-0}, \kbd {M-1}, \dots {} \kbd {M--})}}
\entry{universal-argument ()}{119}{\code {universal-argument ()}}
\entry{complete (TAB)}{120}{\code {complete (\key {TAB})}}
\entry{possible-completions (M-?)}{120}{\code {possible-completions (M-?)}}
\entry{insert-completions (M-*)}{120}{\code {insert-completions (M-*)}}
\entry{menu-complete ()}{120}{\code {menu-complete ()}}
\entry{menu-complete-backward ()}{120}{\code {menu-complete-backward ()}}
\entry{delete-char-or-list ()}{120}{\code {delete-char-or-list ()}}
\entry{complete-filename (M-/)}{120}{\code {complete-filename (M-/)}}
\entry{possible-filename-completions (C-x /)}{120}{\code {possible-filename-completions (C-x /)}}
\entry{complete-username (M-~)}{121}{\code {complete-username (M-~)}}
\entry{possible-username-completions (C-x ~)}{121}{\code {possible-username-completions (C-x ~)}}
\entry{complete-variable (M-$)}{121}{\code {complete-variable (M-$)}}
\entry{possible-variable-completions (C-x $)}{121}{\code {possible-variable-completions (C-x $)}}
\entry{complete-hostname (M-@)}{121}{\code {complete-hostname (M-@)}}
\entry{possible-hostname-completions (C-x @)}{121}{\code {possible-hostname-completions (C-x @)}}
\entry{complete-command (M-!)}{121}{\code {complete-command (M-!)}}
\entry{possible-command-completions (C-x !)}{121}{\code {possible-command-completions (C-x !)}}
\entry{dynamic-complete-history (M-TAB)}{121}{\code {dynamic-complete-history (M-\key {TAB})}}
\entry{dabbrev-expand ()}{121}{\code {dabbrev-expand ()}}
\entry{complete-into-braces (M-|a)}{121}{\code {complete-into-braces (M-{\tt \char 123})}}
\entry{start-kbd-macro (C-x ()}{121}{\code {start-kbd-macro (C-x ()}}
\entry{end-kbd-macro (C-x ))}{121}{\code {end-kbd-macro (C-x ))}}
\entry{call-last-kbd-macro (C-x e)}{121}{\code {call-last-kbd-macro (C-x e)}}
\entry{print-last-kbd-macro ()}{122}{\code {print-last-kbd-macro ()}}
\entry{re-read-init-file (C-x C-r)}{122}{\code {re-read-init-file (C-x C-r)}}
\entry{abort (C-g)}{122}{\code {abort (C-g)}}
\entry{do-uppercase-version (M-a, M-b, M-x, ...{})}{122}{\code {do-uppercase-version (M-a, M-b, M-\var {x}, \dots {})}}
\entry{prefix-meta (ESC)}{122}{\code {prefix-meta (\key {ESC})}}
\entry{undo (C-_ or C-x C-u)}{122}{\code {undo (C-_ or C-x C-u)}}
\entry{revert-line (M-r)}{122}{\code {revert-line (M-r)}}
\entry{tilde-expand (M-&)}{122}{\code {tilde-expand (M-&)}}
\entry{set-mark (C-@)}{122}{\code {set-mark (C-@)}}
\entry{exchange-point-and-mark (C-x C-x)}{122}{\code {exchange-point-and-mark (C-x C-x)}}
\entry{character-search (C-])}{122}{\code {character-search (C-])}}
\entry{character-search-backward (M-C-])}{122}{\code {character-search-backward (M-C-])}}
\entry{skip-csi-sequence ()}{122}{\code {skip-csi-sequence ()}}
\entry{insert-comment (M-#)}{123}{\code {insert-comment (M-#)}}
\entry{dump-functions ()}{123}{\code {dump-functions ()}}
\entry{dump-variables ()}{123}{\code {dump-variables ()}}
\entry{dump-macros ()}{123}{\code {dump-macros ()}}
\entry{glob-complete-word (M-g)}{123}{\code {glob-complete-word (M-g)}}
\entry{glob-expand-word (C-x *)}{123}{\code {glob-expand-word (C-x *)}}
\entry{glob-list-expansions (C-x g)}{123}{\code {glob-list-expansions (C-x g)}}
\entry{display-shell-version (C-x C-v)}{123}{\code {display-shell-version (C-x C-v)}}
\entry{shell-expand-line (M-C-e)}{123}{\code {shell-expand-line (M-C-e)}}
\entry{history-expand-line (M-^)}{123}{\code {history-expand-line (M-^)}}
\entry{magic-space ()}{124}{\code {magic-space ()}}
\entry{alias-expand-line ()}{124}{\code {alias-expand-line ()}}
\entry{history-and-alias-expand-line ()}{124}{\code {history-and-alias-expand-line ()}}
\entry{insert-last-argument (M-. or M-_)}{124}{\code {insert-last-argument (M-. or M-_)}}
\entry{operate-and-get-next (C-o)}{124}{\code {operate-and-get-next (C-o)}}
\entry{edit-and-execute-command (C-xC-e)}{124}{\code {edit-and-execute-command (C-xC-e)}}
+106 -106
View File
@@ -1,126 +1,126 @@
\initial {A}
\entry {\code {abort (C-g)}}{123}
\entry {\code {accept-line (Newline or Return)}}{117}
\entry {\code {alias-expand-line ()}}{125}
\entry {\code {abort (C-g)}}{122}
\entry {\code {accept-line (Newline or Return)}}{116}
\entry {\code {alias-expand-line ()}}{124}
\initial {B}
\entry {\code {backward-char (C-b)}}{116}
\entry {\code {backward-delete-char (Rubout)}}{118}
\entry {\code {backward-kill-line (C-x Rubout)}}{119}
\entry {\code {backward-kill-word (M-\key {DEL})}}{120}
\entry {\code {backward-word (M-b)}}{116}
\entry {\code {beginning-of-history (M-<)}}{117}
\entry {\code {beginning-of-line (C-a)}}{116}
\entry {\code {backward-char (C-b)}}{115}
\entry {\code {backward-delete-char (Rubout)}}{117}
\entry {\code {backward-kill-line (C-x Rubout)}}{118}
\entry {\code {backward-kill-word (M-\key {DEL})}}{119}
\entry {\code {backward-word (M-b)}}{115}
\entry {\code {beginning-of-history (M-<)}}{116}
\entry {\code {beginning-of-line (C-a)}}{115}
\initial {C}
\entry {\code {call-last-kbd-macro (C-x e)}}{122}
\entry {\code {capitalize-word (M-c)}}{119}
\entry {\code {character-search (C-])}}{123}
\entry {\code {character-search-backward (M-C-])}}{123}
\entry {\code {clear-screen (C-l)}}{116}
\entry {\code {complete (\key {TAB})}}{121}
\entry {\code {complete-command (M-!)}}{122}
\entry {\code {complete-filename (M-/)}}{121}
\entry {\code {complete-hostname (M-@)}}{122}
\entry {\code {complete-into-braces (M-{\tt \char 123})}}{122}
\entry {\code {complete-username (M-~)}}{122}
\entry {\code {complete-variable (M-$)}}{122}
\entry {\code {copy-backward-word ()}}{120}
\entry {\code {copy-forward-word ()}}{120}
\entry {\code {copy-region-as-kill ()}}{120}
\entry {\code {call-last-kbd-macro (C-x e)}}{121}
\entry {\code {capitalize-word (M-c)}}{118}
\entry {\code {character-search (C-])}}{122}
\entry {\code {character-search-backward (M-C-])}}{122}
\entry {\code {clear-screen (C-l)}}{115}
\entry {\code {complete (\key {TAB})}}{120}
\entry {\code {complete-command (M-!)}}{121}
\entry {\code {complete-filename (M-/)}}{120}
\entry {\code {complete-hostname (M-@)}}{121}
\entry {\code {complete-into-braces (M-{\tt \char 123})}}{121}
\entry {\code {complete-username (M-~)}}{121}
\entry {\code {complete-variable (M-$)}}{121}
\entry {\code {copy-backward-word ()}}{119}
\entry {\code {copy-forward-word ()}}{119}
\entry {\code {copy-region-as-kill ()}}{119}
\initial {D}
\entry {\code {dabbrev-expand ()}}{122}
\entry {\code {delete-char (C-d)}}{118}
\entry {\code {delete-char-or-list ()}}{121}
\entry {\code {delete-horizontal-space ()}}{120}
\entry {\code {digit-argument (\kbd {M-0}, \kbd {M-1}, \dots {} \kbd {M--})}}{120}
\entry {\code {display-shell-version (C-x C-v)}}{124}
\entry {\code {do-uppercase-version (M-a, M-b, M-\var {x}, \dots {})}}{123}
\entry {\code {downcase-word (M-l)}}{119}
\entry {\code {dump-functions ()}}{124}
\entry {\code {dump-macros ()}}{124}
\entry {\code {dump-variables ()}}{124}
\entry {\code {dynamic-complete-history (M-\key {TAB})}}{122}
\entry {\code {dabbrev-expand ()}}{121}
\entry {\code {delete-char (C-d)}}{117}
\entry {\code {delete-char-or-list ()}}{120}
\entry {\code {delete-horizontal-space ()}}{119}
\entry {\code {digit-argument (\kbd {M-0}, \kbd {M-1}, \dots {} \kbd {M--})}}{119}
\entry {\code {display-shell-version (C-x C-v)}}{123}
\entry {\code {do-uppercase-version (M-a, M-b, M-\var {x}, \dots {})}}{122}
\entry {\code {downcase-word (M-l)}}{118}
\entry {\code {dump-functions ()}}{123}
\entry {\code {dump-macros ()}}{123}
\entry {\code {dump-variables ()}}{123}
\entry {\code {dynamic-complete-history (M-\key {TAB})}}{121}
\initial {E}
\entry {\code {edit-and-execute-command (C-xC-e)}}{125}
\entry {\code {end-kbd-macro (C-x ))}}{122}
\entry {\code {end-of-history (M->)}}{117}
\entry {\code {end-of-line (C-e)}}{116}
\entry {\code {exchange-point-and-mark (C-x C-x)}}{123}
\entry {\code {edit-and-execute-command (C-xC-e)}}{124}
\entry {\code {end-kbd-macro (C-x ))}}{121}
\entry {\code {end-of-history (M->)}}{116}
\entry {\code {end-of-line (C-e)}}{115}
\entry {\code {exchange-point-and-mark (C-x C-x)}}{122}
\initial {F}
\entry {\code {forward-backward-delete-char ()}}{118}
\entry {\code {forward-char (C-f)}}{116}
\entry {\code {forward-search-history (C-s)}}{117}
\entry {\code {forward-word (M-f)}}{116}
\entry {\code {forward-backward-delete-char ()}}{117}
\entry {\code {forward-char (C-f)}}{115}
\entry {\code {forward-search-history (C-s)}}{116}
\entry {\code {forward-word (M-f)}}{115}
\initial {G}
\entry {\code {glob-complete-word (M-g)}}{124}
\entry {\code {glob-expand-word (C-x *)}}{124}
\entry {\code {glob-list-expansions (C-x g)}}{124}
\entry {\code {glob-complete-word (M-g)}}{123}
\entry {\code {glob-expand-word (C-x *)}}{123}
\entry {\code {glob-list-expansions (C-x g)}}{123}
\initial {H}
\entry {\code {history-and-alias-expand-line ()}}{125}
\entry {\code {history-expand-line (M-^)}}{124}
\entry {\code {history-search-backward ()}}{117}
\entry {\code {history-search-forward ()}}{117}
\entry {\code {history-substr-search-backward ()}}{118}
\entry {\code {history-substr-search-forward ()}}{117}
\entry {\code {history-and-alias-expand-line ()}}{124}
\entry {\code {history-expand-line (M-^)}}{123}
\entry {\code {history-search-backward ()}}{116}
\entry {\code {history-search-forward ()}}{116}
\entry {\code {history-substr-search-backward ()}}{117}
\entry {\code {history-substr-search-forward ()}}{116}
\initial {I}
\entry {\code {insert-comment (M-#)}}{124}
\entry {\code {insert-completions (M-*)}}{121}
\entry {\code {insert-last-argument (M-. or M-_)}}{125}
\entry {\code {insert-comment (M-#)}}{123}
\entry {\code {insert-completions (M-*)}}{120}
\entry {\code {insert-last-argument (M-. or M-_)}}{124}
\initial {K}
\entry {\code {kill-line (C-k)}}{119}
\entry {\code {kill-region ()}}{120}
\entry {\code {kill-whole-line ()}}{119}
\entry {\code {kill-word (M-d)}}{119}
\entry {\code {kill-line (C-k)}}{118}
\entry {\code {kill-region ()}}{119}
\entry {\code {kill-whole-line ()}}{118}
\entry {\code {kill-word (M-d)}}{118}
\initial {M}
\entry {\code {magic-space ()}}{125}
\entry {\code {menu-complete ()}}{121}
\entry {\code {menu-complete-backward ()}}{121}
\entry {\code {magic-space ()}}{124}
\entry {\code {menu-complete ()}}{120}
\entry {\code {menu-complete-backward ()}}{120}
\initial {N}
\entry {\code {next-history (C-n)}}{117}
\entry {\code {non-incremental-forward-search-history (M-n)}}{117}
\entry {\code {non-incremental-reverse-search-history (M-p)}}{117}
\entry {\code {next-history (C-n)}}{116}
\entry {\code {non-incremental-forward-search-history (M-n)}}{116}
\entry {\code {non-incremental-reverse-search-history (M-p)}}{116}
\initial {O}
\entry {\code {operate-and-get-next (C-o)}}{125}
\entry {\code {overwrite-mode ()}}{119}
\entry {\code {operate-and-get-next (C-o)}}{124}
\entry {\code {overwrite-mode ()}}{118}
\initial {P}
\entry {\code {possible-command-completions (C-x !)}}{122}
\entry {\code {possible-completions (M-?)}}{121}
\entry {\code {possible-filename-completions (C-x /)}}{121}
\entry {\code {possible-hostname-completions (C-x @)}}{122}
\entry {\code {possible-username-completions (C-x ~)}}{122}
\entry {\code {possible-variable-completions (C-x $)}}{122}
\entry {\code {prefix-meta (\key {ESC})}}{123}
\entry {\code {previous-history (C-p)}}{117}
\entry {\code {print-last-kbd-macro ()}}{123}
\entry {\code {possible-command-completions (C-x !)}}{121}
\entry {\code {possible-completions (M-?)}}{120}
\entry {\code {possible-filename-completions (C-x /)}}{120}
\entry {\code {possible-hostname-completions (C-x @)}}{121}
\entry {\code {possible-username-completions (C-x ~)}}{121}
\entry {\code {possible-variable-completions (C-x $)}}{121}
\entry {\code {prefix-meta (\key {ESC})}}{122}
\entry {\code {previous-history (C-p)}}{116}
\entry {\code {print-last-kbd-macro ()}}{122}
\initial {Q}
\entry {\code {quoted-insert (C-q or C-v)}}{118}
\entry {\code {quoted-insert (C-q or C-v)}}{117}
\initial {R}
\entry {\code {re-read-init-file (C-x C-r)}}{123}
\entry {\code {redraw-current-line ()}}{116}
\entry {\code {reverse-search-history (C-r)}}{117}
\entry {\code {revert-line (M-r)}}{123}
\entry {\code {re-read-init-file (C-x C-r)}}{122}
\entry {\code {redraw-current-line ()}}{115}
\entry {\code {reverse-search-history (C-r)}}{116}
\entry {\code {revert-line (M-r)}}{122}
\initial {S}
\entry {\code {self-insert (a, b, A, 1, !, \dots {})}}{118}
\entry {\code {set-mark (C-@)}}{123}
\entry {\code {shell-backward-kill-word ()}}{120}
\entry {\code {shell-backward-word ()}}{116}
\entry {\code {shell-expand-line (M-C-e)}}{124}
\entry {\code {shell-forward-word ()}}{116}
\entry {\code {shell-kill-word ()}}{120}
\entry {\code {skip-csi-sequence ()}}{123}
\entry {\code {start-kbd-macro (C-x ()}}{122}
\entry {\code {self-insert (a, b, A, 1, !, \dots {})}}{117}
\entry {\code {set-mark (C-@)}}{122}
\entry {\code {shell-backward-kill-word ()}}{119}
\entry {\code {shell-backward-word ()}}{115}
\entry {\code {shell-expand-line (M-C-e)}}{123}
\entry {\code {shell-forward-word ()}}{115}
\entry {\code {shell-kill-word ()}}{119}
\entry {\code {skip-csi-sequence ()}}{122}
\entry {\code {start-kbd-macro (C-x ()}}{121}
\initial {T}
\entry {\code {tilde-expand (M-&)}}{123}
\entry {\code {transpose-chars (C-t)}}{119}
\entry {\code {transpose-words (M-t)}}{119}
\entry {\code {tilde-expand (M-&)}}{122}
\entry {\code {transpose-chars (C-t)}}{118}
\entry {\code {transpose-words (M-t)}}{118}
\initial {U}
\entry {\code {undo (C-_ or C-x C-u)}}{123}
\entry {\code {universal-argument ()}}{120}
\entry {\code {unix-filename-rubout ()}}{120}
\entry {\code {unix-line-discard (C-u)}}{119}
\entry {\code {unix-word-rubout (C-w)}}{120}
\entry {\code {upcase-word (M-u)}}{119}
\entry {\code {undo (C-_ or C-x C-u)}}{122}
\entry {\code {universal-argument ()}}{119}
\entry {\code {unix-filename-rubout ()}}{119}
\entry {\code {unix-line-discard (C-u)}}{118}
\entry {\code {unix-word-rubout (C-w)}}{119}
\entry {\code {upcase-word (M-u)}}{118}
\initial {Y}
\entry {\code {yank (C-y)}}{120}
\entry {\code {yank-last-arg (M-. or M-_)}}{118}
\entry {\code {yank-nth-arg (M-C-y)}}{118}
\entry {\code {yank-pop (M-y)}}{120}
\entry {\code {yank (C-y)}}{119}
\entry {\code {yank-last-arg (M-. or M-_)}}{117}
\entry {\code {yank-nth-arg (M-C-y)}}{117}
\entry {\code {yank-pop (M-y)}}{119}
+1083 -1065
View File
File diff suppressed because it is too large Load Diff
+155 -144
View File
@@ -1350,64 +1350,66 @@ The shell treats several parameters specially. These parameters may
only be referenced; assignment to them is not allowed.
`*'
Expands to the positional parameters, starting from one. When the
expansion occurs within double quotes, it expands to a single word
with the value of each parameter separated by the first character
of the `IFS' special variable. That is, `"$*"' is equivalent to
`"$1C$2C..."', where C is the first character of the value of the
`IFS' variable. If `IFS' is unset, the parameters are separated
by spaces. If `IFS' is null, the parameters are joined without
intervening separators.
($*) Expands to the positional parameters, starting from one.
When the expansion occurs within double quotes, it expands to a
single word with the value of each parameter separated by the
first character of the `IFS' special variable. That is, `"$*"' is
equivalent to `"$1C$2C..."', where C is the first character of the
value of the `IFS' variable. If `IFS' is unset, the parameters
are separated by spaces. If `IFS' is null, the parameters are
joined without intervening separators.
`@'
Expands to the positional parameters, starting from one. When the
expansion occurs within double quotes, each parameter expands to a
separate word. That is, `"$@"' is equivalent to `"$1" "$2" ...'.
If the double-quoted expansion occurs within a word, the expansion
of the first parameter is joined with the beginning part of the
original word, and the expansion of the last parameter is joined
with the last part of the original word. When there are no
positional parameters, `"$@"' and `$@' expand to nothing (i.e.,
they are removed).
($@) Expands to the positional parameters, starting from one.
When the expansion occurs within double quotes, each parameter
expands to a separate word. That is, `"$@"' is equivalent to
`"$1" "$2" ...'. If the double-quoted expansion occurs within a
word, the expansion of the first parameter is joined with the
beginning part of the original word, and the expansion of the last
parameter is joined with the last part of the original word. When
there are no positional parameters, `"$@"' and `$@' expand to
nothing (i.e., they are removed).
`#'
Expands to the number of positional parameters in decimal.
($#) Expands to the number of positional parameters in decimal.
`?'
Expands to the exit status of the most recently executed foreground
pipeline.
($?) Expands to the exit status of the most recently executed
foreground pipeline.
`-'
(A hyphen.) Expands to the current option flags as specified upon
invocation, by the `set' builtin command, or those set by the
($-, a hyphen.) Expands to the current option flags as specified
upon invocation, by the `set' builtin command, or those set by the
shell itself (such as the `-i' option).
`$'
Expands to the process ID of the shell. In a `()' subshell, it
expands to the process ID of the invoking shell, not the subshell.
($$) Expands to the process ID of the shell. In a `()' subshell,
it expands to the process ID of the invoking shell, not the
subshell.
`!'
Expands to the process ID of the job most recently placed into the
background, whether executed as an asynchronous command or using
the `bg' builtin (*note Job Control Builtins::).
($!) Expands to the process ID of the job most recently placed
into the background, whether executed as an asynchronous command
or using the `bg' builtin (*note Job Control Builtins::).
`0'
Expands to the name of the shell or shell script. This is set at
shell initialization. If Bash is invoked with a file of commands
(*note Shell Scripts::), `$0' is set to the name of that file. If
Bash is started with the `-c' option (*note Invoking Bash::), then
`$0' is set to the first argument after the string to be executed,
if one is present. Otherwise, it is set to the filename used to
invoke Bash, as given by argument zero.
($0) Expands to the name of the shell or shell script. This is
set at shell initialization. If Bash is invoked with a file of
commands (*note Shell Scripts::), `$0' is set to the name of that
file. If Bash is started with the `-c' option (*note Invoking
Bash::), then `$0' is set to the first argument after the string
to be executed, if one is present. Otherwise, it is set to the
filename used to invoke Bash, as given by argument zero.
`_'
(An underscore.) At shell startup, set to the absolute pathname
used to invoke the shell or shell script being executed as passed
in the environment or argument list. Subsequently, expands to the
last argument to the previous command, after expansion. Also set
to the full pathname used to invoke each command executed and
placed in the environment exported to that command. When checking
mail, this parameter holds the name of the mail file.
($_, an underscore.) At shell startup, set to the absolute
pathname used to invoke the shell or shell script being executed
as passed in the environment or argument list. Subsequently,
expands to the last argument to the previous command, after
expansion. Also set to the full pathname used to invoke each
command executed and placed in the environment exported to that
command. When checking mail, this parameter holds the name of the
mail file.

File: bashref.info, Node: Shell Expansions, Next: Redirections, Prev: Shell Parameters, Up: Basic Shell Features
@@ -10680,15 +10682,24 @@ D.3 Parameter and Variable Index
[index]
* Menu:
* !: Special Parameters. (line 46)
* !: Special Parameters. (line 47)
* #: Special Parameters. (line 30)
* $: Special Parameters. (line 42)
* $!: Special Parameters. (line 48)
* $#: Special Parameters. (line 31)
* $$: Special Parameters. (line 43)
* $*: Special Parameters. (line 10)
* $-: Special Parameters. (line 38)
* $0: Special Parameters. (line 53)
* $?: Special Parameters. (line 34)
* $@: Special Parameters. (line 20)
* $_: Special Parameters. (line 62)
* *: Special Parameters. (line 9)
* -: Special Parameters. (line 37)
* 0: Special Parameters. (line 51)
* 0: Special Parameters. (line 52)
* ?: Special Parameters. (line 33)
* @: Special Parameters. (line 19)
* _: Special Parameters. (line 60)
* _: Special Parameters. (line 61)
* auto_resume: Job Control Variables.
(line 6)
* BASH: Bash Variables. (line 13)
@@ -11167,105 +11178,105 @@ Node: Shell Functions46875
Node: Shell Parameters51959
Node: Positional Parameters56088
Node: Special Parameters56988
Node: Shell Expansions60047
Node: Brace Expansion61990
Node: Tilde Expansion64771
Node: Shell Parameter Expansion67120
Node: Command Substitution79414
Node: Arithmetic Expansion80747
Node: Process Substitution81679
Node: Word Splitting82729
Node: Filename Expansion84377
Node: Pattern Matching86542
Node: Quote Removal90242
Node: Redirections90537
Node: Executing Commands99701
Node: Simple Command Expansion100371
Node: Command Search and Execution102301
Node: Command Execution Environment104638
Node: Environment107624
Node: Exit Status109283
Node: Signals110905
Node: Shell Scripts112873
Node: Shell Builtin Commands115391
Node: Bourne Shell Builtins117419
Node: Bash Builtins137326
Node: Modifying Shell Behavior164779
Node: The Set Builtin165124
Node: The Shopt Builtin175450
Node: Special Builtins189871
Node: Shell Variables190850
Node: Bourne Shell Variables191290
Node: Bash Variables193321
Node: Bash Features220196
Node: Invoking Bash221095
Node: Bash Startup Files226873
Node: Interactive Shells231902
Node: What is an Interactive Shell?232312
Node: Is this Shell Interactive?232961
Node: Interactive Shell Behavior233776
Node: Bash Conditional Expressions237064
Node: Shell Arithmetic241066
Node: Aliases243842
Node: Arrays246398
Node: The Directory Stack251379
Node: Directory Stack Builtins252098
Node: Controlling the Prompt255054
Node: The Restricted Shell257826
Node: Bash POSIX Mode259663
Node: Job Control269050
Node: Job Control Basics269510
Node: Job Control Builtins274229
Node: Job Control Variables278700
Node: Command Line Editing279858
Node: Introduction and Notation281530
Node: Readline Interaction283152
Node: Readline Bare Essentials284343
Node: Readline Movement Commands286132
Node: Readline Killing Commands287097
Node: Readline Arguments289017
Node: Searching290061
Node: Readline Init File292247
Node: Readline Init File Syntax293394
Node: Conditional Init Constructs310231
Node: Sample Init File312764
Node: Bindable Readline Commands315882
Node: Commands For Moving317089
Node: Commands For History318233
Node: Commands For Text322418
Node: Commands For Killing325091
Node: Numeric Arguments327548
Node: Commands For Completion328687
Node: Keyboard Macros332879
Node: Miscellaneous Commands333567
Node: Readline vi Mode339373
Node: Programmable Completion340280
Node: Programmable Completion Builtins347556
Node: A Programmable Completion Example357302
Node: Using History Interactively362552
Node: Bash History Facilities363236
Node: Bash History Builtins366235
Node: History Interaction370163
Node: Event Designators372868
Node: Word Designators374090
Node: Modifiers375729
Node: Installing Bash377133
Node: Basic Installation378270
Node: Compilers and Options380962
Node: Compiling For Multiple Architectures381703
Node: Installation Names383367
Node: Specifying the System Type384185
Node: Sharing Defaults384901
Node: Operation Controls385574
Node: Optional Features386532
Node: Reporting Bugs396596
Node: Major Differences From The Bourne Shell397794
Node: GNU Free Documentation License414653
Node: Indexes439849
Node: Builtin Index440303
Node: Reserved Word Index447130
Node: Variable Index449578
Node: Function Index463101
Node: Concept Index470329
Node: Shell Expansions60099
Node: Brace Expansion62042
Node: Tilde Expansion64823
Node: Shell Parameter Expansion67172
Node: Command Substitution79466
Node: Arithmetic Expansion80799
Node: Process Substitution81731
Node: Word Splitting82781
Node: Filename Expansion84429
Node: Pattern Matching86594
Node: Quote Removal90294
Node: Redirections90589
Node: Executing Commands99753
Node: Simple Command Expansion100423
Node: Command Search and Execution102353
Node: Command Execution Environment104690
Node: Environment107676
Node: Exit Status109335
Node: Signals110957
Node: Shell Scripts112925
Node: Shell Builtin Commands115443
Node: Bourne Shell Builtins117471
Node: Bash Builtins137378
Node: Modifying Shell Behavior164831
Node: The Set Builtin165176
Node: The Shopt Builtin175502
Node: Special Builtins189923
Node: Shell Variables190902
Node: Bourne Shell Variables191342
Node: Bash Variables193373
Node: Bash Features220248
Node: Invoking Bash221147
Node: Bash Startup Files226925
Node: Interactive Shells231954
Node: What is an Interactive Shell?232364
Node: Is this Shell Interactive?233013
Node: Interactive Shell Behavior233828
Node: Bash Conditional Expressions237116
Node: Shell Arithmetic241118
Node: Aliases243894
Node: Arrays246450
Node: The Directory Stack251431
Node: Directory Stack Builtins252150
Node: Controlling the Prompt255106
Node: The Restricted Shell257878
Node: Bash POSIX Mode259715
Node: Job Control269102
Node: Job Control Basics269562
Node: Job Control Builtins274281
Node: Job Control Variables278752
Node: Command Line Editing279910
Node: Introduction and Notation281582
Node: Readline Interaction283204
Node: Readline Bare Essentials284395
Node: Readline Movement Commands286184
Node: Readline Killing Commands287149
Node: Readline Arguments289069
Node: Searching290113
Node: Readline Init File292299
Node: Readline Init File Syntax293446
Node: Conditional Init Constructs310283
Node: Sample Init File312816
Node: Bindable Readline Commands315934
Node: Commands For Moving317141
Node: Commands For History318285
Node: Commands For Text322470
Node: Commands For Killing325143
Node: Numeric Arguments327600
Node: Commands For Completion328739
Node: Keyboard Macros332931
Node: Miscellaneous Commands333619
Node: Readline vi Mode339425
Node: Programmable Completion340332
Node: Programmable Completion Builtins347608
Node: A Programmable Completion Example357354
Node: Using History Interactively362604
Node: Bash History Facilities363288
Node: Bash History Builtins366287
Node: History Interaction370215
Node: Event Designators372920
Node: Word Designators374142
Node: Modifiers375781
Node: Installing Bash377185
Node: Basic Installation378322
Node: Compilers and Options381014
Node: Compiling For Multiple Architectures381755
Node: Installation Names383419
Node: Specifying the System Type384237
Node: Sharing Defaults384953
Node: Operation Controls385626
Node: Optional Features386584
Node: Reporting Bugs396648
Node: Major Differences From The Bourne Shell397846
Node: GNU Free Documentation License414705
Node: Indexes439901
Node: Builtin Index440355
Node: Reserved Word Index447182
Node: Variable Index449630
Node: Function Index463810
Node: Concept Index471038

End Tag Table
+119 -140
View File
@@ -1,7 +1,7 @@
This is TeX, Version 3.1415926 (TeX Live 2011/Fink) (format=tex 2012.4.18) 22 OCT 2013 11:07
This is TeX, Version 3.1415926 (TeX Live 2011/Fink) (format=tex 2012.4.18) 27 DEC 2013 14:46
**/usr/homes/chet/src/bash/src/doc/bashref.texi
(/usr/homes/chet/src/bash/src/doc/bashref.texi (./texinfo.tex
Loading texinfo [version 2009-01-18.17]:
Loading texinfo [version 2013-09-11.11]:
\bindingoffset=\dimen16
\normaloffset=\dimen17
\pagewidth=\dimen18
@@ -20,24 +20,25 @@ Loading texinfo [version 2009-01-18.17]:
\mil=\dimen25
\exdentamount=\skip18
\inmarginspacing=\skip19
\centerpenalty=\count26
pdf,
\tempnum=\count26
\lnkcount=\count27
\tempnum=\count27
\lnkcount=\count28
\filename=\toks14
\filenamelength=\count28
\pgn=\count29
\filenamelength=\count29
\pgn=\count30
\toksA=\toks15
\toksB=\toks16
\toksC=\toks17
\toksD=\toks18
\boxA=\box19
\countA=\count30
\countA=\count31
\nopdfimagehelp=\toks19
fonts,
\sffam=\fam8
\textleading=\dimen26
markup,
\fontdepth=\count31
\fontdepth=\count32
glyphs,
\errorbox=\box20
@@ -53,38 +54,38 @@ page headings,
\itemindent=\dimen28
\itemmargin=\dimen29
\itemmax=\dimen30
\itemno=\count32
\itemno=\count33
\multitableparskip=\skip22
\multitableparindent=\skip23
\multitablecolspace=\dimen31
\multitablelinespace=\skip24
\colcount=\count33
\colcount=\count34
\everytab=\toks24
conditionals,
\doignorecount=\count34
\doignorecount=\count35
indexing,
\whatsitskip=\skip25
\whatsitpenalty=\count35
\whatsitpenalty=\count36
\secondaryindent=\skip26
\partialpage=\box21
\doublecolumnhsize=\dimen32
sectioning,
\unnumberedno=\count36
\chapno=\count37
\secno=\count38
\subsecno=\count39
\subsubsecno=\count40
\appendixno=\count41
\absseclevel=\count42
\secbase=\count43
\unnumberedno=\count37
\chapno=\count38
\secno=\count39
\subsecno=\count40
\subsubsecno=\count41
\appendixno=\count42
\absseclevel=\count43
\secbase=\count44
\chapheadingskip=\skip27
\secheadingskip=\skip28
\subsecheadingskip=\skip29
toc,
\tocfile=\write0
\contentsrightmargin=\skip30
\savepageno=\count44
\lastnegativepageno=\count45
\savepageno=\count45
\lastnegativepageno=\count46
\tocindent=\dimen33
environments,
\lispnarrowing=\skip31
@@ -99,25 +100,30 @@ page headings,
\rskip=\skip37
\nonfillparindent=\dimen37
\tabw=\dimen38
\verbbox=\box22
defuns,
\defbodyindent=\skip38
\defargsindent=\skip39
\deflastargmargin=\skip40
\defunpenalty=\count46
\parencount=\count47
\brackcount=\count48
\defunpenalty=\count47
\parencount=\count48
\brackcount=\count49
macros,
\macscribble=\write1
\paramno=\count49
\paramno=\count50
\macname=\toks25
cross references,
\auxfile=\write2
\savesfregister=\count50
\savesfregister=\count51
\toprefbox=\box23
\printedrefnamebox=\box24
\infofilenamebox=\box25
\printedmanualbox=\box26
insertions,
\footnoteno=\count51
\SAVEfootins=\box22
\SAVEmargin=\box23
\footnoteno=\count52
\SAVEfootins=\box27
\SAVEmargin=\box28
(/sw/share/texmf-dist/tex/generic/epsf/epsf.tex
This is `epsf.tex' v2.7.4 <14 February 2011>
@@ -134,9 +140,9 @@ This is `epsf.tex' v2.7.4 <14 February 2011>
\noepsfhelp=\toks26
localization,
\nolanghelp=\toks27
\countUTFx=\count52
\countUTFy=\count53
\countUTFz=\count54
\countUTFx=\count53
\countUTFy=\count54
\countUTFz=\count55
formatting,
\defaultparindent=\dimen47
and turning on texinfo input format.)
@@ -149,6 +155,8 @@ This is `epsf.tex' v2.7.4 <14 February 2011>
@tpindfile=@write6
@kyindfile=@write7
@pgindfile=@write8
texinfo.tex: doing @include of version.texi
(./version.texi)
@btindfile=@write9
@rwindfile=@write10
@@ -178,9 +186,9 @@ This is `epsf.tex' v2.7.4 <14 February 2011>
Chapter 2 [1] [2] [3] Chapter 3 [4] [5] [6]
[7] [8] [9] [10]
Overfull \hbox (43.33539pt too wide) in paragraph at lines 866--866
Overfull \hbox (38.26587pt too wide) in paragraph at lines 866--866
[]@texttt case @textttsl word @texttt in [ [(] @textttsl pat-tern @texttt [| @
textttsl pat-tern@texttt ][]) @textttsl command-list @texttt ;;][] esac[]
textttsl pattern@texttt ][]) @textttsl command-list @texttt ;;][] esac[]
@hbox(7.60416+2.43333)x433.62
.@glue(@leftskip) 86.72375
@@ -231,23 +239,10 @@ arallel -k traceroute[]
[16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30]
[31] [32] [33] [34] [35] [36] [37] [38] Chapter 4 [39] [40] [41] [42] [43]
[44] [45] [46] [47]
Underfull \hbox (badness 5231) in paragraph at lines 3770--3783
@texttt emacs-meta[]@textrm , @texttt emacs-ctlx[]@textrm , @texttt vi[]@textr
m , @texttt vi-move[]@textrm , @texttt vi-command[]@textrm , and
@hbox(7.60416+2.12917)x433.62, glue set 3.7426
.@glue(@leftskip) 115.63242
.@texttt e
.@texttt m
.@texttt a
.@texttt c
.etc.
[48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62]
[63] [64] [65] [66] [67] Chapter 5 [68] [69] [70] [71] [72] [73] [74] [75]
[76] [77] [78] Chapter 6 [79]
Overfull \hbox (51.96864pt too wide) in paragraph at lines 5987--5987
[44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58]
[59] [60] [61] [62] [63] [64] [65] [66] [67] Chapter 5 [68] [69] [70] [71]
[72] [73] [74] [75] [76] [77] [78] Chapter 6 [79]
Overfull \hbox (49.43388pt too wide) in paragraph at lines 5996--5996
[]@texttt bash [long-opt] [-ir] [-abefhkmnptuvxdBCDHP] [-o @textttsl op-tion@t
exttt ] [-O @textttsl shopt_option@texttt ] [@textttsl ar-
@@ -260,7 +255,7 @@ exttt ] [-O @textttsl shopt_option@texttt ] [@textttsl ar-
.etc.
Overfull \hbox (76.23077pt too wide) in paragraph at lines 5988--5988
Overfull \hbox (72.42863pt too wide) in paragraph at lines 5997--5997
[]@texttt bash [long-opt] [-abefhkmnptuvxdBCDHP] [-o @textttsl op-tion@texttt
] [-O @textttsl shopt_option@texttt ] -c @textttsl string @texttt [@textttsl ar
-
@@ -274,7 +269,7 @@ Overfull \hbox (76.23077pt too wide) in paragraph at lines 5988--5988
.etc.
Overfull \hbox (34.72258pt too wide) in paragraph at lines 5989--5989
Overfull \hbox (32.18782pt too wide) in paragraph at lines 5998--5998
[]@texttt bash [long-opt] -s [-abefhkmnptuvxdBCDHP] [-o @textttsl op-tion@text
tt ] [-O @textttsl shopt_option@texttt ] [@textttsl ar-
@@ -286,48 +281,39 @@ tt ] [-O @textttsl shopt_option@texttt ] [@textttsl ar-
.@texttt s
.etc.
[80] [81]
Underfull \hbox (badness 2245) in paragraph at lines 6161--6163
[]@textrm When a lo-gin shell ex-its, Bash reads and ex-e-cutes com-mands from
the file
[80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90] [91] [92] [93] [94]
[95] Chapter 7 [96] [97] [98] [99]
texinfo.tex: doing @include of rluser.texi
@hbox(7.60416+2.12917)x433.62, glue set 2.82155
.@hbox(0.0+0.0)x15.0
.@textrm W
.@textrm h
.@textrm e
.@textrm n
.etc.
[82] [83] [84] [85] [86] [87] [88] [89] [90] [91] [92] [93] [94] [95] [96]
Underfull \hbox (badness 2521) in paragraph at lines 7379--7382
@textrm `@texttt --enable-strict-posix-default[]@textrm '[] to @texttt configur
e[] @textrm when build-ing (see Sec-tion 10.8
(/usr/homes/chet/src/bash/src/lib/readline/doc/rluser.texi Chapter 8 [100]
[101] [102] [103] [104] [105] [106] [107] [108] [109]
Underfull \hbox (badness 7540) in paragraph at lines 734--740
[]@textrm In the above ex-am-ple, @textttsl C-u[] @textrm is bound to the func
-tion
@hbox(8.2125+2.73749)x433.62, glue set 2.9335
.@textrm `
.@texttt -
.@texttt -
.@texttt e
.@texttt n
.etc.
Chapter 7 [97] [98] [99] [100]
(/usr/homes/chet/src/bash/src/lib/readline/doc/rluser.texi Chapter 8 [101]
[102] [103] [104] [105] [106] [107]
Underfull \hbox (badness 5231) in paragraph at lines 565--581
@texttt emacs-meta[]@textrm , @texttt emacs-ctlx[]@textrm , @texttt vi[]@textr
m , @texttt vi-move[]@textrm , @texttt vi-command[]@textrm , and
@hbox(7.60416+2.12917)x433.62, glue set 3.7426
@hbox(7.60416+2.12917)x433.62, glue set 4.22592
.@glue(@leftskip) 115.63242
.@texttt e
.@texttt m
.@texttt a
.@texttt c
.@hbox(0.0+0.0)x0.0
.@textrm I
.@textrm n
.@glue 3.65 plus 1.825 minus 1.21666
.etc.
[108] [109] [110] [111] [112] [113]
Underfull \hbox (badness 10000) in paragraph at lines 734--740
@texttt universal-argument[]@textrm , @textttsl M-DEL[] @textrm is bound to th
e func-tion
@hbox(7.60416+2.43333)x433.62, glue set 5.18782
.@glue(@leftskip) 115.63242
.@texttt u
.@texttt n
.@texttt i
.@texttt v
.etc.
[110] [111] [112]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 929--929
[]@texttt Meta-Control-h: backward-kill-word Text after the function name is i
gnored[]
@@ -340,33 +326,8 @@ gnored[]
.@texttt t
.etc.
[114] [115] [116] [117] [118] [119] [120] [121] [122] [123] [124] [125]
[126] [127]
Overfull \hbox (12.05716pt too wide) in paragraph at lines 1877--1877
[]@texttt complete [-abcdefgjksuv] [-o @textttsl comp-option@texttt ] [-DE] [-
A @textttsl ac-tion@texttt ] [-
@hbox(7.60416+2.43333)x433.62
.@glue(@leftskip) 86.72375
.@hbox(0.0+0.0)x0.0
.@texttt c
.@texttt o
.@texttt m
.etc.
[128]
Underfull \hbox (badness 2753) in paragraph at lines 1991--1994
@texttt hostname[]@textrm Hostnames, as taken from the file spec-i-fied by
@hbox(7.60416+2.12917)x433.62, glue set 3.02202
.@glue(@leftskip) 173.44862
.@penalty 10000
.@kern -57.81621
.@texttt h
.@texttt o
.etc.
[129] [130] [131]
[113] [114] [115] [116] [117] [118] [119] [120] [121] [122] [123] [124]
[125] [126] [127] [128] [129] [130]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 2142--2142
[] @texttt # Tilde expansion, with side effect of expanding tilde to full p
athname[]
@@ -379,31 +340,49 @@ athname[]
.@penalty 10000
.etc.
[132]) (/usr/homes/chet/src/bash/src/lib/readline/doc/hsuser.texi Chapter 9
[133] [134] [135] [136] [137]) Chapter 10 [138] [139] [140] [141]
Underfull \hbox (badness 2772) in paragraph at lines 7987--7991
[]@textrm Enable sup-port for large files (@texttt http://www.sas.com/standard
s/large_
[131])
texinfo.tex: doing @include of hsuser.texi
@hbox(8.2125+2.73749)x433.62, glue set 3.02754
.@glue(@leftskip) 57.81621
.@hbox(0.0+0.0)x0.0
.@textrm E
.@textrm n
.@textrm a
.etc.
(/usr/homes/chet/src/bash/src/lib/readline/doc/hsuser.texi Chapter 9
[132] [133] [134] [135] [136]) Chapter 10 [137] [138] [139] [140] [141]
[142] [143] Appendix A [144] Appendix B [145] [146] [147] [148] [149] [150]
Appendix C [151]
texinfo.tex: doing @include of fdl.texi
[142] [143] [144] Appendix A [145] Appendix B [146] [147] [148] [149] [150]
[151] Appendix C [152] (./fdl.texi [153] [154] [155] [156] [157] [158] [159])
Appendix D [160] (./bashref.bts) [161] (./bashref.rws) (./bashref.vrs [162]
[163]) (./bashref.fns [164] [165]) (./bashref.cps [166]) [167] )
(./fdl.texi [152] [153] [154] [155] [156] [157] [158])
Appendix D [159] (./bashref.bts) [160] (./bashref.rws) (./bashref.vrs [161]
[162]) (./bashref.fns [163] [164]) (./bashref.cps [165])
Overfull \vbox (10.81442pt too high) has occurred while \output is active
\vbox(643.2+0.0)x433.62
.\glue(\topskip) 0.0
.\hbox(652.26442+1.75)x433.62, glue set 18.01016fil
..\vbox(652.26442+1.75)x207.80492, glue set 0.00302
...\glue(\topskip) 26.12001
...\hbox(9.87999+0.0)x207.80492, glue set 197.6216fil []
...\penalty 10000
...\glue 3.46501 plus 1.05006
...\glue 0.0 plus 1.0
...etc.
..\glue 0.0 plus 1.0fil
..\vbox(652.26442+1.75)x207.80492, glue set 0.0716
...\glue(\splittopskip) 29.75
...\hbox(6.25+1.75)x207.80492, glue set 96.39734fill []
...\glue 0.0 plus 1.0
...\glue(\parskip) 0.0
...\glue(\baselineskip) 2.5
...etc.
.\penalty 10000
.\glue 0.0 plus 1.0fill
[166] )
Here is how much of TeX's memory you used:
2085 strings out of 497974
28645 string characters out of 3220833
66405 words of memory out of 3000000
2901 multiletter control sequences out of 15000+200000
32127 words of font info for 112 fonts, out of 3000000 for 9000
2225 strings out of 497974
30407 string characters out of 3220833
68774 words of memory out of 3000000
3040 multiletter control sequences out of 15000+200000
32896 words of font info for 113 fonts, out of 3000000 for 9000
51 hyphenation exceptions out of 8191
16i,6n,14p,319b,705s stack positions out of 5000i,500n,10000p,200000b,50000s
16i,6n,14p,319b,749s stack positions out of 5000i,500n,10000p,200000b,50000s
Output written on bashref.dvi (173 pages, 719856 bytes).
Output written on bashref.dvi (172 pages, 720864 bytes).
+9992 -9488
View File
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -16,6 +16,6 @@
\entry{select}{12}{\code {select}}
\entry{[[}{12}{\code {[[}}
\entry{]]}{12}{\code {]]}}
\entry{{\tt \char 123}}{14}{\code {{\tt \char 123}}}
\entry{{\tt \char 125}}{14}{\code {{\tt \char 125}}}
\entry{|a}{14}{\code {{\tt \char 123}}}
\entry{|b}{14}{\code {{\tt \char 125}}}
\entry{function}{17}{\code {function}}
+1 -2
View File
@@ -4,9 +4,8 @@
\entry {\code {[[}}{12}
\initial {]}
\entry {\code {]]}}{12}
\initial {{\tt \char 123}}
\initial {|}
\entry {\code {{\tt \char 123}}}{14}
\initial {{\tt \char 125}}
\entry {\code {{\tt \char 125}}}{14}
\initial {C}
\entry {\code {case}}{11}
+1 -1
View File
@@ -16,4 +16,4 @@ Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is included in the section entitled
``GNU Free Documentation License''.
@end quotation
@endinput
@empty
+61 -61
View File
@@ -59,9 +59,9 @@
@numchapentry{Shell Builtin Commands}{4}{Shell Builtin Commands}{41}
@numsecentry{Bourne Shell Builtins}{4.1}{Bourne Shell Builtins}{41}
@numsecentry{Bash Builtin Commands}{4.2}{Bash Builtins}{48}
@numsecentry{Modifying Shell Behavior}{4.3}{Modifying Shell Behavior}{59}
@numsubsecentry{The Set Builtin}{4.3.1}{The Set Builtin}{59}
@numsubsecentry{The Shopt Builtin}{4.3.2}{The Shopt Builtin}{63}
@numsecentry{Modifying Shell Behavior}{4.3}{Modifying Shell Behavior}{58}
@numsubsecentry{The Set Builtin}{4.3.1}{The Set Builtin}{58}
@numsubsecentry{The Shopt Builtin}{4.3.2}{The Shopt Builtin}{62}
@numsecentry{Special Builtins}{4.4}{Special Builtins}{68}
@numchapentry{Shell Variables}{5}{Shell Variables}{69}
@numsecentry{Bourne Shell Variables}{5.1}{Bourne Shell Variables}{69}
@@ -70,70 +70,70 @@
@numsecentry{Invoking Bash}{6.1}{Invoking Bash}{80}
@numsecentry{Bash Startup Files}{6.2}{Bash Startup Files}{82}
@numsecentry{Interactive Shells}{6.3}{Interactive Shells}{83}
@numsubsecentry{What is an Interactive Shell?}{6.3.1}{What is an Interactive Shell?}{84}
@numsubsecentry{What is an Interactive Shell?}{6.3.1}{What is an Interactive Shell?}{83}
@numsubsecentry{Is this Shell Interactive?}{6.3.2}{Is this Shell Interactive?}{84}
@numsubsecentry{Interactive Shell Behavior}{6.3.3}{Interactive Shell Behavior}{84}
@numsecentry{Bash Conditional Expressions}{6.4}{Bash Conditional Expressions}{85}
@numsecentry{Shell Arithmetic}{6.5}{Shell Arithmetic}{87}
@numsecentry{Aliases}{6.6}{Aliases}{88}
@numsecentry{Arrays}{6.7}{Arrays}{89}
@numsecentry{The Directory Stack}{6.8}{The Directory Stack}{91}
@numsubsecentry{Directory Stack Builtins}{6.8.1}{Directory Stack Builtins}{91}
@numsecentry{The Directory Stack}{6.8}{The Directory Stack}{90}
@numsubsecentry{Directory Stack Builtins}{6.8.1}{Directory Stack Builtins}{90}
@numsecentry{Controlling the Prompt}{6.9}{Controlling the Prompt}{92}
@numsecentry{The Restricted Shell}{6.10}{The Restricted Shell}{93}
@numsecentry{Bash POSIX Mode}{6.11}{Bash POSIX Mode}{94}
@numchapentry{Job Control}{7}{Job Control}{98}
@numsecentry{Job Control Basics}{7.1}{Job Control Basics}{98}
@numsecentry{Job Control Builtins}{7.2}{Job Control Builtins}{99}
@numsecentry{Job Control Variables}{7.3}{Job Control Variables}{101}
@numchapentry{Command Line Editing}{8}{Command Line Editing}{102}
@numsecentry{Introduction to Line Editing}{8.1}{Introduction and Notation}{102}
@numsecentry{Readline Interaction}{8.2}{Readline Interaction}{102}
@numsubsecentry{Readline Bare Essentials}{8.2.1}{Readline Bare Essentials}{103}
@numsubsecentry{Readline Movement Commands}{8.2.2}{Readline Movement Commands}{103}
@numsubsecentry{Readline Killing Commands}{8.2.3}{Readline Killing Commands}{104}
@numsubsecentry{Readline Arguments}{8.2.4}{Readline Arguments}{104}
@numsubsecentry{Searching for Commands in the History}{8.2.5}{Searching}{104}
@numsecentry{Readline Init File}{8.3}{Readline Init File}{105}
@numsubsecentry{Readline Init File Syntax}{8.3.1}{Readline Init File Syntax}{105}
@numsubsecentry{Conditional Init Constructs}{8.3.2}{Conditional Init Constructs}{112}
@numsubsecentry{Sample Init File}{8.3.3}{Sample Init File}{113}
@numsecentry{Bindable Readline Commands}{8.4}{Bindable Readline Commands}{116}
@numsubsecentry{Commands For Moving}{8.4.1}{Commands For Moving}{116}
@numsubsecentry{Commands For Manipulating The History}{8.4.2}{Commands For History}{117}
@numsubsecentry{Commands For Changing Text}{8.4.3}{Commands For Text}{118}
@numsubsecentry{Killing And Yanking}{8.4.4}{Commands For Killing}{119}
@numsubsecentry{Specifying Numeric Arguments}{8.4.5}{Numeric Arguments}{120}
@numsubsecentry{Letting Readline Type For You}{8.4.6}{Commands For Completion}{121}
@numsubsecentry{Keyboard Macros}{8.4.7}{Keyboard Macros}{122}
@numsubsecentry{Some Miscellaneous Commands}{8.4.8}{Miscellaneous Commands}{123}
@numsecentry{Readline vi Mode}{8.5}{Readline vi Mode}{125}
@numsecentry{Programmable Completion}{8.6}{Programmable Completion}{125}
@numsecentry{Programmable Completion Builtins}{8.7}{Programmable Completion Builtins}{127}
@numsecentry{A Programmable Completion Example}{8.8}{A Programmable Completion Example}{131}
@numchapentry{Using History Interactively}{9}{Using History Interactively}{134}
@numsecentry{Bash History Facilities}{9.1}{Bash History Facilities}{134}
@numsecentry{Bash History Builtins}{9.2}{Bash History Builtins}{134}
@numsecentry{History Expansion}{9.3}{History Interaction}{136}
@numsubsecentry{Event Designators}{9.3.1}{Event Designators}{137}
@numsubsecentry{Word Designators}{9.3.2}{Word Designators}{137}
@numsubsecentry{Modifiers}{9.3.3}{Modifiers}{138}
@numchapentry{Installing Bash}{10}{Installing Bash}{139}
@numsecentry{Basic Installation}{10.1}{Basic Installation}{139}
@numsecentry{Compilers and Options}{10.2}{Compilers and Options}{140}
@numsecentry{Compiling For Multiple Architectures}{10.3}{Compiling For Multiple Architectures}{140}
@numsecentry{Installation Names}{10.4}{Installation Names}{140}
@numsecentry{Specifying the System Type}{10.5}{Specifying the System Type}{140}
@numsecentry{Sharing Defaults}{10.6}{Sharing Defaults}{141}
@numsecentry{Operation Controls}{10.7}{Operation Controls}{141}
@numsecentry{Optional Features}{10.8}{Optional Features}{141}
@appentry{Reporting Bugs}{A}{Reporting Bugs}{146}
@appentry{Major Differences From The Bourne Shell}{B}{Major Differences From The Bourne Shell}{147}
@appsecentry{Implementation Differences From The SVR4.2 Shell}{B.1}{}{151}
@appentry{GNU Free Documentation License}{C}{GNU Free Documentation License}{153}
@appentry{Indexes}{D}{Indexes}{161}
@appsecentry{Index of Shell Builtin Commands}{D.1}{Builtin Index}{161}
@appsecentry{Index of Shell Reserved Words}{D.2}{Reserved Word Index}{162}
@appsecentry{Parameter and Variable Index}{D.3}{Variable Index}{162}
@appsecentry{Function Index}{D.4}{Function Index}{164}
@appsecentry{Concept Index}{D.5}{Concept Index}{166}
@numchapentry{Job Control}{7}{Job Control}{97}
@numsecentry{Job Control Basics}{7.1}{Job Control Basics}{97}
@numsecentry{Job Control Builtins}{7.2}{Job Control Builtins}{98}
@numsecentry{Job Control Variables}{7.3}{Job Control Variables}{100}
@numchapentry{Command Line Editing}{8}{Command Line Editing}{101}
@numsecentry{Introduction to Line Editing}{8.1}{Introduction and Notation}{101}
@numsecentry{Readline Interaction}{8.2}{Readline Interaction}{101}
@numsubsecentry{Readline Bare Essentials}{8.2.1}{Readline Bare Essentials}{102}
@numsubsecentry{Readline Movement Commands}{8.2.2}{Readline Movement Commands}{102}
@numsubsecentry{Readline Killing Commands}{8.2.3}{Readline Killing Commands}{103}
@numsubsecentry{Readline Arguments}{8.2.4}{Readline Arguments}{103}
@numsubsecentry{Searching for Commands in the History}{8.2.5}{Searching}{103}
@numsecentry{Readline Init File}{8.3}{Readline Init File}{104}
@numsubsecentry{Readline Init File Syntax}{8.3.1}{Readline Init File Syntax}{104}
@numsubsecentry{Conditional Init Constructs}{8.3.2}{Conditional Init Constructs}{111}
@numsubsecentry{Sample Init File}{8.3.3}{Sample Init File}{112}
@numsecentry{Bindable Readline Commands}{8.4}{Bindable Readline Commands}{115}
@numsubsecentry{Commands For Moving}{8.4.1}{Commands For Moving}{115}
@numsubsecentry{Commands For Manipulating The History}{8.4.2}{Commands For History}{116}
@numsubsecentry{Commands For Changing Text}{8.4.3}{Commands For Text}{117}
@numsubsecentry{Killing And Yanking}{8.4.4}{Commands For Killing}{118}
@numsubsecentry{Specifying Numeric Arguments}{8.4.5}{Numeric Arguments}{119}
@numsubsecentry{Letting Readline Type For You}{8.4.6}{Commands For Completion}{120}
@numsubsecentry{Keyboard Macros}{8.4.7}{Keyboard Macros}{121}
@numsubsecentry{Some Miscellaneous Commands}{8.4.8}{Miscellaneous Commands}{122}
@numsecentry{Readline vi Mode}{8.5}{Readline vi Mode}{124}
@numsecentry{Programmable Completion}{8.6}{Programmable Completion}{124}
@numsecentry{Programmable Completion Builtins}{8.7}{Programmable Completion Builtins}{126}
@numsecentry{A Programmable Completion Example}{8.8}{A Programmable Completion Example}{130}
@numchapentry{Using History Interactively}{9}{Using History Interactively}{133}
@numsecentry{Bash History Facilities}{9.1}{Bash History Facilities}{133}
@numsecentry{Bash History Builtins}{9.2}{Bash History Builtins}{133}
@numsecentry{History Expansion}{9.3}{History Interaction}{135}
@numsubsecentry{Event Designators}{9.3.1}{Event Designators}{135}
@numsubsecentry{Word Designators}{9.3.2}{Word Designators}{136}
@numsubsecentry{Modifiers}{9.3.3}{Modifiers}{137}
@numchapentry{Installing Bash}{10}{Installing Bash}{138}
@numsecentry{Basic Installation}{10.1}{Basic Installation}{138}
@numsecentry{Compilers and Options}{10.2}{Compilers and Options}{139}
@numsecentry{Compiling For Multiple Architectures}{10.3}{Compiling For Multiple Architectures}{139}
@numsecentry{Installation Names}{10.4}{Installation Names}{139}
@numsecentry{Specifying the System Type}{10.5}{Specifying the System Type}{139}
@numsecentry{Sharing Defaults}{10.6}{Sharing Defaults}{140}
@numsecentry{Operation Controls}{10.7}{Operation Controls}{140}
@numsecentry{Optional Features}{10.8}{Optional Features}{140}
@appentry{Reporting Bugs}{A}{Reporting Bugs}{145}
@appentry{Major Differences From The Bourne Shell}{B}{Major Differences From The Bourne Shell}{146}
@appsecentry{Implementation Differences From The SVR4.2 Shell}{B.1}{}{150}
@appentry{GNU Free Documentation License}{C}{GNU Free Documentation License}{152}
@appentry{Indexes}{D}{Indexes}{160}
@appsecentry{Index of Shell Builtin Commands}{D.1}{Builtin Index}{160}
@appsecentry{Index of Shell Reserved Words}{D.2}{Reserved Word Index}{161}
@appsecentry{Parameter and Variable Index}{D.3}{Variable Index}{161}
@appsecentry{Function Index}{D.4}{Function Index}{163}
@appsecentry{Concept Index}{D.5}{Concept Index}{165}
+43 -34
View File
@@ -2,14 +2,23 @@
\entry{TEXTDOMAIN}{7}{\code {TEXTDOMAIN}}
\entry{TEXTDOMAINDIR}{7}{\code {TEXTDOMAINDIR}}
\entry{*}{20}{\code {*}}
\entry{$*}{20}{\code {$*}}
\entry{@}{20}{\code {@}}
\entry{$@}{20}{\code {$@}}
\entry{#}{20}{\code {#}}
\entry{$#}{20}{\code {$#}}
\entry{?}{20}{\code {?}}
\entry{$?}{20}{\code {$?}}
\entry{-}{20}{\code {-}}
\entry{$-}{20}{\code {$-}}
\entry{$}{20}{\code {$}}
\entry{$$}{20}{\code {$$}}
\entry{!}{20}{\code {!}}
\entry{$!}{20}{\code {$!}}
\entry{0}{20}{\code {0}}
\entry{$0}{20}{\code {$0}}
\entry{_}{20}{\code {_}}
\entry{$_}{20}{\code {$_}}
\entry{CDPATH}{69}{\code {CDPATH}}
\entry{HOME}{69}{\code {HOME}}
\entry{IFS}{69}{\code {IFS}}
@@ -106,37 +115,37 @@
\entry{TMOUT}{79}{\code {TMOUT}}
\entry{TMPDIR}{79}{\code {TMPDIR}}
\entry{UID}{79}{\code {UID}}
\entry{auto_resume}{101}{\code {auto_resume}}
\entry{bell-style}{106}{\code {bell-style}}
\entry{bind-tty-special-chars}{106}{\code {bind-tty-special-chars}}
\entry{colored-stats}{106}{\code {colored-stats}}
\entry{comment-begin}{106}{\code {comment-begin}}
\entry{completion-display-width}{106}{\code {completion-display-width}}
\entry{completion-ignore-case}{106}{\code {completion-ignore-case}}
\entry{completion-map-case}{106}{\code {completion-map-case}}
\entry{completion-prefix-display-length}{107}{\code {completion-prefix-display-length}}
\entry{completion-query-items}{107}{\code {completion-query-items}}
\entry{convert-meta}{107}{\code {convert-meta}}
\entry{disable-completion}{107}{\code {disable-completion}}
\entry{editing-mode}{107}{\code {editing-mode}}
\entry{enable-keypad}{107}{\code {enable-keypad}}
\entry{expand-tilde}{107}{\code {expand-tilde}}
\entry{history-preserve-point}{108}{\code {history-preserve-point}}
\entry{history-size}{108}{\code {history-size}}
\entry{horizontal-scroll-mode}{108}{\code {horizontal-scroll-mode}}
\entry{input-meta}{108}{\code {input-meta}}
\entry{meta-flag}{108}{\code {meta-flag}}
\entry{isearch-terminators}{108}{\code {isearch-terminators}}
\entry{keymap}{108}{\code {keymap}}
\entry{mark-modified-lines}{109}{\code {mark-modified-lines}}
\entry{mark-symlinked-directories}{109}{\code {mark-symlinked-directories}}
\entry{match-hidden-files}{109}{\code {match-hidden-files}}
\entry{menu-complete-display-prefix}{109}{\code {menu-complete-display-prefix}}
\entry{output-meta}{109}{\code {output-meta}}
\entry{page-completions}{109}{\code {page-completions}}
\entry{revert-all-at-newline}{109}{\code {revert-all-at-newline}}
\entry{show-all-if-ambiguous}{109}{\code {show-all-if-ambiguous}}
\entry{show-all-if-unmodified}{110}{\code {show-all-if-unmodified}}
\entry{show-mode-in-prompt}{110}{\code {show-mode-in-prompt}}
\entry{skip-completed-text}{110}{\code {skip-completed-text}}
\entry{visible-stats}{110}{\code {visible-stats}}
\entry{auto_resume}{100}{\code {auto_resume}}
\entry{bell-style}{105}{\code {bell-style}}
\entry{bind-tty-special-chars}{105}{\code {bind-tty-special-chars}}
\entry{colored-stats}{105}{\code {colored-stats}}
\entry{comment-begin}{105}{\code {comment-begin}}
\entry{completion-display-width}{105}{\code {completion-display-width}}
\entry{completion-ignore-case}{105}{\code {completion-ignore-case}}
\entry{completion-map-case}{105}{\code {completion-map-case}}
\entry{completion-prefix-display-length}{106}{\code {completion-prefix-display-length}}
\entry{completion-query-items}{106}{\code {completion-query-items}}
\entry{convert-meta}{106}{\code {convert-meta}}
\entry{disable-completion}{106}{\code {disable-completion}}
\entry{editing-mode}{106}{\code {editing-mode}}
\entry{enable-keypad}{106}{\code {enable-keypad}}
\entry{expand-tilde}{106}{\code {expand-tilde}}
\entry{history-preserve-point}{107}{\code {history-preserve-point}}
\entry{history-size}{107}{\code {history-size}}
\entry{horizontal-scroll-mode}{107}{\code {horizontal-scroll-mode}}
\entry{input-meta}{107}{\code {input-meta}}
\entry{meta-flag}{107}{\code {meta-flag}}
\entry{isearch-terminators}{107}{\code {isearch-terminators}}
\entry{keymap}{107}{\code {keymap}}
\entry{mark-modified-lines}{108}{\code {mark-modified-lines}}
\entry{mark-symlinked-directories}{108}{\code {mark-symlinked-directories}}
\entry{match-hidden-files}{108}{\code {match-hidden-files}}
\entry{menu-complete-display-prefix}{108}{\code {menu-complete-display-prefix}}
\entry{output-meta}{108}{\code {output-meta}}
\entry{page-completions}{108}{\code {page-completions}}
\entry{revert-all-at-newline}{108}{\code {revert-all-at-newline}}
\entry{show-all-if-ambiguous}{108}{\code {show-all-if-ambiguous}}
\entry{show-all-if-unmodified}{109}{\code {show-all-if-unmodified}}
\entry{show-mode-in-prompt}{109}{\code {show-mode-in-prompt}}
\entry{skip-completed-text}{109}{\code {skip-completed-text}}
\entry{visible-stats}{109}{\code {visible-stats}}
+43 -34
View File
@@ -4,6 +4,15 @@
\entry {\code {#}}{20}
\initial {$}
\entry {\code {$}}{20}
\entry {\code {$!}}{20}
\entry {\code {$#}}{20}
\entry {\code {$$}}{20}
\entry {\code {$*}}{20}
\entry {\code {$-}}{20}
\entry {\code {$?}}{20}
\entry {\code {$@}}{20}
\entry {\code {$_}}{20}
\entry {\code {$0}}{20}
\initial {*}
\entry {\code {*}}{20}
\initial {-}
@@ -17,7 +26,7 @@
\initial {0}
\entry {\code {0}}{20}
\initial {A}
\entry {\code {auto_resume}}{101}
\entry {\code {auto_resume}}{100}
\initial {B}
\entry {\code {BASH}}{69}
\entry {\code {BASH_ALIASES}}{70}
@@ -37,14 +46,14 @@
\entry {\code {BASH_XTRACEFD}}{72}
\entry {\code {BASHOPTS}}{70}
\entry {\code {BASHPID}}{70}
\entry {\code {bell-style}}{106}
\entry {\code {bind-tty-special-chars}}{106}
\entry {\code {bell-style}}{105}
\entry {\code {bind-tty-special-chars}}{105}
\initial {C}
\entry {\code {CDPATH}}{69}
\entry {\code {CHILD_MAX}}{72}
\entry {\code {colored-stats}}{106}
\entry {\code {colored-stats}}{105}
\entry {\code {COLUMNS}}{72}
\entry {\code {comment-begin}}{106}
\entry {\code {comment-begin}}{105}
\entry {\code {COMP_CWORD}}{72}
\entry {\code {COMP_KEY}}{73}
\entry {\code {COMP_LINE}}{72}
@@ -52,24 +61,24 @@
\entry {\code {COMP_TYPE}}{73}
\entry {\code {COMP_WORDBREAKS}}{73}
\entry {\code {COMP_WORDS}}{73}
\entry {\code {completion-display-width}}{106}
\entry {\code {completion-ignore-case}}{106}
\entry {\code {completion-map-case}}{106}
\entry {\code {completion-prefix-display-length}}{107}
\entry {\code {completion-query-items}}{107}
\entry {\code {completion-display-width}}{105}
\entry {\code {completion-ignore-case}}{105}
\entry {\code {completion-map-case}}{105}
\entry {\code {completion-prefix-display-length}}{106}
\entry {\code {completion-query-items}}{106}
\entry {\code {COMPREPLY}}{73}
\entry {\code {convert-meta}}{107}
\entry {\code {convert-meta}}{106}
\entry {\code {COPROC}}{73}
\initial {D}
\entry {\code {DIRSTACK}}{73}
\entry {\code {disable-completion}}{107}
\entry {\code {disable-completion}}{106}
\initial {E}
\entry {\code {editing-mode}}{107}
\entry {\code {editing-mode}}{106}
\entry {\code {EMACS}}{73}
\entry {\code {enable-keypad}}{107}
\entry {\code {enable-keypad}}{106}
\entry {\code {ENV}}{73}
\entry {\code {EUID}}{73}
\entry {\code {expand-tilde}}{107}
\entry {\code {expand-tilde}}{106}
\initial {F}
\entry {\code {FCEDIT}}{73}
\entry {\code {FIGNORE}}{74}
@@ -85,23 +94,23 @@
\entry {\code {HISTFILE}}{75}
\entry {\code {HISTFILESIZE}}{75}
\entry {\code {HISTIGNORE}}{75}
\entry {\code {history-preserve-point}}{108}
\entry {\code {history-size}}{108}
\entry {\code {history-preserve-point}}{107}
\entry {\code {history-size}}{107}
\entry {\code {HISTSIZE}}{75}
\entry {\code {HISTTIMEFORMAT}}{75}
\entry {\code {HOME}}{69}
\entry {\code {horizontal-scroll-mode}}{108}
\entry {\code {horizontal-scroll-mode}}{107}
\entry {\code {HOSTFILE}}{75}
\entry {\code {HOSTNAME}}{76}
\entry {\code {HOSTTYPE}}{76}
\initial {I}
\entry {\code {IFS}}{69}
\entry {\code {IGNOREEOF}}{76}
\entry {\code {input-meta}}{108}
\entry {\code {input-meta}}{107}
\entry {\code {INPUTRC}}{76}
\entry {\code {isearch-terminators}}{108}
\entry {\code {isearch-terminators}}{107}
\initial {K}
\entry {\code {keymap}}{108}
\entry {\code {keymap}}{107}
\initial {L}
\entry {\code {LANG}}{76}
\entry {\code {LC_ALL}}{76}
@@ -117,20 +126,20 @@
\entry {\code {MAILCHECK}}{77}
\entry {\code {MAILPATH}}{69}
\entry {\code {MAPFILE}}{77}
\entry {\code {mark-modified-lines}}{109}
\entry {\code {mark-symlinked-directories}}{109}
\entry {\code {match-hidden-files}}{109}
\entry {\code {menu-complete-display-prefix}}{109}
\entry {\code {meta-flag}}{108}
\entry {\code {mark-modified-lines}}{108}
\entry {\code {mark-symlinked-directories}}{108}
\entry {\code {match-hidden-files}}{108}
\entry {\code {menu-complete-display-prefix}}{108}
\entry {\code {meta-flag}}{107}
\initial {O}
\entry {\code {OLDPWD}}{77}
\entry {\code {OPTARG}}{69}
\entry {\code {OPTERR}}{77}
\entry {\code {OPTIND}}{69}
\entry {\code {OSTYPE}}{77}
\entry {\code {output-meta}}{109}
\entry {\code {output-meta}}{108}
\initial {P}
\entry {\code {page-completions}}{109}
\entry {\code {page-completions}}{108}
\entry {\code {PATH}}{69}
\entry {\code {PIPESTATUS}}{77}
\entry {\code {POSIXLY_CORRECT}}{77}
@@ -147,16 +156,16 @@
\entry {\code {READLINE_LINE}}{78}
\entry {\code {READLINE_POINT}}{78}
\entry {\code {REPLY}}{78}
\entry {\code {revert-all-at-newline}}{109}
\entry {\code {revert-all-at-newline}}{108}
\initial {S}
\entry {\code {SECONDS}}{78}
\entry {\code {SHELL}}{78}
\entry {\code {SHELLOPTS}}{78}
\entry {\code {SHLVL}}{78}
\entry {\code {show-all-if-ambiguous}}{109}
\entry {\code {show-all-if-unmodified}}{110}
\entry {\code {show-mode-in-prompt}}{110}
\entry {\code {skip-completed-text}}{110}
\entry {\code {show-all-if-ambiguous}}{108}
\entry {\code {show-all-if-unmodified}}{109}
\entry {\code {show-mode-in-prompt}}{109}
\entry {\code {skip-completed-text}}{109}
\initial {T}
\entry {\code {TEXTDOMAIN}}{7}
\entry {\code {TEXTDOMAINDIR}}{7}
@@ -166,4 +175,4 @@
\initial {U}
\entry {\code {UID}}{79}
\initial {V}
\entry {\code {visible-stats}}{110}
\entry {\code {visible-stats}}{109}
+1810 -915
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+3
View File
@@ -2599,6 +2599,7 @@ execute_for_command (for_command)
loop_level++;
identifier = for_command->name->word;
line_number = for_command->line; /* for expansion error messages */
list = releaser = expand_words_no_vars (for_command->map_list);
begin_unwind_frame ("for");
@@ -4967,6 +4968,8 @@ execute_disk_command (words, redirects, command_line, pipe_in, pipe_out,
parent_return:
QUIT;
itrace("async child pid = %d", pid);
/* Make sure that the pipes are closed in the parent. */
close_pipes (pipe_in, pipe_out);
#if defined (PROCESS_SUBSTITUTION) && defined (HAVE_DEV_FD)
+4476
View File
File diff suppressed because it is too large Load Diff
+3 -4
View File
@@ -748,10 +748,9 @@ rl_redisplay ()
/* Now account for invisible characters in the current line. */
/* XXX - this assumes that the invisible characters may be split, but only
between the first and the last lines. */
temp += ((local_prompt_prefix == 0) ? ((newlines == 0) ? prompt_invis_chars_first_line
: ((newlines == prompt_lines_estimate) ? wrap_offset : prompt_invis_chars_first_line))
: ((newlines == 0) ? wrap_offset : 0));
temp += (newlines == 0) ? prompt_invis_chars_first_line
: ((newlines == prompt_lines_estimate) ? wrap_offset : prompt_invis_chars_first_line);
inv_lbreaks[++newlines] = temp;
#if defined (HANDLE_MULTIBYTE)
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0 && prompt_multibyte_chars > 0)
+13
View File
@@ -178,6 +178,7 @@ rl_do_undo ()
{
UNDO_LIST *release;
int waiting_for_begin, start, end;
HIST_ENTRY *cur, *temp;
#define TRANS(i) ((i) == -1 ? rl_point : ((i) == -2 ? rl_end : (i)))
@@ -232,6 +233,18 @@ rl_do_undo ()
release = rl_undo_list;
rl_undo_list = rl_undo_list->next;
/* If we are editing a history entry, make sure the change is replicated
in the history entry's line */
cur = current_history ();
if ((UNDO_LIST *)cur->data == release)
{
temp = replace_history_entry (where_history (), rl_line_buffer, (histdata_t)rl_undo_list);
xfree (temp->line);
FREE (temp->timestamp);
xfree (temp);
}
replace_history_data (-1, (histdata_t *)release, (histdata_t *)rl_undo_list);
xfree (release);
+353
View File
@@ -0,0 +1,353 @@
/* readline.c -- a general facility for reading lines of input
with emacs style editing and completion. */
/* Copyright (C) 1987-2012 Free Software Foundation, Inc.
This file is part of the GNU Readline Library (Readline), a library
for reading lines of text with interactive input and history editing.
Readline 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.
Readline 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 Readline. If not, see <http://www.gnu.org/licenses/>.
*/
#define READLINE_LIBRARY
#if defined (HAVE_CONFIG_H)
# include <config.h>
#endif
#include <sys/types.h>
#if defined (HAVE_UNISTD_H)
# include <unistd.h> /* for _POSIX_VERSION */
#endif /* HAVE_UNISTD_H */
#if defined (HAVE_STDLIB_H)
# include <stdlib.h>
#else
# include "ansi_stdlib.h"
#endif /* HAVE_STDLIB_H */
#include <stdio.h>
/* System-specific feature definitions and include files. */
#include "rldefs.h"
/* Some standard library routines. */
#include "readline.h"
#include "history.h"
#include "rlprivate.h"
#include "xmalloc.h"
extern void replace_history_data PARAMS((int, histdata_t *, histdata_t *));
/* Non-zero tells rl_delete_text and rl_insert_text to not add to
the undo list. */
int _rl_doing_an_undo = 0;
/* How many unclosed undo groups we currently have. */
int _rl_undo_group_level = 0;
/* The current undo list for THE_LINE. */
UNDO_LIST *rl_undo_list = (UNDO_LIST *)NULL;
/* **************************************************************** */
/* */
/* Undo, and Undoing */
/* */
/* **************************************************************** */
static UNDO_LIST *
alloc_undo_entry (what, start, end, text)
enum undo_code what;
int start, end;
char *text;
{
UNDO_LIST *temp;
temp = (UNDO_LIST *)xmalloc (sizeof (UNDO_LIST));
temp->what = what;
temp->start = start;
temp->end = end;
temp->text = text;
temp->next = (UNDO_LIST *)NULL;
return temp;
}
/* Remember how to undo something. Concatenate some undos if that
seems right. */
void
rl_add_undo (what, start, end, text)
enum undo_code what;
int start, end;
char *text;
{
UNDO_LIST *temp;
temp = alloc_undo_entry (what, start, end, text);
temp->next = rl_undo_list;
rl_undo_list = temp;
}
/* Free an UNDO_LIST */
void
_rl_free_undo_list (ul)
UNDO_LIST *ul;
{
UNDO_LIST *release;
while (ul)
{
release = ul;
ul = ul->next;
if (release->what == UNDO_DELETE)
xfree (release->text);
xfree (release);
}
}
/* Free the existing undo list. */
void
rl_free_undo_list ()
{
UNDO_LIST *release, *orig_list;
orig_list = rl_undo_list;
_rl_free_undo_list (rl_undo_list);
rl_undo_list = (UNDO_LIST *)NULL;
replace_history_data (-1, (histdata_t *)orig_list, (histdata_t *)NULL);
}
UNDO_LIST *
_rl_copy_undo_entry (entry)
UNDO_LIST *entry;
{
UNDO_LIST *new;
new = alloc_undo_entry (entry->what, entry->start, entry->end, (char *)NULL);
new->text = entry->text ? savestring (entry->text) : 0;
return new;
}
UNDO_LIST *
_rl_copy_undo_list (head)
UNDO_LIST *head;
{
UNDO_LIST *list, *new, *roving, *c;
if (head == 0)
return head;
list = head;
new = 0;
while (list)
{
c = _rl_copy_undo_entry (list);
if (new == 0)
roving = new = c;
else
{
roving->next = c;
roving = roving->next;
}
list = list->next;
}
roving->next = 0;
return new;
}
/* Undo the next thing in the list. Return 0 if there
is nothing to undo, or non-zero if there was. */
int
rl_do_undo ()
{
UNDO_LIST *release;
int waiting_for_begin, start, end;
HIST_ENTRY *cur, *temp;
#define TRANS(i) ((i) == -1 ? rl_point : ((i) == -2 ? rl_end : (i)))
start = end = waiting_for_begin = 0;
do
{
if (rl_undo_list == 0)
return (0);
_rl_doing_an_undo = 1;
RL_SETSTATE(RL_STATE_UNDOING);
/* To better support vi-mode, a start or end value of -1 means
rl_point, and a value of -2 means rl_end. */
if (rl_undo_list->what == UNDO_DELETE || rl_undo_list->what == UNDO_INSERT)
{
start = TRANS (rl_undo_list->start);
end = TRANS (rl_undo_list->end);
}
switch (rl_undo_list->what)
{
/* Undoing deletes means inserting some text. */
case UNDO_DELETE:
rl_point = start;
rl_insert_text (rl_undo_list->text);
xfree (rl_undo_list->text);
break;
/* Undoing inserts means deleting some text. */
case UNDO_INSERT:
rl_delete_text (start, end);
rl_point = start;
break;
/* Undoing an END means undoing everything 'til we get to a BEGIN. */
case UNDO_END:
waiting_for_begin++;
break;
/* Undoing a BEGIN means that we are done with this group. */
case UNDO_BEGIN:
if (waiting_for_begin)
waiting_for_begin--;
else
rl_ding ();
break;
}
_rl_doing_an_undo = 0;
RL_UNSETSTATE(RL_STATE_UNDOING);
/* If we are editing a history entry, make sure the change is replicated
in the history entry's line */
cur = current_history ();
if ((UNDO_LIST *)cur->data == rl_undo_list)
{
temp = replace_history_entry (where_history (), rl_line_buffer, (histdata_t)rl_undo_list->next);
xfree (temp->line);
FREE (temp->timestamp);
xfree (temp);
}
release = rl_undo_list;
rl_undo_list = rl_undo_list->next;
replace_history_data (-1, (histdata_t *)release, (histdata_t *)rl_undo_list);
xfree (release);
}
while (waiting_for_begin);
return (1);
}
#undef TRANS
int
_rl_fix_last_undo_of_type (type, start, end)
int type, start, end;
{
UNDO_LIST *rl;
for (rl = rl_undo_list; rl; rl = rl->next)
{
if (rl->what == type)
{
rl->start = start;
rl->end = end;
return 0;
}
}
return 1;
}
/* Begin a group. Subsequent undos are undone as an atomic operation. */
int
rl_begin_undo_group ()
{
rl_add_undo (UNDO_BEGIN, 0, 0, 0);
_rl_undo_group_level++;
return 0;
}
/* End an undo group started with rl_begin_undo_group (). */
int
rl_end_undo_group ()
{
rl_add_undo (UNDO_END, 0, 0, 0);
_rl_undo_group_level--;
return 0;
}
/* Save an undo entry for the text from START to END. */
int
rl_modifying (start, end)
int start, end;
{
if (start > end)
{
SWAP (start, end);
}
if (start != end)
{
char *temp = rl_copy_text (start, end);
rl_begin_undo_group ();
rl_add_undo (UNDO_DELETE, start, end, temp);
rl_add_undo (UNDO_INSERT, start, end, (char *)NULL);
rl_end_undo_group ();
}
return 0;
}
/* Revert the current line to its previous state. */
int
rl_revert_line (count, key)
int count, key;
{
if (rl_undo_list == 0)
rl_ding ();
else
{
while (rl_undo_list)
rl_do_undo ();
#if defined (VI_MODE)
if (rl_editing_mode == vi_mode)
rl_point = rl_mark = 0; /* rl_end should be set correctly */
#endif
}
return 0;
}
/* Do some undoing of things that were done. */
int
rl_undo_command (count, key)
int count, key;
{
if (count < 0)
return 0; /* Nothing to do. */
while (count)
{
if (rl_do_undo ())
count--;
else
{
rl_ding ();
break;
}
}
return 0;
}
+4
View File
@@ -1430,7 +1430,10 @@ yy_readline_get ()
#if defined (JOB_CONTROL)
if (job_control)
{
itrace("yy_readline_get: give_terminal_to: %d", shell_pgrp);
give_terminal_to (shell_pgrp, 0);
}
#endif /* JOB_CONTROL */
old_sigint = (SigHandler *)IMPOSSIBLE_TRAP_HANDLER;
@@ -1440,6 +1443,7 @@ yy_readline_get ()
old_sigint = (SigHandler *)set_signal_handler (SIGINT, sigint_sighandler);
}
itrace("yy_readline_get: calling readline");
current_readline_line = readline (current_readline_prompt ?
current_readline_prompt : "");
+9668
View File
File diff suppressed because it is too large Load Diff