diff options
Diffstat (limited to 'source/q_shared.c')
-rw-r--r-- | source/q_shared.c | 197 |
1 files changed, 0 insertions, 197 deletions
diff --git a/source/q_shared.c b/source/q_shared.c index 3d50803..dce4a17 100644 --- a/source/q_shared.c +++ b/source/q_shared.c @@ -1038,203 +1038,6 @@ size_t Q_UnescapeString( char *out, const char *in, size_t bufsize, escape_t fla } #endif -int Q_EscapeMarkup( char *out, const char *in, int bufsize ) { - char *p, *m, *s; - int c; - size_t l; - - if( bufsize < 1 ) { - Com_Error( ERR_FATAL, "%s: bad bufsize: %d", __func__, bufsize ); - } - - p = out; - m = out + bufsize - 1; - while( *in && p < m ) { - c = *in++; - c &= 0x7f; - - switch( c ) { - case '<': s = "<"; break; - case '>': s = ">"; break; - case '&': s = "&"; break; - case '"': s = """; break; - case 0x7f: - continue; - default: - if( c < 0x20 ) { - continue; - } - case '\t': - case '\r': - case '\n': - *p++ = c; - continue; - } - - l = strlen( s ); - if( p + l > m ) { - break; - } - - memcpy( p, s, l ); - p += l; - } - - *p = 0; - - return p - out; -} - -int Q_EscapeURI( char *out, const char *in, int bufsize ) { - char *p, *m; - int c; - - if( bufsize < 1 ) { - Com_Error( ERR_FATAL, "%s: bad bufsize: %d", __func__, bufsize ); - } - - p = out; - m = out + bufsize - 1; - while( *in && p < m ) { - c = *in++; - c &= 0x7f; - - if( Q_isalnum( c ) || c == '-' || c == '_' || c == '.' || - c == '!' || c == '~' || c == '*' || c == '(' || c == ')' ) - { - *p++ = c; - continue; - } - - if( p + 3 > m ) { - break; - } - p[0] = '%'; - p[1] = hexchars[c >> 4]; - p[2] = hexchars[c & 15]; - p += 3; - } - - *p = 0; - - return p - out; -} - -#define B64( c ) ( Q_isupper( c ) ? ( (c) - 'A' ) : \ - Q_islower( c ) ? ( (c) - 'a' + 26 ) : \ - Q_isdigit( c ) ? ( (c) - '0' + 52 ) : \ - (c) == '+' ? 62 : (c) == '/' ? 63 : -1 ) - -int Q_Decode64( char *out, const char *in, int bufsize ) { - char *p, *m; - int c1, c2; - - if( bufsize < 1 ) { - Com_Error( ERR_FATAL, "%s: bad bufsize: %d", __func__, bufsize ); - } - - p = out; - m = out + bufsize - 1; - while( *in ) { - c1 = B64( in[0] ); - c2 = B64( in[1] ); - if( c1 == -1 || c2 == -1 ) { - return -1; - } - if( p < m ) { - *p++ = ( c1 << 2 ) | ( c2 >> 4 ); - } - - if( in[2] == 0 ) { - return -1; - } - if( in[2] == '=' ) { - if( in[3] != '=' ) { - return -1; - } - break; - } - c1 = B64( in[2] ); - if( c1 == -1 ) { - return -1; - } - if( p < m ) { - *p++ = ( c1 >> 2 ) | ( ( c2 << 4 ) & 0xF0 ); - } - - if( in[3] == '=' ) { - if( in[4] != 0 ) { - return -1; - } - break; - } - c2 = B64( in[3] ); - if( c2 == -1 ) { - return -1; - } - if( p < m ) { - *p++ = c2 | ( ( c1 << 6 ) & 0xC0 ); - } - - in += 4; - } - - *p = 0; - - return p - out; -} - -#undef B64 - - -#define B64( c ) ( (c) < 26 ? ( (c) + 'A' ) : \ - (c) < 52 ? ( (c) + 'a' - 26 ) : \ - (c) < 62 ? ( (c) + '0' - 52 ) : \ - (c) == 62 ? '+' : (c) == 63 ? '/' : -1 ) - -int Q_Encode64( char *out, const char *in, int bufsize ) { - char *p, *m; - int c1, c2; - - if( bufsize < 1 ) { - Com_Error( ERR_FATAL, "%s: bad bufsize: %d", __func__, bufsize ); - } - - p = out; - m = out + bufsize - 1; - while( *in && p + 4 < m ) { - c1 = in[0]; - c2 = in[1]; - p[0] = B64( c1 >> 2 ); - p[1] = B64( ( ( c1 << 4 ) & 0x30 ) | ( c2 >> 4 ) ); - if( c2 ) { - c1 = in[2]; - p[2] = B64( ( c1 >> 6 ) | ( ( c2 << 2 ) & 0x3C ) ); - if( c1 ) { - p[3] = B64( c1 & 0x3F ); - } else { - p[3] = '='; - p += 4; - break; - } - } else { - p[2] = '='; - p[3] = '='; - p += 4; - break; - } - p += 4; - in += 3; - } - - *p = 0; - - return p - out; -} - -#undef B64 - - /* ================ Com_LocalTime |