[ccache] More win32 patches

Joel Rosdahl joel at rosdahl.net
Mon Sep 27 00:07:43 MDT 2010


On 2010-09-27 06:32, Ramiro Polla wrote:
> At first I tried using a naive wrapper of strtok_r() around strtok()
> but I've been bitten by the reentrancy issue. It involved that
> function that hashes multiple commands and find_executable. I'm
> certain my version works, but I'm certain it's a hack too =). I don't
> really mind which replacement is used as long as it works and the
> functions it uses exist/work as expected on win32. I've checked
> quickly and all of strspn, strpbrk, and strchr seem to be available on
> windows.

Right. Now I've actually read your version and I see no problem except
that it requires *saveptr == NULL on the first invocation, which the
real strtok_r doesn't. But if I'm not mistaken, that's easily fixed like
this:

--- a/util.c
+++ b/util.c
@@ -176,7 +176,7 @@ strtok_r(char *str, const char *delim, char **saveptr)
 {
        int len;
        char *ret;
-       if (*saveptr)
+       if (!str)
                str = *saveptr;
        len = strlen(str);
        ret = strtok(str, delim);

I've applied your patch and the above tweak.

-- Joel


More information about the ccache mailing list