From 977758fe062a51f6d6dc2be227688ddfa768c680 Mon Sep 17 00:00:00 2001 From: Eugene Kabanov Date: Wed, 29 Mar 2017 09:34:07 +0300 Subject: [PATCH] Fix posix.nim `dirent` structure to be more compatible with OSes. (#5623) --- lib/posix/posix.nim | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/posix/posix.nim b/lib/posix/posix.nim index a18db21500..b29f43eb4c 100644 --- a/lib/posix/posix.nim +++ b/lib/posix/posix.nim @@ -109,12 +109,17 @@ type Dirent* {.importc: "struct dirent", header: "", final, pure.} = object ## dirent_t struct d_ino*: Ino ## File serial number. - when defined(linux) or defined(macosx) or defined(bsd): + when defined(dragonfly): + # DragonflyBSD doesn't have `d_reclen` field. + d_type*: uint8 + elif defined(linux) or defined(macosx) or defined(freebsd) or + defined(netbsd) or defined(openbsd): d_reclen*: cshort ## Length of this record. (not POSIX) d_type*: int8 ## Type of file; not supported by all filesystem types. ## (not POSIX) - when defined(linux) or defined(bsd): + when defined(linux) or defined(openbsd): d_off*: Off ## Not an offset. Value that ``telldir()`` would return. + d_name*: array[0..255, char] ## Name of entry. Tflock* {.importc: "struct flock", final, pure,