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

📄 delta-window-test.h

📁 subversion-1.4.3-1.tar.gz 配置svn的源码
💻 H
字号:
/* delta-window-test.h -- utilities for delta window output * * ==================================================================== * Copyright (c) 2000-2004 CollabNet.  All rights reserved. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution.  The terms * are also available at http://subversion.tigris.org/license-1.html. * If newer versions of this license are posted there, you may use a * newer version instead, at your option. * * This software consists of voluntary contributions made by many * individuals.  For exact contribution history, see the revision * history and logs, available at http://subversion.tigris.org/. * ==================================================================== */#ifndef SVN_DELTA_WINDOW_TEST_H#define SVN_DELTA_WINDOW_TEST_H#define APR_WANT_STDIO#define APR_WANT_STRFUNC#include <apr_want.h>#include <apr_lib.h>#include "svn_delta.h"static apr_off_tdelta_window_size_estimate(const svn_txdelta_window_t *window){  apr_off_t len;  int i;  if (!window)    return 0;  /* Try to estimate the size of the delta. */  for (i = 0, len = 0; i < window->num_ops; ++i)    {      apr_size_t const offset = window->ops[i].offset;      apr_size_t const length = window->ops[i].length;      if (window->ops[i].action_code == svn_txdelta_new)        {          len += 1;             /* opcode */          len += (length > 255 ? 2 : 1);          len += length;        }      else        {          len += 1;             /* opcode */          len += (offset > 255 ? 2 : 1);          len += (length > 255 ? 2 : 1);        }    }  return len;}static apr_off_tdelta_window_print(const svn_txdelta_window_t *window,                   const char *tag, FILE *stream){  const apr_off_t len = delta_window_size_estimate(window);  apr_off_t op_offset = 0;  int i;  if (!window)    return 0;  fprintf(stream, "%s: (WINDOW %" APR_OFF_T_FMT, tag, len);  fprintf(stream,          " (%" SVN_FILESIZE_T_FMT          " %" APR_SIZE_T_FMT " %" APR_SIZE_T_FMT ")",          window->sview_offset, window->sview_len, window->tview_len);  for (i = 0; i < window->num_ops; ++i)    {      apr_size_t const offset = window->ops[i].offset;      apr_size_t const length = window->ops[i].length;      apr_size_t tmp;      switch (window->ops[i].action_code)        {        case svn_txdelta_source:          fprintf(stream, "\n%s:   (%" APR_OFF_T_FMT " SRC %" APR_SIZE_T_FMT                  " %" APR_SIZE_T_FMT ")", tag, op_offset, offset, length);          break;        case svn_txdelta_target:          fprintf(stream, "\n%s:   (%" APR_OFF_T_FMT " TGT %" APR_SIZE_T_FMT                  " %" APR_SIZE_T_FMT ")", tag, op_offset, offset, length);          break;        case svn_txdelta_new:          fprintf(stream, "\n%s:   (%" APR_OFF_T_FMT " NEW %"                  APR_SIZE_T_FMT " \"", tag, op_offset, length);          for (tmp = offset; tmp < offset + length; ++tmp)            {              int const dat = window->new_data->data[tmp];              if (apr_iscntrl(dat) || !apr_isascii(dat))                fprintf(stream, "\\%3.3o", dat & 0xff);              else if (dat == '\\')                fputs("\\\\", stream);              else                putc(dat, stream);            }          fputs("\")", stream);          break;        default:          fprintf(stream, "\n%s:   (BAD-OP)", tag);        }      op_offset += length;    }  fputs(")\n", stream);  return len;}#endif /* SVN_DELTA_WINDOW_TEST_H */

⌨️ 快捷键说明

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