diff --git a/include/common.h b/include/common.h index ffb8cde..b9990d2 100644 --- a/include/common.h +++ b/include/common.h @@ -1,4 +1,26 @@ -#define IS_VERBOSE TRUE +#ifndef __IN303_COMMON_H__ +#define __IN303_COMMON_H__ + #define TRUE 1 #define FALSE 0 #define NUM_CHARS 256 + +/** + * Écrire sur la sortie standard à la manière de printf, + * seulement si le mode verbeux est actif + */ +void printVerbose(const char *format, ...); + +/** + * Active ou désactive l'affichage des messages verbeux + * (mode verbeux). Si activé, `printVerbose` écrit sur + * la sortie standard. Sinon, `printVerbose` n'a pas d'effet + */ +void setVerbose(int); + +/** + * Renvoie l'état du mode verbeux + */ +int isVerbose(); + +#endif diff --git a/src/common.c b/src/common.c new file mode 100644 index 0000000..543c228 --- /dev/null +++ b/src/common.c @@ -0,0 +1,23 @@ +#include "../include/common.h" +#include +#include + +static int is_verbose = FALSE; + +void printVerbose(const char *format, ...) { + if (is_verbose) { + va_list args_list; + + va_start(args_list, format); + vprintf(format, args_list); + va_end(args_list); + } +} + +void setVerbose(int flag) { + is_verbose = flag; +} + +int isVerbose() { + return is_verbose; +}