diff -ur cndrvcups-capt-1.50/pstocapt/filter/pstocapt.c cndrvcups-capt-1.50_/pstocapt/filter/pstocapt.c --- cndrvcups-capt-1.50/pstocapt/filter/pstocapt.c 2007-02-08 11:49:22.000000000 +0100 +++ cndrvcups-capt-1.50_/pstocapt/filter/pstocapt.c 2007-10-06 16:09:31.000000000 +0200 @@ -361,6 +361,7 @@ int acro_util = 0; int read_bytes; BufList *bl = NULL; + BufList *ps_data_tail = NULL; while( (read_bytes = read_line(ifd, read_buf, DATA_BUF_SIZE - 1)) > 0 ) { @@ -398,7 +399,7 @@ if( *ps_data == NULL ) *ps_data = bl; else - buflist_add_tail(*ps_data, bl); + buflist_add_tail_fast(*ps_data, bl, &ps_data_tail); if( read_bytes > 0 ) { @@ -477,7 +478,7 @@ if( *ps_data == NULL ) *ps_data = bl; else - buflist_add_tail(*ps_data, bl); + buflist_add_tail_fast(*ps_data, bl, &ps_data_tail); } return p_list; diff -ur cndrvcups-capt-1.50/pstocapt2/filter/pstocapt2.c cndrvcups-capt-1.50_/pstocapt2/filter/pstocapt2.c --- cndrvcups-capt-1.50/pstocapt2/filter/pstocapt2.c 2007-02-08 11:49:22.000000000 +0100 +++ cndrvcups-capt-1.50_/pstocapt2/filter/pstocapt2.c 2007-10-06 16:12:18.000000000 +0200 @@ -641,6 +641,7 @@ int numcopies = -1; int is_banner = 0; char *p_read_buf; + BufList *ps_data_tail = NULL; while( (read_bytes = read_line(ifd, read_buf, DATA_BUF_SIZE - 1)) > 0 ) { @@ -677,7 +678,7 @@ if( *ps_data == NULL ) *ps_data = bl; else - buflist_add_tail(*ps_data, bl); + buflist_add_tail_fast(*ps_data, bl, &ps_data_tail); if( read_bytes > 0 ) { @@ -772,7 +773,7 @@ if( *ps_data == NULL ) *ps_data = bl; else - buflist_add_tail(*ps_data, bl); + buflist_add_tail_fast(*ps_data, bl, &ps_data_tail); if( read_bytes > 0 ) { diff -ur cndrvcups-capt-1.50/pstocapt3/filter/pstocapt3.c cndrvcups-capt-1.50_/pstocapt3/filter/pstocapt3.c --- cndrvcups-capt-1.50/pstocapt3/filter/pstocapt3.c 2007-02-07 07:21:14.000000000 +0100 +++ cndrvcups-capt-1.50_/pstocapt3/filter/pstocapt3.c 2007-10-06 16:10:34.000000000 +0200 @@ -762,6 +762,7 @@ int numcopies = -1; int is_banner = 0; char *p_read_buf; + BufList *ps_data_tail = NULL; while( (read_bytes = read_line(ifd, read_buf, DATA_BUF_SIZE - 1)) > 0 ) { @@ -798,7 +799,7 @@ if( *ps_data == NULL ) *ps_data = bl; else - buflist_add_tail(*ps_data, bl); + buflist_add_tail_fast(*ps_data, bl, &ps_data_tail); if( read_bytes > 0 ) { @@ -894,6 +895,7 @@ *ps_data = bl; else buflist_add_tail(*ps_data, bl); + buflist_add_tail_fast(*ps_data, bl, &ps_data_tail); if( read_bytes > 0 ) {