Use getEnviron() to remove some redundancy.
Handle failure of svnGenInfo() on invalid path.
Add newline to mergeraw help text.
Add --debug flag.
Leave peg revision unmolested after keyword (e.g., "tr:@55").
Re-implement "svn switch" using new adjustUrlForWcPath() function.
Handle peg revisions in adjustUrlForWcPath().
Adjust URL tail(s) for "svn merge".
Catch keyboard interrupt and exit quietly.
Unify windows platform detection logic.
Rename svnwrap .init routines and add support Subversion config.
Stop capturing "svn" stderr output.

stderr does not need to be higlighted or squelched, and it sometimes
contains prompt strings as partial lines that the wrapping logic cannot
display until a subsequent unrelated newline comes along.  This is
particularly true during a merge conflict, where stderr contains
a menu ending in a partial line, e.g.:

Select: (p) postpone, (df) diff-full, (e) edit,
        (mc) mine-conflict, (tc) theirs-conflict,
        (s) show all options:  <== cursor ends up here
Add "exectty" subcommand for use when svn launches an editor.

Sometimes svn wants to launch an editor, such as when a merge conflict
occurs.  When svnwrap is capturing stdout (for example, to highlight the
output), it has stdout connected to a pipe, which is unsuitable for an
editor.  The "exectty" subcommand allows svnwrap itself to be a
front-end for the editor.  It duplicates the stderr file descriptor
(which presumably is still connected to the terminal) onto stdout, then
re-execs the passed-in command-line options.  With the present change,
svnwrap now detects the configured editor and inserts "svnwrap exectty "
in front of the original editor definition, allowing stdout to be
re-connected to the terminal.
Switch to double-quotes throughout.
Remove dead code.
Remove space around "=" in parameter defaults.
Update documentation.
Unify case of error strings.
Detect subprocess errors and warn about them.
Refactor URL joining logic, and add "ws:" keyword.