+/*----- Progress indicators -----------------------------------------------*/
+
+/* --- @fprogress_init@ --- *
+ *
+ * Arguments: @fprogress *f@ = progress context to be initialized
+ * @const char *name@ = file name string to show
+ * @FILE *fp@ = file we're reading from
+ *
+ * Returns: Zero on success, nonzero if the file's state is now broken.
+ *
+ * Use: Initializes a progress context. Nothing is actually
+ * displayed yet.
+ */
+
+extern int fprogress_init(fprogress */*f*/,
+ const char */*name*/, FILE */*fp*/);
+
+/* --- @fprogress_update@ --- *
+ *
+ * Arguments: @fprogress *f@ = progress context
+ * @size_t n@ = how much progress has been made
+ *
+ * Returns: ---
+ *
+ * Use: Maybe updates the display to show that some progress has been
+ * made.
+ */
+
+extern void fprogress_update(fprogress */*f*/, size_t /*n*/);
+
+/* --- @fprogress_clear@ --- *
+ *
+ * Arguments: @fprogress *f@ = progress context
+ *
+ * Returns: ---
+ *
+ * Use: Clears the progress display from the screen.
+ */
+
+extern void fprogress_clear(fprogress */*f*/);
+
+/* --- @fprogress_done@ --- *
+ *
+ * Arguments: @fprogress *f@ = progress context
+ *
+ * Returns: ---
+ *
+ * Use: Clear up the progress context and removes any display.
+ */
+
+extern void fprogress_done(fprogress */*f*/);
+