shithub: mc

Download patch

ref: c464f4b8cc56ae10e8f053efc6ec8b7e9989d4df
parent: 5fc8fe7bec594a98c7a2b9fbdfc5f7fb4f11c7c9
author: Ori Bernstein <[email protected]>
date: Thu Jun 19 16:46:03 EDT 2014

Fix dir-linux to actually keep the offset.

--- a/libstd/dir-linux.myr
+++ b/libstd/dir-linux.myr
@@ -20,6 +20,8 @@
 	const dirclose	: (d : dir# -> void)
 ;;
 
+const Direntoverhead = 20
+
 const diropen = {p
 	var fd
 	var dir
@@ -33,7 +35,6 @@
 	-> `Ok dir
 }
 
-
 const dirread = {d
 	var len
 	var dent
@@ -49,7 +50,7 @@
 	;;
 
 	dent = &d.buf[d.off] castto(dirent64#)
-	namelen = (dent.reclen - 20) castto(size)
+	namelen = (dent.reclen - Direntoverhead) castto(size)
 	d.off += dent.reclen castto(int64)
 	-> `Some sldup(dent.name[:namelen])
 }