Ok, it's B_REG_DEFAULT_APP_FLAGS. It's in an enum in /haiku/headers/build/private/app/RegistrarDefs.h, and it's current value is "B_MULTIPLE_LAUNCH | B_ARGV_ONLY | _B_APP_INFO_RESERVED1_". I couldn't figure out what _B_APP_INFO_RESERVED1_ is supposed to do. It doesn't seem to be referenced anywhere else except in the header files. I suppose it wouldn't be, being reserved and all, but as to why a reserved setting is default, is beyond the scope of my knowledge on the subject.
Caitlin Shaw wrote:
The issue was brought up very recently on one of the mailing lists. The B_ARGV_ONLY behavior is indeed correct -- constructing a messenger is supposed to fail -- but it must not be a default flag (it is not under BeOS). Unless I'm mistaken no Trac ticket has been filed yet.Ah, I must have missed that thread. I understand why it was given as default: I would presume the programmer was thinking that apps which don't have the proper resources are console apps, and so ARGV_ONLY would make sense. But if it is valid for an app to neglect the flags resource and still be a valid Be GUI app, then that assumption is, obviously, erroneous. Shall I file a ticket? Or, I could track down where the setting is done and submit a patch. What would the correct behavior be? Simply a different set of default flags? Or setting ARGV_ONLY based on some criteria other than missing flags resource? Unfortunately none of my computers will run R5, so I must rely on the wisdom of others when wondering how original BeOS handled things.