all repos — legit @ ee800624f58b26204c1f846a524ccef5a1b4e386

web frontend for git

fix line count for files that don't end in a newline

Signed-off-by: Derek Stevens <nilix@nilfm.cc>
Derek Stevens nilix@nilfm.cc
Wed, 01 Feb 2023 22:08:04 -0700
commit

ee800624f58b26204c1f846a524ccef5a1b4e386

parent

ee5ab32a40e5ae4c0f629dc9313e9a1115d6a8ee

1 files changed, 8 insertions(+), 0 deletions(-)

jump to
M routes/template.goroutes/template.go

@@ -45,15 +45,23 @@ }

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