Index: main.c =================================================================== --- main.c (revision 17054) +++ main.c (working copy) @@ -69,7 +69,7 @@ const apr_getopt_option_t svn_cl__option {"quiet", 'q', 0, N_("print as little as possible")}, {"recursive", 'R', 0, N_("descend recursively")}, {"non-recursive", 'N', 0, N_("operate on single directory only")}, - {"change", 'c', 1, N_("Shorthand for the revision range NUMBER-1:NUMBER")}, + {"change", 'c', 1, N_("the change made by revision ARG (like -r ARG-1:ARG)")}, {"revision", 'r', 1, N_ ("ARG (some commands also take ARG1:ARG2 range)\n" " A revision argument can be one of:\n" @@ -934,7 +934,7 @@ main (int argc, const char * const *argv if (end == opt_arg || *end != '\0') { err = svn_error_create (SVN_ERR_CL_ARG_PARSING_ERROR, NULL, - _("Non-numeric change argument given")); + _("Non-numeric change argument given to -c")); return svn_cmdline_handle_exit_error (err, pool, "svn: "); } else if (opt_state.end_revision.value.number == 0) @@ -943,6 +943,12 @@ main (int argc, const char * const *argv _("There is no change 0")); return svn_cmdline_handle_exit_error (err, pool, "svn: "); } + else if (opt_state.end_revision.value.number < 0) + { + err = svn_error_create (SVN_ERR_CL_ARG_PARSING_ERROR, NULL, + _("Argument to -c must be positive")); + return svn_cmdline_handle_exit_error (err, pool, "svn: "); + } opt_state.start_revision.value.number = opt_state.end_revision.value.number - 1; opt_state.start_revision.kind = svn_opt_revision_number; } @@ -953,7 +959,7 @@ main (int argc, const char * const *argv err = svn_error_create (SVN_ERR_CL_ARG_PARSING_ERROR, NULL, _("Multiple revision arguments encountered; " - "can't specifiy -r and -c, or" + "can't specify -r and -c, or " "try '-r M:N' instead of '-r M -r N'")); return svn_cmdline_handle_exit_error (err, pool, "svn: "); }