anchor.diff:        message_:                                          PAnsiChar;
      end;
   
  +//   typedef struct {  /* file io buffer  */
  +//      void *data;  /* data bytes   */
  +//      size_t len;  /* data length  */
  +//   } gitfo_buf;
  +   gitfo_buf = record
  +      data:                                              PByte;
  +      len:                                               size_t;
  +   end;
  +
  +//   struct git_blob {
  +//      git_object object;
  +//      gitfo_buf content;
  +//   };
  +   git_blob = record
  +      object_:                                           git_object;
  +      content:                                           gitfo_buf;
  +   end;
  +
   var
  +   // GIT_EXTERN(int) git_blob_lookup(git_blob **blob, git_repository *repo, const git_oid *id);
  +   git_blob_lookup:                    function (var blob: Pgit_blob; repo: Pgit_repository; const id: Pgit_oid): Integer cdecl;
  +   // GIT_EXTERN(int) git_blob_new(git_blob **blob, git_repository *repo);
  +   git_blob_new:                       function (var blob: Pgit_blob; repo: Pgit_repository): Integer cdecl;
  +   // GIT_EXTERN(int) git_blob_set_rawcontent_fromfile(git_blob *blob, const char *filename);
  +   git_blob_set_rawcontent_fromfile:   function (blob: Pgit_blob; const filename: PAnsiChar): Integer cdecl;
  +   // GIT_EXTERN(int) git_blob_set_rawcontent(git_blob *blob, const void *buffer, size_t len);
  +   git_blob_set_rawcontent:            function (blob: Pgit_blob; const buffer: PByte; len: size_t): Integer cdecl;
  +   // GIT_EXTERN(const char *) git_blob_rawcontent(git_blob *blob);
  +   git_blob_rawcontent:                function (blob: Pgit_blob): PAnsiChar cdecl;
  +   // GIT_EXTERN(int) git_blob_rawsize(git_blob *blob);
  +   git_blob_rawsize:                   function (blob: Pgit_blob): Integer cdecl;
  +   // GIT_EXTERN(int) git_blob_writefile(git_oid *written_id, git_repository *repo, const char *path);
  +   git_blob_writefile:                 function (written_id: Pgit_oid; repo: Pgit_repository; const path: PAnsiChar): Integer cdecl;
  +
  +   // GIT_EXTERN(const git_oid *) git_commit_id(git_commit *commit);
  +   git_commit_id:                      function (commit: Pgit_commit): Pgit_oid cdecl;
  +   // GIT_EXTERN(int) git_commit_lookup(git_commit **commit, git_repository *repo, const git_oid *id);
  +   git_commit_lookup:                  function (var commit: Pgit_commit; repo: Pgit_repository; const id: Pgit_oid): Integer cdecl;
  +   // GIT_EXTERN(const char *) git_commit_message_short(git_commit *commit);
  +   git_commit_message_short:           function (commit: Pgit_commit): PAnsiChar cdecl;
  +   // GIT_EXTERN(const char *) git_commit_message(git_commit *commit);
  +   git_commit_message:                 function (commit: Pgit_commit): PAnsiChar cdecl;
  +   // GIT_EXTERN(const git_signature *) git_commit_author(git_commit *commit);
  +   git_commit_author:                  function (commit: Pgit_commit): Pgit_signature cdecl;
  +   // GIT_EXTERN(const git_signature *) git_commit_committer(git_commit *commit);
  +   git_commit_committer:               function (commit: Pgit_commit): Pgit_signature cdecl;
  +   // GIT_EXTERN(time_t) git_commit_time(git_commit *commit);
  +   git_commit_time:                    function (commit: Pgit_commit): time_t cdecl;
  +   // GIT_EXTERN(unsigned int) git_commit_parentcount(git_commit *commit);
  +   git_commit_parentcount:             function (commit: Pgit_commit): UInt cdecl;
  +   // GIT_EXTERN(git_commit *) git_commit_parent(git_commit *commit, unsigned int n);
  +   git_commit_parent:                  function (commit: Pgit_commit; n: UInt): Pgit_commit cdecl;
  +   // GIT_EXTERN(int) git_commit_new(git_commit ** commit, git_repository *repo);
  +   git_commit_new:                     function (var commit: Pgit_commit; repo: Pgit_repository): Integer cdecl;
  +   // GIT_EXTERN(int) git_commit_timezone_offset(git_commit *commit);
  +   git_commit_timezone_offset:         function (commit: Pgit_commit): Integer cdecl;
  +   // GIT_EXTERN(const git_tree *) git_commit_tree(git_commit *commit);
  +   git_commit_tree:                    function (commit: Pgit_commit): Pgit_tree cdecl;
  +   // GIT_EXTERN(int) git_commit_add_parent(git_commit *commit, git_commit *new_parent);
  +   git_commit_add_parent:              function (commit: Pgit_commit; new_parent: Pgit_commit): Integer cdecl;
  +   // GIT_EXTERN(void) git_commit_set_message(git_commit *commit, const char *message);
  +   git_commit_set_message:             procedure (commit: Pgit_commit; const message_: PAnsiChar) cdecl;
  +   // GIT_EXTERN(void) git_commit_set_committer(git_commit *commit, const git_signature *committer_sig);
  +   git_commit_set_committer:           procedure (commit: Pgit_commit; const committer_sig: Pgit_signature) cdecl;
  +   // GIT_EXTERN(void) git_commit_set_author(git_commit *commit, const git_signature *author_sig);
  +   git_commit_set_author:              procedure (commit: Pgit_commit; const author_sig: Pgit_signature) cdecl;
  +   // GIT_EXTERN(void) git_commit_set_tree(git_commit *commit, git_tree *tree);
  +   git_commit_set_tree:                procedure (commit: Pgit_commit; tree: Pgit_tree) cdecl;
  +
  +   // GIT_EXTERN(int) git_index_open_bare(git_index **index, const char *index_path);
  +   git_index_open_bare:                function (var index: Pgit_index; const index_path: PAnsiChar): Integer cdecl;
  +   // GIT_EXTERN(int) git_index_read(git_index *index);
  +   git_index_read:                     function (index: Pgit_index): Integer cdecl;
  +   // GIT_EXTERN(void) git_index_free(git_index *index);
  +   git_index_free:                     procedure (index: Pgit_index) cdecl;
  +   // GIT_EXTERN(int) git_index_find(git_index *index, const char *path);
  +   git_index_find:                     function (index: Pgit_index; const path: PAnsiChar): Integer cdecl;
  +   // GIT_EXTERN(unsigned int) git_index_entrycount(git_index *index);
  +   git_index_entrycount:               function (index: Pgit_index): UInt cdecl;
  +   // GIT_EXTERN(int) git_index_open_inrepo(git_index **index, git_repository *repo);
  +   git_index_open_inrepo:              function (var index: Pgit_index; repo: Pgit_repository): Integer cdecl;
  +   // GIT_EXTERN(void) git_index_clear(git_index *index);
  +   git_index_clear:                    procedure (index: Pgit_index) cdecl;
  +   // GIT_EXTERN(int) git_index_write(git_index *index);
  +   git_index_write:                    function (index: Pgit_index): Integer cdecl;
  +   // GIT_EXTERN(int) git_index_add(git_index *index, const char *path, int stage);
  +   git_index_add:                      function (index: Pgit_index; const path: PAnsiChar; stage: Integer): Integer cdecl;
  +   // GIT_EXTERN(int) git_index_remove(git_index *index, int position);
  +   git_index_remove:                   function (index: Pgit_index; position: Integer): Integer cdecl;
  +   // GIT_EXTERN(int) git_index_insert(git_index *index, const git_index_entry *source_entry);
  +   git_index_insert:                   function (index: Pgit_index; const source_entry: Pgit_index_entry): Integer cdecl;
  +   // GIT_EXTERN(git_index_entry *) git_index_get(git_index *index, int n);
  +   git_index_get:                      function (index: Pgit_index; n: Integer): Pgit_index_entry cdecl;
  +
  +   // GIT_EXTERN(const git_oid *) git_object_id(git_object *obj);
  +   git_object_id:                      function (obj: Pgit_object): Pgit_oid cdecl;
  +   // GIT_EXTERN(int) git_object_write(git_object *object);
  +   git_object_write:                   function (object_: Pgit_object): Integer cdecl;
  +   // GIT_EXTERN(void) git_object_free(git_object *object);
  +   git_object_free:                    procedure (object_: Pgit_object) cdecl;
  +   // GIT_EXTERN(git_otype) git_object_type(git_object *obj);
  +   git_object_type:                    function(obj: Pgit_object): git_otype cdecl;
  +   // GIT_EXTERN(git_repository *) git_object_owner(git_object *obj);
  +   git_object_owner:                   function (obj: Pgit_object): Pgit_repository cdecl;
  +   // GIT_EXTERN(const char *) git_object_type2string(git_otype type);
  +   git_object_type2string:             function (type_: git_otype): PAnsiChar cdecl;
  +   // GIT_EXTERN(git_otype) git_object_string2type(const char *str);
  +   git_object_string2type:             function (const str: PAnsiChar): git_otype cdecl;
  +   // GIT_EXTERN(int) git_object_typeisloose(git_otype type);
  +   git_object_typeisloose:             function (type_: git_otype): Integer cdecl;
  +
  +   // GIT_EXTERN(int) git_odb_new(git_odb **out);
  +   git_odb_new:                        function (var out_: Pgit_odb): Integer cdecl;
  +   // GIT_EXTERN(int) git_odb_open(git_odb **out, const char *objects_dir);
  +   git_odb_open:                       function (var out_: Pgit_odb; const objects_dir: PAnsiChar): Integer cdecl;
  +   // GIT_EXTERN(int) git_odb_add_backend(git_odb *odb, git_odb_backend *backend);
  +   git_odb_add_backend:                function (odb: Pgit_odb; backend: Pgit_odb_backend): Integer cdecl;
  +   // GIT_EXTERN(void) git_odb_close(git_odb *db);
  +   git_odb_close:                      procedure (db: Pgit_odb) cdecl;
  +   // GIT_EXTERN(int) git_odb_read(git_rawobj *out, git_odb *db, const git_oid *id);
  +   git_odb_read:                       function (out_: Pgit_rawobj; db: Pgit_odb; const id: Pgit_oid): Integer cdecl;
  +   // GIT_EXTERN(int) git_odb_read_header(git_rawobj *out, git_odb *db, const git_oid *id);
  +   git_odb_read_header:                function (out_: Pgit_rawobj; db: Pgit_odb; const id: Pgit_oid): Integer cdecl;
  +   // GIT_EXTERN(int) git_odb_write(git_oid *id, git_odb *db, git_rawobj *obj);
  +   git_odb_write:                      function (id: Pgit_oid; db: Pgit_odb; obj: Pgit_rawobj): Integer cdecl;
  +   // GIT_EXTERN(int) git_odb_exists(git_odb *db, const git_oid *id);
  +   git_odb_exists:                     function (db: Pgit_odb; const id: Pgit_oid): Integer cdecl;
  +
  +   // GIT_EXTERN(int) git_rawobj_hash(git_oid *id, git_rawobj *obj);
  +   git_rawobj_hash:                    function (id: Pgit_oid; obj: Pgit_rawobj): Integer cdecl;
  +   // GIT_EXTERN(void) git_rawobj_close(git_rawobj *obj);
  +   git_rawobj_close:                   procedure (obj: Pgit_rawobj) cdecl;
  +
  +   // GIT_EXTERN(int) git_oid_mkstr(git_oid *out, const char *str);
  +   git_oid_mkstr:                      function (aOut: Pgit_oid; aStr: PAnsiChar): Integer cdecl;
  +   // GIT_EXTERN(void) git_oid_fmt(char *str, const git_oid *oid);
  +   git_oid_fmt:                        procedure (aStr: PAnsiChar; const oid: Pgit_oid) cdecl;
  +   // GIT_EXTERN(void) git_oid_pathfmt(char *str, const git_oid *oid);
  +   git_oid_pathfmt:                    procedure (aStr: PAnsiChar; const oid: Pgit_oid) cdecl;
  +   // GIT_EXTERN(void) git_oid_mkraw(git_oid *out, const unsigned char *raw);
  +   git_oid_mkraw:                      procedure (out_: Pgit_oid; const raw: PByte) cdecl;
  +   // GIT_EXTERN(char *) git_oid_allocfmt(const git_oid *oid);
  +   git_oid_allocfmt:                   function (const oid: Pgit_oid): PAnsiChar cdecl;
  +   // GIT_EXTERN(char *) git_oid_to_string(char *out, size_t n, const git_oid *oid);
  +   git_oid_to_string:                  function (out_: PAnsiChar; n: size_t; const oid: Pgit_oid): PAnsiChar cdecl;
  +   // GIT_EXTERN(void) git_oid_cpy(git_oid *out, const git_oid *src);
  +   git_oid_cpy:                        procedure (out_: Pgit_oid; const src: Pgit_oid) cdecl;
  +
      // GIT_EXTERN(int) git_repository_open(git_repository **repository, const char *path);
  -   git_repository_open:             function (var repo_out: Pgit_repository; const path: PAnsiChar): Integer cdecl;
  -
  +   git_repository_open:                function (var repo_out: Pgit_repository; const path: PAnsiChar): Integer cdecl;
      // GIT_EXTERN(void) git_repository_free(git_repository *repo);
  -   git_repository_free:             procedure (repo: Pgit_repository) cdecl;
  -
  -   // GIT_EXTERN(int) git_oid_mkstr(git_oid *out, const char *str);
  -   git_oid_mkstr:                   function (aOut: Pgit_oid; aStr: PAnsiChar): Integer cdecl;
  -
  -   // GIT_EXTERN(void) git_oid_fmt(char *str, const git_oid *oid);
  -   git_oid_fmt:                     procedure (aStr: PAnsiChar; const oid: Pgit_oid) cdecl;
  -
  -   // GIT_EXTERN(void) git_oid_pathfmt(char *str, const git_oid *oid);
  -   git_oid_pathfmt:                 procedure (aStr: PAnsiChar; const oid: Pgit_oid) cdecl;
  -
  -   // GIT_EXTERN(int) git_commit_lookup(git_commit **commit, git_repository *repo, const git_oid *id);
  -   git_commit_lookup:               function (var commit: Pgit_commit; repo: Pgit_repository; const id: Pgit_oid): Integer cdecl;
  -
  -   // GIT_EXTERN(const char *) git_commit_message_short(git_commit *commit);
  -   git_commit_message_short:        function (commit: Pgit_commit): PAnsiChar cdecl;
  -
  -   // GIT_EXTERN(const char *) git_commit_message(git_commit *commit);
  -   git_commit_message:              function (commit: Pgit_commit): PAnsiChar cdecl;
  -
  -   // GIT_EXTERN(const git_signature *) git_commit_author(git_commit *commit);
  -   git_commit_author:               function (commit: Pgit_commit): Pgit_signature cdecl;
  -
  -   // GIT_EXTERN(const git_signature *) git_commit_committer(git_commit *commit);
  -   git_commit_committer:            function (commit: Pgit_commit): Pgit_signature cdecl;
  -
  -   // GIT_EXTERN(time_t) git_commit_time(git_commit *commit);
  -   git_commit_time:                 function (commit: Pgit_commit): time_t cdecl;
  -
  -   // GIT_EXTERN(unsigned int) git_commit_parentcount(git_commit *commit);
  -   git_commit_parentcount:          function (commit: Pgit_commit): UInt cdecl;
  -
  -   // GIT_EXTERN(git_commit *) git_commit_parent(git_commit *commit, unsigned int n);
  -   git_commit_parent:               function (commit: Pgit_commit; n: UInt): Pgit_commit cdecl;
  +   git_repository_free:                procedure (repo: Pgit_repository) cdecl;
  +   // GIT_EXTERN(int) git_repository_open2(git_repository **repository, const char *git_dir, const char *git_object_directory, const char *git_index_file, const char *git_work_tree);
  +   git_repository_open2:               function (var repository: Pgit_repository; const git_dir, git_object_directory, git_index_file, git_work_tree: PAnsiChar): Integer cdecl;
  +   // GIT_EXTERN(int) git_repository_lookup(git_object **object, git_repository *repo, const git_oid *id, git_otype type);
  +   git_repository_lookup:              function (var object_: Pgit_object; repo: Pgit_repository; const id: Pgit_oid; type_: git_otype): Integer cdecl;
  +   // GIT_EXTERN(git_odb *) git_repository_database(git_repository *repo);
  +   git_repository_database:            function (repo: Pgit_repository): Pgit_odb cdecl;
  +   // GIT_EXTERN(git_index *) git_repository_index(git_repository *rpeo);
  +   git_repository_index:               function (rpeo: Pgit_repository): Pgit_index cdecl;
  +   // GIT_EXTERN(int) git_repository_newobject(git_object **object, git_repository *repo, git_otype type);
  +   git_repository_newobject:           function (var object_: Pgit_object; repo: Pgit_repository; type_: git_otype): Integer cdecl;
  +   // GIT_EXTERN(int) git_repository_init(git_repository **repo_out, const char *path, unsigned is_bare);
  +   git_repository_init:                function (var repo_out: Pgit_repository; const path: PAnsiChar; is_bare: UInt): Integer cdecl;
   
      // GIT_EXTERN(int) git_revwalk_new(git_revwalk **walker, git_repository *repo);
  -   git_revwalk_new:                 function (var walker: Pgit_revwalk; repo: Pgit_repository): Integer cdecl;
  -
  +   git_revwalk_new:                    function (var walker: Pgit_revwalk; repo: Pgit_repository): Integer cdecl;
      // GIT_EXTERN(void) git_revwalk_free(git_revwalk *walk);
  -   git_revwalk_free:                procedure (walk: Pgit_revwalk) cdecl;
  -
  +   git_revwalk_free:                   procedure (walk: Pgit_revwalk) cdecl;
      // GIT_EXTERN(int) git_revwalk_sorting(git_revwalk *walk, unsigned int sort_mode);
  -   git_revwalk_sorting:             function (walk: Pgit_revwalk; sort_mode: UInt): Integer cdecl;
  -
  +   git_revwalk_sorting:                function (walk: Pgit_revwalk; sort_mode: UInt): Integer cdecl;
      // GIT_EXTERN(int) git_revwalk_push(git_revwalk *walk, git_commit *commit);
  -   git_revwalk_push:                function (walk: Pgit_revwalk; commit: Pgit_commit): Integer cdecl;
  -
  +   git_revwalk_push:                   function (walk: Pgit_revwalk; commit: Pgit_commit): Integer cdecl;
      // GIT_EXTERN(git_commit *) git_revwalk_next(git_revwalk *walk);
  -   git_revwalk_next:                function (walk: Pgit_revwalk): Pgit_commit cdecl;
  -
  -   // GIT_EXTERN(int) git_index_open_bare(git_index **index, const char *index_path);
  -   git_index_open_bare:             function (var index: Pgit_index; const index_path: PAnsiChar): Integer cdecl;
  -
  -   // GIT_EXTERN(int) git_index_read(git_index *index);
  -   git_index_read:                  function (index: Pgit_index): Integer cdecl;
  -
  -   // GIT_EXTERN(void) git_index_free(git_index *index);
  -   git_index_free:                  procedure (index: Pgit_index) cdecl;
  -
  -   // GIT_EXTERN(int) git_index_find(git_index *index, const char *path);
  -   git_index_find:                  function (index: Pgit_index; const path: PAnsiChar): Integer cdecl;
  -
  -   // GIT_EXTERN(unsigned int) git_index_entrycount(git_index *index);
  -   git_index_entrycount:            function (index: Pgit_index): UInt cdecl;
  +   git_revwalk_next:                   function (walk: Pgit_revwalk): Pgit_commit cdecl;
  +   // GIT_EXTERN(void) git_revwalk_reset(git_revwalk *walker);
  +   git_revwalk_reset:                  procedure (walker: Pgit_revwalk) cdecl;
  +   // GIT_EXTERN(int) git_revwalk_hide(git_revwalk *walk, git_commit *commit);
  +   git_revwalk_hide:                   function (walk: Pgit_revwalk; commit: Pgit_commit): Integer cdecl;
  +   // GIT_EXTERN(git_repository *) git_revwalk_repository(git_revwalk *walk);
  +   git_revwalk_repository:             function (walk: Pgit_revwalk): Pgit_repository cdecl;
  +
  +   // GIT_EXTERN(git_signature *) git_signature_new(const char *name, const char *email, time_t time, int offset);
  +   git_signature_new:                  function (const name, email: PAnsiChar; time: time_t; offset: Integer): Pgit_signature cdecl;
  +   // GIT_EXTERN(git_signature *) git_signature_dup(const git_signature *sig);
  +   git_signature_dup:                  function (const sig: Pgit_signature): Pgit_signature cdecl;
  +   // GIT_EXTERN(void) git_signature_free(git_signature *sig);
  +   git_signature_free:                 procedure (sig: Pgit_signature)cdecl;
   
      // GIT_EXTERN(int) git_tag_lookup(git_tag **tag, git_repository *repo, const git_oid *id);
  -   git_tag_lookup:                  function (var tag: Pgit_tag; repo: Pgit_repository; const id: Pgit_oid): Integer cdecl;
  -
  +   git_tag_lookup:                     function (var tag: Pgit_tag; repo: Pgit_repository; const id: Pgit_oid): Integer cdecl;
      // GIT_EXTERN(const char *) git_tag_name(git_tag *t);
  -   git_tag_name:                    function (t: Pgit_tag): PAnsiChar cdecl;
  -
  +   git_tag_name:                       function (t: Pgit_tag): PAnsiChar cdecl;
      // GIT_EXTERN(git_otype) git_tag_type(git_tag *t);
  -   git_tag_type:                    function (t: Pgit_tag): git_otype cdecl;
  -
  +   git_tag_type:                       function (t: Pgit_tag): git_otype cdecl;
      // GIT_EXTERN(const git_object *) git_tag_target(git_tag *t);
  -   git_tag_target:                  function (t: Pgit_tag): Pgit_object cdecl;
  -
  +   git_tag_target:                     function (t: Pgit_tag): Pgit_object cdecl;
      // GIT_EXTERN(const git_oid *) git_tag_id(git_tag *tag);
  -   git_tag_id:                      function (tag: Pgit_tag): Pgit_oid cdecl;
  -
  +   git_tag_id:                         function (tag: Pgit_tag): Pgit_oid cdecl;
      // GIT_EXTERN(void) git_tag_set_name(git_tag *tag, const char *name);
  -   git_tag_set_name:                procedure (tag: Pgit_tag; const name: PAnsiChar) cdecl;
  -
  -   // GIT_EXTERN(const git_oid *) git_commit_id(git_commit *commit);
  -   git_commit_id:                   function (commit: Pgit_commit): Pgit_oid cdecl;
  -
  -   // GIT_EXTERN(const git_oid *) git_object_id(git_object *obj);
  -   git_object_id:                   function (obj: Pgit_object): Pgit_oid cdecl;
  -
  -   // GIT_EXTERN(int) git_object_write(git_object *object);
  -   git_object_write:                function (object_: Pgit_object): Integer cdecl;
  +   git_tag_set_name:                   procedure (tag: Pgit_tag; const name: PAnsiChar) cdecl;
  +   // GIT_EXTERN(int) git_tag_new(git_tag **tag, git_repository *repo);
  +   git_tag_new:                        function (var tag: Pgit_tag; repo: Pgit_repository): Integer cdecl;
  +   // GIT_EXTERN(const git_signature *) git_tag_tagger(git_tag *t);
  +   git_tag_tagger:                     function (t: Pgit_tag): Pgit_signature cdecl;
  +   // GIT_EXTERN(const char *) git_tag_message(git_tag *t);
  +   git_tag_message:                    function (t: Pgit_tag): PAnsiChar cdecl;
  +   // GIT_EXTERN(void) git_tag_set_target(git_tag *tag, git_object *target);
  +   git_tag_set_target:                 procedure (tag: Pgit_tag; target: Pgit_object) cdecl;
  +   // GIT_EXTERN(void) git_tag_set_tagger(git_tag *tag, const git_signature *tagger_sig);
  +   git_tag_set_tagger:                 procedure (tag: Pgit_tag; const tagger_sig: Pgit_signature) cdecl;
  +   // GIT_EXTERN(void) git_tag_set_message(git_tag *tag, const char *message);
  +   git_tag_set_message:                procedure (tag: Pgit_tag; const message_: PAnsiChar) cdecl;
   
      // GIT_EXTERN(int) git_tree_lookup(git_tree **tree, git_repository *repo, const git_oid *id);
  -   git_tree_lookup:                 function (var tree: Pgit_tree; repo: Pgit_repository; const id: Pgit_oid): Integer cdecl;
  -
  +   git_tree_lookup:                    function (var tree: Pgit_tree; repo: Pgit_repository; const id: Pgit_oid): Integer cdecl;
      // GIT_EXTERN(git_tree_entry *) git_tree_entry_byname(git_tree *tree, const char *filename);
  -   git_tree_entry_byname:           function (tree: Pgit_tree; const filename: PAnsiChar): Pgit_tree_entry cdecl;
  -
  +   git_tree_entry_byname:              function (tree: Pgit_tree; const filename: PAnsiChar): Pgit_tree_entry cdecl;
      // GIT_EXTERN(git_tree_entry *) git_tree_entry_byindex(git_tree *tree, int idx);
  -   git_tree_entry_byindex:          function (tree: Pgit_tree; idx: Integer): Pgit_tree_entry cdecl;
  -
  +   git_tree_entry_byindex:             function (tree: Pgit_tree; idx: Integer): Pgit_tree_entry cdecl;
      // GIT_EXTERN(size_t) git_tree_entrycount(git_tree *tree);
  -   git_tree_entrycount:             function (tree: Pgit_tree): size_t cdecl;
  -
  +   git_tree_entrycount:                function (tree: Pgit_tree): size_t cdecl;
      // GIT_EXTERN(const char *) git_tree_entry_name(git_tree_entry *entry);
  -   git_tree_entry_name:             function (entry: Pgit_tree_entry): PAnsiChar cdecl;
  -
  +   git_tree_entry_name:                function (entry: Pgit_tree_entry): PAnsiChar cdecl;
      // GIT_EXTERN(int) git_tree_entry_2object(git_object **object, git_tree_entry *entry);
  -   git_tree_entry_2object:          function (var object_: Pgit_object; entry: Pgit_tree_entry): Integer cdecl;
  -
  +   git_tree_entry_2object:             function (var object_: Pgit_object; entry: Pgit_tree_entry): Integer cdecl;
      // GIT_EXTERN(int) git_tree_new(git_tree **tree, git_repository *repo);
  -   git_tree_new:                    function (var tree: Pgit_tree; repo: Pgit_repository): Integer cdecl;
  -
  +   git_tree_new:                       function (var tree: Pgit_tree; repo: Pgit_repository): Integer cdecl;
      // GIT_EXTERN(int) git_tree_add_entry(git_tree *tree, const git_oid *id, const char *filename, int attributes);
  -   git_tree_add_entry:              function (tree: Pgit_tree; const id: Pgit_oid; const filename: PAnsiChar; attributes: Integer): Integer cdecl;
  -
  -   // GIT_EXTERN(void) git_object_free(git_object *object);
  -   git_object_free:                 procedure (object_: Pgit_object) cdecl;
  -
  +   git_tree_add_entry:                 function (tree: Pgit_tree; const id: Pgit_oid; const filename: PAnsiChar; attributes: Integer): Integer cdecl;
      // GIT_EXTERN(int) git_tree_remove_entry_byindex(git_tree *tree, int idx);
  -   git_tree_remove_entry_byindex:   function (tree: Pgit_tree; idx: Integer): Integer cdecl;
  -
  +   git_tree_remove_entry_byindex:      function (tree: Pgit_tree; idx: Integer): Integer cdecl;
      // GIT_EXTERN(int) git_tree_remove_entry_byname(git_tree *tree, const char *filename);
  -   git_tree_remove_entry_byname:    function (tree: Pgit_tree; const filename: PAnsiChar): Integer cdecl;
  -
  +   git_tree_remove_entry_byname:       function (tree: Pgit_tree; const filename: PAnsiChar): Integer cdecl;
      // GIT_EXTERN(const git_oid *) git_tree_id(git_tree *tree);
  -   git_tree_id:                     function (tree: Pgit_tree): Pgit_oid cdecl;
  +   git_tree_id:                        function (tree: Pgit_tree): Pgit_oid cdecl;
  +   // GIT_EXTERN(unsigned int) git_tree_entry_attributes(git_tree_entry *entry);
  +   git_tree_entry_attributes:          function (entry: Pgit_tree_entry): UInt cdecl;
  +   // GIT_EXTERN(const git_oid *) git_tree_entry_id(git_tree_entry *entry);
  +   git_tree_entry_id:                  function (entry: Pgit_tree_entry): Pgit_oid cdecl;
  +   // GIT_EXTERN(void) git_tree_entry_set_id(git_tree_entry *entry, const git_oid *oid);
  +   git_tree_entry_set_id:              procedure (entry: Pgit_tree_entry; const oid: Pgit_oid) cdecl;
  +   // GIT_EXTERN(void) git_tree_entry_set_name(git_tree_entry *entry, const char *name);
  +   git_tree_entry_set_name:            procedure (entry: Pgit_tree_entry; const name: PAnsiChar) cdecl;
  +   // GIT_EXTERN(void) git_tree_entry_set_attributes(git_tree_entry *entry, int attr);
  +   git_tree_entry_set_attributes:      procedure (entry: Pgit_tree_entry; attr: Integer) cdecl;
   
   implementation
   
  
positive.code: interface
  
  uses
     Windows;
  
  function InitLibgit2: Boolean;
  
  
negative.code:    Pgit_revwalk_listnode = ^git_revwalk_listnode;
     Pgit_tag = ^git_tag;
     Ppack_backend = ^pack_backend;
     Pgit_blob = ^git_blob;
     Pgit_odb_backend = ^git_odb_backend;
  
  //   typedef int (*git_vector_cmp)(const void *, const void *);
     git_vector_cmp = Pointer;
  