func: svn_error_t *svn_config_ensure(const char *config_dir,apr_pool_t *pool) const char * path ; svn_node_kind_t kind ; svn_error_t * err ; svn_error_t * svn_err__temp = svn_config_get_user_config_path ( & path , config_dir , ( ( void * ) 0 ) , pool ) ; svn_error_t *svn_config_get_user_config_path(const char **path,const char *config_dir,const char *fname,apr_pool_t *pool) if ( config_dir )  return 0 ; return 0 ; if ( svn_err__temp )  while ( 0 )  if ( ! path )  err = svn_io_check_resolved_path ( path , & kind , pool ); if ( err )  if ( kind == svn_node_none )  err = svn_io_dir_make ( path , 0x0FFF , pool ); if ( err )  if ( kind == svn_node_file )  svn_error_t * svn_err__temp = svn_config_get_user_config_path ( & path , config_dir , "README.txt" , pool ) ; svn_error_t *svn_config_get_user_config_path(const char **path,const char *config_dir,const char *fname,apr_pool_t *pool) if ( config_dir )  return 0 ; return 0 ; if ( svn_err__temp )  while ( 0 )  if ( ! path )  err = svn_io_check_path ( path , & kind , pool ); if ( err )  if ( kind == svn_node_none )  apr_file_t * f ; const char * contents = "This directory holds run-time configuration information for Subversion\nclients.  The configuration files all share the same syntax, but you\nshould examine a particular file to learn what configuration\ndirectives are valid for that file.\n\nThe syntax is standard INI format:\n\n   - Empty lines, and lines starting with '#', are ignored.\n     The first significant line in a file must be a section header.\n\n   - A section starts with a section header, which must start in\n     the first column:\n\n       [section-name]\n\n   - An option, which must always appear within a section, is a pair\n     (name, value).  There are two valid forms for defining an\n     option, both of which must start in the first column:\n\n       name: value\n       name = value\n\n     Whitespace around the separator (:, =) is optional.\n\n   - Section and option names are case-insensitive, but case is\n     preserved.\n\n   - An option's value may be broken into several lines.  The value\n     continuation lines must start with at least one whitespace.\n     Trailing whitespace in the previous line, the newline character\n     and the leading whitespace in the continuation line is compressed\n     into a single space character.\n\n   - All leading and trailing whitespace around a value is trimmed,\n     but the whitespace within a value is preserved, with the\n     exception of whitespace around line continuations, as\n     described above.\n\n   - When a value is a boolean, any of the following strings are\n     recognised as truth values (case does not matter):\n\n       true      false\n       yes       no\n       on        off\n       1         0\n\n   - When a value is a list, it is comma-separated.  Again, the\n     whitespace around each element of the list is trimmed.\n\n   - Option values may be expanded within a value by enclosing the\n     option name in parentheses, preceded by a percent sign and\n     followed by an 's':\n\n       %(name)s\n\n     The expansion is performed recursively and on demand, during\n     svn_option_get.  The name is first searched for in the same\n     section, then in the special [DEFAULT] section. If the name\n     is not found, the whole '%(name)s' placeholder is left\n     unchanged.\n\n     Any modifications to the configuration data invalidate all\n     previously expanded values, so that the next svn_option_get\n     will take the modifications into account.\n\nThe syntax of the configuration files is a subset of the one used by\nPython's ConfigParser module; see\n\n   http://www.python.org/doc/current/lib/module-ConfigParser.html\n\nConfiguration data in the Windows registry\n==========================================\n\nOn Windows, configuration data may also be stored in the registry. The\nfunctions svn_config_read and svn_config_merge will read from the\nregistry when passed file names of the form:\n\n   REGISTRY:<hive>/path/to/config-key\n\nThe REGISTRY: prefix must be in upper case. The <hive> part must be\none of:\n\n   HKLM for HKEY_LOCAL_MACHINE\n   HKCU for HKEY_CURRENT_USER\n\nThe values in config-key represent the options in the [DEFAULT] section.\nThe keys below config-key represent other sections, and their values\nrepresent the options. Only values of type REG_SZ whose name doesn't\nstart with a '#' will be used; other values, as well as the keys'\ndefault values, will be ignored.\n\n\nFile locations\n==============\n\nTypically, Subversion uses two config directories, one for site-wide\nconfiguration,\n\n  Unix:\n    /etc/subversion/servers\n    /etc/subversion/config\n    /etc/subversion/hairstyles\n  Windows:\n    %ALLUSERSPROFILE%\\Application Data\\Subversion\\servers\n    %ALLUSERSPROFILE%\\Application Data\\Subversion\\config\n    %ALLUSERSPROFILE%\\Application Data\\Subversion\\hairstyles\n    REGISTRY:HKLM\\Software\\Tigris.org\\Subversion\\Servers\n    REGISTRY:HKLM\\Software\\Tigris.org\\Subversion\\Config\n    REGISTRY:HKLM\\Software\\Tigris.org\\Subversion\\Hairstyles\n\nand one for per-user configuration:\n\n  Unix:\n    ~/.subversion/servers\n    ~/.subversion/config\n    ~/.subversion/hairstyles\n  Windows:\n    %APPDATA%\\Subversion\\servers\n    %APPDATA%\\Subversion\\config\n    %APPDATA%\\Subversion\\hairstyles\n    REGISTRY:HKCU\\Software\\Tigris.org\\Subversion\\Servers\n    REGISTRY:HKCU\\Software\\Tigris.org\\Subversion\\Config\n    REGISTRY:HKCU\\Software\\Tigris.org\\Subversion\\Hairstyles\n\n" ; err = svn_io_file_open ( & f , path , 0x0002 | 0x00004 | 0x00040 , 0x0FFF , pool ); if ( ! err )  svn_error_t * svn_err__temp = svn_io_file_write_full ( f , contents , strlen ( contents ) , ( ( void * ) 0 ) , pool ) ; if ( svn_err__temp )  return svn_err__temp ; while ( 0 )  