Checkout Tools
  • last updated 5 hours ago
Constraints: committers
Constraints: files
Constraints: dates

Changeset 872438 is being indexed.

Purge AS400 port specific code.

The AS400 port is no longer maintained nor does anyone have plans to

maintain it. That's not so bad, but keeping the port code consistent with

changes made to trunk is becoming rather difficult, see

* subversion/include/svn_utf.h

* subversion/libsvn_client/add.c

* subversion/libsvn_ra_svn/streams.c

* subversion/libsvn_subr/cmdline.c

* subversion/libsvn_subr/io.c

* subversion/libsvn_subr/prompt.c

* subversion/libsvn_subr/utf.c

* subversion/svn/main.c

* subversion/svn/util.c

* subversion/svnlook/main.c

* subversion/tests/libsvn_ra_local/ra-local-test.c

* subversion/tests/libsvn_subr/target-test.c

Remove AS400 blocked code and related comments.

  1. … 12 more files in changeset.
Cache SSL client certificate passphrases, when user indicates it's okay.

This resolves issue #2489, and prompted issues #3238, #3239, and #3236.

Patch by: stylesen

(Tweaked by kfogel.)

* subversion/include/svn_config.h



for storing SSL client cert passphrase at all and for storing it

as plaintext, respectively.



* subversion/libsvn_subr/config_file.c

(ensure_auth_dirs): Create new auth dir to store ssl client cert passphrase.

(svn_config_ensure): Add doc for the new options in the servers file string.

* subversion/libsvn_ra/ra_loader.c

(svn_ra_open3): Load above new options from servers config file.

* subversion/libsvn_subr/cmdline.c

(get_auth_simple_provider): Rename to...

(get_auth_provider): ...this. Take a new argument provider_type

and use it to get the right provider. Document this function.

(svn_cmdline_setup_auth_baton): If we have gnome keyring support get the

corresponding ssl client cert passphrase provider.

* subversion/libsvn_subr/prompt.c

(plaintext_prompt_helper): New helper function, abstracts out the

logic for plaintext promting.

(svn_cmdline_auth_plaintext_prompt): Just wrap above new helper.

(svn_cmdline_auth_plaintext_passphrase_prompt): New function, also

using above new helper.

* subversion/libsvn_subr/ssl_client_cert_pw_providers.c: Include

svn_auth_private.h and svn_private_config.h.

(AUTHN_PASSPHRASE_KEY): Define passphrase key.

(AUTHN_PASSTYPE_KEY): Define passtype key.

(ssl_client_cert_pw_file_provider_baton_t): New baton for ssl client cert

passphrase provider.

(simple_passphrase_get): New function to get plaintext passphrase.

(simple_passphrase_set): New function to store plaintext passphrase.

(svn_auth__ssl_client_cert_pw_file_first_creds_helper): New internal

API, abstracted out from...

(ssl_client_cert_pw_file_first_credentials):, which just

wraps the above now.

(svn_auth__ssl_client_cert_pw_file_save_creds_helper): New internal

API, abstracted out from...

(ssl_client_cert_pw_file_save_credentials):, which just

wraps the above now.

(ssl_client_cert_pw_file_provider): Register above to save the credentials.

(svn_auth_get_ssl_client_cert_pw_file_provider2): New public API which has

a prompt function now.

(svn_auth_get_ssl_client_cert_pw_file_provider): Update API for the above.

* subversion/include/private/svn_auth_private.h

(svn_auth__ssl_client_cert_pw_file_first_creds_helper): Declare new API.

(svn_auth__ssl_client_cert_pw_file_save_creds_helper): Declare new API.

* subversion/libsvn_auth_gnome_keyring/gnome_keyring.c

(gnome_keyring_ssl_client_cert_pw_first_creds): New function to get ssl

client cert passphrase from encrypted credentials.

(gnome_keyring_ssl_client_cert_pw_save_creds): New function to save

