Lines Matching refs:path2

423                        const char *path2)
426 apr_size_t path2_len = strlen(path2);
431 assert(is_canonical(path2, path2_len));
434 while (i < min_len && path1[i] == path2[i])
443 if ((path1[i] == '/') && (path2[i] == 0))
445 if ((path2[i] == '/') && (path1[i] == 0))
449 if (path2[i] == '/')
456 return (unsigned char)(path1[i]) < (unsigned char)(path2[i]) ? -1 : 1;
471 const char *path2,
479 path2_len = strlen(path2);
481 if (SVN_PATH_IS_EMPTY(path1) || SVN_PATH_IS_EMPTY(path2))
484 while (path1[i] == path2[i])
500 if (i == 1 && path1[0] == '/' && path2[0] == '/')
506 if (((i == path1_len) && (path2[i] == '/'))
511 if (last_dirsep == 0 && path1[0] == '/' && path2[0] == '/')
519 const char *path2,
523 svn_boolean_t path2_is_url = svn_path_is_url(path2);
529 return svn_uri_get_longest_ancestor(path1, path2, pool);
534 get_path_ancestor_length(path1, path2, pool));
545 const char *path2,
551 /* assert (is_canonical (path2, strlen (path2))); ### Expensive strlen */
556 if (SVN_PATH_IS_EMPTY(path2) /* "" not a child */
557 || path2[0] == '/') /* "/foo" not a child */
561 return pool ? apr_pstrdup(pool, path2) : path2;
565 things like path1:"foo///bar" and path2:"foo/bar/baz"? It doesn't
568 for (i = 0; path1[i] && path2[i]; i++)
569 if (path1[i] != path2[i])
574 .../foo path2[i] == '/'
577 /foo path2[i] != '/'
579 if (path1[i] == '\0' && path2[i])
581 if (path2[i] == '/')
582 return pool ? apr_pstrdup(pool, path2 + i + 1) : path2 + i + 1;
584 return pool ? apr_pstrdup(pool, path2 + 1) : path2 + 1;
587 /* Otherwise, path2 isn't a child. */
593 svn_path_is_ancestor(const char *path1, const char *path2)
597 /* If path1 is empty and path2 is not absoulte, then path1 is an ancestor. */
599 return *path2 != '/';
601 /* If path1 is a prefix of path2, then:
605 - path2 starts a new path component after the common prefix,
607 if (strncmp(path1, path2, path1_len) == 0)
609 || (path2[path1_len] == '/' || path2[path1_len] == '\0');