void p_openscope(t_pars *e, t_lex **node) { if (e->step == PBEGIN) add_err(e, SCOPEMISS, (*node)->value); e->scope++; if (e->scope > 2) add_err(e, SCOPEMISS, (*node)->value); }
static void scan_cb (int si, int sni) { put_err_service (aa_service_name (aa_service (si)), ERR_DEPEND, 0); add_err (": "); add_err (aa_service_name (aa_service (sni))); end_err (); add_to_list (&ga_depend, si, 0); check_essential (si); }
static void p_perlin(t_pars *e, t_lex **node) { (*node) = (*node)->next; if (!*node) add_err(e, BADARG, ""); else if ((*node)->token_type != VALUE) add_err(e, BADARG, (*node)->value); else e->cur->perlin = atof((*node)->value); }
void p_reflection(t_pars *e, t_lex **node) { double reflection; if (!(*node)->next) add_err(e, BADARG, ""); else *node = (*node)->next; reflection = atof((*node)->value); if (reflection < 0 || reflection > 1) add_err(e, BADARG, (*node)->value); else e->cur->reflection = reflection; }
void p_refraction(t_pars *e, t_lex **node) { double refraction; if (!(*node)->next || (*node)->next->token_type != VALUE) { add_err(e, BADARG, ""); return ; } *node = (*node)->next; refraction = atof((*node)->value); if (refraction < 0) add_err(e, BADARG, (*node)->value); else e->cur->refraction = refraction; }
void p_plane_value(t_pars *e, t_lex **node) { t_point p; if (e->substep != SSBEGIN) { add_err(e, UNKOBJ, (*node)->value); return ; } p.z = atof((*node)->value); e->cur->coord = p; }
void p_plane_word(t_pars *e, t_lex **node) { char *tmp; if (check(e, node)) return ; tmp = (*node)->value; if (!strcmp(tmp, "pigment")) e->substep = SSPIGMENT; else if (!strcmp(tmp, "texture")) e->substep = SSTEXTURE; else if (!strcmp(tmp, "finish")) e->substep = SSFINISH; else if (!strcmp(tmp, "damier")) e->substep = SSDAMIER; else if (!strcmp(tmp, "end")) p_limit(e, node); else if (!strcmp(tmp, "perlin")) p_perlin(e, node); else add_err(e, UNKOBJ, tmp); }
static int add_service (const char *name, void *data) { int si = -1; int type; int r; type = aa_get_service (name, &si, 1); if (type < 0) r = type; else r = aa_mark_service (mode, si, type == AA_SERVICE_FROM_MAIN, no_wants, autoload_cb); if (r < 0) { if (r == -ERR_UNKNOWN) { put_err_service (name, ERR_UNKNOWN, 1); add_name_to_ga (name, &ga_unknown); } else if (r == -ERR_IO) { /* ERR_IO from aa_get_service() means we don't have a si (it is * actually set to the return value); but from aa_mark_service() * (e.g. to read "needs") then we do */ if (si < 0) { put_err_service (name, ERR_IO, 1); add_name_to_ga (name, &ga_io); } else { int e = errno; put_err_service (name, ERR_IO, 0); add_err (": "); add_err (strerror (e)); end_err (); add_to_list (&ga_failed, si, 0); check_essential (si); } } else if (r == -ERR_ALREADY_UP) { if (!(mode & AA_MODE_IS_DRY)) put_title (1, name, errmsg[-r], 1); ++nb_already; r = 0; } else { aa_service *s = aa_service (si); const char *msg = aa_service_status_get_msg (&s->st); int has_msg; has_msg = s->st.event == AA_EVT_ERROR && s->st.code == -r && !!msg; put_err_service (name, -r, !has_msg); if (has_msg) { add_err (": "); add_err (msg); end_err (); } add_to_list ((r == -ERR_DEPEND) ? &ga_depend : &ga_failed, si, 0); check_essential (si); } } else r = 0; return r; }