wc: Count last line even if it doesn't end in newline

This commit is contained in:
Rodrigo Tobar 2021-10-27 10:58:38 +08:00 committed by Idan Horowitz
parent 040e29c7b9
commit f356c4ab91
Notes: sideshowbarker 2024-07-18 01:45:51 +09:00

View file

@ -55,7 +55,9 @@ static Count get_count(const String& file_specifier)
}
bool start_a_new_word = true;
int last_ch = EOF;
for (int ch = fgetc(file_pointer); ch != EOF; ch = fgetc(file_pointer)) {
last_ch = ch;
count.bytes++;
if (isspace(ch)) {
start_a_new_word = true;
@ -66,6 +68,8 @@ static Count get_count(const String& file_specifier)
count.words++;
}
}
if (last_ch != '\n')
count.lines++;
if (file_pointer != stdin)
fclose(file_pointer);