<div dir="ltr"><div><div style="font-size:small" class="gmail_default">Many Thanks BrianG.  With this and your other help I now have this routine....</div><div style="font-size:small" class="gmail_default"><br></div><div style="font-size:small" class="gmail_default"><b>' Gambas class file<br><br>Extern dup2(OldFD As Integer, newfd As Integer) In "libc:6"<br>Private Writer As File<br>Private Reader As File<br>Private restore As File<br><br>Public Sub _new()<br>  Writer = Open Pipe "/tmp/testpipeout" For Write<br>  restore = File.Err<br>  dup2(Writer.handle, 2)<br>  Reader = Open Pipe "/tmp/testpipeout" For Read Watch<br>End<br><br>Public Sub File_read()<br><br>  Dim buffer As String<br><br>  buffer = Read #Last, -Lof(Last)<br>  For Each sLine As String In Split(buffer, "\n")<br>    If Not sLine Then Continue<br>    If sLine Like "(" & Application.Name & ":*): G*k-*" Then Continue <br>    Print sLine<br>  Next<br><br>End<br><br><b>Public Sub Form_Close()<br>  If Writer Then Writer.Close()<br>  If Reader Then Reader.Close()<br>  dup2(restore.handle, 2)<br>End<br><br></b></b></div><div style="font-size:small" class="gmail_default"><b><br></b></div><div style="font-size:small" class="gmail_default"><b>Public Sub Button1_Click()<br><br>  Print "Print Something"<br>  Debug "Debug Something"<br><br>End<br></b></div><div style="font-size:small" class="gmail_default"><div style="font-size:small" class="gmail_default">I had to check each line of the buffer individually and used Like to pattern-match the Gtk- Gdk- messages<br></div><div style="font-size:small" class="gmail_default"><br></div><div style="font-size:small" class="gmail_default">So with that code my own Debug and Error messages still output (albeit to stdout but that's fine) just the gtk/gdk messages are gone :)</div><div style="font-size:small" class="gmail_default">Thanks again Brian , much respect :)<br></div>BruceS</div><br></div><div><br></div><div><br></div><div><br></div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, 8 Aug 2021 at 03:34, Brian G <<a href="mailto:brian@westwoodsvcs.com" target="_blank">brian@westwoodsvcs.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><div style="font-family:arial,helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)"><div>Bruce replace your _new with this code</div><div><br></div><div><div>Extern dup2(OldFD As Integer, newfd As Integer) In "libc:6"</div><div>Static Dummy As File</div><div>Static Public Sub _init()</div><div>  dummy = Open "/dev/null" For Write</div><div>  dup2(dummy.Handle, 1)</div><div>  dup2(dummy.handle, 2)</div><div>End</div><div><br></div><div>Should give you what you want without all the fiddle</div></div><div><br></div><div>"Failure is the key to success; <br> each mistake teaches us something"  .. Morihei Ueshiba<br>Brian G</div><div><br><span id="m_6764088249479869363gmail-m_2058899195762317763zwchr">----- On Aug 7, 2021, at 12:39 PM, Bruce Steers <<a href="mailto:bsteers4@gmail.com" target="_blank">bsteers4@gmail.com</a>> wrote:<br></span></div><div><blockquote style="border-left:2px solid rgb(16,16,255);margin-left:5px;padding-left:5px;color:rgb(0,0,0);font-weight:normal;font-style:normal;text-decoration:none;font-family:Helvetica,Arial,sans-serif;font-size:12pt"><div dir="ltr"><div dir="ltr"><div style="font-size:small"><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, 5 Aug 2021 at 20:34, Bruce Steers <<a href="mailto:bsteers4@gmail.com" target="_blank">bsteers4@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div style="font-size:small"><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, 4 Aug 2021 at 00:53, <<a href="mailto:jose.rodriguez@cenpalab.cu" target="_blank">jose.rodriguez@cenpalab.cu</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><u></u><div><div style="font-family:arial,sans-serif;font-size:13px">August 3, 2021 2:29 PM, "Bruce Steers" <<a href="mailto:bsteers4@gmail.com?to=%22Bruce%20Steers%22%20%3Cbsteers4@gmail.com%3E" target="_blank">bsteers4@gmail.com</a>> wrote:<br> <blockquote><div><div><div dir="ltr"> <div style="font-size:small"></div> <div style="font-size:small">I have this program i'm developing that was starting and stopping cleanly then i recently added some controls and did various other things and now it says this when it starts...</div> <div style="font-size:small"></div> <div style="font-size:small">(Desktop-ish:12906): Gtk-WARNING **: 16:29:25.336: Theme parsing error: <data>:1:15: Expected a valid selectorIs there a way to track down what's causing it?</div> <div style="font-size:small"></div> <div style="font-size:small">thanks</div> <div style="font-size:small">BruceS</div> <div style="font-size:small"></div> </div></div></div></blockquote> <br><br>GTK has always output loads of different errors with many programs (not gambas ones, I mean), when run in a terminal. People say it depends on the current theme and whatnot...<br><br></div></div></blockquote><br><div style="font-size:small">Indeed, Pluma was always my texteditor of choice and that used to pump out loads of warnings.</div><div style="font-size:small">(but now of course i use my own editor i wrote with gambas that has all those cool Texteditor features ;) ) <br></div><div style="font-size:small"><br></div><div style="font-size:small">Would be great to be able to catch the warnings though.</div><div style="font-size:small">Either a way to track what exactly is causing them or just suppress the messages.</div><div style="font-size:small"><br></div><div style="font-size:small"><br></div><div style="font-size:small"><br></div><div style="font-size:small">BruceS<br></div></div></div></blockquote><br><br><div style="font-size:small">so best answer i have so far is this "hack"...</div><div style="font-size:small">Uses gb.args</div><div style="font-size:small">if the arg -q or --quiet is given then before the app loads it launches itself with any and all args plus "2>/dev/null" to redirect the error output and an additional arg -s.<br></div><div style="font-size:small"><br></div><div style="font-size:small">when the 2nd run instance quits the 1st one that launched the second one also quits before it's even done anything.<br></div><div style="font-size:small"><br></div><div style="font-size:small"><br></div><div style="font-size:small"><b>Public Sub _new()<br>  <br>  Args.Begin()<br>  Dim bQuiet As Boolean = Args.Has("q", "quiet", "supress gtk error messages")<br>  If bQuiet Then bQuiet = (Args.Has("s", "supressed", "supressed gtk error warnings") == False)<br>  Args.End()<br><br>  If bQuiet And File.In.IsTerm Then </b> ' if we are not run from a terminal then no need for any of this<b><br>    Dim sRestOfargs As String[] = Args.All.Copy()<br></b></div><div style="font-size:small"><b><br></b></div><div style="font-size:small"><b>    '</b> the next 2 lines just handle if being run from the IDE and make Arg[0] be executable name.<b><br></b></div><div style="font-size:small"><b>    If Not InStr(sRestOfargs[0], "/") Then sRestOfargs[0] = Application.Path &/ Application.Name<br>    If File.Ext(sRestOfargs[0]) <> "gambas" Then sRestOfargs[0] &= ".gambas"   <br></b></div><div style="font-size:small"><b><br></b></div><div style="font-size:small"><b>    sRestOfargs.Insert(["-s", "2>/dev/null"])<br>    Shell sRestOfargs.Join(" ")<br>    Me.Close<br>    Return<br>  Endif<br><br>End<br></b></div><div style="font-size:small"><b><br></b></div><div style="font-size:small">Attached is a simple test app</div><div style="font-size:small">It's a form with a tiny little TextArea in it, so small it produces warnings on my system when i move the mouse around the window...</div><div style="font-size:small">(Test:79673): Gdk-CRITICAL **: 20:26:58.775: gdk_window_is_visible: assertion 'GDK_IS_WINDOW (window)' failed</div><div style="font-size:small"><br></div><div style="font-size:small">Run with -q and all is quiet.</div><div style="font-size:small">./Test.gambas -q<br></div><div style="font-size:small"><br></div><div style="font-size:small">Of course this method will suppress ANY error messages , <br></div><div style="font-size:small">shell commands can be fixed by adding '>2&1' <br></div><div style="font-size:small">Shell "/run/mycommand 2>&1"</div><div style="font-size:small">that redirects error output to stdout and stdout is still showing</div><div style="font-size:small"><br></div><div style="font-size:small">Please somebody tell me there's a better way...</div><div style="font-size:small"><br></div><div style="font-size:small">BruceS</div><div style="font-size:small"><br></div><div style="font-size:small"><b></b></div><div style="font-size:small"><b></b></div></div></div>
<br><br>----[ <a href="http://gambaswiki.org/wiki/doc/netiquette" target="_blank">http://gambaswiki.org/wiki/doc/netiquette</a> ]----<br></blockquote></div></div></div><br>
----[ <a href="http://gambaswiki.org/wiki/doc/netiquette" rel="noreferrer" target="_blank">http://gambaswiki.org/wiki/doc/netiquette</a> ]----<br>
</blockquote></div></div>