+static Article *dequeue_from(int peek, InputFile *ipf) {
+ if (!ipf) return 0;
+ if (peek) return LIST_HEAD(ipf->queue);
+ else return LIST_REMHEAD(ipf->queue);
+}
+
+static Article *dequeue(int peek) {
+ Article *art;
+ art= dequeue_from(peek, flushing_input_file); if (art) return art;
+ art= dequeue_from(peek, backlog_input_file); if (art) return art;
+ art= dequeue_from(peek, main_input_file); if (art) return art;
+ return 0;
+}
+