eric pouech (@epo) commented about programs/cmd/lineedit.c:
}
lstrcatW(searchstr, L"*");
TRACE("New search: [%s]\n", wine_dbgstr_w(searchstr));
sc.isDirSearch = IsDirectoryOperation(inputBuffer, inputBufferLength);
}
FindNextMatchingDirectoryEntry(searchstr, &sc);
if (sc.haveSearchResult) {
/* If this is our first time through here for this search, we need to find the insert position
* for the results. Note that this is very likely not the same location as the search position.
*/
if (!sc.insertPos) {
/* If user entered a backslash after quotes, remove the quotes. */
if (curPos > 2 && inputBuffer[curPos-2] == L'\"' && inputBuffer[curPos-1] == L'\\') {
I think quote handling is not done as it should
from what I see on native: quotes are added when generated word does contain characters that would need to be escaped (eg ' ', but didn't check all the others)
need quote is an attribute of current filename (ie they are removed when the new (partial) matching file no longer needs them) ; so quotes shouldn't be part of the SEARCH_CONTEXT, but only used for display (basically: go to beg of word; if needs quotes, print quote; print (partial) word; print ending quotes (if needed)