[PATCH] AIX compile fix for repo-config.c
From: Amos Waterland <hidden>
Date: 2016-06-15 22:42:15
AIX 5 has a /usr/include/regex.h containing this code: #ifdef _NO_PROTO extern char *regex(); extern char *regcmp(); #else /* _NO_PROTO */ extern char *regex(const char *, const char *, ...); extern char *regcmp(const char *, ...); #endif /* _NO_PROTO */ This means that repo-config.c is trying to redefine the `regex' symbol. Here is a simple patch that just uses `regexp' as the symbol name instead. Signed-off-by: Amos Waterland <redacted>
--- repo-config.c.orig Wed Jan 4 18:58:21 2006
+++ repo-config.c Wed Jan 4 18:59:15 2006@@ -6,7 +6,7 @@ static char* key = NULL; static char* value = NULL; -static regex_t* regex = NULL; +static regex_t* regexp = NULL; static int do_all = 0; static int do_not_match = 0; static int seen = 0;
@@ -14,9 +14,9 @@ static int show_config(const char* key_, const char* value_) { if (!strcmp(key_, key) && - (regex == NULL || + (regexp == NULL || (do_not_match ^ - !regexec(regex, value_, 0, NULL, 0)))) { + !regexec(regexp, value_, 0, NULL, 0)))) { if (do_all) { printf("%s\n", value_); return 0;
@@ -46,8 +46,8 @@ regex_++; } - regex = (regex_t*)malloc(sizeof(regex_t)); - if (regcomp(regex, regex_, REG_EXTENDED)) { + regexp = (regex_t*)malloc(sizeof(regex_t)); + if (regcomp(regexp, regex_, REG_EXTENDED)) { fprintf(stderr, "Invalid pattern: %s\n", regex_); return -1; }
@@ -59,9 +59,9 @@ free(value); } free(key); - if (regex) { - regfree(regex); - free(regex); + if (regexp) { + regfree(regexp); + free(regexp); } if (do_all)