In lemon, allows open() using the "b" option to avoid \r problems on windows.
Ticket #897. (CVS 1956)

FossilOrigin-Name: b5b2e3db09831fe808f9f2692a836eef716df1c5
diff --git a/tool/lemon.c b/tool/lemon.c
index 3ed6bd6..4dd7960 100644
--- a/tool/lemon.c
+++ b/tool/lemon.c
@@ -2747,7 +2747,7 @@
   struct action *ap;
   FILE *fp;
 
-  fp = file_open(lemp,".out","w");
+  fp = file_open(lemp,".out","wb");
   if( fp==0 ) return;
   fprintf(fp," \b");
   for(i=0; i<lemp->nstate; i++){
@@ -2914,7 +2914,7 @@
     lemp->errorcnt++;
     return 0;
   }
-  in = fopen(tpltname,"r");
+  in = fopen(tpltname,"rb");
   if( in==0 ){
     fprintf(stderr,"Can't open the template file \"%s\".\n",templatename);
     lemp->errorcnt++;
@@ -3355,7 +3355,7 @@
 
   in = tplt_open(lemp);
   if( in==0 ) return;
-  out = file_open(lemp,".c","w");
+  out = file_open(lemp,".c","wb");
   if( out==0 ){
     fclose(in);
     return;
@@ -3764,7 +3764,7 @@
 
   if( lemp->tokenprefix ) prefix = lemp->tokenprefix;
   else                    prefix = "";
-  in = file_open(lemp,".h","r");
+  in = file_open(lemp,".h","rb");
   if( in ){
     for(i=1; i<lemp->nterminal && fgets(line,LINESIZE,in); i++){
       sprintf(pattern,"#define %s%-30s %2d\n",prefix,lemp->symbols[i]->name,i);
@@ -3776,7 +3776,7 @@
       return;
     }
   }
-  out = file_open(lemp,".h","w");
+  out = file_open(lemp,".h","wb");
   if( out ){
     for(i=1; i<lemp->nterminal; i++){
       fprintf(out,"#define %s%-30s %2d\n",prefix,lemp->symbols[i]->name,i);