Lines Matching refs:psenc
570 _ISO2022State * __restrict psenc)
579 _DIAGASSERT(psenc != NULL);
586 psenc->gl = 0;
592 psenc->gl = 1;
600 psenc->singlegl = psenc->singlegr =
638 psenc->g[i].type = sp->type;
639 psenc->g[i].final = '\0';
640 psenc->g[i].interm = '\0';
641 psenc->g[i].vers = '\0';
644 psenc->g[i].final = string[sp->finaloff];
646 psenc->g[i].interm = string[sp->intermoff];
648 psenc->g[i].vers = string[sp->versoff];
658 psenc->gl = string[1] - 'n' + 2;
668 psenc->gr = 3 - (string[1] - '|');
677 psenc->singlegl = (string[1] - 'N') + 2;
726 cur = (psenc->singlegr == -1)
727 ? psenc->gr : psenc->singlegr;
729 cur = (psenc->singlegl == -1)
730 ? psenc->gl : psenc->singlegl;
739 psenc->singlegr = psenc->singlegl = -1;
744 switch (psenc->g[cur].type) {
747 if (!isthree(psenc->g[cur].final)) {
775 switch (psenc->g[cur].type) {
794 switch (psenc->g[cur].type) {
797 if (psenc->g[cur].final == 'B' && !psenc->g[cur].interm) {
802 wchar = psenc->g[cur].final;
804 wchar |= (psenc->g[cur].interm ? (0x80 | psenc->g[cur].interm) : 0);
810 if (psenc->g[cur].final == 'A' && !psenc->g[cur].interm) {
816 wchar = psenc->g[cur].final;
818 wchar |= (psenc->g[cur].interm ? (0x80 | psenc->g[cur].interm) : 0);
825 wchar = psenc->g[cur].final;
827 if (isthree(psenc->g[cur].final))
831 if (psenc->g[cur].type == CS96MULTI)
839 psenc->singlegr = psenc->singlegl = -1;
849 size_t n, _ISO2022State * __restrict psenc,
859 _DIAGASSERT(psenc != NULL);
863 _citrus_ISO2022_init_state(ei, psenc);
869 chlenbak = psenc->chlen;
875 if (psenc->chlen < 0 || psenc->chlen > sizeof(psenc->ch)) {
877 _citrus_ISO2022_init_state(ei, psenc);
880 if (psenc->chlen == 0)
884 p = psenc->ch;
885 while (psenc->chlen < sizeof(psenc->ch)) {
887 psenc->ch[psenc->chlen++] = *s0++;
891 wchar = _ISO2022_sgetwchar(ei, p, psenc->chlen - (p-psenc->ch),
892 &result, psenc);
895 if (psenc->chlen > c)
896 memmove(psenc->ch, result, psenc->chlen - c);
897 if (psenc->chlen < c)
898 psenc->chlen = 0;
900 psenc->chlen -= c;
905 if ((result - p) == psenc->chlen)
907 psenc->chlen = 0;
918 wchar = _ISO2022_sgetwchar(ei, s0, n, &result, psenc);
921 psenc->chlen = 0;
935 if (n < sizeof(psenc->ch)) {
936 memcpy(psenc->ch, s0 - c, n);
937 psenc->chlen = n;
945 psenc->chlen = 0;
1028 _ISO2022State * __restrict psenc,
1043 _DIAGASSERT(psenc != NULL);
1076 if (psenc->g[target].type == cs.type
1077 && psenc->g[target].final == cs.final
1078 && psenc->g[target].interm == cs.interm)
1095 psenc->g[target].type = cs.type;
1096 psenc->g[target].final = cs.final;
1097 psenc->g[target].interm = cs.interm;
1101 if (psenc->gl == target)
1103 if (bit8 && psenc->gr == target)
1108 psenc->gl = 0;
1111 psenc->gl = 1;
1115 psenc->gl = 2;
1119 psenc->gl = 3;
1123 psenc->gr = 1;
1128 psenc->gr = 2;
1132 psenc->gr = 3;
1136 psenc->singlegl = 2;
1140 psenc->singlegl = 3;
1144 psenc->singlegl = psenc->singlegr = 2;
1148 psenc->singlegl = psenc->singlegr = 3;
1153 if (psenc->singlegl == target)
1155 else if (psenc->singlegr == target)
1157 else if (psenc->gl == target)
1159 else if ((ei->flags & F_8BIT) && psenc->gr == target)
1179 psenc->singlegl = psenc->singlegr = -1;
1203 _ISO2022State * __restrict psenc,
1216 ret = _ISO2022_sputwchar(ei, L'\0', buf, sizeof(buf), &result, psenc,
1237 _ISO2022State * __restrict psenc,
1247 _DIAGASSERT(psenc != NULL);
1251 ret = _ISO2022_sputwchar(ei, wc, buf, sizeof(buf), &result, psenc,
1316 _ISO2022State * __restrict psenc,
1320 if (psenc->chlen == 0) {
1324 if (psenc->ch[0] == '\033')