Checkout Tools
  • last updated 1 hour ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates

Changeset 1423895 is being indexed.

Fulfill a promise of a deprecated rangelist api by refactoring some code.

Document that we don't promise this behavior in the newer api, and point users

of an internal api towards an internal api that might help users fulfill this

promise.

* subversion/include/private/svn_mergeinfo_private.h

(svn_rangelist__parse): Add pointer.

(svn_rangelist__combine_adjecent_ranges): Add function.

* subversion/include/svn_mergeinfo.h

(svn_rangelist_merge2): Document real behavior.

(svn_rangelist_merge): Document the old promise as difference.

* subversion/libsvn_subr/deprecated.c

(includes): Add svn_mergeinfo_private.h.

(svn_rangelist_merge): Call svn_rangelist__combine_adjecent_ranges on the

to be returned rangelist to fulfill promise.

* subversion/libsvn_subr/mergeinfo.c

(svn_rangelist__combine_adjecent_ranges): New function. Extracted from

parse_revision_line.

(parse_revision_line): Call svn_rangelist__combine_adjecent_ranges.

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

(test_funcs): Expect 'test_rangelist_merge' to pass, because it uses

svn_rangelist_merge.

  1. … 4 more files in changeset.
Make the extended version info retrieval a public API.

* subversion/include/svn_version.h: Include apr_tables.h.

(svn_version_extended_t): Move here, rename from svn_opt__version_info_t.

(svn_version_linked_lib_t): Move here, rename from svn_sysinfo__linked_lib_t.

(svn_version_loaded_lib_t): Move here, rename from svn_sysinfo__loaded_lib_t.

(svn_version_extended): Move here, rename from svn_opt__get_version_info.

* subversion/libsvn_subr/version.c: Include sysinfo.h.

(svn_version_extended): Move here, renamed and updated from

svn_opt__get_version_info.

* subversion/libsvn_subr/sysinfo.h

(svn_sysinfo__linked_lib_t, svn_sysinfo__loaded_lib_t): Moved and

renamed to subversion/include/svn_version.h.

(svn_sysinfo__linked_libs, svn_sysinfo__loaded_libs): Update docstring.

* subversion/libsvn_subr/sysinfo.c: Include svn_version.h.

(svn_sysinfo__linked_libs, svn_sysinfo__loaded_libs):

Update, using new type names.

* subversion/libsvn_subr/opt.h:

Include svn_version.h. Do not include apr_tables.h.

(svn_opt__version_info_t, svn_opt__get_version_info):

Moved and renamed to subversion/include/svn_version.h

(svn_opt__print_version_info): Update type name in prototype.

* subversion/libsvn_subr/opt.c: Do not include sysinfo.h.

(svn_opt__get_version_info): Moved and renamed to

subversion/libsvn_subr/version.c.

(svn_opt__print_version_info, svn_opt_print_help):

Update, use public svn_version_extended API.

* subversion/libsvn_subr/deprecated.c: Include svn_version.h.

(svn_opt_print_help): Update, use public svn_version_extended API.

* subversion/tests/cmdline/getopt_tests.py

(switch_res_line, switched_del_lines_res, switched_rep_lines_res):

New filters for extended version information.

(process_lines): Use the new filters.

(getopt__version__verbose): New test for "svn --version --verbose".

* subversion/tests/cmdline/getopt_tests_data/svn--version--verbose_stdout,

subversion/tests/cmdline/getopt_tests_data/svn--version--verbose_stderr: New.

  1. … 9 more files in changeset.
Make the expensive bits of version retreival optional.

* subversion/libsvn_subr/opt.h (svn_opt__get_version_info):

Change prototype: add verbose flag.

* subversion/libsvn_subr/opt.h (svn_opt__get_version_info):

Gather runtime system info only when verbose is set.

(svn_opt_print_help4): Update.

* subversion/libsvn_subr/deprecated.c (svn_opt_print_help): Update.

  1. … 2 more files in changeset.
