Checkout Tools
  • last updated 6 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Fix various typos detected by codespell

* libsvn_client/add.c, libsvn_client/blame.c, libsvn_client/commit_util.c,

libsvn_client/conflicts.c, libsvn_client/copy.c, libsvn_client/diff.c,

libsvn_client/export.c, libsvn_client/import.c, libsvn_client/merge.c,

libsvn_client/mergeinfo.c, libsvn_client/mergeinfo.h, libsvn_client/patch.c,

libsvn_client/switch.c, libsvn_client/update.c, libsvn_delta/branch_compat.c,

libsvn_delta/compat.c, libsvn_delta/compose_delta.c, libsvn_delta/svndiff.c,

libsvn_delta/xdelta.c, libsvn_diff/deprecated.c, libsvn_diff/diff_file.c,

libsvn_fs/fs-loader.c, libsvn_fs_base/bdb/locks-table.c, libsvn_fs_base/fs.c,

libsvn_fs_base/key-gen.c, libsvn_fs_base/notes/fs-history,

libsvn_fs_base/reps-strings.c, libsvn_fs_base/tree.c,

libsvn_fs_fs/cached_data.c, libsvn_fs_fs/hotcopy.c, libsvn_fs_fs/index.c,

libsvn_fs_fs/low_level.c, libsvn_fs_fs/pack.c, libsvn_fs_fs/structure,

libsvn_fs_fs/temp_serializer.c, libsvn_fs_fs/transaction.c,

libsvn_fs_fs/tree.c, libsvn_fs_fs/util.h, libsvn_fs_x/cached_data.c,

libsvn_fs_x/caching.c, libsvn_fs_x/hotcopy.c, libsvn_fs_x/id.h,

libsvn_fs_x/index.c, libsvn_fs_x/low_level.c, libsvn_fs_x/pack.c,

libsvn_fs_x/rev_file.c, libsvn_fs_x/structure, libsvn_fs_x/temp_serializer.c,

libsvn_fs_x/transaction.c, libsvn_fs_x/tree.c, libsvn_fs_x/util.h,

libsvn_ra/ra_loader.c, libsvn_ra/ra_loader.h, libsvn_ra/util.c,

libsvn_ra/wrapper_template.h, libsvn_ra_local/ra_plugin.c,

libsvn_ra_serf/commit.c, libsvn_ra_serf/get_file.c,

libsvn_ra_serf/property.c, libsvn_ra_serf/ra_serf.h, libsvn_ra_serf/update.c,

libsvn_ra_serf/util.c, libsvn_ra_svn/client.c, libsvn_ra_svn/cyrus_auth.c,

libsvn_ra_svn/marshal.c, libsvn_repos/authz_parse.c, libsvn_repos/commit.c,

libsvn_repos/compat.c, libsvn_repos/hooks.c, libsvn_repos/load.c,

libsvn_repos/log.c, libsvn_repos/notify.c, libsvn_repos/repos.c,

libsvn_repos/repos.h, libsvn_subr/cache-memcache.c, libsvn_subr/cmdline.c,

libsvn_subr/config_file.c, libsvn_subr/date.c, libsvn_subr/gpg_agent.c,

libsvn_subr/io.c, libsvn_subr/object_pool.c, libsvn_subr/path.c,

libsvn_subr/prompt.c, libsvn_subr/string.c, libsvn_subr/sysinfo.c,

libsvn_subr/temp_serializer.c, libsvn_subr/utf.c, libsvn_subr/utf8proc.c,

libsvn_subr/version.c, libsvn_subr/win32_xlate.c, libsvn_subr/x509parse.c,

libsvn_wc/conflicts.c, libsvn_wc/conflicts.h, libsvn_wc/copy.c,

libsvn_wc/lock.c, libsvn_wc/wc_db.c, libsvn_wc/wc_db.h,

libsvn_wc/wc_db_private.h:

(): Spelling fixes

  1. … 97 more files in changeset.
Fix build with utf8proc < 2.0. Ubuntu 16.04 comes with 1.3.1.

* subversion/libsvn_subr/utf8proc.c

(svn_utf__utf8proc_runtime_version): Ignore only thing that

actually exist.

Remove diagnostic #pragma magic for utf8proc; GCC doesn't like C++/C99-style

comments no matter what we do. Change the comments instead, even though

that will make merging in future quite painful.

* subversion/libsvn_subr/utf8proc.c:

