Author: hwright
Date: Wed Sep 8 19:22:29 2010
New Revision: 995212
URL: http://svn.apache.org/viewvc?rev=995212&view=rev
Log:
Merge r985014, r985669, and r987893 from the performance branch, which make
use of the svn_ctype_is* functions more uniform.
This also adds an include to subversion/libsvn_fs_fs/fs_fs.c which was added
as part of r983430 on the performance branch. That revision is not related
to the above, and so isn't being merged here.
Modified:
subversion/trunk/ (props changed)
subversion/trunk/subversion/libsvn_client/add.c
subversion/trunk/subversion/libsvn_fs_fs/fs_fs.c
subversion/trunk/subversion/libsvn_ra_svn/marshal.c
subversion/trunk/subversion/libsvn_repos/load.c
subversion/trunk/subversion/libsvn_subr/config_file.c
subversion/trunk/subversion/libsvn_subr/dirent_uri.c
subversion/trunk/subversion/libsvn_subr/io.c
subversion/trunk/subversion/libsvn_subr/opt.c
subversion/trunk/subversion/libsvn_subr/path.c
subversion/trunk/subversion/libsvn_subr/svn_string.c
subversion/trunk/subversion/libsvn_subr/utf.c
subversion/trunk/subversion/libsvn_subr/validate.c
subversion/trunk/subversion/mod_dav_svn/repos.c
subversion/trunk/subversion/svn/util.c
subversion/trunk/subversion/svnserve/log-escape.c
subversion/trunk/subversion/tests/libsvn_delta/delta-window-test.h
subversion/trunk/subversion/tests/svn_test_main.c
Propchange: subversion/trunk/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Sep 8 19:22:29 2010
@@ -22,7 +22,7 @@
/subversion/branches/log-g-performance:870941-871032
/subversion/branches/merge-skips-obstructions:874525-874615
/subversion/branches/nfc-nfd-aware-client:870276,870376
-/subversion/branches/performance:983764,983766,984927
+/subversion/branches/performance:983764,983766,984927,985014,985669,987893
/subversion/branches/ra_serf-digest-authn:875693-876404
/subversion/branches/reintegrate-improvements:873853-874164
/subversion/branches/subtree-mergeinfo:876734-878766
Modified: subversion/trunk/subversion/libsvn_client/add.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/add.c?rev=995212&r1=995211&r2=995212&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/add.c (original)
+++ subversion/trunk/subversion/libsvn_client/add.c Wed Sep 8 19:22:29 2010
@@ -43,6 +43,7 @@
#include "svn_hash.h"
#include "svn_sorts.h"
#include "client.h"
+#include "svn_ctype.h"
#include "private/svn_wc_private.h"
@@ -80,11 +81,11 @@ trim_string(char **pstr)
char *str = *pstr;
size_t i;
- while (apr_isspace(*str))
+ while (svn_ctype_isspace(*str))
str++;
*pstr = str;
i = strlen(str);
- while ((i > 0) && apr_isspace(str[i-1]))
+ while ((i > 0) && svn_ctype_isspace(str[i-1]))
i--;
str[i] = '\0';
}
Modified: subversion/trunk/subversion/libsvn_fs_fs/fs_fs.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_fs/fs_fs.c?rev=995212&r1=995211&r2=995212&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_fs_fs/fs_fs.c (original)
+++ subversion/trunk/subversion/libsvn_fs_fs/fs_fs.c Wed Sep 8 19:22:29 2010
@@ -47,6 +47,7 @@
#include "svn_time.h"
#include "svn_mergeinfo.h"
#include "svn_config.h"
+#include "svn_ctype.h"
#include "fs.h"
#include "err.h"
@@ -916,7 +917,7 @@ check_format_file_buffer_numeric(const c
const char *p;
for (p = buf + offset; *p; p++)
- if (!apr_isdigit(*p))
+ if (!svn_ctype_isdigit(*p))
return svn_error_createf(SVN_ERR_BAD_VERSION_FILE_FORMAT, NULL,
_("Format file '%s' contains unexpected non-digit '%c' within '%s'"),
svn_dirent_local_style(path, pool), *p, buf);
Modified: subversion/trunk/subversion/libsvn_ra_svn/marshal.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_svn/marshal.c?rev=995212&r1=995211&r2=995212&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_svn/marshal.c (original)
+++ subversion/trunk/subversion/libsvn_ra_svn/marshal.c Wed Sep 8 19:22:29 2010
@@ -38,6 +38,7 @@
#include "svn_pools.h"
#include "svn_ra_svn.h"
#include "svn_private_config.h"
+#include "svn_ctype.h"
#include "ra_svn.h"
@@ -593,7 +594,7 @@ static svn_error_t *read_item(svn_ra_svn
/* Determine the item type and read it in. Make sure that c is the
* first character at the end of the item so we can test to make
* sure it's whitespace. */
- if (apr_isdigit(c))
+ if (svn_ctype_isdigit(c))
{
/* It's a number or a string. Read the number part, either way. */
val = c - '0';
@@ -601,7 +602,7 @@ static svn_error_t *read_item(svn_ra_svn
{
prev_val = val;
SVN_ERR(readbuf_getchar(conn, pool, &c));
- if (!apr_isdigit(c))
+ if (!svn_ctype_isdigit(c))
break;
val = val * 10 + (c - '0');
if ((val / 10) != prev_val) /* val wrapped past maximum value */
@@ -621,14 +622,14 @@ static svn_error_t *read_item(svn_ra_svn
item->u.number = val;
}
}
- else if (apr_isalpha(c))
+ else if (svn_ctype_isalpha(c))
{
/* It's a word. */
str = svn_stringbuf_ncreate(&c, 1, pool);
while (1)
{
SVN_ERR(readbuf_getchar(conn, pool, &c));
- if (!apr_isalnum(c) && c != '-')
+ if (!svn_ctype_isalnum(c) && c != '-')
break;
svn_stringbuf_appendbytes(str, &c, 1);
}
Modified: subversion/trunk/subversion/libsvn_repos/load.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_repos/load.c?rev=995212&r1=995211&r2=995212&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_repos/load.c (original)
+++ subversion/trunk/subversion/libsvn_repos/load.c Wed Sep 8 19:22:29 2010
@@ -34,6 +34,7 @@
#include "svn_mergeinfo.h"
#include "svn_checksum.h"
#include "svn_subst.h"
+#include "svn_ctype.h"
#include <apr_lib.h>
@@ -735,7 +736,7 @@ svn_repos_parse_dumpstream2(svn_stream_t
return stream_ran_dry();
}
- if ((linebuf->len == 0) || (apr_isspace(linebuf->data[0])))
+ if ((linebuf->len == 0) || (svn_ctype_isspace(linebuf->data[0])))
continue; /* empty line ... loop */
/*** Found the beginning of a new record. ***/
Modified: subversion/trunk/subversion/libsvn_subr/config_file.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/config_file.c?rev=995212&r1=995211&r2=995212&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_subr/config_file.c (original)
+++ subversion/trunk/subversion/libsvn_subr/config_file.c Wed Sep 8 19:22:29
2010
@@ -34,6 +34,7 @@
#include "svn_utf.h"
#include "svn_pools.h"
#include "svn_user.h"
+#include "svn_ctype.h"
#include "svn_private_config.h"
@@ -121,7 +122,7 @@ skip_whitespace(parse_context_t *ctx, in
int count = 0;
SVN_ERR(parser_getc(ctx, &ch));
- while (ch != EOF && ch != '\n' && apr_isspace(ch))
+ while (ch != EOF && ch != '\n' && svn_ctype_isspace(ch))
{
++count;
SVN_ERR(parser_getc(ctx, &ch));
Modified: subversion/trunk/subversion/libsvn_subr/dirent_uri.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/dirent_uri.c?rev=995212&r1=995211&r2=995212&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_subr/dirent_uri.c (original)
+++ subversion/trunk/subversion/libsvn_subr/dirent_uri.c Wed Sep 8 19:22:29
2010
@@ -34,6 +34,7 @@
#include "svn_string.h"
#include "svn_dirent_uri.h"
#include "svn_path.h"
+#include "svn_ctype.h"
#include "dirent_uri.h"
@@ -549,7 +550,8 @@ canonicalize(path_type_t type, const cha
case '/':
break;
case '%':
- if (!apr_isxdigit(*(src+1)) || !apr_isxdigit(*(src+2)))
+ if (!svn_ctype_isxdigit(*(src+1)) ||
+ !svn_ctype_isxdigit(*(src+2)))
need_extra += 2;
else
src += 2;
@@ -585,7 +587,8 @@ canonicalize(path_type_t type, const cha
*(dst++) = '/';
break;
case '%':
- if (!apr_isxdigit(*(src+1)) || !apr_isxdigit(*(src+2)))
+ if (!svn_ctype_isxdigit(*(src+1)) ||
+ !svn_ctype_isxdigit(*(src+2)))
{
*(dst++) = '%';
*(dst++) = '2';
@@ -1899,7 +1902,7 @@ svn_uri_is_canonical(const char *uri, ap
char digitz[3];
int val;
- /* Can't use apr_isxdigit() because lower case letters are
+ /* Can't usesvn_ctype_isxdigit() because lower case letters are
not in our canonical format */
if (((*(ptr+1) < '0' || *(ptr+1) > '9'))
&& (*(ptr+1) < 'A' || *(ptr+1) > 'F'))
Modified: subversion/trunk/subversion/libsvn_subr/io.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/io.c?rev=995212&r1=995211&r2=995212&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_subr/io.c (original)
+++ subversion/trunk/subversion/libsvn_subr/io.c Wed Sep 8 19:22:29 2010
@@ -57,6 +57,7 @@
#include "svn_utf.h"
#include "svn_config.h"
#include "svn_private_config.h"
+#include "svn_ctype.h"
#include "private/svn_atomic.h"
@@ -3477,7 +3478,7 @@ svn_io_read_version_file(int *version,
if (i > 0 && (c == '\r' || c == '\n'))
break;
- if (! apr_isdigit(c))
+ if (! svn_ctype_isdigit(c))
return svn_error_createf
(SVN_ERR_BAD_VERSION_FILE_FORMAT, NULL,
_("First line of '%s' contains non-digit"),
Modified: subversion/trunk/subversion/libsvn_subr/opt.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/opt.c?rev=995212&r1=995211&r2=995212&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_subr/opt.c (original)
+++ subversion/trunk/subversion/libsvn_subr/opt.c Wed Sep 8 19:22:29 2010
@@ -43,6 +43,7 @@
#include "svn_utf.h"
#include "svn_time.h"
#include "svn_props.h"
+#include "svn_ctype.h"
#include "private/svn_opt_private.h"
@@ -456,11 +457,11 @@ static char *parse_one_rev(svn_opt_revis
revision->value.date = tm;
return end + 1;
}
- else if (apr_isdigit(*str))
+ else if (svn_ctype_isdigit(*str))
{
/* It's a number. */
end = str + 1;
- while (apr_isdigit(*end))
+ while (svn_ctype_isdigit(*end))
end++;
save = *end;
*end = '\0';
@@ -469,10 +470,10 @@ static char *parse_one_rev(svn_opt_revis
*end = save;
return end;
}
- else if (apr_isalpha(*str))
+ else if (svn_ctype_isalpha(*str))
{
end = str + 1;
- while (apr_isalpha(*end))
+ while (svn_ctype_isalpha(*end))
end++;
save = *end;
*end = '\0';
Modified: subversion/trunk/subversion/libsvn_subr/path.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/path.c?rev=995212&r1=995211&r2=995212&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_subr/path.c (original)
+++ subversion/trunk/subversion/libsvn_subr/path.c Wed Sep 8 19:22:29 2010
@@ -727,7 +727,8 @@ svn_path_is_uri_safe(const char *path)
/* Allow '%XX' (where each X is a hex digit) */
if (path[i] == '%')
{
- if (apr_isxdigit(path[i + 1]) && apr_isxdigit(path[i + 2]))
+ if (svn_ctype_isxdigit(path[i + 1]) &&
+ svn_ctype_isxdigit(path[i + 2]))
{
i += 2;
continue;
@@ -897,8 +898,8 @@ svn_path_uri_decode(const char *path, ap
* RFC 2396, section 3.3 */
c = ' ';
}
- else if (c == '%' && apr_isxdigit(path[i + 1])
- && apr_isxdigit(path[i+2]))
+ else if (c == '%' && svn_ctype_isxdigit(path[i + 1])
+ && svn_ctype_isxdigit(path[i+2]))
{
char digitz[3];
digitz[0] = path[++i];
Modified: subversion/trunk/subversion/libsvn_subr/svn_string.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/svn_string.c?rev=995212&r1=995211&r2=995212&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_subr/svn_string.c (original)
+++ subversion/trunk/subversion/libsvn_subr/svn_string.c Wed Sep 8 19:22:29
2010
@@ -88,7 +88,7 @@ string_first_non_whitespace(const char *
for (i = 0; i < len; i++)
{
- if (! apr_isspace(str[i]))
+ if (! svn_ctype_isspace(str[i]))
return i;
}
@@ -464,7 +464,7 @@ svn_stringbuf_strip_whitespace(svn_strin
str->blocksize -= offset;
/* Now that we've trimmed the front, trim the end, wasting more RAM. */
- while ((str->len > 0) && apr_isspace(str->data[str->len - 1]))
+ while ((str->len > 0) && svn_ctype_isspace(str->data[str->len - 1]))
str->len--;
str->data[str->len] = '\0';
}
@@ -506,12 +506,12 @@ svn_cstring_split_append(apr_array_heade
{
if (chop_whitespace)
{
- while (apr_isspace(*p))
+ while (svn_ctype_isspace(*p))
p++;
{
char *e = p + (strlen(p) - 1);
- while ((e >= p) && (apr_isspace(*e)))
+ while ((e >= p) && (svn_ctype_isspace(*e)))
e--;
*(++e) = '\0';
}
Modified: subversion/trunk/subversion/libsvn_subr/utf.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/utf.c?rev=995212&r1=995211&r2=995212&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_subr/utf.c (original)
+++ subversion/trunk/subversion/libsvn_subr/utf.c Wed Sep 8 19:22:29 2010
@@ -530,9 +530,9 @@ check_non_ascii(const char *data, apr_si
for (; len > 0; --len, data++)
{
- if ((! apr_isascii(*data))
- || ((! apr_isspace(*data))
- && apr_iscntrl(*data)))
+ if ((! svn_ctype_isascii(*data))
+ || ((! svn_ctype_isspace(*data))
+ && svn_ctype_iscntrl(*data)))
{
/* Show the printable part of the data, followed by the
decimal code of the questionable character. Because if a
Modified: subversion/trunk/subversion/libsvn_subr/validate.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/validate.c?rev=995212&r1=995211&r2=995212&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_subr/validate.c (original)
+++ subversion/trunk/subversion/libsvn_subr/validate.c Wed Sep 8 19:22:29 2010
@@ -27,11 +27,11 @@
/*** Includes. ***/
-#include <apr_lib.h>
#define APR_WANT_STRFUNC
#include <apr_want.h>
#include "svn_error.h"
+#include "svn_ctype.h"
#include "svn_private_config.h"
@@ -63,9 +63,9 @@ svn_mime_type_validate(const char *mime_
for (i = 0; i < len; i++)
{
if (&mime_type[i] != slash_pos
- && (! apr_isascii(mime_type[i])
- || apr_iscntrl(mime_type[i])
- || apr_isspace(mime_type[i])
+ && (! svn_ctype_isascii(mime_type[i])
+ || svn_ctype_iscntrl(mime_type[i])
+ || svn_ctype_isspace(mime_type[i])
|| (strchr(tspecials, mime_type[i]) != NULL)))
return svn_error_createf
(SVN_ERR_BAD_MIME_TYPE, NULL,
Modified: subversion/trunk/subversion/mod_dav_svn/repos.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/mod_dav_svn/repos.c?rev=995212&r1=995211&r2=995212&view=diff
==============================================================================
--- subversion/trunk/subversion/mod_dav_svn/repos.c (original)
+++ subversion/trunk/subversion/mod_dav_svn/repos.c Wed Sep 8 19:22:29 2010
@@ -44,6 +44,7 @@
#include "svn_sorts.h"
#include "svn_version.h"
#include "svn_props.h"
+#include "svn_ctype.h"
#include "mod_dav_svn.h"
#include "svn_ra.h" /* for SVN_RA_CAPABILITY_* */
#include "svn_dirent_uri.h"
@@ -1519,7 +1520,7 @@ static const char *get_entry(apr_pool_t
/* Look for 'var = value' --- and make sure the var is in lcase. */
- for (cp = parm; (*cp && !apr_isspace(*cp) && *cp != '='); ++cp)
+ for (cp = parm; (*cp && !svn_ctype_isspace(*cp) && *cp != '='); ++cp)
{
*cp = apr_tolower(*cp);
}
@@ -1530,7 +1531,7 @@ static const char *get_entry(apr_pool_t
}
*cp++ = '\0'; /* Delimit var */
- while (*cp && (apr_isspace(*cp) || *cp == '='))
+ while (*cp && (svn_ctype_isspace(*cp) || *cp == '='))
{
++cp;
}
@@ -1544,7 +1545,7 @@ static const char *get_entry(apr_pool_t
}
else
{
- for (end = cp; (*end && !apr_isspace(*end)); end++);
+ for (end = cp; (*end && !svn_ctype_isspace(*end)); end++);
}
if (*end)
{
Modified: subversion/trunk/subversion/svn/util.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/util.c?rev=995212&r1=995211&r2=995212&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/util.c (original)
+++ subversion/trunk/subversion/svn/util.c Wed Sep 8 19:22:29 2010
@@ -829,8 +829,8 @@ svn_cl__get_log_message(const char **log
for (len = message->len - 1; len >= 0; len--)
{
/* FIXME: should really use an UTF-8 whitespace test
- rather than apr_isspace, which is locale dependant */
- if (! apr_isspace(message->data[len]))
+ rather than svn_ctype_isspace, which is ASCII only */
+ if (! svn_ctype_isspace(message->data[len]))
break;
}
if (len < 0)
Modified: subversion/trunk/subversion/svnserve/log-escape.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/svnserve/log-escape.c?rev=995212&r1=995211&r2=995212&view=diff
==============================================================================
--- subversion/trunk/subversion/svnserve/log-escape.c (original)
+++ subversion/trunk/subversion/svnserve/log-escape.c Wed Sep 8 19:22:29 2010
@@ -40,10 +40,10 @@
#include <apr.h>
-#include <apr_lib.h>
#define APR_WANT_STRFUNC
#include <apr_want.h>
#include "server.h"
+#include "svn_ctype.h"
/* copied from httpd-2.2.4/server/util.c */
/* c2x takes an unsigned, and expects the caller has guaranteed that
@@ -93,7 +93,9 @@ apr_size_t escape_errorlog_item(char *de
which does this same check with a fast lookup table. Well,
mostly the same; we don't escape quotes, as that does.
*/
- if (*s && (!apr_isprint(*s) || *s == '\\' || apr_iscntrl(*s))) {
+ if (*s && ( !svn_ctype_isprint(*s)
+ || *s == '\\'
+ || svn_ctype_iscntrl(*s))) {
*d++ = '\\';
if (d >= ep) {
--d;
Modified: subversion/trunk/subversion/tests/libsvn_delta/delta-window-test.h
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/libsvn_delta/delta-window-test.h?rev=995212&r1=995211&r2=995212&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/libsvn_delta/delta-window-test.h
(original)
+++ subversion/trunk/subversion/tests/libsvn_delta/delta-window-test.h Wed Sep
8 19:22:29 2010
@@ -26,9 +26,9 @@
#define APR_WANT_STDIO
#define APR_WANT_STRFUNC
#include <apr_want.h>
-#include <apr_lib.h>
#include "svn_delta.h"
+#include "svn_ctype.h"
static apr_off_t
delta_window_size_estimate(const svn_txdelta_window_t *window)
@@ -99,7 +99,7 @@ delta_window_print(const svn_txdelta_win
for (tmp = offset; tmp < offset + length; ++tmp)
{
int const dat = window->new_data->data[tmp];
- if (apr_iscntrl(dat) || !apr_isascii(dat))
+ if (svn_ctype_iscntrl(dat) || !svn_ctype_isascii(dat))
fprintf(stream, "\\%3.3o", dat & 0xff);
else if (dat == '\\')
fputs("\\\\", stream);
Modified: subversion/trunk/subversion/tests/svn_test_main.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/svn_test_main.c?rev=995212&r1=995211&r2=995212&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/svn_test_main.c (original)
+++ subversion/trunk/subversion/tests/svn_test_main.c Wed Sep 8 19:22:29 2010
@@ -29,7 +29,6 @@
#include <apr_pools.h>
#include <apr_general.h>
-#include <apr_lib.h>
#include "svn_cmdline.h"
#include "svn_opt.h"
@@ -38,6 +37,7 @@
#include "svn_test.h"
#include "svn_io.h"
#include "svn_path.h"
+#include "svn_ctype.h"
#include "svn_private_config.h"
@@ -262,7 +262,7 @@ do_test_num(const char *progname,
printf("WARNING: Test docstring exceeds 50 characters\n");
if (msg[len - 1] == '.')
printf("WARNING: Test docstring ends in a period (.)\n");
- if (apr_isupper(msg[0]))
+ if (svn_ctype_isupper(msg[0]))
printf("WARNING: Test docstring is capitalized\n");
}
if (desc->msg == NULL)
@@ -425,7 +425,7 @@ main(int argc, const char *argv[])
{
for (i = 1; i < argc; i++)
{
- if (apr_isdigit(argv[i][0]))
+ if (svn_ctype_isdigit(argv[i][0]))
{
ran_a_test = TRUE;
test_num = atoi(argv[i]);