【问题标题】:w3m Can't create config directory (~C:/msys32/.w3m)!w3m 无法创建配置目录 (~C:/msys32/.w3m)!
【发布时间】:2016-10-06 19:31:02
【问题描述】:

我刚刚使用 TDM-GCC 编译器为 Windows 编译了 w3m,但是在运行它之后它给出了:

$ w3m
Can't create config directory (~C:/msys32/.w3m)!Can't find termcap entry xterm-256color

在我的计算机上有 C:/msys32,我使用 C:/msys32/usr/bin/sh.exe 作为 ConEmu Terminal Emulator 的 shell。

$ echo ~/ 

打印/home/myusername

我尝试使用 sysconfdir 选项配置 w3m,例如

 ./configure --sysconfdir=/etc

但是我给 --sysconfdir 的任何选项都对结果没有影响。

我查看了 config.log 文件,搜索了 .w3m 看到了这一行:

RC_DIR='~/.w3m'

显然,w3m 正在向其添加 C:/msys32,因此它会打印 ~C:/msys32/.w3m

我该如何解决这个问题?谢谢。

【问题讨论】:

    标签: windows shell compilation configure msys2


    【解决方案1】:

    好吧,我解决了。

    首先,我搜索了包含错误路径的二进制文件:

    $ egrep -ir "~C:/msys32" .
    

    包括几个二进制文件。但其中之一包括错误操作的起源,它是 indep.c 并且名为 "expandPath" 的函数正在生成该错误路径。作为一个快速而肮脏的黑客,我修改了导致错误的部分,这是补丁:

    --- indep_orig.c    2016-10-08 12:39:43.656250000 +0300
    +++ indep.c 2016-10-07 19:50:18.812500000 +0300
    @@ -69,6 +69,7 @@
     }
    
     #ifndef HAVE_BCOPY
    +/*
     void
     bcopy(const void *src, void *dest, int len)
     {
    @@ -79,12 +80,12 @@
        for (i = len - 1; i >= 0; i--)
            ((char *)dest)[i] = ((const char *)src)[i];
         }
    -    else {         /* src > dest */
    +    else {         // src > dest 
        for (i = 0; i < len; i++)
            ((char *)dest)[i] = ((const char *)src)[i];
         }
     }
    -
    +*/
     void
     bzero(void *ptr, int len)
     {
    @@ -246,12 +247,15 @@
          if (*p == '/' || *p == '\0') {    /* ~/dir... or ~ */
            extpath = Strnew_charp(getenv("HOME"));
        }
    -   else
    -       goto rest;
    +     else
    +         {  extpath = Strnew_charp(getenv("HOME"));
    +        return extpath->ptr;
    +         }
    +   /*      goto rest;
        if (Strcmp_charp(extpath, "/") == 0 && *p == '/')
            p++;
        Strcat_charp(extpath, p);
    -   return extpath->ptr;
    +   return extpath->ptr; */
         }
       rest:
         return name;
    

    【讨论】:

      猜你喜欢
      • 2012-06-02
      • 2013-09-29
      • 2012-05-02
      • 2014-03-04
      • 2018-09-18
      • 2010-10-20
      • 2016-07-25
      • 2013-10-25
      • 2011-07-03
      相关资源
      最近更新 更多