From ae57151864c9100894b07bfe36627f060ea0659d Mon Sep 17 00:00:00 2001 From: Rauhul Varma Date: Sun, 14 Nov 2021 16:21:41 -0800 Subject: [PATCH] Minor fixes --- Sources/System/FileStatus/FileMode.swift | 8 ++++++- Sources/System/FileStatus/FileStatus.swift | 2 -- .../FileStatus/FileStatusOperations.swift | 3 ++- Sources/System/TimeSpecification.swift | 21 +++++++------------ 4 files changed, 16 insertions(+), 18 deletions(-) diff --git a/Sources/System/FileStatus/FileMode.swift b/Sources/System/FileStatus/FileMode.swift index d5577038..0c283bdc 100644 --- a/Sources/System/FileStatus/FileMode.swift +++ b/Sources/System/FileStatus/FileMode.swift @@ -11,7 +11,13 @@ // FIXME: should the subtypes of Mode mask their rawValues to only allow their bits to be changed? -// FIXME: Document +/// The superset of access permissions and type for a file. +/// +/// The following example creates an instance of the `FileMode` structure +/// from a raw octal literal and reads the file type from it: +/// +/// let mode = FileMode(rawValue: 0o140000) +/// mode.type == .socket // true @frozen // @available(macOS 9999, iOS 9999, watchOS 9999, tvOS 9999, *) public struct FileMode: RawRepresentable { diff --git a/Sources/System/FileStatus/FileStatus.swift b/Sources/System/FileStatus/FileStatus.swift index fc7e69b4..3568c7f2 100644 --- a/Sources/System/FileStatus/FileStatus.swift +++ b/Sources/System/FileStatus/FileStatus.swift @@ -23,7 +23,6 @@ public struct FileStatus: RawRepresentable { public init(rawValue: CInterop.Stat) { self.rawValue = rawValue } // FIXME: replace with swift type DeviceID that splits out major/minor - // FIXME: whats the difference between this and rDeviceID? /// ID of device containing file. @_alwaysEmitIntoClient public var deviceID: CInterop.DeviceID { rawValue.st_dev } @@ -48,7 +47,6 @@ public struct FileStatus: RawRepresentable { @_alwaysEmitIntoClient public var groupID: CInterop.GroupID { rawValue.st_gid } - // FIXME: whats the difference between this and deviceID? /// Device ID. @_alwaysEmitIntoClient public var rDeviceID: CInterop.DeviceID { rawValue.st_rdev } diff --git a/Sources/System/FileStatus/FileStatusOperations.swift b/Sources/System/FileStatus/FileStatusOperations.swift index 54a8fad9..33d63520 100644 --- a/Sources/System/FileStatus/FileStatusOperations.swift +++ b/Sources/System/FileStatus/FileStatusOperations.swift @@ -234,7 +234,8 @@ extension FileDescriptor { ) -> Result { path.withPlatformString { ptr in nothingOrErrno(retryOnInterrupt: retryOnInterrupt) { - system_fchmodat(self.rawValue, ptr, permissions.rawValue, fcntrl.rawValue) + system_fchmodat( + self.rawValue, ptr, permissions.rawValue, fcntrl.rawValue) } } } diff --git a/Sources/System/TimeSpecification.swift b/Sources/System/TimeSpecification.swift index 7b732f4a..a42fd7d5 100644 --- a/Sources/System/TimeSpecification.swift +++ b/Sources/System/TimeSpecification.swift @@ -24,25 +24,18 @@ public struct TimeSpecification: RawRepresentable { @_alwaysEmitIntoClient private init(_ raw: CInterop.TimeSpec) { self.init(rawValue: raw) } - // FIXME: This isn't right /// seconds since 1970 @_alwaysEmitIntoClient - public var seconds: Int { Int(rawValue.tv_sec) } + public var seconds: Int { + get { rawValue.tv_sec } + set { rawValue.tv_sec = newValue } + } /// nanoseconds @_alwaysEmitIntoClient - public var nanoseconds: Int { rawValue.tv_nsec } - - // FIXME: This isn't right - // (-1) - static var now: TimeSpecification { - .init(rawValue: CInterop.TimeSpec(tv_sec: .min, tv_nsec: _UTIME_NOW)) - } - - // FIXME: This isn't right - // (-2) - static var omit: TimeSpecification { - .init(rawValue: CInterop.TimeSpec(tv_sec: .min, tv_nsec: _UTIME_OMIT)) + public var nanoseconds: Int { + get { rawValue.tv_nsec } + set { rawValue.tv_nsec = newValue } } }