首页 > 解决方案 > 确定提交作者是否未初始化

问题描述

我正在尝试在我的程序中使用 libgit2 API。我必须遍历提交并将提交与其父级进行比较,我还需要每个修改的作者。我正在 Linux 内核上测试程序,其中有提交的作者在某种程度上无效:调用该git_commit_author方法确实提供了一个git_signature对象,但nameandemail字段未初始化。

有没有办法,也许是一个告诉作者无效/未初始化的 API 调用?我已经尝试使用std::isgraph来确定一个字符name是否是图形的,但是当未初始化的字段为空时它仍然会引发段错误。

const git_signature* commitAuthor = git_commit_author(job._commit);

if (commitAuthor && !std::isgraph(commitAuthor->name[0]))  // segfault happens here
    return;

标签: c++cinitializationlibgit2

解决方案


推荐阅读