aboutsummaryrefslogtreecommitdiffstats
path: root/log.c
diff options
context:
space:
mode:
authordequis <dx@dxzone.com.ar>2015-10-27 02:36:34 -0300
committerdequis <dx@dxzone.com.ar>2015-10-30 07:31:09 -0300
commit0edc2fb9f963a735cbd02d944bc3f5dd0f0768bf (patch)
tree59c804519eeec895b74ca4a62df6a7d7c82d16ad /log.c
parent884577f0bc3ceedebb68f3df1c5b60a131b5baa8 (diff)
log: Refactor log_link() to be less redundant.
"I didn't feel like messing with pointer to function pointers", said the comment. Well, I do, comment. It wasn't a big deal either.
Diffstat (limited to 'log.c')
-rw-r--r--log.c52
1 files changed, 15 insertions, 37 deletions
diff --git a/log.c b/log.c
index 220afbdc..273ac923 100644
--- a/log.c
+++ b/log.c
@@ -50,50 +50,28 @@ void log_init(void)
void log_link(int level, int output)
{
- /* I know it's ugly, but it works and I didn't feel like messing with pointer to function pointers */
+ void (*output_function)(int level, const char *logmessage) = &log_null;
+
+ if (output == LOGOUTPUT_NULL) {
+ output_function = &log_null;
+ } else if (output == LOGOUTPUT_IRC) {
+ output_function = &log_irc;
+ } else if (output == LOGOUTPUT_SYSLOG) {
+ output_function = &log_syslog;
+ } else if (output == LOGOUTPUT_CONSOLE) {
+ output_function = &log_console;
+ }
if (level == LOGLVL_INFO) {
- if (output == LOGOUTPUT_NULL) {
- logoutput.informational = &log_null;
- } else if (output == LOGOUTPUT_IRC) {
- logoutput.informational = &log_irc;
- } else if (output == LOGOUTPUT_SYSLOG) {
- logoutput.informational = &log_syslog;
- } else if (output == LOGOUTPUT_CONSOLE) {
- logoutput.informational = &log_console;
- }
+ logoutput.informational = output_function;
} else if (level == LOGLVL_WARNING) {
- if (output == LOGOUTPUT_NULL) {
- logoutput.warning = &log_null;
- } else if (output == LOGOUTPUT_IRC) {
- logoutput.warning = &log_irc;
- } else if (output == LOGOUTPUT_SYSLOG) {
- logoutput.warning = &log_syslog;
- } else if (output == LOGOUTPUT_CONSOLE) {
- logoutput.warning = &log_console;
- }
+ logoutput.warning = output_function;
} else if (level == LOGLVL_ERROR) {
- if (output == LOGOUTPUT_NULL) {
- logoutput.error = &log_null;
- } else if (output == LOGOUTPUT_IRC) {
- logoutput.error = &log_irc;
- } else if (output == LOGOUTPUT_SYSLOG) {
- logoutput.error = &log_syslog;
- } else if (output == LOGOUTPUT_CONSOLE) {
- logoutput.error = &log_console;
- }
+ logoutput.error = output_function;
}
#ifdef DEBUG
else if (level == LOGLVL_DEBUG) {
- if (output == LOGOUTPUT_NULL) {
- logoutput.debug = &log_null;
- } else if (output == LOGOUTPUT_IRC) {
- logoutput.debug = &log_irc;
- } else if (output == LOGOUTPUT_SYSLOG) {
- logoutput.debug = &log_syslog;
- } else if (output == LOGOUTPUT_CONSOLE) {
- logoutput.debug = &log_console;
- }
+ logoutput.debug = output_function;
}
#endif
return;