All of lore.kernel.org
 help / color / mirror / Atom feed
* [OE-core][PATCH] bash: Disable bracketed input by default
@ 2021-02-04 21:38 Joshua Watt
  2021-02-05  1:48 ` Randy MacLeod
  0 siblings, 1 reply; 2+ messages in thread
From: Joshua Watt @ 2021-02-04 21:38 UTC (permalink / raw)
  To: openembedded-core; +Cc: Joshua Watt

Bash 5.1 enabled bracketed input mode by default, but this causes a lot
of problems with automated testing as it can inject a lot of control
sequences into non-interactive output. Disable it to cleanup the output
an preserve the pre-5.1 behavior

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
---
 meta/recipes-extended/bash/bash.inc | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/meta/recipes-extended/bash/bash.inc b/meta/recipes-extended/bash/bash.inc
index bc737acd63..db326660ea 100644
--- a/meta/recipes-extended/bash/bash.inc
+++ b/meta/recipes-extended/bash/bash.inc
@@ -17,6 +17,10 @@ CFLAGS += "-DNON_INTERACTIVE_LOGIN_SHELLS"
 # This can vary depending upon the host
 CFLAGS += "-DHEREDOC_PIPESIZE=65536"
 
+# Disable bracketed paste mode by default (enabled by default in bash 5.1). It
+# causes a lot of garbage in non-interactive shells
+CFLAGS += "-DBRACKETED_PASTE_DEFAULT=0"
+
 ALTERNATIVE_${PN} = "bash sh"
 ALTERNATIVE_LINK_NAME[bash] = "${base_bindir}/bash"
 ALTERNATIVE_TARGET[bash] = "${base_bindir}/bash"
-- 
2.30.0


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [OE-core][PATCH] bash: Disable bracketed input by default
  2021-02-04 21:38 [OE-core][PATCH] bash: Disable bracketed input by default Joshua Watt
@ 2021-02-05  1:48 ` Randy MacLeod
  0 siblings, 0 replies; 2+ messages in thread
From: Randy MacLeod @ 2021-02-05  1:48 UTC (permalink / raw)
  To: Joshua Watt, openembedded-core

On 2021-02-04 4:38 p.m., Joshua Watt wrote:
> Bash 5.1 enabled bracketed input mode by default, but this causes a lot
> of problems with automated testing as it can inject a lot of control
> sequences into non-interactive output. Disable it to cleanup the output
> an preserve the pre-5.1 behavior
> 
> Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
> ---
>   meta/recipes-extended/bash/bash.inc | 4 ++++
>   1 file changed, 4 insertions(+)
> 
> diff --git a/meta/recipes-extended/bash/bash.inc b/meta/recipes-extended/bash/bash.inc
> index bc737acd63..db326660ea 100644
> --- a/meta/recipes-extended/bash/bash.inc
> +++ b/meta/recipes-extended/bash/bash.inc
> @@ -17,6 +17,10 @@ CFLAGS += "-DNON_INTERACTIVE_LOGIN_SHELLS"
>   # This can vary depending upon the host
>   CFLAGS += "-DHEREDOC_PIPESIZE=65536"
>   
> +# Disable bracketed paste mode by default (enabled by default in bash 5.1). It
> +# causes a lot of garbage in non-interactive shells
> +CFLAGS += "-DBRACKETED_PASTE_DEFAULT=0"
> +

Reverting default upstream behaviour seems dodgy but in this case the 
feature is marked as experimental (see below) so I think it's fine.

See:
https://git.savannah.gnu.org/cgit/bash.git/commit/?id=8868edaf2
and search for:
   +int _rl_enable_bracketed_paste = BRACKETED_PASTE_DEFAULT;
and then
_rl_enable_bracketed_paste

(patch section shown below)


Joshua,
Will you ask that upstream turns this off by default?


../Randy



Sorry for the line wrapping:

+    case ESC:
+      /* XXX - experimental code to allow users to bracketed-paste into the
+        search string. Similar code is in isearch.c:_rl_isearch_dispatch().
+        The difference here is that the bracketed paste sometimes doesn't
+        paste everything, so checking for the prefix and the suffix in the
+        input queue doesn't work well. We just have to check to see if the
+        number of chars in the input queue is enough for the bracketed 
paste
+        prefix and hope for the best. */
+      if (_rl_enable_bracketed_paste && ((n = _rl_nchars_available ()) 
 >= (BRACK_PASTE_SLEN-1)))
+       {
+         if (_rl_read_bracketed_paste_prefix (c) == 1)
+           rl_bracketed_paste_begin (1, c);
+         else
+           {
+             c = rl_read_key ();       /* get the ESC that got pushed 
back */
+             _rl_insert_char (1, c);
+           }
+        }
+      else
+        _rl_insert_char (1, c);
+      break;
+


>   ALTERNATIVE_${PN} = "bash sh"
>   ALTERNATIVE_LINK_NAME[bash] = "${base_bindir}/bash"
>   ALTERNATIVE_TARGET[bash] = "${base_bindir}/bash"
> 
> 
> 
> 
> 


-- 
# Randy MacLeod
# Wind River Linux

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-02-05  1:48 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-02-04 21:38 [OE-core][PATCH] bash: Disable bracketed input by default Joshua Watt
2021-02-05  1:48 ` Randy MacLeod

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.