Followup to r1379689: gather version and system information in a structure

instead of a huge string, and make combining it to stdout a separate step.

* subversion/libsvn_subr/sysinfo.h: Inclulde apr_tables.h.

(svn_sysinfo__linked_lib_t): New struct type.

(svn_sysinfo__linked_libs): Return an APR array of svn_sysinfo__linked_lib_t

instead of a preconstructed string.

(svn_sysinfo__loaded_lib_t): New struct type.

(svn_sysinfo__loaded_libs): Return an APR array of svn_sysinfo__loaded_lib_t

instead of a preconstructed string.

* subversion/libsvn_subr/sysinfo.c (svn_sysinfo__linked_libs): Update.

(svn_sysinfo__loaded_libs): Update.

(win32_shared_libs): Update, make return value an APR array.

(release_name_from_uname) Define only unless SVN_HAVE_MACOS_PLIST

to avoid compiler warnings about unused static function on Mac OS X.

* subversion/libsvn_subr/opt.h: Include apr_tables.h.

(svn_opt__version_info_t): New struct. Contains all the information that

was formerly returned in a string by svn_opt__get_version_info.

(svn_opt__get_version_info): Change signature; returns a svn_opt__version_info_t.

(svn_opt__print_version_info): Reinstate, but using the outpot from

svn_opt__get_version_info.

* subversion/libsvn_subr/opt.c (svn_opt__get_version_info): Reimplement.

(svn_opt__print_version_info): Reinstate.

(svn_opt_print_help4): Use svn_opt__print_version_info again.

* subversion/libsvn_subr/deprecated.c

(svn_opt_print_help): Use svn_opt__print_version_info again.

  1. … 4 more files in changeset.
First step towards making client version information usable by other than

the svn command-line client.

* subversion/libsvn_subr/opt.h (svn_opt__get_version_info): Renamed from

svn_opt__print_version_info and prototype changed to return a string.

Updated docstring.

* subversion/libsvn_subr/opt.c (svn_opt__get_version_info): Renamed from

svn_opt__print_version_info; constructs a string with the version info

instead of printing directly to the console.

(svn_opt_print_help4): Update to use svn_opt__get_version_info.

* subversion/libsvn_subr/deprecated.c (svn_opt_print_help): Update to use

svn_opt__get_version_info.

  1. … 2 more files in changeset.
Expand "svn --version" output with information about the running system

when --verbose is also given on the command line. Currently available:

- Minimal running system info on systems with uname().

- System info and commercial release name on Windows.

* build.conf (libsvn_subr): Require kernel32.lib on Windows.

* configure.ac: Check for uname() in sys/utsname.h.

* subversion/include/svn_opt.h (svn_opt_print_help4): New, with verbose option.

(svn_opt_print_help3): Deprecate.

* subversion/libsvn_subr/sysinfo.c, subversion/libsvn_subr/sysinfo.h: New.

* subversion/libsvn_subr/opt.h (svn_opt__print_version_info): Add "verbose".

* subversion/libsvn_subr/opt.c: Include sysinfo.h.

(svn_opt__print_version_info): In verbose mode, print svn_sysinfo__*.

(svn_opt_print_help4): Implement.

(svn_opt_print_help3): Remove.

* subversion/libsvn_subr/deprecated.c

(svn_opt_print_help3, svn_opt_print_help3): Reimplenment in terms of

svn_opt_print_help4.

(svn_opt_print_help): Update call to svn_opt__print_version_info.

* subversion/svn/main.c: Add --verbose option to "svn --version".

* subversion/svnlook/main.c: Add --verbose option to "svn --version".

Use svn_opt_print_help4 instead of svn_opt_print_help3.

* subversion/svn/help-cmd.c, subversion/svnadmin/main.c,

subversion/svndumpfilter/main.c, subversion/svnmucc/svnmucc.c,

subversion/svnrdump/svnrdump.c, subversion/svnserve/main.c,

