Problem compilando exemplo de K&R

Estou tendo problemas para compilar o programa de exemplo apresentado na seção 5.11 do livro. Eu removi a maior parte do código e deixei apenas o material relevante.

#define MAXLINES 5000
char *lineptr[MAXLINES];

void qsort1(void *lineptr[], int left, int right, int (*comp)(void *, void *));
int numcmp(char *, char *);

main(int argc, char *argv[]) {
    int numeric = 1;
    /* ... */
    qsort1((void**) lineptr, 0, 100, (int (*)(void*, void*))(numeric ? numcmp : strcmp));
}

void qsort1(void *v[], int left, int right, int (*comp)(void *, void *)) {
    /* ... */
}

int numcmp(char *s1, char *s2) {
    /* ... */
}

O problema é que o código não é compilado (estou usando o compilador Digital Mars). O erro que recebo é este:

        qsort1((void**) lineptr, 0, nlines - 1, (int (*)(void*, void*))(numeric
? numcmp : strcmp));

                 ^
go.c(19) : Error: need explicit cast to convert
from: int (*C func)(char const *,char const *)
to  : int (*C func)(char *,char *)
--- errorlevel 1

Deve haver algo errado com as declarações, embora eu colei o código do livro corretamente. Não sei o suficiente para fazer as alterações corretas (a seção sobre os ponteiros de função certamente poderia ter sido escrita mais amplamente

EDIT: Eu deveria ter mencionado que estou lendo a versão ANSI do livr

questionAnswers(5)

yourAnswerToTheQuestion