encrypted ssl client cert passphrase.

(gnome_keyring_ssl_client_cert_pw_provider): New baton.

(svn_auth_get_gnome_keyring_ssl_client_cert_pw_provider): New public API for

gnome keyring based ssl client cert passphrase storage and retrieval.

* subversion/include/svn_auth_dso.h

(svn_auth_get_gnome_keyring_ssl_client_cert_pw_provider): New public API.

* subversion/include/svn_cmdline.h

(svn_cmdline_auth_plaintext_passphrase_prompt): New public API added to

prompt for storing plaintext passphrases.

* subversion/include/svn_auth.h

(svn_auth_ssl_client_cert_pw_provider_func_t): Define function type for the


(svn_auth_plaintext_passphrase_prompt_func_t): New function prototype.



(svn_auth_get_ssl_client_cert_pw_file_provider2): New public API.

* subversion/libsvn_ra_neon/session.c

(client_ssl_decrypt_cert): Call svn_auth_save_credentials to save

the ssl client certificate passphrase.

  1. … 11 more files in changeset.
Resolve issue #2597: Add --trust-server-cert option to svn and svnsync,

so that non-interactive operations can work with (e.g.) self-signed

certificates not backed by a known trust authority.

Set up some shared infrastructure:

* subversion/include/svn_cmdline.h

(svn_cmdline_setup_auth_baton): Deprecate, replace with...

(svn_cmdline_set_up_auth_baton): ...this, which takes a new boolean

parameter trust_server_cert.

* subversion/libsvn_subr/cmdline.c

(ssl_trust_unknown_server_cert): New function.

(svn_cmdline_setup_auth_baton): Just wrap below.

(svn_cmdline_set_up_auth_baton): New function, based on above. If

both non_interactive and the new parameter trust_server_cert are

true, then register ssl_trust_unknown_server_cert as a provider.

Add the new option to 'svn':

* subversion/svn/cl.h

(svn_cl__opt_state_t): New boolean trust_server_cert.

* subversion/svn/main.c

(svn_cl__options): Add new "trust-server-cert" option.

(svn_cl__longopt_t): New opt_trust_server_cert enum.

(svn_cl__global_options): Add opt_trust_server_cert to this list.

(main): Parse the new option, do the expect things with the result.

Add the new option to 'svnsync':

* subversion/svnsync/main.c

(svnsync_opt_trust_server_cert): New opt enum.

(SVNSYNC_OPTS_DEFAULT, svnsync_options): List the new option.

(struct opt_baton_t): New field trust_server_cert.

(main): Parse the new option, do the expect things with the result.

Update the expected help output for the tests:

* subversion/tests/cmdline/getopt_tests_data/svn_help_log_switch_stdout:

Adjust for above.

  1. … 5 more files in changeset.
Merge the dont-save-plaintext-passwords-by-default branch into trunk.

Summary of the functionality implemented:

- Add a 'store-plaintext-passwords' option, which can be set to

'yes', 'no', or 'ask' (which is the default). If the option

is set to 'ask', ask the user before saving plaintext passwords

to disk. This is done from a callback that should be implemented

by all clients. The callback is called once per authentication realm.

If a client does not implement the callback, and does not provide

an explicit default value, we default to storing plaintext passwords.

I don't like this, but it's a compromise because we don't really want

the semantics of the old API to change retroactively.

We can, however, change this default anytime by tweaking a single

line of code, should we decide to do so. The old API has been deprecated.

- Provide an implementation of the callback for our command line

client, which, in addition to prompting, prints a warning explaining

that the password can only be stored unencrypted, and shows the name

of the authentication realm in question.

- Authentication parameter configuration has been moved to the

RA layer completely. For users, this means that parameters

which used to be configured in the [auth] section in the 'config'

file are now configured in the 'servers' file, and can be specified

both in the [global] section, and per server group. The [auth]

