SYNOPSIS
#include <vis.h>
int unvis(char *cp, int c, int *astate, int flag);
int strunvis(char *dst, const char *src);
DESCRIPTION
The
The
The
- 0
-
Another character is necessary; nothing has been recognized yet.
- UNVIS_VALID
-
A valid character has been recognized and is available at the specified location.
- UNVIS_VALIDPUSH
-
A valid character has been recognized and is available at the specified location; however, the character currently passed in should be passed in again.
- UNVIS_NOCHAR
-
A valid sequence was detected, but no character was produced. This return code is necessary to indicate a logical break between characters.
- UNVIS_SYNBAD
-
An invalid escape sequence was detected, or the decoder is in an unknown state. The decoder is placed into the starting state.
When all bytes in the stream have been processed, call
The following code fragment
illustrates a proper use of
int state = 0; char out; while ((ch =getchar() ) != EOF) { again: switch (unvis(&out, ch, &state, 0)) { case 0: case UNVIS_NOCHAR: break; case UNVIS_VALID: putchar(out); break; case UNVIS_VALIDPUSH: putchar(out); goto again; case UNVIS_SYNBAD: fprintf(stderr, "bad sequence!\n"); exit(1); } } if (unvis(&out, (char)0, &state, UNVIS_END) == UNVIS_VALID) putchar(out);
PARAMETERS
- cp
-
Pointer to stored character.
- c
-
Character to parse for conversion
- astate
-
Pointer to location in which state is stored
- flag
-
Should be 0 until the end of the input stream, at which time a final call should be made with flag set to UNVIS_END
- dst
-
Destination buffer for decoded characters.
- src
-
Buffer of characters to be converted.
RETURN VALUES
The
CONFORMANCE
4.4BSD
MULTITHREAD SAFETY LEVEL
MT-Safe.
PORTING ISSUES
None.
AVAILABILITY
MKS Toolkit for Professional Developers
MKS Toolkit for Enterprise Developers
MKS Toolkit for Enterprise Developers 64-Bit Edition
SEE ALSO
MKS Toolkit 9.3 Documentation Build 6.