| 1090 | * guarantee; this check is a best-effort early skip on top of it. */ |
| 1091 | #ifdef _WIN32 |
| 1092 | static bool pkgmap_is_reparse_point(const char *abs_path) { |
| 1093 | wchar_t *wpath = cbm_path_to_wide(abs_path); |
| 1094 | if (!wpath) { |
| 1095 | return false; |
| 1096 | } |
| 1097 | DWORD attrs = GetFileAttributesW(wpath); |
| 1098 | free(wpath); |
| 1099 | if (attrs == INVALID_FILE_ATTRIBUTES) { |
| 1100 | return false; |
| 1101 | } |
| 1102 | return (attrs & FILE_ATTRIBUTE_REPARSE_POINT) != 0; |
| 1103 | } |
| 1104 | #endif |
| 1105 | |
| 1106 | /* Recursive filesystem walker that finds and parses package manifest |
no test coverage detected