-/* Turns multiple adjacent slashes into a single slash, gets rid of "./"
- * elements (but not a trailing dot dir), removes a trailing slash, and
- * optionally collapses ".." elements (except for those at the start of the
- * string). If the resulting name would be empty, change it into a ".". */
-unsigned int clean_fname(char *name, BOOL collapse_dot_dot)
+/* Turns multiple adjacent slashes into a single slash, drops interior "."
+ * elements, drops an intial "./" unless CFN_KEEP_LEADING_DOT_DIR is flagged,
+ * will even drop a trailing '.' after a '/' if CFN_DROP_TRAILING_DOT_DIR is
+ * flagged, removes a trailing slash (perhaps after removing the aforementioned
+ * dot) unless CFN_KEEP_TRAILING_SLASH is flagged, will even collapse ".."
+ * elements (except at the start of the string) if CFN_COLLAPSE_DOT_DOT_DIRS
+ * is flagged. If the resulting name would be empty, we return ".". */
+unsigned int clean_fname(char *name, int flags)