+/*
+ * This function tries to deduce the CS_* identifier of the charset
+ * used in the current C locale. It falls back to CS_ASCII if it
+ * can't figure it out at all, so it will always return a valid
+ * charset.
+ *
+ * (Note that you should have already called setlocale(LC_CTYPE,
+ * "") to guarantee that this function will do the right thing.)
+ */
+int charset_from_locale(void);
+
+/*
+ * This function simply reports whether a charset identifier
+ * corresponds to an actually usable charset. Not everything in the
+ * above enum does: CS_NONE, for a start, and occasionally other slots
+ * in the enum are reserved before they actually go into service.
+ *
+ * This function permits clients to iterate over _all_ supported
+ * charsets by means of a loop such as
+ *
+ * for (cs = 0; cs < CS_LIMIT; cs++)
+ * if (charset_exists(cs))
+ * do_stuff_with(cs);
+ */
+int charset_exists(int charset);
+