1. 17 Sep, 2013 9 commits
    • Bug fixes and cleanups · eefc32d5
      This contains a few bug fixes and some header and API cleanups.
      
      The main API change is that filters should now use GIT_PASSTHROUGH
      to indicate that they wish to skip processing a file instead of
      GIT_ENOTFOUND.
      
      The bug fixes include a possible out-of-range buffer access in
      the ident filter, a filter ordering problem I introduced into the
      custom filter tests on Windows, and a filter buf NUL termination
      issue that was coming up on Linux.
      Russell Belfer committed
    • More filtering tests including order · eab3746b
      This adds more tests of filters, including the ident filter when
      mixed with custom filters.  I was able to combine with the reverse
      filter and demonstrate that the order of filter application with
      the default priority constants matches the order of core Git.
      
      Also, this fixes two issues in the ident filter: preventing ident
      expansion on binary files and avoiding a NULL dereference when
      dollar sign characters are found without Id.
      Russell Belfer committed
    • Make filter tests somewhat more robust · ad7417d7
      The global and system config could interfere with the filter
      tests by imposing CRLF filtering where it was not anticipated.
      This better isolates the tests from the system settings.
      Russell Belfer committed
    • Port tests from PR 1683 · b47349b8
      This ports over some of the tests from
          https://github.com/libgit2/libgit2/pull/1683
      by @yorah and @ethomson
      Russell Belfer committed
    • Merge git_buf and git_buffer · a9f51e43
      This makes the git_buf struct that was used internally into an
      externally available structure and eliminates the git_buffer.
      
      As part of that, some of the special cases that arose with the
      externally used git_buffer were blended into the git_buf, such as
      being careful about git_buf objects that may have a NULL ptr and
      allowing for bufs with a valid ptr and size but zero asize as a
      way of referring to externally owned data.
      Russell Belfer committed
    • Add ident filter · 4b11f25a
      This adds the ident filter (that knows how to replace $Id$) and
      tweaks the filter APIs and code so that git_filter_source objects
      actually have the updated OID of the object being filtered when
      it is a known value.
      Russell Belfer committed
    • Add functions to manipulate filter lists · 40cb40fa
      Extend the git2/sys/filter API with functions to look up a filter
      and add it manually to a filter list.  This requires some trickery
      because the regular attribute lookups and checks are bypassed when
      this happens, but in the right hands, it will allow a user to have
      granular control over applying filters.
      Russell Belfer committed
    • Start of filter API + git_blob_filtered_content · 0cf77103
      This begins the process of exposing git_filter objects to the
      public API.  This includes:
      
      * new public type and API for `git_buffer` through which an
        allocated buffer can be passed to the user
      * new API `git_blob_filtered_content`
      * make the git_filter type and GIT_FILTER_TO_... constants public
      Russell Belfer committed