mirror of
https://https.git.savannah.gnu.org/git/bash.git
synced 2026-06-27 15:43:18 +02:00
fix for incomplete multibyte characters in pasted input; fix for syntax errors while entering compound assignments; fix for jobs not removing jobs from the list in a SIGCHLD trap; fix for PS0 that contains a command substitution after interactive shell reads EOF; fix for non-interactive shell reading from stdin and evaling a command that dups stdin
This commit is contained in:
@@ -6191,4 +6191,69 @@ bashline.c
|
||||
lib/readline/histexpand.c
|
||||
- history_expand: don't read past the end of the string if it ends with
|
||||
an incomplete multibyte character
|
||||
From a report by Grisha Levit <grishalevit@gmail.com>
|
||||
|
||||
5/1
|
||||
---
|
||||
lib/readline/text.c
|
||||
- _rl_insert_char: make sure to return 1 in all cases where there are
|
||||
pending bytes accumulating for a multibyte character
|
||||
- _rl_insert_char: if the COUNT argument is 0, insert any pending
|
||||
bytes read so far. The idea is that these bytes were accumulating
|
||||
to compose a possible multibyte character, and the count of 0
|
||||
indicates that the current character doesn't contribute to that
|
||||
because it's bound to an editing command.
|
||||
- rl_insert, rl_quoted_insert: make sure to call _rl_insert_char
|
||||
with a 0 count as appropriate to insert any accumulating bytes
|
||||
From a patch by Grisha Levit <grishalevit@gmail.com>
|
||||
|
||||
sig.c
|
||||
- top_level_cleanup,throw_to_top_level: set variable_context to 0, just
|
||||
to make sure
|
||||
|
||||
execute_cmd.c
|
||||
- function_misc_cleanup: new function, runs make_funcname_visible and
|
||||
unlink_fifo_list at the end of execute_function, replaces inline
|
||||
code
|
||||
- uw_function_misc_cleanup: unwind-protect function, just calls
|
||||
function_misc_cleanup. Installed by execute_function.
|
||||
Partial fix for FUNCNAME bug reported by Grisha Levit <grishalevit@gmail.com>
|
||||
- execute_builtin: run unwind-protects if evalnest exeeds max
|
||||
- execute_builtin: run unwind-protects if sourcenest exeeds max
|
||||
|
||||
parse.y
|
||||
- parse_string_to_word_list: set current_token = '\n' on error
|
||||
- parse_string_to_word_list: if we're executing and not running in
|
||||
parse_and_execute, call top_level_cleanup before we jump to the
|
||||
top level. Rest of fix for FUNCNAME bug
|
||||
- parse_compound_assignment: set last_read_token and current_token to
|
||||
'\n' on parse error. Fix for alias expansion bug reported by
|
||||
Grisha Levit <grishalevit@gmail.com>
|
||||
- parse_compound_assignment: if we're executing and not running in
|
||||
parse_and_execute, call top_level_cleanup before we jump to the
|
||||
top level
|
||||
|
||||
5/2
|
||||
---
|
||||
jobs.c
|
||||
- run_sigchld_trap: don't freeze and unfreeze the jobs list; move it
|
||||
to the callers who are running this on SIGCHLD receipt and cannot
|
||||
deal with jobs disappearing from the list while they're running
|
||||
- waitchld: if we are running the wait builtin, continue to run the
|
||||
SIGCHLD trap immediately upon signal receipt, but freeze and
|
||||
unfreeze the jobs list around the call to run_sigchld_trap().
|
||||
Fixes issue with `jobs' in a SIGCHLD trap not removing jobs from
|
||||
the jobs list reported by Guldrelokk <me@rarity.fan>
|
||||
|
||||
5/4
|
||||
---
|
||||
input.c
|
||||
- fd_to_buffered_stream: make sure buffers[fd2] is non-null before
|
||||
turning on SHAREDBUF.
|
||||
From Emanuele Torre <torreemanuele6@gmail.com>
|
||||
|
||||
eval.c
|
||||
- reader_loop: save and restore EOF_Reached around expanding $PS0,
|
||||
setting it to 0 for the expansion so it doesn't affect things like
|
||||
command substitution.
|
||||
From a report by Grisha Levit <grishalevit@gmail.com>
|
||||
|
||||
+5
-3
@@ -1205,9 +1205,11 @@ PPAARRAAMMEETTEERRSS
|
||||
_m_t_i_m_e, _a_t_i_m_e, _c_t_i_m_e, and _b_l_o_c_k_s, which sort the files on name,
|
||||
file size, modification time, access time, inode change time,
|
||||
and number of blocks, respectively. For example, a value of
|
||||
--mmttiimmee sorts the results in descending order by modification
|
||||
time (newest first). If the sort specifier is missing, it de-
|
||||
faults to _n_a_m_e, so a value of _+ is equivalent to the null
|
||||
_-_m_t_i_m_e sorts the results in descending order by modification
|
||||
time (newest first). A sort specifier of _n_o_s_o_r_t disables sort-
|
||||
ing completely; the results are returned in the order they are
|
||||
read from the file system,. If the sort specifier is missing,
|
||||
it defaults to _n_a_m_e, so a value of _+ is equivalent to the null
|
||||
string, and a value of _- sorts by name in descending order. Any
|
||||
invalid value restores the historical sorting behavior.
|
||||
HHIISSTTCCOONNTTRROOLL
|
||||
|
||||
+129
-125
@@ -5581,6 +5581,10 @@ Variables::).
|
||||
For example, a value of '-mtime' sorts the results in descending
|
||||
order by modification time (newest first).
|
||||
|
||||
A sort specifier of 'nosort' disables sorting completely; the
|
||||
results are returned in the order they are read from the file
|
||||
system,.
|
||||
|
||||
If the sort specifier is missing, it defaults to NAME, so a value
|
||||
of '+' is equivalent to the null string, and a value of '-' sorts
|
||||
by name in descending order.
|
||||
@@ -12194,57 +12198,57 @@ D.3 Parameter and Variable Index
|
||||
* FUNCNEST: Bash Variables. (line 343)
|
||||
* GLOBIGNORE: Bash Variables. (line 348)
|
||||
* GLOBSORT: Bash Variables. (line 355)
|
||||
* GROUPS: Bash Variables. (line 377)
|
||||
* histchars: Bash Variables. (line 383)
|
||||
* HISTCMD: Bash Variables. (line 398)
|
||||
* HISTCONTROL: Bash Variables. (line 404)
|
||||
* HISTFILE: Bash Variables. (line 420)
|
||||
* HISTFILESIZE: Bash Variables. (line 424)
|
||||
* HISTIGNORE: Bash Variables. (line 435)
|
||||
* GROUPS: Bash Variables. (line 381)
|
||||
* histchars: Bash Variables. (line 387)
|
||||
* HISTCMD: Bash Variables. (line 402)
|
||||
* HISTCONTROL: Bash Variables. (line 408)
|
||||
* HISTFILE: Bash Variables. (line 424)
|
||||
* HISTFILESIZE: Bash Variables. (line 428)
|
||||
* HISTIGNORE: Bash Variables. (line 439)
|
||||
* history-preserve-point: Readline Init File Syntax.
|
||||
(line 211)
|
||||
* history-size: Readline Init File Syntax.
|
||||
(line 217)
|
||||
* HISTSIZE: Bash Variables. (line 455)
|
||||
* HISTTIMEFORMAT: Bash Variables. (line 462)
|
||||
* HISTSIZE: Bash Variables. (line 459)
|
||||
* HISTTIMEFORMAT: Bash Variables. (line 466)
|
||||
* HOME: Bourne Shell Variables.
|
||||
(line 13)
|
||||
* horizontal-scroll-mode: Readline Init File Syntax.
|
||||
(line 226)
|
||||
* HOSTFILE: Bash Variables. (line 470)
|
||||
* HOSTNAME: Bash Variables. (line 481)
|
||||
* HOSTTYPE: Bash Variables. (line 484)
|
||||
* HOSTFILE: Bash Variables. (line 474)
|
||||
* HOSTNAME: Bash Variables. (line 485)
|
||||
* HOSTTYPE: Bash Variables. (line 488)
|
||||
* IFS: Bourne Shell Variables.
|
||||
(line 18)
|
||||
* IGNOREEOF: Bash Variables. (line 487)
|
||||
* IGNOREEOF: Bash Variables. (line 491)
|
||||
* input-meta: Readline Init File Syntax.
|
||||
(line 235)
|
||||
* INPUTRC: Bash Variables. (line 497)
|
||||
* INSIDE_EMACS: Bash Variables. (line 501)
|
||||
* INPUTRC: Bash Variables. (line 501)
|
||||
* INSIDE_EMACS: Bash Variables. (line 505)
|
||||
* isearch-terminators: Readline Init File Syntax.
|
||||
(line 245)
|
||||
* keymap: Readline Init File Syntax.
|
||||
(line 252)
|
||||
* LANG: Creating Internationalized Scripts.
|
||||
(line 51)
|
||||
* LANG <1>: Bash Variables. (line 507)
|
||||
* LC_ALL: Bash Variables. (line 511)
|
||||
* LC_COLLATE: Bash Variables. (line 515)
|
||||
* LC_CTYPE: Bash Variables. (line 522)
|
||||
* LANG <1>: Bash Variables. (line 511)
|
||||
* LC_ALL: Bash Variables. (line 515)
|
||||
* LC_COLLATE: Bash Variables. (line 519)
|
||||
* LC_CTYPE: Bash Variables. (line 526)
|
||||
* LC_MESSAGES: Creating Internationalized Scripts.
|
||||
(line 51)
|
||||
* LC_MESSAGES <1>: Bash Variables. (line 527)
|
||||
* LC_NUMERIC: Bash Variables. (line 531)
|
||||
* LC_TIME: Bash Variables. (line 535)
|
||||
* LINENO: Bash Variables. (line 539)
|
||||
* LINES: Bash Variables. (line 544)
|
||||
* MACHTYPE: Bash Variables. (line 550)
|
||||
* LC_MESSAGES <1>: Bash Variables. (line 531)
|
||||
* LC_NUMERIC: Bash Variables. (line 535)
|
||||
* LC_TIME: Bash Variables. (line 539)
|
||||
* LINENO: Bash Variables. (line 543)
|
||||
* LINES: Bash Variables. (line 548)
|
||||
* MACHTYPE: Bash Variables. (line 554)
|
||||
* MAIL: Bourne Shell Variables.
|
||||
(line 22)
|
||||
* MAILCHECK: Bash Variables. (line 554)
|
||||
* MAILCHECK: Bash Variables. (line 558)
|
||||
* MAILPATH: Bourne Shell Variables.
|
||||
(line 27)
|
||||
* MAPFILE: Bash Variables. (line 562)
|
||||
* MAPFILE: Bash Variables. (line 566)
|
||||
* mark-modified-lines: Readline Init File Syntax.
|
||||
(line 282)
|
||||
* mark-symlinked-directories: Readline Init File Syntax.
|
||||
@@ -12255,46 +12259,46 @@ D.3 Parameter and Variable Index
|
||||
(line 299)
|
||||
* meta-flag: Readline Init File Syntax.
|
||||
(line 235)
|
||||
* OLDPWD: Bash Variables. (line 566)
|
||||
* OLDPWD: Bash Variables. (line 570)
|
||||
* OPTARG: Bourne Shell Variables.
|
||||
(line 34)
|
||||
* OPTERR: Bash Variables. (line 569)
|
||||
* OPTERR: Bash Variables. (line 573)
|
||||
* OPTIND: Bourne Shell Variables.
|
||||
(line 38)
|
||||
* OSTYPE: Bash Variables. (line 573)
|
||||
* OSTYPE: Bash Variables. (line 577)
|
||||
* output-meta: Readline Init File Syntax.
|
||||
(line 304)
|
||||
* page-completions: Readline Init File Syntax.
|
||||
(line 312)
|
||||
* PATH: Bourne Shell Variables.
|
||||
(line 42)
|
||||
* PIPESTATUS: Bash Variables. (line 576)
|
||||
* POSIXLY_CORRECT: Bash Variables. (line 581)
|
||||
* PPID: Bash Variables. (line 591)
|
||||
* PROMPT_COMMAND: Bash Variables. (line 595)
|
||||
* PROMPT_DIRTRIM: Bash Variables. (line 601)
|
||||
* PS0: Bash Variables. (line 607)
|
||||
* PIPESTATUS: Bash Variables. (line 580)
|
||||
* POSIXLY_CORRECT: Bash Variables. (line 585)
|
||||
* PPID: Bash Variables. (line 595)
|
||||
* PROMPT_COMMAND: Bash Variables. (line 599)
|
||||
* PROMPT_DIRTRIM: Bash Variables. (line 605)
|
||||
* PS0: Bash Variables. (line 611)
|
||||
* PS1: Bourne Shell Variables.
|
||||
(line 48)
|
||||
* PS2: Bourne Shell Variables.
|
||||
(line 53)
|
||||
* PS3: Bash Variables. (line 612)
|
||||
* PS4: Bash Variables. (line 617)
|
||||
* PWD: Bash Variables. (line 625)
|
||||
* RANDOM: Bash Variables. (line 628)
|
||||
* READLINE_ARGUMENT: Bash Variables. (line 634)
|
||||
* READLINE_LINE: Bash Variables. (line 638)
|
||||
* READLINE_MARK: Bash Variables. (line 642)
|
||||
* READLINE_POINT: Bash Variables. (line 648)
|
||||
* REPLY: Bash Variables. (line 652)
|
||||
* PS3: Bash Variables. (line 616)
|
||||
* PS4: Bash Variables. (line 621)
|
||||
* PWD: Bash Variables. (line 629)
|
||||
* RANDOM: Bash Variables. (line 632)
|
||||
* READLINE_ARGUMENT: Bash Variables. (line 638)
|
||||
* READLINE_LINE: Bash Variables. (line 642)
|
||||
* READLINE_MARK: Bash Variables. (line 646)
|
||||
* READLINE_POINT: Bash Variables. (line 652)
|
||||
* REPLY: Bash Variables. (line 656)
|
||||
* revert-all-at-newline: Readline Init File Syntax.
|
||||
(line 322)
|
||||
* search-ignore-case: Readline Init File Syntax.
|
||||
(line 329)
|
||||
* SECONDS: Bash Variables. (line 655)
|
||||
* SHELL: Bash Variables. (line 664)
|
||||
* SHELLOPTS: Bash Variables. (line 669)
|
||||
* SHLVL: Bash Variables. (line 678)
|
||||
* SECONDS: Bash Variables. (line 659)
|
||||
* SHELL: Bash Variables. (line 668)
|
||||
* SHELLOPTS: Bash Variables. (line 673)
|
||||
* SHLVL: Bash Variables. (line 682)
|
||||
* show-all-if-ambiguous: Readline Init File Syntax.
|
||||
(line 334)
|
||||
* show-all-if-unmodified: Readline Init File Syntax.
|
||||
@@ -12303,15 +12307,15 @@ D.3 Parameter and Variable Index
|
||||
(line 349)
|
||||
* skip-completed-text: Readline Init File Syntax.
|
||||
(line 355)
|
||||
* SRANDOM: Bash Variables. (line 683)
|
||||
* SRANDOM: Bash Variables. (line 687)
|
||||
* TEXTDOMAIN: Creating Internationalized Scripts.
|
||||
(line 51)
|
||||
* TEXTDOMAINDIR: Creating Internationalized Scripts.
|
||||
(line 51)
|
||||
* TIMEFORMAT: Bash Variables. (line 692)
|
||||
* TMOUT: Bash Variables. (line 730)
|
||||
* TMPDIR: Bash Variables. (line 742)
|
||||
* UID: Bash Variables. (line 746)
|
||||
* TIMEFORMAT: Bash Variables. (line 696)
|
||||
* TMOUT: Bash Variables. (line 734)
|
||||
* TMPDIR: Bash Variables. (line 746)
|
||||
* UID: Bash Variables. (line 750)
|
||||
* vi-cmd-mode-string: Readline Init File Syntax.
|
||||
(line 368)
|
||||
* vi-ins-mode-string: Readline Init File Syntax.
|
||||
@@ -12763,77 +12767,77 @@ Node: Special Builtins220857
|
||||
Node: Shell Variables221833
|
||||
Node: Bourne Shell Variables222267
|
||||
Node: Bash Variables224368
|
||||
Node: Bash Features258281
|
||||
Node: Invoking Bash259291
|
||||
Node: Bash Startup Files265301
|
||||
Node: Interactive Shells270429
|
||||
Node: What is an Interactive Shell?270837
|
||||
Node: Is this Shell Interactive?271483
|
||||
Node: Interactive Shell Behavior272295
|
||||
Node: Bash Conditional Expressions275921
|
||||
Node: Shell Arithmetic280560
|
||||
Node: Aliases283518
|
||||
Node: Arrays286409
|
||||
Node: The Directory Stack292969
|
||||
Node: Directory Stack Builtins293750
|
||||
Node: Controlling the Prompt298007
|
||||
Node: The Restricted Shell300969
|
||||
Node: Bash POSIX Mode303576
|
||||
Node: Shell Compatibility Mode319366
|
||||
Node: Job Control327607
|
||||
Node: Job Control Basics328064
|
||||
Node: Job Control Builtins333063
|
||||
Node: Job Control Variables338855
|
||||
Node: Command Line Editing340008
|
||||
Node: Introduction and Notation341676
|
||||
Node: Readline Interaction343296
|
||||
Node: Readline Bare Essentials344484
|
||||
Node: Readline Movement Commands346270
|
||||
Node: Readline Killing Commands347227
|
||||
Node: Readline Arguments349145
|
||||
Node: Searching350186
|
||||
Node: Readline Init File352369
|
||||
Node: Readline Init File Syntax353627
|
||||
Node: Conditional Init Constructs377415
|
||||
Node: Sample Init File381608
|
||||
Node: Bindable Readline Commands384729
|
||||
Node: Commands For Moving385930
|
||||
Node: Commands For History387978
|
||||
Node: Commands For Text392969
|
||||
Node: Commands For Killing396615
|
||||
Node: Numeric Arguments399645
|
||||
Node: Commands For Completion400781
|
||||
Node: Keyboard Macros404969
|
||||
Node: Miscellaneous Commands405654
|
||||
Node: Readline vi Mode411689
|
||||
Node: Programmable Completion412593
|
||||
Node: Programmable Completion Builtins420370
|
||||
Node: A Programmable Completion Example431355
|
||||
Node: Using History Interactively436600
|
||||
Node: Bash History Facilities437281
|
||||
Node: Bash History Builtins440283
|
||||
Node: History Interaction445304
|
||||
Node: Event Designators448921
|
||||
Node: Word Designators450272
|
||||
Node: Modifiers452029
|
||||
Node: Installing Bash453834
|
||||
Node: Basic Installation454968
|
||||
Node: Compilers and Options458687
|
||||
Node: Compiling For Multiple Architectures459425
|
||||
Node: Installation Names461114
|
||||
Node: Specifying the System Type463220
|
||||
Node: Sharing Defaults463934
|
||||
Node: Operation Controls464604
|
||||
Node: Optional Features465559
|
||||
Node: Reporting Bugs476775
|
||||
Node: Major Differences From The Bourne Shell478106
|
||||
Node: GNU Free Documentation License494952
|
||||
Node: Indexes520126
|
||||
Node: Builtin Index520577
|
||||
Node: Reserved Word Index527401
|
||||
Node: Variable Index529846
|
||||
Node: Function Index546831
|
||||
Node: Concept Index560612
|
||||
Node: Bash Features258430
|
||||
Node: Invoking Bash259440
|
||||
Node: Bash Startup Files265450
|
||||
Node: Interactive Shells270578
|
||||
Node: What is an Interactive Shell?270986
|
||||
Node: Is this Shell Interactive?271632
|
||||
Node: Interactive Shell Behavior272444
|
||||
Node: Bash Conditional Expressions276070
|
||||
Node: Shell Arithmetic280709
|
||||
Node: Aliases283667
|
||||
Node: Arrays286558
|
||||
Node: The Directory Stack293118
|
||||
Node: Directory Stack Builtins293899
|
||||
Node: Controlling the Prompt298156
|
||||
Node: The Restricted Shell301118
|
||||
Node: Bash POSIX Mode303725
|
||||
Node: Shell Compatibility Mode319515
|
||||
Node: Job Control327756
|
||||
Node: Job Control Basics328213
|
||||
Node: Job Control Builtins333212
|
||||
Node: Job Control Variables339004
|
||||
Node: Command Line Editing340157
|
||||
Node: Introduction and Notation341825
|
||||
Node: Readline Interaction343445
|
||||
Node: Readline Bare Essentials344633
|
||||
Node: Readline Movement Commands346419
|
||||
Node: Readline Killing Commands347376
|
||||
Node: Readline Arguments349294
|
||||
Node: Searching350335
|
||||
Node: Readline Init File352518
|
||||
Node: Readline Init File Syntax353776
|
||||
Node: Conditional Init Constructs377564
|
||||
Node: Sample Init File381757
|
||||
Node: Bindable Readline Commands384878
|
||||
Node: Commands For Moving386079
|
||||
Node: Commands For History388127
|
||||
Node: Commands For Text393118
|
||||
Node: Commands For Killing396764
|
||||
Node: Numeric Arguments399794
|
||||
Node: Commands For Completion400930
|
||||
Node: Keyboard Macros405118
|
||||
Node: Miscellaneous Commands405803
|
||||
Node: Readline vi Mode411838
|
||||
Node: Programmable Completion412742
|
||||
Node: Programmable Completion Builtins420519
|
||||
Node: A Programmable Completion Example431504
|
||||
Node: Using History Interactively436749
|
||||
Node: Bash History Facilities437430
|
||||
Node: Bash History Builtins440432
|
||||
Node: History Interaction445453
|
||||
Node: Event Designators449070
|
||||
Node: Word Designators450421
|
||||
Node: Modifiers452178
|
||||
Node: Installing Bash453983
|
||||
Node: Basic Installation455117
|
||||
Node: Compilers and Options458836
|
||||
Node: Compiling For Multiple Architectures459574
|
||||
Node: Installation Names461263
|
||||
Node: Specifying the System Type463369
|
||||
Node: Sharing Defaults464083
|
||||
Node: Operation Controls464753
|
||||
Node: Optional Features465708
|
||||
Node: Reporting Bugs476924
|
||||
Node: Major Differences From The Bourne Shell478255
|
||||
Node: GNU Free Documentation License495101
|
||||
Node: Indexes520275
|
||||
Node: Builtin Index520726
|
||||
Node: Reserved Word Index527550
|
||||
Node: Variable Index529995
|
||||
Node: Function Index546980
|
||||
Node: Concept Index560761
|
||||
|
||||
End Tag Table
|
||||
|
||||
|
||||
+129
-125
@@ -5582,6 +5582,10 @@ Variables::).
|
||||
For example, a value of '-mtime' sorts the results in descending
|
||||
order by modification time (newest first).
|
||||
|
||||
A sort specifier of 'nosort' disables sorting completely; the
|
||||
results are returned in the order they are read from the file
|
||||
system,.
|
||||
|
||||
If the sort specifier is missing, it defaults to NAME, so a value
|
||||
of '+' is equivalent to the null string, and a value of '-' sorts
|
||||
by name in descending order.
|
||||
@@ -12195,57 +12199,57 @@ D.3 Parameter and Variable Index
|
||||
* FUNCNEST: Bash Variables. (line 343)
|
||||
* GLOBIGNORE: Bash Variables. (line 348)
|
||||
* GLOBSORT: Bash Variables. (line 355)
|
||||
* GROUPS: Bash Variables. (line 377)
|
||||
* histchars: Bash Variables. (line 383)
|
||||
* HISTCMD: Bash Variables. (line 398)
|
||||
* HISTCONTROL: Bash Variables. (line 404)
|
||||
* HISTFILE: Bash Variables. (line 420)
|
||||
* HISTFILESIZE: Bash Variables. (line 424)
|
||||
* HISTIGNORE: Bash Variables. (line 435)
|
||||
* GROUPS: Bash Variables. (line 381)
|
||||
* histchars: Bash Variables. (line 387)
|
||||
* HISTCMD: Bash Variables. (line 402)
|
||||
* HISTCONTROL: Bash Variables. (line 408)
|
||||
* HISTFILE: Bash Variables. (line 424)
|
||||
* HISTFILESIZE: Bash Variables. (line 428)
|
||||
* HISTIGNORE: Bash Variables. (line 439)
|
||||
* history-preserve-point: Readline Init File Syntax.
|
||||
(line 211)
|
||||
* history-size: Readline Init File Syntax.
|
||||
(line 217)
|
||||
* HISTSIZE: Bash Variables. (line 455)
|
||||
* HISTTIMEFORMAT: Bash Variables. (line 462)
|
||||
* HISTSIZE: Bash Variables. (line 459)
|
||||
* HISTTIMEFORMAT: Bash Variables. (line 466)
|
||||
* HOME: Bourne Shell Variables.
|
||||
(line 13)
|
||||
* horizontal-scroll-mode: Readline Init File Syntax.
|
||||
(line 226)
|
||||
* HOSTFILE: Bash Variables. (line 470)
|
||||
* HOSTNAME: Bash Variables. (line 481)
|
||||
* HOSTTYPE: Bash Variables. (line 484)
|
||||
* HOSTFILE: Bash Variables. (line 474)
|
||||
* HOSTNAME: Bash Variables. (line 485)
|
||||
* HOSTTYPE: Bash Variables. (line 488)
|
||||
* IFS: Bourne Shell Variables.
|
||||
(line 18)
|
||||
* IGNOREEOF: Bash Variables. (line 487)
|
||||
* IGNOREEOF: Bash Variables. (line 491)
|
||||
* input-meta: Readline Init File Syntax.
|
||||
(line 235)
|
||||
* INPUTRC: Bash Variables. (line 497)
|
||||
* INSIDE_EMACS: Bash Variables. (line 501)
|
||||
* INPUTRC: Bash Variables. (line 501)
|
||||
* INSIDE_EMACS: Bash Variables. (line 505)
|
||||
* isearch-terminators: Readline Init File Syntax.
|
||||
(line 245)
|
||||
* keymap: Readline Init File Syntax.
|
||||
(line 252)
|
||||
* LANG: Creating Internationalized Scripts.
|
||||
(line 51)
|
||||
* LANG <1>: Bash Variables. (line 507)
|
||||
* LC_ALL: Bash Variables. (line 511)
|
||||
* LC_COLLATE: Bash Variables. (line 515)
|
||||
* LC_CTYPE: Bash Variables. (line 522)
|
||||
* LANG <1>: Bash Variables. (line 511)
|
||||
* LC_ALL: Bash Variables. (line 515)
|
||||
* LC_COLLATE: Bash Variables. (line 519)
|
||||
* LC_CTYPE: Bash Variables. (line 526)
|
||||
* LC_MESSAGES: Creating Internationalized Scripts.
|
||||
(line 51)
|
||||
* LC_MESSAGES <1>: Bash Variables. (line 527)
|
||||
* LC_NUMERIC: Bash Variables. (line 531)
|
||||
* LC_TIME: Bash Variables. (line 535)
|
||||
* LINENO: Bash Variables. (line 539)
|
||||
* LINES: Bash Variables. (line 544)
|
||||
* MACHTYPE: Bash Variables. (line 550)
|
||||
* LC_MESSAGES <1>: Bash Variables. (line 531)
|
||||
* LC_NUMERIC: Bash Variables. (line 535)
|
||||
* LC_TIME: Bash Variables. (line 539)
|
||||
* LINENO: Bash Variables. (line 543)
|
||||
* LINES: Bash Variables. (line 548)
|
||||
* MACHTYPE: Bash Variables. (line 554)
|
||||
* MAIL: Bourne Shell Variables.
|
||||
(line 22)
|
||||
* MAILCHECK: Bash Variables. (line 554)
|
||||
* MAILCHECK: Bash Variables. (line 558)
|
||||
* MAILPATH: Bourne Shell Variables.
|
||||
(line 27)
|
||||
* MAPFILE: Bash Variables. (line 562)
|
||||
* MAPFILE: Bash Variables. (line 566)
|
||||
* mark-modified-lines: Readline Init File Syntax.
|
||||
(line 282)
|
||||
* mark-symlinked-directories: Readline Init File Syntax.
|
||||
@@ -12256,46 +12260,46 @@ D.3 Parameter and Variable Index
|
||||
(line 299)
|
||||
* meta-flag: Readline Init File Syntax.
|
||||
(line 235)
|
||||
* OLDPWD: Bash Variables. (line 566)
|
||||
* OLDPWD: Bash Variables. (line 570)
|
||||
* OPTARG: Bourne Shell Variables.
|
||||
(line 34)
|
||||
* OPTERR: Bash Variables. (line 569)
|
||||
* OPTERR: Bash Variables. (line 573)
|
||||
* OPTIND: Bourne Shell Variables.
|
||||
(line 38)
|
||||
* OSTYPE: Bash Variables. (line 573)
|
||||
* OSTYPE: Bash Variables. (line 577)
|
||||
* output-meta: Readline Init File Syntax.
|
||||
(line 304)
|
||||
* page-completions: Readline Init File Syntax.
|
||||
(line 312)
|
||||
* PATH: Bourne Shell Variables.
|
||||
(line 42)
|
||||
* PIPESTATUS: Bash Variables. (line 576)
|
||||
* POSIXLY_CORRECT: Bash Variables. (line 581)
|
||||
* PPID: Bash Variables. (line 591)
|
||||
* PROMPT_COMMAND: Bash Variables. (line 595)
|
||||
* PROMPT_DIRTRIM: Bash Variables. (line 601)
|
||||
* PS0: Bash Variables. (line 607)
|
||||
* PIPESTATUS: Bash Variables. (line 580)
|
||||
* POSIXLY_CORRECT: Bash Variables. (line 585)
|
||||
* PPID: Bash Variables. (line 595)
|
||||
* PROMPT_COMMAND: Bash Variables. (line 599)
|
||||
* PROMPT_DIRTRIM: Bash Variables. (line 605)
|
||||
* PS0: Bash Variables. (line 611)
|
||||
* PS1: Bourne Shell Variables.
|
||||
(line 48)
|
||||
* PS2: Bourne Shell Variables.
|
||||
(line 53)
|
||||
* PS3: Bash Variables. (line 612)
|
||||
* PS4: Bash Variables. (line 617)
|
||||
* PWD: Bash Variables. (line 625)
|
||||
* RANDOM: Bash Variables. (line 628)
|
||||
* READLINE_ARGUMENT: Bash Variables. (line 634)
|
||||
* READLINE_LINE: Bash Variables. (line 638)
|
||||
* READLINE_MARK: Bash Variables. (line 642)
|
||||
* READLINE_POINT: Bash Variables. (line 648)
|
||||
* REPLY: Bash Variables. (line 652)
|
||||
* PS3: Bash Variables. (line 616)
|
||||
* PS4: Bash Variables. (line 621)
|
||||
* PWD: Bash Variables. (line 629)
|
||||
* RANDOM: Bash Variables. (line 632)
|
||||
* READLINE_ARGUMENT: Bash Variables. (line 638)
|
||||
* READLINE_LINE: Bash Variables. (line 642)
|
||||
* READLINE_MARK: Bash Variables. (line 646)
|
||||
* READLINE_POINT: Bash Variables. (line 652)
|
||||
* REPLY: Bash Variables. (line 656)
|
||||
* revert-all-at-newline: Readline Init File Syntax.
|
||||
(line 322)
|
||||
* search-ignore-case: Readline Init File Syntax.
|
||||
(line 329)
|
||||
* SECONDS: Bash Variables. (line 655)
|
||||
* SHELL: Bash Variables. (line 664)
|
||||
* SHELLOPTS: Bash Variables. (line 669)
|
||||
* SHLVL: Bash Variables. (line 678)
|
||||
* SECONDS: Bash Variables. (line 659)
|
||||
* SHELL: Bash Variables. (line 668)
|
||||
* SHELLOPTS: Bash Variables. (line 673)
|
||||
* SHLVL: Bash Variables. (line 682)
|
||||
* show-all-if-ambiguous: Readline Init File Syntax.
|
||||
(line 334)
|
||||
* show-all-if-unmodified: Readline Init File Syntax.
|
||||
@@ -12304,15 +12308,15 @@ D.3 Parameter and Variable Index
|
||||
(line 349)
|
||||
* skip-completed-text: Readline Init File Syntax.
|
||||
(line 355)
|
||||
* SRANDOM: Bash Variables. (line 683)
|
||||
* SRANDOM: Bash Variables. (line 687)
|
||||
* TEXTDOMAIN: Creating Internationalized Scripts.
|
||||
(line 51)
|
||||
* TEXTDOMAINDIR: Creating Internationalized Scripts.
|
||||
(line 51)
|
||||
* TIMEFORMAT: Bash Variables. (line 692)
|
||||
* TMOUT: Bash Variables. (line 730)
|
||||
* TMPDIR: Bash Variables. (line 742)
|
||||
* UID: Bash Variables. (line 746)
|
||||
* TIMEFORMAT: Bash Variables. (line 696)
|
||||
* TMOUT: Bash Variables. (line 734)
|
||||
* TMPDIR: Bash Variables. (line 746)
|
||||
* UID: Bash Variables. (line 750)
|
||||
* vi-cmd-mode-string: Readline Init File Syntax.
|
||||
(line 368)
|
||||
* vi-ins-mode-string: Readline Init File Syntax.
|
||||
@@ -12764,77 +12768,77 @@ Node: Special Builtins221031
|
||||
Node: Shell Variables222010
|
||||
Node: Bourne Shell Variables222447
|
||||
Node: Bash Variables224551
|
||||
Node: Bash Features258467
|
||||
Node: Invoking Bash259480
|
||||
Node: Bash Startup Files265493
|
||||
Node: Interactive Shells270624
|
||||
Node: What is an Interactive Shell?271035
|
||||
Node: Is this Shell Interactive?271684
|
||||
Node: Interactive Shell Behavior272499
|
||||
Node: Bash Conditional Expressions276128
|
||||
Node: Shell Arithmetic280770
|
||||
Node: Aliases283731
|
||||
Node: Arrays286625
|
||||
Node: The Directory Stack293188
|
||||
Node: Directory Stack Builtins293972
|
||||
Node: Controlling the Prompt298232
|
||||
Node: The Restricted Shell301197
|
||||
Node: Bash POSIX Mode303807
|
||||
Node: Shell Compatibility Mode319600
|
||||
Node: Job Control327844
|
||||
Node: Job Control Basics328304
|
||||
Node: Job Control Builtins333306
|
||||
Node: Job Control Variables339101
|
||||
Node: Command Line Editing340257
|
||||
Node: Introduction and Notation341928
|
||||
Node: Readline Interaction343551
|
||||
Node: Readline Bare Essentials344742
|
||||
Node: Readline Movement Commands346531
|
||||
Node: Readline Killing Commands347491
|
||||
Node: Readline Arguments349412
|
||||
Node: Searching350456
|
||||
Node: Readline Init File352642
|
||||
Node: Readline Init File Syntax353903
|
||||
Node: Conditional Init Constructs377694
|
||||
Node: Sample Init File381890
|
||||
Node: Bindable Readline Commands385014
|
||||
Node: Commands For Moving386218
|
||||
Node: Commands For History388269
|
||||
Node: Commands For Text393263
|
||||
Node: Commands For Killing396912
|
||||
Node: Numeric Arguments399945
|
||||
Node: Commands For Completion401084
|
||||
Node: Keyboard Macros405275
|
||||
Node: Miscellaneous Commands405963
|
||||
Node: Readline vi Mode412001
|
||||
Node: Programmable Completion412908
|
||||
Node: Programmable Completion Builtins420688
|
||||
Node: A Programmable Completion Example431676
|
||||
Node: Using History Interactively436924
|
||||
Node: Bash History Facilities437608
|
||||
Node: Bash History Builtins440613
|
||||
Node: History Interaction445637
|
||||
Node: Event Designators449257
|
||||
Node: Word Designators450611
|
||||
Node: Modifiers452371
|
||||
Node: Installing Bash454179
|
||||
Node: Basic Installation455316
|
||||
Node: Compilers and Options459038
|
||||
Node: Compiling For Multiple Architectures459779
|
||||
Node: Installation Names461471
|
||||
Node: Specifying the System Type463580
|
||||
Node: Sharing Defaults464297
|
||||
Node: Operation Controls464970
|
||||
Node: Optional Features465928
|
||||
Node: Reporting Bugs477147
|
||||
Node: Major Differences From The Bourne Shell478481
|
||||
Node: GNU Free Documentation License495330
|
||||
Node: Indexes520507
|
||||
Node: Builtin Index520961
|
||||
Node: Reserved Word Index527788
|
||||
Node: Variable Index530236
|
||||
Node: Function Index547224
|
||||
Node: Concept Index561008
|
||||
Node: Bash Features258616
|
||||
Node: Invoking Bash259629
|
||||
Node: Bash Startup Files265642
|
||||
Node: Interactive Shells270773
|
||||
Node: What is an Interactive Shell?271184
|
||||
Node: Is this Shell Interactive?271833
|
||||
Node: Interactive Shell Behavior272648
|
||||
Node: Bash Conditional Expressions276277
|
||||
Node: Shell Arithmetic280919
|
||||
Node: Aliases283880
|
||||
Node: Arrays286774
|
||||
Node: The Directory Stack293337
|
||||
Node: Directory Stack Builtins294121
|
||||
Node: Controlling the Prompt298381
|
||||
Node: The Restricted Shell301346
|
||||
Node: Bash POSIX Mode303956
|
||||
Node: Shell Compatibility Mode319749
|
||||
Node: Job Control327993
|
||||
Node: Job Control Basics328453
|
||||
Node: Job Control Builtins333455
|
||||
Node: Job Control Variables339250
|
||||
Node: Command Line Editing340406
|
||||
Node: Introduction and Notation342077
|
||||
Node: Readline Interaction343700
|
||||
Node: Readline Bare Essentials344891
|
||||
Node: Readline Movement Commands346680
|
||||
Node: Readline Killing Commands347640
|
||||
Node: Readline Arguments349561
|
||||
Node: Searching350605
|
||||
Node: Readline Init File352791
|
||||
Node: Readline Init File Syntax354052
|
||||
Node: Conditional Init Constructs377843
|
||||
Node: Sample Init File382039
|
||||
Node: Bindable Readline Commands385163
|
||||
Node: Commands For Moving386367
|
||||
Node: Commands For History388418
|
||||
Node: Commands For Text393412
|
||||
Node: Commands For Killing397061
|
||||
Node: Numeric Arguments400094
|
||||
Node: Commands For Completion401233
|
||||
Node: Keyboard Macros405424
|
||||
Node: Miscellaneous Commands406112
|
||||
Node: Readline vi Mode412150
|
||||
Node: Programmable Completion413057
|
||||
Node: Programmable Completion Builtins420837
|
||||
Node: A Programmable Completion Example431825
|
||||
Node: Using History Interactively437073
|
||||
Node: Bash History Facilities437757
|
||||
Node: Bash History Builtins440762
|
||||
Node: History Interaction445786
|
||||
Node: Event Designators449406
|
||||
Node: Word Designators450760
|
||||
Node: Modifiers452520
|
||||
Node: Installing Bash454328
|
||||
Node: Basic Installation455465
|
||||
Node: Compilers and Options459187
|
||||
Node: Compiling For Multiple Architectures459928
|
||||
Node: Installation Names461620
|
||||
Node: Specifying the System Type463729
|
||||
Node: Sharing Defaults464446
|
||||
Node: Operation Controls465119
|
||||
Node: Optional Features466077
|
||||
Node: Reporting Bugs477296
|
||||
Node: Major Differences From The Bourne Shell478630
|
||||
Node: GNU Free Documentation License495479
|
||||
Node: Indexes520656
|
||||
Node: Builtin Index521110
|
||||
Node: Reserved Word Index527937
|
||||
Node: Variable Index530385
|
||||
Node: Function Index547373
|
||||
Node: Concept Index561157
|
||||
|
||||
End Tag Table
|
||||
|
||||
|
||||
@@ -153,7 +153,10 @@ reader_loop (void)
|
||||
if (interactive && ps0_prompt)
|
||||
{
|
||||
char *ps0_string;
|
||||
int old_eof;
|
||||
|
||||
old_eof = EOF_Reached;
|
||||
EOF_Reached = 0;
|
||||
ps0_string = decode_prompt_string (ps0_prompt);
|
||||
if (ps0_string && *ps0_string)
|
||||
{
|
||||
@@ -161,6 +164,7 @@ reader_loop (void)
|
||||
fflush (stderr);
|
||||
}
|
||||
free (ps0_string);
|
||||
EOF_Reached = old_eof;
|
||||
}
|
||||
|
||||
current_command_number++;
|
||||
|
||||
+25
-10
@@ -4893,8 +4893,9 @@ execute_builtin (sh_builtin_func_t *builtin, WORD_LIST *words, int flags, int su
|
||||
if (evalnest_max > 0 && evalnest >= evalnest_max)
|
||||
{
|
||||
internal_error (_("eval: maximum eval nesting level exceeded (%d)"), evalnest);
|
||||
run_unwind_protects (); /* XXX */
|
||||
evalnest = 0;
|
||||
jump_to_top_level (DISCARD);
|
||||
jump_to_top_level (DISCARD); /* XXX - cleanup? */
|
||||
}
|
||||
unwind_protect_int (evalnest);
|
||||
/* The test for subshell == 0 above doesn't make a difference */
|
||||
@@ -4905,8 +4906,9 @@ execute_builtin (sh_builtin_func_t *builtin, WORD_LIST *words, int flags, int su
|
||||
if (sourcenest_max > 0 && sourcenest >= sourcenest_max)
|
||||
{
|
||||
internal_error (_("%s: maximum source nesting level exceeded (%d)"), this_command_name, sourcenest);
|
||||
run_unwind_protects (); /* XXX */
|
||||
sourcenest = 0;
|
||||
jump_to_top_level (DISCARD);
|
||||
jump_to_top_level (DISCARD); /* XXX - cleanup? */
|
||||
}
|
||||
unwind_protect_int (sourcenest);
|
||||
/* The test for subshell == 0 above doesn't make a difference */
|
||||
@@ -4992,6 +4994,24 @@ uw_restore_funcarray_state (void *fa)
|
||||
}
|
||||
#endif
|
||||
|
||||
static void
|
||||
function_misc_cleanup (void)
|
||||
{
|
||||
if (variable_context == 0 || this_shell_function == 0)
|
||||
{
|
||||
make_funcname_visible (0);
|
||||
#if defined (PROCESS_SUBSTITUTION)
|
||||
unlink_fifo_list ();
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
uw_function_misc_cleanup (void *ignore)
|
||||
{
|
||||
function_misc_cleanup ();
|
||||
}
|
||||
|
||||
static int
|
||||
execute_function (SHELL_VAR *var, WORD_LIST *words, int flags, struct fd_bitmap *fds_to_close, int async, int subshell)
|
||||
{
|
||||
@@ -5050,6 +5070,8 @@ execute_function (SHELL_VAR *var, WORD_LIST *words, int flags, struct fd_bitmap
|
||||
local variables may cause the restore of a local declaration of
|
||||
OPTIND to force a getopts state reset. */
|
||||
add_unwind_protect (uw_maybe_restore_getopt_state, gs);
|
||||
/* This also, because pop_context has to decrement variable_context */
|
||||
add_unwind_protect (uw_function_misc_cleanup, NULL);
|
||||
add_unwind_protect (pop_context, NULL);
|
||||
unwind_protect_int (line_number);
|
||||
unwind_protect_int (line_number_for_err_trap);
|
||||
@@ -5235,14 +5257,7 @@ execute_function (SHELL_VAR *var, WORD_LIST *words, int flags, struct fd_bitmap
|
||||
}
|
||||
#endif
|
||||
|
||||
if (variable_context == 0 || this_shell_function == 0)
|
||||
{
|
||||
make_funcname_visible (0);
|
||||
#if defined (PROCESS_SUBSTITUTION)
|
||||
unlink_fifo_list ();
|
||||
#endif
|
||||
}
|
||||
|
||||
function_misc_cleanup ();
|
||||
return (result);
|
||||
}
|
||||
|
||||
|
||||
@@ -359,7 +359,7 @@ duplicate_buffered_stream (int fd1, int fd2)
|
||||
buffers[fd2]->b_flag |= B_WASBASHINPUT;
|
||||
}
|
||||
|
||||
if (fd_is_bash_input (fd1) || (buffers[fd1] && (buffers[fd1]->b_flag & B_SHAREDBUF)))
|
||||
if (buffers[fd2] && (fd_is_bash_input (fd1) || (buffers[fd1] && (buffers[fd1]->b_flag & B_SHAREDBUF))))
|
||||
buffers[fd2]->b_flag |= B_SHAREDBUF;
|
||||
|
||||
return (fd2);
|
||||
|
||||
@@ -3900,7 +3900,13 @@ itrace("waitchld: waitpid returns %d block = %d children_exited = %d", pid, bloc
|
||||
else if (running_trap)
|
||||
queue_sigchld_trap (children_exited);
|
||||
else if (this_shell_builtin == wait_builtin)
|
||||
run_sigchld_trap (children_exited); /* XXX */
|
||||
{
|
||||
int o;
|
||||
o = jobs_list_frozen;
|
||||
jobs_list_frozen = 1;
|
||||
run_sigchld_trap (children_exited); /* XXX */
|
||||
jobs_list_frozen = o;
|
||||
}
|
||||
else
|
||||
queue_sigchld_trap (children_exited);
|
||||
}
|
||||
@@ -4158,7 +4164,6 @@ run_sigchld_trap (int nchild)
|
||||
running_trap = SIGCHLD + 1;
|
||||
|
||||
set_impossible_sigchld_trap ();
|
||||
jobs_list_frozen = 1;
|
||||
for (i = 0; i < nchild; i++)
|
||||
{
|
||||
parse_and_execute (savestring (trap_command), "trap", SEVAL_NOHIST|SEVAL_RESETLINE|SEVAL_NOOPTIMIZE);
|
||||
@@ -4869,10 +4874,14 @@ freeze_jobs_list (void)
|
||||
return o;
|
||||
}
|
||||
|
||||
void
|
||||
int
|
||||
unfreeze_jobs_list (void)
|
||||
{
|
||||
int o;
|
||||
|
||||
o = jobs_list_frozen;
|
||||
jobs_list_frozen = 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
void
|
||||
@@ -4881,6 +4890,12 @@ set_jobs_list_frozen (int s)
|
||||
jobs_list_frozen = s;
|
||||
}
|
||||
|
||||
int
|
||||
jobs_list_frozen_status (void)
|
||||
{
|
||||
return jobs_list_frozen;
|
||||
}
|
||||
|
||||
/* Allow or disallow job control to take place. Returns the old value
|
||||
of job_control. */
|
||||
int
|
||||
|
||||
@@ -297,8 +297,9 @@ extern int give_terminal_to (pid_t, int);
|
||||
extern void run_sigchld_trap (int);
|
||||
|
||||
extern int freeze_jobs_list (void);
|
||||
extern void unfreeze_jobs_list (void);
|
||||
extern int unfreeze_jobs_list (void);
|
||||
extern void set_jobs_list_frozen (int);
|
||||
extern int jobs_list_frozen_status (void);
|
||||
extern int set_job_control (int);
|
||||
extern void without_job_control (void);
|
||||
extern void end_job_control (void);
|
||||
|
||||
+47
-13
@@ -85,7 +85,8 @@ int _rl_optimize_typeahead = 1; /* rl_insert tries to read typeahead */
|
||||
int
|
||||
rl_insert_text (const char *string)
|
||||
{
|
||||
register int i, l;
|
||||
register int i;
|
||||
size_t l;
|
||||
|
||||
l = (string && *string) ? strlen (string) : 0;
|
||||
if (l == 0)
|
||||
@@ -704,7 +705,11 @@ static mbstate_t ps = {0};
|
||||
|
||||
/* Insert the character C at the current location, moving point forward.
|
||||
If C introduces a multibyte sequence, we read the whole sequence and
|
||||
then insert the multibyte char into the line buffer. */
|
||||
then insert the multibyte char into the line buffer.
|
||||
If C == 0, we immediately insert any pending partial multibyte character,
|
||||
assuming that we have read a character that doesn't map to self-insert.
|
||||
This doesn't completely handle characters that are part of a multibyte
|
||||
character but map to editing functions. */
|
||||
int
|
||||
_rl_insert_char (int count, int c)
|
||||
{
|
||||
@@ -718,11 +723,28 @@ _rl_insert_char (int count, int c)
|
||||
static int stored_count = 0;
|
||||
#endif
|
||||
|
||||
#if !defined (HANDLE_MULTIBYTE)
|
||||
if (count <= 0)
|
||||
return 0;
|
||||
#else
|
||||
if (count < 0)
|
||||
return 0;
|
||||
if (count == 0)
|
||||
{
|
||||
if (pending_bytes_length == 0)
|
||||
return 0;
|
||||
if (stored_count <= 0)
|
||||
stored_count = count;
|
||||
else
|
||||
count = stored_count;
|
||||
|
||||
#if defined (HANDLE_MULTIBYTE)
|
||||
if (MB_CUR_MAX == 1 || rl_byte_oriented)
|
||||
memcpy (incoming, pending_bytes, pending_bytes_length);
|
||||
incoming[pending_bytes_length] = '\0';
|
||||
incoming_length = pending_bytes_length;
|
||||
pending_bytes_length = 0;
|
||||
memset (&ps, 0, sizeof (mbstate_t));
|
||||
}
|
||||
else if (MB_CUR_MAX == 1 || rl_byte_oriented)
|
||||
{
|
||||
incoming[0] = c;
|
||||
incoming[1] = '\0';
|
||||
@@ -730,6 +752,9 @@ _rl_insert_char (int count, int c)
|
||||
}
|
||||
else if (_rl_utf8locale && (c & 0x80) == 0)
|
||||
{
|
||||
if (pending_bytes_length)
|
||||
_rl_insert_char (0, 0);
|
||||
|
||||
incoming[0] = c;
|
||||
incoming[1] = '\0';
|
||||
incoming_length = 1;
|
||||
@@ -764,7 +789,8 @@ _rl_insert_char (int count, int c)
|
||||
incoming[1] = '\0';
|
||||
incoming_length = 1;
|
||||
pending_bytes_length--;
|
||||
memmove (pending_bytes, pending_bytes + 1, pending_bytes_length);
|
||||
if (pending_bytes_length)
|
||||
memmove (pending_bytes, pending_bytes + 1, pending_bytes_length);
|
||||
/* Clear the state of the byte sequence, because in this case the
|
||||
effect of mbstate is undefined. */
|
||||
memset (&ps, 0, sizeof (mbstate_t));
|
||||
@@ -827,7 +853,7 @@ _rl_insert_char (int count, int c)
|
||||
rl_insert_text (string);
|
||||
xfree (string);
|
||||
|
||||
return 0;
|
||||
return (pending_bytes_length != 0);
|
||||
}
|
||||
|
||||
if (count > TEXT_COUNT_MAX)
|
||||
@@ -860,6 +886,8 @@ _rl_insert_char (int count, int c)
|
||||
xfree (string);
|
||||
incoming_length = 0;
|
||||
stored_count = 0;
|
||||
|
||||
return (pending_bytes_length != 0);
|
||||
#else /* !HANDLE_MULTIBYTE */
|
||||
char str[TEXT_COUNT_MAX+1];
|
||||
|
||||
@@ -873,9 +901,9 @@ _rl_insert_char (int count, int c)
|
||||
rl_insert_text (str);
|
||||
count -= decreaser;
|
||||
}
|
||||
#endif /* !HANDLE_MULTIBYTE */
|
||||
|
||||
return 0;
|
||||
#endif /* !HANDLE_MULTIBYTE */
|
||||
}
|
||||
|
||||
if (MB_CUR_MAX == 1 || rl_byte_oriented)
|
||||
@@ -903,9 +931,11 @@ _rl_insert_char (int count, int c)
|
||||
rl_insert_text (incoming);
|
||||
stored_count = 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
return (pending_bytes_length != 0);
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
/* Overwrite the character at point (or next COUNT characters) with C.
|
||||
@@ -985,6 +1015,8 @@ rl_insert (int count, int c)
|
||||
|
||||
/* If we didn't insert n and there are pending bytes, we need to insert
|
||||
them if _rl_insert_char didn't do that on its own. */
|
||||
if (r == 1 && rl_insert_mode == RL_IM_INSERT)
|
||||
r = _rl_insert_char (0, 0); /* flush partial multibyte char */
|
||||
|
||||
if (n != (unsigned short)-2) /* -2 = sentinel value for having inserted N */
|
||||
{
|
||||
@@ -1056,6 +1088,8 @@ _rl_insert_next_callback (_rl_callback_generic_arg *data)
|
||||
int
|
||||
rl_quoted_insert (int count, int key)
|
||||
{
|
||||
int r;
|
||||
|
||||
/* Let's see...should the callback interface futz with signal handling? */
|
||||
#if defined (HANDLE_SIGNALS)
|
||||
if (RL_ISSTATE (RL_STATE_CALLBACK) == 0)
|
||||
@@ -1074,15 +1108,15 @@ rl_quoted_insert (int count, int key)
|
||||
/* A negative count means to quote the next -COUNT characters. */
|
||||
if (count < 0)
|
||||
{
|
||||
int r;
|
||||
|
||||
do
|
||||
r = _rl_insert_next (1);
|
||||
while (r == 0 && ++count < 0);
|
||||
return r;
|
||||
}
|
||||
|
||||
return _rl_insert_next (count);
|
||||
if (r == 1)
|
||||
_rl_insert_char (0, 0); /* insert partial multibyte character */
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
/* Insert a tab character. */
|
||||
|
||||
@@ -20,6 +20,9 @@
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#if defined (HAVE_UNISTD_H)
|
||||
# include <unistd.h>
|
||||
#endif
|
||||
#include <bashansi.h>
|
||||
|
||||
ssize_t
|
||||
|
||||
@@ -1016,9 +1016,10 @@ freeze_jobs_list (void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
void
|
||||
int
|
||||
unfreeze_jobs_list (void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
void
|
||||
@@ -1026,6 +1027,12 @@ set_jobs_list_frozen (int s)
|
||||
{
|
||||
}
|
||||
|
||||
int
|
||||
jobs_list_frozen_status (void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
count_all_jobs (void)
|
||||
{
|
||||
|
||||
@@ -6683,10 +6683,15 @@ parse_string_to_word_list (char *s, int flags, const char *whom)
|
||||
if (wl == &parse_string_error)
|
||||
{
|
||||
set_exit_status (EXECUTION_FAILURE);
|
||||
current_token = '\n'; /* XXX */
|
||||
if (interactive_shell == 0 && posixly_correct)
|
||||
jump_to_top_level (FORCE_EOF);
|
||||
else
|
||||
jump_to_top_level (DISCARD);
|
||||
{
|
||||
if (executing && parse_and_execute_level == 0)
|
||||
top_level_cleanup ();
|
||||
jump_to_top_level (DISCARD);
|
||||
}
|
||||
}
|
||||
|
||||
return (REVERSE_LIST (wl, WORD_LIST *));
|
||||
@@ -6749,11 +6754,15 @@ parse_compound_assignment (size_t *retlenp)
|
||||
if (wl == &parse_string_error)
|
||||
{
|
||||
set_exit_status (EXECUTION_FAILURE);
|
||||
last_read_token = '\n'; /* XXX */
|
||||
last_read_token = current_token = '\n'; /* XXX */
|
||||
if (interactive_shell == 0 && posixly_correct)
|
||||
jump_to_top_level (FORCE_EOF);
|
||||
else
|
||||
jump_to_top_level (DISCARD);
|
||||
{
|
||||
if (executing && parse_and_execute_level == 0)
|
||||
top_level_cleanup ();
|
||||
jump_to_top_level (DISCARD);
|
||||
}
|
||||
}
|
||||
|
||||
if (wl)
|
||||
|
||||
@@ -9,7 +9,7 @@ msgstr ""
|
||||
"Project-Id-Version: bash-5.2-rc1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2022-01-11 14:50-0500\n"
|
||||
"PO-Revision-Date: 2023-04-12 12:19-0700\n"
|
||||
"PO-Revision-Date: 2023-05-01 16:11-0700\n"
|
||||
"Last-Translator: Božidar Putanec <bozidarp@yahoo.com>\n"
|
||||
"Language-Team: Croatian <lokalizacija@linux.hr>\n"
|
||||
"Language: hr\n"
|
||||
@@ -1731,12 +1731,12 @@ msgid ""
|
||||
"Usage:\t%s [GNU long option] [option] ...\n"
|
||||
"\t%s [GNU long option] [option] script-file ...\n"
|
||||
msgstr ""
|
||||
"Uporaba: %s [GNU dugačka opcija] [opcija]...\n"
|
||||
" %s [GNU dugačka opcija] [opcija] skripta...\n"
|
||||
"Uporaba: %s [GNU duga opcija] [opcija]...\n"
|
||||
" %s [GNU duga opcija] [opcija] skripta...\n"
|
||||
|
||||
#: shell.c:2064
|
||||
msgid "GNU long options:\n"
|
||||
msgstr "GNU dugačke opcije:\n"
|
||||
msgstr "GNU duge opcije:\n"
|
||||
|
||||
#: shell.c:2068
|
||||
msgid "Shell options:\n"
|
||||
@@ -2810,10 +2810,10 @@ msgstr ""
|
||||
" naziv, „cd“ prijeđe u direktorij s tim nazivom.\n"
|
||||
"\n"
|
||||
" Opcije:\n"
|
||||
" -L slijedi simboličke veze; simboličke veze u DIREKTORIJU razriješi\n"
|
||||
" -L slijedi simboličke poveznice; simboličke poveznice u DIREKTORIJU razriješi\n"
|
||||
" nakon obrade instance „..“\n"
|
||||
" -P rabi fizičku strukturu direktorija umjesto da slijedi simboličke\n"
|
||||
" veze; simboličke veze u DIREKTORIJU razriješi prije obrade\n"
|
||||
" poveznice; simboličke poveznice u DIREKTORIJU razriješi prije obrade\n"
|
||||
" instance „..“\n"
|
||||
" -e ako je dana s opcijom „-P“, i trenutni radni direktorij nije\n"
|
||||
" moguće uspješno odrediti nakon uspješne promjene direktorija,\n"
|
||||
@@ -2849,7 +2849,7 @@ msgstr ""
|
||||
"\n"
|
||||
" Opcije:\n"
|
||||
" -L ispiše vrijednost od $PWD ako sadrži trenutni radni direktorij\n"
|
||||
" -P ispiše stvarnu fizičku stazu do direktorija bez simboličkih veza\n"
|
||||
" -P ispiše stvarnu fizičku stazu do direktorija bez simboličkih poveznica\n"
|
||||
"\n"
|
||||
" Bez opcija, „pwd“ se ponaša kao da je navedena opcija „-L“\n"
|
||||
"\n"
|
||||
@@ -3947,8 +3947,8 @@ msgstr ""
|
||||
" (a ne samo one argumente koji prethode imenu naredbe)\n"
|
||||
" -m upravljanje poslovima je omogućeno (zadano)\n"
|
||||
" -n pročita, ali ne izvrši naredbe\n"
|
||||
" -o IME_OPCIJE omogući tu opciju (v. niže dugačke nazive za IME_OPCIJE)\n"
|
||||
" -P ne razriješi simboličke veze pri izvršavanju naredbi poput „cd“\n"
|
||||
" -o IME_OPCIJE omogući tu opciju (v. niže duge nazive za IME_OPCIJE)\n"
|
||||
" -P ne razriješi simboličke poveznice pri izvršavanju naredbi poput „cd“\n"
|
||||
" koje promjene trenutni direktorij\n"
|
||||
" -p uključi privilegirani način: datoteke BASH_ENV i ENV se zanemare,\n"
|
||||
" funkcije ljuske se ne uvoze iz okoline, a zanemari se i\n"
|
||||
@@ -3966,11 +3966,11 @@ msgstr ""
|
||||
" parametri (ali ako ih nema, postojeći pozicijski argumenti\n"
|
||||
" se ne brišu)\n"
|
||||
"\n"
|
||||
" Opcije se također mogu koristiti pri pokretanju ljuske. Trenutno stanje\n"
|
||||
" Opcije se mogu koristiti i pri pokretanju ljuske. Trenutno stanje\n"
|
||||
" svojstva može se naći u $-. Podrazumijeva se da su svi dodatni argumenti\n"
|
||||
" pozicijski i dodijeljeni su u $1, $2, .. $N.\n"
|
||||
"\n"
|
||||
" Dugački nazivi za IME_OPCIJE koji se koriste s opcijom -o (ili +o)\n"
|
||||
" Dugi nazivi za IME_OPCIJE koji se koriste s opcijom -o (ili +o)\n"
|
||||
" allexport == -a\n"
|
||||
" braceexpand == -B (zamjena vitičastih zagrada)\n"
|
||||
" emacs za uređivanje redaka koristi sučelje u „emacs“ stilu\n"
|
||||
@@ -4272,9 +4272,9 @@ msgstr ""
|
||||
" -f DATOTEKA istina ako je datoteka regularna datoteka\n"
|
||||
" -G DATOTEKA istina ako je datoteka efektivno vlasništvo vaše skupine\n"
|
||||
" -g DATOTEKA istina ako je datoteka SETGUID\n"
|
||||
" -h DATOTEKA istina ako je datoteka simbolička veza\n"
|
||||
" -h DATOTEKA istina ako je datoteka simbolička poveznica\n"
|
||||
" -k DATOTEKA istina ako datoteka ima postavljeni \"sticky\" bit\n"
|
||||
" -L DATOTEKA istina ako je datoteka simbolička veza\n"
|
||||
" -L DATOTEKA istina ako je datoteka simbolička poveznica\n"
|
||||
" -N DATOTEKA istina ako se datoteka promijenila od zadnjeg čitanja\n"
|
||||
" -O DATOTEKA istina ako je datoteka efektivno vaše vlasništvo\n"
|
||||
" -p DATOTEKA istina ako je datoteka imenovana cijev\n"
|
||||
@@ -4290,7 +4290,7 @@ msgstr ""
|
||||
" kasnije od druge\n"
|
||||
" DTEKA1 -ot DTEKA2 istina ako je prva datoteka promijenjena\n"
|
||||
" ranije od druge\n"
|
||||
" DTEKA1 -ef DTEKA2 istina ako je prva datoteka čvrsta veza na drugu\n"
|
||||
" DTEKA1 -ef DTEKA2 istina ako je prva datoteka čvrsta poveznica na drugu\n"
|
||||
"\n"
|
||||
" Operatori za stringove:\n"
|
||||
" -z STRING istina ako je string prazni\n"
|
||||
@@ -5270,7 +5270,7 @@ msgstr ""
|
||||
" -u onemogući (isključi) sve navedene IME_OPCIJE\n"
|
||||
"\n"
|
||||
" Bez opcija (ili samo s opcijom „-q“) završi s uspjehom ako je IME_OPCIJE\n"
|
||||
" omogućeno, a s 1 ako je onemogućeno. Završi također s 1 ako je dano\n"
|
||||
" omogućeno, a s 1 ako je onemogućeno. Završi s 1 i ako je dano\n"
|
||||
" nevaljano IME_OPCIJE, a završi s 2 ako je dana nevaljana opcija."
|
||||
|
||||
#: builtins.c:1938
|
||||
|
||||
@@ -398,6 +398,7 @@ top_level_cleanup (void)
|
||||
loop_level = continuing = breaking = funcnest = 0;
|
||||
interrupt_execution = retain_fifos = 0;
|
||||
comsub_ignore_return = return_catch_flag = wait_intr_flag = 0;
|
||||
variable_context = 0; /* XXX */
|
||||
}
|
||||
|
||||
/* What to do when we've been interrupted, and it is safe to handle it. */
|
||||
@@ -465,6 +466,7 @@ throw_to_top_level (void)
|
||||
loop_level = continuing = breaking = funcnest = 0;
|
||||
interrupt_execution = retain_fifos = 0;
|
||||
comsub_ignore_return = return_catch_flag = wait_intr_flag = 0;
|
||||
variable_context = 0;
|
||||
|
||||
if (interactive && print_newline)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user