subversion/svnsync/main.c, subversion/svnversion/main.c,

tools/dev/svnraisetreeconflict/main.c,

tools/server-side/svn-rep-sharing-stats.c:

Use svn_opt_print_help4 instead of svn_opt_print_help3.

  1. … 19 more files in changeset.
Add an 'svn_rangelist_t' typedef for use with the existing 'svn_rangelist_*'

APIs, instead of using 'apr_array_header_t' directly.

The immediate reason is to improve the debugging experience: I can make

GDB display 'svn_rangelist_t' values in a simple human-readable form, whereas

the best it can do with 'apr_array_header_t', not knowing the type of the

elements, is print something like 'array of 2 items'.

Beyond that, it makes sense from a coding abstraction point of view, filling

a gap in this hierarchy:

svn_mergeinfo_catalog_t is a collection of

svn_mergeinfo_t is a collection of

svn_rangelist_t is a collection of

svn_merge_range_t

This type has public visibility. Because it is just a typedef, the C API

will be backward-compatible and the ABI won't change. Therefore all uses,

even in deprecated functions, are being changed.

Using such a typedef doesn't provide any additional static type-checking.

Unlike svn_mergeinfo_t and svn_mergeinfo_catalog_t, svn_rangelist_t is not a

pointer type.

* subversion/include/svn_mergeinfo.h

(svn_rangelist_t): New typedef.

(...everywhere...): Use it.

* subversion/include/private/svn_mergeinfo_private.h

(...everywhere...): Use it.

* subversion/include/svn_client.h

(svn_client_mergeinfo_get_merged): Update doc string to refer to this.

* subversion/bindings/javahl/native/CreateJ.cpp,

subversion/bindings/javahl/native/CreateJ.h,

subversion/bindings/javahl/native/SVNClient.cpp,

subversion/bindings/swig/core.i,

subversion/bindings/swig/include/svn_containers.swg,

subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c

(...everywhere...): Update the bindings.

subversion/libsvn_client/diff.c,

subversion/libsvn_client/merge.c,

subversion/libsvn_client/mergeinfo.c,

subversion/libsvn_client/mergeinfo.h,

subversion/libsvn_client/ra.c,

subversion/libsvn_fs_util/fs-util.c,

subversion/libsvn_repos/load-fs-vtable.c,

subversion/libsvn_repos/log.c,

subversion/libsvn_repos/rev_hunt.c,

subversion/libsvn_subr/deprecated.c,

subversion/libsvn_subr/mergeinfo.c,

subversion/svndumpfilter/main.c,

subversion/svnrdump/load_editor.c,

subversion/tests/libsvn_subr/mergeinfo-test.c

(...everywhere...): Use it.

  1. … 22 more files in changeset.
Prevent path-handling related deprecation warnings. Since they happen

in code of functons that are deprecated themselves, we need a workaround

here: move the actual code to a static *_internal function and let

the public deprecated API as well as its users call that internal

(non-deprecated) function.

* subversion/libsvn_subr/deprecated.c

(svn_path_is_canonical): move from here to the next file

* subversion/libsvn_subr/path.c

(svn_path_is_canonical_internal,

svn_path_is_canonical): make the function body available internally

without deprecation warning

(svn_path_join_internal,

svn_path_join): do a similar split; call svn_path_is_canonical_internal

to prevent deprecation warnings

(svn_path_join_many,

svn_path_dirname,

svn_path_basename,

svn_path_decompose): call *_internal functions

  1. … 1 more file in changeset.
Follow-up to r1239841: Fix many crashes and test failures (ooops!)

* subversion/libsvn_subr/deprecated.c

(svn_io_start_cmd2): Properly pass arguments on to svn_io_start_cmd3().

Allow callers of svn_io_start_cmd() to specify custom environments the

child process should inherit.

This commit enhances the svn_io_start_cmd() API, but nothing uses the

new functionality yet.

