@codebrainz commented on this pull request.
In src/utils.c:
> + return lcs; +} + + +/** Transform file names in a list to be shorter. + * + * This function takes a list of file names (probably with absolute paths), and + * transforms the paths such that they are short but still unique. This is intended + * for dialogs which present the file list to the user, where the base name may result + * in duplicates (showing the full path might be inappropriate). + * + * The algorthm strips the common prefix (e-g. the user's home directory) and + * replaces the longest common substring with an ellipsis ("..."). + * + * @param file_names @array{length=num} The list of strings to process. + * @param num The number of strings contained in @a file_names. Can be 0 if it's terminated by @c NULL.
Probably a stupid question (I didn't look at the calling code), but couldn't it use a ready-made collection type like GArray or GPtrArray instead of passing separate arguments? If the parameter isn't modified and the caller does have separate pointer and length, they could just stuff them in a GArray on the stack and pass by const pointer. Or the function could mutate the array in place for better performance. Would also allow to deduplicate the input array without handing back an array that has to be counted by walking through it. Seems cleaner and more efficient than using a plain C array and separate length, but maybe I'm brainwashed by C++ by now, so feel free to ignore :)
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.