summaryrefslogtreecommitdiff
path: root/subversion/libsvn_wc/old-and-busted.c
diff options
context:
space:
mode:
Diffstat (limited to 'subversion/libsvn_wc/old-and-busted.c')
-rw-r--r--subversion/libsvn_wc/old-and-busted.c49
1 files changed, 25 insertions, 24 deletions
diff --git a/subversion/libsvn_wc/old-and-busted.c b/subversion/libsvn_wc/old-and-busted.c
index c7cc249..b87be85 100644
--- a/subversion/libsvn_wc/old-and-busted.c
+++ b/subversion/libsvn_wc/old-and-busted.c
@@ -26,6 +26,7 @@
#include "svn_time.h"
#include "svn_xml.h"
#include "svn_dirent_uri.h"
+#include "svn_hash.h"
#include "svn_path.h"
#include "svn_ctype.h"
#include "svn_pools.h"
@@ -382,7 +383,7 @@ opt_revision_to_string(const char **str,
*str = apr_pstrmemdup(pool, "HEAD", 4);
break;
case svn_opt_revision_number:
- *str = apr_itoa(pool, rev->value.number);
+ *str = apr_ltoa(pool, rev->value.number);
break;
default:
return svn_error_createf
@@ -716,7 +717,7 @@ do_bool_attr(svn_boolean_t *entry_flag,
apr_hash_t *atts, const char *attr_name,
const char *entry_name)
{
- const char *str = apr_hash_get(atts, attr_name, APR_HASH_KEY_STRING);
+ const char *str = svn_hash_gets(atts, attr_name);
*entry_flag = FALSE;
if (str)
@@ -741,7 +742,7 @@ extract_string(apr_hash_t *atts,
const char *att_name,
apr_pool_t *result_pool)
{
- const char *value = apr_hash_get(atts, att_name, APR_HASH_KEY_STRING);
+ const char *value = svn_hash_gets(atts, att_name);
if (value == NULL)
return NULL;
@@ -756,7 +757,7 @@ extract_string_normalize(apr_hash_t *atts,
const char *att_name,
apr_pool_t *result_pool)
{
- const char *value = apr_hash_get(atts, att_name, APR_HASH_KEY_STRING);
+ const char *value = svn_hash_gets(atts, att_name);
if (value == NULL)
return NULL;
@@ -790,7 +791,7 @@ atts_to_entry(svn_wc_entry_t **new_entry,
const char *name;
/* Find the name and set up the entry under that name. */
- name = apr_hash_get(atts, ENTRIES_ATTR_NAME, APR_HASH_KEY_STRING);
+ name = svn_hash_gets(atts, ENTRIES_ATTR_NAME);
entry->name = name ? apr_pstrdup(pool, name) : SVN_WC_ENTRY_THIS_DIR;
/* Attempt to set revision (resolve_to_defaults may do it later, too)
@@ -798,7 +799,7 @@ atts_to_entry(svn_wc_entry_t **new_entry,
### not used by loggy; no need to set MODIFY_FLAGS */
{
const char *revision_str
- = apr_hash_get(atts, ENTRIES_ATTR_REVISION, APR_HASH_KEY_STRING);
+ = svn_hash_gets(atts, ENTRIES_ATTR_REVISION);
if (revision_str)
entry->revision = SVN_STR_TO_REV(revision_str);
@@ -810,11 +811,15 @@ atts_to_entry(svn_wc_entry_t **new_entry,
### not used by loggy; no need to set MODIFY_FLAGS */
entry->url = extract_string(atts, ENTRIES_ATTR_URL, pool);
+ if (entry->url)
+ entry->url = svn_uri_canonicalize(entry->url, pool);
/* Set up repository root. Make sure it is a prefix of url.
### not used by loggy; no need to set MODIFY_FLAGS */
entry->repos = extract_string(atts, ENTRIES_ATTR_REPOS, pool);
+ if (entry->repos)
+ entry->repos = svn_uri_canonicalize(entry->repos, pool);
if (entry->url && entry->repos
&& !svn_uri__is_ancestor(entry->repos, entry->url))
@@ -827,7 +832,7 @@ atts_to_entry(svn_wc_entry_t **new_entry,
/* ### not used by loggy; no need to set MODIFY_FLAGS */
{
const char *kindstr
- = apr_hash_get(atts, ENTRIES_ATTR_KIND, APR_HASH_KEY_STRING);
+ = svn_hash_gets(atts, ENTRIES_ATTR_KIND);
entry->kind = svn_node_none;
if (kindstr)
@@ -848,7 +853,7 @@ atts_to_entry(svn_wc_entry_t **new_entry,
/* ### not used by loggy; no need to set MODIFY_FLAGS */
{
const char *schedulestr
- = apr_hash_get(atts, ENTRIES_ATTR_SCHEDULE, APR_HASH_KEY_STRING);
+ = svn_hash_gets(atts, ENTRIES_ATTR_SCHEDULE);
entry->schedule = svn_wc_schedule_normal;
if (schedulestr)
@@ -894,8 +899,7 @@ atts_to_entry(svn_wc_entry_t **new_entry,
{
const char *revstr;
- revstr = apr_hash_get(atts, ENTRIES_ATTR_COPYFROM_REV,
- APR_HASH_KEY_STRING);
+ revstr = svn_hash_gets(atts, ENTRIES_ATTR_COPYFROM_REV);
if (revstr)
entry->copyfrom_rev = SVN_STR_TO_REV(revstr);
}
@@ -921,8 +925,7 @@ atts_to_entry(svn_wc_entry_t **new_entry,
{
const char *text_timestr;
- text_timestr = apr_hash_get(atts, ENTRIES_ATTR_TEXT_TIME,
- APR_HASH_KEY_STRING);
+ text_timestr = svn_hash_gets(atts, ENTRIES_ATTR_TEXT_TIME);
if (text_timestr)
SVN_ERR(svn_time_from_cstring(&entry->text_time, text_timestr, pool));
@@ -945,8 +948,7 @@ atts_to_entry(svn_wc_entry_t **new_entry,
{
const char *cmt_datestr, *cmt_revstr;
- cmt_datestr = apr_hash_get(atts, ENTRIES_ATTR_CMT_DATE,
- APR_HASH_KEY_STRING);
+ cmt_datestr = svn_hash_gets(atts, ENTRIES_ATTR_CMT_DATE);
if (cmt_datestr)
{
SVN_ERR(svn_time_from_cstring(&entry->cmt_date, cmt_datestr, pool));
@@ -954,7 +956,7 @@ atts_to_entry(svn_wc_entry_t **new_entry,
else
entry->cmt_date = 0;
- cmt_revstr = apr_hash_get(atts, ENTRIES_ATTR_CMT_REV, APR_HASH_KEY_STRING);
+ cmt_revstr = svn_hash_gets(atts, ENTRIES_ATTR_CMT_REV);
if (cmt_revstr)
{
entry->cmt_rev = SVN_STR_TO_REV(cmt_revstr);
@@ -971,7 +973,7 @@ atts_to_entry(svn_wc_entry_t **new_entry,
entry->lock_comment = extract_string(atts, ENTRIES_ATTR_LOCK_COMMENT, pool);
{
const char *cdate_str =
- apr_hash_get(atts, ENTRIES_ATTR_LOCK_CREATION_DATE, APR_HASH_KEY_STRING);
+ svn_hash_gets(atts, ENTRIES_ATTR_LOCK_CREATION_DATE);
if (cdate_str)
{
SVN_ERR(svn_time_from_cstring(&entry->lock_creation_date,
@@ -987,8 +989,7 @@ atts_to_entry(svn_wc_entry_t **new_entry,
/* Translated size */
/* ### not used by loggy; no need to set MODIFY_FLAGS */
{
- const char *val = apr_hash_get(atts, ENTRIES_ATTR_WORKING_SIZE,
- APR_HASH_KEY_STRING);
+ const char *val = svn_hash_gets(atts, ENTRIES_ATTR_WORKING_SIZE);
if (val)
{
/* Cast to off_t; it's safe: we put in an off_t to start with... */
@@ -1045,7 +1046,7 @@ handle_start_tag(void *userData, const char *tagname, const char **atts)
/* Find the name and set up the entry under that name. This
should *NOT* be NULL, since svn_wc__atts_to_entry() should
have made it into SVN_WC_ENTRY_THIS_DIR. */
- apr_hash_set(accum->entries, entry->name, APR_HASH_KEY_STRING, entry);
+ svn_hash_sets(accum->entries, entry->name, entry);
}
/* Parse BUF of size SIZE as an entries file in XML format, storing the parsed
@@ -1131,7 +1132,7 @@ resolve_to_defaults(apr_hash_t *entries,
{
apr_hash_index_t *hi;
svn_wc_entry_t *default_entry
- = apr_hash_get(entries, SVN_WC_ENTRY_THIS_DIR, APR_HASH_KEY_STRING);
+ = svn_hash_gets(entries, SVN_WC_ENTRY_THIS_DIR);
/* First check the dir's own entry for consistency. */
if (! default_entry)
@@ -1259,12 +1260,12 @@ svn_wc__read_entries_old(apr_hash_t **entries,
++curp;
++entryno;
- apr_hash_set(*entries, entry->name, APR_HASH_KEY_STRING, entry);
+ svn_hash_sets(*entries, entry->name, entry);
}
}
/* Fill in any implied fields. */
- return resolve_to_defaults(*entries, result_pool);
+ return svn_error_trace(resolve_to_defaults(*entries, result_pool));
}
@@ -1327,8 +1328,8 @@ svn_wc_entry(const svn_wc_entry_t **entry,
/* Load an entries hash, and cache it into DIR_ACCESS. Go ahead and
fetch all entries here (optimization) since we know how to filter
out a "hidden" node. */
- SVN_ERR(svn_wc_entries_read(&entries, dir_access, TRUE, pool));
- *entry = apr_hash_get(entries, entry_name, APR_HASH_KEY_STRING);
+ SVN_ERR(svn_wc__entries_read_internal(&entries, dir_access, TRUE, pool));
+ *entry = svn_hash_gets(entries, entry_name);
if (!show_hidden && *entry != NULL)
{