code:

Can't Copy and Paste this?

Click here for a copy-and-paste friendly version of this code!

 

Terms of Agreement:   

By using this code, you agree to the following terms...   

1) You may use this code in your own programs (and may compile it into a program and distribute it in compiled format for langauges that allow it) freely and with no charge.   

2) You MAY NOT redistribute this code (for example to a web site) without written permission from the original author. Failure to do so is a violation of copyright laws.   

3) You may link to this code from another website, but ONLY if it is not wrapped in a frame. 

4) You will abide by any additional copyright restrictions which the author may have placed in the code or code's description.  

/* +++Date last modified: 05-Jul-1997 */

/*

** public Domain by Jerry Coffin.

**

*/

#include 

#include 

#include "snip_str.h"

#if defined(__cplusplus) && __cplusplus

    extern "C" {

    #endif

    char *translate(char *string)

        {

        char *here=string;

        size_t len=strlen(string);

        int num;

        int numlen;

        while (NULL!=(here=strchr(here,'\\')))

            {

            numlen=1;

            switch (here[1])

                {

                case '\\':

                break;

                case 'r':

                *here = '\r';

                break;

                case 'n':

                *here = '\n';

                break;

                case 't':

                *here = '\t';

                break;

                case 'v':

                *here = '\v';

                break;

                case 'a':

                *here = '\a';

                break;

                case '0':

                case '1':

                case '2':

                case '3':

                case '4':

                case '5':

                case '6':

                case '7':

                numlen = sscanf(here,"%o",&num);

                *here = (char)num;

                break;

                case 'x':

                numlen = sscanf(here,"%x",&num);

                *here = (char) num;

                break;

            }

            num = here - string + numlen;

            here++;

            memmove(here,here+numlen,len-num );

        }

        return string;

    }

    #if defined(__cplusplus) && __cplusplus

}

#endif

 

 

Other 156 submission(s) by this author