| line | true | false | branch | 
 
| 32 | 9801 | 0 | if (!(0x80 & (unsigned char)*path)) | 
 
| 33 | 9618 | 183 | return *path && path[1] == ':' ? 2 : 0; | 
 
|  | 0 | 9618 | return *path && path[1] == ':' ? 2 : 0; | 
 
| 43 | 0 | 0 | for (i = 1; i < 4 && (0x80 & (unsigned char)path[i]); i++) | 
 
|  | 0 | 0 | for (i = 1; i < 4 && (0x80 & (unsigned char)path[i]); i++) | 
 
| 45 | 0 | 0 | return path[i] == ':' ? i + 1 : 0; | 
 
| 102 | 19 | 0 | if (path == NULL || *path == '\0') { | 
 
|  | 0 | 19 | if (path == NULL || *path == '\0') { | 
 
| 110 | 19 | 0 | while (endp > path && *endp == '/') | 
 
|  | 0 | 19 | while (endp > path && *endp == '/') | 
 
| 114 | 0 | 19 | if (endp == path && *endp == '/') { | 
 
|  | 0 | 0 | if (endp == path && *endp == '/') { | 
 
| 122 | 76 | 0 | while (startp > path && *(startp - 1) != '/') | 
 
|  | 57 | 19 | while (startp > path && *(startp - 1) != '/') | 
 
| 131 | 19 | 0 | if (buffer != NULL && git_buf_set(buffer, startp, len) < 0) | 
 
|  | 0 | 19 | if (buffer != NULL && git_buf_set(buffer, startp, len) < 0) | 
 
| 175 | 1306 | 0 | if (path == NULL || *path == '\0') { | 
 
|  | 0 | 1306 | if (path == NULL || *path == '\0') { | 
 
| 183 | 1349 | 0 | while (endp > path && *endp == '/') | 
 
|  | 43 | 1306 | while (endp > path && *endp == '/') | 
 
| 186 | 0 | 1306 | if (endp - path + 1 > INT_MAX) { | 
 
| 192 | 0 | 1306 | if ((len = win32_prefix_length(path, (int)(endp - path + 1))) > 0) { | 
 
| 198 | 15954 | 186 | while (endp > path && *endp != '/') | 
 
|  | 14834 | 1120 | while (endp > path && *endp != '/') | 
 
| 202 | 186 | 1120 | if (endp == path) { | 
 
| 203 | 0 | 186 | path = (*endp == '/') ? "/" : "."; | 
 
| 210 | 1120 | 0 | } while (endp > path && *endp == '/'); | 
 
|  | 0 | 1120 | } while (endp > path && *endp == '/'); | 
 
| 212 | 0 | 1120 | if (endp - path + 1 > INT_MAX) { | 
 
| 218 | 0 | 1120 | if ((len = win32_prefix_length(path, (int)(endp - path + 1))) > 0) { | 
 
| 227 | 1306 | 0 | if (buffer) { | 
 
| 228 | 0 | 1306 | if (git_buf_set(buffer, path, len) < 0) | 
 
| 230 | 0 | 1306 | if (is_prefix && git_buf_putc(buffer, '/') < 0) | 
 
|  | 0 | 0 | if (is_prefix && git_buf_putc(buffer, '/') < 0) | 
 
| 266 | 0 | 0 | if (!buffer || buffer->size <= 0) | 
 
|  | 0 | 0 | if (!buffer || buffer->size <= 0) | 
 
| 271 | 0 | 0 | if (slash >= 0 && buffer->ptr[slash] == '/') | 
 
|  | 0 | 0 | if (slash >= 0 && buffer->ptr[slash] == '/') | 
 
| 282 | 0 | 0 | assert(path); | 
 
| 285 | 0 | 0 | if (!len || path[len - 1] != '/') | 
 
|  | 0 | 0 | if (!len || path[len - 1] != '/') | 
 
| 288 | 0 | 0 | for (i = (ssize_t)len - 2; i >= 0; --i) | 
 
| 289 | 0 | 0 | if (path[i] == '/') | 
 
| 300 | 0 | 9801 | if ((prefix_len = dos_drive_prefix_length(path))) | 
 
| 319 | 1705 | 8096 | if (path[offset] == '/') | 
 
| 328 | 0 | 456 | assert(ceiling >= 0); | 
 
| 330 | 912 | 0 | while (path->size > (size_t)ceiling) { | 
 
| 331 | 456 | 456 | if (path->ptr[path->size-1] != '/') | 
 
| 344 | 2296 | 0 | assert(path && path_out); | 
 
|  | 0 | 2296 | assert(path && path_out); | 
 
| 348 | 2268 | 28 | if (base != NULL && root < 0) { | 
 
|  | 2094 | 174 | if (base != NULL && root < 0) { | 
 
| 349 | 0 | 2094 | if (git_buf_joinpath(path_out, base, path) < 0) | 
 
| 354 | 0 | 202 | if (git_buf_sets(path_out, path) < 0) | 
 
| 357 | 0 | 202 | if (root < 0) | 
 
| 359 | 174 | 28 | else if (base) | 
 
| 363 | 1567 | 729 | if (root_at) | 
 
| 373 | 0 | 19 | if (path->size == 0) | 
 
| 376 | 268 | 19 | for (p = path->ptr, q = path->ptr; *q; p++, q++) { | 
 
| 379 | 27 | 241 | while (*q == '/' && *(q+1) == '/') { | 
 
|  | 0 | 27 | while (*q == '/' && *(q+1) == '/') { | 
 
| 392 | 68 | 0 | assert(path && path_out); | 
 
|  | 0 | 68 | assert(path && path_out); | 
 
| 395 | 4 | 64 | if (base != NULL && git_path_root(path) < 0) { | 
 
|  | 0 | 4 | if (base != NULL && git_path_root(path) < 0) { | 
 
| 396 | 0 | 0 | if (git_buf_joinpath(path_out, base, path) < 0) | 
 
| 401 | 0 | 68 | if (p_realpath(path, buf) == NULL) { | 
 
| 403 | 0 | 0 | int error = (errno == ENOENT || errno == ENOTDIR) ? GIT_ENOTFOUND : -1; | 
 
|  | 0 | 0 | int error = (errno == ENOENT || errno == ENOTDIR) ? GIT_ENOTFOUND : -1; | 
 
| 417 | 23 | 0 | return (error < 0) ? error : git_path_to_dir(path_out); | 
 
| 423 | 2411 | 1660 | git_buf_len(path) > 0 && | 
 
| 427 | 0 | 4257 | return git_buf_oom(path) ? -1 : 0; | 
 
| 434 | 0 | 0 | if (end && path[end - 1] != '/' && end < size) { | 
 
|  | 0 | 0 | if (end && path[end - 1] != '/' && end < size) { | 
 
|  | 0 | 0 | if (end && path[end - 1] != '/' && end < size) { | 
 
| 443 | 3 | 0 | assert(decoded_out && input); | 
 
|  | 0 | 3 | assert(decoded_out && input); | 
 
| 448 | 150 | 3 | for(i = 0; i < len; i++) | 
 
| 452 | 150 | 0 | if (c != '%') | 
 
| 455 | 0 | 0 | if (i >= len - 2) | 
 
| 461 | 0 | 0 | if (hi < 0 || lo < 0) | 
 
|  | 0 | 0 | if (hi < 0 || lo < 0) | 
 
| 468 | 0 | 150 | if (git_buf_putc(decoded_out, c) < 0) | 
 
| 485 | 6 | 3 | if (git__prefixcmp(file_url, "file://") == 0) { | 
 
| 486 | 6 | 0 | if (file_url[7] == '/') | 
 
| 488 | 0 | 0 | else if (git__prefixcmp(file_url + 7, "localhost/") == 0) | 
 
| 504 | 3 | 0 | assert(local_path_out && file_url); | 
 
|  | 0 | 3 | assert(local_path_out && file_url); | 
 
| 506 | 3 | 0 | if ((offset = local_file_url_prefixlen(file_url)) < 0 || | 
 
|  | 3 | 0 | if ((offset = local_file_url_prefixlen(file_url)) < 0 || | 
 
| 507 | 0 | 3 | file_url[offset] == '\0' || file_url[offset] == '/') | 
 
| 529 | 777 | 0 | assert(path && cb); | 
 
|  | 0 | 777 | assert(path && cb); | 
 
| 531 | 777 | 0 | if (ceiling != NULL) { | 
 
| 532 | 777 | 0 | if (git__prefixcmp(path->ptr, ceiling) == 0) | 
 
| 540 | 0 | 777 | if (!scan) { | 
 
| 542 | 0 | 0 | if (error) | 
 
| 551 | 923 | 751 | while (scan >= stop) { | 
 
| 555 | 26 | 897 | if (error) { | 
 
| 561 | 897 | 0 | if (scan >= 0) { | 
 
| 569 | 777 | 0 | if (scan >= 0) | 
 
| 573 | 751 | 26 | if (!error && stop == 0 && iter.ptr[0] != '/') { | 
 
|  | 0 | 751 | if (!error && stop == 0 && iter.ptr[0] != '/') { | 
 
|  | 0 | 0 | if (!error && stop == 0 && iter.ptr[0] != '/') { | 
 
| 575 | 0 | 0 | if (error) | 
 
| 584 | 0 | 2880 | assert(path); | 
 
| 591 | 336 | 1575 | if (p_stat(path, &st) < 0) | 
 
| 601 | 0 | 648 | assert(path); | 
 
| 602 | 454 | 194 | if (p_stat(path, &st) < 0) | 
 
| 612 | 0 | 0 | assert(path); | 
 
| 613 | 0 | 0 | if (p_lstat(path, &st) < 0) | 
 
| 675 | 0 | 2 | if (!git_path_isdir(path)) | 
 
| 678 | 0 | 2 | if ((error = git_buf_sets(&dir, path)) != 0) | 
 
| 719 | 1229 | 0 | if (p_lstat(path, st) == 0) | 
 
| 736 | 0 | 509 | if (GIT_ADD_SIZET_OVERFLOW(&alloc_size, dir_size, sub_size) || | 
 
|  | 0 | 509 | if (GIT_ADD_SIZET_OVERFLOW(&alloc_size, dir_size, sub_size) || | 
 
| 737 | 0 | 509 | GIT_ADD_SIZET_OVERFLOW(&alloc_size, alloc_size, 2) || | 
 
| 742 | 0 | 509 | if (git_buf_joinpath(dir, dir->ptr, sub) < 0) | 
 
| 771 | 565 | 0 | if (!error) { | 
 
| 773 | 547 | 18 | if (p_realpath(dir->ptr, buf) != NULL) | 
 
| 778 | 565 | 0 | if (!error) /* && git_path_isdir(dir->ptr) == false) */ | 
 
| 779 | 0 | 565 | error = (git_path_dirname_r(dir, dir->ptr) < 0) ? -1 : 0; | 
 
| 781 | 565 | 0 | if (!error) | 
 
| 792 | 186 | 0 | GIT_ERROR_CHECK_ALLOC_BUF(path); | 
 
|  | 0 | 186 | GIT_ERROR_CHECK_ALLOC_BUF(path); | 
 
| 794 | 0 | 186 | if (ceiling > path->size) | 
 
| 798 | 186 | 0 | if (ceiling == 0) | 
 
| 802 | 186 | 0 | if (ceiling == 0) { | 
 
| 803 | 186 | 0 | for (next = path->ptr; *next && git__isalpha(*next); ++next); | 
 
|  | 0 | 186 | for (next = path->ptr; *next && git__isalpha(*next); ++next); | 
 
| 804 | 0 | 186 | if (next[0] == ':' && next[1] == '/' && next[2] == '/') | 
 
|  | 0 | 0 | if (next[0] == ':' && next[1] == '/' && next[2] == '/') | 
 
|  | 0 | 0 | if (next[0] == ':' && next[1] == '/' && next[2] == '/') | 
 
| 810 | 186 | 186 | while (*from) { | 
 
| 811 | 186 | 186 | for (next = from; *next && *next != '/'; ++next); | 
 
|  | 186 | 0 | for (next = from; *next && *next != '/'; ++next); | 
 
| 815 | 186 | 0 | if (len == 1 && from[0] == '.') | 
 
|  | 186 | 0 | if (len == 1 && from[0] == '.') | 
 
| 818 | 0 | 0 | else if (len == 2 && from[0] == '.' && from[1] == '.') { | 
 
|  | 0 | 0 | else if (len == 2 && from[0] == '.' && from[1] == '.') { | 
 
|  | 0 | 0 | else if (len == 2 && from[0] == '.' && from[1] == '.') { | 
 
| 820 | 0 | 0 | if (to == base && ceiling != 0) { | 
 
|  | 0 | 0 | if (to == base && ceiling != 0) { | 
 
| 828 | 0 | 0 | if (to == base) { | 
 
| 829 | 0 | 0 | if (*next == '/') | 
 
| 832 | 0 | 0 | if (to != from) | 
 
| 841 | 0 | 0 | while (to > base && to[-1] == '/') to--; | 
 
|  | 0 | 0 | while (to > base && to[-1] == '/') to--; | 
 
| 842 | 0 | 0 | while (to > base && to[-1] != '/') to--; | 
 
|  | 0 | 0 | while (to > base && to[-1] != '/') to--; | 
 
| 845 | 0 | 0 | if (*next == '/' && *from != '/') | 
 
|  | 0 | 0 | if (*next == '/' && *from != '/') | 
 
| 848 | 0 | 0 | if (to != from) | 
 
| 856 | 0 | 186 | while (*from == '/') from++; | 
 
| 882 | 137 | 83 | if (cmp) | 
 
| 888 | 34 | 49 | if (c1 == '\0' && isdir1) | 
 
|  | 1 | 33 | if (c1 == '\0' && isdir1) | 
 
| 891 | 49 | 34 | if (c2 == '\0' && isdir2) | 
 
|  | 2 | 47 | if (c2 == '\0' && isdir2) | 
 
| 894 | 48 | 35 | return (c1 < c2) ? -1 : (c1 > c2) ? 1 : 0; | 
 
| 901 | 166 | 8 | for (p = one, q = two; *p && *q; p++, q++) { | 
 
|  | 166 | 0 | for (p = one, q = two; *p && *q; p++, q++) { | 
 
| 902 | 28 | 138 | if (*p == '/' && *q == '/') | 
 
|  | 28 | 0 | if (*p == '/' && *q == '/') | 
 
| 904 | 14 | 124 | else if (*p != *q) | 
 
| 908 | 21 | 1 | return dirsep ? (dirsep - one) + 1 : 0; | 
 
| 916 | 0 | 0 | for (p_dirsep = p = path->ptr, q_dirsep = q = parent; *p && *q; p++, q++) { | 
 
|  | 0 | 0 | for (p_dirsep = p = path->ptr, q_dirsep = q = parent; *p && *q; p++, q++) { | 
 
| 917 | 0 | 0 | if (*p == '/' && *q == '/') { | 
 
|  | 0 | 0 | if (*p == '/' && *q == '/') { | 
 
| 921 | 0 | 0 | else if (*p != *q) | 
 
| 926 | 0 | 0 | if ((p_dirsep == path->ptr || q_dirsep == parent) && | 
 
|  | 0 | 0 | if ((p_dirsep == path->ptr || q_dirsep == parent) && | 
 
|  | 0 | 0 | if ((p_dirsep == path->ptr || q_dirsep == parent) && | 
 
| 927 | 0 | 0 | (*p_dirsep != '/' || *q_dirsep != '/')) { | 
 
| 933 | 0 | 0 | if (*p == '/' && !*q) | 
 
|  | 0 | 0 | if (*p == '/' && !*q) | 
 
| 935 | 0 | 0 | else if (!*p && *q == '/') | 
 
|  | 0 | 0 | else if (!*p && *q == '/') | 
 
| 937 | 0 | 0 | else if (!*p && !*q) | 
 
|  | 0 | 0 | else if (!*p && !*q) | 
 
| 946 | 0 | 0 | if (!*q) | 
 
| 949 | 0 | 0 | for (; (q = strchr(q, '/')) && *(q + 1); q++) | 
 
|  | 0 | 0 | for (; (q = strchr(q, '/')) && *(q + 1); q++) | 
 
| 952 | 0 | 0 | GIT_ERROR_CHECK_ALLOC_MULTIPLY(&newlen, depth, 3); | 
 
|  | 0 | 0 | GIT_ERROR_CHECK_ALLOC_MULTIPLY(&newlen, depth, 3); | 
 
| 953 | 0 | 0 | GIT_ERROR_CHECK_ALLOC_ADD(&newlen, newlen, plen); | 
 
|  | 0 | 0 | GIT_ERROR_CHECK_ALLOC_ADD(&newlen, newlen, plen); | 
 
| 955 | 0 | 0 | GIT_ERROR_CHECK_ALLOC_ADD(&alloclen, newlen, 1); | 
 
|  | 0 | 0 | GIT_ERROR_CHECK_ALLOC_ADD(&alloclen, newlen, 1); | 
 
| 959 | 0 | 0 | if (git_buf_try_grow(path, alloclen, 1) < 0) | 
 
| 965 | 0 | 0 | for (i = 0; i < depth; i++) | 
 
| 976 | 0 | 0 | for (end = scan + pathlen; scan < end; ++scan) | 
 
| 977 | 0 | 0 | if (*scan & 0x80) | 
 
| 1138 | 0 | 338 | if (git_path_to_dir(path) < 0) | 
 
| 1143 | 0 | 338 | if ((dir = opendir(path->ptr)) == NULL) { | 
 
| 1145 | 0 | 0 | if (errno == ENOENT) | 
 
| 1156 | 947 | 336 | while ((de = readdir(dir)) != NULL) { | 
 
| 1160 | 672 | 275 | if (git_path_is_dot_or_dotdot(de_path)) | 
 
| 1168 | 0 | 275 | if ((error = git_buf_put(path, de_path, de_len)) < 0) | 
 
| 1177 | 2 | 273 | if (error != 0) { | 
 
| 1178 | 2 | 0 | if (!git_error_last()) | 
 
| 1364 | 456 | 0 | assert(diriter && path); | 
 
|  | 0 | 456 | assert(diriter && path); | 
 
| 1368 | 0 | 456 | if (git_buf_puts(&diriter->path, path) < 0) | 
 
| 1373 | 0 | 456 | if (diriter->path.size == 0) { | 
 
| 1378 | 2 | 454 | if ((diriter->dir = opendir(diriter->path.ptr)) == NULL) { | 
 
| 1404 | 0 | 1704 | assert(diriter); | 
 
| 1409 | 454 | 2158 | if ((de = readdir(diriter->dir)) == NULL) { | 
 
| 1410 | 454 | 0 | if (!errno) | 
 
| 1417 | 2158 | 0 | } while (skip_dot && git_path_is_dot_or_dotdot(de->d_name)); | 
 
|  | 908 | 1250 | } while (skip_dot && git_path_is_dot_or_dotdot(de->d_name)); | 
 
| 1430 | 1250 | 0 | if (diriter->parent_len > 0 && | 
 
|  | 1250 | 0 | if (diriter->parent_len > 0 && | 
 
| 1436 | 0 | 1250 | if (git_buf_oom(&diriter->path)) | 
 
| 1447 | 0 | 0 | assert(out && out_len && diriter); | 
 
|  | 0 | 0 | assert(out && out_len && diriter); | 
 
|  | 0 | 0 | assert(out && out_len && diriter); | 
 
| 1449 | 0 | 0 | assert(diriter->path.size > diriter->parent_len); | 
 
| 1461 | 1250 | 0 | assert(out && out_len && diriter); | 
 
|  | 1250 | 0 | assert(out && out_len && diriter); | 
 
|  | 0 | 1250 | assert(out && out_len && diriter); | 
 
| 1470 | 1113 | 0 | assert(out && diriter); | 
 
|  | 0 | 1113 | assert(out && diriter); | 
 
| 1477 | 0 | 456 | if (diriter == NULL) | 
 
| 1480 | 454 | 2 | if (diriter->dir) { | 
 
| 1506 | 2 | 0 | assert(contents && path); | 
 
|  | 0 | 2 | assert(contents && path); | 
 
| 1508 | 0 | 2 | if ((error = git_path_diriter_init(&iter, path, flags)) < 0) | 
 
| 1511 | 4 | 2 | while ((error = git_path_diriter_next(&iter)) == 0) { | 
 
| 1512 | 0 | 4 | if ((error = git_path_diriter_fullpath(&name, &name_len, &iter)) < 0) | 
 
| 1515 | 0 | 4 | assert(name_len > prefix_len); | 
 
| 1518 | 0 | 4 | GIT_ERROR_CHECK_ALLOC(dup); | 
 
| 1520 | 0 | 4 | if ((error = git_vector_insert(contents, dup)) < 0) | 
 
| 1524 | 2 | 0 | if (error == GIT_ITEROVER) | 
 
| 1533 | 3 | 3 | if (git_path_is_local_file_url(url_or_path)) | 
 
| 1548 | 0 | 0 | size_t last = trailing_num ? 4 : 3; | 
 
| 1550 | 0 | 0 | if (len < last || git__strncasecmp(component, dospath, 3) != 0) | 
 
|  | 0 | 0 | if (len < last || git__strncasecmp(component, dospath, 3) != 0) | 
 
| 1553 | 0 | 0 | if (trailing_num && (component[3] < '1' || component[3] > '9')) | 
 
|  | 0 | 0 | if (trailing_num && (component[3] < '1' || component[3] > '9')) | 
 
|  | 0 | 0 | if (trailing_num && (component[3] < '1' || component[3] > '9')) | 
 
| 1556 | 0 | 0 | return (len > last && | 
 
| 1557 | 0 | 0 | component[last] != '.' && | 
 
|  | 0 | 0 | component[last] != '.' && | 
 
| 1563 | 0 | 0 | while (*len) { | 
 
| 1566 | 0 | 0 | if (cp_len < 0) | 
 
| 1573 | 0 | 0 | switch (codepoint) { | 
 
| 1607 | 0 | 0 | if (next_hfs_char(&path, &len) != '.') | 
 
| 1610 | 0 | 0 | for (i = 0; i < needle_len; i++) { | 
 
| 1612 | 0 | 0 | if (c != needle[i]) | 
 
| 1616 | 0 | 0 | if (next_hfs_char(&path, &len) != '\0') | 
 
| 1633 | 370 | 165 | if (repo) | 
 
| 1636 | 1057 | 522 | for (i = 0; i < reserved_len; i++) { | 
 
| 1639 | 836 | 221 | if (len >= r->size && | 
 
|  | 13 | 823 | if (len >= r->size && | 
 
| 1646 | 522 | 13 | if (!start) | 
 
| 1654 | 13 | 0 | if (path[start] == '\\' || path[start] == ':') | 
 
|  | 0 | 13 | if (path[start] == '\\' || path[start] == ':') | 
 
| 1658 | 13 | 0 | for (i = start; i < len; i++) { | 
 
| 1659 | 13 | 0 | if (path[i] != ' ' && path[i] != '.') | 
 
|  | 13 | 0 | if (path[i] != ' ' && path[i] != '.') | 
 
| 1680 | 0 | 0 | if (*c == '\0' || *c == ':') | 
 
|  | 0 | 0 | if (*c == '\0' || *c == ':') | 
 
| 1682 | 0 | 0 | if (*c != ' ' && *c != '.') | 
 
|  | 0 | 0 | if (*c != ' ' && *c != '.') | 
 
| 1693 | 0 | 0 | if (name[0] == '.' && len >= dotgit_len && | 
 
|  | 0 | 0 | if (name[0] == '.' && len >= dotgit_len && | 
 
|  | 0 | 0 | if (name[0] == '.' && len >= dotgit_len && | 
 
| 1699 | 0 | 0 | if (!strncasecmp(name, dotgit_name, 6) && name[6] == '~' && | 
 
|  | 0 | 0 | if (!strncasecmp(name, dotgit_name, 6) && name[6] == '~' && | 
 
|  | 0 | 0 | if (!strncasecmp(name, dotgit_name, 6) && name[6] == '~' && | 
 
| 1700 | 0 | 0 | name[7] >= '1' && name[7] <= '4') | 
 
| 1704 | 0 | 0 | for (i = 0, saw_tilde = 0; i < 8; i++) { | 
 
| 1705 | 0 | 0 | if (name[i] == '\0') { | 
 
| 1707 | 0 | 0 | } else if (saw_tilde) { | 
 
| 1708 | 0 | 0 | if (name[i] < '0' || name[i] > '9') | 
 
|  | 0 | 0 | if (name[i] < '0' || name[i] > '9') | 
 
| 1710 | 0 | 0 | } else if (name[i] == '~') { | 
 
| 1711 | 0 | 0 | if (name[i+1] < '1' || name[i+1]  > '9') | 
 
|  | 0 | 0 | if (name[i+1] < '1' || name[i+1]  > '9') | 
 
| 1714 | 0 | 0 | } else if (i >= 6) { | 
 
| 1716 | 0 | 0 | } else if ((unsigned char)name[i] > 127) { | 
 
| 1718 | 0 | 0 | } else if (git__tolower(name[i]) != shortname_pfix[i]) { | 
 
| 1728 | 0 | 4919 | if ((flags & GIT_PATH_REJECT_BACKSLASH) && c == '\\') | 
 
|  | 0 | 0 | if ((flags & GIT_PATH_REJECT_BACKSLASH) && c == '\\') | 
 
| 1731 | 1170 | 3749 | if ((flags & GIT_PATH_REJECT_SLASH) && c == '/') | 
 
|  | 1 | 1169 | if ((flags & GIT_PATH_REJECT_SLASH) && c == '/') | 
 
| 1734 | 0 | 4918 | if (flags & GIT_PATH_REJECT_NT_CHARS) { | 
 
| 1735 | 0 | 0 | if (c < 32) | 
 
| 1738 | 0 | 0 | switch (c) { | 
 
| 1761 | 0 | 0 | while (len >0 && tolower(*str) == tolower(*prefix)) { | 
 
|  | 0 | 0 | while (len >0 && tolower(*str) == tolower(*prefix)) { | 
 
| 1787 | 0 | 803 | if (len == 0) | 
 
| 1790 | 803 | 0 | if ((flags & GIT_PATH_REJECT_TRAVERSAL) && | 
 
|  | 7 | 796 | if ((flags & GIT_PATH_REJECT_TRAVERSAL) && | 
 
| 1791 | 0 | 7 | len == 1 && component[0] == '.') | 
 
| 1794 | 803 | 0 | if ((flags & GIT_PATH_REJECT_TRAVERSAL) && | 
 
|  | 0 | 803 | if ((flags & GIT_PATH_REJECT_TRAVERSAL) && | 
 
| 1795 | 0 | 0 | len == 2 && component[0] == '.' && component[1] == '.') | 
 
|  | 0 | 0 | len == 2 && component[0] == '.' && component[1] == '.') | 
 
| 1798 | 0 | 803 | if ((flags & GIT_PATH_REJECT_TRAILING_DOT) && component[len-1] == '.') | 
 
|  | 0 | 0 | if ((flags & GIT_PATH_REJECT_TRAILING_DOT) && component[len-1] == '.') | 
 
| 1801 | 0 | 803 | if ((flags & GIT_PATH_REJECT_TRAILING_SPACE) && component[len-1] == ' ') | 
 
|  | 0 | 0 | if ((flags & GIT_PATH_REJECT_TRAILING_SPACE) && component[len-1] == ' ') | 
 
| 1804 | 0 | 803 | if ((flags & GIT_PATH_REJECT_TRAILING_COLON) && component[len-1] == ':') | 
 
|  | 0 | 0 | if ((flags & GIT_PATH_REJECT_TRAILING_COLON) && component[len-1] == ':') | 
 
| 1807 | 0 | 803 | if (flags & GIT_PATH_REJECT_DOS_PATHS) { | 
 
| 1809 | 0 | 0 | !verify_dospath(component, len, "PRN", false) || | 
 
| 1810 | 0 | 0 | !verify_dospath(component, len, "AUX", false) || | 
 
| 1811 | 0 | 0 | !verify_dospath(component, len, "NUL", false) || | 
 
| 1812 | 0 | 0 | !verify_dospath(component, len, "COM", true)  || | 
 
| 1817 | 0 | 803 | if (flags & GIT_PATH_REJECT_DOT_GIT_HFS) { | 
 
| 1818 | 0 | 0 | if (!verify_dotgit_hfs(component, len)) | 
 
| 1820 | 0 | 0 | if (S_ISLNK(mode) && git_path_is_gitfile(component, len, GIT_PATH_GITFILE_GITMODULES, GIT_PATH_FS_HFS)) | 
 
|  | 0 | 0 | if (S_ISLNK(mode) && git_path_is_gitfile(component, len, GIT_PATH_GITFILE_GITMODULES, GIT_PATH_FS_HFS)) | 
 
| 1824 | 535 | 268 | if (flags & GIT_PATH_REJECT_DOT_GIT_NTFS) { | 
 
| 1825 | 0 | 535 | if (!verify_dotgit_ntfs(repo, component, len)) | 
 
| 1827 | 0 | 535 | if (S_ISLNK(mode) && git_path_is_gitfile(component, len, GIT_PATH_GITFILE_GITMODULES, GIT_PATH_FS_NTFS)) | 
 
|  | 0 | 0 | if (S_ISLNK(mode) && git_path_is_gitfile(component, len, GIT_PATH_GITFILE_GITMODULES, GIT_PATH_FS_NTFS)) | 
 
| 1834 | 803 | 0 | if ((flags & GIT_PATH_REJECT_DOT_GIT_HFS) == 0 && | 
 
|  | 268 | 535 | if ((flags & GIT_PATH_REJECT_DOT_GIT_HFS) == 0 && | 
 
| 1835 | 0 | 268 | (flags & GIT_PATH_REJECT_DOT_GIT_NTFS) == 0 && | 
 
| 1837 | 0 | 0 | if (len >= 4 && | 
 
|  | 0 | 0 | if (len >= 4 && | 
 
| 1838 | 0 | 0 | component[0] == '.' && | 
 
| 1839 | 0 | 0 | (component[1] == 'g' || component[1] == 'G') && | 
 
|  | 0 | 0 | (component[1] == 'g' || component[1] == 'G') && | 
 
| 1840 | 0 | 0 | (component[2] == 'i' || component[2] == 'I') && | 
 
|  | 0 | 0 | (component[2] == 'i' || component[2] == 'I') && | 
 
| 1841 | 0 | 0 | (component[3] == 't' || component[3] == 'T')) { | 
 
| 1842 | 0 | 0 | if (len == 4) | 
 
| 1845 | 0 | 0 | if (S_ISLNK(mode) && common_prefix_icase(component, len, ".gitmodules") == len) | 
 
|  | 0 | 0 | if (S_ISLNK(mode) && common_prefix_icase(component, len, ".gitmodules") == len) | 
 
| 1866 | 351 | 112 | if (repo && !protectHFS) | 
 
|  | 351 | 0 | if (repo && !protectHFS) | 
 
| 1868 | 463 | 0 | if (!error && protectHFS) | 
 
|  | 0 | 463 | if (!error && protectHFS) | 
 
| 1871 | 351 | 112 | if (repo) | 
 
| 1873 | 463 | 0 | if (!error && protectNTFS) | 
 
|  | 463 | 0 | if (!error && protectNTFS) | 
 
| 1888 | 463 | 115 | if ((flags & GIT_PATH_REJECT_DOT_GIT)) | 
 
| 1891 | 4919 | 577 | for (start = c = path; *c; c++) { | 
 
| 1892 | 1 | 4918 | if (!verify_char(*c, flags)) | 
 
| 1895 | 226 | 4692 | if (*c == '/') { | 
 
| 1896 | 0 | 226 | if (!verify_component(repo, start, (c - start), mode, flags)) | 
 
| 1911 | 0 | 0 | if ((error = git_buf_puts(out, path)) < 0) | 
 
| 1914 | 0 | 0 | for (p = out->ptr; *p; p++) { | 
 
| 1915 | 0 | 0 | if (*p == '\\') | 
 
| 1937 | 0 | 0 | if (!(gitfile >= GIT_PATH_GITFILE_GITIGNORE && gitfile < ARRAY_SIZE(gitfiles))) { | 
 
| 1968 | 5 | 0 | p_close(fd) < 0 || | 
 
| 1969 | 5 | 0 | p_unlink(path.ptr) < 0 || | 
 
| 1970 | 5 | 0 | p_symlink("testing", path.ptr) < 0 || | 
 
| 1976 | 5 | 0 | if (path.size) |