Lines Matching refs:st

52 void AddChar (char Char, struct _cv_state* st);
234 struct _cv_state *st; in _cv_open() local
236 if ((st = (struct _cv_state *)malloc(sizeof(struct _cv_state))) == NULL) in _cv_open()
239 st->invalid = 0; in _cv_open()
240 st->flush_obuf = 0; in _cv_open()
241 st->ibuf_left = 0; in _cv_open()
242 st->start_cnt = 0; in _cv_open()
243 st->end_cnt = 0; in _cv_open()
245 return (st); in _cv_open()
249 _cv_close(st) in _cv_close() argument
250 struct _cv_state *st; in _cv_close()
252 free(st);
257 _cv_enconv(st, inbuf, inbytesleft, outbuf, outbytesleft) in _cv_enconv() argument
258 struct _cv_state *st; in _cv_enconv()
268 st->invalid = 0;
269 st->flush_obuf = 0;
270 st->ibuf_left = 0;
271 st->start_cnt = 0;
272 st->end_cnt = 0;
276 if (st->flush_obuf) {
277 while ((*outbytesleft > 0) && (st->start_cnt < st->end_cnt)) {
278 **outbuf = st->temp_obuf[st->start_cnt];
281 (st->start_cnt)++;
284 if (st->start_cnt < st->end_cnt) {
287 st->flush_obuf = 0;
288 st->start_cnt = 0;
289 st->end_cnt = 0;
293 st->my_outbuf = outbuf;
294 st->my_outbytesleft = outbytesleft;
296 while (*inbytesleft > 0 && *(st->my_outbytesleft) > 0) {
298 if (st->ibuf_left) {
299 c = st->temp_ibuf[0];
300 st->ibuf_left = 0;
308 st->ibuf_left = 1;
309 st->temp_ibuf[0] = c;
318 AddChar ('?', st);
319 AddChar ('?', st);
321 AddChar (code>>8, st);
322 AddChar (code&BYTE_MASK, st);
324 if (st->invalid) {
325 st->invalid = 0;
330 AddChar (c, st);
331 if (st->invalid) {
332 st->invalid = 0;
341 AddChar (Char, st) in AddChar() argument
343 struct _cv_state *st;
346 if (*(st->my_outbytesleft) <= 0) {
347 st->invalid = 1;
348 st->temp_obuf[st->end_cnt] = Char;
349 st->end_cnt++;
350 st->flush_obuf = 1;
352 **(st->my_outbuf) = Char;
353 (*(st->my_outbuf))++, (*(st->my_outbytesleft))--;
375 struct _cv_state *st; in main() local
385 st = _cv_open(); in main()
393 _cv_enconv(st, &ip1, &ileft, &op1, &oleft)); in main()
395 printf(" flush_obuf %d ibuf_left %d\n", st->flush_obuf, in main()
396 st->ibuf_left); in main()
402 _cv_close(st); in main()
408 st = _cv_open(); in main()
416 _cv_enconv(st, &ip2, &ileft, &op2, &oleft)); in main()
418 printf(" flush_obuf %d ibuf_left %d\n", st->flush_obuf, in main()
419 st->ibuf_left); in main()
435 _cv_enconv(st, &ip21, &ileft, &op2, &oleft)); in main()
437 printf(" flush_obuf %d ibuf_left %d\n", st->flush_obuf, in main()
438 st->ibuf_left); in main()
444 _cv_close(st); in main()
450 st = _cv_open(); in main()
458 _cv_enconv(st, &ip3, &ileft, &op3, &oleft)); in main()
460 printf(" flush_obuf %d ibuf_left %d\n", st->flush_obuf, in main()
461 st->ibuf_left); in main()
462 printf(" strat_cnt %d end_cnt %d\n", st->start_cnt, in main()
463 st->end_cnt); in main()
473 _cv_enconv(st, &ip3, &ileft, &op3, &oleft)); in main()
475 printf(" flush_obuf %d ibuf_left %d\n", st->flush_obuf, in main()
476 st->ibuf_left); in main()
477 printf(" strat_cnt %d end_cnt %d\n", st->start_cnt, in main()
478 st->end_cnt); in main()
488 _cv_enconv(st, &ip3, &ileft, &op3, &oleft)); in main()
490 printf(" flush_obuf %d ibuf_left %d\n", st->flush_obuf, in main()
491 st->ibuf_left); in main()
492 printf(" strat_cnt %d end_cnt %d\n", st->start_cnt, in main()
493 st->end_cnt); in main()
499 _cv_close(st); in main()