summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib.go15
-rw-r--r--lib_test.go18
2 files changed, 10 insertions, 23 deletions
diff --git a/lib.go b/lib.go
index 424d3f9..31b64a5 100644
--- a/lib.go
+++ b/lib.go
@@ -21,7 +21,6 @@ import (
"regexp"
"strconv"
"strings"
- "unicode"
)
// ReadZipReader can be used to read the spreadsheet in memory without touching the
@@ -588,10 +587,6 @@ func bstrUnmarshal(s string) (result string) {
subStr := s[match[0]:match[1]]
if subStr == "_x005F_" {
cursor = match[1]
- if l > match[1]+6 && !bstrEscapeExp.MatchString(s[match[1]:match[1]+6]) {
- result += subStr
- continue
- }
result += "_"
continue
}
@@ -607,15 +602,7 @@ func bstrUnmarshal(s string) (result string) {
result += subStr
continue
}
- hasRune := false
- for _, c := range v {
- if unicode.IsControl(c) {
- hasRune = true
- }
- }
- if !hasRune {
- result += v
- }
+ result += v
}
}
if cursor < l {
diff --git a/lib_test.go b/lib_test.go
index 025bc85..556ed91 100644
--- a/lib_test.go
+++ b/lib_test.go
@@ -263,21 +263,21 @@ func TestGenXMLNamespace(t *testing.T) {
func TestBstrUnmarshal(t *testing.T) {
bstrs := map[string]string{
"*": "*",
- "*_x0000_": "*",
- "*_x0008_": "*",
- "_x0008_*": "*",
- "*_x0008_*": "**",
+ "*_x0000_": "*\x00",
+ "*_x0008_": "*\b",
+ "_x0008_*": "\b*",
+ "*_x0008_*": "*\b*",
"*_x4F60__x597D_": "*你好",
"*_xG000_": "*_xG000_",
"*_xG05F_x0001_*": "*_xG05F*",
- "*_x005F__x0008_*": "*_x005F_*",
+ "*_x005F__x0008_*": "*_\b*",
"*_x005F_x0001_*": "*_x0001_*",
- "*_x005f_x005F__x0008_*": "*_x005F_*",
+ "*_x005f_x005F__x0008_*": "*_x005F_\b*",
"*_x005F_x005F_xG05F_x0006_*": "*_x005F_xG05F*",
"*_x005F_x005F_x005F_x0006_*": "*_x005F_x0006_*",
- "_x005F__x0008_******": "_x005F_******",
- "******_x005F__x0008_": "******_x005F_",
- "******_x005F__x0008_******": "******_x005F_******",
+ "_x005F__x0008_******": "_\b******",
+ "******_x005F__x0008_": "******_\b",
+ "******_x005F__x0008_******": "******_\b******",
}
for bstr, expected := range bstrs {
assert.Equal(t, expected, bstrUnmarshal(bstr))