Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
N
neoppod
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Levin Zimmermann
neoppod
Commits
f9046fbe
Commit
f9046fbe
authored
7 years ago
by
Kirill Smelkov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
.
parent
ae9e330c
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
41 additions
and
32 deletions
+41
-32
t/neo/storage/fs1/cmd/fstail/xstrconv.go
t/neo/storage/fs1/cmd/fstail/xstrconv.go
+6
-4
t/neo/storage/fs1/cmd/fstail/xstrconv_test.go
t/neo/storage/fs1/cmd/fstail/xstrconv_test.go
+35
-28
No files found.
t/neo/storage/fs1/cmd/fstail/xstrconv.go
View file @
f9046fbe
...
...
@@ -3,7 +3,6 @@
package
main
import
(
"fmt"
"strconv"
"strings"
"unicode/utf8"
...
...
@@ -17,9 +16,12 @@ func pyQuote(s string) string {
return
mem
.
String
(
out
)
}
const
hex
=
"0123456789abcdef"
func
pyQuoteBytes
(
b
[]
byte
)
[]
byte
{
s
:=
mem
.
String
(
b
)
buf
:=
make
([]
byte
,
0
,
len
(
s
))
buf
:=
make
([]
byte
,
0
,
len
(
s
)
+
2
/*quotes*/
)
// smartquotes: choose ' or " as quoting character
// https://github.com/python/cpython/blob/v2.7.13-116-g1aa1803b3d/Objects/stringobject.c#L947
...
...
@@ -34,7 +36,7 @@ func pyQuoteBytes(b []byte) []byte {
for
i
,
r
:=
range
s
{
switch
r
{
case
utf8
.
RuneError
:
buf
=
append
(
buf
,
[]
byte
(
fmt
.
Sprintf
(
"
\\
x%02x"
,
s
[
i
]))
...
)
buf
=
append
(
buf
,
'\\'
,
'x'
,
hex
[
s
[
i
]
>>
4
],
hex
[
s
[
i
]
&
0xf
]
)
case
'\\'
,
rune
(
quote
)
:
buf
=
append
(
buf
,
'\\'
,
byte
(
r
))
case
rune
(
noquote
)
:
...
...
@@ -53,7 +55,7 @@ func pyQuoteBytes(b []byte) []byte {
switch
{
case
r
<
' '
:
// we already converted to \<letter> what python represents as such above
buf
=
append
(
buf
,
[]
byte
(
fmt
.
Sprintf
(
"
\\
x%02x"
,
s
[
i
]))
...
)
buf
=
append
(
buf
,
'\\'
,
'x'
,
hex
[
s
[
i
]
>>
4
],
hex
[
s
[
i
]
&
0xf
]
)
default
:
// we already handled ', " and (< ' ') above, so now it
...
...
This diff is collapsed.
Click to expand it.
t/neo/storage/fs1/cmd/fstail/xstrconv_test.go
View file @
f9046fbe
...
...
@@ -15,9 +15,7 @@ func byterange(start, stop byte) []byte {
return
b
}
func
TestPyQuote
(
t
*
testing
.
T
)
{
// XXX -> global
testv
:=
[]
struct
{
in
,
quoted
string
}
{
var
pyQuoteTestv
=
[]
struct
{
in
,
quoted
string
}
{
// empty
{
``
,
`''`
},
...
...
@@ -41,12 +39,21 @@ func TestPyQuote(t *testing.T) {
// invalid utf-8
{
"
\xd0
a"
,
`'\xd0a'`
},
}
}
for
_
,
tt
:=
range
testv
{
func
TestPyQuote
(
t
*
testing
.
T
)
{
for
_
,
tt
:=
range
pyQuoteTestv
{
quoted
:=
pyQuote
(
tt
.
in
)
if
quoted
!=
tt
.
quoted
{
t
.
Errorf
(
"pyQuote(%q) -> %s ; want %s"
,
tt
.
in
,
quoted
,
tt
.
quoted
)
}
}
}
func
BenchmarkPyQuote
(
b
*
testing
.
B
)
{
for
i
:=
0
;
i
<
b
.
N
;
i
++
{
for
_
,
tt
:=
range
pyQuoteTestv
{
pyQuote
(
tt
.
in
)
}
}
}
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment