Well, after reading a lot of boring documentation about a file system I practically never use created by a company whose products I'm allergic to, I've arrived at the conclusion that in a posix environment, all unicode characters except '/' and '\0' must be allowed.
My advice for the developers: Put the access of attributes functionality apart in a program.
For now, I'm separating the attributes with a bell control character with a dirty hack I'm not pretty sure it is correct because I don't care of attributes. I only want to get my files and put away "the fascinating world of NTFS!"
https://blogs.technet.microsoft.com/askcore/2010/08/25/ntfs-file-attributes/ Regards, trebol. --- ntfs_subr.c 2017-11-13 00:05:07.333116651 +0000 +++ ntfs_subr.c.orig 2017-11-12 11:44:53.152382608 +0000 @@ -696,7 +696,7 @@ } /* - * Lookup attribute name in format: [['\a'$ATTR_TYPE]:$ATTR_NAME], + * Lookup attribute name in format: [[:$ATTR_TYPE]:$ATTR_NAME], * $ATTR_TYPE is searched in attrdefs read from $AttrDefs. * If $ATTR_TYPE not specified, ATTR_A_DATA assumed. */ @@ -782,14 +782,14 @@ } /* - * Divide file name into: foofilefoofilefoofile['\a'attrspec] + * Divide file name into: foofilefoofilefoofile[:attrspec] * Store like this: fname:fnamelen [aname:anamelen] */ fname = cnp->cn_nameptr; aname = NULL; anamelen = 0; for (fnamelen = 0; fnamelen < cnp->cn_namelen; fnamelen++) - if (fname[fnamelen] == '\a') { + if (fname[fnamelen] == ':') { aname = fname + fnamelen + 1; anamelen = cnp->cn_namelen - fnamelen - 1; dprintf(("%s: %s (%d), attr: %s (%d)\n", __func__,