Hi Hackers,

I have encountered a bug in "*src/tools/pg_bsd_indent/lexi.c"* where
pgindent was incorrectly dropping the final line of a file if that line did
not end with a newline character (\n). This occurred because the EOF logic
triggered a termination of the processing loop before the remaining buffer
was flushed to the output.

*Steps to Reproduce:*

   1. Create a *header/c* file with some content but no newline at the very
   end.
   2. Run pgindent on those files.
   3. Check the file content. The file is now empty or missing the last
   line.

This patch ensures that had_eof states do not bypass the final buffer
processing, preserving the integrity of the source code regardless of
trailing whitespace.



Akshay Joshi

Principal Engineer | Engineering Manager | pgAdmin Hacker

enterprisedb.com

*  Blog*: https://www.enterprisedb.com/akshay-joshi
*  GitHub*: https://github.com/akshay-joshi
*  LinkedIn*: https:// <http://goog_373708537>
www.linkedin.com/in/akshay-joshi-a9317b14

Attachment: 0001-Fix-pgindent-truncates-last-line-of-files.patch
Description: Binary data

Reply via email to