messages written to stderr are not printed anywhere so there is no indication as to why the executable won't run.
Well, the same happens when running Fuse on Linux without a console. The settings are parsed before UI/display is initialized and messages may be somewhat hidden to the normal user.
1) Dialog box for errors
On win32 UI we could allow the use of MessageBox to show these messages even when the UI is not initialized.
On GTK UI we could initialize the GTK+ toolkit at an early stage to allow displaying dialog boxes (gtk_init -> settings -> ui_init).
2) Bad config file
This usually happens when switching between file formats or when a file is corrupt. IMO loading default settings is better than forcing the user to delete a file. Of course, we should warn the user about this action.
3) INI-format settings
There are some improvements to take into consideration when parsing:
* Redirect verbose errors to stderr instead using ui_error(). These could flood the user if a UI shows dialog boxes.
* Skip the rest of line when `=' symbol is not found.
* Print only one line in the error message.
I've attached a patch that covers the previous points. Opinions would be greatly appreciated.
4) Critical errors
Another thing I've seen on GTK UI is that dialog boxes are not modal. Critical errors followed by fuse_abort() are closed in a blink of an eye. But this is another issue that needs more testing.
Log in to post a comment.