Subject: bug#52947: 29.0.50; Newline in tab-bar-format causes lockup

From: Eli Zaretskii <[email-masked]>
Date: Sun, 02 Jan 2022 20:25:08 +0200

> From: Juri Linkov <[email-masked]>
> Date: Sun, 02 Jan 2022 19:47:14 +0200
> Cc: [email-masked]
> 
> > #+begin_src emacs-lisp
> >   (defun broken-tab-bar-format ()
> >     (let* ((str (format "%s \n %s"
> >                         "foo" "bar")))
> >       `((global menu-item ,(s-trim str) ignore))))
> 
> This also can be reproduced without s-trim, with just:
> 
>        `((global menu-item ,str ignore))))
> 
> >   (progn
> >     (setq tab-bar-format '(tab-bar-format-align-right
> > broken-tab-bar-format))
> >     (tab-bar-mode 1))
> > #+end_src
> >
> > Emacs will lockup and spin the core it's on.
> 
> If the display engine doesn't support newlines in the
> menu-bar/tool-bar/tab-bar, then we could simply remove newlines
> before feeding the tab-bar items to the display engine.

Do we want to support newlines there? what would be the purpose of
having newlines in the tabs?

Also, you say "display engine", so does it mean you've found where we
infloop with these recipes?  If so, can you tell the details?

Thanks.