int git_signature_new(git_signature **sig_out, const char *name, const char *email, git_time_t time, int offset) { git_signature *p = NULL; assert(name && email); *sig_out = NULL; if (contains_angle_brackets(name) || contains_angle_brackets(email)) { return signature_error( "Neither `name` nor `email` should contain angle brackets chars."); } p = git__calloc(1, sizeof(git_signature)); GITERR_CHECK_ALLOC(p); p->name = extract_trimmed(name, strlen(name)); GITERR_CHECK_ALLOC(p->name); p->email = extract_trimmed(email, strlen(email)); GITERR_CHECK_ALLOC(p->email); if (p->name[0] == '\0' || p->email[0] == '\0') { git_signature_free(p); return signature_error("Signature cannot have an empty name or email"); } p->when.time = time; p->when.offset = offset; *sig_out = p; return 0; }
int git_signature_new(git_signature **sig_out, const char *name, const char *email, git_time_t time, int offset) { git_signature *p = NULL; assert(name && email); *sig_out = NULL; p = git__calloc(1, sizeof(git_signature)); GITERR_CHECK_ALLOC(p); if (process_trimming(name, &p->name, name + strlen(name), 1) < 0 || process_trimming(email, &p->email, email + strlen(email), 1) < 0) { git_signature_free(p); return -1; } if (contains_angle_brackets(p->email) || contains_angle_brackets(p->name)) { git_signature_free(p); return signature_error("Neither `name` nor `email` should contain angle brackets chars."); } p->when.time = time; p->when.offset = offset; *sig_out = p; return 0; }