[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]

Re: gnus の install について



;; 紛らわしいので私のところは「圭一>」にでもしてください。 :-)

>>>>> meadow-users-jp の No. 1190
>>>>> Message-Id: <19990922185503N.pan@xxxxxxxxxxxxxxx> で、
>>>>> "鈴木" == Satomi Suzuki <pan@xxxxxxxxxxxxxxx>さま曰く...

鈴木> ./configure --with-emacs=meadow
鈴木> で一応、pGnus , T-gnus は大丈夫ですが、Nana-gnus は無視されます。
鈴木> で、最終的には make ファイルを手直しして組込んでいます。 (^^;

これを使えるようにしようかとも思ったこともあるのですが...

export EMACS=`Meadow.exe の full path' ; ./configure

...のようにすれば使えますので放ってあります。

鈴木> 圭一さんが知りたいのとは違うかも知れませんが・・・

Backtrace というのは...
(setq debug-on-error t)
を評価した状態で、エラーを発生させると *Backtrace* という buffer ができ
ます。その内容を backtrace と言っています。

鈴木> gnus 起動時にミニバッファには
鈴木> Symbol's value as variable is void: e\.
鈴木> が表示されて起動できません。
鈴木> cygwin 付属の install.exe を使った場合は何も問題なく起動できます。

これを見ると *.elc ファイルが壊れている可能性が高いように思いますので、
install.exe の問題かも知れません。

LF <-> CR+LF 変換の関係のような気がします。

;; 小関さんは、 cygwin で binary mount しているために問題が起っていない
;; のではないでしょうか?

試しに、下の patch をあててみていただけないでしょうか?

;; 小関さんが紹介なさっているものも含んでいますので、オリジナルのものに
;; 対して適用してみてください。

;; うまく行くようであれば、小関さんちに置いていただけませんか?
*** install.c.orig	Wed Dec 11 13:24:44 1996
--- install.c	Wed Sep 22 21:13:59 1999
***************
*** 78,83 ****
--- 78,87 ----
  # include <values.h>
  #endif
  
+ #ifdef __CYGWIN__
+ # include <unistd.h>
+ #endif
+ 
  #ifndef BITSPERBYTE
  # define BITSPERBYTE 8
  #endif
***************
*** 307,312 ****
--- 311,332 ----
    exit (errors);
  }
  
+ 
+ #ifdef __CYGWIN__ 
+ /* 
+    cannot use access, because exe files are automatically mapped here
+ */
+ static int 
+ fileExists(char *file)
+ {
+   FILE *f = fopen(file, "r");
+   if (!f)
+     return 0;
+   fclose(f);
+   return 1;
+ }
+ #endif /* __CYGWIN__ */
+ 
  /* Copy file FROM onto file TO and give TO the appropriate
     attributes.
     Return 0 if successful, 1 if an error occurs. */
***************
*** 316,322 ****
--- 336,364 ----
  {
    int to_created;
    int no_need_to_chown;
+ #ifdef __CYGWIN__
+   char fromfile[MAXPATHLEN];
+   char tofile[MAXPATHLEN];
+   strcpy(fromfile, from);
+   strcpy(tofile, to);
+   if (!fileExists(from)) { /* probably exefile */
+     strcat(fromfile, ".exe");
+     if (!fileExists(fromfile))
+       strcpy(fromfile, from);
+     else {
+       strcat(tofile, ".exe");
+     }
+   }
  
+   if (copy_file (fromfile, tofile, &to_created))
+     return 1;
+   if (strip_files)
+     strip (to);
+   no_need_to_chown = (to_created
+ 		      && owner_name == NULL
+ 		      && group_name == NULL);
+   return change_attributes (tofile, no_need_to_chown);
+ #else /* __CYGWIN__ */
    if (copy_file (from, to, &to_created))
      return 1;
    if (strip_files)
***************
*** 325,330 ****
--- 367,373 ----
  		      && owner_name == NULL
  		      && group_name == NULL);
    return change_attributes (to, no_need_to_chown);
+ #endif /* __CYGWIN__ */
  }
  
  /* Copy file FROM into directory TO_DIR, keeping its same name,
***************
*** 338,349 ****
--- 381,408 ----
    char *to;
    int ret;
  
+ #ifdef __CYGWIN__
+   char fromfile[MAXPATHLEN];
+   strcpy(fromfile, from);
+   if (!fileExists(from)) { /* probably exefile */
+     strcat(fromfile, ".exe");
+     if (!fileExists(fromfile))
+       strcpy(fromfile, from);
+   }
+   from_base = basename (fromfile);
+   to = xmalloc ((unsigned) (strlen (to_dir) + strlen (from_base) + 2));
+   stpcpy (stpcpy (stpcpy (to, to_dir), "/"), from_base);
+   ret = install_file_in_file (fromfile, to);
+   free (to);
+   return ret;
+ #else /* __CYGWIN__ */
    from_base = basename (from);
    to = xmalloc ((unsigned) (strlen (to_dir) + strlen (from_base) + 2));
    stpcpy (stpcpy (stpcpy (to, to_dir), "/"), from_base);
    ret = install_file_in_file (from, to);
    free (to);
    return ret;
+ #endif /* __CYGWIN__ */
  }
  
  /* A chunk of a file being copied. */
***************
*** 418,424 ****
--- 477,487 ----
  	target_created = 0;
      }
  
+ #ifdef __CYGWIN__
+   fromfd = open (from, O_RDONLY | O_BINARY, 0);
+ #else
    fromfd = open (from, O_RDONLY, 0);
+ #endif /* __CYGWIN__ */
    if (fromfd == -1)
      {
        error (0, errno, "%s", from);
***************
*** 426,432 ****
--- 489,499 ----
      }
  
    /* Make sure to open the file in a mode that allows writing. */
+ #ifdef __CYGWIN__
+   tofd = open (to, O_WRONLY | O_CREAT | O_TRUNC | O_BINARY, 0600);
+ #else
    tofd = open (to, O_WRONLY | O_CREAT | O_TRUNC, 0600);
+ #endif /* __CYGWIN__ */
    if (tofd == -1)
      {
        error (0, errno, "%s", to);
-- 
鈴木圭一 / keiichi@xxxxxxxxx
PGP finger print (DH/DSS)
0B32 B37E 6DE9 3BC1 68A4  4089 7AAF 2B03 ECBD 614B