On Tue, Aug 21, 2007 at 11:29:15AM -0500, Scott Wood wrote:
> David Gibson wrote:
> >>+void planetcore_prepare_table(char *table)
> >>+{
> >>+   int last_was_newline = 0;
> >>+
> >>+   while (*table != 10 || !last_was_newline) {
> >>+           if (*table == 10) {
> >>+                   *table = 0;
> >>+                   last_was_newline = 1;
> >>+           } else {
> >>+                   last_was_newline = 0;
> >>+           }
> >>+
> >>+           table++;
> >>+   }
> > 
> > 
> > Hrm.. this loop makes my brain hurt.  It's correct as far as I can
> > determine what it's supposed to be doing, but I think there's got to
> > be a way to make what it's doing a little more obvious.
> 
> How about something like this:
> 
> char last = 0;
> 
> while (1) {
>       if (*table == '\n') {
>               *table = 0;
> 
>               if (last == *table)
>                       return;
>       }
> 
>       last = *table++;
> }

*thinks*

How about:

do {
        if (*table == '\n')
                *table = '\0';
        table++;
} while (*(table-1) || (*table != '\n'));
*table = '\0';

-- 
David Gibson                    | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au  | minimalist, thank you.  NOT _the_ _other_
                                | _way_ _around_!
http://www.ozlabs.org/~dgibson
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev

Reply via email to