Typo in documentation (e.g. man page): 'abd' -> 'and'

2020-02-10 Thread Thomas Fischer
Hello,

I noticed a small typo in the documentation on conditional
expressions. The typo is visible in the man page bash(1), where
it says:

 The test abd [ commands determine their behavior based on

Most likely, 'abd' should be 'and' instead.

Greetings,
Thomas Fischer




Bash-5.0 Official Patch 12

2020-02-10 Thread Chet Ramey
 BASH PATCH REPORT
 =

Bash-Release:   5.0
Patch-ID:   bash50-012

Bug-Reported-by:less...@qq.com
Bug-Reference-ID:   
Bug-Reference-URL:

Bug-Description:

When using previous-history to go back beyond the beginning of the history list,
it's possible to move to an incorrect partial line.

Patch (apply with `patch -p0'):

*** ../bash-5.0-patched/lib/readline/misc.c 2017-07-07 17:30:12.0 
-0400
--- lib/readline/misc.c 2019-05-16 11:43:46.0 -0400
***
*** 577,580 
--- 590,594 
  {
HIST_ENTRY *old_temp, *temp;
+   int had_saved_line;
  
if (count < 0)
***
*** 589,592 
--- 603,607 
  
/* If we don't have a line saved, then save this one. */
+   had_saved_line = _rl_saved_line_for_history != 0;
rl_maybe_save_line ();
  
***
*** 612,616 
if (temp == 0)
  {
!   rl_maybe_unsave_line ();
rl_ding ();
  }
--- 627,632 
if (temp == 0)
  {
!   if (had_saved_line == 0)
! _rl_free_saved_history_line ();
rl_ding ();
  }
*** ../bash-5.0/patchlevel.h2016-06-22 14:51:03.0 -0400
--- patchlevel.h2016-10-01 11:01:28.0 -0400
***
*** 26,30 
 looks for to find the patch level (for the sccs version string). */
  
! #define PATCHLEVEL 11
  
  #endif /* _PATCHLEVEL_H_ */
--- 26,30 
 looks for to find the patch level (for the sccs version string). */
  
! #define PATCHLEVEL 12
  
  #endif /* _PATCHLEVEL_H_ */

-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, UTech, CWRUc...@case.eduhttp://tiswww.cwru.edu/~chet/



Bash-5.0 Official Patch 14

2020-02-10 Thread Chet Ramey
 BASH PATCH REPORT
 =

Bash-Release:   5.0
Patch-ID:   bash50-014

Bug-Reported-by:Johannes Hielscher 
Bug-Reference-ID:   <20190208205048.77c25a83@hordevm>
Bug-Reference-URL:  
https://lists.gnu.org/archive/html/bug-bash/2019-02/msg00032.html

Bug-Description:

If the current line is empty, using the emacs C-xC-e binding to enter the
editor will edit the previous command instead of the current (empty) one.

Patch (apply with `patch -p0'):

*** ../bash-5.0-patched/bashline.c  2019-01-16 16:13:21.0 -0500
--- bashline.c  2019-02-11 11:18:57.0 -0500
***
*** 962,970 
 finished with the command, so we should not ignore the last command */
using_history ();
!   if (rl_line_buffer[0])
!   {
! current_command_line_count++; /* for rl_newline above */
! bash_add_history (rl_line_buffer);
!   }
current_command_line_count = 0; /* for dummy history entry */
bash_add_history ("");
--- 965,970 
 finished with the command, so we should not ignore the last command */
using_history ();
!   current_command_line_count++;   /* for rl_newline above */
!   bash_add_history (rl_line_buffer);
current_command_line_count = 0; /* for dummy history entry */
bash_add_history ("");
*** ../bash-5.0/patchlevel.h2016-06-22 14:51:03.0 -0400
--- patchlevel.h2016-10-01 11:01:28.0 -0400
***
*** 26,30 
 looks for to find the patch level (for the sccs version string). */
  
! #define PATCHLEVEL 13
  
  #endif /* _PATCHLEVEL_H_ */
--- 26,30 
 looks for to find the patch level (for the sccs version string). */
  
! #define PATCHLEVEL 14
  
  #endif /* _PATCHLEVEL_H_ */

-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, UTech, CWRUc...@case.eduhttp://tiswww.cwru.edu/~chet/



Bash-5.0 Offficial Patch 13

2020-02-10 Thread Chet Ramey
 BASH PATCH REPORT
 =

Bash-Release:   5.0
Patch-ID:   bash50-013

Bug-Reported-by:HIROSE Masaaki 
Bug-Reference-ID:   

Bug-Reference-URL:  
https://lists.gnu.org/archive/html/bug-bash/2019-05/msg00038.html

Bug-Description:

Reading history entries with timestamps can result in history entries joined
by linefeeds.

Patch (apply with `patch -p0'):

*** ../bash-5.0-patched/lib/readline/histfile.c 2018-06-11 09:14:52.0 
-0400
--- lib/readline/histfile.c 2019-05-16 15:55:57.0 -0400
***
*** 370,376 
  
has_timestamps = HIST_TIMESTAMP_START (buffer);
!   history_multiline_entries += has_timestamps && history_write_timestamps;  
  
/* Skip lines until we are at FROM. */
for (line_start = line_end = buffer; line_end < bufend && current_line < 
from; line_end++)
  if (*line_end == '\n')
--- 370,378 
  
has_timestamps = HIST_TIMESTAMP_START (buffer);
!   history_multiline_entries += has_timestamps && history_write_timestamps;
  
/* Skip lines until we are at FROM. */
+   if (has_timestamps)
+ last_ts = buffer;
for (line_start = line_end = buffer; line_end < bufend && current_line < 
from; line_end++)
  if (*line_end == '\n')
***
*** 381,385 
--- 383,398 
if (HIST_TIMESTAMP_START(p) == 0)
  current_line++;
+   else
+ last_ts = p;
line_start = p;
+   /* If we are at the last line (current_line == from) but we have
+  timestamps (has_timestamps), then line_start points to the
+  text of the last command, and we need to skip to its end. */
+   if (current_line >= from && has_timestamps)
+ {
+   for (line_end = p; line_end < bufend && *line_end != '\n'; 
line_end++)
+ ;
+   line_start = (*line_end == '\n') ? line_end + 1 : line_end;
+ }
}
  

*** ../bash-5.0/patchlevel.h2016-06-22 14:51:03.0 -0400
--- patchlevel.h2016-10-01 11:01:28.0 -0400
***
*** 26,30 
 looks for to find the patch level (for the sccs version string). */
  
! #define PATCHLEVEL 12
  
  #endif /* _PATCHLEVEL_H_ */
--- 26,30 
 looks for to find the patch level (for the sccs version string). */
  
! #define PATCHLEVEL 13
  
  #endif /* _PATCHLEVEL_H_ */

-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, UTech, CWRUc...@case.eduhttp://tiswww.cwru.edu/~chet/



Bash-5.0 Official Patch 15

2020-02-10 Thread Chet Ramey
 BASH PATCH REPORT
 =

Bash-Release:   5.0
Patch-ID:   bash50-015

Bug-Reported-by:Yu Kou 
Bug-Reference-ID:   

Bug-Reference-URL:  
https://lists.gnu.org/archive/html/bug-bash/2019-05/msg00032.html

Bug-Description:

If alias expansion is enabled when processing the command argument to the
`-c' option, an alias is defined in that command, and the command ends with
the invocation of that alias, the shell's command parser can prematurely
terminate before the entire command is executed.

Patch (apply with `patch -p0'):

*** ../bash-20190426/builtins/evalstring.c  2019-01-29 14:15:19.0 
-0500
--- builtins/evalstring.c   2019-05-15 14:19:36.0 -0400
***
*** 92,95 
--- 92,96 
  running_trap == 0 &&
  *bash_input.location.string == '\0' &&
+ parser_expanding_alias () == 0 &&
  command->type == cm_simple &&
  signal_is_trapped (EXIT_TRAP) == 0 &&
***
*** 106,109 
--- 107,111 
  {
return (*bash_input.location.string == '\0' &&
+ parser_expanding_alias () == 0 &&
  (command->value.Connection->connector == AND_AND || 
command->value.Connection->connector == OR_OR || 
command->value.Connection->connector == ';') &&
  command->value.Connection->second->type == cm_simple);
***
*** 291,295 
with_input_from_string (string, from_file);
clear_shell_input_line ();
!   while (*(bash_input.location.string))
  {
command = (COMMAND *)NULL;
--- 293,297 
with_input_from_string (string, from_file);
clear_shell_input_line ();
!   while (*(bash_input.location.string) || parser_expanding_alias ())
  {
command = (COMMAND *)NULL;
***
*** 546,550 
  
with_input_from_string (string, from_file);
!   while (*(bash_input.location.string))
  {
command = (COMMAND *)NULL;
--- 548,552 
  
with_input_from_string (string, from_file);
!   while (*(bash_input.location.string))   /* XXX - 
parser_expanding_alias () ? */
  {
command = (COMMAND *)NULL;
*** ../bash-5.0/patchlevel.h2016-06-22 14:51:03.0 -0400
--- patchlevel.h2016-10-01 11:01:28.0 -0400
***
*** 26,30 
 looks for to find the patch level (for the sccs version string). */
  
! #define PATCHLEVEL 14
  
  #endif /* _PATCHLEVEL_H_ */
--- 26,30 
 looks for to find the patch level (for the sccs version string). */
  
! #define PATCHLEVEL 15
  
  #endif /* _PATCHLEVEL_H_ */

-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, UTech, CWRUc...@case.eduhttp://tiswww.cwru.edu/~chet/



Bash-5.0 Official Patch 16

2020-02-10 Thread Chet Ramey
 BASH PATCH REPORT
 =

Bash-Release:   5.0
Patch-ID:   bash50-016

Bug-Reported-by:sunnycemet...@gmail.com
Bug-Reference-ID:   <20190316041534.GB22884@midnight>
Bug-Reference-URL:  
https://lists.gnu.org/archive/html/bug-bash/2019-03/msg00070.html

Bug-Description:

Bash waits too long to reap /dev/fd process substitutions used as redirections
with loops and group commands, which can lead to file descriptor exhaustion.

Patch (apply with `patch -p0'):

*** ../bash-5.0-patched/execute_cmd.c   2019-04-19 15:46:36.0 -0400
--- execute_cmd.c   2019-07-01 16:45:49.0 -0400
***
*** 1104,1107 
--- 1085,1104 
discard_unwind_frame ("internal_fifos");
  }
+ # if defined (HAVE_DEV_FD)
+   /* Reap process substitutions at the end of loops */
+   switch (command->type)
+ {
+ case cm_while:
+ case cm_until:
+ case cm_for:
+ case cm_group:
+ #if defined (ARITH_FOR_COMMAND)
+ case cm_arith_for:
+ #endif
+   reap_procsubs ();
+ default:
+   break;
+ }
+ #  endif /* HAVE_DEV_FD */
  #endif
  

*** ../bash-5.0/patchlevel.h2016-06-22 14:51:03.0 -0400
--- patchlevel.h2016-10-01 11:01:28.0 -0400
***
*** 26,30 
 looks for to find the patch level (for the sccs version string). */
  
! #define PATCHLEVEL 15
  
  #endif /* _PATCHLEVEL_H_ */
--- 26,30 
 looks for to find the patch level (for the sccs version string). */
  
! #define PATCHLEVEL 16
  
  #endif /* _PATCHLEVEL_H_ */

-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, UTech, CWRUc...@case.eduhttp://tiswww.cwru.edu/~chet/