* subversion/include/svn_io.h

(svn_io_start_cmd3): Declare.

(svn_io_start_cmd2): Deprecate.

* subversion/libsvn_subr/deprecated.c

(svn_io_start_cmd2): Re-implement as wrapper around svn_io_start_cmd3().

* subversion/libsvn_subr/io.c

(svn_io_start_cmd3): New. Like svn_io_start_cmd2(), but with a new

ENV parameter that can be used to inherit a custom environment to

the child process.

  1. … 2 more files in changeset.
For issue #2487, "mod_dav_svn and locales fail to play nicely together",

add a new configuration option which allows Subversion libraries called

from mod_dav_svn to process UTF-8 strings, instead of just ASCII strings.

Because httpd is not locale-aware, we cannot assume that a native character

set other than ASCII is present in the environment that mod_dav_svn runs in.

UTF-8 is backward compatible to ASCII, and all paths within Subversion

repositories are already encoded in UTF-8. Thus, we can safely allow UTF-8

without running into character set conversion issues in code called from

mod_dav_svn.

Basic testing shows that httpd is prepared to tolerate non-ASCII characters,

even though it doesn't seem to interpret them. E.g. it logs such characters

as hex codes preceded by a backslash.

The new configuration option is called SVNUseUTF8 and can be set to

"On" or "Off" (the default is "Off"). It is a global option that takes

effect for all repository locations defined in the configuration file.

When the option is "On", files that contain UTF-8 characters in their

names can be processed by the pre-lock hook, hooks are able to write

UTF-8 characters to stdout and stderr, and filesystem paths to Subversion

repositories may contain UTF-8 characters.

* subversion/mod_dav_svn/mod_dav_svn.c

(server_conf_t): Add use_utf8 boolean.

(init): Initialise the native character set of Subversion's UTF-8

conversion routines to either ASCII (default) or UTF-8.

(SVNUseUTF8_cmd): New option command processor.

(cmds): Add new "SVNUseUTF8" option.

* subversion/include/svn_utf.h

(svn_utf_initialize2): Declare. Includes the ablity to force the native

character set to UTF-8, regardless of locale.

(svn_utf_initialize): Deprecate.

* subversion/libsvn_subr/deprecated.c

(svn_utf_initialize): Re-implement as wrapper around svn_utf_initialize2().

* subversion/libsvn_subr/cmdline.c

(svn_cmdline_init): Update funtion call to svn_utf_initialize2(), keeping

the native character set based on the current locale.

* subversion/libsvn_subr/utf.c

(svn_utf_initialize2): New.

(assume_native_charset_is_utf8): New global boolean variable. Defaults

to FALSE, and may be set to TRUE by svn_utf_initialize2() (which, like

its predecessor, is documented to not be thread-safe).

(get_ntou_xlate_handle_node, get_uton_xlate_handle_node): If the native

character set has been forced to UTF-8, use SVN_APR_UTF8_CHARSET instead

of SVN_APR_LOCALE_CHARSET.

  1. … 4 more files in changeset.
Rev svn_mergeinfo_diff() to allow it to take a scratch_pool.

* subversion/include/svn_mergeinfo.h

(svn_mergeinfo_diff2): New.

(svn_mergeinfo_diff): Deprecated.

* subversion/libsvn_subr/deprecated.c

(svn_mergeinfo_diff): New wrapper function.

* subversion/libsvn_subr/mergeinfo.c

(svn_mergeinfo_diff2): New, now with better pool management!

(svn_mergeinfo__equals): Use the updated API.

  1. … 2 more files in changeset.
Move some deprecated API implementations to deprecated.c.

* subversion/libsvn_subr/mergeinfo.c

(svn_mergeinfo_intersect,

svn_mergeinfo_remove): Move these from here to...

* subversion/libsvn_subr/deprecated.c

(svn_mergeinfo_intersect,

svn_mergeinfo_remove): here...

