scott mc <scott...@gmail.com> writes:

> On Wed, Sep 29, 2010 at 5:45 PM, Philip Martin
> <philip.mar...@wandisco.com> wrote:
>
>> Please write a log message:
> ---------
>
> This patch makes use of find_directory() on Haiku to locate the proper
> directories to use.  Currently B_USER_SETTINGS_DIRECTORY points to
> /boot/home/config/settings, so this puts the .subversion directory in
> /boot/home/config/settings/subversion instead of $HOME/subversion or
> $HOME/.subversion.

We like the filename and functions to be explicitly specified:

* subversion/libsvn_subr/config_file.c
  (svn_config__sys_config_path): What changed.

>>> +++ subversion/libsvn_subr/config_impl.h      (working copy)
>>> @@ -114,8 +114,11 @@
>>>     or svn_config_get_user_config_path() instead. */
>>>  #ifdef WIN32
>>>  #  define SVN_CONFIG__SUBDIRECTORY    "Subversion"
>>> -#else  /* ! WIN32 */
>>> +#elif defined __HAIKU__ /* HAIKU */
>>>  #  define SVN_CONFIG__SYS_DIRECTORY   "/etc/subversion"
>>
>> Should this be used in svn_config__sys_config_path?
>>
>
> I'm unclear on what SVN_CONFIG__SYS_DIRECTORY is used for.  Through
> several attempts I was able to move the $HOME/.subversion directory to
> /boot/home/config/settings/subversion which fits in better with how
> Haiku stores users' settings.  So I left SVN_CONFIG__SYS_DIRECTORY the
> same as other OSes for now.

Is Haiku multi-user? Does /boot/home/config/settings apply to one user
or all users?

On Linux we have /etc/subversion for per-system settings that apply to
all users, and $HOME/.subversion for per-user settings specific to
each user.

On Windows there are per-system and per-user registry settings as well
as per-system and per-user directories.

> -#else  /* ! WIN32 */
> +#elif defined(__HAIKU__)
> +  {
> +    char folder[B_PATH_NAME_LENGTH];
>
> +    status_t error = find_directory(B_USER_SETTINGS_DIRECTORY, -1, false,
> +                                    folder, sizeof(folder));
> +    if (error)
> +      return SVN_NO_ERROR;
> +
> +    *path_p = svn_dirent_join_many(pool, folder,
> +                                   SVN_CONFIG__USR_DIRECTORY, fname, NULL);
> +  }
> +#else  /* ! WIN32 && !__HAIKU__ */
> +
>    *path_p = svn_dirent_join_many(pool, SVN_CONFIG__SYS_DIRECTORY, fname, 
> NULL);
>
>  #endif /* WIN32 */
> @@ -1117,8 +1134,21 @@
>                                   SVN_CONFIG__SUBDIRECTORY, fname, NULL);
>    }
>
> -#else  /* ! WIN32 */
> +#elif defined(__HAIKU__)
>    {
> +    char folder[B_PATH_NAME_LENGTH];
> +
> +    status_t error = find_directory(B_USER_SETTINGS_DIRECTORY, -1, false,
> +                                    folder, sizeof(folder));
> +    if (error)
> +      return SVN_NO_ERROR;
> +
> +    *path = svn_dirent_join_many(pool, folder,
> +                                 SVN_CONFIG__USR_DIRECTORY, fname, NULL);
> +  }
> +#else  /* ! WIN32 && !__HAIKU__ */
> +
> +  {

These two functions are returning the same path.  Is that what is intended?

-- 
Philip

Reply via email to