Hi.
Here are the patches for SM branch I promised to send. Proposed commit message and notes (if any) are given below.
On my way I noticed some minor bugs. The patches which fix those bugs have "fix" in their names.
Now I'm going to write a reverse parser for GOptionEntry. To proceed, I need to know where I should put the code. Should I (a) modify utils.{c,h} files or (b) make my own optentries.{c,h}? I want to declare new GeanyOptionEntryAux struct containing one gboolean and implement two functions:
* a function to reverse-parse a single GOptionEntry;
* a function taking an array of GOptionEntry and an array of GeanyOptionEntryAux and returning a GArray filled like argv.
Personally, I'd prefer (b).
[sm.1.files.patch] “Extract SM-related code into separate sm.{c,h} files, make some refactoring, and write code comments for Doxygen.”
Note: if you consider some Doxygen comments excessive, just drop them.
[sm.2.sm_finalize.patch] “Add sm_finalize().”
[sm.3.fix-restart-command.patch] “Fix restart command.”
[sm.4.fix-interaction.patch] “Handle "Interact" message properly.”
[sm.5.noinstance-behaviour.patch] “Make --new-instance imply --no-session.”
[sm.6.nosession.patch] “Handle --no-session properly.
The previous commit allows us to change --no-session command line option handling back to normal. The issue was described in a FIXME section inside src/sm.c, the section is now deleted.”
[sm.7.fix-filenames.patch] “Use `GeanyDocument.file_name's instead of `GeanyDocument.real_path's in restart command like Geany session management facilities do.”
Best regards, Eugene.