diff --git a/legacy/eina/src/include/Makefile.am b/legacy/eina/src/include/Makefile.am index b8fbbf4877..64b5782c9d 100644 --- a/legacy/eina/src/include/Makefile.am +++ b/legacy/eina/src/include/Makefile.am @@ -19,6 +19,7 @@ eina_counter.h \ eina_inline_array.x \ eina_magic.h \ eina_stringshare.h \ +eina_inline_stringshare.x \ eina_inline_list.x \ eina_accessor.h \ eina_convert.h \ diff --git a/legacy/eina/src/include/eina_inline_stringshare.x b/legacy/eina/src/include/eina_inline_stringshare.x new file mode 100644 index 0000000000..68188f0a0e --- /dev/null +++ b/legacy/eina/src/include/eina_inline_stringshare.x @@ -0,0 +1,43 @@ +/* EINA - EFL data type library + * Copyright (C) 2002-2008 Gustavo Sverzut Barbieri + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; + * if not, see . + */ + +#ifndef EINA_STRINGSHARE_INLINE_H_ +#define EINA_STRINGSHARE_INLINE_H_ + +/** + * @addtogroup Eina_Stringshare_Group Stringshare + * + * @{ + */ + +static inline Eina_Bool +eina_stringshare_replace(const char **p_str, const char *new) +{ + new = eina_stringshare_add(new); + eina_stringshare_del(*p_str); + if (*p_str == new) + return 0; + *p_str = new; + return 1; +} + +/** + * @} + */ + +#endif /* EINA_STRINGSHARE_INLINE_H_ */ diff --git a/legacy/eina/src/include/eina_stringshare.h b/legacy/eina/src/include/eina_stringshare.h index f760f0ed19..f59844dd0d 100644 --- a/legacy/eina/src/include/eina_stringshare.h +++ b/legacy/eina/src/include/eina_stringshare.h @@ -72,7 +72,10 @@ EAPI const char *eina_stringshare_ref(const char *str); EAPI void eina_stringshare_del(const char *str); EAPI int eina_stringshare_strlen(const char *str) EINA_CONST EINA_WARN_UNUSED_RESULT; EAPI void eina_stringshare_dump(void); - + + +#include "eina_inline_stringshare.x" + /** * @} */