diff options
Diffstat (limited to 'version.c')
-rw-r--r-- | version.c | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/version.c b/version.c new file mode 100644 index 000000000000..41b718c29e1b --- /dev/null +++ b/version.c @@ -0,0 +1,39 @@ +#include "git-compat-util.h" +#include "version.h" +#include "strbuf.h" + +const char git_version_string[] = GIT_VERSION; +const char git_built_from_commit_string[] = GIT_BUILT_FROM_COMMIT; + +const char *git_user_agent(void) +{ + static const char *agent = NULL; + + if (!agent) { + agent = getenv("GIT_USER_AGENT"); + if (!agent) + agent = GIT_USER_AGENT; + } + + return agent; +} + +const char *git_user_agent_sanitized(void) +{ + static const char *agent = NULL; + + if (!agent) { + struct strbuf buf = STRBUF_INIT; + int i; + + strbuf_addstr(&buf, git_user_agent()); + strbuf_trim(&buf); + for (i = 0; i < buf.len; i++) { + if (buf.buf[i] <= 32 || buf.buf[i] >= 127) + buf.buf[i] = '.'; + } + agent = buf.buf; + } + + return agent; +} |