main() { char hex[] = "599955586da1c3ad514f3e65f1081d2012ec862d"; git_oid oid; git_oid_mkstr(&oid, hex); printf("Raw 20 bytes: [%s]\n", (&oid)->id); }
static VALUE rb_git_hex_to_raw(VALUE self, VALUE hex) { git_oid oid; Check_Type(hex, T_STRING); rugged_exception_check(git_oid_mkstr(&oid, RSTRING_PTR(hex))); return rugged_str_ascii(oid.id, 20); }
static VALUE rb_git_tree_entry_sha_SET(VALUE self, VALUE val) { rugged_tree_entry *tree_entry; git_oid id; Data_Get_Struct(self, rugged_tree_entry, tree_entry); Check_Type(val, T_STRING); rugged_exception_check(git_oid_mkstr(&id, RSTRING_PTR(val))); git_tree_entry_set_id(tree_entry->entry, &id); return Qnil; }
static VALUE rb_git_tree_entry_sha_SET(VALUE self, VALUE val) { rugged_tree_entry *tree_entry; git_oid id; Data_Get_Struct(self, rugged_tree_entry, tree_entry); Check_Type(val, T_STRING); if (git_oid_mkstr(&id, RSTRING_PTR(val)) < 0) rb_raise(rb_eTypeError, "Invalid SHA1 value"); git_tree_entry_set_id(tree_entry->entry, &id); return Qnil; }
static int commit_quick_parse(git_revwalk *walk, commit_object *commit, git_rawobj *raw) { const int parent_len = STRLEN("parent ") + GIT_OID_HEXSZ + 1; unsigned char *buffer = raw->data; unsigned char *buffer_end = buffer + raw->len; unsigned char *parents_start; int i, parents = 0; buffer += STRLEN("tree ") + GIT_OID_HEXSZ + 1; parents_start = buffer; while (buffer + parent_len < buffer_end && memcmp(buffer, "parent ", STRLEN("parent ")) == 0) { parents++; buffer += parent_len; } commit->parents = alloc_parents(commit, parents); if (commit->parents == NULL) return GIT_ENOMEM; buffer = parents_start; for (i = 0; i < parents; ++i) { git_oid oid; if (git_oid_mkstr(&oid, (char *)buffer + STRLEN("parent ")) < GIT_SUCCESS) return GIT_EOBJCORRUPTED; commit->parents[i] = commit_lookup(walk, &oid); if (commit->parents[i] == NULL) return GIT_ENOMEM; buffer += parent_len; } commit->out_degree = (unsigned short)parents; if ((buffer = memchr(buffer, '\n', buffer_end - buffer)) == NULL) return GIT_EOBJCORRUPTED; buffer = memchr(buffer, '>', buffer_end - buffer); if (buffer == NULL) return GIT_EOBJCORRUPTED; commit->time = strtol((char *)buffer + 2, NULL, 10); if (commit->time == 0) return GIT_EOBJCORRUPTED; commit->parsed = 1; return GIT_SUCCESS; }
static VALUE rb_git_indexentry_oid_SET(VALUE self, VALUE v) { git_index_entry *entry; int error; Data_Get_Struct(self, git_index_entry, entry); Check_Type(v, T_STRING); error = git_oid_mkstr(&entry->oid, RSTRING_PTR(v)); rugged_exception_check(error); return Qnil; }
int egit_oid_from_binary(ErlNifEnv *env, ERL_NIF_TERM sha, git_oid *id) { ErlNifBinary ibin; char hex[41]; if(!enif_inspect_binary(env, sha, &ibin)) return 0; if(ibin.size > 40) return 0; memcpy(hex, ibin.data, ibin.size); hex[ibin.size + 1] = '\0'; git_oid_mkstr(id, hex); return 1; }
static VALUE rb_git_tree_add_entry(VALUE self, VALUE rb_oid, VALUE rb_filename, VALUE rb_mode) { git_tree_entry *new_entry; git_oid oid; git_tree *tree; int error; RUGGED_OBJ_UNWRAP(self, git_tree, tree); Check_Type(rb_oid, T_STRING); Check_Type(rb_filename, T_STRING); Check_Type(rb_mode, T_FIXNUM); error = git_oid_mkstr(&oid, RSTRING_PTR(rb_oid)); rugged_exception_check(error); error = git_tree_add_entry(&new_entry, tree, &oid, RSTRING_PTR(rb_filename), FIX2INT(rb_mode)); rugged_exception_check(error); return rb_git_createentry(self, new_entry); }
int git_commit__parse_oid(git_oid *oid, char **buffer_out, const char *buffer_end, const char *header) { const size_t sha_len = GIT_OID_HEXSZ; const size_t header_len = strlen(header); char *buffer = *buffer_out; if (buffer + (header_len + sha_len + 1) > buffer_end) return GIT_EOBJCORRUPTED; if (memcmp(buffer, header, header_len) != 0) return GIT_EOBJCORRUPTED; if (buffer[header_len + sha_len] != '\n') return GIT_EOBJCORRUPTED; if (git_oid_mkstr(oid, buffer + header_len) < 0) return GIT_EOBJCORRUPTED; *buffer_out = buffer + (header_len + sha_len + 1); return 0; }
"fd8430bc864cfcd5f10e5590f8a447e01b942bfe", "blob", "test-objects/fd", "test-objects/fd/8430bc864cfcd5f10e5590f8a447e01b942bfe", some_data, sizeof(some_data), }; BEGIN_TEST(read_loose_commit) git_odb *db; git_oid id; git_obj obj; must_pass(write_object_files(odb_dir, &commit)); must_pass(git_odb_open(&db, odb_dir)); must_pass(git_oid_mkstr(&id, commit.id)); must_pass(git_odb__read_loose(&obj, db, &id)); must_pass(cmp_objects(&obj, &commit)); git_obj_close(&obj); git_odb_close(db); must_pass(remove_object_files(odb_dir, &commit)); END_TEST BEGIN_TEST(read_loose_tree) git_odb *db; git_oid id; git_obj obj; must_pass(write_object_files(odb_dir, &tree));
#include "test_lib.h" #include <git/oid.h> #include <stdlib.h> BEGIN_TEST(oid_szs) git_oid out; must_be_true(20 == GIT_OID_RAWSZ); must_be_true(40 == GIT_OID_HEXSZ); must_be_true(sizeof(out) == GIT_OID_RAWSZ); must_be_true(sizeof(out.id) == GIT_OID_RAWSZ); END_TEST BEGIN_TEST(empty_string) git_oid out; must_fail(git_oid_mkstr(&out, "")); END_TEST BEGIN_TEST(invalid_string_moo) git_oid out; must_fail(git_oid_mkstr(&out, "moo")); END_TEST static int from_hex(unsigned char i) { if (i >= '0' && i <= '9') return i - '0'; if (i >= 'a' && i <= 'f') return 10 + (i - 'a'); if (i >= 'A' && i <= 'F') return 10 + (i - 'A'); return -1;
void StupIdsView::onFileLoaded() { // m_unfinishedNotes.clear(); // m_tempNotes.clear(); // TODO: uncomment this when the comments-server will be usable // m_replyList = m_qnam->get(QNetworkRequest(QUrl("http://localhost:3000/comment/show/43"))); int count = m_catalog->numberOfEntries(); m_msgNew.resize(count); for (int i = 0; i < count; i ++) m_msgNew[i] = m_catalog->createIddiffMessage(i); m_browser->clear(); QString poFilename = m_catalog->url().path(); std::string tp_hash_stlstr = calculate_tp_hash(poFilename.toUtf8().data()); const char *tp_hash_str = tp_hash_stlstr.c_str(); printf("tp_hash_str = %s\n", tp_hash_str); m_browser->insertHtml("<b>Template-part hash:</b> " + QString(tp_hash_str) + "<br />"); // if (m_entry.entry < m_commentsList.size()) // { // m_browser->insertHtml(m_commentsList.at(m_entry.entry)); // } git_oid tp_hash; git_oid_mkstr(&tp_hash, tp_hash_str); m_firstId = stupidsClient.getFirstId(&tp_hash); printf("m_firstId = %d\n", m_firstId); // OK/reject buttons are disabled until reviewing starts. m_reviewSave = new QPushButton(i18n("Save")); m_reviewGood = new QPushButton(i18n("Like")); m_reviewBad = new QPushButton(i18nc("Dislike, but I'm too lazy to fix it", "Dislike")); m_reviewCancel = new QPushButton(i18nc("Cancel review of this message", "Cancel review")); m_reviewHideReviewed = new QPushButton(i18nc("Hide reviewed messages", "Hide reviewed")); m_reviewHideReviewed->setCheckable(true); m_Layout->addWidget(m_reviewCommentEdit, 1, 0, 1, 2); m_reviewCommentEdit->setFixedHeight(100); m_Layout->addWidget(m_reviewSave, 2, 0, 2, 1); m_Layout->addWidget(m_reviewGood, 2, 1); m_Layout->addWidget(m_reviewBad, 3, 1); m_Layout->addWidget(m_reviewCancel, 4, 1); m_Layout->addWidget(m_reviewHideReviewed, 4, 0); connect(m_reviewGood, SIGNAL(clicked()), this, SLOT(onReviewGood())); connect(m_reviewBad, SIGNAL(clicked()), this, SLOT(onReviewBad())); connect(m_reviewCancel, SIGNAL(clicked()), this, SLOT(onReviewCancel())); connect(m_reviewSave, SIGNAL(clicked()), this, SLOT(onReviewSave())); connect(m_reviewCommentEdit, SIGNAL(textChanged()), this, SLOT(onReviewCommentChanged())); connect(m_reviewHideReviewed, SIGNAL(toggled(bool)), this, SLOT(onReviewHide(bool))); if (m_firstId == 0) return; for (int entry = 0; entry < m_catalog->numberOfEntries(); entry ++) { const char *commentText = m_iddiff->reviewCommentText(m_firstId + entry); if (commentText) m_reviewComments[entry] = QString::fromUtf8(commentText); } }