NetBSD-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: : in file's name using mount_ntfs (not fuse)




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__,


Home | Main Index | Thread Index | Old Index