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>

Elijah Newren committed Mar 21, 2023 at 06:25 UTC 0b027f6ca79cafbc14f36ff1741fc7378282f295
65 files changed +98 -28
abspath.c
+3 -1
@@ -1,4 +1,6 @@
1 -#include "cache.h"
1 +#include "git-compat-util.h"
2 +#include "abspath.h"
3 +#include "strbuf.h"
4
5 /*
6 * Do not use this for inspecting *tracked* content. When path is a
abspath.h new
+33
@@ -0,0 +1,33 @@
1 +#ifndef ABSPATH_H
2 +#define ABSPATH_H
3 +
4 +int is_directory(const char *);
5 +char *strbuf_realpath(struct strbuf *resolved, const char *path,
6 + int die_on_error);
7 +char *strbuf_realpath_forgiving(struct strbuf *resolved, const char *path,
8 + int die_on_error);
9 +char *real_pathdup(const char *path, int die_on_error);
10 +const char *absolute_path(const char *path);
11 +char *absolute_pathdup(const char *path);
12 +
13 +/*
14 + * Concatenate "prefix" (if len is non-zero) and "path", with no
15 + * connecting characters (so "prefix" should end with a "/").
16 + * Unlike prefix_path, this should be used if the named file does
17 + * not have to interact with index entry; i.e. name of a random file
18 + * on the filesystem.
19 + *
20 + * The return value is always a newly allocated string (even if the
21 + * prefix was empty).
22 + */
23 +char *prefix_filename(const char *prefix, const char *path);
24 +
25 +/* Likewise, but path=="-" always yields "-" */
26 +char *prefix_filename_except_for_dash(const char *prefix, const char *path);
27 +
28 +static inline int is_absolute_path(const char *path)
29 +{
30 + return is_dir_sep(path[0]) || has_dos_drive_prefix(path);
31 +}
32 +
33 +#endif /* ABSPATH_H */
apply.c
+1
@@ -8,6 +8,7 @@
8 */
9
10 #include "cache.h"
11 +#include "abspath.h"
12 #include "alloc.h"
13 #include "config.h"
14 #include "object-store.h"
archive.c
+1
@@ -1,4 +1,5 @@
1 #include "git-compat-util.h"
2 +#include "abspath.h"
3 #include "alloc.h"
4 #include "config.h"
5 #include "gettext.h"
builtin/am.c
+1
@@ -5,6 +5,7 @@
5 */
6 #define USE_THE_INDEX_VARIABLE
7 #include "cache.h"
8 +#include "abspath.h"
9 #include "config.h"
10 #include "builtin.h"
11 #include "exec-cmd.h"
builtin/bugreport.c
+1
@@ -1,4 +1,5 @@
1 #include "builtin.h"
2 +#include "abspath.h"
3 #include "gettext.h"
4 #include "parse-options.h"
5 #include "strbuf.h"
builtin/bundle.c
+1
@@ -1,4 +1,5 @@
1 #include "builtin.h"
2 +#include "abspath.h"
3 #include "gettext.h"
4 #include "strvec.h"
5 #include "parse-options.h"
builtin/clean.c
+1
@@ -8,6 +8,7 @@
8
9 #define USE_THE_INDEX_VARIABLE
10 #include "builtin.h"
11 +#include "abspath.h"
12 #include "cache.h"
13 #include "config.h"
14 #include "dir.h"
builtin/clone.c
+1
@@ -10,6 +10,7 @@
10
11 #define USE_THE_INDEX_VARIABLE
12 #include "builtin.h"
13 +#include "abspath.h"
14 #include "config.h"
15 #include "gettext.h"
16 #include "hex.h"
builtin/config.c
+1
@@ -1,4 +1,5 @@
1 #include "builtin.h"
2 +#include "abspath.h"
3 #include "alloc.h"
4 #include "config.h"
5 #include "color.h"
builtin/credential-cache--daemon.c
+1
@@ -1,4 +1,5 @@
1 #include "builtin.h"
2 +#include "abspath.h"
3 #include "alloc.h"
4 #include "gettext.h"
5 #include "parse-options.h"
builtin/diagnose.c
+1
@@ -1,4 +1,5 @@
1 #include "builtin.h"
2 +#include "abspath.h"
3 #include "gettext.h"
4 #include "parse-options.h"
5 #include "diagnose.h"
builtin/difftool.c
+1
@@ -13,6 +13,7 @@
13 */
14 #define USE_THE_INDEX_VARIABLE
15 #include "cache.h"
16 +#include "abspath.h"
17 #include "config.h"
18 #include "builtin.h"
19 #include "run-command.h"
builtin/fast-import.c
+1
@@ -1,4 +1,5 @@
1 #include "builtin.h"
2 +#include "abspath.h"
3 #include "cache.h"
4 #include "gettext.h"
5 #include "hex.h"
builtin/fsmonitor--daemon.c
+1
@@ -1,4 +1,5 @@
1 #include "builtin.h"
2 +#include "abspath.h"
3 #include "alloc.h"
4 #include "config.h"
5 #include "gettext.h"
builtin/gc.c
+1
@@ -11,6 +11,7 @@
11 */
12
13 #include "builtin.h"
14 +#include "abspath.h"
15 #include "hex.h"
16 #include "repository.h"
17 #include "config.h"
builtin/hash-object.c
+1
@@ -5,6 +5,7 @@
5 * Copyright (C) Junio C Hamano, 2005
6 */
7 #include "builtin.h"
8 +#include "abspath.h"
9 #include "config.h"
10 #include "gettext.h"
11 #include "hex.h"
builtin/init-db.c
+1
@@ -4,6 +4,7 @@
4 * Copyright (C) Linus Torvalds, 2005
5 */
6 #include "cache.h"
7 +#include "abspath.h"
8 #include "config.h"
9 #include "gettext.h"
10 #include "refs.h"
builtin/log.c
+1
@@ -5,6 +5,7 @@
5 * 2006 Junio Hamano
6 */
7 #include "git-compat-util.h"
8 +#include "abspath.h"
9 #include "alloc.h"
10 #include "config.h"
11 #include "gettext.h"
builtin/mailinfo.c
+1
@@ -3,6 +3,7 @@
3 * email to figure out authorship and subject
4 */
5 #include "cache.h"
6 +#include "abspath.h"
7 #include "builtin.h"
8 #include "gettext.h"
9 #include "utf8.h"
builtin/merge-file.c
+1
@@ -1,4 +1,5 @@
1 #include "builtin.h"
2 +#include "abspath.h"
3 #include "cache.h"
4 #include "config.h"
5 #include "gettext.h"
builtin/merge.c
+1
@@ -8,6 +8,7 @@
8
9 #define USE_THE_INDEX_VARIABLE
10 #include "cache.h"
11 +#include "abspath.h"
12 #include "alloc.h"
13 #include "config.h"
14 #include "environment.h"
builtin/multi-pack-index.c
+1
@@ -1,4 +1,5 @@
1 #include "builtin.h"
2 +#include "abspath.h"
3 #include "cache.h"
4 #include "config.h"
5 #include "gettext.h"
builtin/mv.c
+1
@@ -5,6 +5,7 @@
5 */
6 #define USE_THE_INDEX_VARIABLE
7 #include "builtin.h"
8 +#include "abspath.h"
9 #include "alloc.h"
10 #include "config.h"
11 #include "gettext.h"
builtin/rebase.c
+1
@@ -6,6 +6,7 @@
6
7 #define USE_THE_INDEX_VARIABLE
8 #include "builtin.h"
9 +#include "abspath.h"
10 #include "gettext.h"
11 #include "hex.h"
12 #include "run-command.h"
builtin/receive-pack.c
+1
@@ -1,4 +1,5 @@
1 #include "builtin.h"
2 +#include "abspath.h"
3 #include "repository.h"
4 #include "config.h"
5 #include "gettext.h"
builtin/rev-parse.c
+1
@@ -5,6 +5,7 @@
5 */
6 #define USE_THE_INDEX_VARIABLE
7 #include "cache.h"
8 +#include "abspath.h"
9 #include "alloc.h"
10 #include "config.h"
11 #include "commit.h"
builtin/stash.c
+1
@@ -1,5 +1,6 @@
1 #define USE_THE_INDEX_VARIABLE
2 #include "builtin.h"
3 +#include "abspath.h"
4 #include "config.h"
5 #include "gettext.h"
6 #include "hex.h"
builtin/submodule--helper.c
+1
@@ -1,5 +1,6 @@
1 #define USE_THE_INDEX_VARIABLE
2 #include "builtin.h"
3 +#include "abspath.h"
4 #include "alloc.h"
5 #include "gettext.h"
6 #include "hex.h"
builtin/worktree.c
+1
@@ -1,4 +1,5 @@
1 #include "cache.h"
2 +#include "abspath.h"
3 #include "checkout.h"
4 #include "config.h"
5 #include "builtin.h"
cache.h
-27
@@ -598,21 +598,6 @@ const char *setup_git_directory(void);
598 char *prefix_path(const char *prefix, int len, const char *path);
599 char *prefix_path_gently(const char *prefix, int len, int *remaining, const char *path);
600
601 -/*
602 - * Concatenate "prefix" (if len is non-zero) and "path", with no
603 - * connecting characters (so "prefix" should end with a "/").
604 - * Unlike prefix_path, this should be used if the named file does
605 - * not have to interact with index entry; i.e. name of a random file
606 - * on the filesystem.
607 - *
608 - * The return value is always a newly allocated string (even if the
609 - * prefix was empty).
610 - */
611 -char *prefix_filename(const char *prefix, const char *path);
612 -
613 -/* Likewise, but path=="-" always yields "-" */
614 -char *prefix_filename_except_for_dash(const char *prefix, const char *path);
615 -
601 int check_filename(const char *prefix, const char *name);
602 void verify_filename(const char *prefix,
603 const char *name,
@@ -1160,18 +1145,6 @@ char *interpolate_path(const char *path, int real_home);
1145 /* NEEDSWORK: remove this synonym once in-flight topics have migrated */
1146 #define expand_user_path interpolate_path
1147 const char *enter_repo(const char *path, int strict);
1163 -static inline int is_absolute_path(const char *path)
1164 -{
1165 - return is_dir_sep(path[0]) || has_dos_drive_prefix(path);
1166 -}
1167 -int is_directory(const char *);
1168 -char *strbuf_realpath(struct strbuf *resolved, const char *path,
1169 - int die_on_error);
1170 -char *strbuf_realpath_forgiving(struct strbuf *resolved, const char *path,
1171 - int die_on_error);
1172 -char *real_pathdup(const char *path, int die_on_error);
1173 -const char *absolute_path(const char *path);
1174 -char *absolute_pathdup(const char *path);
1148 const char *remove_leading_path(const char *in, const char *prefix);
1149 const char *relative_path(const char *in, const char *prefix, struct strbuf *sb);
1150 int normalize_path_copy_len(char *dst, const char *src, int *prefix_len);
chdir-notify.c
+1
@@ -1,4 +1,5 @@
1 #include "cache.h"
2 +#include "abspath.h"
3 #include "chdir-notify.h"
4 #include "list.h"
5 #include "strbuf.h"
compat/disk.h
+1
@@ -2,6 +2,7 @@
2 #define COMPAT_DISK_H
3
4 #include "git-compat-util.h"
5 +#include "abspath.h"
6 #include "gettext.h"
7
8 static int get_disk_info(struct strbuf *out)
compat/mingw.c
+1
@@ -7,6 +7,7 @@
7 #include "../strbuf.h"
8 #include "../run-command.h"
9 #include "../cache.h"
10 +#include "../abspath.h"
11 #include "../alloc.h"
12 #include "win32/lazyload.h"
13 #include "../config.h"
compat/simple-ipc/ipc-win32.c
+1
@@ -1,4 +1,5 @@
1 #include "cache.h"
2 +#include "abspath.h"
3 #include "gettext.h"
4 #include "simple-ipc.h"
5 #include "strbuf.h"
config.c
+1
@@ -6,6 +6,7 @@
6 *
7 */
8 #include "cache.h"
9 +#include "abspath.h"
10 #include "alloc.h"
11 #include "date.h"
12 #include "branch.h"
credential.c
+1
@@ -1,4 +1,5 @@
1 #include "cache.h"
2 +#include "abspath.h"
3 #include "config.h"
4 #include "credential.h"
5 #include "gettext.h"
daemon.c
+1
@@ -1,4 +1,5 @@
1 #include "cache.h"
2 +#include "abspath.h"
3 #include "alloc.h"
4 #include "config.h"
5 #include "pkt-line.h"
diff-no-index.c
+1
@@ -5,6 +5,7 @@
5 */
6
7 #include "cache.h"
8 +#include "abspath.h"
9 #include "color.h"
10 #include "commit.h"
11 #include "blob.h"
diff.c
+1
@@ -2,6 +2,7 @@
2 * Copyright (C) 2005 Junio C Hamano
3 */
4 #include "cache.h"
5 +#include "abspath.h"
6 #include "alloc.h"
7 #include "config.h"
8 #include "gettext.h"
dir.c
+1
@@ -6,6 +6,7 @@
6 * Junio Hamano, 2005-2006
7 */
8 #include "git-compat-util.h"
9 +#include "abspath.h"
10 #include "alloc.h"
11 #include "config.h"
12 #include "dir.h"
editor.c
+1
@@ -1,4 +1,5 @@
1 #include "cache.h"
2 +#include "abspath.h"
3 #include "config.h"
4 #include "gettext.h"
5 #include "strbuf.h"
environment.c
+1
@@ -8,6 +8,7 @@
8 * are.
9 */
10 #include "cache.h"
11 +#include "abspath.h"
12 #include "branch.h"
13 #include "environment.h"
14 #include "gettext.h"
exec-cmd.c
+1
@@ -1,4 +1,5 @@
1 #include "cache.h"
2 +#include "abspath.h"
3 #include "exec-cmd.h"
4 #include "gettext.h"
5 #include "quote.h"
gettext.c
+1
@@ -3,6 +3,7 @@
3 */
4
5 #include "cache.h"
6 +#include "abspath.h"
7 #include "exec-cmd.h"
8 #include "gettext.h"
9 #include "strbuf.h"
lockfile.c
+1
@@ -3,6 +3,7 @@
3 */
4
5 #include "cache.h"
6 +#include "abspath.h"
7 #include "gettext.h"
8 #include "lockfile.h"
9
midx.c
+1
@@ -1,4 +1,5 @@
1 #include "git-compat-util.h"
2 +#include "abspath.h"
3 #include "alloc.h"
4 #include "config.h"
5 #include "csum-file.h"
object-file.c
+1
@@ -7,6 +7,7 @@
7 * creation etc.
8 */
9 #include "git-compat-util.h"
10 +#include "abspath.h"
11 #include "alloc.h"
12 #include "config.h"
13 #include "gettext.h"
parse-options.c
+1
@@ -1,5 +1,6 @@
1 #include "git-compat-util.h"
2 #include "parse-options.h"
3 +#include "abspath.h"
4 #include "cache.h"
5 #include "config.h"
6 #include "commit.h"
path.c
+1
@@ -2,6 +2,7 @@
2 * Utilities for paths and pathnames
3 */
4 #include "cache.h"
5 +#include "abspath.h"
6 #include "gettext.h"
7 #include "hex.h"
8 #include "repository.h"
pathspec.c
+1
@@ -1,4 +1,5 @@
1 #include "cache.h"
2 +#include "abspath.h"
3 #include "config.h"
4 #include "dir.h"
5 #include "gettext.h"
remote.c
+1
@@ -1,4 +1,5 @@
1 #include "cache.h"
2 +#include "abspath.h"
3 #include "alloc.h"
4 #include "config.h"
5 #include "gettext.h"
repository.c
+1
@@ -4,6 +4,7 @@
4 */
5 #define USE_THE_INDEX_VARIABLE
6 #include "cache.h"
7 +#include "abspath.h"
8 #include "repository.h"
9 #include "object-store.h"
10 #include "config.h"
rerere.c
+1
@@ -1,4 +1,5 @@
1 #include "git-compat-util.h"
2 +#include "abspath.h"
3 #include "alloc.h"
4 #include "config.h"
5 #include "gettext.h"
scalar.c
+1
@@ -3,6 +3,7 @@
3 */
4
5 #include "cache.h"
6 +#include "abspath.h"
7 #include "gettext.h"
8 #include "parse-options.h"
9 #include "config.h"
sequencer.c
+1
@@ -1,4 +1,5 @@
1 #include "cache.h"
2 +#include "abspath.h"
3 #include "alloc.h"
4 #include "config.h"
5 #include "environment.h"
setup.c
+1
@@ -1,4 +1,5 @@
1 #include "cache.h"
2 +#include "abspath.h"
3 #include "gettext.h"
4 #include "repository.h"
5 #include "config.h"
strbuf.c
+1
@@ -1,4 +1,5 @@
1 #include "cache.h"
2 +#include "abspath.h"
3 #include "alloc.h"
4 #include "environment.h"
5 #include "gettext.h"
submodule.c
+1
@@ -1,4 +1,5 @@
1 #include "cache.h"
2 +#include "abspath.h"
3 #include "alloc.h"
4 #include "repository.h"
5 #include "config.h"
t/helper/test-path-utils.c
+1
@@ -1,5 +1,6 @@
1 #include "test-tool.h"
2 #include "cache.h"
3 +#include "abspath.h"
4 #include "string-list.h"
5 #include "utf8.h"
6
tmp-objdir.c
+1
@@ -1,5 +1,6 @@
1 #include "cache.h"
2 #include "tmp-objdir.h"
3 +#include "abspath.h"
4 #include "chdir-notify.h"
5 #include "dir.h"
6 #include "sigchain.h"
trace.c
+1
@@ -22,6 +22,7 @@
22 */
23
24 #include "cache.h"
25 +#include "abspath.h"
26 #include "quote.h"
27
28 struct trace_key trace_default_key = { "GIT_TRACE", 0, 0, 0 };
trace2/tr2_dst.c
+1
@@ -1,4 +1,5 @@
1 #include "cache.h"
2 +#include "abspath.h"
3 #include "sigchain.h"
4 #include "trace2/tr2_dst.h"
5 #include "trace2/tr2_sid.h"
worktree.c
+1
@@ -1,4 +1,5 @@
1 #include "cache.h"
2 +#include "abspath.h"
3 #include "alloc.h"
4 #include "gettext.h"
5 #include "repository.h"
wrapper.c
+1
@@ -2,6 +2,7 @@
2 * Various trivial helper wrappers around standard functions
3 */
4 #include "cache.h"
5 +#include "abspath.h"
6 #include "config.h"
7 #include "gettext.h"
8