On 27 March 2023 01:35:39 CEST, ToddAndMargo via perl6-users
<perl6-users@perl.org> wrote:
Hi All,
Fedora 36
zenity-3.43.0-3.fc37.x86_64
rakudo-pkg-2022.7.0-03.x86_64
My adventure with a zenity call!
I just worked around a problem with a call to zenity:
Note: zenity can not resolve Raku's "\n", so you have to
preformat the "text" field with "sprintf".
$NotifyStr = sprintf "\nStarting $ProgramName\n\nTakes about $Timeout seconds to
finish compiling\nMozilla Mirror = <$MozillaMirror>\n";
The above gave me "All updates are complete" in the text
field. Hmmmmmmmm. I do goof a lot of stuff up (who me????)
but I am "pretty sure" I did not tell zenity that.
I did a direct print of $NotifyStr to the command
line to make sure anyway.
I traced it down to the "<" and ">".
Separating the "<" and ">" with `~ ">" ~` in the string
did not help.
Taking out the "<" and ">" got rid of the problem. Not
as pretty, but it will due.
$NotifyStr = sprintf "\nStarting $ProgramName\n\nTakes about $Timeout seconds to
finish compiling\nMozilla Mirror = $MozillaMirror\n";
The zenity call:
shell "zenity --info --title \"$Title\" --text \"$NotifyStr\" --width=220
--timeout=$Timeout &";
I was unable to reproduce this from a direct call
to zenity from the command line, so it was probably
something that happened between Raku and zenity.
Of interest, on the direct call "\n" came out as an "S".
Hope this helps someone else.
On 3/26/23 22:53, Timo Paulssen via perl6-users wrote:
Hey Todd,
Its likely that because you are using the shell sub the < and >
characters have been interpreted by the shell to mean redirection. Check
for odd files in your working directory that have the text you saw
zenity output in them, and perhaps there is even a file with heat the
capital letter S.
When you are putting together strings like that to put into a shell
call, you are dancing on very thin ice wearing Doc Martens and a
backpack filled to point of bursting with tungsten bars while balancing
buckets of boiling water on the tip of your nose and also for some
reason there are sharks below the ice ...
Also, sprintf should pass \n through as-is Anne it likely got
interpreted later on by some other part of the process.
Be extremely weary of your variables containing double quotes in them,
and slightly weary of single quotes.
Hope that helps you find out what exactly is going on
I figured! Thank you!
Hmmm, "All updates complete" sound like it may have came from
# dnf updates