-int
-dump_entry(TERMTYPE * tterm,
- bool suppress_untranslatable,
- bool limited,
- int already_used,
+static bool
+purged_acs(TERMTYPE *tterm)
+{
+ bool result = FALSE;
+
+ if (VALID_STRING(acs_chars)) {
+ if (!one_one_mapping(acs_chars)) {
+ enter_alt_charset_mode = ABSENT_STRING;
+ exit_alt_charset_mode = ABSENT_STRING;
+ SHOW_WHY("# (rmacs/smacs removed for consistency)\n");
+ }
+ result = TRUE;
+ }
+ return result;
+}
+
+static void
+encode_b64(char *target, char *source, unsigned state, int *saved)
+{
+ /* RFC-4648 */
+ static const char data[] =
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+ "abcdefghijklmnopqrstuvwxyz"
+ "0123456789" "-_";
+ int ch = UChar(source[state]);
+
+ switch (state % 3) {
+ case 0:
+ *target++ = data[ch & 077];
+ *saved = (ch >> 6) & 3;
+ break;
+ case 1:
+ *target++ = data[((ch << 2) | *saved) & 077];
+ *saved = (ch >> 4) & 017;
+ break;
+ case 2:
+ *target++ = data[((ch << 4) | *saved) & 077];
+ *target++ = data[(ch >> 2) & 077];
+ *saved = 0;
+ break;
+ }
+ *target = '\0';
+}
+
+/*
+ * Dump a single entry.
+ */
+void
+dump_entry(TERMTYPE *tterm,
+ int suppress_untranslatable,
+ int limited,