SystemTagList() inconsistency
Posted: Sat Jun 22, 2019 12:07 pm
Consider the following code:
On AmigaOS 3 and MorphOS this will print "hello" to the host program's stdout. On AmigaOS 4, however, nothing will be printed. I can fix this by simply removing "SYS_Output,0" from the tag list but I'm still wondering whether this is a bug in OS4 because the behaviour is clearly inconsistent to the behaviour on OS3 and MorphOS. And it's also inconsistent to Execute() behaviour. Consider the following code:
The code above prints "hello" to stdout on all three platforms: OS3, OS4, MorphOS. So setting a 0 output handle with Execute() seems to behave differently to setting a 0 output handle for SystemTagList() on OS4...
Is this a bug or a deliberate design decision to break with OS3/MorphOS behaviour considering the interpretation of a 0 filehandle for SYS_Output?
Code: Select all
SystemTags("echo hello",
SYS_Output, 0,
SYS_Input, 0,
SYS_Asynch, TRUE,
SYS_UserShell, TRUE,
NP_StackSize, 32768,
NP_Priority, 0,
NP_Path, 0,
TAG_DONE);
Code: Select all
Execute("echo hello", 0, 0);
Is this a bug or a deliberate design decision to break with OS3/MorphOS behaviour considering the interpretation of a 0 filehandle for SYS_Output?