SciTE creates a FIFO in /tmp when it starts - It should use /run/user/$uid instead -
See the freedesktop specification:
"$XDG_RUNTIME_DIR defines the base directory relative to which user-specific non-essential runtime files and other file objects (such as sockets, named pipes, ...) should be stored."
( https://specifications.freedesktop.org/basedir-spec/latest/ar01s03.html )
Doesn't this need to be duplicated in DirectorExtension::CreatePipe?
Actually, the parts of CheckForRunningInstance that deal with file names and directories probably belong in DirectorExtension.cxx so they can be easily shared with DirectorExtension::CreatePipe.
Yeah, you are indeed right.
Given that it's a backwards-incompatible change, you might as well use sockets instead of pipes. (Or, in fact, a proper RPC protocol like D-Bus, but that would be much more work.) Pipes are ridiculously fragile for this purpose.
It isn't incompatibe when ipc.scite.name / ipc.director.name is defined and its easier to change a path than to change APIs.