Skip to content

Locations starting with another one's name not navigable #2

@vwbij

Description

@vwbij

Hi,

The selection of the current repository entry in querySnapshot was broken. It finds a match for "KEY" in "KEY_AB", "KEY_DE" and so on. Here the fixed loop head:

while (loc)
{
    const int minLen = min(loc->title.len, pathLen);
	if (!strncmp(path, loc->title.data, minLen))
    {
        apr_pool_t *subPool = NULL;
        svn_error_t *err;
        svn_opt_revision_t revision;
        size_t subPathLen = 0;
        char *buf = NULL;
        strbuf_t s;

		// Lets look if this is correct. If the path is longer than the title, we need to see
		// a path seperator next (\ or /). If not, we have it to do with a matching part of a name
		// ("UDO_NEW" instead of "UDO"). Good match would be: "UDO/DevGuide" or "UDO\DevGuide".
		if(pathLen>minLen)
		{
			if(!((path[minLen]=='/')||(path[minLen]=='\\')))
			{
		        loc = loc->next;
				continue;
			}
		}

        /* found it, fetch data from SVN */
        subPool = svn_pool_create(Subversion.pool);
        subPathLen = strlen(path + minLen);
        buf = (char*)apr_palloc(subPool, loc->url.len + subPathLen + 1);
		s.data = buf;
		s.size = loc->url.len + subPathLen + 1;

All the Best,

Volker

Metadata

Metadata

Assignees

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions