Zig 0.17.0-dev (Split by item) This is an example of documentation generated by
ZigDoc , an alternative to Zig's built-in
Auto Doc feature. See also
examples in other modes/formats . The project being documented here (as the example) is the Zig standard library.
std › Build › Cache › getPrefixSubpath Private Function getPrefixSubpath Doc Source Private Function std.Build.Cache.getPrefixSubpath
fn getPrefixSubpath (gpa : Allocator , cwd : []const u8 , prefix : []const u8 , path : []u8 ) ![]u8 Params gpa : Allocator cwd : []const u8 prefix : []const u8 path : []u8 File Build/Cache.zig: 113
113
114
115
116
117
118
119
120
121
122
123
124
125 fn getPrefixSubpath (gpa : Allocator , cwd : []const u8 , prefix : []const u8 , path : []u8 ) ![]u8 {
const relative = try std .fs .path .relative (gpa , cwd , null , prefix , path );
errdefer gpa .free (relative );
var component_iterator : std .fs .path .NativeComponentIterator = .init (relative );
if (component_iterator .root () != null ) {
return error .NotASubPath ;
}
const first_component = component_iterator .first ();
if (first_component != null and std .mem .eql (u8 , first_component .?.name , ".." )) {
return error .NotASubPath ;
}
return relative ;
}