From 7e0f021a9aec35fd8e6725e87e3313b101d26f5e Mon Sep 17 00:00:00 2001 From: Tobias Klauser Date: Sun, 27 Jan 2008 11:37:44 +0100 Subject: Initial import (2.0.2-6) --- reference/C/EXAMPLES/convesc.c | 118 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 reference/C/EXAMPLES/convesc.c (limited to 'reference/C/EXAMPLES/convesc.c') diff --git a/reference/C/EXAMPLES/convesc.c b/reference/C/EXAMPLES/convesc.c new file mode 100644 index 0000000..f79b11e --- /dev/null +++ b/reference/C/EXAMPLES/convesc.c @@ -0,0 +1,118 @@ + +/********************************************************************** + * + * Description: If a text string is created outside of C, the + * escape codes are not correctly stored. This + * routine will prepare them for C's use. + * + * Author : M.J. Leslie + * Date: 25-Feb-96 + * + *********************************************************************/ + +void mos_ConvertEscapeCode(char *String, char *Code); + +int main(int argc, char *argv[]) +{ + if (argc == 1) + { + puts("\n\tPlease provide a text string on the command line."); + } + else + { + printf("I/P string is: %s\n", argv[1]); + mos_ConvertEscapeCode(argv[1], "\\n"); + mos_ConvertEscapeCode(argv[1], "\\t"); + mos_ConvertEscapeCode(argv[1], "\\v"); + mos_ConvertEscapeCode(argv[1], "\\b"); + mos_ConvertEscapeCode(argv[1], "\\r"); + mos_ConvertEscapeCode(argv[1], "\\f"); + printf("O/P string is: %s\n", argv[1]); + } +} + +/********************************************************************** + * + * Purpose: To convert escape codes in text form into + * actual codes. + * + * I/P ------------------------------- + * | A | B | C | \ | n | D | E | F | + * ------------------------------- + * + * O/P ---------------------------- + * | A | B | C | \n | D | E | F | + * ---------------------------- + * + **********************************************************************/ + +void mos_ConvertEscapeCode(char *String, char *Code) +{ + char *Ptr1; + char *Ptr2; + char EscCode = ' '; + + /* ... Make sure the Code is long enough */ + + if (strlen(Code) == 2) + { + + /* ... Find the right escape code. */ + + switch(Code[1]) + { + case 'n': /* New line */ + EscCode = '\n'; + break; + case 't': /* Horizontal tab */ + EscCode = '\t'; + break; + case 'v': /* Vertical tab */ + EscCode = '\v'; + break; + case 'b': /* Backspace */ + EscCode = '\b'; + break; + case 'r': /* Return */ + EscCode = '\r'; + break; + case 'f': /* Form feed */ + EscCode = '\f'; + break; + default: + break; + } + + /* ... If the escape code has been found */ + + if (EscCode != ' ') + { + + /* ... Copy each character until the text code is found, + ... insert the escape code and copy the remaining chars. */ + + for (Ptr1=Ptr2=String; Ptr2 < (String+strlen(String)+1); Ptr1++, Ptr2++) + { + if ((*Ptr2 == '\\') && (*(Ptr2+1) == Code[1])) + { + *Ptr1 = EscCode; + Ptr2++; + } + else + { + *Ptr1 = *Ptr2; + } + } + } + } +} + + + + + + + + + + -- cgit v1.2.3-54-g00ecf