我刚刚使用TDM-GCC编译器编译了w3m for Windows,但是在运行它之后,它提供了:
$ w3m
Can't create config directory (~C:/msys32/.w3m)!Can't find termcap entry xterm-256color在我的计算机上有C:/msys32 32,我使用C:/msys32/usr/bin/sh.exe作为ConEmu终端模拟器上的外壳。
$ echo ~/ 打印/home/myusername
我尝试过用sysconfdir选项配置w3m,如
./configure --sysconfdir=/etc但不管我给了谁
我看了一下config.log文件,搜索.w3m看到了这一行:
RC_DIR='~/.w3m'显然,w3m正在向其添加C:/msys32 32,以便打印
我怎么才能解决呢?谢谢。
发布于 2016-10-08 12:57:40
我把它解决了。
首先,我搜索包含不正确路径的二进制文件:
$ 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;https://stackoverflow.com/questions/39904222
复制相似问题