Revision 133a4fda59e7e68be13191082e14be32143bd61b authored by Đoàn Trần Công Danh on 09 May 2021, 17:12:12 UTC, committed by Junio C Hamano on 10 May 2021, 06:06:22 UTC
In previous changes, we've turned on warning for quoted CR in base64 or
quoted-printable email messages. Some projects see those quoted CR a lot,
they know that it happens most of the time, and they find it's desirable
to always strip those CR.

Those projects in question usually fall back to use other tools to handle
patches when receive such patches.

Let's help those projects handle those patches by stripping those
excessive CR.

Signed-off-by: Đoàn Trần Công Danh <congdanhqx@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
1 parent f1aa299
Raw File
archive.h
#ifndef ARCHIVE_H
#define ARCHIVE_H

#include "cache.h"
#include "pathspec.h"

struct repository;
struct pretty_print_context;

struct archiver_args {
	struct repository *repo;
	char *refname;
	const char *prefix;
	const char *base;
	size_t baselen;
	struct tree *tree;
	const struct object_id *commit_oid;
	const struct commit *commit;
	timestamp_t time;
	struct pathspec pathspec;
	unsigned int verbose : 1;
	unsigned int worktree_attributes : 1;
	unsigned int convert : 1;
	int compression_level;
	struct string_list extra_files;
	struct pretty_print_context *pretty_ctx;
};

/* main api */

int write_archive(int argc, const char **argv, const char *prefix,
		  struct repository *repo,
		  const char *name_hint, int remote);

const char *archive_format_from_filename(const char *filename);

/* archive backend stuff */

#define ARCHIVER_WANT_COMPRESSION_LEVELS 1
#define ARCHIVER_REMOTE 2
#define ARCHIVER_HIGH_COMPRESSION_LEVELS 4
struct archiver {
	const char *name;
	int (*write_archive)(const struct archiver *, struct archiver_args *);
	unsigned flags;
	void *data;
};
void register_archiver(struct archiver *);

void init_tar_archiver(void);
void init_zip_archiver(void);
void init_archivers(void);

typedef int (*write_archive_entry_fn_t)(struct archiver_args *args,
					const struct object_id *oid,
					const char *path, size_t pathlen,
					unsigned int mode,
					void *buffer, unsigned long size);

int write_archive_entries(struct archiver_args *args, write_archive_entry_fn_t write_entry);

#endif	/* ARCHIVE_H */
back to top