home
·
contact
·
privacy
projects
/
plomrogue
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Improved and defined more precisely textfile_sizes().
[plomrogue]
/
src
/
misc.c
diff --git
a/src/misc.c
b/src/misc.c
index 496c58549461370c8e100f28d60737f5edbd9770..4b25f65f5c05b387d3bfc359e76018411c30676f 100644
(file)
--- a/
src/misc.c
+++ b/
src/misc.c
@@
-20,19
+20,23
@@
extern uint8_t textfile_sizes(FILE * file, uint16_t * linemax_p,
uint16_t * n_lines_p)
{
extern uint8_t textfile_sizes(FILE * file, uint16_t * linemax_p,
uint16_t * n_lines_p)
{
- uint16_t n_lines = 0;
int c = 0;
int c = 0;
- uint16_t linemax = 0;
uint16_t c_count = 0;
uint16_t c_count = 0;
- while (EOF != c)
+ uint16_t n_lines = 0;
+ uint16_t linemax = 0;
+ while (1)
{
{
- c_count++;
c = getc(file);
c = getc(file);
+ if (EOF == c)
+ {
+ break;
+ }
+ c_count++;
if ('\n' == c)
{
if (c_count > linemax)
{
if ('\n' == c)
{
if (c_count > linemax)
{
- linemax = c_count
+ 1
;
+ linemax = c_count;
}
c_count = 0;
if (n_lines_p)
}
c_count = 0;
if (n_lines_p)
@@
-41,6
+45,11
@@
extern uint8_t textfile_sizes(FILE * file, uint16_t * linemax_p,
}
}
}
}
}
}
+ if (0 == linemax && 0 < c_count) /* Handle files that consist of only one */
+ { /* line / lack newline chars. */
+ linemax = c_count;
+ }
+
if (-1 == fseek(file, 0, SEEK_SET))
{
return 1;
if (-1 == fseek(file, 0, SEEK_SET))
{
return 1;