/* Please use git log for copyright holder and year information This file is part of libbash. libbash is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. libbash is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libbash. If not, see . */ /// /// \file echo_builtin.h /// \brief class that implements the echo builtin /// #ifndef LIBBASH_BUILTINS_ECHO_BUILTIN_H_ #define LIBBASH_BUILTINS_ECHO_BUILTIN_H_ #include #include #include "../cppbash_builtin.h" /// /// \class echo_builtin /// \brief the echo builtin for bash /// class echo_builtin: public virtual cppbash_builtin { public: BUILTIN_CONSTRUCTOR(echo) /// /// \brief runs the echo plugin on the supplied arguments /// \param bash_args the arguments to the echo builtin /// \return exit status of echo /// virtual int exec(const std::vector& bash_args); private: /// /// \brief determines the options passed as arguments /// \param string string to check for arguments /// \param suppress_nl returns back whether to suppress newlines /// \param enable_escapes returns back whether to enable escapes /// \return false if all options have been processed bool determine_options(const std::string &string, bool &suppress_nl, bool &enable_escapes); }; #endif