Line | Count | Source (jump to first uncovered line) |
1 | | #ifndef WRAPPER_H |
2 | | #define WRAPPER_H |
3 | | |
4 | | char *xstrdup(const char *str); |
5 | | void *xmalloc(size_t size); |
6 | | void *xmallocz(size_t size); |
7 | | void *xmallocz_gently(size_t size); |
8 | | void *xmemdupz(const void *data, size_t len); |
9 | | char *xstrndup(const char *str, size_t len); |
10 | | void *xrealloc(void *ptr, size_t size); |
11 | | void *xcalloc(size_t nmemb, size_t size); |
12 | | void xsetenv(const char *name, const char *value, int overwrite); |
13 | | void *xmmap(void *start, size_t length, int prot, int flags, int fd, off_t offset); |
14 | | const char *mmap_os_err(void); |
15 | | void *xmmap_gently(void *start, size_t length, int prot, int flags, int fd, off_t offset); |
16 | | int xopen(const char *path, int flags, ...); |
17 | | ssize_t xread(int fd, void *buf, size_t len); |
18 | | ssize_t xwrite(int fd, const void *buf, size_t len); |
19 | | ssize_t xpread(int fd, void *buf, size_t len, off_t offset); |
20 | | int xdup(int fd); |
21 | | FILE *xfopen(const char *path, const char *mode); |
22 | | FILE *xfdopen(int fd, const char *mode); |
23 | | int xmkstemp(char *temp_filename); |
24 | | int xmkstemp_mode(char *temp_filename, int mode); |
25 | | char *xgetcwd(void); |
26 | | FILE *fopen_for_writing(const char *path); |
27 | | FILE *fopen_or_warn(const char *path, const char *mode); |
28 | | |
29 | | /* |
30 | | * Like strncmp, but only return zero if s is NUL-terminated and exactly len |
31 | | * characters long. If it is not, consider it greater than t. |
32 | | */ |
33 | | int xstrncmpz(const char *s, const char *t, size_t len); |
34 | | |
35 | | __attribute__((format (printf, 3, 4))) |
36 | | int xsnprintf(char *dst, size_t max, const char *fmt, ...); |
37 | | |
38 | | int xgethostname(char *buf, size_t len); |
39 | | |
40 | | /* set default permissions by passing mode arguments to open(2) */ |
41 | | int git_mkstemps_mode(char *pattern, int suffix_len, int mode); |
42 | | int git_mkstemp_mode(char *pattern, int mode); |
43 | | |
44 | | ssize_t read_in_full(int fd, void *buf, size_t count); |
45 | | ssize_t write_in_full(int fd, const void *buf, size_t count); |
46 | | ssize_t pread_in_full(int fd, void *buf, size_t count, off_t offset); |
47 | | |
48 | | static inline ssize_t write_str_in_full(int fd, const char *str) |
49 | 0 | { |
50 | 0 | return write_in_full(fd, str, strlen(str)); |
51 | 0 | } Unexecuted instantiation: add.c:write_str_in_full Unexecuted instantiation: am.c:write_str_in_full Unexecuted instantiation: annotate.c:write_str_in_full Unexecuted instantiation: apply.c:write_str_in_full Unexecuted instantiation: archive.c:write_str_in_full Unexecuted instantiation: bisect.c:write_str_in_full Unexecuted instantiation: blame.c:write_str_in_full Unexecuted instantiation: branch.c:write_str_in_full Unexecuted instantiation: bugreport.c:write_str_in_full Unexecuted instantiation: bundle.c:write_str_in_full Unexecuted instantiation: cat-file.c:write_str_in_full Unexecuted instantiation: check-attr.c:write_str_in_full Unexecuted instantiation: check-ignore.c:write_str_in_full Unexecuted instantiation: check-mailmap.c:write_str_in_full Unexecuted instantiation: check-ref-format.c:write_str_in_full Unexecuted instantiation: checkout--worker.c:write_str_in_full Unexecuted instantiation: checkout-index.c:write_str_in_full Unexecuted instantiation: checkout.c:write_str_in_full Unexecuted instantiation: clean.c:write_str_in_full Unexecuted instantiation: clone.c:write_str_in_full Unexecuted instantiation: column.c:write_str_in_full Unexecuted instantiation: commit-graph.c:write_str_in_full Unexecuted instantiation: commit-tree.c:write_str_in_full Unexecuted instantiation: commit.c:write_str_in_full Unexecuted instantiation: config.c:write_str_in_full Unexecuted instantiation: count-objects.c:write_str_in_full Unexecuted instantiation: credential-cache--daemon.c:write_str_in_full Unexecuted instantiation: credential-cache.c:write_str_in_full Unexecuted instantiation: credential-store.c:write_str_in_full Unexecuted instantiation: credential.c:write_str_in_full Unexecuted instantiation: describe.c:write_str_in_full Unexecuted instantiation: diagnose.c:write_str_in_full Unexecuted instantiation: diff-files.c:write_str_in_full Unexecuted instantiation: diff-index.c:write_str_in_full Unexecuted instantiation: diff-tree.c:write_str_in_full Unexecuted instantiation: diff.c:write_str_in_full Unexecuted instantiation: difftool.c:write_str_in_full Unexecuted instantiation: fast-export.c:write_str_in_full Unexecuted instantiation: fast-import.c:write_str_in_full Unexecuted instantiation: fetch-pack.c:write_str_in_full Unexecuted instantiation: fetch.c:write_str_in_full Unexecuted instantiation: fmt-merge-msg.c:write_str_in_full Unexecuted instantiation: for-each-ref.c:write_str_in_full Unexecuted instantiation: for-each-repo.c:write_str_in_full Unexecuted instantiation: fsck.c:write_str_in_full Unexecuted instantiation: fsmonitor--daemon.c:write_str_in_full Unexecuted instantiation: gc.c:write_str_in_full Unexecuted instantiation: get-tar-commit-id.c:write_str_in_full Unexecuted instantiation: grep.c:write_str_in_full Unexecuted instantiation: hash-object.c:write_str_in_full Unexecuted instantiation: help.c:write_str_in_full Unexecuted instantiation: hook.c:write_str_in_full Unexecuted instantiation: index-pack.c:write_str_in_full Unexecuted instantiation: init-db.c:write_str_in_full Unexecuted instantiation: interpret-trailers.c:write_str_in_full Unexecuted instantiation: log.c:write_str_in_full Unexecuted instantiation: ls-files.c:write_str_in_full Unexecuted instantiation: ls-remote.c:write_str_in_full Unexecuted instantiation: ls-tree.c:write_str_in_full Unexecuted instantiation: mailinfo.c:write_str_in_full Unexecuted instantiation: mailsplit.c:write_str_in_full Unexecuted instantiation: merge-base.c:write_str_in_full Unexecuted instantiation: merge-file.c:write_str_in_full Unexecuted instantiation: merge-index.c:write_str_in_full Unexecuted instantiation: merge-ours.c:write_str_in_full Unexecuted instantiation: merge-recursive.c:write_str_in_full Unexecuted instantiation: merge-tree.c:write_str_in_full Unexecuted instantiation: merge.c:write_str_in_full Unexecuted instantiation: mktag.c:write_str_in_full Unexecuted instantiation: mktree.c:write_str_in_full Unexecuted instantiation: multi-pack-index.c:write_str_in_full Unexecuted instantiation: mv.c:write_str_in_full Unexecuted instantiation: name-rev.c:write_str_in_full Unexecuted instantiation: notes.c:write_str_in_full Unexecuted instantiation: pack-objects.c:write_str_in_full Unexecuted instantiation: pack-redundant.c:write_str_in_full Unexecuted instantiation: pack-refs.c:write_str_in_full Unexecuted instantiation: patch-id.c:write_str_in_full Unexecuted instantiation: prune-packed.c:write_str_in_full Unexecuted instantiation: prune.c:write_str_in_full Unexecuted instantiation: pull.c:write_str_in_full Unexecuted instantiation: push.c:write_str_in_full Unexecuted instantiation: range-diff.c:write_str_in_full Unexecuted instantiation: read-tree.c:write_str_in_full Unexecuted instantiation: rebase.c:write_str_in_full Unexecuted instantiation: receive-pack.c:write_str_in_full Unexecuted instantiation: reflog.c:write_str_in_full Unexecuted instantiation: refs.c:write_str_in_full Unexecuted instantiation: remote-ext.c:write_str_in_full Unexecuted instantiation: remote-fd.c:write_str_in_full Unexecuted instantiation: remote.c:write_str_in_full Unexecuted instantiation: repack.c:write_str_in_full Unexecuted instantiation: replace.c:write_str_in_full Unexecuted instantiation: replay.c:write_str_in_full Unexecuted instantiation: rerere.c:write_str_in_full Unexecuted instantiation: reset.c:write_str_in_full Unexecuted instantiation: rev-list.c:write_str_in_full Unexecuted instantiation: rev-parse.c:write_str_in_full Unexecuted instantiation: revert.c:write_str_in_full Unexecuted instantiation: rm.c:write_str_in_full Unexecuted instantiation: send-pack.c:write_str_in_full Unexecuted instantiation: shortlog.c:write_str_in_full Unexecuted instantiation: show-branch.c:write_str_in_full Unexecuted instantiation: show-index.c:write_str_in_full Unexecuted instantiation: show-ref.c:write_str_in_full Unexecuted instantiation: sparse-checkout.c:write_str_in_full Unexecuted instantiation: stash.c:write_str_in_full Unexecuted instantiation: stripspace.c:write_str_in_full Unexecuted instantiation: submodule--helper.c:write_str_in_full Unexecuted instantiation: symbolic-ref.c:write_str_in_full Unexecuted instantiation: tag.c:write_str_in_full Unexecuted instantiation: unpack-file.c:write_str_in_full Unexecuted instantiation: unpack-objects.c:write_str_in_full Unexecuted instantiation: update-index.c:write_str_in_full Unexecuted instantiation: update-ref.c:write_str_in_full Unexecuted instantiation: update-server-info.c:write_str_in_full Unexecuted instantiation: upload-archive.c:write_str_in_full Unexecuted instantiation: upload-pack.c:write_str_in_full Unexecuted instantiation: var.c:write_str_in_full Unexecuted instantiation: verify-commit.c:write_str_in_full Unexecuted instantiation: verify-pack.c:write_str_in_full Unexecuted instantiation: verify-tag.c:write_str_in_full Unexecuted instantiation: worktree.c:write_str_in_full Unexecuted instantiation: write-tree.c:write_str_in_full Unexecuted instantiation: git.c:write_str_in_full Unexecuted instantiation: fuzz-commit-graph.c:write_str_in_full Unexecuted instantiation: abspath.c:write_str_in_full Unexecuted instantiation: add-interactive.c:write_str_in_full Unexecuted instantiation: add-patch.c:write_str_in_full Unexecuted instantiation: advice.c:write_str_in_full Unexecuted instantiation: alias.c:write_str_in_full Unexecuted instantiation: attr.c:write_str_in_full Unexecuted instantiation: base85.c:write_str_in_full Unexecuted instantiation: blob.c:write_str_in_full Unexecuted instantiation: bloom.c:write_str_in_full Unexecuted instantiation: bulk-checkin.c:write_str_in_full Unexecuted instantiation: bundle-uri.c:write_str_in_full Unexecuted instantiation: cache-tree.c:write_str_in_full Unexecuted instantiation: color.c:write_str_in_full Unexecuted instantiation: combine-diff.c:write_str_in_full Unexecuted instantiation: commit-reach.c:write_str_in_full Unexecuted instantiation: terminal.c:write_str_in_full Unexecuted instantiation: connect.c:write_str_in_full Unexecuted instantiation: connected.c:write_str_in_full Unexecuted instantiation: convert.c:write_str_in_full Unexecuted instantiation: copy.c:write_str_in_full Unexecuted instantiation: csum-file.c:write_str_in_full Unexecuted instantiation: ctype.c:write_str_in_full Unexecuted instantiation: date.c:write_str_in_full Unexecuted instantiation: decorate.c:write_str_in_full Unexecuted instantiation: delta-islands.c:write_str_in_full Unexecuted instantiation: diff-delta.c:write_str_in_full Unexecuted instantiation: diff-merges.c:write_str_in_full Unexecuted instantiation: diff-lib.c:write_str_in_full Unexecuted instantiation: diff-no-index.c:write_str_in_full Unexecuted instantiation: diffcore-break.c:write_str_in_full Unexecuted instantiation: diffcore-delta.c:write_str_in_full Unexecuted instantiation: diffcore-order.c:write_str_in_full Unexecuted instantiation: diffcore-pickaxe.c:write_str_in_full Unexecuted instantiation: diffcore-rename.c:write_str_in_full Unexecuted instantiation: diffcore-rotate.c:write_str_in_full Unexecuted instantiation: dir-iterator.c:write_str_in_full Unexecuted instantiation: dir.c:write_str_in_full Unexecuted instantiation: editor.c:write_str_in_full Unexecuted instantiation: entry.c:write_str_in_full Unexecuted instantiation: environment.c:write_str_in_full Unexecuted instantiation: bitmap.c:write_str_in_full Unexecuted instantiation: ewah_bitmap.c:write_str_in_full Unexecuted instantiation: ewah_io.c:write_str_in_full Unexecuted instantiation: ewah_rlw.c:write_str_in_full Unexecuted instantiation: exec-cmd.c:write_str_in_full Unexecuted instantiation: fsmonitor.c:write_str_in_full Unexecuted instantiation: fsmonitor-ipc.c:write_str_in_full Unexecuted instantiation: fsmonitor-settings.c:write_str_in_full Unexecuted instantiation: gettext.c:write_str_in_full Unexecuted instantiation: git-zlib.c:write_str_in_full Unexecuted instantiation: gpg-interface.c:write_str_in_full Unexecuted instantiation: graph.c:write_str_in_full Unexecuted instantiation: hash-lookup.c:write_str_in_full Unexecuted instantiation: hashmap.c:write_str_in_full Unexecuted instantiation: hex.c:write_str_in_full Unexecuted instantiation: hex-ll.c:write_str_in_full Unexecuted instantiation: ident.c:write_str_in_full Unexecuted instantiation: json-writer.c:write_str_in_full Unexecuted instantiation: kwset.c:write_str_in_full Unexecuted instantiation: levenshtein.c:write_str_in_full Unexecuted instantiation: line-log.c:write_str_in_full Unexecuted instantiation: line-range.c:write_str_in_full Unexecuted instantiation: list-objects-filter-options.c:write_str_in_full Unexecuted instantiation: list-objects.c:write_str_in_full Unexecuted instantiation: lockfile.c:write_str_in_full Unexecuted instantiation: log-tree.c:write_str_in_full Unexecuted instantiation: mailmap.c:write_str_in_full Unexecuted instantiation: mem-pool.c:write_str_in_full Unexecuted instantiation: merge-blobs.c:write_str_in_full Unexecuted instantiation: merge-ll.c:write_str_in_full Unexecuted instantiation: merge-ort.c:write_str_in_full Unexecuted instantiation: merge-ort-wrappers.c:write_str_in_full Unexecuted instantiation: midx.c:write_str_in_full Unexecuted instantiation: midx-write.c:write_str_in_full Unexecuted instantiation: name-hash.c:write_str_in_full Unexecuted instantiation: notes-cache.c:write_str_in_full Unexecuted instantiation: notes-merge.c:write_str_in_full Unexecuted instantiation: notes-utils.c:write_str_in_full Unexecuted instantiation: object-file-convert.c:write_str_in_full Unexecuted instantiation: object-file.c:write_str_in_full Unexecuted instantiation: object-name.c:write_str_in_full Unexecuted instantiation: object.c:write_str_in_full Unexecuted instantiation: oid-array.c:write_str_in_full Unexecuted instantiation: oidmap.c:write_str_in_full Unexecuted instantiation: oidset.c:write_str_in_full Unexecuted instantiation: oidtree.c:write_str_in_full Unexecuted instantiation: pack-bitmap-write.c:write_str_in_full Unexecuted instantiation: pack-bitmap.c:write_str_in_full Unexecuted instantiation: pack-check.c:write_str_in_full Unexecuted instantiation: pack-mtimes.c:write_str_in_full Unexecuted instantiation: pack-revindex.c:write_str_in_full Unexecuted instantiation: pack-write.c:write_str_in_full Unexecuted instantiation: packfile.c:write_str_in_full Unexecuted instantiation: pager.c:write_str_in_full Unexecuted instantiation: parallel-checkout.c:write_str_in_full Unexecuted instantiation: parse.c:write_str_in_full Unexecuted instantiation: parse-options-cb.c:write_str_in_full Unexecuted instantiation: parse-options.c:write_str_in_full Unexecuted instantiation: patch-delta.c:write_str_in_full Unexecuted instantiation: patch-ids.c:write_str_in_full Unexecuted instantiation: path.c:write_str_in_full Unexecuted instantiation: pathspec.c:write_str_in_full Unexecuted instantiation: pkt-line.c:write_str_in_full Unexecuted instantiation: preload-index.c:write_str_in_full Unexecuted instantiation: pretty.c:write_str_in_full Unexecuted instantiation: prio-queue.c:write_str_in_full Unexecuted instantiation: progress.c:write_str_in_full Unexecuted instantiation: promisor-remote.c:write_str_in_full Unexecuted instantiation: prompt.c:write_str_in_full Unexecuted instantiation: protocol.c:write_str_in_full Unexecuted instantiation: pseudo-merge.c:write_str_in_full Unexecuted instantiation: quote.c:write_str_in_full Unexecuted instantiation: reachable.c:write_str_in_full Unexecuted instantiation: read-cache.c:write_str_in_full Unexecuted instantiation: rebase-interactive.c:write_str_in_full Unexecuted instantiation: ref-filter.c:write_str_in_full Unexecuted instantiation: reflog-walk.c:write_str_in_full Unexecuted instantiation: debug.c:write_str_in_full Unexecuted instantiation: files-backend.c:write_str_in_full Unexecuted instantiation: reftable-backend.c:write_str_in_full Unexecuted instantiation: iterator.c:write_str_in_full Unexecuted instantiation: packed-backend.c:write_str_in_full Unexecuted instantiation: ref-cache.c:write_str_in_full Unexecuted instantiation: refspec.c:write_str_in_full Unexecuted instantiation: replace-object.c:write_str_in_full Unexecuted instantiation: repo-settings.c:write_str_in_full Unexecuted instantiation: repository.c:write_str_in_full Unexecuted instantiation: resolve-undo.c:write_str_in_full Unexecuted instantiation: revision.c:write_str_in_full Unexecuted instantiation: run-command.c:write_str_in_full Unexecuted instantiation: sequencer.c:write_str_in_full Unexecuted instantiation: serve.c:write_str_in_full Unexecuted instantiation: server-info.c:write_str_in_full Unexecuted instantiation: setup.c:write_str_in_full Unexecuted instantiation: shallow.c:write_str_in_full Unexecuted instantiation: sideband.c:write_str_in_full Unexecuted instantiation: sigchain.c:write_str_in_full Unexecuted instantiation: sparse-index.c:write_str_in_full Unexecuted instantiation: split-index.c:write_str_in_full Unexecuted instantiation: stable-qsort.c:write_str_in_full Unexecuted instantiation: statinfo.c:write_str_in_full Unexecuted instantiation: strbuf.c:write_str_in_full Unexecuted instantiation: streaming.c:write_str_in_full Unexecuted instantiation: string-list.c:write_str_in_full Unexecuted instantiation: strmap.c:write_str_in_full Unexecuted instantiation: strvec.c:write_str_in_full Unexecuted instantiation: sub-process.c:write_str_in_full Unexecuted instantiation: submodule-config.c:write_str_in_full Unexecuted instantiation: submodule.c:write_str_in_full Unexecuted instantiation: symlinks.c:write_str_in_full Unexecuted instantiation: tempfile.c:write_str_in_full Unexecuted instantiation: thread-utils.c:write_str_in_full Unexecuted instantiation: tmp-objdir.c:write_str_in_full Unexecuted instantiation: trace.c:write_str_in_full Unexecuted instantiation: trace2.c:write_str_in_full Unexecuted instantiation: tr2_cfg.c:write_str_in_full Unexecuted instantiation: tr2_cmd_name.c:write_str_in_full Unexecuted instantiation: tr2_ctr.c:write_str_in_full Unexecuted instantiation: tr2_dst.c:write_str_in_full Unexecuted instantiation: tr2_sid.c:write_str_in_full Unexecuted instantiation: tr2_sysenv.c:write_str_in_full Unexecuted instantiation: tr2_tbuf.c:write_str_in_full Unexecuted instantiation: tr2_tgt_event.c:write_str_in_full Unexecuted instantiation: tr2_tgt_normal.c:write_str_in_full Unexecuted instantiation: tr2_tgt_perf.c:write_str_in_full Unexecuted instantiation: tr2_tls.c:write_str_in_full Unexecuted instantiation: tr2_tmr.c:write_str_in_full Unexecuted instantiation: trailer.c:write_str_in_full Unexecuted instantiation: transport-helper.c:write_str_in_full Unexecuted instantiation: transport.c:write_str_in_full Unexecuted instantiation: tree-diff.c:write_str_in_full Unexecuted instantiation: tree-walk.c:write_str_in_full Unexecuted instantiation: tree.c:write_str_in_full Unexecuted instantiation: unpack-trees.c:write_str_in_full Unexecuted instantiation: url.c:write_str_in_full Unexecuted instantiation: urlmatch.c:write_str_in_full Unexecuted instantiation: usage.c:write_str_in_full Unexecuted instantiation: userdiff.c:write_str_in_full Unexecuted instantiation: utf8.c:write_str_in_full Unexecuted instantiation: varint.c:write_str_in_full Unexecuted instantiation: version.c:write_str_in_full Unexecuted instantiation: versioncmp.c:write_str_in_full Unexecuted instantiation: wildmatch.c:write_str_in_full Unexecuted instantiation: wrapper.c:write_str_in_full Unexecuted instantiation: write-or-die.c:write_str_in_full Unexecuted instantiation: ws.c:write_str_in_full Unexecuted instantiation: wt-status.c:write_str_in_full Unexecuted instantiation: xdiff-interface.c:write_str_in_full Unexecuted instantiation: unix-socket.c:write_str_in_full Unexecuted instantiation: sha1dc_git.c:write_str_in_full Unexecuted instantiation: sha1.c:write_str_in_full Unexecuted instantiation: ubc_check.c:write_str_in_full Unexecuted instantiation: sha256.c:write_str_in_full Unexecuted instantiation: procinfo.c:write_str_in_full Unexecuted instantiation: fopen.c:write_str_in_full Unexecuted instantiation: strlcpy.c:write_str_in_full Unexecuted instantiation: qsort_s.c:write_str_in_full Unexecuted instantiation: alloc.c:write_str_in_full Unexecuted instantiation: archive-tar.c:write_str_in_full Unexecuted instantiation: archive-zip.c:write_str_in_full Unexecuted instantiation: cbtree.c:write_str_in_full Unexecuted instantiation: chdir-notify.c:write_str_in_full Unexecuted instantiation: chunk-format.c:write_str_in_full Unexecuted instantiation: nonblock.c:write_str_in_full Unexecuted instantiation: fetch-negotiator.c:write_str_in_full Unexecuted instantiation: linear-assignment.c:write_str_in_full Unexecuted instantiation: list-objects-filter.c:write_str_in_full Unexecuted instantiation: loose.c:write_str_in_full Unexecuted instantiation: ls-refs.c:write_str_in_full Unexecuted instantiation: match-trees.c:write_str_in_full Unexecuted instantiation: default.c:write_str_in_full Unexecuted instantiation: noop.c:write_str_in_full Unexecuted instantiation: skipping.c:write_str_in_full Unexecuted instantiation: protocol-caps.c:write_str_in_full Unexecuted instantiation: xdiffi.c:write_str_in_full Unexecuted instantiation: xemit.c:write_str_in_full Unexecuted instantiation: xhistogram.c:write_str_in_full Unexecuted instantiation: xmerge.c:write_str_in_full Unexecuted instantiation: xpatience.c:write_str_in_full Unexecuted instantiation: xprepare.c:write_str_in_full Unexecuted instantiation: xutils.c:write_str_in_full Unexecuted instantiation: error.c:write_str_in_full Unexecuted instantiation: iter.c:write_str_in_full Unexecuted instantiation: publicbasics.c:write_str_in_full Unexecuted instantiation: reader.c:write_str_in_full Unexecuted instantiation: record.c:write_str_in_full Unexecuted instantiation: stack.c:write_str_in_full Unexecuted instantiation: writer.c:write_str_in_full Unexecuted instantiation: basics.c:write_str_in_full Unexecuted instantiation: block.c:write_str_in_full Unexecuted instantiation: blocksource.c:write_str_in_full Unexecuted instantiation: merged.c:write_str_in_full Unexecuted instantiation: pq.c:write_str_in_full Unexecuted instantiation: common-main.c:write_str_in_full |
52 | | |
53 | | /** |
54 | | * Open (and truncate) the file at path, write the contents of buf to it, |
55 | | * and close it. Dies if any errors are encountered. |
56 | | */ |
57 | | void write_file_buf(const char *path, const char *buf, size_t len); |
58 | | |
59 | | /** |
60 | | * Like write_file_buf(), but format the contents into a buffer first. |
61 | | * Additionally, write_file() will append a newline if one is not already |
62 | | * present, making it convenient to write text files: |
63 | | * |
64 | | * write_file(path, "counter: %d", ctr); |
65 | | */ |
66 | | __attribute__((format (printf, 2, 3))) |
67 | | void write_file(const char *path, const char *fmt, ...); |
68 | | |
69 | | /* Return 1 if the file is empty or does not exists, 0 otherwise. */ |
70 | | int is_empty_or_missing_file(const char *filename); |
71 | | |
72 | | enum fsync_action { |
73 | | FSYNC_WRITEOUT_ONLY, |
74 | | FSYNC_HARDWARE_FLUSH |
75 | | }; |
76 | | |
77 | | /* |
78 | | * Issues an fsync against the specified file according to the specified mode. |
79 | | * |
80 | | * FSYNC_WRITEOUT_ONLY attempts to use interfaces available on some operating |
81 | | * systems to flush the OS cache without issuing a flush command to the storage |
82 | | * controller. If those interfaces are unavailable, the function fails with |
83 | | * ENOSYS. |
84 | | * |
85 | | * FSYNC_HARDWARE_FLUSH does an OS writeout and hardware flush to ensure that |
86 | | * changes are durable. It is not expected to fail. |
87 | | */ |
88 | | int git_fsync(int fd, enum fsync_action action); |
89 | | |
90 | | /* |
91 | | * Preserves errno, prints a message, but gives no warning for ENOENT. |
92 | | * Returns 0 on success, which includes trying to unlink an object that does |
93 | | * not exist. |
94 | | */ |
95 | | int unlink_or_warn(const char *path); |
96 | | /* |
97 | | * Tries to unlink file. Returns 0 if unlink succeeded |
98 | | * or the file already didn't exist. Returns -1 and |
99 | | * appends a message to err suitable for |
100 | | * 'error("%s", err->buf)' on error. |
101 | | */ |
102 | | int unlink_or_msg(const char *file, struct strbuf *err); |
103 | | /* |
104 | | * Preserves errno, prints a message, but gives no warning for ENOENT. |
105 | | * Returns 0 on success, which includes trying to remove a directory that does |
106 | | * not exist. |
107 | | */ |
108 | | int rmdir_or_warn(const char *path); |
109 | | |
110 | | /* |
111 | | * Call access(2), but warn for any error except "missing file" |
112 | | * (ENOENT or ENOTDIR). |
113 | | */ |
114 | 0 | #define ACCESS_EACCES_OK (1U << 0) |
115 | | int access_or_warn(const char *path, int mode, unsigned flag); |
116 | | int access_or_die(const char *path, int mode, unsigned flag); |
117 | | |
118 | | /* Warn on an inaccessible file if errno indicates this is an error */ |
119 | | int warn_on_fopen_errors(const char *path); |
120 | | |
121 | | /* |
122 | | * Open with O_NOFOLLOW, or equivalent. Note that the fallback equivalent |
123 | | * may be racy. Do not use this as protection against an attacker who can |
124 | | * simultaneously create paths. |
125 | | */ |
126 | | int open_nofollow(const char *path, int flags); |
127 | | |
128 | | void sleep_millisec(int millisec); |
129 | | |
130 | | /* |
131 | | * Generate len bytes from the system cryptographically secure PRNG. |
132 | | * Returns 0 on success and -1 on error, setting errno. The inability to |
133 | | * satisfy the full request is an error. |
134 | | */ |
135 | | int csprng_bytes(void *buf, size_t len); |
136 | | |
137 | | /* |
138 | | * Returns a random uint32_t, uniformly distributed across all possible |
139 | | * values. |
140 | | */ |
141 | | uint32_t git_rand(void); |
142 | | |
143 | | /* Provide log2 of the given `size_t`. */ |
144 | | static inline unsigned log2u(uintmax_t sz) |
145 | 0 | { |
146 | 0 | unsigned l = 0; |
147 | | |
148 | | /* |
149 | | * Technically this isn't required, but it helps the compiler optimize |
150 | | * this to a `bsr` instruction. |
151 | | */ |
152 | 0 | if (!sz) |
153 | 0 | return 0; |
154 | | |
155 | 0 | for (; sz; sz >>= 1) |
156 | 0 | l++; |
157 | |
|
158 | 0 | return l - 1; |
159 | 0 | } Unexecuted instantiation: add.c:log2u Unexecuted instantiation: am.c:log2u Unexecuted instantiation: annotate.c:log2u Unexecuted instantiation: apply.c:log2u Unexecuted instantiation: archive.c:log2u Unexecuted instantiation: bisect.c:log2u Unexecuted instantiation: blame.c:log2u Unexecuted instantiation: branch.c:log2u Unexecuted instantiation: bugreport.c:log2u Unexecuted instantiation: bundle.c:log2u Unexecuted instantiation: cat-file.c:log2u Unexecuted instantiation: check-attr.c:log2u Unexecuted instantiation: check-ignore.c:log2u Unexecuted instantiation: check-mailmap.c:log2u Unexecuted instantiation: check-ref-format.c:log2u Unexecuted instantiation: checkout--worker.c:log2u Unexecuted instantiation: checkout-index.c:log2u Unexecuted instantiation: checkout.c:log2u Unexecuted instantiation: clean.c:log2u Unexecuted instantiation: clone.c:log2u Unexecuted instantiation: column.c:log2u Unexecuted instantiation: commit-graph.c:log2u Unexecuted instantiation: commit-tree.c:log2u Unexecuted instantiation: commit.c:log2u Unexecuted instantiation: config.c:log2u Unexecuted instantiation: count-objects.c:log2u Unexecuted instantiation: credential-cache--daemon.c:log2u Unexecuted instantiation: credential-cache.c:log2u Unexecuted instantiation: credential-store.c:log2u Unexecuted instantiation: credential.c:log2u Unexecuted instantiation: describe.c:log2u Unexecuted instantiation: diagnose.c:log2u Unexecuted instantiation: diff-files.c:log2u Unexecuted instantiation: diff-index.c:log2u Unexecuted instantiation: diff-tree.c:log2u Unexecuted instantiation: diff.c:log2u Unexecuted instantiation: difftool.c:log2u Unexecuted instantiation: fast-export.c:log2u Unexecuted instantiation: fast-import.c:log2u Unexecuted instantiation: fetch-pack.c:log2u Unexecuted instantiation: fetch.c:log2u Unexecuted instantiation: fmt-merge-msg.c:log2u Unexecuted instantiation: for-each-ref.c:log2u Unexecuted instantiation: for-each-repo.c:log2u Unexecuted instantiation: fsck.c:log2u Unexecuted instantiation: fsmonitor--daemon.c:log2u Unexecuted instantiation: gc.c:log2u Unexecuted instantiation: get-tar-commit-id.c:log2u Unexecuted instantiation: grep.c:log2u Unexecuted instantiation: hash-object.c:log2u Unexecuted instantiation: help.c:log2u Unexecuted instantiation: hook.c:log2u Unexecuted instantiation: index-pack.c:log2u Unexecuted instantiation: init-db.c:log2u Unexecuted instantiation: interpret-trailers.c:log2u Unexecuted instantiation: log.c:log2u Unexecuted instantiation: ls-files.c:log2u Unexecuted instantiation: ls-remote.c:log2u Unexecuted instantiation: ls-tree.c:log2u Unexecuted instantiation: mailinfo.c:log2u Unexecuted instantiation: mailsplit.c:log2u Unexecuted instantiation: merge-base.c:log2u Unexecuted instantiation: merge-file.c:log2u Unexecuted instantiation: merge-index.c:log2u Unexecuted instantiation: merge-ours.c:log2u Unexecuted instantiation: merge-recursive.c:log2u Unexecuted instantiation: merge-tree.c:log2u Unexecuted instantiation: merge.c:log2u Unexecuted instantiation: mktag.c:log2u Unexecuted instantiation: mktree.c:log2u Unexecuted instantiation: multi-pack-index.c:log2u Unexecuted instantiation: mv.c:log2u Unexecuted instantiation: name-rev.c:log2u Unexecuted instantiation: notes.c:log2u Unexecuted instantiation: pack-objects.c:log2u Unexecuted instantiation: pack-redundant.c:log2u Unexecuted instantiation: pack-refs.c:log2u Unexecuted instantiation: patch-id.c:log2u Unexecuted instantiation: prune-packed.c:log2u Unexecuted instantiation: prune.c:log2u Unexecuted instantiation: pull.c:log2u Unexecuted instantiation: push.c:log2u Unexecuted instantiation: range-diff.c:log2u Unexecuted instantiation: read-tree.c:log2u Unexecuted instantiation: rebase.c:log2u Unexecuted instantiation: receive-pack.c:log2u Unexecuted instantiation: reflog.c:log2u Unexecuted instantiation: refs.c:log2u Unexecuted instantiation: remote-ext.c:log2u Unexecuted instantiation: remote-fd.c:log2u Unexecuted instantiation: remote.c:log2u Unexecuted instantiation: repack.c:log2u Unexecuted instantiation: replace.c:log2u Unexecuted instantiation: replay.c:log2u Unexecuted instantiation: rerere.c:log2u Unexecuted instantiation: reset.c:log2u Unexecuted instantiation: rev-list.c:log2u Unexecuted instantiation: rev-parse.c:log2u Unexecuted instantiation: revert.c:log2u Unexecuted instantiation: rm.c:log2u Unexecuted instantiation: send-pack.c:log2u Unexecuted instantiation: shortlog.c:log2u Unexecuted instantiation: show-branch.c:log2u Unexecuted instantiation: show-index.c:log2u Unexecuted instantiation: show-ref.c:log2u Unexecuted instantiation: sparse-checkout.c:log2u Unexecuted instantiation: stash.c:log2u Unexecuted instantiation: stripspace.c:log2u Unexecuted instantiation: submodule--helper.c:log2u Unexecuted instantiation: symbolic-ref.c:log2u Unexecuted instantiation: tag.c:log2u Unexecuted instantiation: unpack-file.c:log2u Unexecuted instantiation: unpack-objects.c:log2u Unexecuted instantiation: update-index.c:log2u Unexecuted instantiation: update-ref.c:log2u Unexecuted instantiation: update-server-info.c:log2u Unexecuted instantiation: upload-archive.c:log2u Unexecuted instantiation: upload-pack.c:log2u Unexecuted instantiation: var.c:log2u Unexecuted instantiation: verify-commit.c:log2u Unexecuted instantiation: verify-pack.c:log2u Unexecuted instantiation: verify-tag.c:log2u Unexecuted instantiation: worktree.c:log2u Unexecuted instantiation: write-tree.c:log2u Unexecuted instantiation: git.c:log2u Unexecuted instantiation: fuzz-commit-graph.c:log2u Unexecuted instantiation: abspath.c:log2u Unexecuted instantiation: add-interactive.c:log2u Unexecuted instantiation: add-patch.c:log2u Unexecuted instantiation: advice.c:log2u Unexecuted instantiation: alias.c:log2u Unexecuted instantiation: attr.c:log2u Unexecuted instantiation: base85.c:log2u Unexecuted instantiation: blob.c:log2u Unexecuted instantiation: bloom.c:log2u Unexecuted instantiation: bulk-checkin.c:log2u Unexecuted instantiation: bundle-uri.c:log2u Unexecuted instantiation: cache-tree.c:log2u Unexecuted instantiation: color.c:log2u Unexecuted instantiation: combine-diff.c:log2u Unexecuted instantiation: commit-reach.c:log2u Unexecuted instantiation: terminal.c:log2u Unexecuted instantiation: connect.c:log2u Unexecuted instantiation: connected.c:log2u Unexecuted instantiation: convert.c:log2u Unexecuted instantiation: copy.c:log2u Unexecuted instantiation: csum-file.c:log2u Unexecuted instantiation: ctype.c:log2u Unexecuted instantiation: date.c:log2u Unexecuted instantiation: decorate.c:log2u Unexecuted instantiation: delta-islands.c:log2u Unexecuted instantiation: diff-delta.c:log2u Unexecuted instantiation: diff-merges.c:log2u Unexecuted instantiation: diff-lib.c:log2u Unexecuted instantiation: diff-no-index.c:log2u Unexecuted instantiation: diffcore-break.c:log2u Unexecuted instantiation: diffcore-delta.c:log2u Unexecuted instantiation: diffcore-order.c:log2u Unexecuted instantiation: diffcore-pickaxe.c:log2u Unexecuted instantiation: diffcore-rename.c:log2u Unexecuted instantiation: diffcore-rotate.c:log2u Unexecuted instantiation: dir-iterator.c:log2u Unexecuted instantiation: dir.c:log2u Unexecuted instantiation: editor.c:log2u Unexecuted instantiation: entry.c:log2u Unexecuted instantiation: environment.c:log2u Unexecuted instantiation: bitmap.c:log2u Unexecuted instantiation: ewah_bitmap.c:log2u Unexecuted instantiation: ewah_io.c:log2u Unexecuted instantiation: ewah_rlw.c:log2u Unexecuted instantiation: exec-cmd.c:log2u Unexecuted instantiation: fsmonitor.c:log2u Unexecuted instantiation: fsmonitor-ipc.c:log2u Unexecuted instantiation: fsmonitor-settings.c:log2u Unexecuted instantiation: gettext.c:log2u Unexecuted instantiation: git-zlib.c:log2u Unexecuted instantiation: gpg-interface.c:log2u Unexecuted instantiation: graph.c:log2u Unexecuted instantiation: hash-lookup.c:log2u Unexecuted instantiation: hashmap.c:log2u Unexecuted instantiation: hex.c:log2u Unexecuted instantiation: hex-ll.c:log2u Unexecuted instantiation: ident.c:log2u Unexecuted instantiation: json-writer.c:log2u Unexecuted instantiation: kwset.c:log2u Unexecuted instantiation: levenshtein.c:log2u Unexecuted instantiation: line-log.c:log2u Unexecuted instantiation: line-range.c:log2u Unexecuted instantiation: list-objects-filter-options.c:log2u Unexecuted instantiation: list-objects.c:log2u Unexecuted instantiation: lockfile.c:log2u Unexecuted instantiation: log-tree.c:log2u Unexecuted instantiation: mailmap.c:log2u Unexecuted instantiation: mem-pool.c:log2u Unexecuted instantiation: merge-blobs.c:log2u Unexecuted instantiation: merge-ll.c:log2u Unexecuted instantiation: merge-ort.c:log2u Unexecuted instantiation: merge-ort-wrappers.c:log2u Unexecuted instantiation: midx.c:log2u Unexecuted instantiation: midx-write.c:log2u Unexecuted instantiation: name-hash.c:log2u Unexecuted instantiation: notes-cache.c:log2u Unexecuted instantiation: notes-merge.c:log2u Unexecuted instantiation: notes-utils.c:log2u Unexecuted instantiation: object-file-convert.c:log2u Unexecuted instantiation: object-file.c:log2u Unexecuted instantiation: object-name.c:log2u Unexecuted instantiation: object.c:log2u Unexecuted instantiation: oid-array.c:log2u Unexecuted instantiation: oidmap.c:log2u Unexecuted instantiation: oidset.c:log2u Unexecuted instantiation: oidtree.c:log2u Unexecuted instantiation: pack-bitmap-write.c:log2u Unexecuted instantiation: pack-bitmap.c:log2u Unexecuted instantiation: pack-check.c:log2u Unexecuted instantiation: pack-mtimes.c:log2u Unexecuted instantiation: pack-revindex.c:log2u Unexecuted instantiation: pack-write.c:log2u Unexecuted instantiation: packfile.c:log2u Unexecuted instantiation: pager.c:log2u Unexecuted instantiation: parallel-checkout.c:log2u Unexecuted instantiation: parse.c:log2u Unexecuted instantiation: parse-options-cb.c:log2u Unexecuted instantiation: parse-options.c:log2u Unexecuted instantiation: patch-delta.c:log2u Unexecuted instantiation: patch-ids.c:log2u Unexecuted instantiation: path.c:log2u Unexecuted instantiation: pathspec.c:log2u Unexecuted instantiation: pkt-line.c:log2u Unexecuted instantiation: preload-index.c:log2u Unexecuted instantiation: pretty.c:log2u Unexecuted instantiation: prio-queue.c:log2u Unexecuted instantiation: progress.c:log2u Unexecuted instantiation: promisor-remote.c:log2u Unexecuted instantiation: prompt.c:log2u Unexecuted instantiation: protocol.c:log2u Unexecuted instantiation: pseudo-merge.c:log2u Unexecuted instantiation: quote.c:log2u Unexecuted instantiation: reachable.c:log2u Unexecuted instantiation: read-cache.c:log2u Unexecuted instantiation: rebase-interactive.c:log2u Unexecuted instantiation: ref-filter.c:log2u Unexecuted instantiation: reflog-walk.c:log2u Unexecuted instantiation: debug.c:log2u Unexecuted instantiation: files-backend.c:log2u Unexecuted instantiation: reftable-backend.c:log2u Unexecuted instantiation: iterator.c:log2u Unexecuted instantiation: packed-backend.c:log2u Unexecuted instantiation: ref-cache.c:log2u Unexecuted instantiation: refspec.c:log2u Unexecuted instantiation: replace-object.c:log2u Unexecuted instantiation: repo-settings.c:log2u Unexecuted instantiation: repository.c:log2u Unexecuted instantiation: resolve-undo.c:log2u Unexecuted instantiation: revision.c:log2u Unexecuted instantiation: run-command.c:log2u Unexecuted instantiation: sequencer.c:log2u Unexecuted instantiation: serve.c:log2u Unexecuted instantiation: server-info.c:log2u Unexecuted instantiation: setup.c:log2u Unexecuted instantiation: shallow.c:log2u Unexecuted instantiation: sideband.c:log2u Unexecuted instantiation: sigchain.c:log2u Unexecuted instantiation: sparse-index.c:log2u Unexecuted instantiation: split-index.c:log2u Unexecuted instantiation: stable-qsort.c:log2u Unexecuted instantiation: statinfo.c:log2u Unexecuted instantiation: strbuf.c:log2u Unexecuted instantiation: streaming.c:log2u Unexecuted instantiation: string-list.c:log2u Unexecuted instantiation: strmap.c:log2u Unexecuted instantiation: strvec.c:log2u Unexecuted instantiation: sub-process.c:log2u Unexecuted instantiation: submodule-config.c:log2u Unexecuted instantiation: submodule.c:log2u Unexecuted instantiation: symlinks.c:log2u Unexecuted instantiation: tempfile.c:log2u Unexecuted instantiation: thread-utils.c:log2u Unexecuted instantiation: tmp-objdir.c:log2u Unexecuted instantiation: trace.c:log2u Unexecuted instantiation: trace2.c:log2u Unexecuted instantiation: tr2_cfg.c:log2u Unexecuted instantiation: tr2_cmd_name.c:log2u Unexecuted instantiation: tr2_ctr.c:log2u Unexecuted instantiation: tr2_dst.c:log2u Unexecuted instantiation: tr2_sid.c:log2u Unexecuted instantiation: tr2_sysenv.c:log2u Unexecuted instantiation: tr2_tbuf.c:log2u Unexecuted instantiation: tr2_tgt_event.c:log2u Unexecuted instantiation: tr2_tgt_normal.c:log2u Unexecuted instantiation: tr2_tgt_perf.c:log2u Unexecuted instantiation: tr2_tls.c:log2u Unexecuted instantiation: tr2_tmr.c:log2u Unexecuted instantiation: trailer.c:log2u Unexecuted instantiation: transport-helper.c:log2u Unexecuted instantiation: transport.c:log2u Unexecuted instantiation: tree-diff.c:log2u Unexecuted instantiation: tree-walk.c:log2u Unexecuted instantiation: tree.c:log2u Unexecuted instantiation: unpack-trees.c:log2u Unexecuted instantiation: url.c:log2u Unexecuted instantiation: urlmatch.c:log2u Unexecuted instantiation: usage.c:log2u Unexecuted instantiation: userdiff.c:log2u Unexecuted instantiation: utf8.c:log2u Unexecuted instantiation: varint.c:log2u Unexecuted instantiation: version.c:log2u Unexecuted instantiation: versioncmp.c:log2u Unexecuted instantiation: wildmatch.c:log2u Unexecuted instantiation: wrapper.c:log2u Unexecuted instantiation: write-or-die.c:log2u Unexecuted instantiation: ws.c:log2u Unexecuted instantiation: wt-status.c:log2u Unexecuted instantiation: xdiff-interface.c:log2u Unexecuted instantiation: unix-socket.c:log2u Unexecuted instantiation: sha1dc_git.c:log2u Unexecuted instantiation: sha1.c:log2u Unexecuted instantiation: ubc_check.c:log2u Unexecuted instantiation: sha256.c:log2u Unexecuted instantiation: procinfo.c:log2u Unexecuted instantiation: fopen.c:log2u Unexecuted instantiation: strlcpy.c:log2u Unexecuted instantiation: qsort_s.c:log2u Unexecuted instantiation: alloc.c:log2u Unexecuted instantiation: archive-tar.c:log2u Unexecuted instantiation: archive-zip.c:log2u Unexecuted instantiation: cbtree.c:log2u Unexecuted instantiation: chdir-notify.c:log2u Unexecuted instantiation: chunk-format.c:log2u Unexecuted instantiation: nonblock.c:log2u Unexecuted instantiation: fetch-negotiator.c:log2u Unexecuted instantiation: linear-assignment.c:log2u Unexecuted instantiation: list-objects-filter.c:log2u Unexecuted instantiation: loose.c:log2u Unexecuted instantiation: ls-refs.c:log2u Unexecuted instantiation: match-trees.c:log2u Unexecuted instantiation: default.c:log2u Unexecuted instantiation: noop.c:log2u Unexecuted instantiation: skipping.c:log2u Unexecuted instantiation: protocol-caps.c:log2u Unexecuted instantiation: xdiffi.c:log2u Unexecuted instantiation: xemit.c:log2u Unexecuted instantiation: xhistogram.c:log2u Unexecuted instantiation: xmerge.c:log2u Unexecuted instantiation: xpatience.c:log2u Unexecuted instantiation: xprepare.c:log2u Unexecuted instantiation: xutils.c:log2u Unexecuted instantiation: error.c:log2u Unexecuted instantiation: iter.c:log2u Unexecuted instantiation: publicbasics.c:log2u Unexecuted instantiation: reader.c:log2u Unexecuted instantiation: record.c:log2u Unexecuted instantiation: stack.c:log2u Unexecuted instantiation: writer.c:log2u Unexecuted instantiation: basics.c:log2u Unexecuted instantiation: block.c:log2u Unexecuted instantiation: blocksource.c:log2u Unexecuted instantiation: merged.c:log2u Unexecuted instantiation: pq.c:log2u Unexecuted instantiation: common-main.c:log2u |
160 | | |
161 | | #endif /* WRAPPER_H */ |