/* * default_editor.c -- provide a basic svn_delta_editor_t * * ==================================================================== * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. * ==================================================================== */ #include #include #include "svn_types.h" #include "svn_delta.h" static svn_error_t * set_target_revision(void *edit_baton, svn_revnum_t target_revision, apr_pool_t *pool) { return SVN_NO_ERROR; } static svn_error_t * add_item(const char *path, void *parent_baton, const char *copyfrom_path, svn_revnum_t copyfrom_revision, apr_pool_t *pool, void **baton) { *baton = NULL; return SVN_NO_ERROR; } static svn_error_t * single_baton_func(void *baton, apr_pool_t *pool) { return SVN_NO_ERROR; } static svn_error_t * absent_xxx_func(const char *path, void *baton, apr_pool_t *pool) { return SVN_NO_ERROR; } static svn_error_t * open_root(void *edit_baton, svn_revnum_t base_revision, apr_pool_t *dir_pool, void **root_baton) { *root_baton = NULL; return SVN_NO_ERROR; } static svn_error_t * delete_entry(const char *path, svn_revnum_t revision, void *parent_baton, apr_pool_t *pool) { return SVN_NO_ERROR; } static svn_error_t * open_item(const char *path, void *parent_baton, svn_revnum_t base_revision, apr_pool_t *pool, void **baton) { *baton = NULL; return SVN_NO_ERROR; } static svn_error_t * change_prop(void *file_baton, const char *name, const svn_string_t *value, apr_pool_t *pool) { return SVN_NO_ERROR; } svn_error_t *svn_delta_noop_window_handler(svn_txdelta_window_t *window, void *baton) { return SVN_NO_ERROR; } static svn_error_t * apply_textdelta(void *file_baton, const char *base_checksum, apr_pool_t *pool, svn_txdelta_window_handler_t *handler, void **handler_baton) { *handler = svn_delta_noop_window_handler; *handler_baton = NULL; return SVN_NO_ERROR; } static svn_error_t * close_file(void *file_baton, const char *text_checksum, apr_pool_t *pool) { return SVN_NO_ERROR; } static svn_error_t * apply_textdelta_stream(const svn_delta_editor_t *editor, void *file_baton, const char *base_checksum, svn_txdelta_stream_open_func_t open_func, void *open_baton, apr_pool_t *scratch_pool) { svn_txdelta_window_handler_t handler; void *handler_baton; SVN_ERR(editor->apply_textdelta(file_baton, base_checksum, scratch_pool, &handler, &handler_baton)); if (handler != svn_delta_noop_window_handler) { svn_txdelta_stream_t *txdelta_stream; SVN_ERR(open_func(&txdelta_stream, open_baton, scratch_pool, scratch_pool)); SVN_ERR(svn_txdelta_send_txstream(txdelta_stream, handler, handler_baton, scratch_pool)); } return SVN_NO_ERROR; } static const svn_delta_editor_t default_editor = { set_target_revision, open_root, delete_entry, add_item, open_item, change_prop, single_baton_func, absent_xxx_func, add_item, open_item, apply_textdelta, change_prop, close_file, absent_xxx_func, single_baton_func, single_baton_func, apply_textdelta_stream }; svn_delta_editor_t * svn_delta_default_editor(apr_pool_t *pool) { return apr_pmemdup(pool, &default_editor, sizeof(default_editor)); }