Author: gstein Date: Mon May 10 20:07:53 2010 New Revision: 942886 URL: http://svn.apache.org/viewvc?rev=942886&view=rev Log: As a consequence of r942851, much of loggy_entry_modify() can go away. This also shifts-to/simplifies a bunch code in old-and-busted.
* subversion/libsvn_wc/log.c: (svn_wc__loggy_entry_modify): remove a bunch of attribute setup. remove a bunch of flags from the assertion, thus disallowing most flags. * subversion/libsvn_wc/entries.h: (SVN_WC__ENTRIES_ATTR_FILE_STR, SVN_WC__ENTRIES_ATTR_DIR_STR, SVN_WC__ENTRY_VALUE_ADD, SVN_WC__ENTRY_VALUE_DELETE, SVN_WC__ENTRY_VALUE_REPLACE): shifted to old-and-busted as ENTRIES_VALUE_* symbols. (SVN_WC__ENTRY_ATTR_KIND, SVN_WC__ENTRY_ATTR_CHECKSUM, SVN_WC__ENTRY_ATTR_SCHEDULE, SVN_WC__ENTRY_ATTR_COPIED, SVN_WC__ENTRY_ATTR_COPYFROM_URL, SVN_WC__ENTRY_ATTR_COPYFROM_REV): shifted to old-and-busted as ENTRIES_ATTR_* symbols * subversion/libsvn_wc/old-and-busted.c: (ENTRIES_ATTR_KIND, ENTRIES_ATTR_SCHEDULE, ENTRIES_ATTR_COPIED, ENTRIES_ATTR_COPYFROM_URL, ENTRIES_ATTR_COPYFROM_REV, ENTRIES_ATTR_CHECKSUM, ENTRIES_VALUE_FILE, ENTRIES_VALUE_DIR, ENTRIES_VALUE_ADD, ENTRIES_VALUE_DELETE, ENTRIES_VALUE_REPLACE): moved here from entries.h (read_entry): track symbol renames (do_bool_attr): this function no longer needs to set MODIFY_FLAGS. also remove the MODIFY_FLAG param and update docstring (extract_string): this function no longer needs to set MODIFY_FLAGS, and the NORMALIZE functionality is removed (to extract_string_normalize). also rip out the FLAG param. (extract_string_normalize): just like the original extract_string, but with hard-coded normalizing functionality. (svn_wc__atts_to_entry): track a bunch of symbol renames. remove MODIFY_FLAGS handling from all do_bool_attr() and extract_string() calls. for the four places using MODIFY_FLAGS (conflict file stuff), they also normalize them, so switch to extract_string_normalize(). Modified: subversion/trunk/subversion/libsvn_wc/entries.h subversion/trunk/subversion/libsvn_wc/log.c subversion/trunk/subversion/libsvn_wc/old-and-busted.c Modified: subversion/trunk/subversion/libsvn_wc/entries.h URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/entries.h?rev=942886&r1=942885&r2=942886&view=diff ============================================================================== --- subversion/trunk/subversion/libsvn_wc/entries.h (original) +++ subversion/trunk/subversion/libsvn_wc/entries.h Mon May 10 20:07:53 2010 @@ -37,12 +37,6 @@ extern "C" { #endif /* __cplusplus */ - -/* String representations for svn_node_kind. This maybe should be - abstracted farther out? */ -#define SVN_WC__ENTRIES_ATTR_FILE_STR "file" -#define SVN_WC__ENTRIES_ATTR_DIR_STR "dir" - /* The names of the fields used for storing entries' information. Used for the names of the XML attributes in XML entries files @@ -50,24 +44,13 @@ extern "C" { and for error reporting when reading a non-XML entries file. ### If you add or remove items here, you probably want to make sure to do the same for the SVN_WC__ENTRY_MODIFY_* #defines as well. */ -#define SVN_WC__ENTRY_ATTR_KIND "kind" #define SVN_WC__ENTRY_ATTR_TEXT_TIME "text-time" -#define SVN_WC__ENTRY_ATTR_CHECKSUM "checksum" -#define SVN_WC__ENTRY_ATTR_SCHEDULE "schedule" -#define SVN_WC__ENTRY_ATTR_COPIED "copied" -#define SVN_WC__ENTRY_ATTR_COPYFROM_URL "copyfrom-url" -#define SVN_WC__ENTRY_ATTR_COPYFROM_REV "copyfrom-rev" #define SVN_WC__ENTRY_ATTR_CONFLICT_OLD "conflict-old" /* saved old file */ #define SVN_WC__ENTRY_ATTR_CONFLICT_NEW "conflict-new" /* saved new file */ #define SVN_WC__ENTRY_ATTR_CONFLICT_WRK "conflict-wrk" /* saved wrk file */ #define SVN_WC__ENTRY_ATTR_PREJFILE "prop-reject-file" #define SVN_WC__ENTRY_ATTR_WORKING_SIZE "working-size" -/* Attribute values for 'schedule' */ -#define SVN_WC__ENTRY_VALUE_ADD "add" -#define SVN_WC__ENTRY_VALUE_DELETE "delete" -#define SVN_WC__ENTRY_VALUE_REPLACE "replace" - /* Set *NEW_ENTRY to a new entry, taking attributes from ATTS, whose keys and values are both char *. Allocate the entry and copy Modified: subversion/trunk/subversion/libsvn_wc/log.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/log.c?rev=942886&r1=942885&r2=942886&view=diff ============================================================================== --- subversion/trunk/subversion/libsvn_wc/log.c (original) +++ subversion/trunk/subversion/libsvn_wc/log.c Mon May 10 20:07:53 2010 @@ -772,17 +772,7 @@ svn_wc__loggy_entry_modify(svn_skel_t ** SVN_ERR_ASSERT(modify_flags != 0); /* ### this code has a limited set of modifications. enforce it. */ - SVN_ERR_ASSERT((modify_flags & ~( - /* from update_editor.c */ - SVN_WC__ENTRY_MODIFY_SCHEDULE - | SVN_WC__ENTRY_MODIFY_COPYFROM_URL - | SVN_WC__ENTRY_MODIFY_COPYFROM_REV - | SVN_WC__ENTRY_MODIFY_COPIED - | SVN_WC__ENTRY_MODIFY_KIND - | SVN_WC__ENTRY_MODIFY_TEXT_TIME - | SVN_WC__ENTRY_MODIFY_WORKING_SIZE - | SVN_WC__ENTRY_MODIFY_CHECKSUM - + SVN_ERR_ASSERT((modify_flags & ~(0 /* from props.c */ | SVN_WC__ENTRY_MODIFY_PREJFILE @@ -795,35 +785,6 @@ svn_wc__loggy_entry_modify(svn_skel_t ** if (modify_flags & (attr_flag)) \ apr_hash_set(prop_hash, (attr_name), APR_HASH_KEY_STRING, value) - /* ### it is always a file */ - if (modify_flags & SVN_WC__ENTRY_MODIFY_KIND) - SVN_ERR_ASSERT(entry->kind == svn_node_file); - ADD_ENTRY_ATTR(SVN_WC__ENTRY_MODIFY_KIND, - SVN_WC__ENTRY_ATTR_KIND, - SVN_WC__ENTRIES_ATTR_FILE_STR); - - if (modify_flags & SVN_WC__ENTRY_MODIFY_SCHEDULE) - SVN_ERR_ASSERT(entry->schedule == svn_wc_schedule_add); - ADD_ENTRY_ATTR(SVN_WC__ENTRY_MODIFY_SCHEDULE, - SVN_WC__ENTRY_ATTR_SCHEDULE, - SVN_WC__ENTRY_VALUE_ADD); - - if (modify_flags & SVN_WC__ENTRY_MODIFY_COPIED) - SVN_ERR_ASSERT(entry->copied); - ADD_ENTRY_ATTR(SVN_WC__ENTRY_MODIFY_COPIED, - SVN_WC__ENTRY_ATTR_COPIED, - "true"); - - if (modify_flags & SVN_WC__ENTRY_MODIFY_COPYFROM_URL) - SVN_ERR_ASSERT(entry->copyfrom_url != NULL); - ADD_ENTRY_ATTR(SVN_WC__ENTRY_MODIFY_COPYFROM_URL, - SVN_WC__ENTRY_ATTR_COPYFROM_URL, - entry->copyfrom_url); - - ADD_ENTRY_ATTR(SVN_WC__ENTRY_MODIFY_COPYFROM_REV, - SVN_WC__ENTRY_ATTR_COPYFROM_REV, - apr_psprintf(result_pool, "%ld", entry->copyfrom_rev)); - if (modify_flags & SVN_WC__ENTRY_MODIFY_CONFLICT_OLD) SVN_ERR_ASSERT(entry->conflict_old != NULL); ADD_ENTRY_ATTR(SVN_WC__ENTRY_MODIFY_CONFLICT_OLD, @@ -846,23 +807,6 @@ svn_wc__loggy_entry_modify(svn_skel_t ** SVN_WC__ENTRY_ATTR_PREJFILE, entry->prejfile); - if (modify_flags & SVN_WC__ENTRY_MODIFY_TEXT_TIME) - SVN_ERR_ASSERT(entry->text_time == 0); - ADD_ENTRY_ATTR(SVN_WC__ENTRY_MODIFY_TEXT_TIME, - SVN_WC__ENTRY_ATTR_TEXT_TIME, - svn_time_to_cstring(entry->text_time, result_pool)); - - ADD_ENTRY_ATTR(SVN_WC__ENTRY_MODIFY_CHECKSUM, - SVN_WC__ENTRY_ATTR_CHECKSUM, - entry->checksum); - - if (modify_flags & SVN_WC__ENTRY_MODIFY_WORKING_SIZE) - SVN_ERR_ASSERT(entry->working_size == SVN_WC_ENTRY_WORKING_SIZE_UNKNOWN); - ADD_ENTRY_ATTR(SVN_WC__ENTRY_MODIFY_WORKING_SIZE, - SVN_WC__ENTRY_ATTR_WORKING_SIZE, - apr_psprintf(result_pool, "%" APR_OFF_T_FMT, - entry->working_size)); - #undef ADD_ENTRY_ATTR SVN_ERR_ASSERT(apr_hash_count(prop_hash) != 0); Modified: subversion/trunk/subversion/libsvn_wc/old-and-busted.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/old-and-busted.c?rev=942886&r1=942885&r2=942886&view=diff ============================================================================== --- subversion/trunk/subversion/libsvn_wc/old-and-busted.c (original) +++ subversion/trunk/subversion/libsvn_wc/old-and-busted.c Mon May 10 20:07:53 2010 @@ -67,6 +67,19 @@ #define ENTRIES_ATTR_CMT_AUTHOR "last-author" #define ENTRIES_ATTR_REVISION "revision" #define ENTRIES_ATTR_URL "url" +#define ENTRIES_ATTR_KIND "kind" +#define ENTRIES_ATTR_SCHEDULE "schedule" +#define ENTRIES_ATTR_COPIED "copied" +#define ENTRIES_ATTR_COPYFROM_URL "copyfrom-url" +#define ENTRIES_ATTR_COPYFROM_REV "copyfrom-rev" +#define ENTRIES_ATTR_CHECKSUM "checksum" + +/* Attribute values used in our old XML entries file. */ +#define ENTRIES_VALUE_FILE "file" +#define ENTRIES_VALUE_DIR "dir" +#define ENTRIES_VALUE_ADD "add" +#define ENTRIES_VALUE_DELETE "delete" +#define ENTRIES_VALUE_REPLACE "replace" /* */ @@ -459,9 +472,9 @@ read_entry(svn_wc_entry_t **new_entry, SVN_ERR(read_val(&kindstr, buf, end)); if (kindstr) { - if (strcmp(kindstr, SVN_WC__ENTRIES_ATTR_FILE_STR) == 0) + if (strcmp(kindstr, ENTRIES_VALUE_FILE) == 0) entry->kind = svn_node_file; - else if (strcmp(kindstr, SVN_WC__ENTRIES_ATTR_DIR_STR) == 0) + else if (strcmp(kindstr, ENTRIES_VALUE_DIR) == 0) entry->kind = svn_node_dir; else return svn_error_createf @@ -499,11 +512,11 @@ read_entry(svn_wc_entry_t **new_entry, entry->schedule = svn_wc_schedule_normal; if (schedulestr) { - if (strcmp(schedulestr, SVN_WC__ENTRY_VALUE_ADD) == 0) + if (strcmp(schedulestr, ENTRIES_VALUE_ADD) == 0) entry->schedule = svn_wc_schedule_add; - else if (strcmp(schedulestr, SVN_WC__ENTRY_VALUE_DELETE) == 0) + else if (strcmp(schedulestr, ENTRIES_VALUE_DELETE) == 0) entry->schedule = svn_wc_schedule_delete; - else if (strcmp(schedulestr, SVN_WC__ENTRY_VALUE_REPLACE) == 0) + else if (strcmp(schedulestr, ENTRIES_VALUE_REPLACE) == 0) entry->schedule = svn_wc_schedule_replace; else return svn_error_createf( @@ -690,11 +703,10 @@ read_entry(svn_wc_entry_t **new_entry, /* If attribute ATTR_NAME appears in hash ATTS, set *ENTRY_FLAG to its - * boolean value and add MODIFY_FLAG into *MODIFY_FLAGS, else set *ENTRY_FLAG - * false. ENTRY_NAME is the name of the WC-entry. */ + boolean value, else set *ENTRY_FLAG false. ENTRY_NAME is the name + of the WC-entry. */ static svn_error_t * do_bool_attr(svn_boolean_t *entry_flag, - int *modify_flags, int modify_flag, apr_hash_t *atts, const char *attr_name, const char *entry_name) { @@ -712,9 +724,6 @@ do_bool_attr(svn_boolean_t *entry_flag, (SVN_ERR_ENTRY_ATTRIBUTE_INVALID, NULL, _("Entry '%s' has invalid '%s' value"), (entry_name ? entry_name : SVN_WC_ENTRY_THIS_DIR), attr_name); - - if (modify_flags) - *modify_flags |= modify_flag; } return SVN_NO_ERROR; } @@ -722,11 +731,8 @@ do_bool_attr(svn_boolean_t *entry_flag, /* */ static const char * -extract_string(int *modify_flags, - apr_hash_t *atts, +extract_string(apr_hash_t *atts, const char *att_name, - int flag, - svn_boolean_t normalize, apr_pool_t *result_pool) { const char *value = apr_hash_get(atts, att_name, APR_HASH_KEY_STRING); @@ -734,10 +740,27 @@ extract_string(int *modify_flags, if (value == NULL) return NULL; + return apr_pstrdup(result_pool, value); +} + + +/* Like extract_string(), but normalizes empty strings to NULL. */ +static const char * +extract_string_normalize(int *modify_flags, + apr_hash_t *atts, + const char *att_name, + int flag, + apr_pool_t *result_pool) +{ + const char *value = apr_hash_get(atts, att_name, APR_HASH_KEY_STRING); + + if (value == NULL) + return NULL; + if (modify_flags) *modify_flags |= flag; - if (normalize && *value == '\0') + if (*value == '\0') return NULL; return apr_pstrdup(result_pool, value); @@ -785,16 +808,13 @@ svn_wc__atts_to_entry(svn_wc_entry_t **n /* Attempt to set up url path (again, see resolve_to_defaults). ### not used by loggy; no need to set MODIFY_FLAGS */ - entry->url = extract_string(NULL, atts, - ENTRIES_ATTR_URL, 0, - FALSE, pool); + entry->url = extract_string(atts, ENTRIES_ATTR_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(NULL, atts, - ENTRIES_ATTR_REPOS, 0, - FALSE, pool); + entry->repos = extract_string(atts, ENTRIES_ATTR_REPOS, pool); + if (entry->url && entry->repos && !svn_uri_is_ancestor(entry->repos, entry->url)) return svn_error_createf(SVN_ERR_WC_CORRUPT, NULL, @@ -803,113 +823,105 @@ svn_wc__atts_to_entry(svn_wc_entry_t **n name ? name : SVN_WC_ENTRY_THIS_DIR); /* Set up kind. */ + /* ### not used by loggy; no need to set MODIFY_FLAGS */ { const char *kindstr - = apr_hash_get(atts, SVN_WC__ENTRY_ATTR_KIND, APR_HASH_KEY_STRING); + = apr_hash_get(atts, ENTRIES_ATTR_KIND, APR_HASH_KEY_STRING); entry->kind = svn_node_none; if (kindstr) { - if (strcmp(kindstr, SVN_WC__ENTRIES_ATTR_FILE_STR) == 0) + if (strcmp(kindstr, ENTRIES_VALUE_FILE) == 0) entry->kind = svn_node_file; - else if (strcmp(kindstr, SVN_WC__ENTRIES_ATTR_DIR_STR) == 0) + else if (strcmp(kindstr, ENTRIES_VALUE_DIR) == 0) entry->kind = svn_node_dir; else return svn_error_createf (SVN_ERR_NODE_UNKNOWN_KIND, NULL, _("Entry '%s' has invalid node kind"), (name ? name : SVN_WC_ENTRY_THIS_DIR)); - *modify_flags |= SVN_WC__ENTRY_MODIFY_KIND; } } /* Look for a schedule attribute on this entry. */ + /* ### not used by loggy; no need to set MODIFY_FLAGS */ { const char *schedulestr - = apr_hash_get(atts, SVN_WC__ENTRY_ATTR_SCHEDULE, APR_HASH_KEY_STRING); + = apr_hash_get(atts, ENTRIES_ATTR_SCHEDULE, APR_HASH_KEY_STRING); entry->schedule = svn_wc_schedule_normal; if (schedulestr) { - if (strcmp(schedulestr, SVN_WC__ENTRY_VALUE_ADD) == 0) + if (strcmp(schedulestr, ENTRIES_VALUE_ADD) == 0) entry->schedule = svn_wc_schedule_add; - else if (strcmp(schedulestr, SVN_WC__ENTRY_VALUE_DELETE) == 0) + else if (strcmp(schedulestr, ENTRIES_VALUE_DELETE) == 0) entry->schedule = svn_wc_schedule_delete; - else if (strcmp(schedulestr, SVN_WC__ENTRY_VALUE_REPLACE) == 0) + else if (strcmp(schedulestr, ENTRIES_VALUE_REPLACE) == 0) entry->schedule = svn_wc_schedule_replace; else if (strcmp(schedulestr, "") == 0) entry->schedule = svn_wc_schedule_normal; else - return svn_error_createf - (SVN_ERR_ENTRY_ATTRIBUTE_INVALID, NULL, - _("Entry '%s' has invalid '%s' value"), - (name ? name : SVN_WC_ENTRY_THIS_DIR), - SVN_WC__ENTRY_ATTR_SCHEDULE); - - *modify_flags |= SVN_WC__ENTRY_MODIFY_SCHEDULE; + return svn_error_createf( + SVN_ERR_ENTRY_ATTRIBUTE_INVALID, NULL, + _("Entry '%s' has invalid 'schedule' value"), + (name ? name : SVN_WC_ENTRY_THIS_DIR)); } } /* Is this entry in a state of mental torment (conflict)? */ - entry->prejfile = extract_string(modify_flags, atts, - SVN_WC__ENTRY_ATTR_PREJFILE, - SVN_WC__ENTRY_MODIFY_PREJFILE, - TRUE, pool); - entry->conflict_old = extract_string(modify_flags, atts, - SVN_WC__ENTRY_ATTR_CONFLICT_OLD, - SVN_WC__ENTRY_MODIFY_CONFLICT_OLD, - TRUE, pool); - entry->conflict_new = extract_string(modify_flags, atts, - SVN_WC__ENTRY_ATTR_CONFLICT_NEW, - SVN_WC__ENTRY_MODIFY_CONFLICT_NEW, - TRUE, pool); - entry->conflict_wrk = extract_string(modify_flags, atts, - SVN_WC__ENTRY_ATTR_CONFLICT_WRK, - SVN_WC__ENTRY_MODIFY_CONFLICT_WRK, - TRUE, pool); + entry->prejfile = extract_string_normalize( + modify_flags, atts, + SVN_WC__ENTRY_ATTR_PREJFILE, + SVN_WC__ENTRY_MODIFY_PREJFILE, + pool); + entry->conflict_old = extract_string_normalize( + modify_flags, atts, + SVN_WC__ENTRY_ATTR_CONFLICT_OLD, + SVN_WC__ENTRY_MODIFY_CONFLICT_OLD, + pool); + entry->conflict_new = extract_string_normalize( + modify_flags, atts, + SVN_WC__ENTRY_ATTR_CONFLICT_NEW, + SVN_WC__ENTRY_MODIFY_CONFLICT_NEW, + pool); + entry->conflict_wrk = extract_string_normalize( + modify_flags, atts, + SVN_WC__ENTRY_ATTR_CONFLICT_WRK, + SVN_WC__ENTRY_MODIFY_CONFLICT_WRK, + pool); /* Is this entry copied? */ - SVN_ERR(do_bool_attr(&entry->copied, - modify_flags, SVN_WC__ENTRY_MODIFY_COPIED, - atts, SVN_WC__ENTRY_ATTR_COPIED, name)); - - entry->copyfrom_url = extract_string(modify_flags, atts, - SVN_WC__ENTRY_ATTR_COPYFROM_URL, - SVN_WC__ENTRY_MODIFY_COPYFROM_URL, - FALSE, pool); + /* ### not used by loggy; no need to set MODIFY_FLAGS */ + SVN_ERR(do_bool_attr(&entry->copied, atts, ENTRIES_ATTR_COPIED, name)); + /* ### not used by loggy; no need to set MODIFY_FLAGS */ + entry->copyfrom_url = extract_string(atts, ENTRIES_ATTR_COPYFROM_URL, pool); + + /* ### not used by loggy; no need to set MODIFY_FLAGS */ { const char *revstr; - revstr = apr_hash_get(atts, SVN_WC__ENTRY_ATTR_COPYFROM_REV, + revstr = apr_hash_get(atts, ENTRIES_ATTR_COPYFROM_REV, APR_HASH_KEY_STRING); if (revstr) - { - entry->copyfrom_rev = SVN_STR_TO_REV(revstr); - *modify_flags |= SVN_WC__ENTRY_MODIFY_COPYFROM_REV; - } + entry->copyfrom_rev = SVN_STR_TO_REV(revstr); } /* Is this entry deleted? ### not used by loggy; no need to set MODIFY_FLAGS */ - SVN_ERR(do_bool_attr(&entry->deleted, - NULL, 0, - atts, ENTRIES_ATTR_DELETED, name)); + SVN_ERR(do_bool_attr(&entry->deleted, atts, ENTRIES_ATTR_DELETED, name)); /* Is this entry absent? ### not used by loggy; no need to set MODIFY_FLAGS */ - SVN_ERR(do_bool_attr(&entry->absent, - NULL, 0, - atts, ENTRIES_ATTR_ABSENT, name)); + SVN_ERR(do_bool_attr(&entry->absent, atts, ENTRIES_ATTR_ABSENT, name)); /* Is this entry incomplete? ### not used by loggy; no need to set MODIFY_FLAGS */ - SVN_ERR(do_bool_attr(&entry->incomplete, - NULL, 0, - atts, ENTRIES_ATTR_INCOMPLETE, name)); + SVN_ERR(do_bool_attr(&entry->incomplete, atts, ENTRIES_ATTR_INCOMPLETE, + name)); /* Attempt to set up timestamps. */ { @@ -940,17 +952,13 @@ svn_wc__atts_to_entry(svn_wc_entry_t **n } /* Checksum. */ - entry->checksum = extract_string(modify_flags, atts, - SVN_WC__ENTRY_ATTR_CHECKSUM, - SVN_WC__ENTRY_MODIFY_CHECKSUM, - FALSE, pool); + /* ### not used by loggy; no need to set MODIFY_FLAGS */ + entry->checksum = extract_string(atts, ENTRIES_ATTR_CHECKSUM, pool); /* UUID. ### not used by loggy; no need to set MODIFY_FLAGS */ - entry->uuid = extract_string(NULL, atts, - ENTRIES_ATTR_UUID, - 0, FALSE, pool); + entry->uuid = extract_string(atts, ENTRIES_ATTR_UUID, pool); /* Setup last-committed values. */ { @@ -973,21 +981,13 @@ svn_wc__atts_to_entry(svn_wc_entry_t **n else entry->cmt_rev = SVN_INVALID_REVNUM; - entry->cmt_author = extract_string(NULL, atts, - ENTRIES_ATTR_CMT_AUTHOR, - 0, FALSE, pool); + entry->cmt_author = extract_string(atts, ENTRIES_ATTR_CMT_AUTHOR, pool); } /* ### not used by loggy; no need to set MODIFY_FLAGS */ - entry->lock_token = extract_string(NULL, atts, - ENTRIES_ATTR_LOCK_TOKEN, - 0, FALSE, pool); - entry->lock_owner = extract_string(NULL, atts, - ENTRIES_ATTR_LOCK_OWNER, - 0, FALSE, pool); - entry->lock_comment = extract_string(NULL, atts, - ENTRIES_ATTR_LOCK_COMMENT, - 0, FALSE, pool); + entry->lock_token = extract_string(atts, ENTRIES_ATTR_LOCK_TOKEN, pool); + entry->lock_owner = extract_string(atts, ENTRIES_ATTR_LOCK_OWNER, pool); + 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);