@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);
```