Hi,

Is there any documentation how the setting "Don't show context menu for 
paths" should work?

I realised that to ignore my working copy c:\temp\wc\ completely, I had to 
set either

   - "c:\temp\wc*"
   - Both "c:\temp\wc" and "c:\temp\wc\*"

The first one also ignored c:\temp\wc2\.
The second being quite clumsy.

This is handled in ShellCache::IsContextPathAllowed(LPCWSTR path). If 
right-clicking the folder itself, path will be c:\temp\wc

I'm considering to check the list of ignored paths for a trailing \* as 
follows (adding the ternary operator to check for \\).

        if (!I->empty() && I->at(I->size() - 1) == '*')
        {
            std::wstring str = I->substr(0, I->size() - *(I->at(I->size() - 
2) == '\\' ? 2 : *1*)*);

Then c:\temp\wc\* would work, but it might crash on a single * (didn't 
check yet).

Or to check separately for trailing \:

        else if (!I->empty() && I->at(I->size() - 1) == '\')
        {
            std::wstring str = I->substr(0, I->size() - 1);
            if (_wcsnicmp(str.c_str(), path, str.size()) == 0)
                return FALSE;
        }

Basically treating \ as a wildcard character - then you could add 
c:\temp\wc\ as "ignore the wc folder and everything below".

What do you think? Any risk of regressions?

While I was at it, I'd suggest to remove the check for !I->empty() in the 
if statement. There is already a separate statement:

        if (I->empty())
            continue;

just above. So we KNOW that I->empty() is false. Do I miss something here? 
(For comparison, TortoiseGit don't have that !I->empty() check).

Kind regards,
Daniel

-- 
You received this message because you are subscribed to the Google Groups 
"TortoiseSVN-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to tortoisesvn-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/tortoisesvn-dev/e8bd566a-576d-4717-9029-d7a94ea310c1n%40googlegroups.com.

Reply via email to