Interesting Issue with GUI shells
- Posted by Travis Beaty <listaddy at technomajian.net> Apr 24, 2005
- 498 views
Hello everyone. I'm working on a Euphoria "script" in Linux which manages the building of a C++ shared library. As each source code file is built into an object file, and then when the object files are linked into the shared library, I print "progress" lines, like this: Building foo.o (brief description of foo here) ... done! Of course, the word "done" isn't there until it is actually done. I am calling g++ via Euphoria's system_exec() command, and for the graphics mode option, I'm using 2. I have messages sent from g++ (both messages to stdout and stderr) redirected to a log file, compile.err. Here's where the weird stuff comes in. If I login in to a non-GUI terminal and execute the application, everything works as expected. However, if I run the application in either Konsole or XTerm, the call to system_exec() apparently is causing Euphoria to switch back and forth between the ncurses screen (?) and the normal command line prompt. I performed a stress test by making the call to link the object file 10 times, and I ended up with a horrible flicker effect as the display kept switching back and forth between the two modes. This made my progress reports unreadable, and honestly, caused it to look like the application was blowing up. The flickering doesn't occur when I use 0 with the graphics mode parameter of system_exec(). But then, it shows just the command line during the entire build process, and only shows my progress information after the build is finished. Eventually, the shared library will be quite large, and will therefore take quite a while to build. I need to have the progress information there to show the user that the app isn't hung up, but at the same time, the flickering would be very bad if not completely intolerable. If anyone has run up against this before and has a fix, I would appreciate the assistance. Thanks, Travis Beaty.