--- ccache.c.old 2003-09-28 08:48:17 +0400 +++ ccache.c 2004-07-23 11:25:34 +0400 @@ -546,6 +546,7 @@ { char *base; char *path; + char *fname, *cxxfname; orig_args = args_init(argc, argv); @@ -562,11 +563,22 @@ base = str_basename(argv[1]); } + /* support user override of the compiler */ - if ((path=getenv("CCACHE_CC"))) { - base = strdup(path); + cxxfname = getenv("CCACHE_CXX"); + if ((strstr(orig_args->argv[0], "c++") || strstr(orig_args->argv[0], "g++")) && + cxxfname && *cxxfname) { + orig_args->argv[0] = cxxfname; + return; + } + + fname = getenv("CCACHE_CC"); + if (fname && *fname) { + orig_args->argv[0] = fname; + return; } + orig_args->argv[0] = find_executable(base, MYNAME); /* can't find the compiler! */