Remove the diagnostic #pragmas and revert the inclusion of

utf8proc/utf8proc.c back to the way it was before r1809189.

* subversion/libsvn_subr/utf8proc/utf8proc.c,

subversion/libsvn_subr/utf8proc/utf8proc_internal.h:

Replace // comments with /* */ comments.

  1. … 2 more files in changeset.
Fix a typo that crept into r1809189.

* subversion/libsvn_subr/utf8proc.c: Don't use clang pragmas.

Try to be a bit smarter when disabling //-style comment warnings in utf8proc.

* subversion/libsvn_subr/utf8proc.c:

If possible, disable the -Wcomment warning with diagnostic #pragmas.

* subversion/libsvn_subr/utf8proc/utf8proc.c:

Remove the diagnostic push/pop #pragmas.

  1. … 1 more file in changeset.
Fix Windows build even more after r1809090.

* subversion/libsvn_subr/utf8proc.c:

Replace uint8_t with apr_byte_t and utf8proc_ssize_t with apr_ssize_t.

Both should be equivalent on all platforms.

Fix Windows build some more after r1809090.

* subversion/libsvn_subr/utf8proc.c

(unicode_decomposition,

decompose_normalized,

normalize_cstring,

svn_utf__glob,

svn_utf__fuzzy_escape): Rename ssize_t to utf8proc_ssize_t.

Merge upstream utf8proc 2.1.0 into trunk.

* subversion/libsvn_subr/utf8proc.c

(svn_utf__utf8proc_runtime_version): Add more unused function warning hacks.

[in subversion/libsvn_subr/utf8proc/]

* utf8proc.c, utf8proc_data.c, utf8proc_internal.h:

Adopt upstream changes, adjusted to fit our static-only build.

* LICENSE.md: Replaces removed LICENSE.

* README.md: Replaces removed README.

* NEWS.md, lump.md: New.

* LICENSE, README: Removed.

  1. … 10 more files in changeset.
* subversion/libsvn_subr/utf8proc.c

(svn_utf__fuzzy_glob_match): Never let invalid UTF data be a match.

Suggested by: brane

Make the 'svn ls --search' implementation actually case- and accent-

insensitive. The option handling of '--search' already assumes it

but the implementation did not follow up.

That's easily done by using the same generic UTF8-based normalization

to the path segments as 'svn' applies to the patterns. To reduce code

duplication, move the normalization and matching function to lib_subr.

And because there isn't really a better place to put it, add it to

utf8proc.

* subversion/include/private/svn_utf_private.h

(svn_utf__fuzzy_glob_match): Declare new private API.

* subversion/libsvn_subr/utf8proc.c

(svn_utf__fuzzy_glob_match): Implement the function, code mostly taken

from list.c.

* subversion/libsvn_client/list.c

(match_patterns): Forward to the new matching function.

(get_dir_contents): Add SCRATCH_BUFFER as a pass-through argument.

(list_internal): Provide the SCRATCH_BUFFER.

* subversion/libsvn_repos/list.c

(matches_any,

do_list,

svn_repos_list): Mirror the changes from the client side above.

  1. … 3 more files in changeset.
Build against the system utf8proc library by default instead of the

internal copy of the utf8proc code. Add --with-utf8proc=PREFIX|internal

to allow the user to specify either where to find utf8proc or that the

internal copy be used. The Windows build will continue to use the

internal utf8proc code.

* build/ac-macros/utf8proc.m4: New.

* aclocal.m4: Include utf8proc.m4.

* configure.ac: Call SVN_UTF8PROC.

* Makefile.in

(SVN_UTF8PROC_LIBS, SVN_UTF8PROC_INCLUDES): New.

* build.conf

(libsvn_subr): Add utf8proc to link.

(utf8proc): New.

* subversion/libsvn_subr/utf8proc/utf8proc.h: Rename to ...

* subversion/libsvn_subr/utf8proc/utf8proc_internal.h: ... this.

* subversion/libsvn_subr/utf8proc/utf8proc.c: Include svn_private_config.h

and utf8proc_internal.h, protect with SVN_INTERNAL_UTF8PROC.

* subversion/libsvn_subr/utf8proc.c: Include system utf8proc.h or internal

utf8proc.c.

* subversion/svn_private_config.hw: Define SVN_INTERNAL_UTF8PROC to

enable internal copy of utf8proc.

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

