diff options
author | Elijah Newren <newren@gmail.com> | 2023-04-11 09:41:57 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2023-04-11 17:52:10 +0200 |
commit | 4e120823a345cf348a052683d726c90bc4b256ca (patch) | |
tree | 6453f1bbf0b5fc757689b0b0060cb1fe3141a815 /editor.h | |
parent | treewide: remove cache.h inclusion due to object.h changes (diff) | |
download | git-4e120823a345cf348a052683d726c90bc4b256ca.tar.xz git-4e120823a345cf348a052683d726c90bc4b256ca.zip |
editor: move editor-related functions and declarations into common file
cache.h and strbuf.[ch] had editor-related functions. Move these into
editor.[ch].
Signed-off-by: Elijah Newren <newren@gmail.com>
Acked-by: Calvin Wan <calvinwan@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'editor.h')
-rw-r--r-- | editor.h | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/editor.h b/editor.h new file mode 100644 index 0000000000..8016bb5e00 --- /dev/null +++ b/editor.h @@ -0,0 +1,34 @@ +#ifndef EDITOR_H +#define EDITOR_H + +struct strbuf; + +const char *git_editor(void); +const char *git_sequence_editor(void); +int is_terminal_dumb(void); + +/** + * Launch the user preferred editor to edit a file and fill the buffer + * with the file's contents upon the user completing their editing. The + * third argument can be used to set the environment which the editor is + * run in. If the buffer is NULL the editor is launched as usual but the + * file's contents are not read into the buffer upon completion. + */ +int launch_editor(const char *path, struct strbuf *buffer, + const char *const *env); + +int launch_sequence_editor(const char *path, struct strbuf *buffer, + const char *const *env); + +/* + * In contrast to `launch_editor()`, this function writes out the contents + * of the specified file first, then clears the `buffer`, then launches + * the editor and reads back in the file contents into the `buffer`. + * Finally, it deletes the temporary file. + * + * If `path` is relative, it refers to a file in the `.git` directory. + */ +int strbuf_edit_interactively(struct strbuf *buffer, const char *path, + const char *const *env); + +#endif |