[#23805] net/smtp — 佐藤 大輔 <densuke@...2.so-net.ne.jp>

佐藤です。

26 messages 2000/07/12
[#23806] Re: net/smtp — matz@... (Yukihiro Matsumoto) 2000/07/12

まつもと ゆきひろです

[#23808] Re: net/smtp — 佐藤 大輔 <densuke@...2.so-net.ne.jp> 2000/07/12

佐藤です。

[#23809] Re: net/smtp — matz@... (Yukihiro Matsumoto) 2000/07/12

まつもと ゆきひろです

[#23811] Re: net/smtp — Minero Aoki <aamine@...> 2000/07/12

あおきです。

[#23812] Re: net/smtp — matz@... (Yukihiro Matsumoto) 2000/07/12

まつもと ゆきひろです

[#23890] Ruby Entry Package and cygwin1.dll — Noritsugu Nakamura <nnakamur@...>

25 messages 2000/07/18
[#23895] Re: Ruby Entry Package and cygwin1.dll — WATANABE Hirofumi <eban@...> 2000/07/18

わたなべです.

[#23896] Re: Ruby Entry Package and cygwin1.dll — Noritsugu Nakamura <nnakamur@...> 2000/07/18

[#23897] Re: Ruby Entry Package and cygwin1.dll — Katsuyuki Komatsu <komatsu@...> 2000/07/19

小松です。

[#23898] Re: Ruby Entry Package and cygwin1.dll — WATANABE Hirofumi <eban@...> 2000/07/19

わたなべです.

[#23899] Re: Ruby Entry Package and cygwin1.dll — Katsuyuki Komatsu <komatsu@...> 2000/07/19

小松です。

[#23923] Re: [ruby-dev:10353] Re: should prohibit `module_function' for class Class — Masatoshi SEKI <m_seki@...>

11 messages 2000/07/19

[#23940] String#unpack と scanf の関係 — kiwamu <kiwamu@...>

こんにちは。岡部@東京都立大学と申します。

16 messages 2000/07/20

[ruby-list:23788] Re: environment variables

From: nobu.nakada@...
Date: 2000-07-10 16:32:04 UTC
List: ruby-list #23788
なかだです。

At Mon, 10 Jul 2000 17:40:02 +0900,
WATANABE Hirofumi <eban@os.rim.or.jp> wrote:
> RUBYLIB_PREFIX はわたなべが勝手に組み込んだ機能で EMX 版
> Perl から拝借. DJGPP, Cygwin, mswin32, mingw32 で使える.
> #OS/2 で使えないのはなんか変だから入れといたほうがいいか.
>   path1;path2
> か
>   path1 path2
> という形式でなければならない. これは default の $: の最初の
> 部分が path1 とマッチしたら path2 に置き換える.
> RUBYLIB を設定しなくても default のディレクトリ構造を活用で
> きる.
> 
>   % env RUBYLIB_PREFIX='/usr/local/lib/ruby;f:/ruby' ruby -e 'puts $:'
>   f:/ruby/site_ruby/1.5/i386-cygwin
>   f:/ruby/site_ruby/1.5
>   f:/ruby/site_ruby
>   f:/ruby/1.5/i386-cygwin
>   /usr/local/lib
>   f:/ruby/1.5
>   .

  発端は、MS の OS にはドライブレターってものががあるから
prefix=/usr/local みたいのだけではうまくない、RUBYLIB_PREFIX で
できるけれど、それはソースを見ないと分からない。という話でした。

  それと、Win95/98 だとあまり環境変数を作られてもうれしくない、どっちか
というとバイナリのインストールされているディレクトリからの相対で見てくれ
た方がいい、ということもあるようです。


--- ruby.c-	Wed Jun 28 17:26:54 2000
+++ ruby.c	Mon Jul 10 12:20:17 2000
@@ -888,19 +888,18 @@ ruby_libpath()
     GetModuleFileName(NULL, libpath, sizeof libpath);
 #elif defined(DJGPP)
     extern char *__dos_argv0;
-    strcpy(libpath, __dos_argv0);
+    strncpy(libpath, __dos_argv0, FILENAME_MAX);
 #endif
     p = strrchr(libpath, '\\');
     if (p) {
 	*p = 0;
-	if (!strcasecmp(p-4, "\\bin"))
-	    p -= 4;
+        if (p-libpath > 3 && !strcasecmp(p-4, "\\bin"))
+	    p[-4] = 0;
     } else {
 	strcpy(libpath, ".");
 	p = libpath + 1;
     }
 
-    strcpy(p, "\\lib");
 #if defined(__CYGWIN32__)
     p = (char *)malloc(strlen(libpath)+10);
     if (!p)
@@ -909,7 +908,10 @@ ruby_libpath()
     strcpy(libpath, p);
     free(p);
 #else
-    for (p = libpath; *p; p++)
+#ifndef CharNext                /* defined as CharNext[AW] on Windows. */
+#define CharNext(p) ((p) + 1)
+#endif
+    for (p = libpath; *p; p = CharNext(p))
 	if (*p == '\\')
 	    *p = '/';
 #endif
@@ -920,6 +922,15 @@ ruby_libpath()
 void
 ruby_prog_init()
 {
+#if defined(_WIN32) || defined(DJGPP)
+    char *libpath = ruby_libpath();
+    int prefix_len = strlen(libpath);
+
+#define ADDPATH(p) (strncpy(libpath + prefix_len, (p), FILENAME_MAX - prefix_len), addpath(libpath))
+#else
+#define ADDPATH(p) addpath(p)
+#endif
+
     init_ids();
 
     ruby_sourcefile = "ruby";
@@ -930,21 +941,18 @@ ruby_prog_init()
     rb_define_readonly_variable("$-p", &do_print);
     rb_define_readonly_variable("$-l", &do_line);
 
-    addpath(RUBY_LIB);
-#if defined(_WIN32) || defined(DJGPP)
-    addpath(ruby_libpath());
-#endif
+    ADDPATH(RUBY_LIB);
 
-    addpath(RUBY_ARCHLIB);
+    ADDPATH(RUBY_ARCHLIB);
 #ifdef RUBY_THIN_ARCHLIB
-    addpath(RUBY_THIN_ARCHLIB);
+    ADDPATH(RUBY_THIN_ARCHLIB);
 #endif
 
-    addpath(RUBY_SITE_LIB);
-    addpath(RUBY_SITE_LIB2);
-    addpath(RUBY_SITE_ARCHLIB);
+    ADDPATH(RUBY_SITE_LIB);
+    ADDPATH(RUBY_SITE_LIB2);
+    ADDPATH(RUBY_SITE_ARCHLIB);
 #ifdef RUBY_SITE_THIN_ARCHLIB
-    addpath(RUBY_SITE_THIN_ARCHLIB);
+    ADDPATH(RUBY_SITE_THIN_ARCHLIB);
 #endif
 
 #ifdef RUBY_SEARCH_PATH
--- win32/config.h.vc-	Wed May 17 00:50:48 2000
+++ win32/config.h.vc	Fri Jul  7 16:38:26 2000
@@ -40,12 +40,14 @@
 #define FILE_COUNT _cnt
 #define DLEXT ".so"
 #define DLEXT2 ".dll"
-#define RUBY_LIB "/usr/local/lib/ruby/1.5"
-#define RUBY_SITE_LIB "/usr/local/lib/ruby/site_ruby"
-#define RUBY_SITE_LIB2 "/usr/local/lib/ruby/site_ruby/1.5"
-#define RUBY_PLATFORM "i386-mswin32"
-#define RUBY_ARCHLIB "/usr/local/lib/ruby/1.5/i386-mswin32"
-#define RUBY_SITE_ARCHLIB "/usr/local/lib/ruby/site_ruby/1.5/i386-mswin32"
+#define RUBY_LIB_PREFIX "/lib/ruby"
+#define RUBY_LIB_VERSION "1.5"
+#define RUBY_LIB RUBY_LIB_PREFIX "/" RUBY_LIB_VERSION
+#define RUBY_SITE_LIB RUBY_LIB_PREFIX "/site_ruby"
+#define RUBY_SITE_LIB2 RUBY_SITE_LIB "/" RUBY_LIB_VERSION
+#define RUBY_PLATFORM "i586-mswin32"
+#define RUBY_ARCHLIB RUBY_LIB "/" RUBY_PLATFORM
+#define RUBY_SITE_ARCHLIB RUBY_SITE_LIB2 "/" RUBY_PLATFORM
 
 #define SIZEOF_INT   4
 #define SIZEOF_SHORT 2


-- 
そうだ 強気に ちょっと インチキに☆彡
    中田 "Bugるくらいがちょうどいいかも;-)" 伸悦

In This Thread

Prev Next