1. 26 Jul, 2018 19 commits
  2. 23 Jul, 2018 1 commit
  3. 21 Jul, 2018 4 commits
  4. 20 Jul, 2018 5 commits
  5. 19 Jul, 2018 1 commit
  6. 17 Jul, 2018 1 commit
  7. 16 Jul, 2018 1 commit
  8. 15 Jul, 2018 3 commits
  9. 14 Jul, 2018 1 commit
  10. 13 Jul, 2018 4 commits
    • ignore: improve `git_ignore_path_is_ignored` description Git analogy · 9cab93c0
      In attempt to provide adequate Git command analogy in regards to
      ignored files handling, `git_ignore_path_is_ignored` description
      mentions doing `git add .` on directory containing the file, and
      whether the file in question would be added or not - but behavior of
      the two matches for untracked files only, making the comparison
      misleading in general sense.
      
      For tracked files, Git doesn't subject them to ignore rules, so even
      if a rule applies, `git add .` would actually add the tracked file
      changes to index, while `git_ignore_path_is_ignored` would still
      consider the file being ignored (as it doesn't check the index, as
      documented).
      
      Let's provide `git check-ignore --no-index` as analogous Git command
      example instead, being more aligned with what `git_ignore_path_is_ignored`
      is about, no matter if the file in question is already tracked or not.
      
      See issue #4720 (git_ignore_path_is_ignored documentation
      misleading?, 2018-07-10)[1] for additional information.
      
      [1] https://github.com/libgit2/libgit2/issues/4720
      Igor Djordjevic committed
    • cmake: enforce C90 standard · e1a4a8eb
      While the aim of libgit2 was to conform to C90 code, we never instructed
      the compiler to enforce C90 compliance. Thus, quite a few violations
      were able to get into our code base, which have been removed with the
      previous commits. As we are now able to build libgit2 with C90 enforced,
      we can set the C_STANDARD property for our own build targets.
      
      Note that we explicitly avoid setting the C standard for our third-party
      dependencies. At least the zlib target does not build with C90 enforced,
      and we do not want to fix them by deviating from upstream. Thus we
      simply enforce no standard for them.
      Patrick Steinhardt committed
    • mbedtls: fix `inline` being used in mbedtls headers · d19381e2
      The mbedtls headers make direct use of the `inline` attribute to
      instruct the compiler to inline functions. As this function is not C90
      compliant, this can cause the compiler to error as soon as any of these
      files is included and the `-std=c90` flag is being added.
      
      The mbedtls headers declaring functions as inline always have a prelude
      which define `inline` as a macro in case it is not yet defined. Thus, we
      can easily replace their define with our own define, which simply copies
      the logic of our own `GIT_INLINE` macro.
      Patrick Steinhardt committed
    • cmake: distinguish internal and system include directories · c13e56f9
      While we want to enforce strict C90 mode, this may cause issues with
      system provided header files which are themselves not strictly
      conforming. E.g. if a system header has C++ style comments, a compiler
      in strict C90 mode would produce an error and abort the build. As the
      user most likely doesn't want to change the system header, this would
      completely break the build on such systems. One example of this is
      mbedtls, which provides such header files.
      
      The problem can be worked around by distinguishing between
      system-provided and project-provided include directories. When adding
      include directories via "-isystem" instead of "-I", the compiler will
      skip certain checks and print out less warnings. To use system includes,
      we can simply add the "SYSTEM" flag to CMake's `INCLUDE_DIRECTORIES` and
      `TARGET_INCLUDE_DIRECTORIES` functions. Note that we have to split the
      include directories into two variables because of this, as we definitely
      still want to check for all warnings produced by our own header files.
      Patrick Steinhardt committed