fix line count for files that don't end in a newline
Signed-off-by: Derek Stevens <nilix@nilfm.cc>
This commit is contained in:
parent
ee5ab32a40
commit
ee800624f5
|
@ -45,15 +45,23 @@ func (d *deps) listFiles(files []git.NiceTree, data map[string]any, w http.Respo
|
|||
|
||||
func countLines(r io.Reader) (int, error) {
|
||||
buf := make([]byte, 32*1024)
|
||||
bufLen := 0
|
||||
count := 0
|
||||
nl := []byte{'\n'}
|
||||
|
||||
for {
|
||||
c, err := r.Read(buf)
|
||||
if c > 0 {
|
||||
bufLen += c
|
||||
}
|
||||
count += bytes.Count(buf[:c], nl)
|
||||
|
||||
switch {
|
||||
case err == io.EOF:
|
||||
/* handle last line not having a newline at the end */
|
||||
if bufLen >= 1 && buf[bufLen-1] != '\n' {
|
||||
count++
|
||||
}
|
||||
return count, nil
|
||||
case err != nil:
|
||||
return 0, err
|
||||
|
|
Loading…
Reference in New Issue