if( ! is_path_delim( f->f_dir.ptr[f->f_dir.len-1] ) ) string_push_back( file, as_path_delim( f->f_dir.ptr[f->f_dir.len] ) );
path_build(	PATHNAME *f,	string	*file,	int	binding ){    file_build1( f, file );        /* Don't prepend root if it's . or directory is rooted */# if PATH_DELIM == '/'    if( f->f_root.len         && !( f->f_root.len == 1 && f->f_root.ptr[0] == '.' )        && !( f->f_dir.len && f->f_dir.ptr[0] == '/' ) )# else /* unix */    if( f->f_root.len         && !( f->f_root.len == 1 && f->f_root.ptr[0] == '.' )        && !( f->f_dir.len && f->f_dir.ptr[0] == '/' )        && !( f->f_dir.len && f->f_dir.ptr[0] == '\\' )        && !( f->f_dir.len && f->f_dir.ptr[1] == ':' ) )# endif /* unix */    {        string_append_range( file, f->f_root.ptr, f->f_root.ptr + f->f_root.len  );        /* If 'root' already ends with path delimeter,            don't add yet another one. */        if( ! is_path_delim( f->f_root.ptr[f->f_root.len-1] ) )            string_push_back( file, as_path_delim( f->f_root.ptr[f->f_root.len] ) );    }    if( f->f_dir.len )    {        string_append_range( file, f->f_dir.ptr, f->f_dir.ptr + f->f_dir.len  );    }    /* Put the path separator between directory and file, if needed    */    if( f->f_dir.len && ( f->f_base.len || f->f_suffix.len ) )    {        /* If 'root' already ends with path delimeter,            don't add yet another one. */        if( ! is_path_delim( f->f_dir.ptr[f->f_dir.len-1] ) )            string_push_back( file, as_path_delim( f->f_dir.ptr[f->f_dir.len] ) );    }    if( f->f_base.len )    {        string_append_range( file, f->f_base.ptr, f->f_base.ptr + f->f_base.len  );    }    if( f->f_suffix.len )    {        string_append_range( file, f->f_suffix.ptr, f->f_suffix.ptr + f->f_suffix.len  );    }    if( f->f_member.len )    {        string_push_back( file, '(' );        string_append_range( file, f->f_member.ptr, f->f_member.ptr + f->f_member.len  );        string_push_back( file, ')' );    }}