From de4a44205f754ed928149303be4ffd419834f492 Mon Sep 17 00:00:00 2001 From: Soikk Date: Thu, 12 Jun 2025 21:01:15 +0200 Subject: Added more remove fps functions, other QOL changes --- log/log.c | 48 ++++++++++++++++++++++++++++++++++++++---------- log/log.h | 5 ++++- 2 files changed, 42 insertions(+), 11 deletions(-) (limited to 'log') diff --git a/log/log.c b/log/log.c index 4ac11fa..74a74c5 100755 --- a/log/log.c +++ b/log/log.c @@ -55,9 +55,15 @@ int log_set_stderr(int level, int of){ return 0; } -void log_set_level(int level, int of){ +int log_get_level(int level){ if(level >= 0 && level < LOG_LEVEL_COUNT){ - log_levels[level].set = of; + return log_levels[level].set; + } +} + +int log_set_level(int level, int of){ + if(level >= 0 && level < LOG_LEVEL_COUNT){ + return log_levels[level].set = of; } } @@ -77,19 +83,41 @@ FILE *log_get_fp(int level, int i){ } int log_remove_fp(int level, FILE *fp){ + if(level >= 0 && level < LOG_LEVEL_COUNT){ + for(int i = 0; i < log_levels[level].nfps; i++){ + if(log_levels[level].fps[i] == fp){ + for(int j = i; j < MAX_LOGFILES-1; j++){ + log_levels[level].fps[j] = log_levels[level].fps[j+1]; + } + log_levels[level].fps[log_levels[level].nfps--] = NULL; + return 0; + } + } + } + return 1; +} + +int log_remove_fp_i(int level, int i){ + if(level < 0 || level >= LOG_LEVEL_COUNT || i < 0 || i >= log_levels[level].nfps){ + return 1; + } + int j = i; + for(; j < log_levels[level].nfps-1; j++){ + log_levels[level].fps[j] = log_levels[level].fps[j+1]; + } + log_levels[level].fps[j] = NULL; + return 0; +} + +int log_remove_fps(int level){ if(level < 0 || level >= LOG_LEVEL_COUNT){ return 1; } for(int i = 0; i < log_levels[level].nfps; i++){ - if(log_levels[level].fps[i] == fp){ - for(int j = i; j < MAX_LOGFILES-1; j++){ - log_levels[level].fps[j] = log_levels[level].fps[j+1]; - } - log_levels[level].fps[log_levels[level].nfps--] = NULL; - return 0; - } + log_levels[level].fps[i] = NULL; } - return 1; + log_levels[level].nfps = 0; + return 0; } int log_get_files(int level){ diff --git a/log/log.h b/log/log.h index 34c5154..1e35301 100755 --- a/log/log.h +++ b/log/log.h @@ -28,10 +28,13 @@ enum { int log_get_stderr(int level); int log_set_stderr(int level, int of); -void log_set_level(int level, int of); +int log_get_level(int level); +int log_set_level(int level, int of); int log_add_fp(int level, FILE *fp); FILE *log_get_fp(int level, int i); int log_remove_fp(int level, FILE *fp); +int log_remove_fp_i(int level, int i); +int log_remove_fps(int level); int log_get_files(int level); void log_time_format(char *tf); int log_nanoseconds(int n); -- cgit v1.2.3