vi drivers/char/lp.c +705
note that count is unsigned, and we do the loop:
do {
if (canwrite > 0) {
...
count -= written;
}
if (lf && canwrite <= 0) {
...
count--;
...
}
} while (count > 0 && (CONSOLE_LP_STRICT || written > 0));
Isn't this wrong?
Roel
Doesn't look like something is wrong, or I'm missing something...
:
> do {
> ? ? ? ?if (canwrite > 0) {
> ? ? ? ? ? ? ? ?...
> ? ? ? ? ? ? ? ?count -= written;
> ? ? ? ?}
If there are chars left you write to the PP and take it out of the total
> ? ? ? ?if (lf && canwrite <= 0) {
> ? ? ? ? ? ? ? ?...
> ? ? ? ? ? ? ? ?count--;
> ? ? ? ? ? ? ? ?...
> ? ? ? ?}
> } while (count > 0 && (CONSOLE_LP_STRICT || written > 0));
The second if is for translating \n to \r\n only if you've already
written everything (up to /n) to the PP
If count > 0 fails (that is, count == 0) you get out of the loop
--
-
Thiago Galesi