⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 utf.c

📁 subversion-1.4.3-1.tar.gz 配置svn的源码
💻 C
📖 第 1 页 / 共 3 页
字号:
  if (node->handle)    {      err = convert_to_stringbuf(node, src->data, src->len, dest, pool);      if (! err)        err = check_utf8((*dest)->data, (*dest)->len, pool);    }  else    {      err = check_non_ascii(src->data, src->len, pool);      if (! err)        *dest = svn_stringbuf_dup(src, pool);    }  put_xlate_handle_node(node, SVN_UTF_NTOU_XLATE_HANDLE, pool);  return err;}svn_error_t *svn_utf_string_to_utf8(const svn_string_t **dest,                       const svn_string_t *src,                       apr_pool_t *pool){  svn_stringbuf_t *destbuf;  xlate_handle_node_t *node;  svn_error_t *err;  SVN_ERR(get_ntou_xlate_handle_node(&node, pool));  if (node->handle)    {      err = convert_to_stringbuf(node, src->data, src->len, &destbuf, pool);      if (! err)        err = check_utf8(destbuf->data, destbuf->len, pool);      if (! err)        *dest = svn_string_create_from_buf(destbuf, pool);    }  else    {      err = check_non_ascii(src->data, src->len, pool);      if (! err)        *dest = svn_string_dup(src, pool);    }  put_xlate_handle_node(node, SVN_UTF_NTOU_XLATE_HANDLE, pool);  return err;}/* Common implementation for svn_utf_cstring_to_utf8,   svn_utf_cstring_to_utf8_ex, svn_utf_cstring_from_utf8 and   svn_utf_cstring_from_utf8_ex. Convert SRC to DEST using NODE->handle as   the translator and allocating from POOL. */static svn_error_t *convert_cstring(const char **dest,                const char *src,                xlate_handle_node_t *node,                apr_pool_t *pool){  if (node->handle)    {      svn_stringbuf_t *destbuf;      SVN_ERR(convert_to_stringbuf(node, src, strlen(src),                                   &destbuf, pool));      *dest = destbuf->data;    }  else    {      apr_size_t len = strlen(src);      SVN_ERR(check_non_ascii(src, len, pool));      *dest = apr_pstrmemdup(pool, src, len);    }  return SVN_NO_ERROR;}svn_error_t *svn_utf_cstring_to_utf8(const char **dest,                        const char *src,                        apr_pool_t *pool){  xlate_handle_node_t *node;  svn_error_t *err;  SVN_ERR(get_ntou_xlate_handle_node(&node, pool));  err = convert_cstring(dest, src, node, pool);  put_xlate_handle_node(node, SVN_UTF_NTOU_XLATE_HANDLE, pool);  SVN_ERR(err);  SVN_ERR(check_cstring_utf8(*dest, pool));  return SVN_NO_ERROR;}svn_error_t *svn_utf_cstring_to_utf8_ex2(const char **dest,                            const char *src,                            const char *frompage,                            apr_pool_t *pool){  xlate_handle_node_t *node;  svn_error_t *err;  const char *convset_key = get_xlate_key(SVN_APR_UTF8_CHARSET, frompage,                                          pool);  SVN_ERR(get_xlate_handle_node(&node, SVN_APR_UTF8_CHARSET, frompage,                                convset_key, pool));  err = convert_cstring(dest, src, node, pool);  put_xlate_handle_node(node, convset_key, pool);  SVN_ERR(err);  SVN_ERR(check_cstring_utf8(*dest, pool));  return SVN_NO_ERROR;}svn_error_t *svn_utf_cstring_to_utf8_ex(const char **dest,                           const char *src,                           const char *frompage,                           const char *convset_key,                           apr_pool_t *pool){  return svn_utf_cstring_to_utf8_ex2(dest, src, frompage, pool);}svn_error_t *svn_utf_stringbuf_from_utf8(svn_stringbuf_t **dest,                            const svn_stringbuf_t *src,                            apr_pool_t *pool){  xlate_handle_node_t *node;  svn_error_t *err;  SVN_ERR(get_uton_xlate_handle_node(&node, pool));  if (node->handle)    {      err = check_utf8(src->data, src->len, pool);      if (! err)        err = convert_to_stringbuf(node, src->data, src->len, dest, pool);    }  else    {      err = check_non_ascii(src->data, src->len, pool);      if (! err)        *dest = svn_stringbuf_dup(src, pool);    }  put_xlate_handle_node(node, SVN_UTF_UTON_XLATE_HANDLE, pool);  return err;}svn_error_t *svn_utf_string_from_utf8(const svn_string_t **dest,                         const svn_string_t *src,                         apr_pool_t *pool){  svn_stringbuf_t *dbuf;  xlate_handle_node_t *node;  svn_error_t *err;  SVN_ERR(get_uton_xlate_handle_node(&node, pool));  if (node->handle)    {      err = check_utf8(src->data, src->len, pool);      if (! err)        err = convert_to_stringbuf(node, src->data, src->len,                                   &dbuf, pool);      if (! err)        *dest = svn_string_create_from_buf(dbuf, pool);    }  else    {      err = check_non_ascii(src->data, src->len, pool);      if (! err)        *dest = svn_string_dup(src, pool);    }  put_xlate_handle_node(node, SVN_UTF_UTON_XLATE_HANDLE, pool);  return err;}svn_error_t *svn_utf_cstring_from_utf8(const char **dest,                          const char *src,                          apr_pool_t *pool){  xlate_handle_node_t *node;  svn_error_t *err;  SVN_ERR(check_utf8(src, strlen(src), pool));  SVN_ERR(get_uton_xlate_handle_node(&node, pool));  err = convert_cstring(dest, src, node, pool);  put_xlate_handle_node(node, SVN_UTF_UTON_XLATE_HANDLE, pool);  return err;}svn_error_t *svn_utf_cstring_from_utf8_ex2(const char **dest,                              const char *src,                              const char *topage,                              apr_pool_t *pool){  xlate_handle_node_t *node;  svn_error_t *err;  const char *convset_key = get_xlate_key(topage, SVN_APR_UTF8_CHARSET,                                          pool);  SVN_ERR(check_utf8(src, strlen(src), pool));  SVN_ERR(get_xlate_handle_node(&node, topage, SVN_APR_UTF8_CHARSET,                                convset_key, pool));  err = convert_cstring(dest, src, node, pool);  put_xlate_handle_node(node, convset_key, pool);  return err;}svn_error_t *svn_utf_cstring_from_utf8_ex(const char **dest,                             const char *src,                             const char *topage,                             const char *convset_key,                             apr_pool_t *pool){  return svn_utf_cstring_from_utf8_ex2(dest, src, topage, pool);}const char *svn_utf__cstring_from_utf8_fuzzy(const char *src,                                 apr_pool_t *pool,                                 svn_error_t *(*convert_from_utf8)                                 (const char **, const char *, apr_pool_t *)){  const char *escaped, *converted;  svn_error_t *err;  escaped = fuzzy_escape(src, strlen(src), pool);  /* Okay, now we have a *new* UTF-8 string, one that's guaranteed to     contain only 7-bit bytes :-).  Recode to native... */  err = convert_from_utf8(((const char **) &converted), escaped, pool);  if (err)    {      svn_error_clear(err);      return escaped;    }  else    return converted;  /* ### Check the client locale, maybe we can avoid that second   * conversion!  See Ulrich Drepper's patch at   * http://subversion.tigris.org/issues/show_bug.cgi?id=807.   */}const char *svn_utf_cstring_from_utf8_fuzzy(const char *src,                                apr_pool_t *pool){  return svn_utf__cstring_from_utf8_fuzzy(src, pool,                                          svn_utf_cstring_from_utf8);}svn_error_t *svn_utf_cstring_from_utf8_stringbuf(const char **dest,                                    const svn_stringbuf_t *src,                                    apr_pool_t *pool){  svn_stringbuf_t *destbuf;  SVN_ERR(svn_utf_stringbuf_from_utf8(&destbuf, src, pool));  *dest = destbuf->data;  return SVN_NO_ERROR;}svn_error_t *svn_utf_cstring_from_utf8_string(const char **dest,                                 const svn_string_t *src,                                 apr_pool_t *pool){  svn_stringbuf_t *dbuf;  xlate_handle_node_t *node;  svn_error_t *err;  SVN_ERR(get_uton_xlate_handle_node(&node, pool));  if (node->handle)    {      err = check_utf8(src->data, src->len, pool);      if (! err)        err = convert_to_stringbuf(node, src->data, src->len,                                   &dbuf, pool);      if (! err)        *dest = dbuf->data;    }  else    {      err = check_non_ascii(src->data, src->len, pool);      if (! err)        *dest = apr_pstrmemdup(pool, src->data, src->len);    }  put_xlate_handle_node(node, SVN_UTF_UTON_XLATE_HANDLE, pool);  return err;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -