diff --git a/gio/gapplication.c b/gio/gapplication.c index f97312e7e..f10d2d86c 100644 --- a/gio/gapplication.c +++ b/gio/gapplication.c @@ -1165,9 +1165,19 @@ g_application_open (GApplication *application, * is intended to be returned by main(). * * First, the local_command_line() virtual function is invoked. - * This function always runs on the local instance. If it returns - * %FALSE then the application is registered and the - * #GApplication::command-line signal is emitted in the primary + * This function always runs on the local instance. It gets passed + * pointers to @argc and @argv and is expected to remove the arguments + * that it handled from @argv (shifting up remaining arguments, and + * reducing @argc accordingly). See for an example. The last argument to local_command_line() is a + * pointer to the @status variable which can used to set the exit + * status that is returned from g_application_run(). + * + * If local_command_line() returns %TRUE, the command line is expected + * to be completely handled, including possibly registering as the primary + * instance, calling g_application_activate() or g_application_open(), etc. + * + * If local_command_line() returns %FALSE then the application is registered + * and the #GApplication::command-line signal is emitted in the primary * instance (which may or may not be this instance). * * If the application has the %G_APPLICATION_HANDLES_COMMAND_LINE @@ -1186,7 +1196,9 @@ g_application_open (GApplication *application, * * If you are interested in doing more complicated local handling of the * commandline then you should implement your own #GApplication subclass - * and override local_command_line(). See + * and override local_command_line(). In this case, you most likely want + * to return %TRUE from your local_command_line() implementation to + * suppress the default handling. See * for an example. * * If, after the above is done, the use count of the application is zero