FreeCalypso > hg > freecalypso-tools
view uptools/libcoding/decode_helpers.c @ 752:c79aaed75bd8
compile-fc-batt: allow possible third field in source lines
Battery tables maintained in the fc-battery-conf repository will now
have a third field added, defining thresholds for the battery bars icon,
and there will be a new utility to compile them into the new
/etc/batterytab2 file read by the FC Tourmaline version of our
FCHG driver. For backward compatibility with the original Magnetite
version of FCHG, compile-fc-batt remains the tool for compiling the
original /etc/batterytab file format, and it needs to ignore the
newly added third field in battery table sources.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Thu, 05 Nov 2020 20:37:55 +0000 |
parents | 978571e23318 |
children | 1c599681fd60 |
line wrap: on
line source
/* * This library module implements the is_decoded_char_ok() and emit_utf8_char() * functions used by gsm7_to_ascii_or_ext() and ucs2_to_ascii_or_ext(). */ #include <sys/types.h> is_decoded_char_ok(uni, ascii_ext) unsigned uni; { unsigned upper_limit; /* weed out control chars first */ if (uni < 0x20) return(0); if (uni >= 0x7F && uni <= 0x9F) return(0); /* see what range our output encoding allows */ switch (ascii_ext) { case 0: upper_limit = 0x7F; break; case 1: upper_limit = 0xFF; break; case 2: upper_limit = 0xFFFF; break; default: upper_limit = 0; } if (uni <= upper_limit) return(1); else return(0); } emit_utf8_char(uni, outp) unsigned uni; u_char *outp; { if (uni < 0x80) { *outp = uni; return(1); } if (uni < 0x800) { outp[0] = 0xC0 | (uni >> 6); outp[1] = 0x80 | (uni & 0x3F); return(2); } outp[0] = 0xE0 | (uni >> 12); outp[1] = 0x80 | ((uni >> 6) & 0x3F); outp[2] = 0x80 | (uni & 0x3F); return(3); }