Make the path@rev syntax available to any subcommand that wants it. Right now, the only subcommands that use it are diff and merge.
[ Folks who are discussing the correctness of this "@" syntax: feel free to toy with alteratives, I'm pretty indifferent. The function doing the parsing is cmdilne/util.c:parse_path ]
* merge-cmd.c (svn_cl__merge): simplify logic.
(parse_path): remove static func from here....
* util.c (parse_path): re-add here, as a helper args_to_target_array.
(svn_cl__args_to_target_array): new boolean flag. this routine, which is called by every svn_cl__foo_subcommand, now has the optional ability to strip @rev syntax from paths and write the values into the opt_state structure.
* cl.h (svn_cl__args_to_target_array): take a new boolean flag.
* svn_error_codes.h (SVN_ERR_CL_INSUFFICIENT_ARGS): new error code.
* diff-cmd.c (svn_cl__diff): pass TRUE to args_to_target_array's new 'extract_revisions' flag.
* delete-cmd.c (svn_cl__delete): pass FALSE to args_to_target_array's new 'extract_revisions' flag.
(svn_string_from_file): Detect when a filename is "-", which would signify reading from stdin. Right now we return an error for not-supported. Read the comments for why.
(svn_string_from_aprfile): Use apr_file_read() instead of apr_file_read_full(). This is needed in order to read from stdin, since apr_file_read_full requires that we stat the file, which you can't do on stdin.
Add --targets option, for reading file/url arguments from a file. Allow this option for the add, commit, delete, log, propset and revert. Maybe others could use it aswell, but for now, this is it.
(svn_cl__args_to_target_array): Require opt_state to be passed as an argument. Use this to add on further arguments in addition to the ones on the command line, using the targets array.
(svn_cl__newlinelist_to_array): New function. Used to turn a newline seperated string into an array of stringbuf's.
(svn_cl__stringlist_to_array): Use apr_isspace instead of isspace.
Update svn_cl__opt_state_t to include targets array for --targets option. Update decleration of svn_cl__args_to_target_array. Add decleration for svn_cl__newlinelist_to_array. Add svn_cl__targets_opt to svn_cl_longopt_t.
* cmdline/man/svn.1: Add --targets option to list.