Branch: refs/heads/master
Author: Frank Lanitz <frank(a)frank.uvena.de>
Committer: Frank Lanitz <frank(a)frank.uvena.de>
Date: Wed, 14 Nov 2018 07:03:35 UTC
Commit: e01afc6ce9f022536e0a7e4e4ff419944d4bafdf
https://github.com/geany/geany/commit/e01afc6ce9f022536e0a7e4e4ff419944d4ba…
Log Message:
-----------
Fix typo in Russian translation
Modified Paths:
--------------
po/ru.po
Modified: po/ru.po
2 lines changed, 1 insertions(+), 1 deletions(-)
===================================================================
@@ -383,7 +383,7 @@ msgstr ""
#: ../data/geany.glade.h:74
msgid "Store project file inside the project base directory"
-msgstr "Хранить файл проекта внутри основного каталог проекта"
+msgstr "Хранить файл проекта внутри основного каталога проекта"
#: ../data/geany.glade.h:75
msgid ""
--------------
This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).
Branch: refs/heads/master
Author: Colomban Wendling <ban(a)herbesfolles.org>
Committer: Colomban Wendling <ban(a)herbesfolles.org>
Date: Mon, 12 Nov 2018 09:22:29 UTC
Commit: fc6a9bb9cb780e89cafe62a1a1a9126dca1f48dd
https://github.com/geany/geany/commit/fc6a9bb9cb780e89cafe62a1a1a9126dca1f4…
Log Message:
-----------
tm: Cleanup include lookup
Don't use the files inode as the hash. Although it looks like a good
idea for de-duplicating links as well, it has several issues, including
non-uniqueness of inodes across file systems.
The way it was done hashing the inode but comparing the file name
string pointers also made the hash mostly irrelevant, as it just stored
filenames sharing the same inode in the same hash bucket but without
actually doing any de-duplication, making the whole thing a convoluted
way of converting to a list.
Instead, hash and compare the filenames themselves, which, even though
it doesn't handle links de-duplication, is better than the
non-functional previous code.
Also, directly build the list and only use the hash table as a way for
checking for duplicates, which is both faster and gives a stable
output.
Modified Paths:
--------------
src/tagmanager/tm_workspace.c
Modified: src/tagmanager/tm_workspace.c
35 lines changed, 4 insertions(+), 31 deletions(-)
===================================================================
@@ -370,34 +370,6 @@ gboolean tm_workspace_load_global_tags(const char *tags_file, TMParserType mode)
}
-static guint tm_file_inode_hash(gconstpointer key)
-{
- GStatBuf file_stat;
- const char *filename = (const char*)key;
-
- if (g_stat(filename, &file_stat) == 0)
- {
-#ifdef TM_DEBUG
- g_message ("Hash for '%s' is '%d'\n", filename, file_stat.st_ino);
-#endif
- return g_direct_hash ((gpointer)(intptr_t)file_stat.st_ino);
- }
-
- return 0;
-}
-
-
-static void tm_move_entries_to_g_list(gpointer key, gpointer value, gpointer user_data)
-{
- GList **pp_list = (GList**)user_data;
-
- if (user_data == NULL)
- return;
-
- *pp_list = g_list_prepend(*pp_list, g_strdup(value));
-}
-
-
static gboolean write_includes_file(const gchar *outf, GList *includes_files)
{
FILE *fp = g_fopen(outf, "w");
@@ -470,14 +442,14 @@ static gchar *create_temp_file(const gchar *tpl)
static GList *lookup_includes(const gchar **includes, gint includes_count)
{
GList *includes_files = NULL;
- GHashTable *table;
+ GHashTable *table; /* used for deduping */
gint i;
#ifdef HAVE_GLOB_H
glob_t globbuf;
size_t idx_glob;
#endif
- table = g_hash_table_new_full(tm_file_inode_hash, g_direct_equal, NULL, g_free);
+ table = g_hash_table_new_full(g_str_hash, g_str_equal, NULL, NULL);
#ifdef HAVE_GLOB_H
globbuf.gl_offs = 0;
@@ -515,6 +487,7 @@ static GList *lookup_includes(const gchar **includes, gint includes_count)
{
gchar *file_name_copy = g_strdup(globbuf.gl_pathv[idx_glob]);
+ includes_files = g_list_prepend(includes_files, file_name_copy);
g_hash_table_insert(table, file_name_copy, file_name_copy);
#ifdef TM_DEBUG
g_message ("Added ...\n");
@@ -535,12 +508,12 @@ static GList *lookup_includes(const gchar **includes, gint includes_count)
{
gchar* file_name_copy = g_strdup(includes[i]);
+ includes_files = g_list_prepend(includes_files, file_name_copy);
g_hash_table_insert(table, file_name_copy, file_name_copy);
}
}
}
- g_hash_table_foreach(table, tm_move_entries_to_g_list, &includes_files);
g_hash_table_destroy(table);
return includes_files;
--------------
This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).