section in 'config' is still being evaluated, but is overridden

by anything specified in 'servers'.

Please consult the log messages of the branch for a detailed list

of all changes.

  1. … 13 more files in changeset.
Set output buffering mode early during command-line initialization processing.

* subversion/include/svn_cmdline.h

(svn_cmdline_init): Indicate that stdout and ERROR_STREAM will have

their buffering mode changed to line-based and unbuffered

(character-based, really), respectively.

* subversion/libsvn_subr/cmdline.c

Bump copyright date. Include stdio.h.

(svn_cmdline_init): Call setvbuf() on stdout and ERROR_STREAM (which

is typically stderr).

Suggested by: epg


Reviewed by: epg


  1. … 1 more file in changeset.
Allow CTRL-C to work during interactive conflict resolution


* subversion/include/svn_cmdline.h

(svn_cmdline_prompt_user2): Rev API to take a


* subversion/libsvn_subr/prompt.c

(svn_cmdline_prompt_user2): New version of API, passing the baton

through to prompt().

(svn_cmdline_prompt_user): Deprecate.

* subversion/svn/conflict-callbacks.c

(svn_cl__interactive_conflict_handler): Treat baton as a

svn_cmdline_prompt_baton_t and pass it through to


* subversion/svn/main.c

(main): If using the interactive conflict handler, set up a

cancellation baton for it.

  1. … 3 more files in changeset.
Channeling Erik Hülsmann, remove all trailing whitespace within our source


for extsn in c h cpp java py pl rb; do

sed -i -e 's/[ \t]*$//' `find . -name "*.$extsn" | xargs grep '[ \t]$' -l`


Inspired by: ehu

  1. … 449 more files in changeset.
1.4.x API: Fix svn_cmdline__getopt_init() to obey pool parameter


* subversion/include/svn_cmdline.h (svn_cmdline__getopt_init),

* subversion/libsvn_subr/cmdline.c (svn_cmdline__getopt_init):

Re-order parameters.

* subversion/svn/main.c (main),

* subversion/svnadmin/main.c (main),

* subversion/svndumpfilter/main.c (main),

* subversion/svnlook/main.c (main),

* subversion/svnserve/main.c (main),

* subversion/svnsync/main.c (main),

* subversion/svnversion/main.c (main),

* subversion/tests/svn_test_main.c (main):

Adjust calls.

  1. … 9 more files in changeset.
API: Use named, not anonymous, structs and enums in new-in-1.4 cases, for

consistency with the majority of existing cases.

* subversion/include/svn_io.h (svn_io_file_del_t)

* subversion/include/svn_cmdline.h (svn_cmdline_prompt_baton_t)

  1. … 1 more file in changeset.
Add missing '@since New in 1.4.' notations found in 1.3->1.4 API review.

* subversion/include/svn_cmdline.h

* subversion/include/svn_io.h

* subversion/include/svn_ra.h

  1. … 2 more files in changeset.
Make doc-comments consistent with function declarations by correcting

references to function arguments that don't exist.

[in subversion/include/]

* svn_diff.h, svn_fs.h, svn_repos.h, svn_delta.h, svn_props.h,

svn_config.h, svn_string.h, svn_cmdline.h, svn_ra.h, svn_opt.h

Correct simple typos in references to argument names.


* svn_fs.h

(svn_fs_txn_proplist): Don't refer to non-existent argument 'fs'.

* svn_delta.h

(svn_txdelta_md5_digest): Don't mark 'md5' as an argument.

(svn_txdelta_skip_svndiff_window): Correct doc-comment to remove reference

to non-existent 'window' argument.

* svn_path.h

(svn_path_condense_targets): Use <tt>...</tt> to indicate a type, not @a.

* svn_subst.h

(svn_subst_detranslate_string): Rename argument 'for_stdout' in

function declaration to 'for_output', matching doc-comments and

function definition.

* svn_xml.h

