@@ -53,8 +53,6 @@ putHeader entry =
53
53
$ take 148 block
54
54
++ putOct 7 checksum
55
55
++ ' ' : drop 156 block
56
- -- ++ putOct 8 checksum
57
- -- ++ drop 156 block
58
56
where
59
57
block = putHeaderNoChkSum entry
60
58
checksum = foldl' (\ x y -> x + ord y) 0 block
@@ -70,36 +68,36 @@ putHeaderNoChkSum Entry {
70
68
} =
71
69
72
70
concat
73
- [ putBString 100 $ name
74
- , putOct 8 $ permissions
71
+ [ putBString 100 name
72
+ , putOct 8 permissions
75
73
, putOct 8 $ ownerId ownership
76
74
, putOct 8 $ groupId ownership
77
- , numField 12 $ contentSize
78
- , putOct 12 $ modTime
79
- , fill 8 $ ' ' -- dummy checksum
80
- , putChar8 $ typeCode
81
- , putBString 100 $ linkTarget
75
+ , numField 12 contentSize
76
+ , putOct 12 modTime
77
+ , replicate 8 ' ' -- dummy checksum
78
+ , putChar8 typeCode
79
+ , putBString 100 linkTarget
82
80
] ++
83
81
case format of
84
82
V7Format ->
85
- fill 255 ' \NUL '
83
+ replicate 255 ' \NUL '
86
84
UstarFormat -> concat
87
- [ putBString 8 $ ustarMagic
85
+ [ putBString 8 ustarMagic
88
86
, putString 32 $ ownerName ownership
89
87
, putString 32 $ groupName ownership
90
- , putOct 8 $ deviceMajor
91
- , putOct 8 $ deviceMinor
92
- , putBString 155 $ prefix
93
- , fill 12 $ ' \NUL '
88
+ , putOct 8 deviceMajor
89
+ , putOct 8 deviceMinor
90
+ , putBString 155 prefix
91
+ , replicate 12 ' \NUL '
94
92
]
95
93
GnuFormat -> concat
96
- [ putBString 8 $ gnuMagic
94
+ [ putBString 8 gnuMagic
97
95
, putString 32 $ ownerName ownership
98
96
, putString 32 $ groupName ownership
99
- , putGnuDev 8 $ deviceMajor
100
- , putGnuDev 8 $ deviceMinor
101
- , putBString 155 $ prefix
102
- , fill 12 $ ' \NUL '
97
+ , putGnuDev 8 deviceMajor
98
+ , putGnuDev 8 deviceMinor
99
+ , putBString 155 prefix
100
+ , replicate 12 ' \NUL '
103
101
]
104
102
where
105
103
numField :: (Integral a , Bits a , Show a ) => FieldWidth -> a -> String
@@ -132,10 +130,10 @@ gnuMagic = BS.Char8.pack "ustar \NUL"
132
130
type FieldWidth = Int
133
131
134
132
putBString :: FieldWidth -> BS. ByteString -> String
135
- putBString n s = BS.Char8. unpack (BS. take n s) ++ fill (n - BS. length s) ' \NUL '
133
+ putBString n s = BS.Char8. unpack (BS. take n s) ++ replicate (n - BS. length s) ' \NUL '
136
134
137
135
putString :: FieldWidth -> String -> String
138
- putString n s = take n s ++ fill (n - length s) ' \NUL '
136
+ putString n s = take n s ++ replicate (n - length s) ' \NUL '
139
137
140
138
{-# SPECIALISE putLarge :: FieldWidth -> Int64 -> String #-}
141
139
putLarge :: (Bits a , Integral a ) => FieldWidth -> a -> String
@@ -146,12 +144,9 @@ putLarge n0 x0 = '\x80' : reverse (go (n0-1) x0)
146
144
putOct :: (Integral a , Show a ) => FieldWidth -> a -> String
147
145
putOct n x =
148
146
let octStr = take (n- 1 ) $ showOct x " "
149
- in fill (n - length octStr - 1 ) ' 0'
147
+ in replicate (n - length octStr - 1 ) ' 0'
150
148
++ octStr
151
149
++ putChar8 ' \NUL '
152
150
153
151
putChar8 :: Char -> String
154
152
putChar8 c = [c]
155
-
156
- fill :: FieldWidth -> Char -> String
157
- fill n c = replicate n c
0 commit comments