Skip to content
Snippets Groups Projects
  1. May 31, 2018
    • Kitware Robot's avatar
      Revise C++ coding style using clang-format-6.0 · 828b6837
      Kitware Robot authored and Brad King's avatar Brad King committed
      Run the `clang-format.bash` script to update all our C and C++ code to a
      new style defined by `.clang-format`.  Use `clang-format` version 6.0.
      
      * If you reached this commit for a line in `git blame`, re-run the blame
        operation starting at the parent of this commit to see older history
        for the content.
      
      * See the parent commit for instructions to rebase a change across this
        style transition commit.
      828b6837
  2. May 18, 2018
    • Peter Wu's avatar
      SystemTools: Fix GetLineFromStream to avoid libc++ bug on OS X 10.7 · 898dc6b9
      Peter Wu authored and Brad King's avatar Brad King committed
      LLVM libc++ as included with Mac OS X 10.7 suffers from an issue where
      the trailing character is discarded when the delimiter (LF) is not found
      within the given buffer size (1024).  The returned length is also 1024
      rather than 1023.
      
      This issue results in truncated reads as observed with CMake 3.11.0 on
      Mac OS X 10.7 and `cmake -E cmake_link_script link.txt`.
      
      Solve this by replacing `istream::getline` by `std::getline` which does
      not trigger the buffering issue.  There is one edge case that I decided
      to leave up to the callers though: a file containing `\0` previously
      resulted in line truncation, but is now included in the result.
      
      Tested with Mac OS X 10.7 and 10.11:
      
          -DCMAKE_OSX_DEPLOYMENT_TARGET=10.7 -DCMAKE_CXX_FLAGS=-stdlib=libc++
      
      and `./kwsysTestsCxx testSystemTools`.
      
      Issue: cmake/cmake#15039
      898dc6b9
  3. Mar 07, 2018
  4. Jan 31, 2018
  5. Dec 21, 2017
  6. Dec 09, 2017
  7. Oct 05, 2017
  8. Sep 29, 2017
  9. Aug 03, 2017
  10. May 29, 2017
  11. May 06, 2017
  12. Apr 17, 2017
    • Brad King's avatar
      Encoding: Add ToWindowsExtendedPath function · e71a3406
      Brad King authored
      Move the implementation of `SystemTools::ConvertToWindowsExtendedPath`
      over to a new function in `Encoding`.  It does not depend on other
      things `SystemTools` and will be useful in other KWSys components
      that already depend on `Encoding` but not `SystemTools`.
      e71a3406
  13. Mar 29, 2017
  14. Jan 15, 2017
    • Brad King's avatar
      SystemTools: Fix conversion warning in test case · e08eee61
      Brad King authored
      ```
      testSystemTools.cxx:901:32: warning: comparison of integers of different
        signs: 'size_type' (aka 'unsigned long') and 'long' [-Wsign-compare]
          if (!result || line.size() != size) {
                         ~~~~~~~~~~~ ^  ~~~~
      ```
      e08eee61
  15. Jan 09, 2017
  16. Nov 04, 2016
    • Kitware Robot's avatar
      Revise C++ coding style using clang-format · 6c973b46
      Kitware Robot authored and Brad King's avatar Brad King committed
      Run the `clang-format.bash` script to update all our C and C++ code to a new
      style defined by `.clang-format`.  Use `clang-format` version 3.8.
      
      * If you reached this commit for a line in `git blame`, re-run the blame
        operation starting at the parent of this commit to see older history
        for the content.
      
      * See the parent commit for instructions to rebase a change across this
        style transition commit.
      
      Change-Id: Ie3aedc03bfe5c3999d4a077fafb8c6f3bbffc5c5
      6c973b46
    • Brad King's avatar
      Simplify KWSys per-source license notices · c41c1bc4
      Brad King authored
      Per-source copyright/license notice headers that spell out copyright holder
      names and years are hard to maintain and often out-of-date or plain wrong.
      Precise contributor information is already maintained automatically by the
      version control tool.  Ultimately it is the receiver of a file who is
      responsible for determining its licensing status, and per-source notices are
      merely a convenience.  Therefore it is simpler and more accurate for
      each source to have a generic notice of the license name and references to
      more detailed information on copyright holders and full license terms.
      
      Our `Copyright.txt` file now contains a list of Contributors whose names
      appeared source-level copyright notices.  It also references version control
      history for more precise information.  Therefore we no longer need to spell
      out the list of Contributors in each source file notice.
      
      Replace KWSys per-source copyright/license notice headers with a short
      description of the license and links to `Copyright.txt` and online
      information available from "https://cmake.org/licensing#kwsys".
      
      Run the `filter-notices.bash` script to perform the replacements mechanically.
      Manually fix up the shebang line in one file.
      
      Change-Id: I8497f7c868664dcf54a8608ab302ad93c860b334
      c41c1bc4
  17. Sep 14, 2016
  18. Aug 03, 2016
    • Ben Boeckel's avatar
      SystemTools: add a PathExists method · 6d23dd7e
      Ben Boeckel authored
      This method checks if a path by the given name exists. The problem with
      FileExists is that it returns `false` even for broken (or
      self-referential) symlinks which may not be what the user wants.
      
      Change-Id: I71b8af6e12a5ae4b1319a3bec83db6c3cef36f90
      6d23dd7e
  19. Jul 18, 2016
  20. Dec 02, 2015
  21. Sep 28, 2015
    • Vitaly Baranov's avatar
      SystemTools: Fix GetPath to not affect existing output vector entries · 2089567a
      Vitaly Baranov authored and Brad King's avatar Brad King committed
      The GetPath method appends paths to an output vector and also converts
      paths to forward slashes.  However, the method should not modify entries
      in the output vector that existed prior to the call.  Fix it to only fix
      slashes in the entries it added to the vector.  Also add a test case
      covering this behavior.
      
      Change-Id: Ie098c3eddbe63ed59f0d393aa6c43ea6c395011d
      2089567a
  22. Aug 28, 2015
  23. Aug 24, 2015
  24. Aug 03, 2015
    • Jean-Christophe Fillion-Robin's avatar
      SystemTools: Fix DetectFileType failure on directory · 6d83c113
      Jean-Christophe Fillion-Robin authored and Brad King's avatar Brad King committed
      Some operating systems allow directories to be opened and read like
      files while others do not.  Simply check for a directory type first.
      
      Change-Id: Ic970f662d5aa887ace4a8f166ede7e0d1531d0d6
      6d83c113
    • Jean-Christophe Fillion-Robin's avatar
      SystemTools: Fix DetectFileType failure on missing file · e5c23738
      Jean-Christophe Fillion-Robin authored and Brad King's avatar Brad King committed
      Fix the following error reported by valgrind memcheck tool:
      
      ==31549== 256 bytes in 1 blocks are definitely lost in loss record 1 of 1
      ==31549==    at 0x4C2B800: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
      ==31549==    by 0x44F3AA: kwsys::SystemTools::DetectFileType(char const*, unsigned long, double) (in .../kwsysTestsCxx)
      ==31549==    by 0x43D75E: CheckFileOperations() (in .../kwsysTestsCxx)
      ==31549==    by 0x43FAC5: testSystemTools(int, char**) (in .../kwsysTestsCxx)
      ==31549==    by 0x434A2B: main (in .../kwsysTestsCxx)
      
      Change-Id: I42db9774bf30889b67921a538e00c1bf519a2719
      e5c23738
  25. May 27, 2015
    • Brad King's avatar
      SystemTools: Teach RemoveFile to tolerate missing file · 61e0419f
      Brad King authored
      Some use cases may have a race condition such that the file to be
      removed disappears before we remove it.  Detect when removal fails due
      to the file already missing and tolerate it without failing.
      
      On Windows this requires using DeleteFileW instead of _wunlink because
      the latter does not seem to always update errno.  Try to delete before
      checking permissions because getting permissions will fail if the file
      is missing.
      
      Change-Id: If1922a15d742daca6d252c594284800d60cc1fce
      61e0419f
  26. Oct 16, 2014
  27. Sep 08, 2014
  28. Sep 06, 2014
  29. Aug 07, 2014
  30. Jul 30, 2014
  31. Jul 01, 2014
    • Chuck Atkins's avatar
      SystemTools: Use extended paths on Windows for > 256 length · 8f991ab0
      Chuck Atkins authored and Brad King's avatar Brad King committed
      Many Windows filesystem calls (but not all) have a MAX_PATH limitation
      of 260 characters (drive letter, colon, backslash, 256 char path, null).
      This is especially problematic for interacting with large highly nested
      build trees (the boost C++ libraries, for example). This limitation can
      be overcome by using extended length paths instead.  By converting
      local filesystem and network paths to extended length paths before
      passing them to the underlying APIs the maximum path length can be as
      large as 32767 characters. The new ConvertToWindowsExtendedPath
      function will convert "E:/a.txt" to "\\?\E:\a.txt" and "\\Foo\a.txt" to
      "\\?\UNC\Foo\a.txt".
      
      See also the MSDN article on "Naming Files, Paths, and Namespaces":
      
       http://msdn.microsoft.com/en-us/library/windows/desktop/aa365247.aspx
      
      This also adds a hidden CMake option, KWSYS_TEST_SYSTEMTOOLS_LONG_PATHS,
      which, when set to TRUE, will enable the extended length path tests.
      This is off by default since if something does go awry, the resulting
      leftovers could be difficult to delete manually.
      
      Change-Id: Ib7ac1f657241ed389169678d1c078c0d836f1c7b
      8f991ab0
  32. Jun 03, 2014
    • Chuck Atkins's avatar
      SystemTools: Refactor test file and directory locations · 97817ce7
      Chuck Atkins authored
      The full path for files used by SystemTools tests were preconfigured
      in a generated header file by CMake variables.  This begins to get
      unwieldy and clutters the CMake files once more variables and files
      get added.  In preperation for more file and directory tests being
      added, the preconfigured variables are now just the source and binary
      directories for which all tests can base themselves off of.
      
      Change-Id: Iae9e11592a3c040ce2e9cc90dbd1ccedfc3129ea
      97817ce7
Loading