Ng 1.5 beta1: ファイル入出力がshift-jisの時、改行コードをCRLFにするパッチ

http://tomato.sakura.ne.jp/~amura/ng/
設定では変更できないようなのでパッチ作成。

--- fileio.c.org	2007-04-05 00:39:21.671875000 +0900
+++ fileio.c	2007-04-05 01:26:49.015625000 +0900
@@ -131,6 +131,7 @@
 #endif	/* KANJI */
 	lp = lforw(lp);
 	if(lp == lpend) break;		/* no implied newline on last line */
+	if (curbp->b_kfio == SJIS) putc('\r', ffp);
 	putc('\n', ffp);
     } while(!ferror(ffp));
     if(ferror(ffp)) {
@@ -154,11 +155,18 @@
     register int	c;
     register int	i;
 
+    if (curbp->b_kfio == NIL)
+	ksetbufcode(curbp);
+
     i = 0;
     while((c = getc(ffp))!=EOF && c!='\n') {
+	if (curbp->b_kfio == SJIS && c == '\r') break;
 	buf[i++] = c;
 	if (i >= nbuf) return FIOLONG;
     }
+    if (curbp->b_kfio == SJIS && c == '\r' && (c = getc(ffp)) != '\n') {
+	ungetc(c, ffp);
+    }
     if (c == EOF  && ferror(ffp) != FALSE) {
 	ewprintf("File read error");
 	return FIOERR;