File indexing completed on 2024-04-28 16:01:32

0001 /******************************************************************************
0002  * This file is part of the libqgit2 library
0003  *
0004  * This library is free software; you can redistribute it and/or
0005  * modify it under the terms of the GNU Lesser General Public
0006  * License as published by the Free Software Foundation; either
0007  * version 2.1 of the License, or (at your option) any later version.
0008  *
0009  * This library is distributed in the hope that it will be useful,
0010  * but WITHOUT ANY WARRANTY; without even the implied warranty of
0011  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
0012  * Lesser General Public License for more details.
0013  *
0014  * You should have received a copy of the GNU Lesser General Public
0015  * License along with this library; if not, write to the Free Software
0016  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
0017  */
0018 
0019 #include "qgitrebaseoptions.h"
0020 #include "qgitcheckoutoptions.h"
0021 
0022 namespace LibQGit2
0023 {
0024 
0025 struct RebaseOptions::Private {
0026     Private(const CheckoutOptions &checkoutOpts)
0027         : mOpts()
0028     {
0029         git_rebase_options &opts = const_cast<git_rebase_options &>(mOpts);
0030         git_rebase_init_options(&opts, GIT_REBASE_OPTIONS_VERSION);
0031         opts.checkout_options = *checkoutOpts.data();
0032     }
0033 
0034     const git_rebase_options *constData() const
0035     {
0036         return &mOpts;
0037     }
0038 
0039 private:
0040     const git_rebase_options mOpts;
0041 };
0042 
0043 RebaseOptions::RebaseOptions(const CheckoutOptions &checkoutOptions)
0044     : d_ptr(new Private(checkoutOptions))
0045 {
0046 }
0047 
0048 const git_rebase_options *RebaseOptions::constData() const
0049 {
0050     return d_ptr->constData();
0051 }
0052 }