static int _read_depfile(FILE * f, struct trie *nodes, unsigned int *nnodesp) { int len, newline, err; char token[LINE_MAX + 1]; struct node *n; len = next_token(f, token, LINE_MAX + 1, &newline); while (len != EOF) { if (len == 0) { fprintf(stderr, "Malformed dependency file\n"); return 1; } if (token[len - 1] != ':') { fprintf(stderr, "Expected ':', got '%c'\n", token[len - 1]); return 1; } token[len - 1] = '\0'; n = get_node(nodes, token, nnodesp); if (!n) return -1; if (!newline) { err = read_depends(f, nodes, n, nnodesp); if (err) return 1; } len = next_token(f, token, LINE_MAX + 1, &newline); } return 0; }
void setup_triggers(void) { Serial.println("setting up triggers"); in_rfid = new input_trigger(); in_rfid_auth = new input_trigger(); in_button1 = new input_trigger(); in_button2 = new input_trigger(); in_opto = new input_trigger(); out_opto = new output_trigger(); in_rfid->set_name("input/rfid"); in_rfid_auth->set_name("input/rfid/auth"); in_button1->set_name("input/button1"); in_button2->set_name("input/button2"); in_opto->set_name("input/opto"); out_opto->set_name("output/opto"); // todo - set output actions. if (true) { trigger_run_all(dump_trigger); } /* we run through the configuration files in several passes. As we need * unique section names, we need to work through until weve read all * the lines */ Serial.println("reading triggers"); read_triggers(); read_depends(); if (true) { trigger_run_all(dump_trigger); } }