mirror of
https://github.com/samba-team/samba.git
synced 2025-01-14 19:24:43 +03:00
85a4024651
popt generates 4 compiler warnings with GCC 4.6. There are 2 different types: * 3 instances of: warning: cast discards ‘__attribute__((const))’ qualifier from pointer target type [-Wcast-qual] One occurs in the _free() hack that is used to try and avoid a compiler warning. I guess GCC got smarter? ;-) The other is where an array of constant strings is passed to execvp(2), which arguably has the wrong type, since it has no need to modify the strings. Both of these can be worked around by casting to intptr_t before casting to the desired argument type. In poptReadConfigFile() the variable file is declared to be a constant string. However, it is then passed to read(2) straight away and an attempt is made to cast away the "const". However, to protect the value the of file is assigned to (const char *) chptr before it is passed to any other functions, so this protects the value anyway. I'm not sure exactly what the thinking was here... but there seems to be no use having file be constant. * 1 instance of: warning: variable ‘rc’ set but not used [-Wunused-but-set-variable] for the result of an execvp(2) call. Recast the return type to void. However, due to some #if-fu in the function, that can make rc unused in this function. So we also need to wrap the declaration of rc in some corresponding #if-fu to make it disappear if not used. Signed-off-by: Martin Schwenke <martin@meltin.net> (This used to be ctdb commit ac9236e64bd0b61740cc787819a1222bc6a67d4a)
This is the popt command line option parsing library. While it is similiar to getopt(3), it contains a number of enhancements, including: 1) popt is fully reentrant 2) popt can parse arbitrary argv[] style arrays while getopt(2) makes this quite difficult 3) popt allows users to alias command line arguments 4) popt provides convience functions for parsing strings into argv[] style arrays popt is used by rpm, the Red Hat install program, and many other Red Hat utilities, all of which provide excellent examples of how to use popt. Complete documentation on popt is available in popt.ps (included in this tarball), which is excerpted with permission from the book "Linux Application Development" by Michael K. Johnson and Erik Troan (availble from Addison Wesley in May, 1998). Comments on popt should be addressed to ewt@redhat.com.