Main Page | Modules | Data Structures | File List | Data Fields | Globals | Related Pages

svn_subst.h File Reference

Data substitution (keywords and EOL style). More...

#include "svn_types.h"
#include "svn_string.h"
#include "svn_io.h"

Go to the source code of this file.

Data Structures

struct  svn_subst_keywords_t
 Values used in keyword expansion. More...

Typedefs

typedef enum svn_subst_eol_style svn_subst_eol_style_t
 Valid states for 'svn:eol-style' property.
typedef svn_subst_keywords_t svn_subst_keywords_t
 Values used in keyword expansion.

Enumerations

enum  svn_subst_eol_style {
  svn_subst_eol_style_unknown,
  svn_subst_eol_style_none,
  svn_subst_eol_style_native,
  svn_subst_eol_style_fixed
}
 Valid states for 'svn:eol-style' property. More...

Functions

void svn_subst_eol_style_from_value (svn_subst_eol_style_t *style, const char **eol, const char *value)
 Set *style to the appropriate svn_subst_eol_style_t and *eol to the appropriate cstring for a given svn:eol-style property value.
svn_error_tsvn_subst_build_keywords (svn_subst_keywords_t *kw, const char *keywords_string, const char *rev, const char *url, apr_time_t date, const char *author, apr_pool_t *pool)
 Fill in an svn_subst_keywords_t * kw with the appropriate contents given a keywords_string (the contents of the svn:keywords property for the file in question), the revision rev, the url, the date the file was committed on, and the author of the last commit.
svn_boolean_t svn_subst_keywords_differ (const svn_subst_keywords_t *a, const svn_subst_keywords_t *b, svn_boolean_t compare_values)
 Return TRUE if a and b do not hold the same keywords.
svn_error_tsvn_subst_translate_stream2 (svn_stream_t *src, svn_stream_t *dst, const char *eol_str, svn_boolean_t repair, const svn_subst_keywords_t *keywords, svn_boolean_t expand, apr_pool_t *pool)
 Copy and translate the data in stream src into stream dst.
svn_error_tsvn_subst_translate_stream (svn_stream_t *src, svn_stream_t *dst, const char *eol_str, svn_boolean_t repair, const svn_subst_keywords_t *keywords, svn_boolean_t expand)
 Same as svn_subst_translate_stream2(), but does not take a pool argument, instead creates a temporary subpool of the global pool, and destroys it before returning.
svn_error_tsvn_subst_copy_and_translate2 (const char *src, const char *dst, const char *eol_str, svn_boolean_t repair, const svn_subst_keywords_t *keywords, svn_boolean_t expand, svn_boolean_t special, apr_pool_t *pool)
 
Since:
New in 1.1.

svn_error_tsvn_subst_copy_and_translate (const char *src, const char *dst, const char *eol_str, svn_boolean_t repair, const svn_subst_keywords_t *keywords, svn_boolean_t expand, apr_pool_t *pool)
svn_error_tsvn_subst_translate_cstring (const char *src, const char **dst, const char *eol_str, svn_boolean_t repair, const svn_subst_keywords_t *keywords, svn_boolean_t expand, apr_pool_t *pool)
 Convenience routine: a variant of svn_subst_translate_stream2() which operates on cstrings.
svn_error_tsvn_subst_translate_string (svn_string_t **new_value, const svn_string_t *value, const char *encoding, apr_pool_t *pool)
 Translate the data in value (assumed to be in encoded in charset encoding) to UTF8 and LF line-endings.
svn_error_tsvn_subst_detranslate_string (svn_string_t **new_value, const svn_string_t *value, svn_boolean_t for_stdout, apr_pool_t *pool)
 Translate the data in value from UTF8 and LF line-endings into native locale and native line-endings, or to the output locale if for_output is TURE.


Detailed Description

Data substitution (keywords and EOL style).

Definition in file svn_subst.h.


Typedef Documentation

typedef enum svn_subst_eol_style svn_subst_eol_style_t
 

Valid states for 'svn:eol-style' property.

Property nonexistence is equivalent to 'none'.


Enumeration Type Documentation

enum svn_subst_eol_style
 

Valid states for 'svn:eol-style' property.

Property nonexistence is equivalent to 'none'.

Enumeration values:
svn_subst_eol_style_unknown  An unrecognized style.
svn_subst_eol_style_none  EOL translation is "off" or ignored value.
svn_subst_eol_style_native  Translation is set to client's native eol.
svn_subst_eol_style_fixed  Translation is set to one of LF, CR, CRLF.

Definition at line 41 of file svn_subst.h.


Function Documentation

svn_error_t* svn_subst_build_keywords svn_subst_keywords_t kw,
const char *  keywords_string,
const char *  rev,
const char *  url,
apr_time_t  date,
const char *  author,
apr_pool_t *  pool
 

Fill in an svn_subst_keywords_t * kw with the appropriate contents given a keywords_string (the contents of the svn:keywords property for the file in question), the revision rev, the url, the date the file was committed on, and the author of the last commit.

Any of these can be NULL to indicate that the information is not present, or 0 for date.

All memory is allocated out of pool.

svn_error_t* svn_subst_copy_and_translate const char *  src,
const char *  dst,
const char *  eol_str,
svn_boolean_t  repair,
const svn_subst_keywords_t keywords,
svn_boolean_t  expand,
apr_pool_t *  pool
 

