summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Breitenlohner <peb@mppmu.mpg.de>2014-02-12 08:50:58 +0000
committerPeter Breitenlohner <peb@mppmu.mpg.de>2014-02-12 08:50:58 +0000
commit50f43a1ab6f142722d1a8f0ec5cecd1c1eeb5d93 (patch)
tree40842fa2c7b02f7d6f18a9d35a90a94cb9f4d72f
parent3b2979a19f230a6c8c99afcadea7163dcec712a0 (diff)
web2c: ctangle, ctie, and tie: Handle input files with CRLF
git-svn-id: svn://tug.org/texlive/trunk@32948 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Build/source/texk/texlive/linked_scripts/scripts.lst1
-rw-r--r--Build/source/texk/web2c/ctiedir/ChangeLog4
-rw-r--r--Build/source/texk/web2c/ctiedir/ctie-k.ch14
-rw-r--r--Build/source/texk/web2c/cwebboot.cin106
-rw-r--r--Build/source/texk/web2c/cwebboot.hin20
-rw-r--r--Build/source/texk/web2c/cwebdir/ChangeLog4
-rw-r--r--Build/source/texk/web2c/cwebdir/comm-w2c.ch6
-rw-r--r--Build/source/texk/web2c/luatexdir/ChangeLog2
-rw-r--r--Build/source/texk/web2c/tiedir/ChangeLog4
-rw-r--r--Build/source/texk/web2c/tiedir/tie-w2c.ch14
10 files changed, 111 insertions, 64 deletions
diff --git a/Build/source/texk/texlive/linked_scripts/scripts.lst b/Build/source/texk/texlive/linked_scripts/scripts.lst
index d61415314c8..6286f7b7099 100644
--- a/Build/source/texk/texlive/linked_scripts/scripts.lst
+++ b/Build/source/texk/texlive/linked_scripts/scripts.lst
@@ -96,6 +96,7 @@ ptex2pdf/ptex2pdf.lua
purifyeps/purifyeps
pythontex/pythontex.py
pythontex/depythontex.py
+rubik/rubikrotation.pl
splitindex/splitindex.pl
sty2dtx/sty2dtx.pl
svn-multi/svn-multi.pl
diff --git a/Build/source/texk/web2c/ctiedir/ChangeLog b/Build/source/texk/web2c/ctiedir/ChangeLog
index 4c5001aafe5..9e16d1d1e91 100644
--- a/Build/source/texk/web2c/ctiedir/ChangeLog
+++ b/Build/source/texk/web2c/ctiedir/ChangeLog
@@ -1,3 +1,7 @@
+2014-02-12 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * ctie-k.ch: Handle input lines with CRLF.
+
2013-06-28 Peter Breitenlohner <peb@mppmu.mpg.de>
* ctie-k.ch: Include <stdio.h> after <kpathsea/kpathsea.h>.
diff --git a/Build/source/texk/web2c/ctiedir/ctie-k.ch b/Build/source/texk/web2c/ctiedir/ctie-k.ch
index b527aa373ea..ebb0fa0d910 100644
--- a/Build/source/texk/web2c/ctiedir/ctie-k.ch
+++ b/Build/source/texk/web2c/ctiedir/ctie-k.ch
@@ -151,6 +151,20 @@ static boolean
get_line (file_index i, boolean do_includes)
@z
+Handle input lines with CRLF
+
+@x l.376
+ if ((*(k++) = c) != ' ') inp_desc->limit = k;
+@y
+ if ((*(k++) = c) != ' ' && c != '\r') inp_desc->limit = k;
+@z
+
+@x l.436
+ if ((*(k++) = c) != ' ') inp_desc->limit = k;
+@y
+ if ((*(k++) = c) != ' ' && c != '\r') inp_desc->limit = k;
+@z
+
The next piece is simplified using the kpathsea kpse_find_file
function.
diff --git a/Build/source/texk/web2c/cwebboot.cin b/Build/source/texk/web2c/cwebboot.cin
index ef2ce2c0dd1..dfe81a7c209 100644
--- a/Build/source/texk/web2c/cwebboot.cin
+++ b/Build/source/texk/web2c/cwebboot.cin
@@ -18,7 +18,7 @@
/*:8*//*22:*/
#line 471 "cwebdir/common.w"
-#line 187 "cwebdir/comm-w2c.ch"
+#line 193 "cwebdir/comm-w2c.ch"
#include <kpathsea/kpathsea.h>
#include <stdlib.h>
#include "help.h"
@@ -226,7 +226,7 @@ name_pointer hash[hash_size];
hash_pointer hash_end= hash+hash_size-1;
hash_pointer h;
-#line 313 "cwebdir/comm-w2c.ch"
+#line 319 "cwebdir/comm-w2c.ch"
/*:34*//*58:*/
#line 1082 "cwebdir/common.w"
@@ -250,7 +250,7 @@ FILE*C_file;
FILE*tex_file;
FILE*idx_file;
FILE*scn_file;
-#line 699 "cwebdir/comm-w2c.ch"
+#line 705 "cwebdir/comm-w2c.ch"
FILE*active_file;
char*found_filename;
#line 1376 "cwebdir/common.w"
@@ -276,14 +276,14 @@ char*change_limit;
/*55:*/
#line 1017 "cwebdir/common.w"
-#line 487 "cwebdir/comm-w2c.ch"
+#line 493 "cwebdir/comm-w2c.ch"
static int section_name_cmp(char**,int,name_pointer);
#line 1019 "cwebdir/common.w"
/*:55*//*71:*/
#line 1251 "cwebdir/common.w"
-#line 616 "cwebdir/comm-w2c.ch"
+#line 622 "cwebdir/comm-w2c.ch"
static void scan_args(void);
#line 1253 "cwebdir/common.w"
@@ -322,7 +322,7 @@ root= NULL;
#line 65 "cwebdir/comm-w2c.ch"
;
/*24:*/
-#line 222 "cwebdir/comm-w2c.ch"
+#line 228 "cwebdir/comm-w2c.ch"
kpse_set_program_name(argv[0],"cweb");
#line 473 "cwebdir/common.w"
@@ -334,7 +334,7 @@ kpse_set_program_name(argv[0],"cweb");
/*70:*/
#line 1233 "cwebdir/common.w"
-#line 608 "cwebdir/comm-w2c.ch"
+#line 614 "cwebdir/comm-w2c.ch"
show_banner= show_happiness= show_progress= 1;
#line 1235 "cwebdir/common.w"
@@ -346,14 +346,14 @@ show_banner= show_happiness= show_progress= 1;
scan_args();
if(program==ctangle){
-#line 708 "cwebdir/comm-w2c.ch"
+#line 714 "cwebdir/comm-w2c.ch"
if((C_file= fopen(C_file_name,"wb"))==NULL)
#line 1381 "cwebdir/common.w"
fatal("! Cannot open output file ",C_file_name);
}
else{
-#line 714 "cwebdir/comm-w2c.ch"
+#line 720 "cwebdir/comm-w2c.ch"
if((tex_file= fopen(tex_file_name,"wb"))==NULL)
#line 1386 "cwebdir/common.w"
fatal("! Cannot open output file ",tex_file_name);
@@ -376,7 +376,9 @@ register char*k;
if(feof(fp))return(0);
limit= k= buffer;
while(k<=buffer_end&&(c= getc(fp))!=EOF&&c!='\n')
-if((*(k++)= c)!=' ')limit= k;
+#line 99 "cwebdir/comm-w2c.ch"
+if((*(k++)= c)!=' '&&c!='\r')limit= k;
+#line 182 "cwebdir/common.w"
if(k> buffer_end)
if((c= getc(fp))!=EOF&&c!='\n'){
ungetc(c,fp);loc= buffer;err_print("! Input line too long");
@@ -390,7 +392,7 @@ return(1);
/*:9*//*12:*/
#line 251 "cwebdir/common.w"
-#line 115 "cwebdir/comm-w2c.ch"
+#line 121 "cwebdir/comm-w2c.ch"
static void
prime_the_change_buffer(void)
#line 254 "cwebdir/common.w"
@@ -447,7 +449,7 @@ strncpy(change_buffer,buffer,limit-buffer+1);
/*:12*//*16:*/
#line 320 "cwebdir/common.w"
-#line 125 "cwebdir/comm-w2c.ch"
+#line 131 "cwebdir/comm-w2c.ch"
static void
check_change(void)
#line 323 "cwebdir/common.w"
@@ -519,7 +521,7 @@ if(lines_dont_match)n++;
#line 378 "cwebdir/common.w"
void
-#line 134 "cwebdir/comm-w2c.ch"
+#line 140 "cwebdir/comm-w2c.ch"
reset_input(void)
#line 381 "cwebdir/common.w"
{
@@ -527,7 +529,7 @@ limit= buffer;loc= buffer+1;buffer[0]= ' ';
/*19:*/
#line 393 "cwebdir/common.w"
-#line 146 "cwebdir/comm-w2c.ch"
+#line 152 "cwebdir/comm-w2c.ch"
if((found_filename= kpse_find_cweb(web_file_name))==NULL||
(web_file= fopen(found_filename,"r"))==NULL){
fatal("! Cannot open input file ",web_file_name);
@@ -539,7 +541,7 @@ free(found_filename);
web_file_open= 1;
-#line 159 "cwebdir/comm-w2c.ch"
+#line 165 "cwebdir/comm-w2c.ch"
if((found_filename= kpse_find_cweb(change_file_name))==NULL||
(change_file= fopen(found_filename,"r"))==NULL){
fatal("! Cannot open change file ",change_file_name);
@@ -561,7 +563,7 @@ limit= buffer;loc= buffer+1;buffer[0]= ' ';input_has_ended= 0;
/*:18*//*21:*/
#line 426 "cwebdir/common.w"
-#line 179 "cwebdir/comm-w2c.ch"
+#line 185 "cwebdir/comm-w2c.ch"
int get_line(void)
#line 428 "cwebdir/common.w"
{
@@ -645,7 +647,7 @@ include_depth++;
/*25:*/
#line 474 "cwebdir/common.w"
{
-#line 235 "cwebdir/comm-w2c.ch"
+#line 241 "cwebdir/comm-w2c.ch"
char*cur_file_name_end= cur_file_name+max_file_name_length-1;
char*k= cur_file_name;
#line 479 "cwebdir/common.w"
@@ -659,7 +661,7 @@ while(*loc!=' '&&*loc!='\t'&&*loc!='"'&&k<=cur_file_name_end)*k++= *loc++;
if(k> cur_file_name_end)too_long();
*k= '\0';
-#line 242 "cwebdir/comm-w2c.ch"
+#line 248 "cwebdir/comm-w2c.ch"
if((found_filename= kpse_find_cweb(cur_file_name))!=NULL&&
(cur_file= fopen(found_filename,"r"))!=NULL){
@@ -686,7 +688,7 @@ return 1;
#line 569 "cwebdir/common.w"
void
-#line 286 "cwebdir/comm-w2c.ch"
+#line 292 "cwebdir/comm-w2c.ch"
check_complete(void){
#line 572 "cwebdir/common.w"
if(change_limit!=change_buffer){
@@ -702,14 +704,14 @@ err_print("! Change file entry did not match");
#line 660 "cwebdir/common.w"
name_pointer
-#line 325 "cwebdir/comm-w2c.ch"
+#line 331 "cwebdir/comm-w2c.ch"
id_lookup(const char*first,const char*last,char t)
#line 666 "cwebdir/common.w"
{
-#line 332 "cwebdir/comm-w2c.ch"
-const char*i= first;
#line 338 "cwebdir/comm-w2c.ch"
+const char*i= first;
+#line 344 "cwebdir/comm-w2c.ch"
int h;
#line 669 "cwebdir/common.w"
int l;
@@ -719,7 +721,7 @@ l= last-first;
/*38:*/
#line 683 "cwebdir/common.w"
-#line 347 "cwebdir/comm-w2c.ch"
+#line 353 "cwebdir/comm-w2c.ch"
h= (unsigned char)*i;
while(++i<last)h= (h+h+(int)((unsigned char)*i))%hash_size;
#line 686 "cwebdir/common.w"
@@ -731,13 +733,13 @@ while(++i<last)h= (h+h+(int)((unsigned char)*i))%hash_size;
/*39:*/
#line 691 "cwebdir/common.w"
-#line 356 "cwebdir/comm-w2c.ch"
+#line 362 "cwebdir/comm-w2c.ch"
p= hash[h];
#line 693 "cwebdir/common.w"
while(p&&!names_match(p,first,l,t))p= p->link;
if(p==NULL){
p= name_ptr;
-#line 362 "cwebdir/comm-w2c.ch"
+#line 368 "cwebdir/comm-w2c.ch"
p->link= hash[h];hash[h]= p;
#line 697 "cwebdir/common.w"
}
@@ -765,7 +767,7 @@ return(p);
#line 764 "cwebdir/common.w"
void
-#line 381 "cwebdir/comm-w2c.ch"
+#line 387 "cwebdir/comm-w2c.ch"
print_section_name(name_pointer p)
#line 768 "cwebdir/common.w"
{
@@ -787,7 +789,7 @@ if(q)term_write("...",3);
#line 783 "cwebdir/common.w"
void
-#line 391 "cwebdir/comm-w2c.ch"
+#line 397 "cwebdir/comm-w2c.ch"
sprint_section_name(char*dest,name_pointer p)
#line 788 "cwebdir/common.w"
{
@@ -809,7 +811,7 @@ s= p->byte_start;
/*:45*//*46:*/
#line 804 "cwebdir/common.w"
-#line 401 "cwebdir/comm-w2c.ch"
+#line 407 "cwebdir/comm-w2c.ch"
static void
print_prefix_name(name_pointer p)
#line 808 "cwebdir/common.w"
@@ -823,13 +825,13 @@ if(s+l<(p+1)->byte_start)term_write("...",3);
/*:46*//*47:*/
#line 825 "cwebdir/common.w"
-#line 412 "cwebdir/comm-w2c.ch"
+#line 418 "cwebdir/comm-w2c.ch"
static int
web_strcmp(char*j,int j_len,char*k,int k_len)
#line 829 "cwebdir/common.w"
{
-#line 424 "cwebdir/comm-w2c.ch"
+#line 430 "cwebdir/comm-w2c.ch"
char*j1= j+j_len,*k1= k+k_len;
while(k<k1&&j<j1&&*j==*k)k++,j++;
if(k==k1)if(j==j1)return equal;
@@ -843,7 +845,7 @@ else return greater;
/*:47*//*49:*/
#line 855 "cwebdir/common.w"
-#line 452 "cwebdir/comm-w2c.ch"
+#line 458 "cwebdir/comm-w2c.ch"
static name_pointer
add_section_name(name_pointer par,int c,char*first,char*last,
int ispref)
@@ -872,7 +874,7 @@ return par==NULL?(root= p):c==less?(par->llink= p):(par->rlink= p);
/*:49*//*50:*/
#line 884 "cwebdir/common.w"
-#line 467 "cwebdir/comm-w2c.ch"
+#line 473 "cwebdir/comm-w2c.ch"
static void
extend_section_name(name_pointer p,char*first,char*last,int ispref)
#line 891 "cwebdir/common.w"
@@ -895,7 +897,7 @@ if(ispref)*(byte_ptr-1)= ' ';
#line 912 "cwebdir/common.w"
name_pointer
-#line 478 "cwebdir/comm-w2c.ch"
+#line 484 "cwebdir/comm-w2c.ch"
section_lookup(char*first,char*last,int ispref)
#line 917 "cwebdir/common.w"
@@ -988,7 +990,7 @@ return r;
/*:51*//*56:*/
#line 1020 "cwebdir/common.w"
-#line 498 "cwebdir/comm-w2c.ch"
+#line 504 "cwebdir/comm-w2c.ch"
static int
section_name_cmp(char**pfirst,int len,name_pointer r)
#line 1025 "cwebdir/common.w"
@@ -1023,7 +1025,7 @@ default:return c;
#line 1095 "cwebdir/common.w"
void
-#line 518 "cwebdir/comm-w2c.ch"
+#line 524 "cwebdir/comm-w2c.ch"
err_print(const char*s)
#line 1099 "cwebdir/common.w"
{
@@ -1058,7 +1060,7 @@ update_terminal;mark_error;
/*:60*//*63:*/
#line 1150 "cwebdir/common.w"
-#line 538 "cwebdir/comm-w2c.ch"
+#line 544 "cwebdir/comm-w2c.ch"
int wrap_up(void){
#line 1152 "cwebdir/common.w"
putchar('\n');
@@ -1086,7 +1088,7 @@ else return(0);
/*:63*//*66:*/
#line 1179 "cwebdir/common.w"
void
-#line 558 "cwebdir/comm-w2c.ch"
+#line 564 "cwebdir/comm-w2c.ch"
fatal(const char*s,const char*t)
#line 1182 "cwebdir/common.w"
{
@@ -1098,7 +1100,7 @@ history= fatal_message;exit(wrap_up());
/*:66*//*67:*/
#line 1190 "cwebdir/common.w"
void
-#line 567 "cwebdir/comm-w2c.ch"
+#line 573 "cwebdir/comm-w2c.ch"
overflow(const char*t)
#line 1193 "cwebdir/common.w"
{
@@ -1109,7 +1111,7 @@ printf("\n! Sorry, %s capacity exceeded",t);fatal("","");
/*:67*//*72:*/
#line 1254 "cwebdir/common.w"
-#line 626 "cwebdir/comm-w2c.ch"
+#line 632 "cwebdir/comm-w2c.ch"
static void
scan_args(void)
#line 1257 "cwebdir/common.w"
@@ -1123,40 +1125,40 @@ boolean flag_change;
while(--argc> 0){
if((**(++argv)=='-'||**argv=='+')&&*(*argv+1))/*76:*/
-#line 651 "cwebdir/comm-w2c.ch"
+#line 657 "cwebdir/comm-w2c.ch"
{
if(strcmp("-help",*argv)==0||strcmp("--help",*argv)==0)
/*86:*/
-#line 766 "cwebdir/comm-w2c.ch"
+#line 772 "cwebdir/comm-w2c.ch"
usagehelp(program==ctangle?CTANGLEHELP:CWEAVEHELP,NULL);
/*:86*/
-#line 654 "cwebdir/comm-w2c.ch"
+#line 660 "cwebdir/comm-w2c.ch"
;
if(strcmp("-version",*argv)==0||strcmp("--version",*argv)==0)
/*87:*/
-#line 775 "cwebdir/comm-w2c.ch"
+#line 781 "cwebdir/comm-w2c.ch"
printversionandexit((program==ctangle?ctangle_banner:cweave_banner),
"Silvio Levy and Donald E. Knuth",NULL,NULL);
/*:87*/
-#line 656 "cwebdir/comm-w2c.ch"
+#line 662 "cwebdir/comm-w2c.ch"
;
#line 1346 "cwebdir/common.w"
if(**argv=='-')flag_change= 0;
-#line 662 "cwebdir/comm-w2c.ch"
+#line 668 "cwebdir/comm-w2c.ch"
else flag_change= 1;
if(*(*argv+1)=='d')
if(sscanf(*argv+2,"%u",&kpathsea_debug)!=1)/*77:*/
#line 1352 "cwebdir/common.w"
{
-#line 685 "cwebdir/comm-w2c.ch"
+#line 691 "cwebdir/comm-w2c.ch"
if(program==ctangle){
fprintf(stderr,"ctangle: Need one to three file arguments.\n");
usage("ctangle");
@@ -1168,11 +1170,11 @@ usage("cweave");
}
/*:77*/
-#line 664 "cwebdir/comm-w2c.ch"
+#line 670 "cwebdir/comm-w2c.ch"
;
#line 1348 "cwebdir/common.w"
for(dot_pos= *argv+1;*dot_pos> '\0';dot_pos++)
-#line 670 "cwebdir/comm-w2c.ch"
+#line 676 "cwebdir/comm-w2c.ch"
flags[(unsigned char)*dot_pos]= flag_change;
#line 1350 "cwebdir/common.w"
}
@@ -1272,7 +1274,7 @@ sprintf(scn_file_name,"%s.scn",*argv);
found_out= 1;
}
-#line 651 "cwebdir/comm-w2c.ch"
+#line 657 "cwebdir/comm-w2c.ch"
/*:75*/
#line 1277 "cwebdir/common.w"
@@ -1280,7 +1282,7 @@ else/*77:*/
#line 1352 "cwebdir/common.w"
{
-#line 685 "cwebdir/comm-w2c.ch"
+#line 691 "cwebdir/comm-w2c.ch"
if(program==ctangle){
fprintf(stderr,"ctangle: Need one to three file arguments.\n");
usage("ctangle");
@@ -1300,7 +1302,7 @@ if(!found_web)/*77:*/
#line 1352 "cwebdir/common.w"
{
-#line 685 "cwebdir/comm-w2c.ch"
+#line 691 "cwebdir/comm-w2c.ch"
if(program==ctangle){
fprintf(stderr,"ctangle: Need one to three file arguments.\n");
usage("ctangle");
@@ -1314,7 +1316,7 @@ usage("cweave");
/*:77*/
#line 1281 "cwebdir/common.w"
;
-#line 636 "cwebdir/comm-w2c.ch"
+#line 642 "cwebdir/comm-w2c.ch"
if(found_change<=0)strcpy(change_file_name,DEV_NULL);
#line 1283 "cwebdir/common.w"
}
diff --git a/Build/source/texk/web2c/cwebboot.hin b/Build/source/texk/web2c/cwebboot.hin
index 8d732dd28f1..1e9e1edbaa3 100644
--- a/Build/source/texk/web2c/cwebboot.hin
+++ b/Build/source/texk/web2c/cwebboot.hin
@@ -1,49 +1,49 @@
/*84:*/
-#line 755 "cwebdir/comm-w2c.ch"
+#line 761 "cwebdir/comm-w2c.ch"
/* Prototypes for functions, either
* declared in common.w and used in ctangle.w and cweave.w, or
* used in common.w and declared in ctangle.w and cweave.w. */
/*35:*/
-#line 313 "cwebdir/comm-w2c.ch"
+#line 319 "cwebdir/comm-w2c.ch"
extern int names_match(name_pointer,const char*,int,char);
#line 652 "cwebdir/common.w"
/*:35*//*40:*/
-#line 371 "cwebdir/comm-w2c.ch"
+#line 377 "cwebdir/comm-w2c.ch"
extern void init_p(name_pointer p,char t);
#line 705 "cwebdir/common.w"
/*:40*//*48:*/
-#line 437 "cwebdir/comm-w2c.ch"
+#line 443 "cwebdir/comm-w2c.ch"
extern void init_node(name_pointer node);
#line 854 "cwebdir/common.w"
/*:48*//*59:*/
-#line 508 "cwebdir/comm-w2c.ch"
+#line 514 "cwebdir/comm-w2c.ch"
extern void err_print(const char*);
#line 1094 "cwebdir/common.w"
/*:59*//*62:*/
-#line 528 "cwebdir/comm-w2c.ch"
+#line 534 "cwebdir/comm-w2c.ch"
extern int wrap_up(void);
extern void print_stats(void);
#line 1143 "cwebdir/common.w"
/*:62*//*65:*/
-#line 547 "cwebdir/comm-w2c.ch"
+#line 553 "cwebdir/comm-w2c.ch"
extern void fatal(const char*,const char*);
extern void overflow(const char*);
#line 1175 "cwebdir/common.w"
/*:65*//*83:*/
-#line 736 "cwebdir/comm-w2c.ch"
+#line 742 "cwebdir/comm-w2c.ch"
extern void common_init(void);
extern int input_ln(FILE*fp);
@@ -56,9 +56,9 @@ extern void sprint_section_name(char*dest,name_pointer p);
extern name_pointer section_lookup(char*first,char*last,int ispref);
#line 1417 "cwebdir/common.w"
-#line 751 "cwebdir/comm-w2c.ch"
+#line 757 "cwebdir/comm-w2c.ch"
/*:83*/
-#line 759 "cwebdir/comm-w2c.ch"
+#line 765 "cwebdir/comm-w2c.ch"
extern const char*versionstring;
diff --git a/Build/source/texk/web2c/cwebdir/ChangeLog b/Build/source/texk/web2c/cwebdir/ChangeLog
index a218edfebdb..c1d40c72915 100644
--- a/Build/source/texk/web2c/cwebdir/ChangeLog
+++ b/Build/source/texk/web2c/cwebdir/ChangeLog
@@ -1,3 +1,7 @@
+2014-02-12 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * comm-w2c.ch: Handle input lines with CRLF.
+
2013-07-02 Peter Breitenlohner <peb@mppmu.mpg.de>
* comm-w2c.ch: Include system headers after "cpascal.h".
diff --git a/Build/source/texk/web2c/cwebdir/comm-w2c.ch b/Build/source/texk/web2c/cwebdir/comm-w2c.ch
index 61475576a3c..07a945b69b2 100644
--- a/Build/source/texk/web2c/cwebdir/comm-w2c.ch
+++ b/Build/source/texk/web2c/cwebdir/comm-w2c.ch
@@ -93,6 +93,12 @@ FILE *fp; /* what file to read from */
int input_ln (FILE *fp) /* copies a line into |buffer| or returns 0 */
@z
+@x l.181
+ if ((*(k++) = c) != ' ') limit = k;
+@y
+ if ((*(k++) = c) != ' ' && c!='\r') limit = k;
+@z
+
Section 10.
@x l.207 - max_file_name_length is way too small.
diff --git a/Build/source/texk/web2c/luatexdir/ChangeLog b/Build/source/texk/web2c/luatexdir/ChangeLog
index 15b080d21e6..6b3356a62a1 100644
--- a/Build/source/texk/web2c/luatexdir/ChangeLog
+++ b/Build/source/texk/web2c/luatexdir/ChangeLog
@@ -1,7 +1,7 @@
2014-02-11 Peter Breitenlohner <peb@mppmu.mpg.de>
* lua/luanode.w, tex/linebreak.w, tex/mlist.w,
- tex/texnodes.w, tex/textoken.w: Convert line ends Dos=>native.
+ tex/texnodes.w, tex/textoken.w: Convert CRLF => NL.
2014-02-11 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
diff --git a/Build/source/texk/web2c/tiedir/ChangeLog b/Build/source/texk/web2c/tiedir/ChangeLog
index 780fb8771e7..8bc990c1af7 100644
--- a/Build/source/texk/web2c/tiedir/ChangeLog
+++ b/Build/source/texk/web2c/tiedir/ChangeLog
@@ -1,3 +1,7 @@
+2014-02-12 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * tie-w2c.ch: Handle input lines with CRLF.
+
2012-05-18 Peter Breitenlohner <peb@mppmu.mpg.de>
* tie-w2c.ch: Use binary mode for output files.
diff --git a/Build/source/texk/web2c/tiedir/tie-w2c.ch b/Build/source/texk/web2c/tiedir/tie-w2c.ch
index df384da9669..37d5bd7b21d 100644
--- a/Build/source/texk/web2c/tiedir/tie-w2c.ch
+++ b/Build/source/texk/web2c/tiedir/tie-w2c.ch
@@ -38,7 +38,7 @@ typedef char* string;
#define usage tieusage
@z
-@x
+@x l.617
void get_line(i)
file_index i;
@y
@@ -46,6 +46,18 @@ static void
get_line (file_index i)
@z
+@x l.650
+replacement part of a change file, or in an incomplerte check if the
+@y
+replacement part of a change file, or in an incomplete check if the
+@z
+
+@x l.667
+ if (c!=@' ' && c!=tab_mark)
+@y
+ if (c!=@' ' && c!=tab_mark && c!=@'\r')
+@z
+
@x l.745
void err_loc(i) /* prints location of error */
int i;