1. 23 Feb, 2022 2 commits
  2. 22 Nov, 2021 1 commit
  3. 17 Oct, 2021 1 commit
    • str: introduce `git_str` for internal, `git_buf` is external · f0e693b1
      libgit2 has two distinct requirements that were previously solved by
      `git_buf`.  We require:
      
      1. A general purpose string class that provides a number of utility APIs
         for manipulating data (eg, concatenating, truncating, etc).
      2. A structure that we can use to return strings to callers that they
         can take ownership of.
      
      By using a single class (`git_buf`) for both of these purposes, we have
      confused the API to the point that refactorings are difficult and
      reasoning about correctness is also difficult.
      
      Move the utility class `git_buf` to be called `git_str`: this represents
      its general purpose, as an internal string buffer class.  The name also
      is an homage to Junio Hamano ("gitstr").
      
      The public API remains `git_buf`, and has a much smaller footprint.  It
      is generally only used as an "out" param with strict requirements that
      follow the documentation.  (Exceptions exist for some legacy APIs to
      avoid breaking callers unnecessarily.)
      
      Utility functions exist to convert a user-specified `git_buf` to a
      `git_str` so that we can call internal functions, then converting it
      back again.
      Edward Thomson committed
  4. 25 Aug, 2021 1 commit
  5. 24 Jun, 2019 1 commit
    • win32: cast WinAPI to void * before casting · c512d58f
      GetProcAddress is prototyped to return a `FARPROC`, which is meant to be
      a generic function pointer.  It's literally `int (FAR WINAPI * FARPROC)()`
      which gcc complains if you attempt to cast to a `void (*)(GIT_SRWLOCK *)`.
      Cast to a `void *` before casting to avoid warnings about the arguments.
      Edward Thomson committed
  6. 10 Jun, 2018 1 commit
  7. 16 Dec, 2014 1 commit
    • win32: use NT-prefixed "\\?\" paths · cceae9a2
      When turning UTF-8 paths into UCS-2 paths for Windows, always use
      the \\?\-prefixed paths.  Because this bypasses the system's
      path canonicalization, handle the canonicalization functions ourselves.
      
      We must:
       1. always use a backslash as a directory separator
       2. only use a single backslash between directories
       3. not rely on the system to translate "." and ".." in paths
       4. remove trailing backslashes, except at the drive root (C:\)
      Edward Thomson committed
  8. 09 Dec, 2014 1 commit
  9. 23 Apr, 2014 1 commit
  10. 22 Apr, 2014 1 commit