github.com/lmorg/murex@v0.0.0-20240217211045-e081c89cd4ef/builtins/core/io/f_windows.go (about)

     1  //go:build windows
     2  // +build windows
     3  
     4  package io
     5  
     6  import (
     7  	"os"
     8  )
     9  
    10  func matchFlags(add, remove fFlagsT, info os.FileInfo) bool {
    11  	mode := info.Mode()
    12  
    13  	return ((add.File() && mode.IsRegular()) ||
    14  		(add.Dir() && mode.IsDir()) ||
    15  		(add.Symlink() && mode&os.ModeSymlink != 0) ||
    16  		(add.DevBlock() && mode&os.ModeDevice != 0) ||
    17  		(add.DevChar() && mode&os.ModeCharDevice != 0) ||
    18  		(add.Socket() && mode&os.ModeSocket != 0) ||
    19  		(add.NamedPipe() && mode&os.ModeNamedPipe != 0) ||
    20  
    21  		(add.SetUid() && mode&os.ModeSetuid != 0) ||
    22  		(add.SetGid() && mode&os.ModeSetgid != 0) ||
    23  		(add.Sticky() && mode&os.ModeSticky != 0) ||
    24  
    25  		(add.Irregular() && mode&os.ModeIrregular != 0)) &&
    26  
    27  		!((remove.File() && mode.IsRegular()) ||
    28  			(remove.Dir() && mode.IsDir()) ||
    29  			(remove.Symlink() && mode&os.ModeSymlink != 0) ||
    30  			(remove.DevBlock() && mode&os.ModeDevice != 0) ||
    31  			(remove.DevChar() && mode&os.ModeCharDevice != 0) ||
    32  			(remove.Socket() && mode&os.ModeSocket != 0) ||
    33  			(remove.NamedPipe() && mode&os.ModeNamedPipe != 0) ||
    34  
    35  			(remove.SetUid() && mode&os.ModeSetuid != 0) ||
    36  			(remove.SetGid() && mode&os.ModeSetgid != 0) ||
    37  			(remove.Sticky() && mode&os.ModeSticky != 0) ||
    38  
    39  			(remove.Irregular() && mode&os.ModeIrregular != 0))
    40  }