From 4d0754b307fe27e5a692cad32177395378eb5f9b Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Wed, 28 Sep 2005 02:07:08 +0000
Subject: [PATCH] Created macros to read/write standard log levels as Enum
 string values (should LOG_INFO be the only abbreviated string?).

---
 src/xpdev/ini_file.c | 7 +++++++
 src/xpdev/ini_file.h | 6 ++++++
 2 files changed, 13 insertions(+)

diff --git a/src/xpdev/ini_file.c b/src/xpdev/ini_file.c
index b14386c55e..66f3d1d515 100644
--- a/src/xpdev/ini_file.c
+++ b/src/xpdev/ini_file.c
@@ -61,6 +61,13 @@ void iniSetDefaultStyle(ini_style_t style)
 	default_style = style;
 }
 
+char* log_levels[] = {"Emergency", "Alert", "Critical", "Error", "Warning", "Notice", "Info", "Debug", NULL};
+
+str_list_t iniLogLevelStringList(void)
+{
+	return(log_levels);
+}
+
 static char* section_name(char* p)
 {
 	char*	tp;
diff --git a/src/xpdev/ini_file.h b/src/xpdev/ini_file.h
index 262b06b08f..9f1f66a867 100644
--- a/src/xpdev/ini_file.h
+++ b/src/xpdev/ini_file.h
@@ -70,6 +70,9 @@ str_list_t	iniReadKeyList(FILE*, const char* section);
 named_string_t**
 			iniReadNamedStringList(FILE*, const char* section);
 
+/* Return the supported Log Levels in a string list - for *LogLevel macros */
+str_list_t	iniLogLevelStringList(void);
+
 /* These functions read a single key of the specified type */
 char*		iniReadString(FILE*, const char* section, const char* key
 					,const char* deflt, char* value);
@@ -99,6 +102,7 @@ double		iniReadNamedFloat(FILE*, const char* section, const char* key
 					,named_double_t*, double deflt);
 ulong		iniReadBitField(FILE*, const char* section, const char* key
 					,ini_bitdesc_t* bitdesc, ulong deflt);
+#define		iniReadLogLevel(f,s,k,d) iniReadEnum(f,s,k,iniLogLevelStringList(),d)
 
 /* Free string list returned from iniRead*List functions */
 void*		iniFreeStringList(str_list_t list);
@@ -149,6 +153,7 @@ double		iniGetNamedFloat(str_list_t, const char* section, const char* key
 					,named_double_t*, double deflt);
 ulong		iniGetBitField(str_list_t, const char* section, const char* key
 					,ini_bitdesc_t* bitdesc, ulong deflt);
+#define		iniGetLogLevel(l,s,k,d) iniGetEnum(l,s,k,iniLogLevelStringList(),d)
 
 void		iniSetDefaultStyle(ini_style_t);
 
@@ -182,6 +187,7 @@ char*		iniSetBitField(str_list_t*, const char* section, const char* key, ini_bit
 					,ini_style_t*);
 char*		iniSetStringList(str_list_t*, const char* section, const char* key
 					,const char* sep, str_list_t value, ini_style_t*);
+#define		iniSetLogLevel(l,s,k,v,style) iniSetEnum(l,s,k,iniLogLevelStringList(),v,style)
 
 size_t		iniAddSection(str_list_t*, const char* section
 					,ini_style_t*);
-- 
GitLab