@vfaronov Many thanks for testing.
Regarding the bug. I assume PATH_MAX is just 260 on Windows. I've read
http://insanecoding.blogspot.de/2007/11/pathmax-simply-isnt.html and it appears
PATH_MAX is pretty broken in general.
The tag data contains the full path name. Apparently it contains something
weird (non-null) if it exceeds PATH_MAX, while from the code I'd think it
contains NULL (but that would crash Geany). To be sure, please check with the
following diff.
In any case, this is a separate issue. We have our own `realpath()` on windows
which doesn't handle this case. The the underlying data this PR uses is already
wrong. You should see the error message about `utils_tidy_path()` even without
my patch.
```
diff --git a/src/symbols.c b/src/symbols.c
index f4f259b72..874666399 100644
--- a/src/symbols.c
+++ b/src/symbols.c
@@ -1933,8 +1933,12 @@ static void show_goto_popup(GeanyDocument *doc,
GPtrArray *tags, gboolean have_b
/* If popup would show multiple files presend a smart file list that
allows
* to easily distinguish the files while avoiding the file paths in
their entirety */
file_names = g_new(gchar *, tags->len);
+ int n = g_random_int()%100;
foreach_ptr_array(tmtag, i, tags)
+ {
file_names[i] = tmtag->file->file_name;
+ printf("goto_popup %d: %s", n, tmtag->file->file_name ?
tmtag->file->file_name : NULL);
+ }
short_names = utils_strv_shorten_file_list(file_names, tags->len);
g_free(file_names);
```
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/1445#issuecomment-313002161