public function update_config()
 {
     # Prevent more than one SVN class from handling form elements.
     if (!SourceSVNPlugin::$config_form_handled) {
         SourceSVNPlugin::$config_form_handled = true;
         $f_svnpath = gpc_get_string('plugin_SourceSVN_svnpath', '');
         $t_svnpath = config_get('plugin_SourceSVN_svnpath', '');
         $f_svnpath = rtrim($f_svnpath, DIRECTORY_SEPARATOR);
         if ($f_svnpath != $t_svnpath) {
             if (is_blank($f_svnpath)) {
                 config_delete('plugin_SourceSVN_svnpath');
             } else {
                 # be sure that the path is valid
                 if (($t_binary = SourceSVNPlugin::svn_binary($f_svnpath, true)) != 'svn') {
                     config_set('plugin_SourceSVN_svnpath', $f_svnpath);
                 } else {
                     plugin_error('SVNPathInvalid', ERROR);
                 }
             }
         }
         $f_svnargs = gpc_get_string('plugin_SourceSVN_svnargs', '');
         if ($f_svnargs != config_get('plugin_SourceSVN_svnargs', '')) {
             config_set('plugin_SourceSVN_svnargs', $f_svnargs);
         }
         $f_svnssl = gpc_get_bool('plugin_SourceSVN_svnssl', false);
         if ($f_svnssl != config_get('plugin_SourceSVN_svnssl', false)) {
             config_set('plugin_SourceSVN_svnssl', $f_svnssl);
         }
         $f_winstart = gpc_get_bool('plugin_SourceSVN_winstart', false);
         if ($f_winstart != config_get('plugin_SourceSVN_winstart', false)) {
             config_set('plugin_SourceSVN_winstart', $f_winstart);
         }
     }
 }