(svn_xml_parse): Rename argument 'parser' in function declaration to

'svn_parser', matching doc-comments and function definition.

* svn_config.h

(svn_config_enumerate_sections2): Remove duplicate reference to the

callback's 'name' field.

* svn_string.h

(svn_stringbuf_chop): Rename argument 'bytes' in function declaration to

'nbytes', matching doc-comments and function definition.

* svn_io.h

(svn_io_run_diff3_2): Move a misplaced @c modifier.

(svn_io_run_diff3): Don't mark another function name as an argument.

* svn_wc.h

(svn_wc_match_ignore_list): Use lowercase names for arguments.

* svn_client.h

(svn_client_merge2, svn_client_revert): Don't mark 'true' as an argument.

(svn_client_proplist2): Consistently mark 'item' as an argument.

* svn_pools.h

(svn_pool_create): Rename argument 'pool' in macro definition to

'parent_pool', matching doc-comment and called function.

  1. … 16 more files in changeset.
OS400/EBCDIC Port: Convert command-line arguments from EBCDIC to UTF-8.

This is one of several patches to allow Subversion to run on IBM's

OS400 V5R4. Despite IBM's building of APR/Apache with UTF support in

V5R4, command line arguments to main() are still encoded in EBCDIC.

To avoid const restrictions and allow EBCDIC to UTF-8 conversion of

command line arguments in place, the signature of main() in all command

line programs is standardized to main(int argc, const char *argv[]).

Approved by: Julian Foad <>

Suggestions by: Julian, Philip Martin <>, and

Brane <>

* subversion/include/svn_cmdline.h

Include apr_getopt.h

(svn_cmdline__getopt_init): New function declaration.

* subversion/libsvn_subr/cmdline.c

(SVN_UTF_ETOU_XLATE_HANDLE): New xlate key for EBCDIC (CCSID 0) to

UTF-8 (CCSID 1208) conversions.

(svn_cmdline__getopt_init): New function definition.

* subversion/svn/main.c

* subversion/svnadmin/main.c

* subversion/svndumpfilter/main.c

* subversion/svnlook/main.c

* subversion/svnserve/main.c

* subversion/svnsync/main.c

* subversion/svnversion/main.c

(main): Standardize signature and replace call to apr_getopt_init()

with new wrapper function svn_cmdline__getopt_init().

  1. … 8 more files in changeset.
Reformat the code to use a consistent no-space-before-param-list-paren style.

See here for the vote that decided this:

From: "Peter N. Lundblad" <>

To: "Peter N. Lundblad" <>


Subject: Results of: [VOTE] New space-before-parens style

Date: Wed, 8 Feb 2006 12:00:35 +0100 (CET)

Message-ID: <Pine.LNX.4.55.0602080918350.10805@localhost.localdomain>

I took the opportunity to make spacing among all parens in SVN_ERR

macro calls consistent. But I did not address consistency of casts,

nor whether a function name should always appear below its return type

in declarations and definitions, nor whether there should be a space

before/after the "*" when declaring pointer return types.

* www/hacking.html

(coding-style): Document that we are no-space-before-paren now.

* everywhere: Reformat.

  1. … 365 more files in changeset.
Move the command line client's auth baton setup into libsvn_subr so it

can be reused by other applications.

* subversion/include/svn_cmdline.h

(svn_cmdline_setup_auth_baton): New function prototype.

* subversion/libsvn_subr/cmdline.c

(svn_cmdline_setup_auth_baton): New function, holds the logic that

used to live in the command line client.

* subversion/clients/cmdline/main.c

(main): Use svn_cmdline_setup_auth_baton to set up our auth baton.

  1. … 2 more files in changeset.
Move the command line client's prompting code into libsvn_subr, so that

it can be reused by other client programs. This is a precursor to moving

the code that sets up auth batons there, so that multiple clients can

have the same behavior with regard to auth without copying large amounts

of code.

