test/harness/testcaseinput.c
changeset 101 f44c530f80da
parent 35 51a0beae92f6
     1.1 --- a/test/harness/testcaseinput.c	Mon Feb 20 08:13:47 2012 +0000
     1.2 +++ b/test/harness/testcaseinput.c	Sat Oct 26 18:47:33 2013 +0100
     1.3 @@ -32,10 +32,10 @@
     1.4  }
     1.5  
     1.6  /*
     1.7 - * Replace \n with \r\n, U+240A (visible symbol for LF) with \n
     1.8 - * and U+240D (visible symbol for CR) with \r.
     1.9 + * Replace \n with requested newline, U+240A (visible symbol for LF)
    1.10 + * with \n and U+240D (visible symbol for CR) with \r.
    1.11   */
    1.12 -static char *unix2dos(const char *text)
    1.13 +static char *convert_newlines(const char *text,int flags)
    1.14  {
    1.15      gunichar c;
    1.16      const gunichar visible_lf=0x240A;
    1.17 @@ -46,8 +46,13 @@
    1.18      {
    1.19  	c=g_utf8_get_char(text);
    1.20  	text=g_utf8_next_char(text);
    1.21 -	if (c=='\n')
    1.22 -	    g_string_append(string,"\r\n");
    1.23 +	if (c=='\n' && !(flags&TESTCASE_UNIX_NEWLINES))
    1.24 +	{
    1.25 +	    if (flags&TESTCASE_OS9_NEWLINES)
    1.26 +		g_string_append_c(string,'\r');
    1.27 +	    else
    1.28 +		g_string_append(string,"\r\n");
    1.29 +	}
    1.30  	else if (c==visible_lf)
    1.31  	    g_string_append_c(string,'\n');
    1.32  	else if (c==visible_cr)
    1.33 @@ -76,7 +81,7 @@
    1.34      {
    1.35  	if (testcase->encoding)
    1.36  	{
    1.37 -	    t=unix2dos(input->contents);
    1.38 +	    t=convert_newlines(input->contents,testcase->flags);
    1.39  	    s=g_convert(t,-1,testcase->encoding,"UTF-8",NULL,&n,&tmp_err);
    1.40  	    g_free(t);
    1.41  	    if (!s)
    1.42 @@ -88,7 +93,7 @@
    1.43  	}
    1.44  	else
    1.45  	{
    1.46 -	    s=unix2dos(input->contents);
    1.47 +	    s=convert_newlines(input->contents,testcase->flags);
    1.48  	    n=strlen(s);
    1.49  	}
    1.50      }