Index: include/svn_config.h
===================================================================
--- include/svn_config.h	(revision 6372)
+++ include/svn_config.h	(working copy)
@@ -76,6 +76,7 @@ typedef struct svn_config_t svn_config_t
 #define SVN_CONFIG_SECTION_HELPERS              "helpers"
 #define SVN_CONFIG_OPTION_EDITOR_CMD                "editor-cmd"
 #define SVN_CONFIG_OPTION_DIFF_CMD                  "diff-cmd"
+#define SVN_CONFIG_OPTION_DIFF_X                  "diff-x"
 #define SVN_CONFIG_OPTION_DIFF3_CMD                 "diff3-cmd"
 #define SVN_CONFIG_OPTION_DIFF3_HAS_PROGRAM_ARG     "diff3-has-program-arg"
 #define SVN_CONFIG_SECTION_MISCELLANY           "miscellany"
Index: libsvn_subr/config_file.c
===================================================================
--- libsvn_subr/config_file.c	(revision 6372)
+++ libsvn_subr/config_file.c	(working copy)
@@ -926,6 +926,7 @@ svn_config_ensure (apr_pool_t *pool)
         "# [helpers]\n"
         "# editor-cmd = editor (vi, emacs, notepad, etc.)\n"
         "# diff-cmd = diff_program (diff, gdiff, etc.)\n"
+        "# diff-x = default parameters for diff_program\n"
         "# diff3-cmd = diff3_program (diff3, gdiff3, etc.)\n"
         "# diff3-has-program-arg = [true | false]\n"
         "\n"
Index: clients/cmdline/diff-cmd.c
===================================================================
--- clients/cmdline/diff-cmd.c	(revision 6372)
+++ clients/cmdline/diff-cmd.c	(working copy)
@@ -26,6 +26,7 @@
 #include "svn_pools.h"
 #include "svn_client.h"
 #include "svn_string.h"
+#include "svn_config.h"
 #include "svn_path.h"
 #include "svn_delta.h"
 #include "svn_error.h"
@@ -43,15 +44,28 @@ svn_cl__diff (apr_getopt_t *os,
               apr_pool_t *pool)
 {
   svn_cl__opt_state_t *opt_state = ((svn_cl__cmd_baton_t *) baton)->opt_state;
+  svn_client_ctx_t *ctx = ((svn_cl__cmd_baton_t *) baton)->ctx;
   apr_array_header_t *options;
   apr_array_header_t *targets;
   apr_file_t *outfile, *errfile;
   apr_status_t status;
   const char *old_target, *new_target;
+  const char *extensions;
   apr_pool_t *subpool;
   int i;
 
-  options = svn_cstring_split (opt_state->extensions, " \t\n\r", TRUE, pool);
+  if (! opt_state->extensions)
+    {
+      svn_config_t *cfg = apr_hash_get (ctx->config,
+                                        SVN_CONFIG_CATEGORY_CONFIG,
+                                        APR_HASH_KEY_STRING);
+      svn_config_get (cfg, &extensions, SVN_CONFIG_SECTION_HELPERS,
+                      SVN_CONFIG_OPTION_DIFF_X, NULL);
+    }
+  else 
+    extensions = opt_state->extensions;
+
+  options = svn_cstring_split (extensions, " \t\n\r", TRUE, pool);
 
   /* Get an apr_file_t representing stdout and stderr, which is where
      we'll have the external 'diff' program print to. */


