+static void process_events(struct zoom_sh *sh)
+{
+ ZOOM_connection *c;
+ int i, number;
+ struct zoom_db *db;
+
+ for (number = 0, db = sh->list; db; db = db->next)
+ if (db->con)
+ number++;
+ c = xmalloc(sizeof(*c) * number);
+
+ for (i = 0, db = sh->list; db; db = db->next)
+ if (db->con)
+ c[i++] = db->con;
+
+ yaz_log(YLOG_DEBUG, "process_events");
+ while ((i = ZOOM_event(number, c)) != 0)
+ {
+ int peek = ZOOM_connection_peek_event(c[i-1]);
+ int event = ZOOM_connection_last_event(c[i-1]);
+ yaz_log(YLOG_DEBUG, "no = %d peek = %d event = %d %s", i-1,
+ peek,
+ event,
+ ZOOM_get_event_str(event));
+ }
+ xfree(c);
+}
+
+static int next_token_chars(const char **cpp, const char **t_start,
+ const char *tok_chars)