/* Cataract - Static web photo gallery generator * Copyright (C) 2008 Tomas Bzatek * * 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 2 * of the License, or 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, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifdef __cplusplus extern "C" { #endif #include #include #define IS_DIR_SEP(ch) ((ch) == '/' || (ch) == '~') #define IS_EQUAL_SIGN(ch) ((ch) == '=') #define GET_EXT(s) strrchr (s, '.') /* * str_replace: replace substring 'search' with a 'replace' string * - multiple occurences of the string are replaced * - reallocates the original string */ void str_replace (char **dst, const char *search, const char *replace); /* * copy_file: copy file from src to dst */ gboolean copy_file (const char *src, const char *dst); /* * make_string: make string of 'substr' substrings * - returns newly allocated string */ char *make_string (const char *substr, int count); /* * fix_entities: replace all invalid & entities with & * - returns newly allocated string */ void fix_entities (char **str); /* * remove_tags: remove all occurences of tags beginning with tag_begin and ending with tag_end * - e.g. remove_tags (&x, "") will remove all comments * - returns newly allocated string */ void remove_tags (char **str, const char *tag_begin, const char *tag_end); /* * count_dir_levels: returns number of path elements */ int count_dir_levels (const char *path); /* * extract_file_ext: returns pointer to filename extension */ const char *extract_file_ext (const char *filename); /* * log_error: prints an error and increments stats */ void log_error (const gchar *format, ...) G_GNUC_PRINTF (1, 2); /* * needs_update: returns TRUE if the destionation file needs updating, also when missing */ gboolean needs_update (const char *source, const char *dest); #ifdef __cplusplus } #endif