(test_utf_fuzzy_escape): Allow for small output difference between

utf8proc 1.x and 2.x.

  1. … 10 more files in changeset.
Ignore diacriticals in svn log --search, so that e.g., `müssen' would

match against `mussen'.

* subversion/include/private/svn_utf_private.h

(svn_utf__casefold): Remove, is now replaced by ...

(svn_utf__xfrm): ...this new function that transforms a given string into

shape suitable for case- and accent-insensitive comparison.

* subversion/libsvn_subr/utf8proc.c

(normalize_cstring): Add a `stripmark' argument that corresponds

to the UTF8PROC_STRIPMARK transformation flag.

(svn_utf__normalize): Adjust call to normalize_cstring().

(svn_utf__casefold): Remove.

(svn_utf__xfrm): Implement this function by calling normalize_cstring()

with appropriate arguments.

(svn_utf__is_normalized): Adjust call to normalize_cstring().

* subversion/svn/log-cmd.c

(match): Prepare the string for case- and accent-insensitive comparison

by calling svn_utf__xfrm().

* subversion/svn/svn.c

(sub_main): Prepare the pattern for case- and accent-insensitive comparison

by calling svn_utf__xfrm().

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

(test_utf_casefold): Replaced with ...

(test_utf_xfrm): ...this new test. Test the behavior with non-synthetic

examples, such as with `İstanbul'.

(test_funcs): Track the test changes.

  1. … 4 more files in changeset.
Expose the ability to normalize and case fold UTF-8 strings in a new

private API, svn_utf__casefold().

That's better than having an additional flag for the svn_utf__normalize()

function. Internally, the case folding is still implemented by passing an

extra flag to the static helper, but now we have a distinction at the API

boundary.

* subversion\include\private\svn_utf_private.h

(svn_utf__normalize): Drop 'casefold' argument.

(svn_utf__casefold): Declare new function.

* subversion\libsvn_subr\utf8proc.c

(svn_utf__normalize): Adjust the call to normalize_string().

(svn_utf__casefold): New function. Normalize and fold the case of the

string by issuing an appropriate call to normalize_string().

* subversion/libsvn_repos/dump.c

(extract_mergeinfo_paths, verify_mergeinfo_normalization,

check_name_collision): Update callers of svn_utf__normalize().

* subversion\svn\log-cmd.c

(match): Call svn_utf__casefold().

* subversion\svn\svn.c

(sub_main): Call svn_utf__casefold().

* subversion\tests\libsvn_subr\utf-test.c

(test_utf_normalize): Split into separate tests for svn_utf__normalize()

and svn_utf__casefold().

(test_utf_casefold): New test.

(test_funcs): Add new test.

  1. … 5 more files in changeset.
Make svn log --search case-insensitive.

Use utf8proc to do the normalization and locale-independent case folding

(UTF8PROC_CASEFOLD) for both the search pattern and the input strings.

Related discussion is in http://svn.haxx.se/dev/archive-2013-04/0374.shtml

(Subject: "log --search test failures on trunk and 1.8.x").

* subversion/include/private/svn_utf_private.h

(svn_utf__normalize): Add new boolean argument to perform case folding.

* subversion/libsvn_subr/utf8proc.c

(normalize_cstring): Add new boolean argument to perform case folding.

In case it is non-zero, set the flags to UTF8PROC_CASEFOLD when

doing the Unicode decomposition.

(svn_utf__normalize): Pass new argument to normalize_cstring().

(svn_utf__is_normalized): Adjust call to normalize_cstring().

* subversion/libsvn_repos/dump.c

(extract_mergeinfo_paths, verify_mergeinfo_normalization,

check_name_collision): Update callers of svn_utf__normalize().

* subversion/svn/cl-log.h

(): Include svn_string_private for svn_membuf_t.

(svn_cl__log_receiver_baton): Add an svn_membuf_t for the case folding

and normalization purposes.

* subversion/svn/log-cmd.c

(): Include svn_utf_private.h.

(match): New helper that normalizes, folds case of the input, and matches

it against the specified pattern.

(match_search_pattern): Now accepts an svn_membuf_t. Call the new helper

function to perform the pattern matching.

(svn_cl__log_entry_receiver, svn_cl__log_entry_receiver_xml): Pass the

svn_membuf_t from the baton when calling match_search_pattern().

(svn_cl__log): Initialize the svn_membuf_t in the log receiver baton.

