]> git.ipfire.org Git - thirdparty/ccache.git/commitdiff
Add x_ prefix to basename and dirname
authorJoel Rosdahl <joel@rosdahl.net>
Wed, 24 Jul 2019 09:16:14 +0000 (11:16 +0200)
committerJoel Rosdahl <joel@rosdahl.net>
Fri, 2 Aug 2019 21:25:01 +0000 (23:25 +0200)
This avoids warnings about differing function prototypes when compiling
as C++ code.

src/ccache.c
src/ccache.h
src/cleanup.c
src/compress.c
src/execute.c
src/stats.c
src/util.c
unittest/test_util.c

index 6df8d45c69e5cc479b9c783b35303d0cc6c3a873..ee8d430f85a27511a9a1d08d9b38fa5ff1ce35e2 100644 (file)
@@ -526,7 +526,7 @@ init_hash_debug(struct hash *hash, const char *obj_path, char type,
 static enum guessed_compiler
 guess_compiler(const char *path)
 {
-       char *name = basename(path);
+       char *name = x_basename(path);
        enum guessed_compiler result = GUESSED_UNKNOWN;
        if (strstr(name, "clang")) {
                result = GUESSED_CLANG;
@@ -755,17 +755,17 @@ make_relative_path(char *path)
 #endif
 
        // x_realpath only works for existing paths, so if path doesn't exist, try
-       // dirname(path) and assemble the path afterwards. We only bother to try
+       // x_dirname(path) and assemble the path afterwards. We only bother to try
        // canonicalizing one of these two paths since a compiler path argument
-       // typically only makes sense if path or dirname(path) exists.
+       // typically only makes sense if path or x_dirname(path) exists.
        char *path_suffix = NULL;
        struct stat st;
        if (stat(path, &st) != 0) {
                // path doesn't exist.
-               char *dir = dirname(path);
+               char *dir = x_dirname(path);
                // find the nearest existing directory in path
                while (stat(dir, &st) != 0) {
-                       char *parent_dir = dirname(dir);
+                       char *parent_dir = x_dirname(dir);
                        free(dir);
                        dir = parent_dir;
                }
@@ -1427,7 +1427,7 @@ to_cache(struct args *args, struct hash *depend_mode_hash)
        // be done almost anywhere, but we might as well do it near the end as we
        // save the stat call if we exit early.
        {
-               char *first_level_dir = dirname(stats_file);
+               char *first_level_dir = x_dirname(stats_file);
                if (create_cachedirtag(first_level_dir) != 0) {
                        cc_log("Failed to create %s/CACHEDIR.TAG (%s)\n",
                               first_level_dir, strerror(errno));
@@ -1475,7 +1475,7 @@ get_result_name_from_cpp(struct args *args, struct hash *hash)
 
                // Limit the basename to 10 characters in order to cope with filesystem with
                // small maximum filename length limits.
-               char *input_base = basename(input_file);
+               char *input_base = x_basename(input_file);
                char *tmp = strchr(input_base, '.');
                if (tmp) {
                        *tmp = 0;
@@ -1679,7 +1679,7 @@ hash_common_info(struct args *args, struct hash *hash)
        // Also hash the compiler name as some compilers use hard links and behave
        // differently depending on the real name.
        hash_delimiter(hash, "cc_name");
-       char *base = basename(args->argv[0]);
+       char *base = x_basename(args->argv[0]);
        hash_string(hash, base);
        free(base);
 
@@ -1735,12 +1735,12 @@ hash_common_info(struct args *args, struct hash *hash)
                // to include the target filename in the hash to avoid handing out an
                // object file with an incorrect .dwo link.
                hash_delimiter(hash, "filename");
-               hash_string(hash, basename(output_obj));
+               hash_string(hash, x_basename(output_obj));
        }
 
        // Possibly hash the coverage data file path.
        if (generating_coverage && profile_arcs) {
-               char *dir = dirname(output_obj);
+               char *dir = x_dirname(output_obj);
                if (profile_dir) {
                        dir = x_strdup(profile_dir);
                } else {
@@ -1749,7 +1749,7 @@ hash_common_info(struct args *args, struct hash *hash)
                        dir = real_dir;
                }
                if (dir) {
-                       char *base_name = basename(output_obj);
+                       char *base_name = x_basename(output_obj);
                        char *p = remove_extension(base_name);
                        free(base_name);
                        char *gcda_path = format("%s/%s.gcda", dir, p);
@@ -2193,7 +2193,7 @@ static void
 find_compiler(char **argv)
 {
        // We might be being invoked like "ccache gcc -c foo.c".
-       char *base = basename(argv[0]);
+       char *base = x_basename(argv[0]);
        if (same_executable_name(base, MYNAME)) {
                args_remove_first(orig_args);
                free(base);
@@ -2201,7 +2201,7 @@ find_compiler(char **argv)
                        // A full path was given.
                        return;
                }
-               base = basename(orig_args->argv[0]);
+               base = x_basename(orig_args->argv[0]);
        }
 
        // Support user override of the compiler.
@@ -2225,7 +2225,7 @@ bool
 is_precompiled_header(const char *path)
 {
        const char *ext = get_extension(path);
-       char *dir = dirname(path);
+       char *dir = x_dirname(path);
        const char *dir_ext = get_extension(dir);
        bool result =
                str_eq(ext, ".gch")
@@ -3215,7 +3215,7 @@ cc_process_args(struct args *args, struct args **preprocessor_args,
                        output_obj = format("%s.gch", input_file);
                } else {
                        char extension = found_S_opt ? 's' : 'o';
-                       output_obj = basename(input_file);
+                       output_obj = x_basename(input_file);
                        char *p = strrchr(output_obj, '.');
                        if (!p) {
                                reformat(&output_obj, "%s.%c", output_obj, extension);
@@ -3253,7 +3253,7 @@ cc_process_args(struct args *args, struct args **preprocessor_args,
                goto out;
        }
 
-       char *output_dir = dirname(output_obj);
+       char *output_dir = x_dirname(output_obj);
        if (stat(output_dir, &st) != 0 || !S_ISDIR(st.st_mode)) {
                cc_log("Directory does not exist: %s", output_dir);
                stats_update(STATS_BADOUTPUTFILE);
@@ -4059,7 +4059,7 @@ int
 ccache_main(int argc, char *argv[])
 {
        // Check if we are being invoked as "ccache".
-       char *program_name = basename(argv[0]);
+       char *program_name = x_basename(argv[0]);
        if (same_executable_name(program_name, MYNAME)) {
                if (argc < 2) {
                        fputs(USAGE_TEXT, stderr);
index 61c4d51668c63beb93074a052a61f26f4aa4d1da..cac27d49f014de7d727091d6103dd94834192d4f 100644 (file)
@@ -175,8 +175,8 @@ int x_fstat(int fd, struct stat *buf);
 int x_lstat(const char *pathname, struct stat *buf);
 int x_stat(const char *pathname, struct stat *buf);
 void traverse(const char *dir, void (*fn)(const char *, struct stat *));
-char *basename(const char *path);
-char *dirname(const char *path);
+char *x_basename(const char *path);
+char *x_dirname(const char *path);
 const char *get_extension(const char *path);
 char *remove_extension(const char *path);
 size_t file_size(struct stat *st);
index 71e001a608091dc1c166f13bbf6dc4ab55aee25f..8eca68cc317770018bffbf7d53a3b00fd38067cd 100644 (file)
@@ -1,5 +1,5 @@
 // Copyright (C) 2002-2006 Andrew Tridgell
-// Copyright (C) 2009-2018 Joel Rosdahl and other contributors
+// Copyright (C) 2009-2019 Joel Rosdahl and other contributors
 //
 // See doc/AUTHORS.adoc for a complete list of contributors.
 //
@@ -55,7 +55,7 @@ traverse_fn(const char *fname, struct stat *st)
                return;
        }
 
-       char *p = basename(fname);
+       char *p = x_basename(fname);
        if (str_eq(p, "stats")) {
                goto out;
        }
@@ -228,7 +228,7 @@ static void wipe_fn(const char *fname, struct stat *st)
                return;
        }
 
-       char *p = basename(fname);
+       char *p = x_basename(fname);
        if (str_eq(p, "stats")) {
                free(p);
                return;
index 4315bc146a6bece986ab6ed6c58bcf9e0cd9d5ad..1d815a862cf3b23b5948cce7d28826443775e96c 100644 (file)
@@ -63,7 +63,7 @@ measure_fn(const char *fname, struct stat *st)
                return;
        }
 
-       char *p = basename(fname);
+       char *p = x_basename(fname);
        if (str_eq(p, "stats")) {
                goto out;
        }
index b8a9cf111d09fd6f332c52dab42b9bbea13bafe0..d822e139c3098414f681349a3ab2da64f9fb27bf 100644 (file)
@@ -338,7 +338,7 @@ find_executable_in_path(const char *name, const char *exclude_name, char *path)
                        if (S_ISLNK(st1.st_mode)) {
                                char *buf = x_realpath(fname);
                                if (buf) {
-                                       char *p = basename(buf);
+                                       char *p = x_basename(buf);
                                        if (str_eq(p, exclude_name)) {
                                                // It's a link to "ccache"!
                                                free(p);
index 4d49c7ff82531deaf73a1031ed4fe1e725ffda0f..4cf505d282c8b7c7f4480fd4422c15fb89c6e761 100644 (file)
@@ -486,7 +486,7 @@ stats_flush_to_file(const char *sfile, struct counters *updates)
                }
        }
 
-       char *subdir = dirname(sfile);
+       char *subdir = x_dirname(sfile);
        bool need_cleanup = false;
 
        if (conf->max_files != 0
index 2e5d5d41e4cb93900378bc24b4083da80e1bccc6..da3b1f33e315ecb1deae4af6a0134ef5e1009430 100644 (file)
@@ -518,7 +518,7 @@ int
 create_parent_dirs(const char *path)
 {
        int res;
-       char *parent = dirname(path);
+       char *parent = x_dirname(path);
        struct stat st;
        if (stat(parent, &st) == 0) {
                if (S_ISDIR(st.st_mode)) {
@@ -900,7 +900,7 @@ traverse(const char *dir, void (*fn)(const char *, struct stat *))
 
 // Return the base name of a file - caller frees.
 char *
-basename(const char *path)
+x_basename(const char *path)
 {
        char *p = strrchr(path, '/');
        if (p) {
@@ -918,7 +918,7 @@ basename(const char *path)
 
 // Return the dir name of a file - caller frees.
 char *
-dirname(const char *path)
+x_dirname(const char *path)
 {
        char *s = x_strdup(path);
        char *p = strrchr(s, '/');
@@ -1247,7 +1247,7 @@ create_tmp_fd(char **fname)
        if (fd == -1 && errno == ENOENT) {
                if (create_parent_dirs(*fname) != 0) {
                        fatal("Failed to create directory %s: %s",
-                             dirname(*fname), strerror(errno));
+                             x_dirname(*fname), strerror(errno));
                }
                reformat(&template, "%s.%s", *fname, tmp_string());
                fd = mkstemp(template);
index cab5fa077e6eca709deb8dc84ce851f8372eaf98..dabbd614a49cfd955938bf6327c2db6a1660fb56 100644 (file)
 
 TEST_SUITE(util)
 
-TEST(basename)
+TEST(x_basename)
 {
-       CHECK_STR_EQ_FREE2("foo.c", basename("foo.c"));
-       CHECK_STR_EQ_FREE2("foo.c", basename("dir1/dir2/foo.c"));
-       CHECK_STR_EQ_FREE2("foo.c", basename("/dir/foo.c"));
-       CHECK_STR_EQ_FREE2("", basename("dir1/dir2/"));
+       CHECK_STR_EQ_FREE2("foo.c", x_basename("foo.c"));
+       CHECK_STR_EQ_FREE2("foo.c", x_basename("dir1/dir2/foo.c"));
+       CHECK_STR_EQ_FREE2("foo.c", x_basename("/dir/foo.c"));
+       CHECK_STR_EQ_FREE2("", x_basename("dir1/dir2/"));
 }
 
-TEST(dirname)
+TEST(x_dirname)
 {
-       CHECK_STR_EQ_FREE2(".", dirname("foo.c"));
-       CHECK_STR_EQ_FREE2(".", dirname(""));
-       CHECK_STR_EQ_FREE2("/", dirname("/"));
-       CHECK_STR_EQ_FREE2("/", dirname("/foo.c"));
-       CHECK_STR_EQ_FREE2("dir1/dir2", dirname("dir1/dir2/foo.c"));
-       CHECK_STR_EQ_FREE2("/dir", dirname("/dir/foo.c"));
-       CHECK_STR_EQ_FREE2("dir1/dir2", dirname("dir1/dir2/"));
+       CHECK_STR_EQ_FREE2(".", x_dirname("foo.c"));
+       CHECK_STR_EQ_FREE2(".", x_dirname(""));
+       CHECK_STR_EQ_FREE2("/", x_dirname("/"));
+       CHECK_STR_EQ_FREE2("/", x_dirname("/foo.c"));
+       CHECK_STR_EQ_FREE2("dir1/dir2", x_dirname("dir1/dir2/foo.c"));
+       CHECK_STR_EQ_FREE2("/dir", x_dirname("/dir/foo.c"));
+       CHECK_STR_EQ_FREE2("dir1/dir2", x_dirname("dir1/dir2/"));
 }
 
 TEST(common_dir_prefix_length)