• Mark Olesen's avatar
    ENH: improve consistency of fileName handling windows/non-windows (#2057) · b060378d
    Mark Olesen authored and Andrew Heather's avatar Andrew Heather committed
    - wrap command-line retrieval of fileName with an implicit validate.
    
      Instead of this:
          fileName input(args[1]);
          fileName other(args["someopt"]);
    
      Now use this:
          auto input = args.get<fileName>(1);
          auto other = args.get<fileName>("someopt");
    
      which adds a fileName::validate on the inputs
    
      Because of how it is implemented, it will automatically also apply
      to argList getOrDefault<fileName>, readIfPresent<fileName> etc.
    
    - adjust fileName::validate and clean to handle backslash conversion.
      This makes it easier to ensure that path names arising from MS-Windows
      are consistently handled internally.
    
    - dictionarySearch: now check for initial '/' directly instead of
      relying on fileName isAbsolute(), which now does more things
    
    BREAKING: remove fileName::clean() const method
    
    - relying on const/non-const to control the behaviour (inplace change
      or return a copy) is too fragile and the const version was
      almost never used.
    
      Replace:
          fileName sanitized = constPath.clean();
    
      With:
          fileName sanitized(constPath);
          sanitized.clean());
    
    STYLE: test empty() instead of comparing with fileName::null
    b060378d