246 lines
8.7 KiB
Diff
246 lines
8.7 KiB
Diff
https://sourceforge.net/p/netpbm/code/4969/
|
|
https://bugs.gentoo.org/943971
|
|
|
|
Backport files/netpbm-11.8.2-fix-C23.patch to 11.2.11
|
|
|
|
--- a/buildtools/libopt.c
|
|
+++ b/buildtools/libopt.c
|
|
@@ -85,18 +85,11 @@
|
|
# define SHLIBPREFIXLIST "lib"
|
|
#endif
|
|
|
|
+#include <stdbool.h>
|
|
#include <string.h>
|
|
#include <stdlib.h>
|
|
#include <stdio.h>
|
|
|
|
-typedef unsigned char bool;
|
|
-#ifndef TRUE
|
|
-#define TRUE (1)
|
|
-#endif
|
|
-#ifndef FALSE
|
|
-#define FALSE (0)
|
|
-#endif
|
|
-
|
|
#ifdef DLLVERSTR
|
|
static const char * dllverstr = DLLVERSTR;
|
|
#else
|
|
@@ -105,9 +98,9 @@ static const char * dllverstr = "";
|
|
|
|
bool const explicit =
|
|
#ifdef EXPLICIT
|
|
-TRUE
|
|
+true
|
|
#else
|
|
-FALSE
|
|
+false
|
|
#endif
|
|
;
|
|
|
|
@@ -131,17 +124,17 @@ parse_prefixlist(const char * const prefixlist,
|
|
there is guaranteed always to be one null string at the end of the
|
|
array.
|
|
|
|
- In case of error, return *errorP == TRUE and don't allocate any
|
|
- storage. Otherwise, return *errorP = FALSE.
|
|
+ In case of error, return *errorP == true and don't allocate any
|
|
+ storage. Otherwise, return *errorP = false.
|
|
-----------------------------------------------------------------------------*/
|
|
char * prlist;
|
|
|
|
prlist = strdup(prefixlist);
|
|
if (prlist == NULL)
|
|
- *errorP = TRUE;
|
|
+ *errorP = true;
|
|
else {
|
|
- if (strlen(prlist) <= 0)
|
|
- *errorP = TRUE;
|
|
+ if (strlen(prlist) <= 0)
|
|
+ *errorP = true;
|
|
else {
|
|
/* NOTE: Mac OS X, at least, does not have strtok_r().
|
|
2001.09.24
|
|
@@ -155,18 +148,18 @@ parse_prefixlist(const char * const prefixlist,
|
|
}
|
|
num_tokens = 0;
|
|
token = strtok(prlist, " ");
|
|
- *errorP = FALSE; /* initial value */
|
|
+ *errorP = false; /* initial value */
|
|
while (token != NULL && num_tokens < MAX_PREFIXES && !*errorP) {
|
|
parsed_prefixes[num_tokens] = strdup (token);
|
|
- if (parsed_prefixes[num_tokens] == NULL)
|
|
- *errorP = TRUE;
|
|
+ if (parsed_prefixes[num_tokens] == NULL)
|
|
+ *errorP = true;
|
|
num_tokens++;
|
|
token = strtok(NULL, " ");
|
|
}
|
|
for (i = num_tokens; i < MAX_PREFIXES + 1 && !*errorP; i++) {
|
|
parsed_prefixes[i] = strdup("");
|
|
- if (parsed_prefixes[i] == NULL)
|
|
- *errorP = TRUE;
|
|
+ if (parsed_prefixes[i] == NULL)
|
|
+ *errorP = true;
|
|
}
|
|
}
|
|
if (*errorP) {
|
|
@@ -194,7 +187,7 @@ parse_prefix(const char * const filename,
|
|
(The prefix always starts at the beginning of the filename).
|
|
|
|
Iff we don't find a valid library name prefix, return *prefix_good_p
|
|
- == FALSE.
|
|
+ == false.
|
|
|
|
The list of valid prefixes is compiled in as the blank-delimited
|
|
string which is the value of the SHLIBPREFIXLIST macro.
|
|
@@ -231,7 +224,7 @@ parse_prefix(const char * const filename,
|
|
i = 0; /* start with the first entry in shlibprefixlist[] */
|
|
prefix_length = 0; /* initial value */
|
|
prefix = shlibprefixlist[i];
|
|
- prefix_good = FALSE; /* initial value */
|
|
+ prefix_good = false; /* initial value */
|
|
while ( (*prefix != '\0' ) && !prefix_good ) {
|
|
/* stop condition: shlibprefixlist has MAX_PREFIXES+1 entries.
|
|
* we only ever put tokens in the 0..MAX_PREFIXES-1 positions.
|
|
@@ -242,7 +235,7 @@ parse_prefix(const char * const filename,
|
|
*/
|
|
prefix_length = strlen(prefix);
|
|
if (strncmp(filename, prefix, prefix_length) == 0) {
|
|
- prefix_good = TRUE;
|
|
+ prefix_good = true;
|
|
/* at this point, prefix is pointing to the correct
|
|
* entry, and prefix_length has the correct value.
|
|
* When we bail out of the while loop because of the
|
|
@@ -279,16 +272,16 @@ parse_filename(const char * const filename,
|
|
|
|
E.g. for "libxyz.so", return "xyz".
|
|
|
|
- return *valid_library_p == TRUE iff 'filename' validly names a library
|
|
+ return *valid_library_p == true iff 'filename' validly names a library
|
|
that can be expressed in a -l linker option.
|
|
|
|
- return *static_p == TRUE iff 'filename' indicates a static library.
|
|
- (but undefined if *valid_library_p != TRUE).
|
|
+ return *static_p == true iff 'filename' indicates a static library.
|
|
+ (but undefined if *valid_library_p != true).
|
|
|
|
- return *error_p == TRUE iff some error such as out of memory prevents
|
|
+ return *error_p == true iff some error such as out of memory prevents
|
|
parsing.
|
|
|
|
- Do not allocate any memory if *error_p == TRUE or *valid_library_p == FALSE.
|
|
+ Do not allocate any memory if *error_p == true or *valid_library_p == false.
|
|
-----------------------------------------------------------------------------*/
|
|
char *lastdot;
|
|
/* Pointer to last period in 'filename'. Null if none */
|
|
@@ -305,21 +298,21 @@ parse_filename(const char * const filename,
|
|
/* This filename doesn't have any suffix, so we don't understand
|
|
it as a library filename.
|
|
*/
|
|
- *valid_library_p = FALSE;
|
|
- *error_p = FALSE;
|
|
+ *valid_library_p = false;
|
|
+ *error_p = false;
|
|
} else {
|
|
unsigned int prefix_length;
|
|
bool prefix_good;
|
|
|
|
if (strcmp(lastdot + 1, "a") == 0)
|
|
- *static_p = TRUE;
|
|
+ *static_p = true;
|
|
else
|
|
- *static_p = FALSE;
|
|
+ *static_p = false;
|
|
|
|
parse_prefix(filename, &prefix_good, &prefix_length, error_p);
|
|
if (!*error_p) {
|
|
if (!prefix_good) {
|
|
- *valid_library_p = FALSE;
|
|
+ *valid_library_p = false;
|
|
} else {
|
|
/* Extract everything between <prefix> and "." as
|
|
the library name root.
|
|
@@ -328,7 +321,7 @@ parse_filename(const char * const filename,
|
|
|
|
libname = strdup(filename + prefix_length);
|
|
if (libname == NULL)
|
|
- *error_p = TRUE;
|
|
+ *error_p = true;
|
|
else {
|
|
libname[lastdot - filename - prefix_length] = '\0';
|
|
if (strlen(dllverstr) > 0) {
|
|
@@ -341,10 +334,10 @@ parse_filename(const char * const filename,
|
|
}
|
|
}
|
|
if (strlen(libname) == 0) {
|
|
- *valid_library_p = FALSE;
|
|
+ *valid_library_p = false;
|
|
strfree(libname);
|
|
} else
|
|
- *valid_library_p = TRUE;
|
|
+ *valid_library_p = true;
|
|
}
|
|
*libname_p = libname;
|
|
}
|
|
@@ -377,14 +370,14 @@ parse_filepath(const char * const filepath,
|
|
*/
|
|
*filename_p = strdup(filepath);
|
|
if (*filename_p == NULL)
|
|
- *error_p = TRUE;
|
|
+ *error_p = true;
|
|
else {
|
|
directory = strdup("");
|
|
if (directory == NULL) {
|
|
- *error_p = TRUE;
|
|
+ *error_p = true;
|
|
strfree(*filename_p);
|
|
} else
|
|
- *error_p = FALSE;
|
|
+ *error_p = false;
|
|
}
|
|
} else {
|
|
/* Split the string at the slash we just found, into filename and
|
|
@@ -392,14 +385,14 @@ parse_filepath(const char * const filepath,
|
|
*/
|
|
*filename_p = strdup(lastslash+1);
|
|
if (*filename_p == NULL)
|
|
- *error_p = TRUE;
|
|
+ *error_p = true;
|
|
else {
|
|
directory = strdup(filepath);
|
|
if (directory == NULL) {
|
|
- *error_p = TRUE;
|
|
+ *error_p = true;
|
|
strfree(*filename_p);
|
|
} else {
|
|
- *error_p = FALSE;
|
|
+ *error_p = false;
|
|
directory[lastslash - filepath] = '\0';
|
|
}
|
|
}
|
|
@@ -503,12 +496,12 @@ main(int argc, char **argv) {
|
|
char outputLine[1024];
|
|
|
|
strcpy(outputLine, ""); /* initial value */
|
|
- runtime = FALSE; /* initial value */
|
|
- error = FALSE; /* no error yet */
|
|
+ runtime = false; /* initial value */
|
|
+ error = false; /* no error yet */
|
|
|
|
for (arg = 1; arg < argc && !error; arg++) {
|
|
if (strcmp(argv[arg], "-runtime") == 0)
|
|
- runtime = TRUE;
|
|
+ runtime = true;
|
|
else if (strcmp(argv[arg], "-quiet") == 0) {
|
|
/* Doesn't do anything today */
|
|
} else {
|
|
@@ -518,7 +511,7 @@ main(int argc, char **argv) {
|
|
if (!error) {
|
|
if (strlen(outputLine) + strlen(options) + 1 + 1 >
|
|
sizeof(outputLine))
|
|
- error = TRUE;
|
|
+ error = true;
|
|
else {
|
|
strcat(outputLine, " ");
|
|
strcat(outputLine, options);
|