composetable: invalidate cache based on symlink mtime too

When the compose file is a symbolic link, take the link itself's
modification time into account (in addition to its target's) in
determining whether to invalidate the compose cache.

This is useful e.g. on NixOS systems where the compose file might point
to a store path with an irrelevant modification time, and we want the
cache to expire when the symlink itself changes.
This commit is contained in:
Naïm Favier 2021-11-16 12:53:38 +01:00
parent fd69b41748
commit 22f5236943
No known key found for this signature in database
GPG Key ID: 49B07322580B7EE2

View File

@ -755,8 +755,11 @@ gtk_compose_table_load_cache (const char *compose_file,
if (!g_file_test (path, G_FILE_TEST_EXISTS))
goto out_load_cache;
g_stat (compose_file, &original_buf);
g_stat (path, &cache_buf);
g_lstat (compose_file, &original_buf);
if (original_buf.st_mtime > cache_buf.st_mtime)
goto out_load_cache;
g_stat (compose_file, &original_buf);
if (original_buf.st_mtime > cache_buf.st_mtime)
goto out_load_cache;
if (!g_file_get_contents (path, &contents, &total_length, &error))