[#19011] open-uri - very easy net access library — Tanaka Akira <akr@...17n.org>

HTTP, FTP に簡単にアクセスするための open-uri というライブラリを作って

19 messages 2002/12/06

[#19066] ruby 1.6.9 preview4 予告 — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

41 messages 2002/12/13
[#19079] Re: ruby 1.6.9 preview4 予告 — "Akinori MUSHA" <knu@...> 2002/12/16

At Fri, 13 Dec 2002 15:28:47 +0900,

[#19086] Re: ruby 1.6.9 preview4 予告 — UENO Katsuhiro <unnie@...> 2002/12/17

うえのです。

[#19087] Re: ruby 1.6.9 preview4 予告 — matz@... (Yukihiro Matsumoto) 2002/12/17

まつもと ゆきひろです

[#19083] Re: [ruby-cvs] ruby: * file.c (utimbuf): need to define for VC++. — WATANABE Hirofumi <eban@...>

わたなべです。

11 messages 2002/12/16

[#19127] Re: 1.6.8-preview4 build failed (on Vine Linux 2.1.5) (PR#373) — nobu.nakada@...

なかだです。

16 messages 2002/12/19
[#19129] Re: 1.6.8-preview4 build failed (on Vine Linux 2.1.5) (PR#373) — WATANABE Hirofumi <eban@...> 2002/12/19

わたなべです。

[#19198] ruby-1.8.0 / yield(nil)とyield()のちがい — m_seki@...

38 messages 2002/12/25
[#19209] Re: ruby-1.8.0 / yield(nil)とyield()のちがい — matz@... (Yukihiro Matsumoto) 2002/12/27

まつもと ゆきひろです

[#19218] Re: ruby-1.8.0 / yield(nil)とyield()のちがい — m_seki@... 2002/12/27

[#19219] Re: ruby-1.8.0 / yield(nil)とyield()のちがい — matz@... (Yukihiro Matsumoto) 2002/12/27

まつもと ゆきひろです

[#19264] Re: ruby-1.8.0 / yield(nil)とyield()のちがい — matz@... (Yukihiro Matsumoto) 2003/01/01

まつもと ゆきひろです

[#19266] Re: ruby-1.8.0 / yield(nil)とyield()のちがい — Tanaka Akira <akr@...17n.org> 2003/01/01

In article <1041383157.631472.21307.nullmailer@picachu.netlab.jp>,

[#19271] Re: ruby-1.8.0 / yield(nil)とyield()のちがい — matz@... (Yukihiro Matsumoto) 2003/01/01

まつもと ゆきひろです

[#19272] Re: ruby-1.8.0 / yield(nil)とyield()のちがい — Tanaka Akira <akr@...17n.org> 2003/01/01

In article <1041394108.920587.21729.nullmailer@picachu.netlab.jp>,

[#19276] Re: ruby-1.8.0 / yield(nil)とyield()のちがい — matz@... (Yukihiro Matsumoto) 2003/01/01

まつもと ゆきひろです

[#19278] Re: ruby-1.8.0 / yield(nil)とyield()のちがい — Tanaka Akira <akr@...17n.org> 2003/01/01

In article <1041420724.492653.22355.nullmailer@picachu.netlab.jp>,

[ruby-dev:19249] Re: CRLF (here document)

From: nobu.nakada@...
Date: 2002-12-30 17:04:17 UTC
List: ruby-dev #19249
なかだです。

At Tue, 31 Dec 2002 01:12:59 +0900,
WATANABE Hirofumi wrote:
> > > これだと、" __END__\n"がエラーになりません。
> > 
> > じゃ、1.6.8も同じようにまずいっすね。
> 
> あ、うそうそ。結局Ruby 1.8.0で試してました。

なぜか1.6.8はちゃんと通りますね。あ、nextc()の中で\rをスキップ
する前に見てるからか。てことは#{}を改造したときにミスったか。

ついでに余分な条件判断をちょっと削ってみたバージョン。


Index: parse.y
===================================================================
RCS file: /cvs/ruby/src/ruby/parse.y,v
retrieving revision 1.237
diff -u -2 -p -r1.237 parse.y
--- parse.y	30 Dec 2002 12:17:41 -0000	1.237
+++ parse.y	30 Dec 2002 15:25:39 -0000
@@ -3103,12 +3103,12 @@ whole_match_p(eos, len, indent)
 {
     char *p = lex_pbeg;
+    int n;
 
     if (indent) {
 	while (*p && ISSPACE(*p)) p++;
     }
-    if (strncmp(eos, p, len) == 0) {
-	if (p[len] == '\n' || p[len] == '\r') return Qtrue;
-	if (p + len == lex_pend) return Qtrue;
-    }
+    n= lex_pend - (p + len);
+    if (n < 0 || n > 0 && p[len] != '\n' && p[len] != '\r') return Qfalse;
+    if (strncmp(eos, p, len) == 0) return Qtrue;
     return Qfalse;
 }
@@ -4164,8 +4164,8 @@ yylex()
 	  case '7': case '8': case '9':
 	    tokadd('$');
-	    while (ISDIGIT(c)) {
+	    do {
 		tokadd(c);
 		c = nextc();
-	    }
+	    } while (ISDIGIT(c));
 	    if (is_identchar(c))
 		break;
@@ -4207,6 +4207,15 @@ yylex()
 	break;
 
+      case '_':
+	if (lex_p - 1 == lex_pbeg && whole_match_p("__END__", 7, 0)) {
+	    ruby__end__seen = 1;
+	    lex_lastline = 0;
+	    return -1;
+	}
+	newtok();
+	break;
+
       default:
-	if (!is_identchar(c) || ISDIGIT(c)) {
+	if (!is_identchar(c)) {
 	    rb_compile_error("Invalid char `\\%03o' in expression", c);
 	    goto retry;
@@ -4217,5 +4226,5 @@ yylex()
     }
 
-    while (is_identchar(c)) {
+    do {
 	tokadd(c);
 	if (ismbchar(c)) {
@@ -4228,5 +4237,5 @@ yylex()
 	}
 	c = nextc();
-    }
+    } while (is_identchar(c));
     if ((c == '!' || c == '?') && is_identchar(tok()[0]) && !peek('=')) {
 	tokadd(c);
@@ -4322,11 +4331,4 @@ yylex()
 	}
 	tokfix();
-	if (strncmp(tok(), "__END__", 7) == 0 &&
-	    (lex_p - lex_pbeg == 7 || lex_p - lex_pbeg == 8) &&
-	    (lex_pend == lex_p || *lex_p == '\n' || *lex_p == '\r')) {
-	    ruby__end__seen = 1;
-	    lex_lastline = 0;
-	    return -1;
-	}
 	last_id = yylval.id = rb_intern(tok());
 	if ((dyna_in_block() && rb_dvar_defined(last_id)) || local_id(last_id)) {


-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦

In This Thread