There used to be a critical warning on the source registry console:
** Failed to load key file at
'file:///home/user/.config/evolution/sources/.goutputstream-1P9V6W':
File must have a '.source' extension
There is nothing the source registry can do with these files (because
they are created by GIO), but ignore them during the folder monitoring,
instead of spreading useless runtime warning.
basename = g_file_get_basename (file);
- if (g_str_has_suffix (basename, ".source")) {
+ if (*basename == '.') {
+ /* ignore hidden files */
+ } else if (g_str_has_suffix (basename, ".source")) {
/* strlen(".source") --> 7 */
uid = g_strndup (basename, strlen (basename) - 7);
} else {
ESource *source;
GError *error = NULL;
+ /* it can return NULL source for hidden files */
source = e_server_side_source_new (server, file, &error);
- /* Sanity check. */
- g_return_if_fail (
- ((source != NULL) && (error == NULL)) ||
- ((source == NULL) && (error != NULL)));
-
- if (error == NULL) {
+ if (!error && source) {
/* File monitors are only placed on directories
* where data sources are writable and removable,
* so it should be safe to assume these flags. */
e_source_registry_server_add_source (server, source);
g_object_unref (source);
- } else {
+ } else if (error) {
e_source_registry_server_load_error (
server, file, error);
g_error_free (error);