(svn_rangelist_merge,

svn_mergeinfo_merge): Move these up to the 'From mergeinfo.c' group.

  1. … 1 more file in changeset.
Rev svn_mergeinfo_merge API to use the two-pool paradigm.

* subversion/include/svn_mergeinfo.h

(svn_mergeinfo_merge2): New.

(svn_mergeinfo_merge): Deprecated.

* subversion/libsvn_subr/mergeinfo.c

(svn_mergeinfo_merge2): New.

(svn_mergeinfo_merge): Move to deprecated.c.

(svn_mergeinfo_catalog_merge): Use the new API.

* subversion/libsvn_subr/deprecated.c

(svn_mergeinfo_merge): Move svn_mergeinfo_merge implementation to here.

* subversion/libsvn_client/merge.c

(update_wc_mergeinfo,

log_find_operative_revs):

* subversion/libsvn_repos/log.c

(get_combined_mergeinfo_changes,

store_search,

get_paths_history_as_mergeinfo):

Update all callers of svn_mergeinfo_merge, with access to a scratch pool,

to the new API.

  1. … 4 more files in changeset.
Add svn_rangelist_merge2() which modifies the rangelist in-place to produce

its result, instead of allocating a new rangelist, and also uses the dual-pool

paradigm. The previous svn_rangelist_merge() implementation was awkward

to call from within a loop without potentially using a lot of memory (see

r1148566 for an example).

Suggested by: philip

* subversion/include/svn_mergeinfo.h

(svn_rangelist_merge2): Declare.

(svn_rangelist_merge): Deprecate.

* subversion/libsvn_subr/deprecated.c

(svn_rangelist_merge): Implement as a wrapper around svn_rangelist_merge2().

* subversion/libsvn_subr/mergeinfo.c

(svn_rangelist_merge): Rename to ...

(svn_rangelist_merge2): ... this. Change the RANGELIST parameter to

an apr_array_header_t* (rather than apr_array_header_t**). Replace

the POOL parameter with RESULT_POOL and SCRATCH_POOL parameters.

Produce the merged rangelist in place, allocating any elements newly

added to the array in RESULT_POOL.

  1. … 2 more files in changeset.
Followup to r1140505. Fix indentation.

* [everywhere]: Fix indentation fallout from the

svn_error_return() -> svn_error_trace() rename.

Patch by: Noorul Islam K M <noorul{_AT_}collab.net>

  1. … 37 more files in changeset.
Rename the 'svn_error_return' macro to 'svn_error_trace'.

See email thread "[RFC] Rename 'svn_error_return' to 'svn_error_trace'?" on

2011-06-23, <http://svn.haxx.se/dev/archive-2011-06/0708.shtml>.

* subversion/include/svn_error.h

(svn_error_return): Rename to svn_error_trace.

(SVN_ERR, svn_error_purge_tracing): Track the rename.

* [everywhere]: Track the rename.

  1. … 120 more files in changeset.
Make it possible to add encoding information to XML headers.

* subversion/include/svn_xml.h

(svn_xml_make_header2): Declare.

(svn_xml_make_header): Deprecate.

* subversion/libsvn_subr/deprecated.c

(svn_xml_make_header): Moved to here from libsvn_subr/xml.c.

* subversion/libsvn_subr/xml.c

(svn_xml_make_header2): New. Like svn_xml_make_header() but also accepts

an ENCODING parameter which, if not NULL, specifies the name of the

encoding of the document and causes an 'encoding' attribute in the header.

  1. … 2 more files in changeset.
Remove svn_io_file_create2() which is unused.

* subversion/include/svn_io.h

(svn_io_file_create2): Remove.

(svn_io_file_create): Stop refering to it.

* subversion/libsvn_subr/deprecated.c

(svn_io_file_create): Remove here.

* subversion/libsvn_subr/io.c

(svn_io_file_create): Rename from svn_io_file_create2(), adjusting.

  1. … 2 more files in changeset.