Deprecated:
Provided for backward compatibility with the 1.0 API.
Similar to svn_subst_copy_and_translate2() except that special is always set to FALSE.

svn_error_t* svn_subst_copy_and_translate2 const char *  src,
const char *  dst,
const char *  eol_str,
svn_boolean_t  repair,
const svn_subst_keywords_t keywords,
svn_boolean_t  expand,
svn_boolean_t  special,
apr_pool_t *  pool
 

Since:
New in 1.1.

Convenience routine: a variant of svn_subst_translate_stream2() which operates on files. (See previous docstring for details.) In addition, it will create/detranslate a special file if special is TRUE.

Copy the contents of file-path src to file-path dst atomically, either creating dst (or overwriting dst if it exists), possibly performing line ending and keyword translations.

If anything goes wrong during the copy, attempt to delete dst (if it exists).

If eol_str and keywords are NULL, behavior is just a byte-for-byte copy.

svn_error_t* svn_subst_detranslate_string svn_string_t **  new_value,
const svn_string_t value,
svn_boolean_t  for_stdout,
apr_pool_t *  pool
 

Translate the data in value from UTF8 and LF line-endings into native locale and native line-endings, or to the output locale if for_output is TURE.

Return the translated data in *new_value, allocated in pool.

void svn_subst_eol_style_from_value svn_subst_eol_style_t style,
const char **  eol,
const char *  value
 

Set *style to the appropriate svn_subst_eol_style_t and *eol to the appropriate cstring for a given svn:eol-style property value.

Set *eol to

  • NULL for svn_subst_eol_style_none, or

  • a null-terminated C string containing the native eol marker for this platform, for svn_subst_eol_style_native, or

  • a null-terminated C string containing the eol marker indicated by the property value, for svn_subst_eol_style_fixed.

If *style is NULL, then value was not a valid property value.

svn_boolean_t svn_subst_keywords_differ const svn_subst_keywords_t a,
const svn_subst_keywords_t b,
svn_boolean_t  compare_values
 

Return TRUE if a and b do not hold the same keywords.

If compare_values is TRUE, "same" means that the a and b contain exactly the same set of keywords, and the values of corresponding keywords match as well. Else if compare_values is FALSE, then "same" merely means that a and b hold the same set of keywords, although those keywords' values might differ.

a and/or b may be NULL; for purposes of comparison, NULL is equivalent to holding no keywords.

svn_error_t* svn_subst_translate_cstring const char *  src,
const char **  dst,
const char *  eol_str,
svn_boolean_t  repair,
const svn_subst_keywords_t keywords,
svn_boolean_t  expand,
apr_pool_t *  pool
 

Convenience routine: a variant of svn_subst_translate_stream2() which operates on cstrings.

(See previous docstring for details.)

Return a new string in *dst, allocated in pool, by copying the contents of string src, possibly performing line ending and keyword translations.

If eol_str and keywords are NULL, behavior is just a byte-for-byte copy.

svn_error_t* svn_subst_translate_stream svn_stream_t src,
svn_stream_t dst,
const char *  eol_str,
svn_boolean_t  repair,
const svn_subst_keywords_t keywords,
svn_boolean_t  expand
 

Same as svn_subst_translate_stream2(), but does not take a pool argument, instead creates a temporary subpool of the global pool, and destroys it before returning.

Deprecated:
Provided for backward compatibility with the 1.1 API.

svn_error_t* svn_subst_translate_stream2 svn_stream_t src,
svn_stream_t dst,
const char *  eol_str,
svn_boolean_t  repair,
const svn_subst_keywords_t keywords,
svn_boolean_t  expand,
apr_pool_t *  pool
 

Copy and translate the data in stream src into stream dst.

It is assumed that src is a readable stream and dst is a writable stream.

Since:
New in 1.2.
If eol_str is non-NULL, replace whatever bytestring src uses to denote line endings with eol_str in the output. If src has an inconsistent line ending style, then: if repair is FALSE, return SVN_ERR_IO_INCONSISTENT_EOL, else if repair is TRUE, convert any line ending in src to eol_str in dst. Recognized line endings are: "\\n", "\\r", and "\\r\\n".

Expand and contract keywords using the contents of keywords as the new values. If expand is TRUE, expand contracted keywords and re-expand expanded keywords. If expand is FALSE, contract expanded keywords and ignore contracted ones. NULL for any of the keyword values (keywords->revision, e.g.) indicates that keyword should be ignored (not contracted or expanded). If the keywords structure itself is NULL, keyword substitution will be altogether ignored.

Detect only keywords that are no longer than SVN_IO_MAX_KEYWORD_LEN bytes, including the delimiters and the keyword itself.

Note that a translation request is *required*: one of eol_str or keywords must be non-NULL.

Recommendation: if expand is false, then you don't care about the keyword values, so pass empty strings as non-null signifiers.

Notes:

See svn_wc__get_keywords() and svn_wc__get_eol_style() for a convenient way to get eol_str and keywords if in libsvn_wc.

svn_error_t* svn_subst_translate_string svn_string_t **  new_value,
const svn_string_t value,
const char *  encoding,
apr_pool_t *  pool
 

Translate the data in value (assumed to be in encoded in charset encoding) to UTF8 and LF line-endings.

If encoding is NULL, then assume that value is in the system-default language encoding. Return the translated data in *new_value, allocated in pool.


Generated on Thu Aug 25 00:11:41 2005 for Subversion by  doxygen 1.3.9.1