commit 718b3ab0e353c4ccb510b0ec9c3673b1c9a7344e from: Stefan Sperling date: Sat Mar 17 16:50:48 2018 UTC rename the library-internal headers again to a common prefix commit - 8bf5b3c9ffbda6ccd1cbcc790feead341d31c357 commit + 718b3ab0e353c4ccb510b0ec9c3673b1c9a7344e blob - a1de367be2f98b15140f7347f7a435580803b917 blob + e9f8bccaba3a5b29967825d40d6983546b54dc61 --- lib/delta.c +++ lib/delta.c @@ -26,9 +26,9 @@ #include "got_repository.h" #include "got_object.h" -#include "got_delta_lib.h" -#include "got_path_lib.h" -#include "got_zbuf_lib.h" +#include "got_lib_delta.h" +#include "got_lib_path.h" +#include "got_lib_zbuf.h" #ifndef MIN #define MIN(_a,_b) ((_a) < (_b) ? (_a) : (_b)) blob - 0cc46638942f0cf3f2194553f0cf7bbf7fb47cef blob + f5217236e888b7b9ac51357436d53f9e8b909ad2 --- lib/diff.c +++ lib/diff.c @@ -29,8 +29,8 @@ #include "got_error.h" #include "got_diff.h" -#include "got_diff_lib.h" -#include "got_path_lib.h" +#include "got_lib_diff.h" +#include "got_lib_path.h" const struct got_error * got_diff_blob(struct got_blob_object *blob1, struct got_blob_object *blob2, blob - 87a1e5f57e6c41f013170935148c27ea8d8738e3 blob + 2fdd381ceed1dd1ccdb46640879c87952edbd56e --- lib/diffreg.c +++ lib/diffreg.c @@ -88,7 +88,7 @@ #include "got_object.h" #include "got_diff.h" -#include "got_diff_lib.h" +#include "got_lib_diff.h" #define MINIMUM(a, b) (((a) < (b)) ? (a) : (b)) #define MAXIMUM(a, b) (((a) > (b)) ? (a) : (b)) blob - 349b0aa7642b2ac036100ff8f9e3ecfedcc5027d blob + 6c2d120fdfd7717d4ea98634d7730201bdf56fd3 --- lib/fileindex.c +++ lib/fileindex.c @@ -25,7 +25,7 @@ #include "got_error.h" -#include "got_fileindex_lib.h" +#include "got_lib_fileindex.h" const struct got_error * got_fileindex_entry_open(struct got_fileindex_entry **entry, blob - bc986fd9f13fbac49dfd74e76e0039dea07c5f74 (mode 644) blob + /dev/null --- lib/got_delta_lib.h +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Copyright (c) 2018 Stefan Sperling - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -struct got_delta { - SIMPLEQ_ENTRY(got_delta) entry; - off_t offset; - size_t tslen; - int type; - size_t size; - off_t data_offset; - uint8_t *delta_buf; - size_t delta_len; -}; - -struct got_delta_chain { - int nentries; - SIMPLEQ_HEAD(, got_delta) entries; -}; - -struct got_delta *got_delta_open(const char *, off_t, size_t, int, size_t, - off_t, uint8_t *, size_t); -void got_delta_close(struct got_delta *); -const struct got_error *got_delta_chain_get_base_type(int *, - struct got_delta_chain *); -const struct got_error *got_delta_get_sizes(uint64_t *, uint64_t *, - const uint8_t *, size_t); -const struct got_error *got_delta_apply_in_mem(uint8_t *, const uint8_t *, - size_t, uint8_t *, size_t *); -const struct got_error *got_delta_apply(FILE *, const uint8_t *, size_t, - FILE *, size_t *); - -/* - * The amount of result data we may keep in RAM while applying deltas. - * Data larger than this is written to disk during delta application (slow). - */ -#define GOT_DELTA_RESULT_SIZE_CACHED_MAX (4 * 1024 * 1024) /* bytes */ - -/* - * Definitions for delta data streams. - */ - -#define GOT_DELTA_STREAM_LENGTH_MIN 4 /* bytes */ - -/* - * A delta stream begins with two size fields. The first specifies the - * size of the delta base, and the second describes the expected size of - * the data which results from applying the delta to the delta base. - * - * Each size field uses a variable length encoding: - * size0...sizeN form a 7+7+7+...+7 bit integer, where size0 is the - * least significant part and sizeN is the most significant part. - * If the MSB of a size byte is set, an additional size byte follows. - */ -#define GOT_DELTA_SIZE_VAL_MASK 0x7f -#define GOT_DELTA_SIZE_SHIFT 7 -#define GOT_DELTA_SIZE_MORE 0x80 - -/* - * The rest of the delta stream contains copy instructions. - * - * A base copy instruction copies N bytes starting at offset X from the delta - * base to the output. Base copy instructions begin with a byte which has its - * MSB set. The remaining bits of this byte describe how many offset and - * length value bytes follow. - * The offset X is encoded in 1 to 4 bytes, and the length N is encoded in - * 1 to 3 bytes. For both values, the first byte contributes the least - * significant part and the last byte which is present contributes the - * most significant part. - * If the offset value is omitted, an offset of zero is implied. - * If the length value is omitted, a default length of 65536 bytes is implied. - * - * An inline copy instruction copies data from the delta stream to the output. - * Such instructions begin with one byte which does not have the MSB set - * and which specifies the length of the inline data which follows (i.e. - * at most 127 bytes). A length value of zero is invalid. - */ - -#define GOT_DELTA_BASE_COPY 0x80 - -#define GOT_DELTA_COPY_OFF1 0x01 /* byte 1 of offset is present */ -#define GOT_DELTA_COPY_OFF2 0x02 /* byte 2 of offset is present */ -#define GOT_DELTA_COPY_OFF3 0x04 /* byte 3 of offset is present */ -#define GOT_DELTA_COPY_OFF4 0x08 /* byte 4 of offset is present */ - -#define GOT_DELTA_COPY_LEN1 0x10 /* byte 1 of length is present */ -#define GOT_DELTA_COPY_LEN2 0x20 /* byte 2 of length is present */ -#define GOT_DELTA_COPY_LEN3 0x40 /* byte 3 of length is present */ - -#define GOT_DELTA_COPY_DEFAULT_OFF 0x0 /* default offset if omitted */ -#define GOT_DELTA_COPY_DEFAULT_LEN 0x10000 /* default length if omitted */ blob - /dev/null blob + bc986fd9f13fbac49dfd74e76e0039dea07c5f74 (mode 644) --- /dev/null +++ lib/got_lib_delta.h @@ -0,0 +1,103 @@ +/* + * Copyright (c) 2018 Stefan Sperling + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +struct got_delta { + SIMPLEQ_ENTRY(got_delta) entry; + off_t offset; + size_t tslen; + int type; + size_t size; + off_t data_offset; + uint8_t *delta_buf; + size_t delta_len; +}; + +struct got_delta_chain { + int nentries; + SIMPLEQ_HEAD(, got_delta) entries; +}; + +struct got_delta *got_delta_open(const char *, off_t, size_t, int, size_t, + off_t, uint8_t *, size_t); +void got_delta_close(struct got_delta *); +const struct got_error *got_delta_chain_get_base_type(int *, + struct got_delta_chain *); +const struct got_error *got_delta_get_sizes(uint64_t *, uint64_t *, + const uint8_t *, size_t); +const struct got_error *got_delta_apply_in_mem(uint8_t *, const uint8_t *, + size_t, uint8_t *, size_t *); +const struct got_error *got_delta_apply(FILE *, const uint8_t *, size_t, + FILE *, size_t *); + +/* + * The amount of result data we may keep in RAM while applying deltas. + * Data larger than this is written to disk during delta application (slow). + */ +#define GOT_DELTA_RESULT_SIZE_CACHED_MAX (4 * 1024 * 1024) /* bytes */ + +/* + * Definitions for delta data streams. + */ + +#define GOT_DELTA_STREAM_LENGTH_MIN 4 /* bytes */ + +/* + * A delta stream begins with two size fields. The first specifies the + * size of the delta base, and the second describes the expected size of + * the data which results from applying the delta to the delta base. + * + * Each size field uses a variable length encoding: + * size0...sizeN form a 7+7+7+...+7 bit integer, where size0 is the + * least significant part and sizeN is the most significant part. + * If the MSB of a size byte is set, an additional size byte follows. + */ +#define GOT_DELTA_SIZE_VAL_MASK 0x7f +#define GOT_DELTA_SIZE_SHIFT 7 +#define GOT_DELTA_SIZE_MORE 0x80 + +/* + * The rest of the delta stream contains copy instructions. + * + * A base copy instruction copies N bytes starting at offset X from the delta + * base to the output. Base copy instructions begin with a byte which has its + * MSB set. The remaining bits of this byte describe how many offset and + * length value bytes follow. + * The offset X is encoded in 1 to 4 bytes, and the length N is encoded in + * 1 to 3 bytes. For both values, the first byte contributes the least + * significant part and the last byte which is present contributes the + * most significant part. + * If the offset value is omitted, an offset of zero is implied. + * If the length value is omitted, a default length of 65536 bytes is implied. + * + * An inline copy instruction copies data from the delta stream to the output. + * Such instructions begin with one byte which does not have the MSB set + * and which specifies the length of the inline data which follows (i.e. + * at most 127 bytes). A length value of zero is invalid. + */ + +#define GOT_DELTA_BASE_COPY 0x80 + +#define GOT_DELTA_COPY_OFF1 0x01 /* byte 1 of offset is present */ +#define GOT_DELTA_COPY_OFF2 0x02 /* byte 2 of offset is present */ +#define GOT_DELTA_COPY_OFF3 0x04 /* byte 3 of offset is present */ +#define GOT_DELTA_COPY_OFF4 0x08 /* byte 4 of offset is present */ + +#define GOT_DELTA_COPY_LEN1 0x10 /* byte 1 of length is present */ +#define GOT_DELTA_COPY_LEN2 0x20 /* byte 2 of length is present */ +#define GOT_DELTA_COPY_LEN3 0x40 /* byte 3 of length is present */ + +#define GOT_DELTA_COPY_DEFAULT_OFF 0x0 /* default offset if omitted */ +#define GOT_DELTA_COPY_DEFAULT_LEN 0x10000 /* default length if omitted */ blob - d0351038fd1aa497adf26fcd0cc40fab666f7061 (mode 644) blob + /dev/null --- lib/got_diff_lib.h +++ /dev/null @@ -1,127 +0,0 @@ - - -/*ROR - * Copyright (c) 1991, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)diff.h 8.1 (Berkeley) 6/6/93 - */ - -#include -#include - -/* - * Output format options - */ -#define D_NORMAL 0 /* Normal output */ -#define D_EDIT -1 /* Editor script out */ -#define D_REVERSE 1 /* Reverse editor script */ -#define D_CONTEXT 2 /* Diff with context */ -#define D_UNIFIED 3 /* Unified context diff */ -#define D_IFDEF 4 /* Diff with merged #ifdef's */ -#define D_NREVERSE 5 /* Reverse ed script with numbered - lines and no trailing . */ -#define D_BRIEF 6 /* Say if the files differ */ - -/* - * Output flags - */ -#define D_HEADER 0x001 /* Print a header/footer between files */ -#define D_EMPTY1 0x002 /* Treat first file as empty (/dev/null) */ -#define D_EMPTY2 0x004 /* Treat second file as empty (/dev/null) */ - -/* - * Command line flags - */ -#define D_FORCEASCII 0x008 /* Treat file as ascii regardless of content */ -#define D_FOLDBLANKS 0x010 /* Treat all white space as equal */ -#define D_MINIMAL 0x020 /* Make diff as small as possible */ -#define D_IGNORECASE 0x040 /* Case-insensitive matching */ -#define D_PROTOTYPE 0x080 /* Display C function prototype */ -#define D_EXPANDTABS 0x100 /* Expand tabs to spaces */ -#define D_IGNOREBLANKS 0x200 /* Ignore white space changes */ - -/* - * Status values for print_status() and diffreg() return values - */ -#define D_SAME 0 /* Files are the same */ -#define D_DIFFER 1 /* Files are different */ -#define D_BINARY 2 /* Binary files are different */ -#define D_MISMATCH1 3 /* path1 was a dir, path2 a file */ -#define D_MISMATCH2 4 /* path1 was a file, path2 a dir */ -#define D_SKIPPED1 5 /* path1 was a special file */ -#define D_SKIPPED2 6 /* path2 was a special file */ - -struct excludes { - char *pattern; - struct excludes *next; -}; - -struct got_diff_state { - int *J; /* will be overlaid on class */ - int *class; /* will be overlaid on file[0] */ - int *klist; /* will be overlaid on file[0] after class */ - int *member; /* will be overlaid on file[1] */ - int clen; - int inifdef; /* whether or not we are in a #ifdef block */ - int len[2]; - int pref, suff; /* length of prefix and suffix */ - int slen[2]; - int anychange; - long *ixnew; /* will be overlaid on file[1] */ - long *ixold; /* will be overlaid on klist */ - struct cand *clist; /* merely a free storage pot for candidates */ - int clistlen; /* the length of clist */ - struct line *sfile[2]; /* shortened by pruning common prefix/suffix */ - u_char *chrtran; /* translation table for case-folding */ - struct context_vec *context_vec_start; - struct context_vec *context_vec_end; - struct context_vec *context_vec_ptr; - struct line *file[2]; -#define FUNCTION_CONTEXT_SIZE 55 - char lastbuf[FUNCTION_CONTEXT_SIZE]; - int lastline; - int lastmatchline; - struct stat stb1, stb2; -}; - -struct got_diff_args { - int Tflag; - int diff_format, diff_context, status; - char *ifdefname, *diffargs, *ignore_pats; - const char *label[2]; -}; - -char *splice(char *, char *); -const struct got_error *got_diffreg(int *, FILE *, - FILE *, int, struct got_diff_args *, struct got_diff_state *, FILE *); -int easprintf(char **, const char *, ...); -void *emalloc(size_t); -void *erealloc(void *, size_t); -void diffdir(char *, char *, int); -void print_only(const char *, size_t, const char *); -void print_status(int, char *, char *, char *); blob - /dev/null blob + d0351038fd1aa497adf26fcd0cc40fab666f7061 (mode 644) --- /dev/null +++ lib/got_lib_diff.h @@ -0,0 +1,127 @@ + + +/*ROR + * Copyright (c) 1991, 1993 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * @(#)diff.h 8.1 (Berkeley) 6/6/93 + */ + +#include +#include + +/* + * Output format options + */ +#define D_NORMAL 0 /* Normal output */ +#define D_EDIT -1 /* Editor script out */ +#define D_REVERSE 1 /* Reverse editor script */ +#define D_CONTEXT 2 /* Diff with context */ +#define D_UNIFIED 3 /* Unified context diff */ +#define D_IFDEF 4 /* Diff with merged #ifdef's */ +#define D_NREVERSE 5 /* Reverse ed script with numbered + lines and no trailing . */ +#define D_BRIEF 6 /* Say if the files differ */ + +/* + * Output flags + */ +#define D_HEADER 0x001 /* Print a header/footer between files */ +#define D_EMPTY1 0x002 /* Treat first file as empty (/dev/null) */ +#define D_EMPTY2 0x004 /* Treat second file as empty (/dev/null) */ + +/* + * Command line flags + */ +#define D_FORCEASCII 0x008 /* Treat file as ascii regardless of content */ +#define D_FOLDBLANKS 0x010 /* Treat all white space as equal */ +#define D_MINIMAL 0x020 /* Make diff as small as possible */ +#define D_IGNORECASE 0x040 /* Case-insensitive matching */ +#define D_PROTOTYPE 0x080 /* Display C function prototype */ +#define D_EXPANDTABS 0x100 /* Expand tabs to spaces */ +#define D_IGNOREBLANKS 0x200 /* Ignore white space changes */ + +/* + * Status values for print_status() and diffreg() return values + */ +#define D_SAME 0 /* Files are the same */ +#define D_DIFFER 1 /* Files are different */ +#define D_BINARY 2 /* Binary files are different */ +#define D_MISMATCH1 3 /* path1 was a dir, path2 a file */ +#define D_MISMATCH2 4 /* path1 was a file, path2 a dir */ +#define D_SKIPPED1 5 /* path1 was a special file */ +#define D_SKIPPED2 6 /* path2 was a special file */ + +struct excludes { + char *pattern; + struct excludes *next; +}; + +struct got_diff_state { + int *J; /* will be overlaid on class */ + int *class; /* will be overlaid on file[0] */ + int *klist; /* will be overlaid on file[0] after class */ + int *member; /* will be overlaid on file[1] */ + int clen; + int inifdef; /* whether or not we are in a #ifdef block */ + int len[2]; + int pref, suff; /* length of prefix and suffix */ + int slen[2]; + int anychange; + long *ixnew; /* will be overlaid on file[1] */ + long *ixold; /* will be overlaid on klist */ + struct cand *clist; /* merely a free storage pot for candidates */ + int clistlen; /* the length of clist */ + struct line *sfile[2]; /* shortened by pruning common prefix/suffix */ + u_char *chrtran; /* translation table for case-folding */ + struct context_vec *context_vec_start; + struct context_vec *context_vec_end; + struct context_vec *context_vec_ptr; + struct line *file[2]; +#define FUNCTION_CONTEXT_SIZE 55 + char lastbuf[FUNCTION_CONTEXT_SIZE]; + int lastline; + int lastmatchline; + struct stat stb1, stb2; +}; + +struct got_diff_args { + int Tflag; + int diff_format, diff_context, status; + char *ifdefname, *diffargs, *ignore_pats; + const char *label[2]; +}; + +char *splice(char *, char *); +const struct got_error *got_diffreg(int *, FILE *, + FILE *, int, struct got_diff_args *, struct got_diff_state *, FILE *); +int easprintf(char **, const char *, ...); +void *emalloc(size_t); +void *erealloc(void *, size_t); +void diffdir(char *, char *, int); +void print_only(const char *, size_t, const char *); +void print_status(int, char *, char *, char *); blob - 018f4f25c636bf8cfb37d7b1765211c73acae8e9 (mode 644) blob + /dev/null --- lib/got_fileindex_lib.h +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Copyright (c) 2018 Stefan Sperling - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -/* - * State information for a tracked file in a work tree. - * When written to disk, multi-byte fields are written in big-endian. - * Some fields are based on results from stat(2). These are only used in - * order to detect modifications made to on-disk files, they are never - * applied back to the filesystem. - */ -struct got_fileindex_entry { - TAILQ_ENTRY(got_fileindex_entry) entry; - uint64_t ctime_sec; - uint64_t ctime_nsec; - uint64_t mtime_sec; - uint64_t mtime_nsec; - uint32_t uid; - uint32_t gid; - /* - * On-disk size is truncated to the lower 32 bits. - * The value is only used to check for modifications anyway. - */ - uint32_t size; - - uint16_t mode; -#define GOT_INDEX_ENTRY_MODE_FILE_TYPE 0x000f -#define GOT_INDEX_ENTRY_MODE_REGULAR_FILE 1 -#define GOT_INDEX_ENTRY_MODE_SYMLINK 2 -#define GOT_INDEX_ENTRY_MODE_PERMS 0xff10 -#define GOT_INDEX_ENTRY_MODE_PERMS_SHIFT 4 - - /* SHA1 of corresponding blob in repository. */ - uint8_t blob_sha1[SHA1_DIGEST_LENGTH]; - - uint32_t flags; -#define GOT_INDEX_ENTRY_F_PATH_LEN 0x00000fff -#define GOT_INDEX_ENTRY_F_STAGE 0x00003000 -#define GOT_INDEX_ENTRY_F_EXTENDED 0x00004000 -#define GOT_INDEX_ENTRY_F_ASSUME_VALID 0x00008000 - - /* - * UNIX-style path, relative to work tree root. - * Variable length, and NUL-padded to a multiple of 8 on disk. - */ - char *path; - - /* More data could be here if F_EXTENDED is set; To be determined... */ -}; - -/* "Stages" of a file afflicted by a 3-way merge conflict. */ -#define GOT_INDEX_ENTRY_STAGE_MERGED 0 -#define GOT_INDEX_ENTRY_STAGE_ANCESTOR 1 -#define GOT_INDEX_ENTRY_STAGE_OURS 2 -#define GOT_INDEX_ENTRY_STAGE_THEIRS 3 - -struct got_fileindex { - uint32_t nentries; - TAILQ_HEAD(, got_fileindex_entry) entries; -}; - -/* On-disk file index header structure. */ -struct got_fileindex_hdr { - uint32_t signature; /* big-endian */ -#define GOT_FILE_INDEX_SIGNATURE 0x676f7449 /* 'g', 'o', 't', 'I' */ - uint32_t version; /* big-endian */ -#define GOT_FILE_INDEX_VERSION 1 - uint32_t nentries; /* big-endian */ - /* list of concatenated fileindex entries */ - uint8_t sha1[SHA1_DIGEST_LENGTH]; /* checksum of above on-disk data */ -}; - -const struct got_error *got_fileindex_entry_open(struct got_fileindex_entry **, - const char *, const char *, uint8_t *); -void got_fileindex_entry_close(struct got_fileindex_entry *); -struct got_fileindex *got_fileindex_open(void); -void got_fileindex_close(struct got_fileindex *); -const struct got_error *got_fileindex_write(struct got_fileindex *, FILE *); -const struct got_error *got_fileindex_entry_add(struct got_fileindex *, - struct got_fileindex_entry *); blob - /dev/null blob + 018f4f25c636bf8cfb37d7b1765211c73acae8e9 (mode 644) --- /dev/null +++ lib/got_lib_fileindex.h @@ -0,0 +1,92 @@ +/* + * Copyright (c) 2018 Stefan Sperling + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +/* + * State information for a tracked file in a work tree. + * When written to disk, multi-byte fields are written in big-endian. + * Some fields are based on results from stat(2). These are only used in + * order to detect modifications made to on-disk files, they are never + * applied back to the filesystem. + */ +struct got_fileindex_entry { + TAILQ_ENTRY(got_fileindex_entry) entry; + uint64_t ctime_sec; + uint64_t ctime_nsec; + uint64_t mtime_sec; + uint64_t mtime_nsec; + uint32_t uid; + uint32_t gid; + /* + * On-disk size is truncated to the lower 32 bits. + * The value is only used to check for modifications anyway. + */ + uint32_t size; + + uint16_t mode; +#define GOT_INDEX_ENTRY_MODE_FILE_TYPE 0x000f +#define GOT_INDEX_ENTRY_MODE_REGULAR_FILE 1 +#define GOT_INDEX_ENTRY_MODE_SYMLINK 2 +#define GOT_INDEX_ENTRY_MODE_PERMS 0xff10 +#define GOT_INDEX_ENTRY_MODE_PERMS_SHIFT 4 + + /* SHA1 of corresponding blob in repository. */ + uint8_t blob_sha1[SHA1_DIGEST_LENGTH]; + + uint32_t flags; +#define GOT_INDEX_ENTRY_F_PATH_LEN 0x00000fff +#define GOT_INDEX_ENTRY_F_STAGE 0x00003000 +#define GOT_INDEX_ENTRY_F_EXTENDED 0x00004000 +#define GOT_INDEX_ENTRY_F_ASSUME_VALID 0x00008000 + + /* + * UNIX-style path, relative to work tree root. + * Variable length, and NUL-padded to a multiple of 8 on disk. + */ + char *path; + + /* More data could be here if F_EXTENDED is set; To be determined... */ +}; + +/* "Stages" of a file afflicted by a 3-way merge conflict. */ +#define GOT_INDEX_ENTRY_STAGE_MERGED 0 +#define GOT_INDEX_ENTRY_STAGE_ANCESTOR 1 +#define GOT_INDEX_ENTRY_STAGE_OURS 2 +#define GOT_INDEX_ENTRY_STAGE_THEIRS 3 + +struct got_fileindex { + uint32_t nentries; + TAILQ_HEAD(, got_fileindex_entry) entries; +}; + +/* On-disk file index header structure. */ +struct got_fileindex_hdr { + uint32_t signature; /* big-endian */ +#define GOT_FILE_INDEX_SIGNATURE 0x676f7449 /* 'g', 'o', 't', 'I' */ + uint32_t version; /* big-endian */ +#define GOT_FILE_INDEX_VERSION 1 + uint32_t nentries; /* big-endian */ + /* list of concatenated fileindex entries */ + uint8_t sha1[SHA1_DIGEST_LENGTH]; /* checksum of above on-disk data */ +}; + +const struct got_error *got_fileindex_entry_open(struct got_fileindex_entry **, + const char *, const char *, uint8_t *); +void got_fileindex_entry_close(struct got_fileindex_entry *); +struct got_fileindex *got_fileindex_open(void); +void got_fileindex_close(struct got_fileindex *); +const struct got_error *got_fileindex_write(struct got_fileindex *, FILE *); +const struct got_error *got_fileindex_entry_add(struct got_fileindex *, + struct got_fileindex_entry *); blob - 156901f0339a8945664abed5e3624a696e2ea8b5 (mode 644) blob + /dev/null --- lib/got_object_lib.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (c) 2018 Stefan Sperling - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -struct got_object_id { - u_int8_t sha1[SHA1_DIGEST_LENGTH]; -}; - -struct got_object { - int type; - int flags; -#define GOT_OBJ_FLAG_PACKED 0x01 -#define GOT_OBJ_FLAG_DELTIFIED 0x02 - - size_t hdrlen; - size_t size; - struct got_object_id id; - - char *path_packfile; /* if packed */ - off_t pack_offset; /* if packed */ - struct got_delta_chain deltas; /* if deltified */ -}; - -struct got_blob_object { - FILE *f; - struct got_zstream_buf zb; - size_t hdrlen; - size_t blocksize; - uint8_t *read_buf; - int flags; -#define GOT_BLOB_F_COMPRESSED 0x01 - struct got_object_id id; -}; blob - /dev/null blob + 156901f0339a8945664abed5e3624a696e2ea8b5 (mode 644) --- /dev/null +++ lib/got_lib_object.h @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2018 Stefan Sperling + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +struct got_object_id { + u_int8_t sha1[SHA1_DIGEST_LENGTH]; +}; + +struct got_object { + int type; + int flags; +#define GOT_OBJ_FLAG_PACKED 0x01 +#define GOT_OBJ_FLAG_DELTIFIED 0x02 + + size_t hdrlen; + size_t size; + struct got_object_id id; + + char *path_packfile; /* if packed */ + off_t pack_offset; /* if packed */ + struct got_delta_chain deltas; /* if deltified */ +}; + +struct got_blob_object { + FILE *f; + struct got_zstream_buf zb; + size_t hdrlen; + size_t blocksize; + uint8_t *read_buf; + int flags; +#define GOT_BLOB_F_COMPRESSED 0x01 + struct got_object_id id; +}; blob - 497c9c20139eece533dba83c6938dd6847ab1049 (mode 644) blob + /dev/null --- lib/got_pack_lib.h +++ /dev/null @@ -1,141 +0,0 @@ -/* - * Copyright (c) 2018 Stefan Sperling - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -/* An open pack file. */ -struct got_pack { - char *path_packfile; - FILE *packfile; - size_t filesize; -}; - -void got_pack_close(struct got_pack *); - -/* See Documentation/technical/pack-format.txt in Git. */ - -struct got_packidx_trailer { - u_int8_t packfile_sha1[SHA1_DIGEST_LENGTH]; - u_int8_t packidx_sha1[SHA1_DIGEST_LENGTH]; -} __attribute__((__packed__)); - -/* Ignore pack index version 1 which is no longer written by Git. */ -#define GOT_PACKIDX_VERSION 2 - -struct got_packidx_v2_hdr { - uint32_t magic; /* big endian */ -#define GOT_PACKIDX_V2_MAGIC 0xff744f63 /* "\377t0c" */ - uint32_t version; - - /* - * Each entry N in the fanout table contains the number of objects in - * the packfile whose SHA1 begins with a byte less than or equal to N. - * The last entry (index 255) contains the number of objects in the - * pack file whose first SHA1 byte is <= 0xff, and thus records the - * total number of objects in the pack file. All pointer variables - * below point to tables with a corresponding number of entries. - */ - uint32_t fanout_table[0xff + 1]; /* values are big endian */ - - /* Sorted SHA1 checksums for each object in the pack file. */ - struct got_object_id *sorted_ids; - - /* CRC32 of the packed representation of each object. */ - uint32_t *crc32; - - /* Offset into the pack file for each object. */ - uint32_t *offsets; /* values are big endian */ -#define GOT_PACKIDX_OFFSET_VAL_MASK 0x7fffffff -#define GOT_PACKIDX_OFFSET_VAL_IS_LARGE_IDX 0x80000000 - - /* Large offsets table is empty for pack files < 2 GB. */ - uint64_t *large_offsets; /* values are big endian */ - - struct got_packidx_trailer trailer; -}; - -struct got_packfile_hdr { - uint32_t signature; -#define GOT_PACKFILE_SIGNATURE 0x5041434b /* 'P' 'A' 'C' 'K' */ - uint32_t version; /* big endian */ -#define GOT_PACKFILE_VERSION 2 - uint32_t nobjects; /* big endian */ -}; - -struct got_packfile_obj_hdr { - /* - * The object size field uses a variable length encoding: - * size0...sizeN form a 4+7+7+...+7 bit integer, where size0 is the - * least significant part and sizeN is the most significant part. - * If the MSB of a size byte is set, an additional size byte follows. - * Of the 7 remaining bits of size0, the first 3 bits indicate the - * object's type, and the remaining 4 bits contribute to the size. - */ - uint8_t *size; /* variable length */ -#define GOT_PACK_OBJ_SIZE_MORE 0x80 -#define GOT_PACK_OBJ_SIZE0_TYPE_MASK 0x70 /* See struct got_object->type */ -#define GOT_PACK_OBJ_SIZE0_TYPE_MASK_SHIFT 4 -#define GOT_PACK_OBJ_SIZE0_VAL_MASK 0x0f -#define GOT_PACK_OBJ_SIZE_VAL_MASK 0x7f -}; - -/* If object is not a DELTA type. */ -struct got_packfile_object_data { - uint8_t *data; /* compressed */ -}; - -/* If object is of type GOT_OBJ_TYPE_REF_DELTA. */ -struct got_packfile_object_data_ref_delta { - uint8_t sha1[SHA1_DIGEST_LENGTH]; - uint8_t *delta_data; /* compressed */ -}; - -/* If object is of type GOT_OBJ_TYPE_OFFSET_DELTA. */ -struct got_packfile_object_data_offset_delta { - /* - * This offset is interpreted as a negative offset from - * the got_packfile_obj_hdr corresponding to this object. - * The size provided in the header specifies the amount - * of compressed delta data that follows. - * - * This field uses a variable length encoding of N bytes, - * where the MSB is always set except for the last byte. - * The value is encoded as a series of N 7 bit integers, - * which are concatenated, and if N > 1 the value 2^7 + - * 2^14 + ... + 2^(7 * (n-1)) is added to the result. - */ - uint8_t *offset; /* variable length */ -#define GOT_PACK_OBJ_DELTA_OFF_MORE 0x80 -#define GOT_PACK_OBJ_DELTA_OFF_VAL_MASK 0x7f - uint8_t *delta_data; /* compressed */ -}; - -struct got_packfile_obj_data { - union { - struct got_packfile_object_data data; - struct got_packfile_object_data_ref_delta ref_delta; - struct got_packfile_object_data_offset_delta offset_delta; - } __attribute__((__packed__)); -} __attribute__((__packed__)); - -const struct got_error *got_packidx_open(struct got_packidx_v2_hdr **, - const char *); -void got_packidx_close(struct got_packidx_v2_hdr *); - -const struct got_error *got_packfile_open_object(struct got_object **, - struct got_object_id *, struct got_repository *); -const struct got_error *got_packfile_extract_object(FILE **, - struct got_object *, struct got_repository *); -const struct got_error *got_packfile_extract_object_to_mem(uint8_t **, size_t *, - struct got_object *, struct got_repository *); blob - /dev/null blob + 497c9c20139eece533dba83c6938dd6847ab1049 (mode 644) --- /dev/null +++ lib/got_lib_pack.h @@ -0,0 +1,141 @@ +/* + * Copyright (c) 2018 Stefan Sperling + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +/* An open pack file. */ +struct got_pack { + char *path_packfile; + FILE *packfile; + size_t filesize; +}; + +void got_pack_close(struct got_pack *); + +/* See Documentation/technical/pack-format.txt in Git. */ + +struct got_packidx_trailer { + u_int8_t packfile_sha1[SHA1_DIGEST_LENGTH]; + u_int8_t packidx_sha1[SHA1_DIGEST_LENGTH]; +} __attribute__((__packed__)); + +/* Ignore pack index version 1 which is no longer written by Git. */ +#define GOT_PACKIDX_VERSION 2 + +struct got_packidx_v2_hdr { + uint32_t magic; /* big endian */ +#define GOT_PACKIDX_V2_MAGIC 0xff744f63 /* "\377t0c" */ + uint32_t version; + + /* + * Each entry N in the fanout table contains the number of objects in + * the packfile whose SHA1 begins with a byte less than or equal to N. + * The last entry (index 255) contains the number of objects in the + * pack file whose first SHA1 byte is <= 0xff, and thus records the + * total number of objects in the pack file. All pointer variables + * below point to tables with a corresponding number of entries. + */ + uint32_t fanout_table[0xff + 1]; /* values are big endian */ + + /* Sorted SHA1 checksums for each object in the pack file. */ + struct got_object_id *sorted_ids; + + /* CRC32 of the packed representation of each object. */ + uint32_t *crc32; + + /* Offset into the pack file for each object. */ + uint32_t *offsets; /* values are big endian */ +#define GOT_PACKIDX_OFFSET_VAL_MASK 0x7fffffff +#define GOT_PACKIDX_OFFSET_VAL_IS_LARGE_IDX 0x80000000 + + /* Large offsets table is empty for pack files < 2 GB. */ + uint64_t *large_offsets; /* values are big endian */ + + struct got_packidx_trailer trailer; +}; + +struct got_packfile_hdr { + uint32_t signature; +#define GOT_PACKFILE_SIGNATURE 0x5041434b /* 'P' 'A' 'C' 'K' */ + uint32_t version; /* big endian */ +#define GOT_PACKFILE_VERSION 2 + uint32_t nobjects; /* big endian */ +}; + +struct got_packfile_obj_hdr { + /* + * The object size field uses a variable length encoding: + * size0...sizeN form a 4+7+7+...+7 bit integer, where size0 is the + * least significant part and sizeN is the most significant part. + * If the MSB of a size byte is set, an additional size byte follows. + * Of the 7 remaining bits of size0, the first 3 bits indicate the + * object's type, and the remaining 4 bits contribute to the size. + */ + uint8_t *size; /* variable length */ +#define GOT_PACK_OBJ_SIZE_MORE 0x80 +#define GOT_PACK_OBJ_SIZE0_TYPE_MASK 0x70 /* See struct got_object->type */ +#define GOT_PACK_OBJ_SIZE0_TYPE_MASK_SHIFT 4 +#define GOT_PACK_OBJ_SIZE0_VAL_MASK 0x0f +#define GOT_PACK_OBJ_SIZE_VAL_MASK 0x7f +}; + +/* If object is not a DELTA type. */ +struct got_packfile_object_data { + uint8_t *data; /* compressed */ +}; + +/* If object is of type GOT_OBJ_TYPE_REF_DELTA. */ +struct got_packfile_object_data_ref_delta { + uint8_t sha1[SHA1_DIGEST_LENGTH]; + uint8_t *delta_data; /* compressed */ +}; + +/* If object is of type GOT_OBJ_TYPE_OFFSET_DELTA. */ +struct got_packfile_object_data_offset_delta { + /* + * This offset is interpreted as a negative offset from + * the got_packfile_obj_hdr corresponding to this object. + * The size provided in the header specifies the amount + * of compressed delta data that follows. + * + * This field uses a variable length encoding of N bytes, + * where the MSB is always set except for the last byte. + * The value is encoded as a series of N 7 bit integers, + * which are concatenated, and if N > 1 the value 2^7 + + * 2^14 + ... + 2^(7 * (n-1)) is added to the result. + */ + uint8_t *offset; /* variable length */ +#define GOT_PACK_OBJ_DELTA_OFF_MORE 0x80 +#define GOT_PACK_OBJ_DELTA_OFF_VAL_MASK 0x7f + uint8_t *delta_data; /* compressed */ +}; + +struct got_packfile_obj_data { + union { + struct got_packfile_object_data data; + struct got_packfile_object_data_ref_delta ref_delta; + struct got_packfile_object_data_offset_delta offset_delta; + } __attribute__((__packed__)); +} __attribute__((__packed__)); + +const struct got_error *got_packidx_open(struct got_packidx_v2_hdr **, + const char *); +void got_packidx_close(struct got_packidx_v2_hdr *); + +const struct got_error *got_packfile_open_object(struct got_object **, + struct got_object_id *, struct got_repository *); +const struct got_error *got_packfile_extract_object(FILE **, + struct got_object *, struct got_repository *); +const struct got_error *got_packfile_extract_object_to_mem(uint8_t **, size_t *, + struct got_object *, struct got_repository *); blob - 53b63eff8f31d9fb8abb59dc9c33972ed6d43060 (mode 644) blob + /dev/null --- lib/got_path_lib.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (c) 2018 Stefan Sperling - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -/* Utilities for dealing with filesystem paths. */ - -#define GOT_DEFAULT_FILE_MODE (S_IRUSR|S_IWUSR | S_IRGRP | S_IROTH) -#define GOT_DEFAULT_DIR_MODE (S_IRWXU | S_IRGRP|S_IXGRP | S_IROTH|S_IXOTH) - -/* Determine whether a path is an absolute path. */ -int got_path_is_absolute(const char *); - -/* - * Return an absolute version of a relative path. - * The result is allocated with malloc(3). - */ -char *got_path_get_absolute(const char *); - -/* - * Normalize a path for internal processing. - * The result is allocated with malloc(3). - */ -char *got_path_normalize(const char *); - -/* Open a new temporary file for writing. - * The file is not visible in the filesystem. */ -FILE *got_opentemp(void); - -/* Open a new temporary file for writing. - * The file is visible in the filesystem. */ -const struct got_error *got_opentemp_named(char **, FILE **, const char *); - -/* Count the number of path segments separated by '/'. */ -const struct got_error * -got_path_segment_count(int *count, const char *path); blob - /dev/null blob + 53b63eff8f31d9fb8abb59dc9c33972ed6d43060 (mode 644) --- /dev/null +++ lib/got_lib_path.h @@ -0,0 +1,47 @@ +/* + * Copyright (c) 2018 Stefan Sperling + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +/* Utilities for dealing with filesystem paths. */ + +#define GOT_DEFAULT_FILE_MODE (S_IRUSR|S_IWUSR | S_IRGRP | S_IROTH) +#define GOT_DEFAULT_DIR_MODE (S_IRWXU | S_IRGRP|S_IXGRP | S_IROTH|S_IXOTH) + +/* Determine whether a path is an absolute path. */ +int got_path_is_absolute(const char *); + +/* + * Return an absolute version of a relative path. + * The result is allocated with malloc(3). + */ +char *got_path_get_absolute(const char *); + +/* + * Normalize a path for internal processing. + * The result is allocated with malloc(3). + */ +char *got_path_normalize(const char *); + +/* Open a new temporary file for writing. + * The file is not visible in the filesystem. */ +FILE *got_opentemp(void); + +/* Open a new temporary file for writing. + * The file is visible in the filesystem. */ +const struct got_error *got_opentemp_named(char **, FILE **, const char *); + +/* Count the number of path segments separated by '/'. */ +const struct got_error * +got_path_segment_count(int *count, const char *path); blob - 683bfddab6362efaac7df37b134ce70444f95abf (mode 644) blob + /dev/null --- lib/got_repository_lib.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright (c) 2018 Stefan Sperling - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#define GOT_PACKIDX_CACHE_SIZE 64 -#define GOT_PACK_CACHE_SIZE GOT_PACKIDX_CACHE_SIZE - -struct got_repository { - char *path; - char *path_git_dir; - - /* The pack index cache speeds up search for packed objects. */ - struct got_packidx_v2_hdr *packidx_cache[GOT_PACKIDX_CACHE_SIZE]; - - /* Open file handles, memory maps, and cached deltas for pack files. */ - struct got_pack packs[GOT_PACK_CACHE_SIZE]; -}; blob - /dev/null blob + 683bfddab6362efaac7df37b134ce70444f95abf (mode 644) --- /dev/null +++ lib/got_lib_repository.h @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2018 Stefan Sperling + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#define GOT_PACKIDX_CACHE_SIZE 64 +#define GOT_PACK_CACHE_SIZE GOT_PACKIDX_CACHE_SIZE + +struct got_repository { + char *path; + char *path_git_dir; + + /* The pack index cache speeds up search for packed objects. */ + struct got_packidx_v2_hdr *packidx_cache[GOT_PACKIDX_CACHE_SIZE]; + + /* Open file handles, memory maps, and cached deltas for pack files. */ + struct got_pack packs[GOT_PACK_CACHE_SIZE]; +}; blob - d207ee390d6e7f6252e01034122dc9e112bfd66d (mode 644) blob + /dev/null --- lib/got_sha1_lib.h +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright (c) 2018 Stefan Sperling - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#define GOT_SHA1_STRING_ZERO "0000000000000000000000000000000000000000" - -int got_parse_sha1_digest(uint8_t *, const char *); -char *got_sha1_digest_to_str(const uint8_t *, char *, size_t); blob - /dev/null blob + d207ee390d6e7f6252e01034122dc9e112bfd66d (mode 644) --- /dev/null +++ lib/got_lib_sha1.h @@ -0,0 +1,20 @@ +/* + * Copyright (c) 2018 Stefan Sperling + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#define GOT_SHA1_STRING_ZERO "0000000000000000000000000000000000000000" + +int got_parse_sha1_digest(uint8_t *, const char *); +char *got_sha1_digest_to_str(const uint8_t *, char *, size_t); blob - 5694eaebb55252cb517324287f062e32a9a29b19 (mode 644) blob + /dev/null --- lib/got_worktree_lib.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (c) 2018 Stefan Sperling - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -struct got_worktree { - char *root_path; - char *repo_path; - char *path_prefix; - char *base_commit; - char *head_ref; - - /* - * File descriptor for the lock file, open while a work tree is open. - * When a work tree is opened, a shared lock on the lock file is - * acquired with flock(2). This shared lock is held until the work - * tree is closed, i.e. throughout the lifetime of any operation - * which uses a work tree. - * Before any modifications are made to the on-disk state of work - * tree meta data, tracked files, or directory tree structure, this - * shared lock must be upgraded to an exclusive lock. - */ - int lockfd; -}; - -#define GOT_WORKTREE_GOT_DIR ".got" -#define GOT_WORKTREE_FILE_INDEX "fileindex" -#define GOT_WORKTREE_REPOSITORY "repository" -#define GOT_WORKTREE_PATH_PREFIX "path-prefix" -#define GOT_WORKTREE_HEAD "head" -#define GOT_WORKTREE_LOCK "lock" -#define GOT_WORKTREE_FORMAT "format" - -#define GOT_WORKTREE_FORMAT_VERSION 1 -#define GOT_WORKTREE_INVALID_COMMIT_ID GOT_SHA1_STRING_ZERO blob - /dev/null blob + 5694eaebb55252cb517324287f062e32a9a29b19 (mode 644) --- /dev/null +++ lib/got_lib_worktree.h @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2018 Stefan Sperling + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +struct got_worktree { + char *root_path; + char *repo_path; + char *path_prefix; + char *base_commit; + char *head_ref; + + /* + * File descriptor for the lock file, open while a work tree is open. + * When a work tree is opened, a shared lock on the lock file is + * acquired with flock(2). This shared lock is held until the work + * tree is closed, i.e. throughout the lifetime of any operation + * which uses a work tree. + * Before any modifications are made to the on-disk state of work + * tree meta data, tracked files, or directory tree structure, this + * shared lock must be upgraded to an exclusive lock. + */ + int lockfd; +}; + +#define GOT_WORKTREE_GOT_DIR ".got" +#define GOT_WORKTREE_FILE_INDEX "fileindex" +#define GOT_WORKTREE_REPOSITORY "repository" +#define GOT_WORKTREE_PATH_PREFIX "path-prefix" +#define GOT_WORKTREE_HEAD "head" +#define GOT_WORKTREE_LOCK "lock" +#define GOT_WORKTREE_FORMAT "format" + +#define GOT_WORKTREE_FORMAT_VERSION 1 +#define GOT_WORKTREE_INVALID_COMMIT_ID GOT_SHA1_STRING_ZERO blob - 9285ed5f1b90a4c3e4017658c8f83fb2dd3e8f2b (mode 644) blob + /dev/null --- lib/got_zbuf_lib.h +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (c) 2018 Stefan Sperling - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -struct got_zstream_buf { - z_stream z; - char *inbuf; - size_t inlen; - char *outbuf; - size_t outlen; - int flags; -#define GOT_ZSTREAM_F_HAVE_MORE 0x01 -#define GOT_ZSTREAM_F_OWN_OUTBUF 0x02 -}; - -#define GOT_ZSTREAM_BUFSIZE 8192 - -const struct got_error *got_inflate_init(struct got_zstream_buf *, uint8_t *, - size_t); -const struct got_error *got_inflate_read(struct got_zstream_buf *, FILE *, - size_t *); -void got_inflate_end(struct got_zstream_buf *); -const struct got_error *got_inflate_to_mem(uint8_t **, size_t *, FILE *); -const struct got_error *got_inflate_to_file(size_t *, FILE *, FILE *); blob - /dev/null blob + 9285ed5f1b90a4c3e4017658c8f83fb2dd3e8f2b (mode 644) --- /dev/null +++ lib/got_lib_zbuf.h @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2018 Stefan Sperling + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +struct got_zstream_buf { + z_stream z; + char *inbuf; + size_t inlen; + char *outbuf; + size_t outlen; + int flags; +#define GOT_ZSTREAM_F_HAVE_MORE 0x01 +#define GOT_ZSTREAM_F_OWN_OUTBUF 0x02 +}; + +#define GOT_ZSTREAM_BUFSIZE 8192 + +const struct got_error *got_inflate_init(struct got_zstream_buf *, uint8_t *, + size_t); +const struct got_error *got_inflate_read(struct got_zstream_buf *, FILE *, + size_t *); +void got_inflate_end(struct got_zstream_buf *); +const struct got_error *got_inflate_to_mem(uint8_t **, size_t *, FILE *); +const struct got_error *got_inflate_to_file(size_t *, FILE *, FILE *); blob - f5cf92ac0828894e6d7a620a84503b2b07231860 blob + 7037325a47c164cee43c0303029705ceb1a19f7a --- lib/object.c +++ lib/object.c @@ -30,11 +30,11 @@ #include "got_object.h" #include "got_repository.h" -#include "got_sha1_lib.h" -#include "got_delta_lib.h" -#include "got_pack_lib.h" -#include "got_zbuf_lib.h" -#include "got_object_lib.h" +#include "got_lib_sha1.h" +#include "got_lib_delta.h" +#include "got_lib_pack.h" +#include "got_lib_zbuf.h" +#include "got_lib_object.h" #ifndef MIN #define MIN(_a,_b) ((_a) < (_b) ? (_a) : (_b)) blob - 98c06d20b5a8631ff13b186324035c8eb68c1152 blob + 13400cde614412fa2c8db10001786781d672f8d8 --- lib/pack.c +++ lib/pack.c @@ -34,13 +34,13 @@ #include "got_object.h" #include "got_repository.h" -#include "got_sha1_lib.h" -#include "got_pack_lib.h" -#include "got_path_lib.h" -#include "got_delta_lib.h" -#include "got_zbuf_lib.h" -#include "got_object_lib.h" -#include "got_repository_lib.h" +#include "got_lib_sha1.h" +#include "got_lib_pack.h" +#include "got_lib_path.h" +#include "got_lib_delta.h" +#include "got_lib_zbuf.h" +#include "got_lib_object.h" +#include "got_lib_repository.h" #ifndef nitems #define nitems(_a) (sizeof(_a) / sizeof((_a)[0])) blob - 2359a13f176985e5b421c4923d26b0de468bc6c5 blob + ddd0a1e67d31a851c76efbed97aea073100c7c67 --- lib/path.c +++ lib/path.c @@ -22,7 +22,7 @@ #include "got_error.h" -#include "got_path_lib.h" +#include "got_lib_path.h" int got_path_is_absolute(const char *path) blob - 4a5ef20dd3967be4acf3dea7bc45f06864a9f48f blob + 07d6b874c947c74d3665545cea5b355672bb3220 --- lib/refs.c +++ lib/refs.c @@ -29,11 +29,11 @@ #include "got_repository.h" #include "got_refs.h" -#include "got_sha1_lib.h" -#include "got_path_lib.h" -#include "got_delta_lib.h" -#include "got_zbuf_lib.h" -#include "got_object_lib.h" +#include "got_lib_sha1.h" +#include "got_lib_path.h" +#include "got_lib_delta.h" +#include "got_lib_zbuf.h" +#include "got_lib_object.h" /* A symbolic reference. */ struct got_symref { blob - d1aca1b30e4b959908ed4daf82571c6e5dd229d0 blob + 9dea7fe71449e02beed91b0051eb9da34de1a42e --- lib/repository.c +++ lib/repository.c @@ -28,12 +28,12 @@ #include "got_refs.h" #include "got_repository.h" -#include "got_path_lib.h" -#include "got_delta_lib.h" -#include "got_zbuf_lib.h" -#include "got_object_lib.h" -#include "got_pack_lib.h" -#include "got_repository_lib.h" +#include "got_lib_path.h" +#include "got_lib_delta.h" +#include "got_lib_zbuf.h" +#include "got_lib_object.h" +#include "got_lib_pack.h" +#include "got_lib_repository.h" #ifndef nitems #define nitems(_a) (sizeof(_a) / sizeof((_a)[0])) blob - 86810c7968e259e91b0f1ba40cce6ce75a241f7f blob + d5e11f068c05988fcb1d445cfd83786de2c585d5 --- lib/sha1.c +++ lib/sha1.c @@ -21,7 +21,7 @@ #include #include -#include "got_sha1_lib.h" +#include "got_lib_sha1.h" static int parse_xdigit(uint8_t *val, const char *hex) blob - a1bff6f12c13bb8798b16dbca3d47ebeeaefdb6b blob + 63c5da80f96650880e5a9b02c0efadd40d22d9c3 --- lib/worktree.c +++ lib/worktree.c @@ -34,13 +34,13 @@ #include "got_object.h" #include "got_worktree.h" -#include "got_worktree_lib.h" -#include "got_path_lib.h" -#include "got_sha1_lib.h" -#include "got_fileindex_lib.h" -#include "got_zbuf_lib.h" -#include "got_delta_lib.h" -#include "got_object_lib.h" +#include "got_lib_worktree.h" +#include "got_lib_path.h" +#include "got_lib_sha1.h" +#include "got_lib_fileindex.h" +#include "got_lib_zbuf.h" +#include "got_lib_delta.h" +#include "got_lib_object.h" #ifndef MIN #define MIN(_a,_b) ((_a) < (_b) ? (_a) : (_b)) blob - cf71b54b29e4cfa1754df50ca0de519f2a9df125 blob + 9024264945ebfbe8bb734400daa2cc59cb0f4b2a --- lib/zbuf.c +++ lib/zbuf.c @@ -25,8 +25,8 @@ #include "got_error.h" #include "got_object.h" -#include "got_path_lib.h" -#include "got_zbuf_lib.h" +#include "got_lib_path.h" +#include "got_lib_zbuf.h" const struct got_error * got_inflate_init(struct got_zstream_buf *zb, uint8_t *outbuf, size_t bufsize) blob - 1486b9cf29e562247e4d0c5854683b917738a4c9 blob + b4272d32123c83c66b97ea8db4c10b5aa9bbb9da --- regress/delta/delta_test.c +++ regress/delta/delta_test.c @@ -24,8 +24,8 @@ #include "got_error.h" -#include "got_delta_lib.h" -#include "got_path_lib.h" +#include "got_lib_delta.h" +#include "got_lib_path.h" #ifndef nitems #define nitems(_a) (sizeof(_a) / sizeof((_a)[0])) blob - a6f98b4bcc53010b340d551d227b66613375ce83 blob + 4fbb8881a53c1ccf94fc910bd447d44b64295018 --- regress/worktree/worktree_test.c +++ regress/worktree/worktree_test.c @@ -35,8 +35,8 @@ #include "got_repository.h" #include "got_worktree.h" -#include "got_worktree_lib.h" -#include "got_path_lib.h" +#include "got_lib_worktree.h" +#include "got_lib_path.h" #define GOT_REPO_PATH "../../../"