Indent 2.2.12 would end up in an endless loop if indenting a file with CR/LF line endings.
28 lines
690 B
Diff
28 lines
690 B
Diff
--- a/src/code_io.c
|
|
+++ b/src/code_io.c
|
|
@@ -203,9 +203,9 @@ extern file_buffer_ty * read_file(
|
|
* bytes in a 16-bit world...
|
|
*/
|
|
|
|
- unsigned int size = 0, size_to_read = 0;
|
|
+ unsigned int size = 0, size_to_read = 0, size_sum = 0;
|
|
#else
|
|
- ssize_t size = 0;
|
|
+ ssize_t size = 0, size_sum = 0;
|
|
size_t size_to_read = 0;
|
|
#endif
|
|
|
|
@@ -284,8 +284,12 @@ extern file_buffer_ty * read_file(
|
|
xfree(fileptr.data);
|
|
fatal (_("Error reading input file %s"), filename);
|
|
}
|
|
+ if (size == 0)
|
|
+ break;
|
|
size_to_read -= size;
|
|
+ size_sum += size;
|
|
}
|
|
+ size = size_sum;
|
|
|
|
if (close(fd) < 0)
|
|
{
|