aboutsummaryrefslogtreecommitdiff
path: root/bitreader.go
diff options
context:
space:
mode:
authorArda Serdar Pektezol <1669855+pektezol@users.noreply.github.com>2023-09-16 13:54:51 +0300
committerArda Serdar Pektezol <1669855+pektezol@users.noreply.github.com>2023-09-16 13:54:51 +0300
commit46e08f3bcb88ddfb2984ef67fce9e9ff0abafb8e (patch)
tree69e555f9f7f22442f5d087e58256cf1808c2b749 /bitreader.go
parentprevent negative bit parameters by using uint64 (diff)
downloadbitreader-1.4.3.tar.gz
bitreader-1.4.3.tar.bz2
bitreader-1.4.3.zip
fix readstring unicode readingHEADv1.4.3main
Diffstat (limited to 'bitreader.go')
-rw-r--r--bitreader.go16
1 files changed, 8 insertions, 8 deletions
diff --git a/bitreader.go b/bitreader.go
index e50f433..6b88709 100644
--- a/bitreader.go
+++ b/bitreader.go
@@ -368,18 +368,18 @@ func (reader *Reader) ReadBytes(bytes uint64) (uint64, error) {
368// 368//
369// Returns an error if there are no remaining bits. 369// Returns an error if there are no remaining bits.
370func (reader *Reader) ReadString() (string, error) { 370func (reader *Reader) ReadString() (string, error) {
371 var out string 371 var out []byte
372 for { 372 for {
373 value, err := reader.ReadBytes(1) 373 value, err := reader.ReadBytes(1)
374 if err != nil { 374 if err != nil {
375 return out, err 375 return string(out), err
376 } 376 }
377 if value == 0 { 377 if value == 0 {
378 break 378 break
379 } 379 }
380 out += string(rune(value)) 380 out = append(out, byte(value))
381 } 381 }
382 return out, nil 382 return string(out), nil
383} 383}
384 384
385// ReadStringLength is a function that reads every byte 385// ReadStringLength is a function that reads every byte
@@ -389,20 +389,20 @@ func (reader *Reader) ReadString() (string, error) {
389// 389//
390// Returns an error if there are no remaining bits. 390// Returns an error if there are no remaining bits.
391func (reader *Reader) ReadStringLength(length uint64) (string, error) { 391func (reader *Reader) ReadStringLength(length uint64) (string, error) {
392 var out string 392 var out []byte
393 var i uint64 393 var i uint64
394 for i = 0; i < length; i++ { 394 for i = 0; i < length; i++ {
395 value, err := reader.ReadBytes(1) 395 value, err := reader.ReadBytes(1)
396 if err != nil { 396 if err != nil {
397 return out, err 397 return string(out), err
398 } 398 }
399 if value == 0 { 399 if value == 0 {
400 reader.SkipBytes(length - 1 - i) 400 reader.SkipBytes(length - 1 - i)
401 break 401 break
402 } 402 }
403 out += string(rune(value)) 403 out = append(out, byte(value))
404 } 404 }
405 return out, nil 405 return string(out), nil
406} 406}
407 407
408// ReadBitsToSlice is a function that reads the specified amount of bits 408// ReadBitsToSlice is a function that reads the specified amount of bits