#include <ctype.h>
#include <string.h>
+#ifndef __RTL__
#include <stdlib.h>
+#endif
#include <ul_logbase.h>
#include <ul_logreg.h>
#include <ul_gsacust.h>
typedef const char *ul_log_domains_key_t;
-inline int
+int
ul_log_domains_cmp_fnc(const ul_log_domains_key_t *a, const ul_log_domains_key_t *b)
{
return strcmp(*a,*b);
#define UL_MAX_DOMAIN_NAME 20
#endif /*UL_MAX_DOMAIN_NAME*/
+/* Argument syntax:
+ *
+ * <arg> := <assignment> | <arg> (':' | ',') <assignment>
+ * <assignment> := [ <domain> ('.' | '=') ] NUMBER
+ * <domain> := ( IDENTIFIER | "all" | "ALL" )
+ */
int ul_log_domain_arg2levels(const char *arg)
{
const char *p=arg;
strcpy(name,"all");
}else{
r=p;
- while(isalnum(*p)) p++;
+ while(isalnum(*p)||(*p=='_')) p++;
l=p-r;
if(l>UL_MAX_DOMAIN_NAME)
l=UL_MAX_DOMAIN_NAME;
}
return 0;
}
+
+void ul_logreg_for_each_domain(ul_logreg_domain_cb_t *callback, void *context)
+{
+ ul_log_domains_it_t it;
+ ul_log_domain_t *domain;
+ ul_for_each_it(ul_log_domains, &ul_log_domains, it) {
+ domain=ul_log_domains_it2item(&it);
+ if (callback) {
+ int ret;
+ ret = callback(domain, context);
+ if (ret)
+ break;
+ }
+ }
+}