1. 17 Apr, 2012 1 commit
  2. 15 Mar, 2012 1 commit
    • Continue error conversion · deafee7b
      This converts blob.c, fileops.c, and all of the win32 files.
      Also, various minor cleanups throughout the code.  Plus, in
      testing the win32 build, I cleaned up a bunch (although not
      all) of the warnings with the 64-bit build.
      Russell Belfer committed
  3. 13 Mar, 2012 1 commit
    • Migrate ODB files to new error handling · e1de726c
      This migrates odb.c, odb_loose.c, odb_pack.c and pack.c to
      the new style of error handling.  Also got the unix and win32
      versions of map.c.  There are some minor changes to other
      files but no others were completely converted.
      
      This also contains an update to filebuf so that a zeroed out
      filebuf will not think that the fd (== 0) is actually open
      (and inadvertently call close() on fd 0 if cleaned up).
      
      Lastly, this was built and tested on win32 and contains a
      bunch of fixes for the win32 build which was pretty broken.
      Russell Belfer committed
  4. 06 Mar, 2012 1 commit
    • error-handling: Repository · cb8a7961
      This also includes droping `git_buf_lasterror` because it makes no sense
      in the new system. Note that in most of the places were it has been
      dropped, the code needs cleanup. I.e. GIT_ENOMEM is going away, so
      instead it should return a generic `-1` and obviously not throw
      anything.
      Vicent Martí committed
  5. 03 Mar, 2012 1 commit
  6. 13 Feb, 2012 1 commit
  7. 17 Jan, 2012 1 commit
  8. 16 Jan, 2012 1 commit
  9. 14 Dec, 2011 1 commit
  10. 08 Dec, 2011 1 commit
    • Use git_buf for path storage instead of stack-based buffers · 97769280
      This converts virtually all of the places that allocate GIT_PATH_MAX
      buffers on the stack for manipulating paths to use git_buf objects
      instead.  The patch is pretty careful not to touch the public API
      for libgit2, so there are a few places that still use GIT_PATH_MAX.
      
      This extends and changes some details of the git_buf implementation
      to add a couple of extra functions and to make error handling easier.
      
      This includes serious alterations to all the path.c functions, and
      several of the fileops.c ones, too.  Also, there are a number of new
      functions that parallel existing ones except that use a git_buf
      instead of a stack-based buffer (such as git_config_find_global_r
      that exists alongsize git_config_find_global).
      
      This also modifies the win32 version of p_realpath to allocate whatever
      buffer size is needed to accommodate the realpath instead of hardcoding
      a GIT_PATH_MAX limit, but that change needs to be tested still.
      Russell Belfer committed
  11. 07 Nov, 2011 1 commit
  12. 29 Oct, 2011 1 commit
  13. 27 Oct, 2011 1 commit
    • windows: Add support for non-UTF codepages · 11d51ca6
      Our previous assumption that all paths in Windows are encoded in UTF-8
      is rather weak, specially when considering that Git is
      encoding-agnostic.
      
      These set of functions allow the user to change the library's active
      codepage globally, so it is possible to access paths and files on all
      international versions of Windows.
      
      Note that the default encoding here is UTF-8 because we assume that 99%
      of all Git repositories will be in UTF-8.
      
      Also, if you use non-ascii characters in paths, anywhere, please burn on
      a fire.
      Vicent Marti committed
  14. 14 Oct, 2011 1 commit
  15. 27 Sep, 2011 1 commit
  16. 22 Sep, 2011 1 commit
  17. 21 Sep, 2011 2 commits
  18. 19 Sep, 2011 3 commits
  19. 18 Sep, 2011 1 commit
    • Cleanup legal data · bb742ede
      1. The license header is technically not valid if it doesn't have a
      copyright signature.
      
      2. The COPYING file has been updated with the different licenses used in
      the project.
      
      3. The full GPLv2 header in each file annoys me.
      Vicent Marti committed
  20. 31 Aug, 2011 1 commit
  21. 30 Aug, 2011 2 commits
  22. 18 Aug, 2011 1 commit
  23. 09 Jul, 2011 2 commits
    • posix: Portable `vsnprintf` · 2fc78e70
      Our good, lovely folks at Microsoft decided that there was no good
      reason to make `vsnprintf` compilant with the C standard, so that
      function in Windows returns -1 on overflow, instead of returning the
      actual byte count needed to write the full string.
      
      We now handle this situation more gracefully with the POSIX
      compatibility layer, by returning the needed byte size using an
      auxiliary method instead of blindly resizing the target buffer until it
      fits.
      
      This means we can now support `printf`s of any size by allocating a
      temporary buffer. That's good.
      Vicent Marti committed
  24. 05 Jul, 2011 3 commits
    • fileops: Fix stat() on directories for W32 · 19ac1ed7
      The `stat` methods were having issues when called with a trailing slash
      in Windows platforms.
      
      We now use GetFileAttributes() where possible, which doesn't have this
      restriction.
      Vicent Marti committed
    • fileops: Drop `git_fileops_prettify_path` · 5ad739e8
      The old `git_fileops_prettify_path` has been replaced with
      `git_path_prettify`. This is a much simpler method that uses the OS's
      `realpath` call to obtain the full path for directories and resolve
      symlinks.
      
      The `realpath` syscall is the original POSIX call in Unix system and
      an emulated version under Windows using the Windows API.
      Vicent Marti committed
    • fileops: Cleanup · f79026b4
      Cleaned up the structure of the whole OS-abstraction layer.
      
      fileops.c now contains a set of utility methods for file management used
      by the library. These are abstractions on top of the original POSIX
      calls.
      
      There's a new file called `posix.c` that contains
      emulations/reimplementations of all the POSIX calls the library uses.
      These are prefixed with `p_`. There's a specific posix file for each
      platform (win32 and unix).
      
      All the path-related methods have been moved from `utils.c` to `path.c`
      and have their own prefix.
      Vicent Marti committed