Author: tthompson
Date: Sun Jun 25 04:29:04 2017
New Revision: 75193

URL: http://svn.reactos.org/svn/reactos?rev=75193&view=rev
Log:
[NTFS] - Fix creation of files with long filenames.

Modified:
    branches/GSoC_2016/NTFS/drivers/filesystems/ntfs/attrib.c

Modified: branches/GSoC_2016/NTFS/drivers/filesystems/ntfs/attrib.c
URL: 
http://svn.reactos.org/svn/reactos/branches/GSoC_2016/NTFS/drivers/filesystems/ntfs/attrib.c?rev=75193&r1=75192&r2=75193&view=diff
==============================================================================
--- branches/GSoC_2016/NTFS/drivers/filesystems/ntfs/attrib.c   [iso-8859-1] 
(original)
+++ branches/GSoC_2016/NTFS/drivers/filesystems/ntfs/attrib.c   [iso-8859-1] 
Sun Jun 25 04:29:04 2017
@@ -220,9 +220,15 @@
     DPRINT1("FileNameAttribute->DirectoryFileReferenceNumber: 0x%016I64x\n", 
FileNameAttribute->DirectoryFileReferenceNumber);
 
     FileNameAttribute->NameLength = FilenameNoPath.Length / sizeof(WCHAR);
-    // TODO: Get proper nametype, add DOS links as needed
-    FileNameAttribute->NameType = NTFS_FILE_NAME_WIN32_AND_DOS;
     RtlCopyMemory(FileNameAttribute->Name, FilenameNoPath.Buffer, 
FilenameNoPath.Length);
+
+    // For now, we're emulating the way Windows behaves when 8.3 name 
generation is disabled
+    // TODO: add DOS Filename as needed
+    if (RtlIsNameLegalDOS8Dot3(&FilenameNoPath, NULL, NULL))
+        FileNameAttribute->NameType = NTFS_FILE_NAME_WIN32_AND_DOS;
+    else
+        FileNameAttribute->NameType = NTFS_FILE_NAME_POSIX;
+    
     FileRecord->LinkCount++;
 
     AttributeAddress->Length = ResidentHeaderLength +


Reply via email to