Coverage Report

Created: 2025-12-31 07:01

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/git/gettext.h
Line
Count
Source
1
/*
2
 * Copyright (c) 2010-2011 Ævar Arnfjörð Bjarmason
3
 *
4
 * This is a skeleton no-op implementation of gettext for Git.
5
 * You can replace it with something that uses libintl.h and wraps
6
 * gettext() to try out the translations.
7
 */
8
9
#ifndef GETTEXT_H
10
#define GETTEXT_H
11
12
#if defined(_) || defined(Q_)
13
#error "namespace conflict: '_' or 'Q_' is pre-defined?"
14
#endif
15
16
#ifndef NO_GETTEXT
17
# include <libintl.h>
18
#else
19
# ifdef gettext
20
#   undef gettext
21
# endif
22
# define gettext(s) (s)
23
# ifdef ngettext
24
#   undef ngettext
25
# endif
26
# define ngettext(s, p, n) ((n == 1) ? (s) : (p))
27
#endif
28
29
#define FORMAT_PRESERVING(n) __attribute__((format_arg(n)))
30
31
#ifndef NO_GETTEXT
32
extern int git_gettext_enabled;
33
void git_setup_gettext(void);
34
int gettext_width(const char *s);
35
#else
36
#define git_gettext_enabled (0)
37
static inline void git_setup_gettext(void)
38
{
39
}
40
static inline int gettext_width(const char *s)
41
{
42
  return strlen(s);
43
}
44
#endif
45
46
static inline FORMAT_PRESERVING(1) const char *_(const char *msgid)
47
168
{
48
168
  if (!*msgid)
49
0
    return "";
50
168
  if (!git_gettext_enabled)
51
168
    return msgid;
52
0
  return gettext(msgid);
53
168
}
commit-graph.c:_
Line
Count
Source
47
57
{
48
57
  if (!*msgid)
49
0
    return "";
50
57
  if (!git_gettext_enabled)
51
57
    return msgid;
52
0
  return gettext(msgid);
53
57
}
Unexecuted instantiation: commit.c:_
Unexecuted instantiation: config.c:_
Unexecuted instantiation: csum-file.c:_
Unexecuted instantiation: date.c:_
Unexecuted instantiation: dir.c:_
Unexecuted instantiation: environment.c:_
Unexecuted instantiation: exec-cmd.c:_
Unexecuted instantiation: fsmonitor-ipc.c:_
Unexecuted instantiation: fsmonitor-settings.c:_
Unexecuted instantiation: gettext.c:_
Unexecuted instantiation: gpg-interface.c:_
Unexecuted instantiation: hook.c:_
Unexecuted instantiation: ident.c:_
Unexecuted instantiation: lockfile.c:_
Unexecuted instantiation: name-hash.c:_
Unexecuted instantiation: object-file-convert.c:_
Unexecuted instantiation: object-file.c:_
Unexecuted instantiation: object-name.c:_
Unexecuted instantiation: object.c:_
Unexecuted instantiation: odb.c:_
Unexecuted instantiation: pack-write.c:_
Unexecuted instantiation: packfile.c:_
Unexecuted instantiation: parse.c:_
Unexecuted instantiation: path.c:_
Unexecuted instantiation: pathspec.c:_
Unexecuted instantiation: pretty.c:_
Unexecuted instantiation: progress.c:_
Unexecuted instantiation: promisor-remote.c:_
Unexecuted instantiation: read-cache.c:_
Unexecuted instantiation: reflog-walk.c:_
Unexecuted instantiation: refs.c:_
Unexecuted instantiation: files-backend.c:_
Unexecuted instantiation: reftable-backend.c:_
Unexecuted instantiation: packed-backend.c:_
Unexecuted instantiation: remote.c:_
Unexecuted instantiation: replace-object.c:_
Unexecuted instantiation: revision.c:_
Unexecuted instantiation: run-command.c:_
Unexecuted instantiation: setup.c:_
Unexecuted instantiation: shallow.c:_
Unexecuted instantiation: sparse-index.c:_
Unexecuted instantiation: split-index.c:_
Unexecuted instantiation: strbuf.c:_
Unexecuted instantiation: submodule-config.c:_
Unexecuted instantiation: submodule.c:_
Unexecuted instantiation: symlinks.c:_
Unexecuted instantiation: trailer.c:_
Unexecuted instantiation: transport.c:_
Unexecuted instantiation: tree-walk.c:_
Unexecuted instantiation: urlmatch.c:_
usage.c:_
Line
Count
Source
47
84
{
48
84
  if (!*msgid)
49
0
    return "";
50
84
  if (!git_gettext_enabled)
51
84
    return msgid;
52
0
  return gettext(msgid);
53
84
}
Unexecuted instantiation: version.c:_
Unexecuted instantiation: worktree.c:_
Unexecuted instantiation: wrapper.c:_
Unexecuted instantiation: wt-status.c:_
Unexecuted instantiation: advice.c:_
Unexecuted instantiation: alias.c:_
Unexecuted instantiation: attr.c:_
Unexecuted instantiation: bisect.c:_
Unexecuted instantiation: branch.c:_
Unexecuted instantiation: bundle-uri.c:_
Unexecuted instantiation: bundle.c:_
Unexecuted instantiation: cache-tree.c:_
chunk-format.c:_
Line
Count
Source
47
27
{
48
27
  if (!*msgid)
49
0
    return "";
50
27
  if (!git_gettext_enabled)
51
27
    return msgid;
52
0
  return gettext(msgid);
53
27
}
Unexecuted instantiation: color.c:_
Unexecuted instantiation: column.c:_
Unexecuted instantiation: combine-diff.c:_
Unexecuted instantiation: commit-reach.c:_
Unexecuted instantiation: connect.c:_
Unexecuted instantiation: connected.c:_
Unexecuted instantiation: convert.c:_
Unexecuted instantiation: copy.c:_
Unexecuted instantiation: diff-merges.c:_
Unexecuted instantiation: diff-lib.c:_
Unexecuted instantiation: diff.c:_
Unexecuted instantiation: diffcore-order.c:_
Unexecuted instantiation: diffcore-rename.c:_
Unexecuted instantiation: diffcore-rotate.c:_
Unexecuted instantiation: editor.c:_
Unexecuted instantiation: fetch-pack.c:_
Unexecuted instantiation: graph.c:_
Unexecuted instantiation: grep.c:_
Unexecuted instantiation: line-log.c:_
Unexecuted instantiation: list-objects-filter-options.c:_
Unexecuted instantiation: list-objects.c:_
Unexecuted instantiation: log-tree.c:_
Unexecuted instantiation: loose.c:_
Unexecuted instantiation: mem-pool.c:_
Unexecuted instantiation: merge-ll.c:_
Unexecuted instantiation: merge-ort.c:_
Unexecuted instantiation: midx.c:_
Unexecuted instantiation: pack-check.c:_
Unexecuted instantiation: pack-revindex.c:_
Unexecuted instantiation: parse-options-cb.c:_
Unexecuted instantiation: parse-options.c:_
Unexecuted instantiation: pkt-line.c:_
Unexecuted instantiation: preload-index.c:_
Unexecuted instantiation: range-diff.c:_
Unexecuted instantiation: refspec.c:_
Unexecuted instantiation: send-pack.c:_
Unexecuted instantiation: sequencer.c:_
Unexecuted instantiation: sideband.c:_
Unexecuted instantiation: transport-helper.c:_
Unexecuted instantiation: unpack-trees.c:_
Unexecuted instantiation: xdiff-interface.c:_
Unexecuted instantiation: apply.c:_
Unexecuted instantiation: entry.c:_
Unexecuted instantiation: list-objects-filter.c:_
Unexecuted instantiation: merge-ort-wrappers.c:_
Unexecuted instantiation: merge.c:_
Unexecuted instantiation: notes-utils.c:_
Unexecuted instantiation: parallel-checkout.c:_
Unexecuted instantiation: rebase-interactive.c:_
Unexecuted instantiation: rerere.c:_
Unexecuted instantiation: reset.c:_
54
55
static inline FORMAT_PRESERVING(1) FORMAT_PRESERVING(2)
56
const char *Q_(const char *msgid, const char *plu, unsigned long n)
57
0
{
58
0
  if (!git_gettext_enabled)
59
0
    return n == 1 ? msgid : plu;
60
0
  return ngettext(msgid, plu, n);
61
0
}
Unexecuted instantiation: commit-graph.c:Q_
Unexecuted instantiation: commit.c:Q_
Unexecuted instantiation: config.c:Q_
Unexecuted instantiation: csum-file.c:Q_
Unexecuted instantiation: date.c:Q_
Unexecuted instantiation: dir.c:Q_
Unexecuted instantiation: environment.c:Q_
Unexecuted instantiation: exec-cmd.c:Q_
Unexecuted instantiation: fsmonitor-ipc.c:Q_
Unexecuted instantiation: fsmonitor-settings.c:Q_
Unexecuted instantiation: gettext.c:Q_
Unexecuted instantiation: gpg-interface.c:Q_
Unexecuted instantiation: hook.c:Q_
Unexecuted instantiation: ident.c:Q_
Unexecuted instantiation: lockfile.c:Q_
Unexecuted instantiation: name-hash.c:Q_
Unexecuted instantiation: object-file-convert.c:Q_
Unexecuted instantiation: object-file.c:Q_
Unexecuted instantiation: object-name.c:Q_
Unexecuted instantiation: object.c:Q_
Unexecuted instantiation: odb.c:Q_
Unexecuted instantiation: pack-write.c:Q_
Unexecuted instantiation: packfile.c:Q_
Unexecuted instantiation: parse.c:Q_
Unexecuted instantiation: path.c:Q_
Unexecuted instantiation: pathspec.c:Q_
Unexecuted instantiation: pretty.c:Q_
Unexecuted instantiation: progress.c:Q_
Unexecuted instantiation: promisor-remote.c:Q_
Unexecuted instantiation: read-cache.c:Q_
Unexecuted instantiation: reflog-walk.c:Q_
Unexecuted instantiation: refs.c:Q_
Unexecuted instantiation: files-backend.c:Q_
Unexecuted instantiation: reftable-backend.c:Q_
Unexecuted instantiation: packed-backend.c:Q_
Unexecuted instantiation: remote.c:Q_
Unexecuted instantiation: replace-object.c:Q_
Unexecuted instantiation: revision.c:Q_
Unexecuted instantiation: run-command.c:Q_
Unexecuted instantiation: setup.c:Q_
Unexecuted instantiation: shallow.c:Q_
Unexecuted instantiation: sparse-index.c:Q_
Unexecuted instantiation: split-index.c:Q_
Unexecuted instantiation: strbuf.c:Q_
Unexecuted instantiation: submodule-config.c:Q_
Unexecuted instantiation: submodule.c:Q_
Unexecuted instantiation: symlinks.c:Q_
Unexecuted instantiation: trailer.c:Q_
Unexecuted instantiation: transport.c:Q_
Unexecuted instantiation: tree-walk.c:Q_
Unexecuted instantiation: urlmatch.c:Q_
Unexecuted instantiation: usage.c:Q_
Unexecuted instantiation: version.c:Q_
Unexecuted instantiation: worktree.c:Q_
Unexecuted instantiation: wrapper.c:Q_
Unexecuted instantiation: wt-status.c:Q_
Unexecuted instantiation: advice.c:Q_
Unexecuted instantiation: alias.c:Q_
Unexecuted instantiation: attr.c:Q_
Unexecuted instantiation: bisect.c:Q_
Unexecuted instantiation: branch.c:Q_
Unexecuted instantiation: bundle-uri.c:Q_
Unexecuted instantiation: bundle.c:Q_
Unexecuted instantiation: cache-tree.c:Q_
Unexecuted instantiation: chunk-format.c:Q_
Unexecuted instantiation: color.c:Q_
Unexecuted instantiation: column.c:Q_
Unexecuted instantiation: combine-diff.c:Q_
Unexecuted instantiation: commit-reach.c:Q_
Unexecuted instantiation: connect.c:Q_
Unexecuted instantiation: connected.c:Q_
Unexecuted instantiation: convert.c:Q_
Unexecuted instantiation: copy.c:Q_
Unexecuted instantiation: diff-merges.c:Q_
Unexecuted instantiation: diff-lib.c:Q_
Unexecuted instantiation: diff.c:Q_
Unexecuted instantiation: diffcore-order.c:Q_
Unexecuted instantiation: diffcore-rename.c:Q_
Unexecuted instantiation: diffcore-rotate.c:Q_
Unexecuted instantiation: editor.c:Q_
Unexecuted instantiation: fetch-pack.c:Q_
Unexecuted instantiation: graph.c:Q_
Unexecuted instantiation: grep.c:Q_
Unexecuted instantiation: line-log.c:Q_
Unexecuted instantiation: list-objects-filter-options.c:Q_
Unexecuted instantiation: list-objects.c:Q_
Unexecuted instantiation: log-tree.c:Q_
Unexecuted instantiation: loose.c:Q_
Unexecuted instantiation: mem-pool.c:Q_
Unexecuted instantiation: merge-ll.c:Q_
Unexecuted instantiation: merge-ort.c:Q_
Unexecuted instantiation: midx.c:Q_
Unexecuted instantiation: pack-check.c:Q_
Unexecuted instantiation: pack-revindex.c:Q_
Unexecuted instantiation: parse-options-cb.c:Q_
Unexecuted instantiation: parse-options.c:Q_
Unexecuted instantiation: pkt-line.c:Q_
Unexecuted instantiation: preload-index.c:Q_
Unexecuted instantiation: range-diff.c:Q_
Unexecuted instantiation: refspec.c:Q_
Unexecuted instantiation: send-pack.c:Q_
Unexecuted instantiation: sequencer.c:Q_
Unexecuted instantiation: sideband.c:Q_
Unexecuted instantiation: transport-helper.c:Q_
Unexecuted instantiation: unpack-trees.c:Q_
Unexecuted instantiation: xdiff-interface.c:Q_
Unexecuted instantiation: apply.c:Q_
Unexecuted instantiation: entry.c:Q_
Unexecuted instantiation: list-objects-filter.c:Q_
Unexecuted instantiation: merge-ort-wrappers.c:Q_
Unexecuted instantiation: merge.c:Q_
Unexecuted instantiation: notes-utils.c:Q_
Unexecuted instantiation: parallel-checkout.c:Q_
Unexecuted instantiation: rebase-interactive.c:Q_
Unexecuted instantiation: rerere.c:Q_
Unexecuted instantiation: reset.c:Q_
62
63
/* Mark msgid for translation but do not translate it. */
64
0
#define N_(msgid) msgid
65
66
const char *get_preferred_languages(void);
67
int is_utf8_locale(void);
68
69
#endif