* subversion/svn/svn.c

(): Include svn_utf_private.h.

(sub_main): Normalize and fold case of --search and --search-and arguments.

* subversion/tests/cmdline/log_tests.py

(log_search): Adjust expectations, since --search is now case-insensitive.

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

(test_utf_normalize): New test for svn_utf__normalize().

(test_funcs): Add new test.

  1. … 7 more files in changeset.
Expose utf8proc version information in 'svn --version --verbose'.

Found by: schabi

(via SharpSvn)

* subversion/include/private/svn_utf_private.h

(svn_utf__utf8proc_version): Separate into...

(svn_utf__utf8proc_compiled_version,

svn_utf__utf8proc_runtime_version): These functions.

* subversion/libsvn_subr/sysinfo.c

(includes): Add svn_utf_private.h.

(svn_sysinfo__linked_libs): Expose utf8proc version.

* subversion/libsvn_subr/utf8proc.c

(svn_utf__utf8proc_compiled_version): New function.

(svn_utf__utf8proc_version): Rename to...

(svn_utf__utf8proc_runtime_version): ... this.

* subversion/libsvn_subr/utf8proc/utf8proc.h

(UTF8PROC_VERSION_*): Add definition in the same way as latest utf8proc

defines these macros.

  1. … 3 more files in changeset.
Merge the svn-auth-x509 branch to trunk.

This adds an X.509 parser which we use to display certificates via the auth

command rather than storing the details provided by serf from a connection.

* LICENSE,

NOTICE: Note that the X.509 parser is based on the parser from TropicSSL.

* build.conf

(libsvn_subr): Add svn_x509.h header to msvc-export.

(x509-test, __ALL_TESTS__): Add C tests for X.509 parser.

* subversion/include/private/svn_utf_private.h

(svn_utf__encode_ucs4_string, svn_utf__utf16_to_utf8,

svn_utf__utf32_to_utf8): New functions for converting various Unicode

character encodings needed by the X.509 parser.

* subversion/include/svn_x509.h: New header.

* subversion/include/svn_error_codes.h

(SVN_ERR_X509_CATEGORY_START): New category for errors from X.509 parser.

(SVN_ERR_ASN1_OUT_OF_DATA, SVN_ERR_ASN1_UNEXPECTED_TAG,

SVN_ERR_ASN1_INVALID_LENGTH, SVN_ERR_ASN1_LENGTH_MISMATCH,

SVN_ERR_ASN1_INVALID_DATA, SVN_ERR_X509_FEATURE_UNAVAILABLE,

SVN_ERR_X509_CERT_INVALID_PEM, SVN_ERR_X509_CERT_INVALID_FORMAT,

SVN_ERR_X509_CERT_INVALID_VERSION, SVN_ERR_X509_CERT_INVALID_SERIAL,

SVN_ERR_X509_CERT_INVALID_ALG, SVN_ERR_X509_CERT_INVALID_NAME,

SVN_ERR_X509_CERT_INVALID_DATE, SVN_ERR_X509_CERT_INVALID_PUBKEY,

SVN_ERR_X509_CERT_INVALID_SIGNATURE, SVN_ERR_X509_CERT_INVALID_EXTENSIONS,

SVN_ERR_X509_CERT_UNKNOWN_VERSION, SVN_ERR_X509_CERT_UNKNOWN_PK_ALG,

SVN_ERR_X509_CERT_SIG_MISMATCH, SVN_ERR_X509_CERT_VERIFY_FAILED):

New error codes.

* subversion/include/svn_config.h

(SVN_CONFIG_AUTHN_HOSTNAME_KEY, SVN_CONFIG_AUTHN_FINGERPRINT_KEY,

SVN_CONFIG_AUTHN_VALID_FROM_KEY, SVN_CONFIG_AUTHN_VALID_UNTIL_KEY,

SVN_CONFIG_AUTHN_ISSUER_DN_KEY): Remove constants used as keys for

storing parsed certificate info in authn files.

* subversion/libsvn_subr/x509parse.c,

subversion/libsvn_subr/x509info.c,

subversion/include/x509.h: New files for implementing the X.509 parser.

* subversion/libsvn_subr/ssl_server_trust_providers.c

(ssl_server_trust_file_first_credentials,

ssl_server_trust_file_save_credentials): Don't store/retrive parsed

details of X.509 certificates.

* subversion/libsvn_subr/utf.c