* subversion/include/svn_cmdline.h





svn_cmdline_auth_ssl_client_cert_prompt): New prototypes, formerly

located in the command line client.

(svn_cmdline_prompt_baton_t): New baton, holds cancellation function

and baton for the prompting functions.

* subversion/clients/cmdline/prompt.c: Move to...

* subversion/libsvn_subr/prompt.c: Here, with the following changes.

(prompt): take a svn_cmdline_prompt_baton_t, not a svn_client_ctx_t.

(svn_cl__auth_simple_prompt): Rename to...

(svn_cmdline_auth_simple_prompt): This. Also use a prompt baton, not

a client context.

(svn_cl__auth_username_prompt): Rename to...

(svn_cmdline_auth_username_prompt): This. Also use a prompt baton,

not a client context.

(svn_cl__auth_ssl_server_trust_prompt): Rename to...

(svn_cmdline_auth_ssl_server_trust_prompt): This. Also use a prompt

baton, not a client context.

(svn_cl__auth_ssl_client_cert_prompt): Rename to...

(svn_cmdline_auth_ssl_client_cert_prompt): This. Also use a prompt

baton, not a client context.

(svn_cl__auth_ssl_client_cert_pw_prompt): Rename to...

(svn_cmdline_auth_ssl_client_cert_pw_prompt): This. Also use a prompt

baton, not a client context.

(svn_cl__prompt_user): Rename to...

(svn_cmdline_prompt_user): This. Also use a prompt baton, not a

client context.

* subversion/clients/cmdline/cl.h






svn_cl__auth_ssl_client_cert_pw_prompt): removed.

* subversion/clients/cmdline/util.c

(svn_cl__get_log_message): adjust for moving of prompt functions.

* subversion/clients/cmdline/main.c

(main): ditto.

  1. … 5 more files in changeset.
Finish the abstraction started in r15240 and r15241: Define the standard

command-line error handler in one place instead of N places.

* subversion/include/svn_cmdline.h, subversion/libsvn_subr/cmdline.c

(svn_cmdline_handle_exit_error): New function.

* subversion/clients/cmdline/main.c

(error_exit): Remove.

(main): Use svn_cmdline_handle_exit_error.

* subversion/svnlook/main.c

(error_exit): Remove.

(main): Use svn_cmdline_handle_exit_error.

* subversion/svnadmin/main.c

(error_exit): Remove.

(main): Use svn_cmdline_handle_exit_error.

* subversion/svndumpfilter/main.c

(error_exit): Remove.

(main): Use svn_cmdline_handle_exit_error.

  1. … 5 more files in changeset.
* subversion/include/svn_cmdline.h: Fix a typo.

Approved by: +1: rooneg

Fix issue #1533: Make svn diff output headers in the output encoding.

* subversion/include/svn_diff.h (svn_diff_file_output_unified2): New function,

adding the header_encoding argument.

(svn_diff_file_output_unified): Deprecate.

* subversion/include/svn_io.h (svn_stream_printf_from_utf8),

* subversion/include/svn_cmdline.h (svn_cmdline_output_encoding): New function.

* subversion/include/svn_client.h (svn_client_diff3, svn_client_diff_peg3):

New functions, adding header_encoding argument.

(svn_client_diff2, svn_client_diff_peg2): Deprecate.

* subversion/libsvn_diff/diff_file.c

(svn_diff__file_output_baton_t): Add header_encoding, context_str,

delete_str and insert_str members.

(svn_diff__file_output_unified_line): Use new *_str members in baton to

output markers. Translate headers to the header encoding. Mark a string

for translation.

(svn_diff__file_output_unified_flush_hunk): Translate headers to header


(svn_diff_file_output_unified2): Rename from below. Add header_encoding

argument. Initialize new baton members. Translate headers to header


(svn_diff_file_output_unified): New function, wrapping above.

* subversion/libsvn_subr/cmdline.c (svn_cmdline_output_encoding): New function.

