Skip to content
  • Michał Kępień's avatar
    Add ns_plugin_expandpath() · d181c28c
    Michał Kępień authored and Evan Hunt's avatar Evan Hunt committed
    Implement a helper function which, given an input string:
    
      - copies it verbatim if it contains at least one path separator,
      - prepends the named plugin installation directory to it otherwise.
    
    This function will allow configuration parsing code to conveniently
    determine the full path to a plugin module given either a path or a
    filename.
    
    While other, simpler ways exist for making sure filenames passed to
    dlopen() cause the latter to look for shared objects in a specific
    directory, they are very platform-specific.  Using full paths is thus
    likely the most portable and reliable solution.
    
    Also added unit tests for ns_plugin_expandpath() to ensure it behaves
    as expected for absolute paths, relative paths, and filenames, for
    various target buffer sizes.
    
    (Note: plugins share a directory with named on Windows; there is no
    default plugin path. Therefore the source path is copied to the
    destination path with no modification.)
    d181c28c