(membuf_insert_ucs4, svn_utf__utf16_to_utf8, svn_utf__utf32_to_utf8):

New functions to implement Unicode conversions.

* subversion/libsvn_subr/utf8proc.c

(encode_ucs4_string): Convert to the private function ...

(svn_utf__encode_ucs4_string): New function.

(svn_utf__glob): Update caller.

* subversion/svn/auth-cmd.c

(match_credential): Remove code to match the hostname/fingerprint since

the data isn't stored.

(show_cert): New function to drive the X.509 parser and then display

the certificate to the user.

(list_credential): Use show_cert().

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

(test_utf_conversions, test_funcs): Add tests for new unicode character

set conversions.

* subversion/tests/libsvn_subr/x509-test.c: Add tests for X.509 parser.

[in subverison/bindings/javahl]

* native/jniwrapper/jni_base.cpp,

native/jniwrapper/jni_exception.hpp:

Add IllegalArgumentException exeption.

* native/AuthnCallback.cpp,

native/AuthnCallback.hpp,

src/org/apache/subversion/javahl/callback/AuthnCallback.java:

(AuthnCallback::SSLServerCertInfo): Update the getters and constructor to

reflect the info available from the X.509 parser.

* native/org_apache_subversion_javahl_util_ConfigLib.cpp

(build_credential): Update to feed AuthnCallback::SSLServerCertInfo the info

that is available.

(Java_org_apache_subversion_javahl_util_ConfigLib_nativeSearchCredentials):

Update the searching of the certificates to parse the certificate rather

than depending on the stored data.

* src/org/apache/subversion/javahl/SVNUtil.java

(SVNUtil.searchCredentials): Update hostnamePattern documentation.

* native/Promper.cpp

(Prompter::dispatch_ssl_server_trust_prompt): Update to reflect changes

to SSLServerCertInfo.

* src/org/apache/subversion/javahl/util/ConfigLib.java: Remove some commented

out code.

* tests/org/apache/subversion/javahl/UtilTests.java

(util_cred_ssl_server, testCredentials): Update tests as needed.

  1. … 29 more files in changeset.
Use SVN_UNUSED in some places where already casting to void.

* subversion/bindings/wig/python/libsvn_swig_py/swiguilt.py.c

(make_ob_pool): Use SVN_UNUSED.

* subversion/libsvn_fs/editor.c

(UNUSED): Remove macro.

(alter_symlink_cb): Use SVN_UNUSED instead of UNUSED.

* subversion/libsvn_subr/cache-memcache.c

(memcache_is_cachable): Use SVN_UNUSED.

* subversion/libsvn_subr/utf8proc.c

(UNUSED): Remove macro.

(svn_utf__utf8proc_version): Use SVN_UNUSED instead of UNUSED.

  1. … 3 more files in changeset.
* subversion/libsvn_subr/utf8proc.c

Following up on r1573069, resolve a shadowed symbol warning by redefining

strlen when including "utf8proc/utf8proc.c".

Don't rely on the presence of stdbool.h and inttypes.h headers for utf8proc.

* configure.ac: Check for stdbool.h and inttypes.h.

* subversion/libsvn_subr/utf8proc/utf8proc.h:

Include stdbool.h and inttypes.h only if we know they're available.

Otherwise, use typedefs based on APR's sized types.

* subversion/libsvn_subr/utf8proc.c:

Move the include of utf8proc.c after svn_private_config.h, so that the

presence symbols for stdbool.h and inttypes.h are available.

  1. … 2 more files in changeset.
Fix some typos.

* CHANGES:

* contrib/client-side/emacs/psvn.el:

* contrib/client-side/svn-merge-vendor.py:

* contrib/hook-scripts/remove-zombie-locks.py:

* contrib/server-side/svnmirror.sh:

* contrib/server-side/svnmirror-test.sh:

* notes/meetings/berlin-11-agenda:

* notes/unicode-composition-for-filenames:

* notes/wc-ng/conflict-storage:

* notes/wc-ng/conflict-storage-2.0:

* subversion/bindings/ctypes-python/test/wc.py:

* subversion/bindings/cxxhl/src/aprwrap/hash.hpp:

* subversion/bindings/cxxhl/tests/test_aprwrap.cpp:

* subversion/bindings/javahl/native/JNICriticalSection.h:

* subversion/bindings/javahl/native/JNIUtil.cpp:

* subversion/bindings/javahl/native/jniwrapper/jni_env.hpp:

* subversion/bindings/javahl/native/NativeStream.hpp:

* subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java:

* subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRemote.java:

* subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRepos.java:

* subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNClient.java:

* subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java:

* subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java:

* subversion/bindings/javahl/tests/org/tigris/subversion/javahl/BasicTests.java:

* subversion/bindings/javahl/tests/org/tigris/subversion/javahl/SVNTests.java:

* subversion/bindings/swig/perl/native/Client.pm:

* subversion/include/private/svn_sqlite.h:

* subversion/include/private/svn_subr_private.h:

* subversion/include/svn_client.h:

* subversion/include/svn_client_mtcc.h:

* subversion/include/svn_diff.h:

* subversion/libsvn_fs_fs/rep-cache.c:

* subversion/libsvn_fs_x/rep-cache.c:

* subversion/libsvn_ra_serf/options.c:

* subversion/libsvn_subr/io.c:

* subversion/libsvn_subr/string.c:

* subversion/libsvn_subr/utf8proc.c:

* subversion/libsvn_wc/adm_crawler.c:

* subversion/libsvn_wc/diff_local.c:

* subversion/libsvn_wc/wc_db_update_move.c:

* subversion/libsvn_wc/wc-metadata.sql:

* subversion/svn/status-cmd.c:

* subversion/tests/cmdline/diff_tests.py:

* subversion/tests/cmdline/merge_tests.py:

* subversion/tests/cmdline/README:

* subversion/tests/cmdline/svnadmin_tests.py:

* subversion/tests/cmdline/svnauthz_tests.py:

* subversion/tests/cmdline/svndumpfilter_tests.py:

* subversion/tests/cmdline/svnrdump_tests.py:

* subversion/tests/cmdline/svntest/factory.py:

* subversion/tests/libsvn_wc/wc-queries-test.c:

* tools/dev/build-svn-deps-win.pl: Fix some typos.

  1. … 51 more files in changeset.
Added an option to 'svnadmin verify' to check Unicode normalisation of

repository paths, and collisions of names within the same directory

that differ only in character representation.

* subversion/include/svn_repos.h (svn_repos_notify_warning_t):

New constants 'svn_repos_notify_warning_denormalized_name'

and 'svn_repos_notify_warning_name_collision'.

(svn_repos_verify_fs3): Added 'check_ucs_norm' argument and

updated the docstring.

(svn_repos_verify_fs2): Updated the docstring.

* subversion/libsvn_repos/dump.c (struct edit_baton):

New member 'check_ucs_norm'.

(struct dir_baton): New member 'check_name_collision'.

(make_dir_baton): Initialise 'check_name_collision'.

(check_ucs_normalization): New private function.

(add_directory, add_file): Set 'check_name_collision' and call

check_ucs_normalization if a new entry appeared in the directory.

(get_dump_editor): New argument 'check_ucs_norm'; used to initialise

the associated field in 'struct edit_baton'.

(svn_repos_dump_fs3): Update call to get_dump_editor.

(struct check_name_baton) New.

(check_name_collision) New hash iterator.

(verify_close_directory): Optionally call check_name_collision.

(verify_one_revision): New argument 'check_ucs_norm'.

Pass it to get_dump_editor.

(svn_repos_verify_fs3): Update signature and pass 'check_ucs_norm'

to verify_one_revision.

* subversion/libsvn_repos/deprecated.c (svn_repos_verify_fs2):

Updated the call to svn_repos_verify_fs3.

* subversion/include/private/svn_utf_private.h (svn_utf__normalize):

New function. Normalizes a string to Unicode NFC.

* subversion/libsvn_subr/utf8proc.c (svn_utf__normalize): Implement.

* subversion/svnadmin/svnadmin.c (svnadmin__cmdline_options_t, options_table):

New option 'svnadmin__check_ucs_normalization'.

(cmd_table): Add 'svnadmin__check_ucs_normalization' to "verify".

(struct svnadmin_opt_state): New member 'check_ucs_norm'.

(sub_main): Parse new option to 'check_ucs_norm'.

* subversion/tests/cmdline/svnadmin_tests.py (verify_denormalized_names):

New test case; runs 'svnadmin verify' with normalisation check enabled.

(test_list): Enable verify_denormalized_names.

* subversion/tests/cmdline/svnadmin_tests_data/normalization_check.dump:

New dumpfile; data for svnadmin_tests.verify_denormalized_names.

  1. … 7 more files in changeset.
Fix VisualC integer compiler warnings in UTF8 code.

* subversion/libsvn_subr/utf8proc/utf8proc.c

(utf8proc_encode_char): explicitly cast to the target type. The range

has been ensured by previous checks

* subversion/libsvn_subr/utf8proc.c

(svn_utf__fuzzy_escape): fix a mixed signedness comparison

  1. … 1 more file in changeset.
* subversion/bindings/javahl/native/CommitEditor.h

* subversion/bindings/javahl/native/EditorProxy.h

* subversion/bindings/javahl/native/Iterator.h

* subversion/bindings/javahl/native/LockTokenTable.h

* subversion/bindings/javahl/native/RemoteSession.h

* subversion/bindings/javahl/native/RemoteSessionContext.h

* subversion/bindings/javahl/native/RevisionRangeList.h

* subversion/bindings/javahl/native/StateReporter.h

* subversion/include/private/svn_file.h

* subversion/include/private/svn_packed_data.h

* subversion/libsvn_fs_fs/cached_data.c

* subversion/libsvn_fs_fs/cached_data.h

* subversion/libsvn_fs_fs/hotcopy.c

* subversion/libsvn_fs_fs/hotcopy.h

* subversion/libsvn_fs_fs/low_level.c

* subversion/libsvn_fs_fs/low_level.h

* subversion/libsvn_fs_fs/pack.c

* subversion/libsvn_fs_fs/pack.h

* subversion/libsvn_fs_fs/recovery.c

* subversion/libsvn_fs_fs/recovery.h

* subversion/libsvn_fs_fs/revprops.c

* subversion/libsvn_fs_fs/revprops.h

* subversion/libsvn_fs_fs/transaction.c

* subversion/libsvn_fs_fs/transaction.h

* subversion/libsvn_fs_fs/util.c

* subversion/libsvn_fs_fs/util.h

* subversion/libsvn_fs_fs/verify.c

* subversion/libsvn_fs_fs/verify.h

* subversion/libsvn_fs_x/cached_data.c

* subversion/libsvn_fs_x/cached_data.h

* subversion/libsvn_fs_x/changes.c

* subversion/libsvn_fs_x/changes.h

* subversion/libsvn_fs_x/hotcopy.c

* subversion/libsvn_fs_x/hotcopy.h

* subversion/libsvn_fs_x/index.c

* subversion/libsvn_fs_x/index.h

* subversion/libsvn_fs_x/low_level.h

* subversion/libsvn_fs_x/noderevs.c

* subversion/libsvn_fs_x/noderevs.h

* subversion/libsvn_fs_x/pack.c

* subversion/libsvn_fs_x/pack.h

* subversion/libsvn_fs_x/recovery.c

* subversion/libsvn_fs_x/recovery.h

* subversion/libsvn_fs_x/reps.c

* subversion/libsvn_fs_x/reps.h

* subversion/libsvn_fs_x/revprops.h

* subversion/libsvn_fs_x/string_table.c

* subversion/libsvn_fs_x/string_table.h

* subversion/libsvn_fs_x/transaction.c

* subversion/libsvn_fs_x/transaction.h

* subversion/libsvn_fs_x/util.h

* subversion/libsvn_ra_svn/deprecated.c

* subversion/libsvn_subr/compress.c

* subversion/libsvn_subr/file.c

* subversion/libsvn_subr/packed_data.c

* subversion/libsvn_subr/prefix_string.c

* subversion/libsvn_subr/utf8proc/utf8proc.c

* subversion/libsvn_subr/utf8proc/utf8proc.h

* subversion/libsvn_subr/utf8proc/utf8proc_data.c

* subversion/libsvn_subr/utf8proc.c

* subversion/tests/libsvn_fs_x/string-table-test.c

* subversion/tests/libsvn_subr/packed-data-test.c

* subversion/tests/libsvn_subr/prefix-string-test.c

* subversion/tests/libsvn_subr/priority-queue-test.c

(svn:eol-style): Set to native.

  1. … 63 more files in changeset.
Fix a compiler warning.

* subversion/libsvn_subr/utf8proc.c

(svn_utf__fuzzy_escape): Remove shadowing variable.

Added a private function that checks if a UTF-8 string is normalized.

* subversion/include/private/svn_utf_private.h (svn_utf__is_normalized): New.

