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 | } 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:_ 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:_ 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 |