From 8cab28f6c84a46825095402b7cc1f391b1b76291 Mon Sep 17 00:00:00 2001 From: Simon Brooke Date: Thu, 31 Jan 2019 22:49:25 +0000 Subject: [PATCH] Proper fix for the junk characters bug. --- src/io/io.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/io/io.c b/src/io/io.c index 1cf3c9e..dd41190 100644 --- a/src/io/io.c +++ b/src/io/io.c @@ -189,7 +189,7 @@ wint_t url_fgetwc( URL_FILE * input ) { if ( count > 1 ) { url_fgets( ( char * ) &cbuff[1], count, input ); } - mbstowcs( wbuff, cbuff, 1 ); //(char *)(&input->buffer[input->buffer_pos]), 1 ); + mbstowcs( wbuff, cbuff, 2 ); //(char *)(&input->buffer[input->buffer_pos]), 1 ); result = wbuff[0]; free( wbuff ); @@ -268,13 +268,13 @@ struct cons_pointer add_meta_string( struct cons_pointer meta, wchar_t *key, wchar_t buffer[strlen( value ) + 1]; /* \todo something goes wrong here: I sometimes get junk characters on the * end of the string. */ - mbstowcs( buffer, value, strlen( value ) ); + mbstowcs( buffer, value, strlen( value ) + 1 ); /* hack: get rid of 32766 as a junk character, to see whether there are - * others. */ + * others. for (int i = 0; i < wcslen( buffer); i++) { if (buffer[i] == (wchar_t)32766) buffer[i] = (wchar_t)0; - } + } */ return make_cons( make_cons( c_string_to_lisp_keyword( key ), c_string_to_lisp_string( buffer ) ), meta ); @@ -315,7 +315,7 @@ static size_t write_meta_callback( char *string, size_t size, size_t nmemb, char *value = trim( &s[++offset] ); wchar_t wname[strlen( name )]; - mbstowcs( wname, name, strlen( name ) ); + mbstowcs( wname, name, strlen( name ) + 1 ); cell->payload.stream.meta = add_meta_string( cell->payload.stream.meta, wname, value );