// // aegis - project change supervisor // Copyright (C) 2000-2003, 2005-2008 Peter Miller // // This program 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 3 of the License, or // (at your option) any later version. // // This program 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 this program. If not, see // . // #ifndef LIBAEGIS_CHANGE_ATTRIBUTES_H #define LIBAEGIS_CHANGE_ATTRIBUTES_H #include struct cattr_ty; struct cstate_ty; struct pconf_ty; struct project_ty; struct string_ty; void change_attributes_default(cattr_ty *, project_ty *, struct pconf_ty *); void change_attributes_copy(struct cattr_ty *, cstate_ty *); void change_attributes_verify(string_ty *, cattr_ty *); void change_attributes_edit(cattr_ty **, int); /** * The change_attributes_append function is used to append an * attribute to the change's list of attributes. Note this this allow * duplicates. * * \param cs * The chage state to work on. * \param name * The name of the attribute, case insensitive. * (names atrting with a lower-case letter do not appear in listings) * \param value * The value to assign to the attribute. */ void change_attributes_append(cstate_ty *cs, const char *name, const char *value); /** * The change_attributes_find function is used to find a specific named * attribute amongst the given change's attributes. Only the first * such attribute is returned. * * \param cp * The change to be searched. * \param name * The name of the attribute to search for. * \returns * The value of the given attribute, or NULL if not found. */ string_ty *change_attributes_find(change::pointer cp, string_ty *name); /** * The change_attributes_find_boolean function is used to find a * specific named attribute amongst the given change's attributes. * Only the first such attribute is returned. * * \param cp * The change to be searched. * \param name * The name of the attribute to search for. * \param default_value * The default value of the attribute is not present. * \returns * bool; the value of the attribute interpreted as a boolean (it * understands, "yes", "no", "true" and "false"), or the default * value if not set or undeciperable. */ bool change_attributes_find_boolean(change::pointer cp, const char *name, bool default_value = false); /** * The change_attributes_fixup function is used to trim description and * brief description fields. Only cosmetic changes are allowed. * * @param cap * The change attributes in question. */ void change_attributes_fixup(cattr_ty *cap); #endif // LIBAEGIS_CHANGE_ATTRIBUTES_H