int is_in(char *str, char *c, char *syntax) { int i; int inside; char begin; int r; i = 0; inside = 0; begin = 0; while (str[i]) { r = update_inside(&begin, str, &i, syntax); if (r) inside += r; else if (inside && ft_strchr(c, str[i])) return (1); i++; } return (0); }
bool AirspaceWarningManager::update(const AIRCRAFT_STATE& state, const bool circling) { bool changed = false; // save old state for (AirspaceWarningList::iterator it = m_warnings.begin(); it != m_warnings.end(); ++it) it->save_state(); // check from strongest to weakest alerts update_inside(state); update_glide(state); if (circling) update_filter(state); update_task(state); // action changes for (AirspaceWarningList::iterator it = m_warnings.begin(); it != m_warnings.end(); ) { if (it->warning_live(config.AcknowledgementTime)) { if (it->changed_state()) changed = true; it++; } else { if (!it->trivial()) { //changed = true; // was downgraded to eliminate } it = m_warnings.erase(it); } } // sort by importance, most severe top m_warnings.sort(); return changed; }
int is_closed(char *str, char *syntax) { int i; int inside; char begin; inside = 0; begin = 0; i = 0; if (str == NULL) return (1); while (str[i]) { inside += update_inside(&begin, str, &i, syntax); i += 1; } if (i > 0 && str[i - 1] == '\\' && !is_escaped(str, &str[i - 1])) { str[i - 1] = 0; return (0); } return (inside ? 0 : 1); }