* subversion/libsvn_subr/stream.c (svn_stream_printf): Fix whitespace.

(svn_stream_printf_from_utf8): New function.

* subversion/svnlook/main.c (print_diff_tree): Don't use deprecated functioin;

output in output encoding.

* subversion/libsvn_client/diff.c: Change comments referring to

svn_client_diff2 to talk about svn_client_diff3.

(file_printf_from_utf8): Add encoding argument. Callers updated.

Translate to that encoding. Whitespace fix.

(display_prop_diffs): Add encoding argument, translating output to that

encoding. Callers updated.

(diff_cmd_baton): Add header_encoding member.

(diff_content_changed): Output headers in header encoding.

(svn_client_diff3, svn_client_diff_peg3): Rename from below, adding

header_encoding argument. Initialize baton member with the same name.

(svn_client_diff2, svn_client_diff_peg2): New function, wrapping the above.

* subversion/clients/cmdline/diff-cmd.c (svn_cl__diff): Don't use

deprecated functions; translate diff output to output encoding.

  1. … 9 more files in changeset.
Doxygen fixes.

* subversion/include/svn_cmdline.h: Docstring style fixes.

(svn_cmdline_printf, svn_cmdline_fprintf, svn_cmdline_fputs,

svn_cmdline_fflush): Add @since New in 1.1.

In API doc strings, refer to a function name with "()", and not with "@c",

for neatness and so that Doxygen recognises it as such. Previously there

was a complete mixture of "@c", "()", both and neither.

* subversion/include/svn_auth.h

* subversion/include/svn_client.h

* subversion/include/svn_cmdline.h

* subversion/include/svn_config.h

* subversion/include/svn_delta.h

* subversion/include/svn_diff.h

* subversion/include/svn_error.h

* subversion/include/svn_fs.h

* subversion/include/svn_hash.h

* subversion/include/svn_io.h

* subversion/include/svn_opt.h

* subversion/include/svn_path.h

* subversion/include/svn_pools.h

* subversion/include/svn_props.h

* subversion/include/svn_ra.h

* subversion/include/svn_ra_svn.h

* subversion/include/svn_repos.h

* subversion/include/svn_sorts.h

* subversion/include/svn_string.h

* subversion/include/svn_subst.h

* subversion/include/svn_test.h

* subversion/include/svn_types.h

* subversion/include/svn_wc.h

* subversion/include/svn_xml.h

  1. … 23 more files in changeset.
Surrender to the fact that we cannot consistently prevent message translation

across platforms: consistently obey locale settings. Also see

Revert r13182.

Note: mod_dav_svn already obeyed locale settings, so we're now consistent

across servers and platforms.

Additional change:

* subversion/svnserve/main.c (main): Don't change locale settings before

going into server mode.

  1. … 6 more files in changeset.
Fix svnserve error message translation by postponing locale initialization.

* subversion/include/svn_cmdline.h,

subversion/libsvn_subr/cmdline.c (svn_cmdline_init): Deprecated.

(svn_cmdline_init2): New. Derived from svn_cmdline_init, but takes

an extra 'server_mode' boolean parameter.

* subversion/clients/cmdline/main.c,



subversion/svnlook/main.c: Update calls to svn_cmdline_init2.

* subversion/svnserve/main.c: Set LC_ALL locale before calling _() (and

thus gettext()) to ensure getting the correct translation. Also,

don't translate messages which may be sent to the client.

  1. … 6 more files in changeset.
We also need to check errors on fflush calls because of stdio buffering


This is a part of the fix for issue #780.

* libsvn_subr/cmdline.c (svn_cmdline_fflush): New function.

* clients/cmdline/main.c (main): Use svn_cmdline_fflush before a normal exit.

  1. … 2 more files in changeset.
Implement new functions for printf, fprintf and fputs for use in

command line programs.

Approved by brane.

