Started work on proper tests.
STILL HAVING STUPID UNEXPLAINABLE NIL POINTERS.
This commit is contained in:
+11
-12
@@ -8,29 +8,29 @@ import (
|
||||
"github.com/CalebQ42/squashfs/internal/inode"
|
||||
)
|
||||
|
||||
type FileInfo struct {
|
||||
type fileInfo struct {
|
||||
e directory.Entry
|
||||
size int64
|
||||
perm uint32
|
||||
modTime uint32
|
||||
}
|
||||
|
||||
func (r Reader) newFileInfo(e directory.Entry) (FileInfo, error) {
|
||||
func (r Reader) newFileInfo(e directory.Entry) (fileInfo, error) {
|
||||
i, err := r.inodeFromDir(e)
|
||||
if err != nil {
|
||||
return FileInfo{}, err
|
||||
return fileInfo{}, err
|
||||
}
|
||||
return newFileInfo(e, i), nil
|
||||
}
|
||||
|
||||
func newFileInfo(e directory.Entry, i inode.Inode) FileInfo {
|
||||
func newFileInfo(e directory.Entry, i inode.Inode) fileInfo {
|
||||
var size int64
|
||||
if i.Type == inode.Fil {
|
||||
size = int64(i.Data.(inode.File).Size)
|
||||
} else if i.Type == inode.EFil {
|
||||
size = int64(i.Data.(inode.EFile).Size)
|
||||
}
|
||||
return FileInfo{
|
||||
return fileInfo{
|
||||
e: e,
|
||||
size: size,
|
||||
perm: uint32(i.Perm),
|
||||
@@ -38,30 +38,29 @@ func newFileInfo(e directory.Entry, i inode.Inode) FileInfo {
|
||||
}
|
||||
}
|
||||
|
||||
func (f FileInfo) Name() string {
|
||||
func (f fileInfo) Name() string {
|
||||
return f.e.Name
|
||||
}
|
||||
|
||||
func (f FileInfo) Size() int64 {
|
||||
func (f fileInfo) Size() int64 {
|
||||
return f.size
|
||||
}
|
||||
|
||||
func (f FileInfo) Mode() fs.FileMode {
|
||||
func (f fileInfo) Mode() fs.FileMode {
|
||||
if f.IsDir() {
|
||||
return fs.FileMode(f.perm | uint32(fs.ModeDir))
|
||||
}
|
||||
return fs.FileMode(f.perm)
|
||||
}
|
||||
|
||||
func (f FileInfo) ModTime() time.Time {
|
||||
func (f fileInfo) ModTime() time.Time {
|
||||
return time.Unix(int64(f.modTime), 0)
|
||||
}
|
||||
|
||||
func (f FileInfo) IsDir() bool {
|
||||
func (f fileInfo) IsDir() bool {
|
||||
return f.e.Type == inode.Dir
|
||||
}
|
||||
|
||||
func (f FileInfo) Sys() any {
|
||||
//TODO
|
||||
func (f fileInfo) Sys() any {
|
||||
return nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user