- Original Message -
From: Hrvoje Niksic <[EMAIL PROTECTED]>
Date: Tuesday, March 28, 2006 7:23 pm
> > in progress.c line 880:
> >
> >eta_hrs = (int)(eta / 3600, eta %= 3600);
> >eta_min = (int)(eta / 60, eta %= 60);
> >eta_sec = (int)(eta);
>
> This is weird. Did you compile the code yourself, or did you get it
Yes that is strange. I got the code from one of the GNU mirrors, but
I'm afraid I can't remember which one.
> from a Windows download site? I'm asking because the code in
> progress.c doesn't look like that; it in fact looks like this:
>
> eta_hrs = eta / 3600, eta %= 3600;
> eta_min = eta / 60, eta %= 60;
> eta_sec = eta;
>
> The cast to int looks like someone was trying to remove a warning and
> botched operator precedence in the process. If you must insert the
> cast, try:
>
> eta_hrs = (int) (eta / 3600), eta %= 3600;
Yes that also works. The cast is needed on Windows x64 because eta is
a wgint (which is 64-bit) but a regular int is 32-bit so otherwise a
warning is issued. Oh well. Perhaps it would be better changed to use
a semicolon for clarity anyway?
cheers,