I've attached the 1.6.12 patch and the 1.7.xx-svn patches.
> -scottmc
>
> Scott McCreary
> HaikuPorts
>

This time as in-line text:

-----------------------1.6.12.patch

diff -urN subversion-1.6.12/subversion/libsvn_subr/config_file.c
subversion-1.6.12-haiku/subversion/libsvn_subr/config_file.c
--- subversion-1.6.12/subversion/libsvn_subr/config_file.c      2009-11-25
09:27:35.047972352 -0800
+++ subversion-1.6.12-haiku/subversion/libsvn_subr/config_file.c        
2010-03-15
22:59:57.000000000 -0700
@@ -32,6 +32,11 @@

 #include "svn_private_config.h"

+#ifdef __HAIKU__
+#  include <FindDirectory.h>
+#  include <StorageDefs.h>
+#endif
+
 /* Used to terminate lines in large multi-line string literals. */
 #define NL APR_EOL_STR

@@ -326,7 +331,19 @@
                                  SVN_CONFIG__SUBDIRECTORY, fname, NULL);
   }

-#else  /* ! WIN32 */
+#elif defined(__HAIKU__)
+{
+  char folder[B_PATH_NAME_LENGTH];
+
+  status_t error = find_directory(B_COMMON_SETTINGS_DIRECTORY, -1, false,
+                                  folder, sizeof(folder));
+  if (error)
+    return SVN_NO_ERROR;
+
+  *path_p = svn_path_join_many(pool, folder,
+                               SVN_CONFIG__SYS_DIRECTORY, fname, NULL);
+}
+#else  /* ! WIN32 && !__HAIKU__ */

   *path_p = svn_path_join_many(pool, SVN_CONFIG__SYS_DIRECTORY, fname, NULL);

@@ -1115,8 +1132,21 @@
     *path = svn_path_join_many(pool, folder,
                                SVN_CONFIG__SUBDIRECTORY, fname, NULL);
   }
+
+#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_path_join_many(pool, folder,
+                             SVN_CONFIG__USR_DIRECTORY, fname, NULL);
+}
+#else  /* ! WIN32 && !__HAIKU__ */

-#else  /* ! WIN32 */
   {
     const char *homedir = svn_user_get_homedir(pool);
     if (! homedir)
diff -urN subversion-1.6.12/subversion/libsvn_subr/config_impl.h
subversion-1.6.12-haiku/subversion/libsvn_subr/config_impl.h
--- subversion-1.6.12/subversion/libsvn_subr/config_impl.h      2009-01-27
05:23:50.045350912 -0800
+++ subversion-1.6.12-haiku/subversion/libsvn_subr/config_impl.h        
2010-03-15
22:39:34.000000000 -0700
@@ -109,7 +109,10 @@
    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   "subversion"
+#  define SVN_CONFIG__USR_DIRECTORY   "subversion"
+#else  /* ! WIN32 && ! __HAIKU__ */
 #  define SVN_CONFIG__SYS_DIRECTORY   "/etc/subversion"
 #  define SVN_CONFIG__USR_DIRECTORY   ".subversion"
 #endif /* WIN32 */


------------------------
-------------------------1.7.xx-svn.patch
Index: libsvn_subr/config_file.c
===================================================================
--- subversion-1.7.xx-svn/subversion/libsvn_subr/config_file.c  (revision
1002735)
+++ subversion-1.7.xx-svn/subversion/libsvn_subr/config_file.c  (working copy)
@@ -38,6 +38,11 @@

 #include "svn_private_config.h"

+#ifdef __HAIKU__
+#  include <FindDirectory.h>
+#  include <StorageDefs.h>
+#endif
+
 /* Used to terminate lines in large multi-line string literals. */
 #define NL APR_EOL_STR

@@ -331,8 +336,20 @@
                                    SVN_CONFIG__SUBDIRECTORY, fname, NULL);
   }

-#else  /* ! WIN32 */
+#elif defined(__HAIKU__)
+  {
+    char folder[B_PATH_NAME_LENGTH];

+    status_t error = find_directory(B_COMMON_SETTINGS_DIRECTORY, -1, false,
+                                    folder, sizeof(folder));
+    if (error)
+      return SVN_NO_ERROR;
+
+    *path_p = svn_dirent_join_many(pool, folder,
+                                   SVN_CONFIG__SYS_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__ */
+
+  {
     const char *homedir = svn_user_get_homedir(pool);
     if (! homedir)
       return SVN_NO_ERROR;
Index: libsvn_subr/config_impl.h
===================================================================
--- subversion-1.7.xx-svn/subversion/libsvn_subr/config_impl.h  (revision
1002735)
+++ subversion-1.7.xx-svn/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   "subversion"
+#  define SVN_CONFIG__USR_DIRECTORY   "subversion"
+#else  /* ! WIN32 && ! __HAIKU__ */
+#  define SVN_CONFIG__SYS_DIRECTORY   "/etc/subversion"
 #  define SVN_CONFIG__USR_DIRECTORY   ".subversion"
 #endif /* WIN32 */

-------------------------------------

Reply via email to