summaryrefslogtreecommitdiff
path: root/trailer.h
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2017-08-26 22:55:04 -0700
committerJunio C Hamano <gitster@pobox.com>2017-08-26 22:55:04 -0700
commitbfd91b41341cb922aa1ba6e7c01ccd5ebb81cf41 (patch)
tree8309adc9af63683b18c6c30c8ee4a4d74fc567dc /trailer.h
parent0b9635847944f97079fc6c2283063cd3a0ed0271 (diff)
parentc88bf5436d84762a474048a0a57409a8f2fa2c6b (diff)
downloadgit-bfd91b41341cb922aa1ba6e7c01ccd5ebb81cf41.tar.gz
Merge branch 'pb/trailers-from-command-line'
"git interpret-trailers" learned to take the trailer specifications from the command line that overrides the configured values. * pb/trailers-from-command-line: interpret-trailers: fix documentation typo interpret-trailers: add options for actions trailers: introduce struct new_trailer_item trailers: export action enums and corresponding lookup functions
Diffstat (limited to 'trailer.h')
-rw-r--r--trailer.h43
1 files changed, 42 insertions, 1 deletions
diff --git a/trailer.h b/trailer.h
index 65cc5d79c6..973b533a1a 100644
--- a/trailer.h
+++ b/trailer.h
@@ -1,6 +1,33 @@
#ifndef TRAILER_H
#define TRAILER_H
+#include "list.h"
+
+enum trailer_where {
+ WHERE_DEFAULT,
+ WHERE_END,
+ WHERE_AFTER,
+ WHERE_BEFORE,
+ WHERE_START
+};
+enum trailer_if_exists {
+ EXISTS_DEFAULT,
+ EXISTS_ADD_IF_DIFFERENT_NEIGHBOR,
+ EXISTS_ADD_IF_DIFFERENT,
+ EXISTS_ADD,
+ EXISTS_REPLACE,
+ EXISTS_DO_NOTHING
+};
+enum trailer_if_missing {
+ MISSING_DEFAULT,
+ MISSING_ADD,
+ MISSING_DO_NOTHING
+};
+
+int trailer_set_where(enum trailer_where *item, const char *value);
+int trailer_set_if_exists(enum trailer_if_exists *item, const char *value);
+int trailer_set_if_missing(enum trailer_if_missing *item, const char *value);
+
struct trailer_info {
/*
* True if there is a blank line before the location pointed to by
@@ -22,8 +49,22 @@ struct trailer_info {
size_t trailer_nr;
};
+/*
+ * A list that represents newly-added trailers, such as those provided
+ * with the --trailer command line option of git-interpret-trailers.
+ */
+struct new_trailer_item {
+ struct list_head list;
+
+ const char *text;
+
+ enum trailer_where where;
+ enum trailer_if_exists if_exists;
+ enum trailer_if_missing if_missing;
+};
+
void process_trailers(const char *file, int in_place, int trim_empty,
- struct string_list *trailers);
+ struct list_head *new_trailer_head);
void trailer_info_get(struct trailer_info *info, const char *str);