Application Context Implementation #4
							
								
								
									
										41
									
								
								src/sys.zig
									
									
									
									
									
								
							
							
						
						
									
										41
									
								
								src/sys.zig
									
									
									
									
									
								
							| @ -550,26 +550,39 @@ pub const FileSystem = enum { | ||||
|             .length = 0, | ||||
|         }; | ||||
| 
 | ||||
|         for (sequences) |sequence| if (sequence.len != 0) { | ||||
|             var components = mem.Spliterator(u8){ | ||||
|                 .source = sequence, | ||||
|                 .delimiter = "/", | ||||
|             }; | ||||
|         if (sequences.len != 0) { | ||||
|             const last_sequence_index = sequences.len - 1; | ||||
| 
 | ||||
|             while (components.next()) |component| if (component.len != 0) { | ||||
|                 for (component) |byte| { | ||||
|             for (sequences) |sequence, index| if (sequence.len != 0) { | ||||
|                 var components = mem.Spliterator(u8){ | ||||
|                     .source = sequence, | ||||
|                     .delimiter = "/", | ||||
|                 }; | ||||
| 
 | ||||
|                 while (components.next()) |component| if (component.len != 0) { | ||||
|                     for (component) |byte| { | ||||
|                         if (path.length == Path.max) return error.TooLong; | ||||
| 
 | ||||
|                         path.buffer[path.length] = byte; | ||||
|                         path.length += 1; | ||||
|                     } | ||||
| 
 | ||||
|                     if (components.hasNext()) { | ||||
|                         if (path.length == Path.max) return error.TooLong; | ||||
| 
 | ||||
|                         path.buffer[path.length] = '/'; | ||||
|                         path.length += 1; | ||||
|                     } | ||||
|                 }; | ||||
| 
 | ||||
|                 if (index < last_sequence_index) { | ||||
|                     if (path.length == Path.max) return error.TooLong; | ||||
| 
 | ||||
|                     path.buffer[path.length] = byte; | ||||
|                     path.buffer[path.length] = '/'; | ||||
|                     path.length += 1; | ||||
|                 } | ||||
| 
 | ||||
|                 if (path.length == Path.max) return error.TooLong; | ||||
| 
 | ||||
|                 path.buffer[path.length] = '/'; | ||||
|                 path.length += 1; | ||||
|             }; | ||||
|         }; | ||||
|         } | ||||
| 
 | ||||
|         return path; | ||||
|     } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user