]> git.ipfire.org Git - thirdparty/ccache.git/commitdiff
Extract CCACHE_EXTENSION check out of extension_for_language()
authorJoel Rosdahl <joel@rosdahl.net>
Tue, 1 Jun 2010 19:13:42 +0000 (21:13 +0200)
committerJoel Rosdahl <joel@rosdahl.net>
Tue, 1 Jun 2010 19:13:42 +0000 (21:13 +0200)
ccache.c

index 8a4026e3a6e3d0a4be1091d9e84eb433c1c4db46..7748e2186517c19541de17912e337ad22caa9215 100644 (file)
--- a/ccache.c
+++ b/ccache.c
@@ -547,10 +547,8 @@ static const char *preprocessed_language(const char *language, int *direct_i)
 static const char *extension_for_language(const char *language)
 {
        int i;
-       const char *extension = getenv("CCACHE_EXTENSION");
-       if (extension) return extension;
-       if (!language) return NULL;
 
+       if (!language) return NULL;
        for (i=0; extensions[i].extension; i++) {
                if (strcmp(language, extensions[i].language) == 0) {
                        return extensions[i].extension;
@@ -1294,6 +1292,7 @@ static void process_args(int argc, char **argv, ARGS **preprocessor_args,
        int found_S_opt = 0;
        int found_arch_opt = 0;
        const char *input_language = NULL;
+       const char *prepr_language;
        struct stat st;
        /* is the dependency makefile name overridden with -MF? */
        int dependency_filename_specified = 0;
@@ -1615,9 +1614,12 @@ static void process_args(int argc, char **argv, ARGS **preprocessor_args,
        if (!input_language || strcmp(input_language, "none") == 0) {
                input_language = language_for_file(input_file);
        }
-       i_extension = extension_for_language(
-               preprocessed_language(input_language, &direct_i_file));
+       prepr_language = preprocessed_language(input_language, &direct_i_file);
+       i_extension = getenv("CCACHE_EXTENSION");
        if (!i_extension) {
+               i_extension = extension_for_language(prepr_language);
+       }
+       if (!input_language || !i_extension) {
                cc_log("Not a C/C++ file: %s", input_file);
                stats_update(STATS_NOTC);
                failed();