#include <stdlib.h>
#include <limits.h>
#include <apr.h>
#include <apr_errno.h>
#include <apr_pools.h>
#include <apr_hash.h>
#include <apr_tables.h>
#include <apr_time.h>
#include <apr_strings.h>
#include "svn_error.h"
Go to the source code of this file.
Data Structures | |
| struct | svn_error_t |
| Subversion error object. More... | |
| struct | svn_dirent_t |
| A general subversion directory entry. More... | |
| struct | svn_commit_info_t |
| All information about a commit. More... | |
| struct | svn_log_changed_path2_t |
| A structure to represent a path that changed for a log entry. More... | |
| struct | svn_log_changed_path_t |
| A structure to represent a path that changed for a log entry. More... | |
| struct | svn_log_entry_t |
| A structure to represent all the information about a particular log entry. More... | |
| struct | svn_lock_t |
| A lock object, for client & server to share. More... | |
| struct | svn_merge_range_t |
| Mergeinfo representing a merge of a range of revisions. More... | |
| struct | svn_location_segment_t |
| A representation of a segment of an object's version history with an emphasis on the object's location in the repository as of various revisions. More... | |
Defines | |
| #define | SVN_DEPRECATED |
| Macro used to mark deprecated functions. | |
| #define | SVN_UNALIGNED_ACCESS_IS_OK 0 |
| Indicate whether the current platform supports unaligned data access. | |
| #define | TRUE 1 |
| uhh. | |
| #define | FALSE 0 |
| uhh. | |
| #define | APR_ARRAY_IDX(ary, i, type) (((type *)(ary)->elts)[i]) |
| index into an apr_array_header_t | |
| #define | APR_ARRAY_PUSH(ary, type) (*((type *)apr_array_push(ary))) |
| easier array-pushing syntax | |
| #define | SVN__APR_STATUS_IS_ENOTDIR(s) APR_STATUS_IS_ENOTDIR(s) |
| On Windows, APR_STATUS_IS_ENOTDIR includes several kinds of invalid-pathname error but not ERROR_INVALID_NAME, so we include it. | |
| #define | SVN__APR_STATUS_IS_EPIPE(s) APR_STATUS_IS_EPIPE(s) |
| On Windows, APR_STATUS_IS_EPIPE does not include ERROR_NO_DATA error. | |
| #define | SVN_IS_VALID_REVNUM(n) ((n) >= 0) |
| Valid revision numbers begin at 0. | |
| #define | SVN_INVALID_REVNUM ((svn_revnum_t) -1) |
| The 'official' invalid revision num. | |
| #define | SVN_IGNORED_REVNUM ((svn_revnum_t) -1) |
| Not really invalid. | |
| #define | SVN_STR_TO_REV(str) ((svn_revnum_t) atol(str)) |
| Convert NULL-terminated C string str to a revision number. | |
| #define | SVN_REVNUM_T_FMT "ld" |
| Originally intended to be used in printf()-style functions to format revision numbers. | |
| #define | SVN_INVALID_FILESIZE ((svn_filesize_t) -1) |
| The 'official' invalid file size constant. | |
| #define | SVN_FILESIZE_T_FMT APR_INT64_T_FMT |
| In printf()-style functions, format file sizes using this. | |
| #define | SVN_DEPTH_INFINITY_OR_FILES(recurse) ((recurse) ? svn_depth_infinity : svn_depth_files) |
| Return svn_depth_infinity if boolean recurse is TRUE, else return svn_depth_files. | |
| #define | SVN_DEPTH_INFINITY_OR_IMMEDIATES(recurse) ((recurse) ? svn_depth_infinity : svn_depth_immediates) |
| Return svn_depth_infinity if boolean recurse is TRUE, else return svn_depth_immediates. | |
| #define | SVN_DEPTH_INFINITY_OR_EMPTY(recurse) ((recurse) ? svn_depth_infinity : svn_depth_empty) |
| Return svn_depth_infinity if boolean recurse is TRUE, else return svn_depth_empty. | |
| #define | SVN_DEPTH_IS_RECURSIVE(depth) ((depth) == svn_depth_infinity || (depth) == svn_depth_unknown) |
| Return a recursion boolean based on depth. | |
| #define | SVN_DIRENT_KIND 0x00001 |
An indication that you are interested in the kind field. | |
| #define | SVN_DIRENT_SIZE 0x00002 |
An indication that you are interested in the size field. | |
| #define | SVN_DIRENT_HAS_PROPS 0x00004 |
An indication that you are interested in the has_props field. | |
| #define | SVN_DIRENT_CREATED_REV 0x00008 |
An indication that you are interested in the created_rev field. | |
| #define | SVN_DIRENT_TIME 0x00010 |
An indication that you are interested in the time field. | |
| #define | SVN_DIRENT_LAST_AUTHOR 0x00020 |
An indication that you are interested in the last_author field. | |
| #define | SVN_DIRENT_ALL ~((apr_uint32_t ) 0) |
| A combination of all the dirent fields. | |
| #define | SVN_KEYWORD_MAX_LEN 255 |
| The maximum size of an expanded or un-expanded keyword. | |
| #define | SVN_KEYWORD_REVISION_LONG "LastChangedRevision" |
| The most recent revision in which this file was changed. | |
| #define | SVN_KEYWORD_REVISION_SHORT "Rev" |
| Short version of LastChangedRevision. | |
| #define | SVN_KEYWORD_REVISION_MEDIUM "Revision" |
| Medium version of LastChangedRevision, matching the one CVS uses. | |
| #define | SVN_KEYWORD_DATE_LONG "LastChangedDate" |
| The most recent date (repository time) when this file was changed. | |
| #define | SVN_KEYWORD_DATE_SHORT "Date" |
| Short version of LastChangedDate. | |
| #define | SVN_KEYWORD_AUTHOR_LONG "LastChangedBy" |
| Who most recently committed to this file. | |
| #define | SVN_KEYWORD_AUTHOR_SHORT "Author" |
| Short version of LastChangedBy. | |
| #define | SVN_KEYWORD_URL_LONG "HeadURL" |
| The URL for the head revision of this file. | |
| #define | SVN_KEYWORD_URL_SHORT "URL" |
| Short version of HeadURL. | |
| #define | SVN_KEYWORD_ID "Id" |
| A compressed combination of the other four keywords. | |
| #define | SVN_KEYWORD_HEADER "Header" |
| A full combination of the first four keywords. | |
| #define | SVN_STREAM_CHUNK_SIZE 102400 |
| A buffer size that may be used when processing a stream of data. | |
| #define | SVN_MAX_OBJECT_SIZE (((apr_size_t) -1) / 2) |
| The maximum amount we can ever hold in memory. | |
| #define | SVN_LINENUM_MAX_VALUE ULONG_MAX |
| The maximum value of an svn_linenum_t. | |
Typedefs | |
| typedef int | svn_boolean_t |
| YABT: Yet Another Boolean Type. | |
| typedef svn_version_t | svn_version_t |
| typedef long int | svn_revnum_t |
| A revision number. | |
| typedef apr_int64_t | svn_filesize_t |
| The size of a file in the Subversion FS. | |
| typedef svn_error_t *(*) | svn_log_entry_receiver_t (void *baton, svn_log_entry_t *log_entry, apr_pool_t *pool) |
| The callback invoked by log message loopers, such as svn_ra_plugin_t.get_log() and svn_repos_get_logs(). | |
| typedef svn_error_t *(*) | svn_log_message_receiver_t (void *baton, apr_hash_t *changed_paths, svn_revnum_t revision, const char *author, const char *date, const char *message, apr_pool_t *pool) |
| Similar to svn_log_entry_receiver_t, except this uses separate parameters for each part of the log entry. | |
| typedef svn_error_t *(*) | svn_commit_callback2_t (const svn_commit_info_t *commit_info, void *baton, apr_pool_t *pool) |
| Callback function type for commits. | |
| typedef svn_error_t *(*) | svn_commit_callback_t (svn_revnum_t new_revision, const char *date, const char *author, void *baton) |
| Same as svn_commit_callback2_t, but uses individual data elements instead of the svn_commit_info_t structure. | |
| typedef svn_error_t *(*) | svn_cancel_func_t (void *cancel_baton) |
| A user defined callback that subversion will call with a user defined baton to see if the current operation should be continued. | |
| typedef svn_error_t *(*) | svn_location_segment_receiver_t (svn_location_segment_t *segment, void *baton, apr_pool_t *pool) |
| A callback invoked by generators of svn_location_segment_t objects, used to report information about a versioned object's history in terms of its location in the repository filesystem over time. | |
| typedef unsigned long | svn_linenum_t |
| A line number, such as in a file or a stream. | |
Enumerations | |
| enum | svn_node_kind_t { svn_node_none, svn_node_file, svn_node_dir, svn_node_unknown, svn_node_symlink } |
| The various types of nodes in the Subversion filesystem. More... | |
| enum | svn_tristate_t { svn_tristate_false = 2, svn_tristate_true, svn_tristate_unknown } |
| Generic three-state property to represent an unknown value for values that are just like booleans. More... | |
| enum | svn_recurse_kind { svn_nonrecursive = 1, svn_recursive } |
| An enum to indicate whether recursion is needed. | |
| enum | svn_depth_t { svn_depth_unknown = -2, svn_depth_exclude = -1, svn_depth_empty = 0, svn_depth_files = 1, svn_depth_immediates = 2, svn_depth_infinity = 3 } |
| The concept of depth for directories. More... | |
Functions | |
| const void * | svn__apr_hash_index_key (const apr_hash_index_t *hi) |
| Return the key of the hash table entry indexed by hi. | |
| apr_ssize_t | svn__apr_hash_index_klen (const apr_hash_index_t *hi) |
| Return the key length of the hash table entry indexed by hi. | |
| void * | svn__apr_hash_index_val (const apr_hash_index_t *hi) |
| Return the value of the hash table entry indexed by hi. | |
| const char * | svn_node_kind_to_word (svn_node_kind_t kind) |
| Return a constant string expressing kind as an English word, e.g., "file", "dir", etc. | |
| svn_node_kind_t | svn_node_kind_from_word (const char *word) |
| Return the appropriate node_kind for word. | |
| const char * | svn_tristate__to_word (svn_tristate_t tristate) |
| Return a constant string "true", "false" or NULL representing the value of tristate. | |
| svn_tristate_t | svn_tristate__from_word (const char *word) |
| Return the appropriate tristate for word. | |
| svn_error_t * | svn_revnum_parse (svn_revnum_t *rev, const char *str, const char **endptr) |
| Parse NULL-terminated C string str as a revision number and store its value in rev. | |
| const char * | svn_depth_to_word (svn_depth_t depth) |
| Return a constant string expressing depth as an English word, e.g., "infinity", "immediates", etc. | |
| svn_depth_t | svn_depth_from_word (const char *word) |
| Return the appropriate depth for depth_str. | |
| svn_dirent_t * | svn_dirent_dup (const svn_dirent_t *dirent, apr_pool_t *pool) |
| Return a deep copy of dirent, allocated in pool. | |
| svn_dirent_t * | svn_dirent_create (apr_pool_t *result_pool) |
| Create a new svn_dirent_t instance with all values initialized to their not-available values. | |
| svn_commit_info_t * | svn_create_commit_info (apr_pool_t *pool) |
| Allocate an object of type svn_commit_info_t in pool and return it. | |
| svn_commit_info_t * | svn_commit_info_dup (const svn_commit_info_t *src_commit_info, apr_pool_t *pool) |
| Return a deep copy src_commit_info allocated in pool. | |
| svn_log_changed_path2_t * | svn_log_changed_path2_create (apr_pool_t *pool) |
| Returns an svn_log_changed_path2_t, allocated in pool with all fields initialized to NULL, None or empty values. | |
| svn_log_changed_path2_t * | svn_log_changed_path2_dup (const svn_log_changed_path2_t *changed_path, apr_pool_t *pool) |
| Return a deep copy of changed_path, allocated in pool. | |
| svn_log_changed_path_t * | svn_log_changed_path_dup (const svn_log_changed_path_t *changed_path, apr_pool_t *pool) |
| Return a deep copy of changed_path, allocated in pool. | |
| svn_log_entry_t * | svn_log_entry_create (apr_pool_t *pool) |
| Returns an svn_log_entry_t, allocated in pool with all fields initialized to NULL values. | |
| svn_log_entry_t * | svn_log_entry_dup (const svn_log_entry_t *log_entry, apr_pool_t *pool) |
| Return a deep copy of log_entry, allocated in pool. | |
| svn_error_t * | svn_mime_type_validate (const char *mime_type, apr_pool_t *pool) |
| Validate mime_type. | |
| svn_boolean_t | svn_mime_type_is_binary (const char *mime_type) |
| Return FALSE iff mime_type is a textual type. | |
| svn_lock_t * | svn_lock_create (apr_pool_t *pool) |
| Returns an svn_lock_t, allocated in pool with all fields initialized to NULL values. | |
| svn_lock_t * | svn_lock_dup (const svn_lock_t *lock, apr_pool_t *pool) |
| Return a deep copy of lock, allocated in pool. | |
| const char * | svn_uuid_generate (apr_pool_t *pool) |
| Return a formatted Universal Unique IDentifier (UUID) string. | |
| svn_merge_range_t * | svn_merge_range_dup (const svn_merge_range_t *range, apr_pool_t *pool) |
| Return a copy of range, allocated in pool. | |
| svn_boolean_t | svn_merge_range_contains_rev (const svn_merge_range_t *range, svn_revnum_t rev) |
| Returns true if the changeset committed in revision rev is one of the changesets in the range range. | |
| svn_location_segment_t * | svn_location_segment_dup (const svn_location_segment_t *segment, apr_pool_t *pool) |
| Return a deep copy of segment, allocated in pool. | |
Definition in file svn_types.h.
| #define FALSE 0 |
| #define SVN__APR_STATUS_IS_ENOTDIR | ( | s | ) | APR_STATUS_IS_ENOTDIR(s) |
On Windows, APR_STATUS_IS_ENOTDIR includes several kinds of invalid-pathname error but not ERROR_INVALID_NAME, so we include it.
We also include ERROR_DIRECTORY as that was not included in apr versions before 1.4.0 and this fix is not backported
Definition at line 215 of file svn_types.h.
| #define SVN__APR_STATUS_IS_EPIPE | ( | s | ) | APR_STATUS_IS_EPIPE(s) |
On Windows, APR_STATUS_IS_EPIPE does not include ERROR_NO_DATA error.
So we include it.
Definition at line 226 of file svn_types.h.
| #define SVN_DEPRECATED |
Macro used to mark deprecated functions.
Definition at line 59 of file svn_types.h.
| #define SVN_DEPTH_INFINITY_OR_EMPTY | ( | recurse | ) | ((recurse) ? svn_depth_infinity : svn_depth_empty) |
Return svn_depth_infinity if boolean recurse is TRUE, else return svn_depth_empty.
Definition at line 525 of file svn_types.h.
| #define SVN_DEPTH_INFINITY_OR_FILES | ( | recurse | ) | ((recurse) ? svn_depth_infinity : svn_depth_files) |
Return svn_depth_infinity if boolean recurse is TRUE, else return svn_depth_files.
Definition at line 503 of file svn_types.h.
| #define SVN_DEPTH_INFINITY_OR_IMMEDIATES | ( | recurse | ) | ((recurse) ? svn_depth_infinity : svn_depth_immediates) |
Return svn_depth_infinity if boolean recurse is TRUE, else return svn_depth_immediates.
Definition at line 514 of file svn_types.h.
| #define SVN_DEPTH_IS_RECURSIVE | ( | depth | ) | ((depth) == svn_depth_infinity || (depth) == svn_depth_unknown) |
Return a recursion boolean based on depth.
Although much code has been converted to use depth, some code still takes a recurse boolean. In most cases, it makes sense to treat unknown or infinite depth as recursive, and any other depth as non-recursive (which in turn usually translates to svn_depth_files).
Definition at line 535 of file svn_types.h.
| #define SVN_IGNORED_REVNUM ((svn_revnum_t) -1) |
Not really invalid.
..just unimportant -- one day, this can be its own unique value, for now, just make it the same as SVN_INVALID_REVNUM.
Definition at line 368 of file svn_types.h.
| #define SVN_LINENUM_MAX_VALUE ULONG_MAX |
The maximum value of an svn_linenum_t.
Definition at line 1264 of file svn_types.h.
| #define SVN_REVNUM_T_FMT "ld" |
Originally intended to be used in printf()-style functions to format revision numbers.
Deprecated due to incompatibilities with language translation tools (e.g. gettext).
New code should use a bare "%ld" format specifier for formatting revision numbers.
Definition at line 398 of file svn_types.h.
| #define SVN_STREAM_CHUNK_SIZE 102400 |
A buffer size that may be used when processing a stream of data.
Definition at line 1039 of file svn_types.h.
| #define SVN_UNALIGNED_ACCESS_IS_OK 0 |
Indicate whether the current platform supports unaligned data access.
On the majority of machines running SVN (x86 / x64), unaligned access is much cheaper than repeated aligned access. Define this macro to 1 on those machines. Unaligned access on other machines (e.g. IA64) will trigger memory access faults or simply misbehave.
Note: Some platforms may only support unaligned access for integers (PowerPC). As a result this macro should only be used to determine if unaligned access is supported for integers.
Definition at line 87 of file svn_types.h.
| #define TRUE 1 |
| typedef svn_error_t*(*) svn_cancel_func_t(void *cancel_baton) |
A user defined callback that subversion will call with a user defined baton to see if the current operation should be continued.
If the operation should continue, the function should return SVN_NO_ERROR, if not, it should return SVN_ERR_CANCELLED.
Definition at line 1098 of file svn_types.h.
| typedef svn_error_t*(*) svn_commit_callback2_t(const svn_commit_info_t *commit_info, void *baton, apr_pool_t *pool) |
Callback function type for commits.
When a commit succeeds, an instance of this is invoked with the commit_info, along with the baton closure. pool can be used for temporary allocations.
Definition at line 1014 of file svn_types.h.
| typedef svn_error_t*(*) svn_commit_callback_t(svn_revnum_t new_revision, const char *date, const char *author, void *baton) |
Same as svn_commit_callback2_t, but uses individual data elements instead of the svn_commit_info_t structure.
Definition at line 1024 of file svn_types.h.
| typedef unsigned long svn_linenum_t |
A line number, such as in a file or a stream.
Definition at line 1258 of file svn_types.h.
| typedef svn_error_t*(*) svn_log_entry_receiver_t(void *baton, svn_log_entry_t *log_entry, apr_pool_t *pool) |
The callback invoked by log message loopers, such as svn_ra_plugin_t.get_log() and svn_repos_get_logs().
This function is invoked once on each log message, in the order determined by the caller (see above-mentioned functions).
baton is what you think it is, and log_entry contains relevant information for the log message. Any of log_entry->author, log_entry->date, or log_entry->message may be NULL.
If log_entry->date is neither NULL nor the empty string, it was generated by svn_time_to_cstring() and can be converted to apr_time_t with svn_time_from_cstring().
If log_entry->changed_paths is non-NULL, then it contains as keys every path committed in log_entry->revision; the values are (svn_log_changed_path_t *) structures.
If log_entry->has_children is TRUE, the message will be followed immediately by any number of merged revisions (child messages), which are terminated by an invocation with SVN_INVALID_REVNUM. This usage may be recursive.
Use pool for temporary allocation. If the caller is iterating over log messages, invoking this receiver on each, we recommend the standard pool loop recipe: create a subpool, pass it as pool to each call, clear it after each iteration, destroy it after the loop is done. (For allocation that must last beyond the lifetime of a given receiver call, use a pool in baton.)
Definition at line 984 of file svn_types.h.
| typedef svn_error_t*(*) svn_log_message_receiver_t(void *baton, apr_hash_t *changed_paths, svn_revnum_t revision, const char *author, const char *date,const char *message, apr_pool_t *pool) |
Similar to svn_log_entry_receiver_t, except this uses separate parameters for each part of the log entry.
Definition at line 995 of file svn_types.h.
| enum svn_depth_t |
The concept of depth for directories.
| svn_depth_unknown |
Depth undetermined or ignored.
In some contexts, this means the client should choose an appropriate default depth. The server will generally treat it as svn_depth_infinity. |
| svn_depth_exclude |
Exclude (i.e., don't descend into) directory D.
|
| svn_depth_empty |
Just the named directory D, no entries.
Updates will not pull in any files or subdirectories not already present. |
| svn_depth_files |
D + its file children, but not subdirs.
Updates will pull in any files not already present, but not subdirectories. |
| svn_depth_immediates |
D + immediate children (D and its entries).
Updates will pull in any files or subdirectories not already present; those subdirectories' this_dir entries will have depth-empty. |
| svn_depth_infinity |
D + all descendants (full recursion from D).
Updates will pull in any files or subdirectories not already present; those subdirectories' this_dir entries will have depth-infinity. Equivalent to the pre-1.5 default update behavior. |
Definition at line 434 of file svn_types.h.
| enum svn_node_kind_t |
The various types of nodes in the Subversion filesystem.
Definition at line 237 of file svn_types.h.
| enum svn_tristate_t |
Generic three-state property to represent an unknown value for values that are just like booleans.
The values have been set deliberately to make tristates disjoint from svn_boolean_t.
| svn_tristate_false | state known to be false (the constant does not evaulate to false) |
| svn_tristate_true | state known to be true |
| svn_tristate_unknown | state could be true or false |
Definition at line 287 of file svn_types.h.
| svn_commit_info_t* svn_commit_info_dup | ( | const svn_commit_info_t * | src_commit_info, | |
| apr_pool_t * | pool | |||
| ) |
Return a deep copy src_commit_info allocated in pool.
| svn_commit_info_t* svn_create_commit_info | ( | apr_pool_t * | pool | ) |
Allocate an object of type svn_commit_info_t in pool and return it.
The revision field of the new struct is set to SVN_INVALID_REVNUM. All other fields are initialized to NULL.
| svn_depth_t svn_depth_from_word | ( | const char * | word | ) |
Return the appropriate depth for depth_str.
word is as returned from svn_depth_to_word(). If depth_str does not represent a recognized depth, return svn_depth_unknown.
| const char* svn_depth_to_word | ( | svn_depth_t | depth | ) |
Return a constant string expressing depth as an English word, e.g., "infinity", "immediates", etc.
The string is not localized, as it may be used for client<->server communications.
| svn_dirent_t* svn_dirent_create | ( | apr_pool_t * | result_pool | ) |
Create a new svn_dirent_t instance with all values initialized to their not-available values.
| svn_dirent_t* svn_dirent_dup | ( | const svn_dirent_t * | dirent, | |
| apr_pool_t * | pool | |||
| ) |
Return a deep copy of dirent, allocated in pool.
| svn_lock_t* svn_lock_create | ( | apr_pool_t * | pool | ) |
Returns an svn_lock_t, allocated in pool with all fields initialized to NULL values.
| svn_lock_t* svn_lock_dup | ( | const svn_lock_t * | lock, | |
| apr_pool_t * | pool | |||
| ) |
Return a deep copy of lock, allocated in pool.
| svn_log_changed_path2_t* svn_log_changed_path2_create | ( | apr_pool_t * | pool | ) |
Returns an svn_log_changed_path2_t, allocated in pool with all fields initialized to NULL, None or empty values.
| svn_log_changed_path2_t* svn_log_changed_path2_dup | ( | const svn_log_changed_path2_t * | changed_path, | |
| apr_pool_t * | pool | |||
| ) |
Return a deep copy of changed_path, allocated in pool.
| svn_log_changed_path_t* svn_log_changed_path_dup | ( | const svn_log_changed_path_t * | changed_path, | |
| apr_pool_t * | pool | |||
| ) |
Return a deep copy of changed_path, allocated in pool.
| svn_log_entry_t* svn_log_entry_create | ( | apr_pool_t * | pool | ) |
Returns an svn_log_entry_t, allocated in pool with all fields initialized to NULL values.
| svn_log_entry_t* svn_log_entry_dup | ( | const svn_log_entry_t * | log_entry, | |
| apr_pool_t * | pool | |||
| ) |
Return a deep copy of log_entry, allocated in pool.
The resulting svn_log_entry_t has changed_paths set to the same value as changed_path2. changed_paths will be NULL if changed_paths2 was NULL.
| svn_boolean_t svn_merge_range_contains_rev | ( | const svn_merge_range_t * | range, | |
| svn_revnum_t | rev | |||
| ) |
Returns true if the changeset committed in revision rev is one of the changesets in the range range.
| svn_merge_range_t* svn_merge_range_dup | ( | const svn_merge_range_t * | range, | |
| apr_pool_t * | pool | |||
| ) |
Return a copy of range, allocated in pool.
| svn_boolean_t svn_mime_type_is_binary | ( | const char * | mime_type | ) |
Return FALSE iff mime_type is a textual type.
All mime types that start with "text/" are textual, plus some special cases (for example, "image/x-xbitmap").
| svn_error_t* svn_mime_type_validate | ( | const char * | mime_type, | |
| apr_pool_t * | pool | |||
| ) |
Validate mime_type.
If mime_type does not contain a "/", or ends with non-alphanumeric data, return SVN_ERR_BAD_MIME_TYPE, else return success.
Use pool only to find error allocation.
Goal: to match both "foo/bar" and "foo/bar; charset=blah", without being too strict about it, but to disallow mime types that have quotes, newlines, or other garbage on the end, such as might be unsafe in an HTTP header.
| svn_node_kind_t svn_node_kind_from_word | ( | const char * | word | ) |
Return the appropriate node_kind for word.
word is as returned from svn_node_kind_to_word(). If word does not represent a recognized kind or is NULL, return svn_node_unknown.
| const char* svn_node_kind_to_word | ( | svn_node_kind_t | kind | ) |
Return a constant string expressing kind as an English word, e.g., "file", "dir", etc.
The string is not localized, as it may be used for client<->server communications. If the kind is not recognized, return "unknown".
| svn_error_t* svn_revnum_parse | ( | svn_revnum_t * | rev, | |
| const char * | str, | |||
| const char ** | endptr | |||
| ) |
Parse NULL-terminated C string str as a revision number and store its value in rev.
If endptr is non-NULL, then the address of the first non-numeric character in str is stored in it. If there are no digits in str, then endptr is set (if non-NULL), and the error SVN_ERR_REVNUM_PARSE_FAILURE error is returned. Negative numbers parsed from str are considered invalid, and result in the same error.
| svn_tristate_t svn_tristate__from_word | ( | const char * | word | ) |
Return the appropriate tristate for word.
If word is "true", returns svn_tristate_true; if word is "false", returns svn_tristate_false, for all other values (including NULL) returns svn_tristate_unknown.
| const char* svn_tristate__to_word | ( | svn_tristate_t | tristate | ) |
Return a constant string "true", "false" or NULL representing the value of tristate.
| const char* svn_uuid_generate | ( | apr_pool_t * | pool | ) |
Return a formatted Universal Unique IDentifier (UUID) string.
1.4.7