On 11/04/17 16:00, Henry Vermaak via Lazarus wrote:
On Tue, Apr 11, 2017 at 01:34:35PM +0000, Mark Morgan Lloyd via Lazarus wrote:> Something like this does appear to work, tested on Linux 
only.> > function notGui(): boolean;> > var     i: integer;> > begin>   i := IsaTty(Input);> {$ifdef ISGUI }>   exit 
false;> {$endif ISGUI }> {$ifdef NOGUI }>   exit true;> {$endif NOGUI }>   result := i <> 0> end { notGui } ;> > 
The explicit overrides might be needed during debugging, since the> involvement of gdb forces the program to think it's being run from a 
shell> session.
I'd recommend making the overrides command line parameters.  That wayyou do 
away with the ifdefs and a user can always override it if yourlogic somehow 
doesn't do the right thing.

I agree, --GUI and --TUI by choice (case-sensitive, no short form). But from the POV of getting a statement of what appeared to work and its limitations into the record I didn't want to introduce anything extraneous.

Looking back through older sources, I've had to jump through hoops-> reopening the 
input and using GetFileType() under Windows- to find out> whether stdin was piped. 
Fortunately I don't need that here.
The experience on Windows is pretty awful and I've seen some interestingtricks 
to get a program to do the right thing based on where it waslaunched from.  For 
example, Visual Studio's devenv.com vs. devenv.exe,using the fact that .com 
takes preference over .exe in the terminal tohandle the command line parameters 
and sending output to the terminalthat it was called from.

Regrettably, investigating that sort of thing in too much depth can get one flagged as a malware writer. A few days ago I saw something very odd happen as a result of some search terms I used when reading up about a particular comms protocol.

--
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk

[Opinions above are the author's, not those of his employers or colleagues]
--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus-ide.org/listinfo/lazarus

Reply via email to