diff options
author | Elijah Newren <newren@gmail.com> | 2023-03-21 09:25:58 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2023-03-21 20:56:52 +0300 |
commit | 0b027f6ca79cafbc14f36ff1741fc7378282f295 (patch) | |
tree | 8664359f8aadf94ee7cd79839244198e6cbd78d4 | |
parent | 7ee24e18e55f5459183189a793cb216fb50c20f8 (diff) |
abspath.h: move absolute path functions from cache.h
This is another step towards letting us remove the include of cache.h in
strbuf.c. It does mean that we also need to add includes of abspath.h
in a number of C files.
Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
65 files changed, 98 insertions, 28 deletions
@@ -1,4 +1,6 @@ -#include "cache.h" +#include "git-compat-util.h" +#include "abspath.h" +#include "strbuf.h" /* * Do not use this for inspecting *tracked* content. When path is a diff --git a/abspath.h b/abspath.h new file mode 100644 index 0000000000..7cd3de5e9d --- /dev/null +++ b/abspath.h @@ -0,0 +1,33 @@ +#ifndef ABSPATH_H +#define ABSPATH_H + +int is_directory(const char *); +char *strbuf_realpath(struct strbuf *resolved, const char *path, + int die_on_error); +char *strbuf_realpath_forgiving(struct strbuf *resolved, const char *path, + int die_on_error); +char *real_pathdup(const char *path, int die_on_error); +const char *absolute_path(const char *path); +char *absolute_pathdup(const char *path); + +/* + * Concatenate "prefix" (if len is non-zero) and "path", with no + * connecting characters (so "prefix" should end with a "/"). + * Unlike prefix_path, this should be used if the named file does + * not have to interact with index entry; i.e. name of a random file + * on the filesystem. + * + * The return value is always a newly allocated string (even if the + * prefix was empty). + */ +char *prefix_filename(const char *prefix, const char *path); + +/* Likewise, but path=="-" always yields "-" */ +char *prefix_filename_except_for_dash(const char *prefix, const char *path); + +static inline int is_absolute_path(const char *path) +{ + return is_dir_sep(path[0]) || has_dos_drive_prefix(path); +} + +#endif /* ABSPATH_H */ @@ -8,6 +8,7 @@ */ #include "cache.h" +#include "abspath.h" #include "alloc.h" #include "config.h" #include "object-store.h" @@ -1,4 +1,5 @@ #include "git-compat-util.h" +#include "abspath.h" #include "alloc.h" #include "config.h" #include "gettext.h" diff --git a/builtin/am.c b/builtin/am.c index cc1fdf4f75..14347ecf9a 100644 --- a/builtin/am.c +++ b/builtin/am.c @@ -5,6 +5,7 @@ */ #define USE_THE_INDEX_VARIABLE #include "cache.h" +#include "abspath.h" #include "config.h" #include "builtin.h" #include "exec-cmd.h" diff --git a/builtin/bugreport.c b/builtin/bugreport.c index b61cfa9464..b5dfad4e12 100644 --- a/builtin/bugreport.c +++ b/builtin/bugreport.c @@ -1,4 +1,5 @@ #include "builtin.h" +#include "abspath.h" #include "gettext.h" #include "parse-options.h" #include "strbuf.h" diff --git a/builtin/bundle.c b/builtin/bundle.c index de3898ffa4..9e2aecadf7 100644 --- a/builtin/bundle.c +++ b/builtin/bundle.c @@ -1,4 +1,5 @@ #include "builtin.h" +#include "abspath.h" #include "gettext.h" #include "strvec.h" #include "parse-options.h" diff --git a/builtin/clean.c b/builtin/clean.c index 46c51029ab..fdcf62c5df 100644 --- a/builtin/clean.c +++ b/builtin/clean.c @@ -8,6 +8,7 @@ #define USE_THE_INDEX_VARIABLE #include "builtin.h" +#include "abspath.h" #include "cache.h" #include "config.h" #include "dir.h" diff --git a/builtin/clone.c b/builtin/clone.c index d605fcafa0..b94324ea02 100644 --- a/builtin/clone.c +++ b/builtin/clone.c @@ -10,6 +10,7 @@ #define USE_THE_INDEX_VARIABLE #include "builtin.h" +#include "abspath.h" #include "config.h" #include "gettext.h" #include "hex.h" diff --git a/builtin/config.c b/builtin/config.c index 33b17b40b4..42e6b8d348 100644 --- a/builtin/config.c +++ b/builtin/config.c @@ -1,4 +1,5 @@ #include "builtin.h" +#include "abspath.h" #include "alloc.h" #include "config.h" #include "color.h" diff --git a/builtin/credential-cache--daemon.c b/builtin/credential-cache--daemon.c index 0f00ba4d74..62c09a271d 100644 --- a/builtin/credential-cache--daemon.c +++ b/builtin/credential-cache--daemon.c @@ -1,4 +1,5 @@ #include "builtin.h" +#include "abspath.h" #include "alloc.h" #include "gettext.h" #include "parse-options.h" diff --git a/builtin/diagnose.c b/builtin/diagnose.c index 5b12d1fb96..0f8b64994c 100644 --- a/builtin/diagnose.c +++ b/builtin/diagnose.c @@ -1,4 +1,5 @@ #include "builtin.h" +#include "abspath.h" #include "gettext.h" #include "parse-options.h" #include "diagnose.h" diff --git a/builtin/difftool.c b/builtin/difftool.c index f7380dd1cc..ed06db1208 100644 --- a/builtin/difftool.c +++ b/builtin/difftool.c @@ -13,6 +13,7 @@ */ #define USE_THE_INDEX_VARIABLE #include "cache.h" +#include "abspath.h" #include "config.h" #include "builtin.h" #include "run-command.h" diff --git a/builtin/fast-import.c b/builtin/fast-import.c index f3635c7aef..7307c4657f 100644 --- a/builtin/fast-import.c +++ b/builtin/fast-import.c @@ -1,4 +1,5 @@ #include "builtin.h" +#include "abspath.h" #include "cache.h" #include "gettext.h" #include "hex.h" diff --git a/builtin/fsmonitor--daemon.c b/builtin/fsmonitor--daemon.c index 215e3813d7..4efb141734 100644 --- a/builtin/fsmonitor--daemon.c +++ b/builtin/fsmonitor--daemon.c @@ -1,4 +1,5 @@ #include "builtin.h" +#include "abspath.h" #include "alloc.h" #include "config.h" #include "gettext.h" diff --git a/builtin/gc.c b/builtin/gc.c index 32cabad7cf..ef063fc828 100644 --- a/builtin/gc.c +++ b/builtin/gc.c @@ -11,6 +11,7 @@ */ #include "builtin.h" +#include "abspath.h" #include "hex.h" #include "repository.h" #include "config.h" diff --git a/builtin/hash-object.c b/builtin/hash-object.c index f233eda759..7651a7a5f5 100644 --- a/builtin/hash-object.c +++ b/builtin/hash-object.c @@ -5,6 +5,7 @@ * Copyright (C) Junio C Hamano, 2005 */ #include "builtin.h" +#include "abspath.h" #include "config.h" #include "gettext.h" #include "hex.h" diff --git a/builtin/init-db.c b/builtin/init-db.c index e182bc7e83..6f724f694f 100644 --- a/builtin/init-db.c +++ b/builtin/init-db.c @@ -4,6 +4,7 @@ * Copyright (C) Linus Torvalds, 2005 */ #include "cache.h" +#include "abspath.h" #include "config.h" #include "gettext.h" #include "refs.h" diff --git a/builtin/log.c b/builtin/log.c index e702cf126e..b7333b34cc 100644 --- a/builtin/log.c +++ b/builtin/log.c @@ -5,6 +5,7 @@ * 2006 Junio Hamano */ #include "git-compat-util.h" +#include "abspath.h" #include "alloc.h" #include "config.h" #include "gettext.h" diff --git a/builtin/mailinfo.c b/builtin/mailinfo.c index e8bb011cfb..e14f7c0abc 100644 --- a/builtin/mailinfo.c +++ b/builtin/mailinfo.c @@ -3,6 +3,7 @@ * email to figure out authorship and subject */ #include "cache.h" +#include "abspath.h" #include "builtin.h" #include "gettext.h" #include "utf8.h" diff --git a/builtin/merge-file.c b/builtin/merge-file.c index ae45f523b9..c0096ee081 100644 --- a/builtin/merge-file.c +++ b/builtin/merge-file.c @@ -1,4 +1,5 @@ #include "builtin.h" +#include "abspath.h" #include "cache.h" #include "config.h" #include "gettext.h" diff --git a/builtin/merge.c b/builtin/merge.c index 2c9da4b23d..38243e55c5 100644 --- a/builtin/merge.c +++ b/builtin/merge.c @@ -8,6 +8,7 @@ #define USE_THE_INDEX_VARIABLE #include "cache.h" +#include "abspath.h" #include "alloc.h" #include "config.h" #include "environment.h" diff --git a/builtin/multi-pack-index.c b/builtin/multi-pack-index.c index e6757a4447..579bc2cac0 100644 --- a/builtin/multi-pack-index.c +++ b/builtin/multi-pack-index.c @@ -1,4 +1,5 @@ #include "builtin.h" +#include "abspath.h" #include "cache.h" #include "config.h" #include "gettext.h" diff --git a/builtin/mv.c b/builtin/mv.c index c02dddb72b..0a49bf21b0 100644 --- a/builtin/mv.c +++ b/builtin/mv.c @@ -5,6 +5,7 @@ */ #define USE_THE_INDEX_VARIABLE #include "builtin.h" +#include "abspath.h" #include "alloc.h" #include "config.h" #include "gettext.h" diff --git a/builtin/rebase.c b/builtin/rebase.c index a2c68b8ff7..a3f8be8888 100644 --- a/builtin/rebase.c +++ b/builtin/rebase.c @@ -6,6 +6,7 @@ #define USE_THE_INDEX_VARIABLE #include "builtin.h" +#include "abspath.h" #include "gettext.h" #include "hex.h" #include "run-command.h" diff --git a/builtin/receive-pack.c b/builtin/receive-pack.c index 006565f851..aec5ee930b 100644 --- a/builtin/receive-pack.c +++ b/builtin/receive-pack.c @@ -1,4 +1,5 @@ #include "builtin.h" +#include "abspath.h" #include "repository.h" #include "config.h" #include "gettext.h" diff --git a/builtin/rev-parse.c b/builtin/rev-parse.c index 5a932a861b..a4c0878bc9 100644 --- a/builtin/rev-parse.c +++ b/builtin/rev-parse.c @@ -5,6 +5,7 @@ */ #define USE_THE_INDEX_VARIABLE #include "cache.h" +#include "abspath.h" #include "alloc.h" #include "config.h" #include "commit.h" diff --git a/builtin/stash.c b/builtin/stash.c index 65817d0b76..52fa892f7e 100644 --- a/builtin/stash.c +++ b/builtin/stash.c @@ -1,5 +1,6 @@ #define USE_THE_INDEX_VARIABLE #include "builtin.h" +#include "abspath.h" #include "config.h" #include "gettext.h" #include "hex.h" diff --git a/builtin/submodule--helper.c b/builtin/submodule--helper.c index a4bdd44daa..ff1fd8c87a 100644 --- a/builtin/submodule--helper.c +++ b/builtin/submodule--helper.c @@ -1,5 +1,6 @@ #define USE_THE_INDEX_VARIABLE #include "builtin.h" +#include "abspath.h" #include "alloc.h" #include "gettext.h" #include "hex.h" diff --git a/builtin/worktree.c b/builtin/worktree.c index ed89b7e972..ed614ffddc 100644 --- a/builtin/worktree.c +++ b/builtin/worktree.c @@ -1,4 +1,5 @@ #include "cache.h" +#include "abspath.h" #include "checkout.h" #include "config.h" #include "builtin.h" @@ -598,21 +598,6 @@ const char *setup_git_directory(void); char *prefix_path(const char *prefix, int len, const char *path); char *prefix_path_gently(const char *prefix, int len, int *remaining, const char *path); -/* - * Concatenate "prefix" (if len is non-zero) and "path", with no - * connecting characters (so "prefix" should end with a "/"). - * Unlike prefix_path, this should be used if the named file does - * not have to interact with index entry; i.e. name of a random file - * on the filesystem. - * - * The return value is always a newly allocated string (even if the - * prefix was empty). - */ -char *prefix_filename(const char *prefix, const char *path); - -/* Likewise, but path=="-" always yields "-" */ -char *prefix_filename_except_for_dash(const char *prefix, const char *path); - int check_filename(const char *prefix, const char *name); void verify_filename(const char *prefix, const char *name, @@ -1160,18 +1145,6 @@ char *interpolate_path(const char *path, int real_home); /* NEEDSWORK: remove this synonym once in-flight topics have migrated */ #define expand_user_path interpolate_path const char *enter_repo(const char *path, int strict); -static inline int is_absolute_path(const char *path) -{ - return is_dir_sep(path[0]) || has_dos_drive_prefix(path); -} -int is_directory(const char *); -char *strbuf_realpath(struct strbuf *resolved, const char *path, - int die_on_error); -char *strbuf_realpath_forgiving(struct strbuf *resolved, const char *path, - int die_on_error); -char *real_pathdup(const char *path, int die_on_error); -const char *absolute_path(const char *path); -char *absolute_pathdup(const char *path); const char *remove_leading_path(const char *in, const char *prefix); const char *relative_path(const char *in, const char *prefix, struct strbuf *sb); int normalize_path_copy_len(char *dst, const char *src, int *prefix_len); diff --git a/chdir-notify.c b/chdir-notify.c index 5f7f2c2ac2..929ec01b3a 100644 --- a/chdir-notify.c +++ b/chdir-notify.c @@ -1,4 +1,5 @@ #include "cache.h" +#include "abspath.h" #include "chdir-notify.h" #include "list.h" #include "strbuf.h" diff --git a/compat/disk.h b/compat/disk.h index a04a8d294a..6c979c27d8 100644 --- a/compat/disk.h +++ b/compat/disk.h @@ -2,6 +2,7 @@ #define COMPAT_DISK_H #include "git-compat-util.h" +#include "abspath.h" #include "gettext.h" static int get_disk_info(struct strbuf *out) diff --git a/compat/mingw.c b/compat/mingw.c index a9e5570288..cbcd03aea9 100644 --- a/compat/mingw.c +++ b/compat/mingw.c @@ -7,6 +7,7 @@ #include "../strbuf.h" #include "../run-command.h" #include "../cache.h" +#include "../abspath.h" #include "../alloc.h" #include "win32/lazyload.h" #include "../config.h" diff --git a/compat/simple-ipc/ipc-win32.c b/compat/simple-ipc/ipc-win32.c index f011e5cead..997f614434 100644 --- a/compat/simple-ipc/ipc-win32.c +++ b/compat/simple-ipc/ipc-win32.c @@ -1,4 +1,5 @@ #include "cache.h" +#include "abspath.h" #include "gettext.h" #include "simple-ipc.h" #include "strbuf.h" @@ -6,6 +6,7 @@ * */ #include "cache.h" +#include "abspath.h" #include "alloc.h" #include "date.h" #include "branch.h" diff --git a/credential.c b/credential.c index 5244f3c12c..e6417bf880 100644 --- a/credential.c +++ b/credential.c @@ -1,4 +1,5 @@ #include "cache.h" +#include "abspath.h" #include "config.h" #include "credential.h" #include "gettext.h" @@ -1,4 +1,5 @@ #include "cache.h" +#include "abspath.h" #include "alloc.h" #include "config.h" #include "pkt-line.h" diff --git a/diff-no-index.c b/diff-no-index.c index 287a113bad..934a24bee5 100644 --- a/diff-no-index.c +++ b/diff-no-index.c @@ -5,6 +5,7 @@ */ #include "cache.h" +#include "abspath.h" #include "color.h" #include "commit.h" #include "blob.h" @@ -2,6 +2,7 @@ * Copyright (C) 2005 Junio C Hamano */ #include "cache.h" +#include "abspath.h" #include "alloc.h" #include "config.h" #include "gettext.h" @@ -6,6 +6,7 @@ * Junio Hamano, 2005-2006 */ #include "git-compat-util.h" +#include "abspath.h" #include "alloc.h" #include "config.h" #include "dir.h" @@ -1,4 +1,5 @@ #include "cache.h" +#include "abspath.h" #include "config.h" #include "gettext.h" #include "strbuf.h" diff --git a/environment.c b/environment.c index 82a1fc17d0..c69571f0b2 100644 --- a/environment.c +++ b/environment.c @@ -8,6 +8,7 @@ * are. */ #include "cache.h" +#include "abspath.h" #include "branch.h" #include "environment.h" #include "gettext.h" diff --git a/exec-cmd.c b/exec-cmd.c index 282d95af08..042d9247a5 100644 --- a/exec-cmd.c +++ b/exec-cmd.c @@ -1,4 +1,5 @@ #include "cache.h" +#include "abspath.h" #include "exec-cmd.h" #include "gettext.h" #include "quote.h" @@ -3,6 +3,7 @@ */ #include "cache.h" +#include "abspath.h" #include "exec-cmd.h" #include "gettext.h" #include "strbuf.h" diff --git a/lockfile.c b/lockfile.c index ab6490a391..673c21d17a 100644 --- a/lockfile.c +++ b/lockfile.c @@ -3,6 +3,7 @@ */ #include "cache.h" +#include "abspath.h" #include "gettext.h" #include "lockfile.h" @@ -1,4 +1,5 @@ #include "git-compat-util.h" +#include "abspath.h" #include "alloc.h" #include "config.h" #include "csum-file.h" diff --git a/object-file.c b/object-file.c index 39660d49db..bee41b3047 100644 --- a/object-file.c +++ b/object-file.c @@ -7,6 +7,7 @@ * creation etc. */ #include "git-compat-util.h" +#include "abspath.h" #include "alloc.h" #include "config.h" #include "gettext.h" diff --git a/parse-options.c b/parse-options.c index 084b4f1062..a577cc85f6 100644 --- a/parse-options.c +++ b/parse-options.c @@ -1,5 +1,6 @@ #include "git-compat-util.h" #include "parse-options.h" +#include "abspath.h" #include "cache.h" #include "config.h" #include "commit.h" @@ -2,6 +2,7 @@ * Utilities for paths and pathnames */ #include "cache.h" +#include "abspath.h" #include "gettext.h" #include "hex.h" #include "repository.h" diff --git a/pathspec.c b/pathspec.c index 868b4d280c..53763e272f 100644 --- a/pathspec.c +++ b/pathspec.c @@ -1,4 +1,5 @@ #include "cache.h" +#include "abspath.h" #include "config.h" #include "dir.h" #include "gettext.h" @@ -1,4 +1,5 @@ #include "cache.h" +#include "abspath.h" #include "alloc.h" #include "config.h" #include "gettext.h" diff --git a/repository.c b/repository.c index 937fa974b3..4412f63322 100644 --- a/repository.c +++ b/repository.c @@ -4,6 +4,7 @@ */ #define USE_THE_INDEX_VARIABLE #include "cache.h" +#include "abspath.h" #include "repository.h" #include "object-store.h" #include "config.h" @@ -1,4 +1,5 @@ #include "git-compat-util.h" +#include "abspath.h" #include "alloc.h" #include "config.h" #include "gettext.h" @@ -3,6 +3,7 @@ */ #include "cache.h" +#include "abspath.h" #include "gettext.h" #include "parse-options.h" #include "config.h" diff --git a/sequencer.c b/sequencer.c index 7fa776b061..c61c1fc4d8 100644 --- a/sequencer.c +++ b/sequencer.c @@ -1,4 +1,5 @@ #include "cache.h" +#include "abspath.h" #include "alloc.h" #include "config.h" #include "environment.h" @@ -1,4 +1,5 @@ #include "cache.h" +#include "abspath.h" #include "gettext.h" #include "repository.h" #include "config.h" @@ -1,4 +1,5 @@ #include "cache.h" +#include "abspath.h" #include "alloc.h" #include "environment.h" #include "gettext.h" diff --git a/submodule.c b/submodule.c index 8b551e5327..13ff333f68 100644 --- a/submodule.c +++ b/submodule.c @@ -1,4 +1,5 @@ #include "cache.h" +#include "abspath.h" #include "alloc.h" #include "repository.h" #include "config.h" diff --git a/t/helper/test-path-utils.c b/t/helper/test-path-utils.c index f69709d674..d3d00dc34f 100644 --- a/t/helper/test-path-utils.c +++ b/t/helper/test-path-utils.c @@ -1,5 +1,6 @@ #include "test-tool.h" #include "cache.h" +#include "abspath.h" #include "string-list.h" #include "utf8.h" diff --git a/tmp-objdir.c b/tmp-objdir.c index 2a2012eb6d..fff15cb6b5 100644 --- a/tmp-objdir.c +++ b/tmp-objdir.c @@ -1,5 +1,6 @@ #include "cache.h" #include "tmp-objdir.h" +#include "abspath.h" #include "chdir-notify.h" #include "dir.h" #include "sigchain.h" @@ -22,6 +22,7 @@ */ #include "cache.h" +#include "abspath.h" #include "quote.h" struct trace_key trace_default_key = { "GIT_TRACE", 0, 0, 0 }; diff --git a/trace2/tr2_dst.c b/trace2/tr2_dst.c index 8a21dd2972..273260e1f1 100644 --- a/trace2/tr2_dst.c +++ b/trace2/tr2_dst.c @@ -1,4 +1,5 @@ #include "cache.h" +#include "abspath.h" #include "sigchain.h" #include "trace2/tr2_dst.h" #include "trace2/tr2_sid.h" diff --git a/worktree.c b/worktree.c index 09eb522e5a..b7bc4c7bb7 100644 --- a/worktree.c +++ b/worktree.c @@ -1,4 +1,5 @@ #include "cache.h" +#include "abspath.h" #include "alloc.h" #include "gettext.h" #include "repository.h" @@ -2,6 +2,7 @@ * Various trivial helper wrappers around standard functions */ #include "cache.h" +#include "abspath.h" #include "config.h" #include "gettext.h" |