commit - 03c6739cb3e963a1213b2306bb97a5d6392263ab
commit + 1411938ba6a72022fd884351dc043412162274f1
blob - 0ae98da4f6d7015c65b00992f291d39125a30efd
blob + 7ad143b579db4f5af8bf72cf84c742d0c18edb3c
--- lib/delta.c
+++ lib/delta.c
#include "got_repository.h"
#include "got_object.h"
-#include "delta.h"
-#include "path.h"
-#include "zb.h"
+#include "got_delta_priv.h"
+#include "got_path_priv.h"
+#include "got_zb_priv.h"
#ifndef MIN
#define MIN(_a,_b) ((_a) < (_b) ? (_a) : (_b))
blob - fb5e1481403dce4d214df33cc142f465105f5dc0 (mode 644)
blob + /dev/null
--- lib/delta.h
+++ /dev/null
-/*
- * Copyright (c) 2018 Stefan Sperling <stsp@openbsd.org>
- *
- * 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;
- char *path_packfile;
- off_t offset;
- size_t tslen;
- int type;
- size_t size;
- off_t data_offset;
-};
-
-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);
-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_apply(FILE *, const uint8_t *, size_t,
- FILE *);
-
-/*
- * 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 combining the delta base and the delta.
- *
- * 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 tells the delta combiner to copy 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 tells the delta combiner to copy 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 - a2cb581be5f9c483aa6a1c74a7158b0c0003403a
blob + e7848245a0af4b13051e8fb54cfc4565303e8aaf
--- lib/diff.c
+++ lib/diff.c
#include "got_error.h"
#include "got_diff.h"
-#include "diff.h"
-#include "path.h"
+#include "got_diff_priv.h"
+#include "got_path_priv.h"
const struct got_error *
got_diff_blob(struct got_blob_object *blob1, struct got_blob_object *blob2,
blob - d0351038fd1aa497adf26fcd0cc40fab666f7061 (mode 644)
blob + /dev/null
--- lib/diff.h
+++ /dev/null
-
-
-/*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 <sys/types.h>
-#include <regex.h>
-
-/*
- * 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 - c58a75ca2ae2256ef8090313a30b9afe6727f457
blob + eb3bcf7d67c78107c2e4f2c86fe5fc3e7bfa1f46
--- lib/diffreg.c
+++ lib/diffreg.c
#include "got_object.h"
#include "got_diff.h"
-#include "diff.h"
+#include "got_diff_priv.h"
#define MINIMUM(a, b) (((a) < (b)) ? (a) : (b))
#define MAXIMUM(a, b) (((a) > (b)) ? (a) : (b))
blob - /dev/null
blob + fb5e1481403dce4d214df33cc142f465105f5dc0 (mode 644)
--- /dev/null
+++ lib/got_delta_priv.h
+/*
+ * Copyright (c) 2018 Stefan Sperling <stsp@openbsd.org>
+ *
+ * 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;
+ char *path_packfile;
+ off_t offset;
+ size_t tslen;
+ int type;
+ size_t size;
+ off_t data_offset;
+};
+
+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);
+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_apply(FILE *, const uint8_t *, size_t,
+ FILE *);
+
+/*
+ * 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 combining the delta base and the delta.
+ *
+ * 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 tells the delta combiner to copy 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 tells the delta combiner to copy 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 + d0351038fd1aa497adf26fcd0cc40fab666f7061 (mode 644)
--- /dev/null
+++ lib/got_diff_priv.h
+
+
+/*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 <sys/types.h>
+#include <regex.h>
+
+/*
+ * 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 - df56c0dec9b4f886d0894e14ad05aea9fde11040 (mode 644)
blob + /dev/null
--- lib/got_sha1.h
+++ /dev/null
-/*
- * Copyright (c) 2018 Stefan Sperling <stsp@openbsd.org>
- *
- * 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.
- */
-
-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 + 156901f0339a8945664abed5e3624a696e2ea8b5 (mode 644)
--- /dev/null
+++ lib/got_object_priv.h
+/*
+ * Copyright (c) 2018 Stefan Sperling <stsp@openbsd.org>
+ *
+ * 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 - 1ec85ca1ae4f8ed195affabdaf29f22e6f469917
blob + 9b7df25224f311f71da20c3b6da1abd74e980e8d
--- lib/object.c
+++ lib/object.c
#include "got_error.h"
#include "got_object.h"
#include "got_repository.h"
-#include "got_sha1.h"
-#include "delta.h"
-#include "pack.h"
-#include "zb.h"
-#include "object.h"
+#include "got_sha1_priv.h"
+#include "got_delta_priv.h"
+#include "got_pack_priv.h"
+#include "got_zb_priv.h"
+#include "got_object_priv.h"
+
#ifndef MIN
#define MIN(_a,_b) ((_a) < (_b) ? (_a) : (_b))
#endif
blob - /dev/null
blob + 348ae1a580907c62f979bb861cdde189a32ca3af (mode 644)
--- /dev/null
+++ lib/got_pack_priv.h
+/*
+ * Copyright (c) 2018 Stefan Sperling <stsp@openbsd.org>
+ *
+ * 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.
+ */
+
+/* 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 *);
blob - 156901f0339a8945664abed5e3624a696e2ea8b5 (mode 644)
blob + /dev/null
--- lib/object.h
+++ /dev/null
-/*
- * Copyright (c) 2018 Stefan Sperling <stsp@openbsd.org>
- *
- * 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 + 3bca95b3c18a88dff7ba4f0da9738a1e898be44b (mode 644)
--- /dev/null
+++ lib/got_path_priv.h
+/*
+ * Copyright (c) 2018 Stefan Sperling <stsp@openbsd.org>
+ *
+ * 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. */
+
+/* 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);
blob - 5d175817858e5ee004febc11be3bd348af23ee47
blob + aa10b0e5b17e9664e38c23e1c3469a9408cdf146
--- lib/pack.c
+++ lib/pack.c
#include "got_error.h"
#include "got_object.h"
#include "got_repository.h"
-#include "got_sha1.h"
-#include "pack.h"
-#include "path.h"
-#include "delta.h"
-#include "zb.h"
-#include "object.h"
+#include "got_sha1_priv.h"
+#include "got_pack_priv.h"
+#include "got_path_priv.h"
+#include "got_delta_priv.h"
+#include "got_zb_priv.h"
+#include "got_object_priv.h"
+
#define GOT_PACK_PREFIX "pack-"
#define GOT_PACKFILE_SUFFIX ".pack"
#define GOT_PACKIDX_SUFFIX ".idx"
blob - /dev/null
blob + df56c0dec9b4f886d0894e14ad05aea9fde11040 (mode 644)
--- /dev/null
+++ lib/got_sha1_priv.h
+/*
+ * Copyright (c) 2018 Stefan Sperling <stsp@openbsd.org>
+ *
+ * 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.
+ */
+
+int got_parse_sha1_digest(uint8_t *, const char *);
+char *got_sha1_digest_to_str(const uint8_t *, char *, size_t);
blob - 348ae1a580907c62f979bb861cdde189a32ca3af (mode 644)
blob + /dev/null
--- lib/pack.h
+++ /dev/null
-/*
- * Copyright (c) 2018 Stefan Sperling <stsp@openbsd.org>
- *
- * 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.
- */
-
-/* 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 *);
blob - /dev/null
blob + 083cd850bccb87b8f71244429cd970ba60b9ead0 (mode 644)
--- /dev/null
+++ lib/got_zb_priv.h
+/*
+ * Copyright (c) 2018 Stefan Sperling <stsp@openbsd.org>
+ *
+ * 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
+};
+
+const struct got_error *got_inflate_init(struct got_zstream_buf *, 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 - 4f126aafd7408190132e8707705612f83feb06f6
blob + d654a23dd0e565d6294ea6fe7e635d4275b4a36a
--- lib/path.c
+++ lib/path.c
#include <stdio.h>
#include <string.h>
+#include "got_path_priv.h"
+
int
got_path_is_absolute(const char *path)
{
blob - 3bca95b3c18a88dff7ba4f0da9738a1e898be44b (mode 644)
blob + /dev/null
--- lib/path.h
+++ /dev/null
-/*
- * Copyright (c) 2018 Stefan Sperling <stsp@openbsd.org>
- *
- * 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. */
-
-/* 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);
blob - 85fbf80742a3486fb1e896b8d26388cd22b2aff5
blob + 718cf6189afb20d006aa4347bc2035355ab67e9c
--- lib/refs.c
+++ lib/refs.c
#include "got_object.h"
#include "got_repository.h"
#include "got_refs.h"
-#include "got_sha1.h"
-#include "path.h"
-#include "delta.h"
-#include "zb.h"
-#include "object.h"
+#include "got_sha1_priv.h"
+#include "got_path_priv.h"
+#include "got_delta_priv.h"
+#include "got_zb_priv.h"
+#include "got_object_priv.h"
/* A symbolic reference. */
struct got_symref {
blob - d6d98432ae40d967631c3e36fdcffa59ee9f856f
blob + 97e57a0bf0084cd07fa638dc989adf1835b5c273
--- lib/repository.c
+++ lib/repository.c
#include "got_refs.h"
#include "got_repository.h"
-#include "path.h"
+#include "got_path_priv.h"
struct got_repository {
char *path;
blob - a4ddd9d3a24fd55f76b3178e99a7ee145660c9a7
blob + b58e4a7aea374d1a31d0750f6eff6bb116e9dfc0
--- lib/sha1.c
+++ lib/sha1.c
#include <stdlib.h>
#include <limits.h>
+#include "got_sha1_priv.h"
+
static int
parse_xdigit(uint8_t *val, const char *hex)
{
blob - b5e809e20fd40238578c8c4f0a104cd9d376fa10
blob + 0b27e5b0b969460a111f3e967b488e6c5629add7
--- lib/zb.c
+++ lib/zb.c
#include "got_error.h"
#include "got_object.h"
-#include "path.h"
-#include "zb.h"
+#include "got_path_priv.h"
+#include "got_zb_priv.h"
const struct got_error *
got_inflate_init(struct got_zstream_buf *zb, size_t bufsize)
blob - 083cd850bccb87b8f71244429cd970ba60b9ead0 (mode 644)
blob + /dev/null
--- lib/zb.h
+++ /dev/null
-/*
- * Copyright (c) 2018 Stefan Sperling <stsp@openbsd.org>
- *
- * 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
-};
-
-const struct got_error *got_inflate_init(struct got_zstream_buf *, 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 - 19f447bf0d80674626f1080da1ef73f785a6408c
blob + e69cd2b2b0ba8e07274f3c101058b0e0be349786
--- regress/delta/delta_test.c
+++ regress/delta/delta_test.c
#include "got_error.h"
-#include "delta.h"
-#include "path.h"
+#include "got_delta_priv.h"
+#include "got_path_priv.h"
#ifndef nitems
#define nitems(_a) (sizeof(_a) / sizeof((_a)[0]))
blob - dc3d02d6a35b3adf02e123790a220ea89e05f669
blob + 4889b1d24910a8dfcb374bf3f8496b0aa81d2f92
--- regress/packfiles/packfile_test.c
+++ regress/packfiles/packfile_test.c
#include "got_error.h"
#include "got_object.h"
-#include "pack.h"
+#include "got_pack_priv.h"
+
#define GOT_REPO_PATH "../../../"
static int