Colm MacCárthaigh wrote:
> There is a 1.3.42 release candidate for testing, and voting, at;
>
> http://people.apache.org/~colm/1.3.42/
>
I just tried building on a fairly stock Ubuntu Karmic system and ran
into this compile error:
gcc -c -I../os/unix -I../include -DLINUX=22 -DHAVE_SET_DUMPABLE
-DUSE_HSREGEX -DNO_DL_NEEDED `../apaci` htpasswd.c
htpasswd.c:101: error: conflicting types for ‘getline’
/usr/include/stdio.h:651: note: previous declaration of ‘getline’ was here
So getline() is a system provided function here.
I used the top level configure with /bin/sh changed to /bin/bash as
mentioned elsewhere, no options.
On fixing this I found that htdigest.c and logrotate.c have the same
problem.
The obvious fix would be to namespace protect these getline
implementations, IE:
Index: src/support/htdigest.c
===================================================================
--- src/support/htdigest.c (revision 897307)
+++ src/support/htdigest.c (working copy)
@@ -71,7 +71,7 @@
while ((line[y++] = line[x++]));
}
-static int getline(char *s, int n, FILE *f)
+static int ap_getline(char *s, int n, FILE *f)
{
register int i = 0;
@@ -158,7 +158,7 @@
{
static char line[MAX_STRING_LEN];
- while (!(getline(line, MAX_STRING_LEN, source))) {
+ while (!(ap_getline(line, MAX_STRING_LEN, source))) {
putline(target, line);
}
}
@@ -216,7 +216,7 @@
ap_cpystrn(realm, argv[2], sizeof(realm));
found = 0;
- while (!(getline(line, MAX_STRING_LEN, f))) {
+ while (!(ap_getline(line, MAX_STRING_LEN, f))) {
if (found || (line[0] == '#') || (!line[0])) {
putline(tfp, line);
continue;
Index: src/support/logresolve.c
===================================================================
--- src/support/logresolve.c (revision 897307)
+++ src/support/logresolve.c (working copy)
@@ -71,7 +71,7 @@
#endif /* !MPE && !WIN32*/
static void cgethost(struct in_addr ipnum, char *string, int check);
-static int getline(char *s, int n);
+static int ap_getline(char *s, int n);
static void stats(FILE *output);
@@ -278,7 +278,7 @@
* gets a line from stdin
*/
-static int getline (char *s, int n)
+static int ap_getline (char *s, int n)
{
char *cp;
@@ -326,7 +326,7 @@
for (i = 0; i < MAX_ERR + 2; i++)
errors[i] = 0;
- while (getline(line, MAXLINE)) {
+ while (ap_getline(line, MAXLINE)) {
if (line[0] == '\0')
continue;
entries++;
Index: src/support/htpasswd.c
===================================================================
--- src/support/htpasswd.c (revision 897307)
+++ src/support/htpasswd.c (working copy)
@@ -98,7 +98,7 @@
* Get a line of input from the user, not including any terminating
* newline.
*/
-static int getline(char *s, int n, FILE *f)
+static int ap_getline(char *s, int n, FILE *f)
{
register int i = 0;
@@ -547,7 +547,7 @@
char scratch[MAX_STRING_LEN];
fpw = fopen(pwfilename, "r");
- while (! (getline(line, sizeof(line), fpw))) {
+ while (! (ap_getline(line, sizeof(line), fpw))) {
char *colon;
if ((line[0] == '#') || (line[0] == '\0')) {