Skip to content

Commit

Permalink
Merge pull request #4 from softlandia/ValidUTF8
Browse files Browse the repository at this point in the history
fix ValidUTF8
  • Loading branch information
softlandia authored Feb 19, 2022
2 parents 2413526 + d58cd5d commit fcd43cc
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 5 deletions.
8 changes: 4 additions & 4 deletions cpd.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
//Package cpd - code page detect
// (c) 2020 [email protected]
package cpd

import (
"bufio"
"errors"
Expand Down Expand Up @@ -61,7 +61,7 @@ func CodepageAutoDetect(b []byte) IDCodePage {
// support convert only from/to Windows1251/IBM866
func FileConvertCodepage(fileName string, fromCP, toCP IDCodePage) error {
switch {
case (fromCP == toCP):
case fromCP == toCP:
return nil
case (fromCP != CP1251) && (fromCP != CP866):
return nil
Expand All @@ -74,7 +74,7 @@ func FileConvertCodepage(fileName string, fromCP, toCP IDCodePage) error {
}
defer iFile.Close()

//TODO need using sytem tmp folder
//TODO need using system tmp folder
tmpFileName := fileName + "~"
oFile, err := os.Create(tmpFileName)
if err != nil {
Expand Down Expand Up @@ -150,7 +150,7 @@ var (
errUnsupportedOutputCodepage = errors.New("cpd: output codepage not support encode")
)

// NewReader - convertion to UTF-8
// NewReader - conversion to UTF-8
// return input reader if input contain less 4 bytes
// return input reader if input contain ASCII data
// if cpn[0] exist, then using it as input codepage name
Expand Down
14 changes: 14 additions & 0 deletions go.mod
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
module github.com/softlandia/cpd

go 1.17

require (
github.com/stretchr/testify v1.7.0
golang.org/x/text v0.3.7
)

require (
github.com/davecgh/go-spew v1.1.0 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c // indirect
)
14 changes: 14 additions & 0 deletions go.sum
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk=
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
7 changes: 6 additions & 1 deletion utf8.go
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ func testUTF8bitPattern(b byte) (int, cp int32) {
return 0, 0
}

//ValidUTF8 - return true if imput slice contain true UTF-8
//ValidUTF8 - return true if input slice contain true UTF-8
func ValidUTF8(data []byte) bool {
m := len(data)
if m <= 1 {
Expand All @@ -67,6 +67,11 @@ func ValidUTF8(data []byte) bool {
if n == 0 {
return false
}

if i+int(n) >= m {
break
}

i++
var j int32
for j = 1; j < n; j++ {
Expand Down

0 comments on commit fcd43cc

Please sign in to comment.