1. 06 Sep, 2014 1 commit
  2. 07 Aug, 2014 1 commit
  3. 30 Jul, 2014 1 commit
  4. 01 Jul, 2014 1 commit
    • Chuck Atkins's avatar
      SystemTools: Use extended paths on Windows for > 256 length · 8f991ab0
      Chuck Atkins authored
      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
  5. 03 Jun, 2014 1 commit
    • 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
  6. 07 May, 2014 1 commit
  7. 31 Jan, 2013 1 commit
  8. 26 Apr, 2012 1 commit
    • Brad King's avatar
      KWSys: Fix SystemTools environment memory handling (#13156) · 48aeb751
      Brad King authored
      The SystemTools::PutEnv function tries to provide the "putenv" API
      without leaking memory.  However, the kwsysDeletingCharVector singleton
      frees memory that may still be referenced by the environment table,
      having been placed there by putenv.  If any static destruction or
      processing by an external tool happens after the singleton is destroyed
      and accesses the environment it will read invalid memory.
      
      Replace use of putenv with setenv/unsetenv when available.  The latter
      manage internal copies of the values passed instead of referencing the
      original memory.  When setenv/unsetenv are not available use putenv with
      a singleton that removes its values from the environment before freeing
      their memory.  This requires an "unputenv" implementation.  On at least
      some platforms it must be written in terms of "putenv" because other
      APIs are not available and direct modification of the "environ" global
      is not safe (e.g. on Windows there is interaction with "wenviron").
      Fortunately either putenv("A=") or putenv("A") will remove "A" from the
      environment on these platforms.  On other platforms fall back to direct
      manipulation of "environ".
      
      Also add UnPutEnv to the API and add a test for the behavior of both.
      48aeb751
  9. 14 Dec, 2010 1 commit
    • Brad King's avatar
      KWSys: Do not mangle UNC paths in ConvertToUnixOutputPath (#10206) · 6f76e7eb
      Brad King authored
      This method replaces '//' with '/' to make the paths look nicer.
      Originally it correctly skipped a leading '//' in a UNC path as the
      comment says.  However, commit "Removed extra variable initializations"
      (2005-04-15) accidentally removed the "pos=1" initializer.  It was then
      incorrectly restored by commit "Added missing variable initialization"
      (2005-04-15) as just "pos=0".  Restore the proper initializer.
      
      The test for this added by commit "better coverage" (2006-07-31)
      included incorrect output for a sample UNC-like path.  Fix it.
      6f76e7eb
  10. 28 Sep, 2009 1 commit
    • Brad King's avatar
      Convert KWSys to OSI-approved BSD License · 62db264e
      Brad King authored
      This converts the KWSys license to a pure 3-clause OSI-approved BSD
      License.  We drop the previous license clause requiring modified
      versions to be plainly marked.  We also update the KWSys copyright to
      cover the full development time range.
      62db264e
  11. 07 Mar, 2007 1 commit
  12. 03 Mar, 2007 1 commit
  13. 01 Aug, 2006 1 commit
  14. 31 Jul, 2006 1 commit
  15. 28 Jul, 2006 1 commit
  16. 25 Jul, 2006 2 commits
  17. 09 Mar, 2006 1 commit
  18. 06 Oct, 2005 1 commit
  19. 05 Oct, 2005 1 commit
  20. 04 Oct, 2005 1 commit
  21. 20 Jun, 2005 1 commit
  22. 13 Apr, 2005 4 commits