-W -Wall options (using gcc), posted by Heiko Scheit on Fri Feb 13 12:25:15 2004
|
Maybe consider using the options -W -Wall when compiling elogd.
There are several warning messages. |
Re: segmentation fault, posted by Stefan Ritt on Fri Feb 13 21:50:09 2004
|
This problem has been fixed recently. The new code is
/* special case: "Change %s" */
if (strstr(orig, "Change ") && strcmp(orig, "Change %s") != 0) {
sprintf(result, loc("Change %s"), orig + 7);
return result;
}
Alternatively you can get the updated version from CVS.
- Stefan |
Re: -W -Wall options (using gcc), posted by Stefan Ritt on Fri Feb 13 21:52:48 2004
|
Thanks, I did so. |
Re: elog (not elogd) submit does not work anymore, posted by Stefan Ritt on Fri Feb 13 21:59:44 2004
|
Oops! I 're-used' the '-s' flag for email suppression, so it was actually
double used. I changed the email supprssion flag to '-p', so '-s' should
work again for specifying subdirectories. |
Re: -W -Wall options (using gcc), posted by Stefan Ritt on Mon Feb 16 16:07:34 2004
|
So I fixed all compiler generated warnigns except these:
[midas@pc2075 ~/elog]$ gcc -g -O -W -Wall -o elogd src/elogd.c
src/elogd.c: In function `set_cookie':
src/elogd.c:4675: warning: `%y' yields only last 2 digits of year
src/elogd.c: In function `send_file_direct':
src/elogd.c:5483: warning: `%y' yields only last 2 digits of year
src/elogd.c: In function `show_elog_list':
src/elogd.c:11938: warning: `%x' yields only last 2 digits of year in some
locales
src/elogd.c:11957: warning: `%x' yields only last 2 digits of year in some
locales
src/elogd.c:11979: warning: `%x' yields only last 2 digits of year in some
locales
src/elogd.c:11987: warning: `%x' yields only last 2 digits of year in some
locales
src/elogd.c: In function `ctrlc_handler':
src/elogd.c:15864: warning: empty body in an if-statement
src/elogd.c: In function `hup_handler':
src/elogd.c:15870: warning: empty body in an if-statement
Do you know how to disable these warnings or any other workaround? I would
like to compile without any remaining warnings. |
Re: -W -Wall options (using gcc), posted by Heiko Scheit on Mon Feb 16 16:40:50 2004
|
> So I fixed all compiler generated warnigns except these:
>
> [midas@pc2075 ~/elog]$ gcc -g -O -W -Wall -o elogd src/elogd.c
> src/elogd.c: In function `set_cookie':
> src/elogd.c:4675: warning: `%y' yields only last 2 digits of year
> src/elogd.c: In function `send_file_direct':
> src/elogd.c:5483: warning: `%y' yields only last 2 digits of year
> src/elogd.c: In function `show_elog_list':
> src/elogd.c:11938: warning: `%x' yields only last 2 digits of year in some
> locales
> src/elogd.c:11957: warning: `%x' yields only last 2 digits of year in some
> locales
> src/elogd.c:11979: warning: `%x' yields only last 2 digits of year in some
> locales
> src/elogd.c:11987: warning: `%x' yields only last 2 digits of year in some
> locales
> src/elogd.c: In function `ctrlc_handler':
> src/elogd.c:15864: warning: empty body in an if-statement
> src/elogd.c: In function `hup_handler':
> src/elogd.c:15870: warning: empty body in an if-statement
>
> Do you know how to disable these warnings or any other workaround? I would
> like to compile without any remaining warnings.
Have a look at the gcc info pages:
$ info gcc "invoking gcc" "warning options" |
Re: -W -Wall options (using gcc), posted by Stefan Ritt on Mon Feb 16 16:47:55 2004
|
> Have a look at the gcc info pages:
>
> $ info gcc "invoking gcc" "warning options"
Sure, I'm not stupid! I looked for ~10 minutes how to turn off the remaining
warnings, but I could not find it. The code is now correct, like I do want the
"%y" format specifier in the strftime() function, but the warning is wrong. The
closest I came to was
-W -Wall -Wno-format
which removes ther warning in strftime(), but I do want this warning, since it
helps in many other printf() statements. |
Re: -W -Wall options (using gcc), posted by Heiko Scheit on Mon Feb 16 17:18:39 2004
|
> > Have a look at the gcc info pages:
> >
> > $ info gcc "invoking gcc" "warning options"
>
> Sure, I'm not stupid!
Sorry, didn't mean to offend you.
> I looked for ~10 minutes how to turn off the remaining
> warnings, but I could not find it. The code is now correct, like I do want the
> "%y" format specifier in the strftime() function, but the warning is wrong.
One way to remove the warnings would be to use "%Y" in a separate strftime() call
and then taking only the last two digits (characters) of that string.
Something like:
old:
strftime(str, sizeof(str), "%A, %d-%b-%y %H:%M:%S GMT", gmt);
new:
strftime(str, sizeof(str), "%A, %d-%b-XX %H:%M:%S GMT", gmt);
strftime(year, sizeof(year), "%Y", gmt);
i=strstr(str,"XX"); /* find position of XX */
if ( i+1 < sizeof(str) ) {
str[i] =year[3];
str[i+1]=year[4];
} else ...
Somewhat cumbersome, but should work. Maybe consider using the four
digit year directly, where possible.
Gruss, Heiko |