diff options
| author | Junio C Hamano <gitster@pobox.com> | 2024-08-23 09:02:34 -0700 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2024-08-23 09:02:34 -0700 |
| commit | 5e56a39e6a9b8621e62f7a18ed027777a095dba7 (patch) | |
| tree | 6c444719f16ca94fb3a001f00378974372f4c906 /editor.c | |
| parent | Merge branch 'ps/leakfixes-part-4' (diff) | |
| parent | config: hide functions using `the_repository` by default (diff) | |
| download | git-5e56a39e6a9b8621e62f7a18ed027777a095dba7.tar.gz git-5e56a39e6a9b8621e62f7a18ed027777a095dba7.zip | |
Merge branch 'ps/config-wo-the-repository'
Use of API functions that implicitly depend on the_repository
object in the config subsystem has been rewritten to pass a
repository object through the callchain.
* ps/config-wo-the-repository:
config: hide functions using `the_repository` by default
global: prepare for hiding away repo-less config functions
config: don't depend on `the_repository` with branch conditions
config: don't have setters depend on `the_repository`
config: pass repo to functions that rename or copy sections
config: pass repo to `git_die_config()`
config: pass repo to `git_config_get_expiry_in_days()`
config: pass repo to `git_config_get_expiry()`
config: pass repo to `git_config_get_max_percent_split_change()`
config: pass repo to `git_config_get_split_index()`
config: pass repo to `git_config_get_index_threads()`
config: expose `repo_config_clear()`
config: introduce missing setters that take repo as parameter
path: hide functions using `the_repository` by default
path: stop relying on `the_repository` in `worktree_git_path()`
path: stop relying on `the_repository` when reporting garbage
hooks: remove implicit dependency on `the_repository`
editor: do not rely on `the_repository` for interactive edits
path: expose `do_git_common_path()` as `repo_common_pathv()`
path: expose `do_git_path()` as `repo_git_pathv()`
Diffstat (limited to 'editor.c')
| -rw-r--r-- | editor.c | 15 |
1 files changed, 10 insertions, 5 deletions
@@ -1,3 +1,5 @@ +#define USE_THE_REPOSITORY_VARIABLE + #include "git-compat-util.h" #include "abspath.h" #include "advice.h" @@ -133,14 +135,17 @@ int launch_sequence_editor(const char *path, struct strbuf *buffer, return launch_specified_editor(git_sequence_editor(), path, buffer, env); } -int strbuf_edit_interactively(struct strbuf *buffer, const char *path, +int strbuf_edit_interactively(struct repository *r, + struct strbuf *buffer, const char *path, const char *const *env) { - char *path2 = NULL; + struct strbuf sb = STRBUF_INIT; int fd, res = 0; - if (!is_absolute_path(path)) - path = path2 = xstrdup(git_path("%s", path)); + if (!is_absolute_path(path)) { + strbuf_repo_git_path(&sb, r, "%s", path); + path = sb.buf; + } fd = open(path, O_WRONLY | O_CREAT | O_TRUNC, 0666); if (fd < 0) @@ -157,6 +162,6 @@ int strbuf_edit_interactively(struct strbuf *buffer, const char *path, unlink(path); } - free(path2); + strbuf_release(&sb); return res; } |