* subversion/include/svn_cmdline.h:

* subversion/libsvn_subr/cmdline.c:

(svn_cmdline_printf, svn_cmdline_fprintf, svn_cmdline_fputs):

New functions.

  1. … 1 more file in changeset.
Update copyright notices for 2004, resolving issue #1651.

(See also revision 8019, which fixed a couple of missed spots.)

  1. … 361 more files in changeset.
Format and convert text appropriately for console output.

* subversion/clients/cmdline/info-cmd.c (svn_cl__info_print_time, print_entry,


* subversion/clients/cmdline/log-cmd.c (log_message_receiver)

* subversion/clients/cmdline/prompt.c (maybe_print_realm)

* subversion/clients/cmdline/propdel-cmd.c (svn_cl__propdel)

* subversion/clients/cmdline/propedit-cmd.c (svn_cl__propedit)

* subversion/clients/cmdline/propget-cmd.c (svn_cl__propget)

* subversion/clients/cmdline/proplist-cmd.c (svn_cl__proplist)

* subversion/clients/cmdline/propset-cmd.c (svn_cl__propset)

* subversion/clients/cmdline/status.c (svn_cl__print_status)

Use "svn_cmdline_cstring_from_utf8" instead of "svn_utf_cstring_from_utf8"

to get the correct encoding for console output.

Convert paths to local style for output: use native path separators and "."

instead of "".

* subversion/clients/cmdline/notify.c

(notify): Quote paths where they appear within a sentence.

* subversion/include/svn_cmdline.h

* subversion/libsvn_subr/cmdline.c

(svn_cmdline_path_local_style_from_utf8): New function.

Fix comments.

* subversion/tests/clients/cmdline/ (check_reversion)

* subversion/tests/clients/cmdline/svntest/ (build_tree_from_skipped)

Expect the file name to be quoted in "Reverted" and "Skipped" notifications.

  1. … 13 more files in changeset.
Fix typos in comments.

  1. … 45 more files in changeset.
* subversion/include/svn_cmdline.h, subversion/libsvn_subr/utf_impl.h: Set

svn:eol-style to 'native'.

  1. … 1 more file in changeset.
Finishing issue #872 (at least until 1.0).

* subversion/include/svn_cmdline.h: New. Declare functions used by

command-line programs.

* subversion/include/svn_pools.h (svn_cmdline_init): Moved to svn_cmdline.h.

* subversion/include/svn_subst.h (svn_subst_detranslate_string): Add

parameter 'for_output'.

* subversion/libsvn_subr/utf_impl.h: New.

* subversion/libsvn_subr/utf.c: Include utf_impl.h.

(svn_utf__cstring_from_utf8_fuzzy): New.

* subversion/libsvn_subr/subst.c (svn_subst_detranslate_string): New parameter

'for_output' determines if we want the result in output or native encoding.

Translate the string while it's still in UTF-8, and convert it afterwards.

* subversion/libsvn_subr/cmdline.c (svn_cmdline_init): Don't try to set the

console output encoding on Windows platforms.

(svn_cmdline_cstring_from_utf8, svn_cmdline_cstring_from_utf8_fuzzy,

svn_cmdline_cstring_to_utf8): New. Convert to/from the output/input


* subversion/libsvn_subr/error.c: Convert error messages to output encoding,

and use fuzzy conversion if precise conversion fails.

* subversion/libsvn_subr/opt.c,



















subversion/tests/libsvn_subr/target-test.c: Use svn_cmdline functions to

convert strings from/to the console encoding.

* subversion/clients/cmdline/status.c (print_status): Convert the author

name to the output encoding.

(svn_cl__print_status): Convert the path to local style while it's

still in UTF-8.

* subversion/svnadmin/main.c (list_dblogs). Likewise.

* subversion/svnlook/main.c (do_date): Don't convert the date prop to

local style in get_property, we do that here later on.

  1. … 27 more files in changeset.