/** * scols_table_next_column: * @tb: a pointer to a struct libscols_table instance * @itr: a pointer to a struct libscols_iter instance * @cl: a pointer to a pointer to a struct libscols_column instance * * Returns the next column of @tb via @cl. * * Returns: 0, a negative value in case of an error. */ int scols_table_next_column(struct libscols_table *tb, struct libscols_iter *itr, struct libscols_column **cl) { int rc = 1; if (!tb || !itr || !cl) return -EINVAL; *cl = NULL; if (!itr->head) SCOLS_ITER_INIT(itr, &tb->tb_columns); if (itr->p != itr->head) { SCOLS_ITER_ITERATE(itr, *cl, struct libscols_column, cl_columns); rc = 0; }
/** * scols_line_next_child: * @ln: a pointer to a struct libscols_line instance * @itr: a pointer to a struct libscols_iter instance * @chld: a pointer to a pointer to a struct libscols_line instance * * Finds the next child and returns a pointer to it via @chld. * * Returns: 0, a negative value in case of an error. */ int scols_line_next_child(struct libscols_line *ln, struct libscols_iter *itr, struct libscols_line **chld) { int rc = 1; if (!ln || !itr || !chld) return -EINVAL; *chld = NULL; if (!itr->head) SCOLS_ITER_INIT(itr, &ln->ln_branch); if (itr->p != itr->head) { SCOLS_ITER_ITERATE(itr, *chld, struct libscols_line, ln_children); rc = 0; }