Reinstate the one function that is needed for the 1.6 commmand

line client to use the 1.7 libraries. This is only active when

configured with --disable-full-version-match for testing.

Remove the code that allowed 1.6 libsvn_client to use the other

1.7 libraries as it has suffered bit-rot and no longer works.

Several other functions would have to be provided for this to

work.

* subversion/libsvn_subr/deprecated.c

(svn_opt__eat_peg_revisions): Add.

* subversion/libsvn_wc/deprecated.c

(svn_wc__entry_versioned_internal): Remove.

  1. … 1 more file in changeset.
Allocate a struct on the stack.

Suggested by: gstein

* subversion/libsvn_subr/deprecated.c

(svn_io_file_create): Shallow copy the C string to a stack svn_string_t.

Revv the svn_io_file_create() API to take non-NUL-terminated strings.

* subversion/include/svn_io.h

(svn_io_file_create2): New.

(svn_io_file_create): Deprecate.

* subversion/libsvn_subr/io.c

(svn_io_file_create2): Renamed from svn_io_file_create().

* subversion/libsvn_subr/deprecated.c

(svn_io_file_create): New wrapper.

  1. … 2 more files in changeset.
Remove the unused pool argument from svn_relpath_is_canonical(). I can't

think of a reason why we are ever going to use that later with our

current definition of what is and isn't a valid relpath.

No functional changes.

* subversion/include/svn_dirent_uri.h

(svn_relpath_is_canonical): Remove argument.

* subversion/libsvn_subr/deprecated.c

* subversion/libsvn_subr/dirent_uri.c

* subversion/libsvn_subr/mergeinfo.c

* subversion/libsvn_wc/old-and-busted.c

* subversion/libsvn_wc/relocate.c

* subversion/libsvn_wc/util.c

* subversion/libsvn_wc/wc_db.c

* subversion/mod_dav_svn/util.c

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

(*): Update callers.

  1. … 9 more files in changeset.
Merge all changes (r1068684, r1072297) from the

integrate-io-improvements branch.

These patches reduce the calling overhead in various I/O-related functions.

  1. … 8 more files in changeset.
Fix Issue #3781 (Case sensitive authz).

* subversion/tests/cmdline/authz_tests.py

(case_sensitive_authz): Removed XFail decorator.

* subversion/include/svn_config.h

(svn_config_create) : Documented new parameter.

(svn_config_read) : Deprecated.

(svn_config_read2) : New function prototype, updated documentation.

* subversion/libsvn_subr/config_impl.h

(svn_config_t): Added a new boolean called section_names_case_sensitive.

* subversion/libsvn_subr/deprecated.c

(svn_config_read): New function that calls svn_config_read2

with section_names_case_sensitive as FALSE.

* subversion/libsvn_subr/config.c

(svn_config_create): Added a parameter section_names_case_sensitive

which is used to initialize the config.

(find_option,

svn_config_set) : Added logic to make section names case sensitive.

(svn_config_read) : Deprecated.

(svn_config_read2) : New function that deprecates svn_config_read.

Accepts a boolean section_names_case_sensitive,

and populates the section names case sensitively

if TRUE.

* subversion/libsvn_repos/authz.c

(svn_repos_authz_read) : Fixed the caller with

section_names_case_sensitive as TRUE.

* subversion/tests/cmdline/atomic-ra-revprop-change.c

(construct_config) : Fixed call of svn_config_create.

Patch by: Arwin Arni <arwin{_AT_}collab.net>

  1. … 6 more files in changeset.
Extend svn_subst_translate_string2() with another parameter, REPAIR, to allow

the caller to customize whether line ending repairs are performed.

As discussed at:

http://thread.gmane.org/gmane.comp.version-control.subversion.devel/125050

* subversion/include/svn_subst.h

(svn_subst_translate_string2): Add a REPAIR parameter. Update the

documentation of the function.

* subversion/libsvn_subr/subst.c

