text: /*************************************************************************************
   * MIT License                                                                       *
   *                                                                                   *
   * Copyright (C) 2016 Charly Lamothe, Stéphane Arcellier                             *
   *                                                                                   *
   * This file is part of LCompiler.                                                   *
   *                                                                                   *
   *   Permission is hereby granted, free of charge, to any person obtaining a copy    *
   *   of this software and associated documentation files (the "Software"), to deal   *
   *   in the Software without restriction, including without limitation the rights    *
   *   to use, copy, modify, merge, publish, distribute, sublicense, and/or sell       *
   *   copies of the Software, and to permit persons to whom the Software is           *
   *   furnished to do so, subject to the following conditions:                        *
   *                                                                                   *
   *   The above copyright notice and this permission notice shall be included in all  *
   *   copies or substantial portions of the Software.                                 *
   *                                                                                   *
   *   THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR      *
   *   IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,        *
   *   FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE     *
   *   AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER          *
   *   LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,   *
   *   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE   *
   *   SOFTWARE.                                                                       *
   *************************************************************************************/
  
  #ifndef UTILS_H
  #define UTILS_H
  
  #include "bool.h"
  
  bool last_char_is(char *str, char c);
  
  /* Remove the first character of a string */
  void remove_first_char(char *str);
  
  void remove_last_char(char *str);
  
  char *string_create_from(const char *str);
  
  const char *get_file_name_extension(const char *file_name);
  
  int get_digits_number(int number);
  
  char *create_dump_file_name(const char *source_file_name, char *type);
  
  char *get_file_name_from_path(char *path);
  
  bool is_file_exists(const char *file_name);
  
  bool is_dir_exists(const char *file_name);
  
  unsigned short count_dir_files(const char *dir_name, bool recursively);
  
  char **list_directory(char *dir_name, unsigned short *files, bool recursively);
  
  #endif
  