X-Git-Url: http://www.wagner.pp.ru/gitweb/?a=blobdiff_plain;f=src%2Fwriter.c;h=75daa46ac34425fe105756a6c7e4abfa95085df7;hb=35d0d9bcbb33b64c3cfd83548fc9fc1cbdb5295e;hp=5f95ba2fdb3659f09ba1fe8c24e3a508bf89c423;hpb=c83cd8895214b3d0a6481123a7f3f126bb9f0a06;p=oss%2Fcatdoc.git diff --git a/src/writer.c b/src/writer.c index 5f95ba2..75daa46 100644 --- a/src/writer.c +++ b/src/writer.c @@ -21,6 +21,9 @@ /* charset.c */ /************************************************************************/ static char outputbuffer[LINE_BUF_SIZE]=""; + +int para_double_newline = 1; + void out_char(const char *chunk) { static int bufpos=0; int eol_flag=0; @@ -34,7 +37,7 @@ void out_char(const char *chunk) { *p; *(q++)=*(p++),bufpos++) { if (*p=='\n') eol_flag=1; - } + } *q=0; /* This strcat is safe. wrap margin setting code in main.c ensures that wrap_margin is @@ -46,11 +49,13 @@ void out_char(const char *chunk) { fputs(outputbuffer,stdout); *outputbuffer=0; bufpos=0; - if (q) { - fputs(q,stdout); - } else { - fputc('\n',stdout); - } + if (para_double_newline) { + if (q) { + fputs(q,stdout); + } else { + fputc('\n',stdout); + } + } } else if (bufpos>wrap_margin) { char *q=outputbuffer,*p=outputbuffer+wrap_margin; @@ -58,7 +63,8 @@ void out_char(const char *chunk) { if (p==outputbuffer) { /*worst case - nowhere to wrap. Will use brute force */ int i = wrap_margin; - if (from_unicode == to_utf8) { + if (target_charset == NULL) { + /* NULL target_charest means UTF-8 */ /* go back to start of nearest utf-8 character */ while(i>0 && (outputbuffer[i] & 0xC0) == 0x80) i--; }