(svn_subst_translate_string2): Add a REPAIR parameter. Pass the value through

to translate_cstring().

* subversion/libsvn_subr/deprecated.c

(svn_subst_translate_string): Call svn_subst_translate_string2() with REPAIR

set to FALSE.

* subversion/svn/util.c

(svn_cl__edit_string_externally, svn_cl__get_log_message): Call

svn_subst_translate_string2() with REPAIR set to FALSE.

* subversion/svn/propset-cmd.c

(svn_cl__propset): Call svn_subst_translate_string2() with REPAIR set to

FALSE.

* subversion/svn/lock-cmd.c

(get_comment): Call svn_subst_translate_string2() with REPAIR set to FALSE.

* subversion/svnadmin/main.c

(set_revprop): Call svn_subst_translate_string2() with REPAIR set to FALSE.

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

(test_svn_subst_translate_string2): Call svn_subst_translate_string2() with

REPAIR set to FALSE. Also test that inconsistent line endings result in

SVN_ERR_IO_INCONSISTENT_EOL when REPAIR is FALSE.

(test_repairing_svn_subst_translate_string2): New test case that tests a

repairing translation.

(test_funcs): Add test_repairing_svn_subst_translate_string2.

Patch by: Danny Trebbien <dtrebbien{_AT_}gmail.com>

  1. … 7 more files in changeset.
Add a public API function, svn_subst_translate_string2(), an extension of

svn_subst_translate_string(), that has two additional output parameters for

determining whether re-encoding and/or line ending translation were performed.

As discussed at:

<http://thread.gmane.org/gmane.comp.version-control.subversion.devel/122550>

<http://thread.gmane.org/gmane.comp.version-control.subversion.devel/123020>

The essential changes are to the translate_newline() function, which now takes

an svn_boolean_t pointer, the value at which is set to TRUE if the pointer is

non-NULL and a different newline is written out. Most other changes are to pass

the svn_boolean_t pointer through to translate_newline().

* build.conf

Configure subversion/tests/libsvn_subr/subst_translate-test

* subversion/include/svn_subst.h

(svn_subst_translate_string2): New function.

(svn_subst_translate_string): Deprecate in favor of

svn_subst_translate_string2().

* subversion/libsvn_subr/subst.c

(STRING_IS_EOL): New macro that tests whether a string is an end-of-line

string ("\n", "\r", "\r\n").

(DIFFERENT_EOL_STRINGS): New macro that tests whether two end-of-line strings

are different.

(translate_newline): Add the TRANSLATED_EOL parameter. If the function

writes out a different newline, then it sets TRANSLATED_EOL to TRUE.

(translation_baton): Add the TRANSLATED_EOL field.

(create_translation_baton): Add a new parameter TRANSLATED_EOL that is

passed to the resulting translation_baton.

(translate_chunk): When calling translate_newline(), pass TRANSLATED_EOL from

the translation_baton.

(stream_translated): New static function. Its implementation is the old

implementation of svn_subst_stream_translated(), but accepting another

parameter, TRANSLATED_EOL, that is passed to the in/out translation batons

that it creates.

(svn_subst_stream_translated): Now a wrapper for stream_translated().

(translate_cstring): New static function. Its implementation is the old

implementation of svn_subst_translate_cstring2(), but modified to accept

another parameter, TRANSLATED_EOL, that is passed to stream_translated().

(svn_subst_translate_cstring2): Now a wrapper for translate_cstring().

(svn_subst_translate_string): Move to deprecated.c.

(svn_subst_translate_string2): New function. It takes three additional

parameters: TRANSLATED_TO_UTF8, TRANSLATED_LINE_ENDINGS, and another pool

parameter. The task of recording whether it translates a line ending is

delegated to translate_cstring().

* subversion/libsvn_subr/deprecated.c

(svn_subst_translate_string): Now a wrapper for svn_subst_translate_string2().

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

New test suite for the svn_subst_translate_* functions.