* subversion/libsvn_subr/utf8proc.c (normalize_cstring): New.

(svn_utf__is_normalized): Implement, using normalize_cstring.

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

(test_utf_is_normalized): New test for svn_utf__is_normalized.

(test_funcs): Added test_utf_is_normalized.

  1. … 2 more files in changeset.
Reimplement UTF-8 fuzzy conversion using the tools provided by utf8proc.

While the new implementation is slower and uses more memory than the

original, it also gives somewhat better results (in the author's opinion).

Since fuzzy escaping is only used as a last resort to generate error

messages, the extra cost should not be a problem.

* subversion/include/private/svn_utf_private.h

(svn_utf__fuzzy_escape): Declare new private function.

* subversion/libsvn_subr/utf8proc.c

(svn_utf__utf8proc_version): utf8proc_codepoint_valid is no longer unused.

(unicode_decomposition): New; common driver for utf8proc_decompose.

(decompose_normalized): Reimplement using unicode_decomposition.

(svn_utf__fuzzy_escape): Implement.

* subversion/libsvn_subr/utf.c (fuzzy_escape): Removed.

(convert_to_stringbuf, svn_utf__cstring_from_utf8_fuzzy):

Use svn_utf__fuzzy_escape.

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

(test_utf_fuzzy_escape): New test case for svn_utf__fuzzy_escape.

(test_funcs): Add test_utf_fuzzy_escape.

* subversion/tests/cmdline/merge_tests.py

(simple_property_merges): Adjust expected output.

* subversion/tests/cmdline/svnadmin_tests.py

(verify_non_utf8_paths): Likewise.

  1. … 5 more files in changeset.
Tell the Visual Studio project file generator to not compile C files that

appear in the project's dependency list but are not in the source list.

This fixes the issue with embedding utf8proc sources in libsvn_subr.

* build/generator/gen_win.py (WinGeneratorBase.get_proj_sources):

Mark header dependencies for exclusion from the build.

(ProjectItem): Set files to not excluded by default.

* build/generator/templates/vcnet_vcproj.ezt,

build/generator/templates/vcnet_vcxproj.ezt: Tweak the .vc(x)proj templates

to treat excluded sources differently, and to treat *.hpp as header files.

* build.conf (private-includes): Remove the .inline suffix from

utf8proc/utf8proc.c and utf8proc/utf8proc_data.c.

* subversion/libsvn_subr/utf8proc.c:

Update directive to include utf8proc/utf8proc.c.

* subversion/libsvn_subr/utf8proc/utf8proc.c: Rename from utf8proc.c.inline.

Update directive to include utf8proc_data.c.

* subversion/libsvn_subr/utf8proc/utf8proc_data.c:

Rename from utf8proc_data.c.inline.

  1. … 8 more files in changeset.
Mark messages from our utf8proc wrapper as translatable.

* subversion/libsvn_subr/utf8proc.c

(encode_ucs4, svn_utf__glob): Make messages translatable and more neutral.

(svn_utf__glob): Fix escape-token length check.

Fallout from the wc-collate-branch merge.

- Rename the utf8proc .c files to .c.inline to prevent them from

being built out-of-line on Windows. This is a temporary measure

until the Windows project file generator is fixed.

- Fixed crashes in utf-test.

* subversion/libsvn_subr/utf8proc/utf8proc_data.c.inline:

Renamed from utf8proc_data.c

* subversion/libsvn_subr/utf8proc/utf8proc.c:

Renamed from utf8proc.c, and updated the _data include.

* build.conf (private-includes): Update with the above changes.

* subversion/libsvn_subr/utf8proc.c: Update utf8proc.c.inline include.

(encode_ucs4_string, svn_utf__glob): Ensure that membufs have enough

space when appending data to them.

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

(test_utf_collated_compare, test_utf_pattern_match): Actually conform

to the svn_utf__normcomp and svn_utf__glob prototypes.

(test_funcs): Fix docstring of test_utf_pattern_match.

  1. … 6 more files in changeset.
Change functions merged from the wc-collate-branch to our

customary output-parameters-first style.

* subversion/include/private/svn_utf_private.h

(svn_utf__normcmp, svn_utf__glob): Here.

* subversion/libsvn_subr/utf8proc.c

(decompose_normalized, svn_utf__normcmp, svn_utf__glob): And here.

  1. … 2 more files in changeset.