[ekg2-commit] r3856 - trunk/ekg: trunk/ekg/events.c trunk/ekg/events.h
SVN commit
svn w toxygen.net
Sob, 8 Mar 2008, 14:40:19 CET
Author: peres
Date: 2008-03-08 14:40:19 +0100 (Sat, 08 Mar 2008)
New Revision: 3856
Modified:
trunk/ekg/events.c
trunk/ekg/events.h
Log:
Events into list3.
Modified: trunk/ekg/events.c
===================================================================
--- trunk/ekg/events.c 2008-03-08 11:33:55 UTC (rev 3855)
+++ trunk/ekg/events.c 2008-03-08 13:40:19 UTC (rev 3856)
@@ -39,7 +39,7 @@
#include "queries.h"
-list_t events = NULL;
+event_t *events = NULL;
char **events_all = NULL;
int config_display_day_changed = 1;
@@ -156,7 +156,6 @@
event_t *ev;
char *tmp;
int done = 0, id = 1;
- list_t l;
if (event_find(name, target)) {
printq("events_exist", name, target);
@@ -166,8 +165,7 @@
while (!done) {
done = 1;
- for (l = events; l; l = l->next) {
- ev = l->data;
+ for (ev = events; ev; ev = ev->next) {
if (ev->id == id) {
done = 0;
id++;
@@ -175,13 +173,13 @@
}
}
}
- ev = xmalloc(sizeof(event_t));
+ ev = xmalloc(sizeof(event_t));
ev->id = id;
ev->name = xstrdup(name);
ev->prio = prio;
ev->target = xstrdup(target);
ev->action = xstrdup(action);
- LIST_ADD_SORTED(&events, ev, event_add_compare);
+ LIST_ADD_SORTED2(&events, ev, event_add_compare);
tmp = xstrdup(name);
query_emit_id(NULL, EVENT_ADDED, &tmp);
@@ -196,7 +194,6 @@
xfree(data->name);
xfree(data->action);
xfree(data->target);
- xfree(data);
}
/*
@@ -222,7 +219,7 @@
return -1;
}
- LIST_REMOVE(&events, ev, list_event_free);
+ LIST_REMOVE2(&events, ev, list_event_free);
printq("events_del", itoa(id));
@@ -244,7 +241,7 @@
if (!events)
return;
- LIST_DESTROY(events, list_event_free);
+ LIST_DESTROY2(events, list_event_free);
events = NULL;
}
@@ -254,7 +251,7 @@
* it shows the list of events
*/
static int events_list(int id, int quiet) {
- list_t l;
+ event_t *ev;
if (!events) {
printq("events_list_empty");
@@ -263,9 +260,7 @@
printq("events_list_header");
- for (l = events; l; l = l->next) {
- event_t *ev = l->data;
-
+ for (ev = events; ev; ev = ev->next) {
if (!id || id == ev->id)
printq("events_list", ev->name, itoa(ev->prio), ev->target, ev->action, itoa(ev->id));
}
@@ -281,16 +276,14 @@
*
*/
event_t *event_find(const char *name, const char *target) {
- list_t l;
- event_t *ev_max = NULL;
+ event_t *ev, *ev_max = NULL;
int ev_max_prio = 0;
char **b, **c;
debug("// event_find (name (%s), target (%s)\n", name, target);
b = array_make(target, ("|,;"), 0, 1, 0);
c = array_make(name, ("|,;"), 0, 1, 0);
- for (l = events; l; l = l->next) {
- event_t *ev = l->data;
+ for (ev = events; ev; ev = ev->next) {
char **a, **d;
int i, j, k, m;
@@ -328,16 +321,14 @@
*
*/
static event_t *event_find_all(const char *name, const char *session, const char *uid, const char *target, const char *data) {
- list_t l;
- event_t *ev_max = NULL;
+ event_t *ev, *ev_max = NULL;
int ev_max_prio = 0;
char **b, **c;
// debug("// event_find_all (session %s) (name (%s), target (%s)\n", session, name, target);
b = array_make(target, ("|,;"), 0, 1, 0);
c = array_make(name, ("|,;"), 0, 1, 0);
- for (l = events; l; l = l->next) {
- event_t *ev = l->data;
+ for (ev = events; ev; ev = ev->next) {
char **a, **d;
int i, j, k, m;
@@ -380,11 +371,9 @@
*
*/
static event_t *event_find_id(unsigned int id) {
- list_t l;
+ event_t *ew;
- for (l = events; l; l = l->next) {
- event_t *ew = l->data;
-
+ for (ew = events; ew; ew = ew->next) {
if (ew->id != id)
continue;
else
Modified: trunk/ekg/events.h
===================================================================
--- trunk/ekg/events.h 2008-03-08 11:33:55 UTC (rev 3855)
+++ trunk/ekg/events.h 2008-03-08 13:40:19 UTC (rev 3856)
@@ -25,6 +25,8 @@
#include "stuff.h"
typedef struct event {
+ struct event *next;
+
unsigned int id; /* identyficator */
char *name; /* name of the event */
char *target; /* uid(s), alias(es), group(s) */
@@ -32,7 +34,7 @@
int prio; /* priority of this event */
} event_t;
-extern list_t events;
+extern event_t *events;
extern char **events_all; /* it may be help for tab complete */
int event_add(const char *name, int prio, const char *target, const char *action, int quiet);
Więcej informacji o liście dyskusyjnej ekg2-commit