diff --git a/fat.go b/fat.go index 4efc7c7..1b3486b 100644 --- a/fat.go +++ b/fat.go @@ -1981,8 +1981,7 @@ func (obj *objid) create_chain(clst uint32) uint32 { if cs < 2 { fsys.logerror("create_chain:insanity") return 1 - } - if cs == maxu32 || cs < fsys.n_fatent { + } else if cs == maxu32 || cs < fsys.n_fatent { // Disk error or it is already followed by next cluster. return cs } @@ -2018,21 +2017,19 @@ func (obj *objid) create_chain(clst uint32) uint32 { for { ncl++ if ncl >= fsys.n_fatent { - { - ncl = 2 - if ncl > scl { - return 0 // No free cluster. - } - } - cs = obj.clusterstat(ncl) - if cs == 0 { - break - } else if cs == 1 || cs == maxu32 { - return cs // Return error as is. - } else if ncl == scl { + ncl = 2 + if ncl > scl { return 0 // No free cluster. } } + cs = obj.clusterstat(ncl) + if cs == 0 { + break + } else if cs == 1 || cs == maxu32 { + return cs // Return error as is. + } else if ncl == scl { + return 0 // No free cluster. + } } } // Make new cluster EOC. diff --git a/fat_test.go b/fat_test.go index f61f128..ac65774 100644 --- a/fat_test.go +++ b/fat_test.go @@ -24,7 +24,14 @@ func ExampleRead() { return } var fp File - + // var root dir + // fr = fs.f_opendir(&root, "rootdir") + // if fr != frOK { + // log.Error("open dir failed:" + fr.Error()) + // return + // } + // fmt.Println("ok") + // return fr = fs.f_open(&fp, filename, faRead|faWrite|faCreateNew) if fr != frOK { log.Error("open for write failed:" + fr.Error()) @@ -70,6 +77,7 @@ func ExampleRead() { return } fmt.Println("wrote and read back file OK!") + // Output: aa } func DefaultFATByteBlocks(numBlocks int) *BytesBlocks {