diff options
| author | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2019-06-19 15:59:12 +0200 | 
|---|---|---|
| committer | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2019-06-20 10:26:39 +0200 | 
| commit | f2981c2ff581e4e425c7b23da43aee29f25232c5 (patch) | |
| tree | 5e809b9d7aff2db64edcd89afdf1ed4b40f054d5 /include | |
| parent | 2f172ede7115d0a2730a3b689131042ba559e272 (diff) | |
simplify and improve canonicalize_name
 - Replace scan and memmove with simple automaton
 - Convert forward to back slashes, lots of file systems treat them
   equivalenty, this saves us a few more checks down the road
 - Remove './' path components. We can saveley remove them in a string
   processing step instead of throwing an error. Also they actually appear
   often in tar balls, possibly not under user control.
Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
Diffstat (limited to 'include')
| -rw-r--r-- | include/util.h | 6 | 
1 files changed, 3 insertions, 3 deletions
| diff --git a/include/util.h b/include/util.h index 28d21bc..d5b20dd 100644 --- a/include/util.h +++ b/include/util.h @@ -6,9 +6,9 @@  #include <stdint.h>  /* -  Removes all preceeding and trailing slashes, shortens all sequences of -  slashes to a single slash and returns failure state if one of the path -  components is '..' or '.'. +  Convert back to forward slashed, remove all preceeding and trailing slashes, +  collapse all sequences of slashes, remove all path components that are '.' +  and returns failure state if one of the path components is '..'.    Returns 0 on success.  */ | 