Patch by: Danny Trebbien <dtrebbien{_AT_}gmail.com>

  1. … 4 more files in changeset.
Rev the svn_io_start_cmd() API, adding pipe support.

* subversion/libsvn_subr/io.c

(svn_io_start_cmd2): New revision of svn_io_start_cmd(), adding

booleans to indicate where pipes should be used instead of file

handles.

(svn_io_start_cmd): Moved to deprecated.c.

* subversion/libsvn_subr/deprecated.c

(svn_io_start_cmd): Moved here from io.c, and reduced to a mere

wrapper around svn_io_start_cmd2().

* subversion/include/svn_io.h

(svn_io_start_cmd2): New revision of svn_io_start_cmd2().

(svn_io_start_cmd): Deprecate this function.

Patch by: Martin Furter <mf@rola.ch>

(Tweaked by cmpilato.)

  1. … 2 more files in changeset.
Tighten variable scope in many locations.

Found by: Philipp Kloke <philipp.kloke@web.de>

* subversion/libsvn_diff/diff_file.c,

subversion/libsvn_subr/error.c,

subversion/libsvn_subr/opt.c,

subversion/libsvn_subr/dirent_uri.c,

subversion/libsvn_subr/deprecated.c,

subversion/libsvn_subr/io.c,

subversion/libsvn_ra_local/ra_plugin.c,

subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c,

subversion/mod_dav_svn/reports/update.c,

subversion/tests/svn_test_main.c,

subversion/svndumpfilter/main.c,

subversion/libsvn_ra_svn/cyrus_auth.c,

subversion/libsvn_ra_svn/marshal.c,

subversion/svn/propdel-cmd.c,

subversion/svn/propget-cmd.c,

subversion/svn/log-cmd.c,

subversion/svn/propset-cmd.c,

subversion/svn/switch-cmd.c,

subversion/svn/proplist-cmd.c,

subversion/svn/propedit-cmd.c,

subversion/libsvn_fs_base/tree.c,

subversion/libsvn_fs_base/revs-txns.c,

subversion/libsvn_wc/deprecated.c,

subversion/libsvn_wc/update_editor.c,

subversion/libsvn_wc/old-and-busted.c,

subversion/libsvn_wc/wc_db.c,

subversion/svnlook/main.c,

subversion/libsvn_client/export.c,

subversion/libsvn_client/patch.c,

subversion/libsvn_client/merge.c,

subversion/libsvn_client/mergeinfo.c,

subversion/libsvn_ra_neon/mergeinfo.c,

subversion/libsvn_ra_serf/mergeinfo.c,

subversion/libsvn_repos/reporter.c,

subversion/libsvn_repos/fs-wrap.c,

subversion/libsvn_repos/delta.c,

subversion/svnserve/serve.c:

Tighten variable scope.

  1. … 36 more files in changeset.
r950445 changed the semantics of svn_io_dir_walk() to also pass

APR_LNK filetypes to the provided callback function. After some list

discussion, I think this violates our compatability promises. So I'm

effectively reverting svn_io_dir_walk() to its original behavior, and

revving the API to include the new behavior.

### NOTE: Had to fix the recursion in svn_io_dir_walk2() in r967198. ###

* subversion/include/svn_io.h

(svn_io_dir_walk2): New.

(svn_io_dir_walk): Deprecate this.

* subversion/libsvn_subr/io.c

(svn_io_dir_walk2): Renamed from svn_io_dir_walk().

* subversion/libsvn_subr/deprecated.c

(walk_func_filter_baton_t, walk_func_filter_func): New callback

function and baton.

(svn_io_dir_walk): Recreate here as just a wrapper around

svn_io_dir_walk2() which uses a filtering callback function to

ensure the promised semantics.

* subversion/libsvn_repos/repos.c

(svn_repos_hotcopy): Use svn_io_dir_walk2() instead of svn_io_dir_walk().

  1. … 3 more files in changeset.