[#34988] BigFloat の to_i メソッドについて — Sako Hiroshi <sakoh@...2.so-net.ne.jp>
[#34989] mailing list archive? — maili31s@... (SugHimsi == SUGIHARA Hiroshi)
すぎむし。
[#34991] a = 4 ; p((a < 3) or (a > 5)) — Take_tk <ggb03124@...>
次のものがエラーになるのは何故なんでしょうか?
新井です。
たけ(tk)です。
まつもと ゆきひろです
newです.
[#35005] FILE_READPTR — Daisuke Aoki <dai@...>
青木@横浜です。
[#35028] win32.c 中の my* 関数について — 小西 弘将 <konishih@...6.so-net.ne.jp>
小西 弘将です。
なかだです。
小西 弘将です。
小西 弘将です。
こんにちは、なかむら(う)です。
なかだです。
小西 弘将です。
なかだです。
小西 弘将です。
小西 弘将です。
なかだです。
小西 弘将です。
なかだです。
[#35052] ruby_lib/html/ — Wakou Aoyama <wakou@...>
青山です。
まつもと ゆきひろです
にょにょると申します。(ここハンドル投稿ダメなのでしょうか?ダメなら本
青山です。
にょにょるです。オンラインではずっとこれを使っているので、これでいきま
青山です。
はじめまして。Siena. と申します。
青山です。
Siena.%なんだか毎度長いなぁ --; です。
[#35054] 「 Ruby/GTK プログラミング入門」 — Noritsugu Nakamura <nnakamur@...>
なかだです。
むとうです。
[#35058] Y Combinator — sinara@...
"Y Combinator" とは何かというと
続いて、ちょっと数学っぽい解釈をします。先の
At Sun, 12 May 2002 13:59:51 +0900,
At Sun, 12 May 2002 16:37:27 +0900,
[#35081] ISO 8601 と Time#wday — Take_tk <ggb03124@...>
Delphi の日付時刻ルーチンを Ruby にポートしようと思っているのですが、次
[#35087] Re: Y Combinator — 正木 功 <GEC01122@...>
正木です。
[#35102] ANNOUNCE: REXML のドキュメントの和訳を公開しました。 — Kouhei Sutou (須藤功平) <kou@...>
はじめまして、須藤です。
なひです。
須藤です。
なひです。
須藤です。
なかだです。
高橋征義です。
なひです。
なひです。
まつもと ゆきひろです
須藤です。
なひです。
Siena. です。
なひです。
[#35109] DOS プロンプトからリダイレクションつきの system — TOYOFUKU Chikanobu <toyofuku@...>
豊福です。
[#35113] Re: Marshallers summary — "NAKAMURA, Hiroshi" <nakahiro@...>
なかひろです。
[#35134] 朝、トーストを食べていると不意に — Shin-ichiro HARA <sinara@...>
「来年から Perl が高校の授業で必修になるってホント?」って
[#35207] tar.gz の展開 — "NAKANO Kouichi" <knuckle@...8.dion.ne.jp>
はじめまして、なかのともうします。
[#35215] ruby-shell-mode — "Shirai,Kaoru" <shirai@...1jp.com>
白井です。
[#35252] ((Time.now)..(Time.now+60)) — Take_tk <ggb03124@...>
たけ(tk)です。
[#35253] ((1.2)..(3.4)).to_a — Take_tk <ggb03124@...>
1.2..3.4 を配列にすると、その範囲に属しない整数「1」が含まれるという点に
まつもと ゆきひろです
たけ(tk)です。
Siena. です。
まつもと ゆきひろです
Siena. です。
青山です。
[#35264] HTML generation library — Wakou Aoyama <wakou@...>
青山です。
[ruby-list:35033] Re: FILE_READPTR
なかだです。
# 青木さんはruby-dev入ってましたっけ。
At Fri, 10 May 2002 00:21:23 +0900,
Daisuke Aoki wrote:
> [ruby-list:35011]で言われているように入力の改行コードが CRLF の場合に、
> さらに、setup.exe で設定されるレジストリの設定(マウントのフラグ)が
> なされていない場合に起きることがわかりました。
> この場合、出力の改行コードは LF になっています。
再現できました。これでどうでしょう。
Index: io.c
===================================================================
RCS file: /cvs/ruby/src/ruby/io.c,v
retrieving revision 1.137
diff -u -2 -p -r1.137 io.c
--- io.c 2002/05/02 07:50:36 1.137
+++ io.c 2002/05/09 20:39:13
@@ -704,4 +704,35 @@ io_read(argc, argv, io)
}
+#if defined __CYGWIN__
+#define CRLF_CONVERT
+#endif
+
+#ifdef CRLF_CONVERT
+#if defined __CYGWIN__ && defined __SCLE
+#define TEXT_MODE(fptr) ((fptr)->f->_flags & __SCLE)
+#else
+#define TEXT_MODE(fptr) (!((fptr)->mode & FMODE_BINMODE))
+#endif
+static int
+uncountcr(ptr, len)
+ const char *ptr;
+ int len;
+{
+ int count = len;
+ while (len-- > 1) {
+ if (*ptr++ == '\r' && *ptr == '\n') {
+ ptr++;
+ --len;
+ --count;
+ }
+ }
+ if (len == 0 && *ptr == '\r') --count; /* may wait '\n' */
+ return count;
+}
+#else
+#define TEXT_MODE(fptr) (0)
+#define uncountcr(ptr, len) (len)
+#endif
+
static int
appendline(fptr, delim, strp)
@@ -722,9 +753,12 @@ appendline(fptr, delim, strp)
#ifdef READ_DATA_PENDING_PTR
int pending = READ_DATA_PENDING_COUNT(f);
- if (pending > 0) {
+ while (pending > 0) {
const char *p = READ_DATA_PENDING_PTR(f);
const char *e = memchr(p, delim, pending);
long last = 0;
if (e) pending = e - p + 1;
+#ifdef CRLF_CONVERT
+ if (TEXT_MODE(fptr)) pending = uncountcr(p, pending);
+#endif
if (!NIL_P(str)) {
last = RSTRING(str)->len;
@@ -736,7 +770,17 @@ appendline(fptr, delim, strp)
if (c != EOF) {
RSTRING(str)->ptr[last++] = c;
+ }
+ pending = fread(RSTRING(str)->ptr + last, 1, pending, f);
+#ifdef CRLF_CONVERT
+ if (TEXT_MODE(fptr)) {
+ rb_str_resize(str, last + pending);
+ if (RSTRING(str)->ptr[last + pending - 1] == delim)
+ return delim;
+ pending = READ_DATA_PENDING_COUNT(f);
+ continue;
}
- fread(RSTRING(str)->ptr + last, 1, pending, f); /* must not fail */
+#endif
if (e) return delim;
+ break;
}
rb_thread_wait_fd(fileno(f));
@@ -800,9 +844,18 @@ swallow(fptr, term)
const char *p = READ_DATA_PENDING_PTR(f);
int i;
+#ifdef CRLF_CONVERT
+ if (TEXT_MODE(fptr)) {
+ if ((c = getc(f)) != term) {
+ ungetc(c, f);
+ return Qtrue;
+ }
+ continue;
+ }
+#endif
if (cnt > sizeof buf) cnt = sizeof buf;
if (*p != term) return Qtrue;
i = cnt;
while (--i && *++p == term);
- if (!fread(buf, 1, cnt - i, f)) /* must not fail */
+ if (!(cnt = fread(buf, 1, cnt - i, f))) /* must not fail */
rb_sys_fail(fptr->path);
}
--
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
中田 伸悦