good news today:
I just removed the code for handling the FIFO to detect a running instance. It never worked as it should and as I imagined it.
Now, we use Unix Domain Sockets. So, the annoying dialog after a crash isn't necessary anymore. Geany detects whether an instance is running and if not, it starts a new one. If an instance is running, it opens all files specified on the command line within this instance, deiconifies the window and gets the focus to the running instance.
There is no real difference in using Geany, except that it works fine now ;-). Anyway and as usual, there might be some bugs.
The command line argument to use new instances every time changed from -p (--no-pipe) to -s (--no-socket). The socket file "geany_socket" will be created (at least on non-Windows systems) in your configuration directory.
There is one side effect in changing the code which is actually a big advantage: these sockets are also available under Windows through the Mutex system. (The code exists, but isn't tested yet. It is copied from the Sylpheed sources, thanks) Anyway, I guess it won't work at the moment and maybe it doesn't even compile on Windows. Sorry for that, I don't have a box with a running Windows at the moment.
Check out r773!
-- Get my GPG key from http://www.uvena.de/pub.key