Changeset 6585


Ignore:
Timestamp:
Aug 18, 2008, 3:55:01 AM (13 years ago)
Author:
charles
Message:

(libT 1.3x) backport the three utf-8 fixes from r6584, r6568, and r6866.

Location:
branches/1.3x/libtransmission
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/1.3x/libtransmission/bencode.c

    r6489 r6585  
    11661166            case '"' : evbuffer_add_printf( data->out, "\\\"" ); break;
    11671167            case '\\': evbuffer_add_printf( data->out, "\\\\" ); break;
    1168             default: {
    1169                 if( isascii( *it ) )
    1170                     evbuffer_add_printf( data->out, "%c", *it );
    1171                 else
    1172                     evbuffer_add_printf( data->out, "\\u%0x", (unsigned int)*it );
    1173                 break;
    1174             }
     1168            default:   evbuffer_add_printf( data->out, "%c", *it );
    11751169        }
    11761170    }
  • branches/1.3x/libtransmission/json-test.c

    r6489 r6585  
    1515            fprintf( stderr, "PASS test #%d (%s, %d)\n", test, __FILE__, __LINE__ ); \
    1616    } else { \
    17         if( VERBOSE ) \
    18             fprintf( stderr, "FAIL test #%d (%s, %d)\n", test, __FILE__, __LINE__ ); \
     17        fprintf( stderr, "FAIL test #%d (%s, %d)\n", test, __FILE__, __LINE__ ); \
    1918        return test; \
    2019    } \
     20}
     21
     22static int
     23test_utf8( void )
     24{
     25    const char * in = "{ \"key\": \"Letöltések\" }";
     26    tr_benc top;
     27    const char * str;
     28    const int err = tr_jsonParse( in, strlen(in), &top, NULL );
     29
     30    check( !err );
     31    check( tr_bencIsDict( &top ) );
     32    check( tr_bencDictFindStr( &top, "key", &str ) );
     33    check( !strcmp( str, "Letöltések" ) );
     34
     35    if( !err )
     36        tr_bencFree( &top );
     37
     38    return 0;
    2139}
    2240
     
    4058    const char * str;
    4159    int64_t i;
    42     const uint8_t * end = NULL;
    43     const int err = tr_jsonParse( in, strlen(in), &top, &end );
     60    const int err = tr_jsonParse( in, strlen(in), &top, NULL );
    4461
    4562    check( !err );
     
    7390    int i;
    7491
     92    if(( i = test_utf8( )))
     93        return i;
     94
    7595    if(( i = test1( )))
    7696        return i;
  • branches/1.3x/libtransmission/json.c

    r6489 r6585  
    127127{
    128128    int err = 0;
    129     const char * buf = vbuf;
     129    const unsigned char * buf = vbuf;
    130130    const void * bufend = buf + len;
    131131    struct JSON_config_struct config;
  • branches/1.3x/libtransmission/rpc-server.c

    r6535 r6585  
    215215            const int len = strlen( response );
    216216            evbuffer_add_printf( cbuf->out, "HTTP/1.1 200 OK\r\n"
    217                                             "Content-Type: text/xml\r\n"
     217                                            "Content-Type: text/xml; charset=UTF-8\r\n"
    218218                                            "Content-Length: %d\r\n"
    219219                                            "\r\n"
     
    241241{
    242242    const char * redirect = "HTTP/1.1 200 OK""\r\n"
    243                             "Content-Type: text/html" "\r\n"
     243                            "Content-Type: text/html; charset=UTF-8" "\r\n"
    244244                            "\r\n"
    245245                            "<html><head>" "\r\n"
     
    288288
    289289        evbuffer_add_printf( cbuf->out, "HTTP/1.1 200 OK\r\n"
    290                                         "Content-Type: application/json\r\n"
     290                                        "Content-Type: application/json; charset=UTF-8\r\n"
    291291                                        "Content-Length: %d\r\n"
    292292                                        "\r\n"
Note: See TracChangeset for help on using the changeset viewer.