Hi everybody,
Building v1.1.5.7 with the following compiletime-settings fails:
config {
experimental off
sbemu on
mitshm on
vidmode on
x on
net on
debug off
linkstatic off
cpuemu off
aspi on
svgalib off
plugin_keyboard on
plugin_kbd_unicode off
plugin_extra_charsets off
plugin_term off
plugin_slang on
plugin_translate off
plugin_coopthreads on
plugin_commands on
plugin_demo off
target_cpu auto
prefix /usr/local
bindir ${prefix}/bin
sysconfdir /etc/dosemu
datadir ${prefix}/share
mandir ${prefix}/man
docdir ${datadir}/doc/dosemu
syshdimagedir /var/lib/dosemu
x11fontdir ${datadir}/dosemu/Xfonts
fdtarball dosemu-freedos-bin.tgz
}
The following diff enables a successful build with the settings above.
It's mostly related to mfs and a glitch in a Makefile. Because I've been
delving into sources for a couple of days only, this diff should not be
ultimate but hopefully points to where the problem is.
Regards,
A. Alper ATICI
diff -ur dosemu-1.1.5.7/src/dosext/mfs/lfn.c my1/src/dosext/mfs/lfn.c
--- dosemu-1.1.5.7/src/dosext/mfs/lfn.c 2003-09-16 21:00:47.272817976 +0300
+++ my1/src/dosext/mfs/lfn.c 2003-09-16 20:45:42.747326752 +0300
@@ -63,7 +63,9 @@
if ((strcasecmpDOS(de->d_long_name, src) == 0) ||
(strcasecmpDOS(de->d_name, src) == 0)) {
char *name = alias ? de->d_name : de->d_long_name;
+#ifdef HAVE_UNICODE_TRANSLATION
if (!name_ufs_to_dos(dest, name, 0))
+#endif
name_convert(dest, name, MANGLE, NULL);
dos_closedir(dir);
return 1;
@@ -99,7 +101,11 @@
if (!strcmp(src, "..") || !strcmp(src, ".")) {
strcpy(dest, src);
} else if (!vfat_search(dest, src, fpath, alias)) {
+#ifdef HAVE_UNICODE_TRANSLATION
if (alias || !name_ufs_to_dos(dest, src, 0)) {
+#else
+ if (alias) {
+#endif
name_convert(dest, src, MANGLE, NULL);
}
}
@@ -190,7 +196,9 @@
}
long_name = strrchr(fpath, '/') + 1;
+#ifdef HAVE_UNICODE_TRANSLATION
if (!name_ufs_to_dos(dest + 0x2c, long_name, 0))
+#endif
name_convert(dest + 0x2c, long_name, MANGLE, NULL);
dest += 0x130;
if (de == NULL) {
diff -ur dosemu-1.1.5.7/src/dosext/mfs/mfs.c my1/src/dosext/mfs/mfs.c
--- dosemu-1.1.5.7/src/dosext/mfs/mfs.c 2003-09-16 21:00:47.300813720 +0300
+++ my1/src/dosext/mfs/mfs.c 2003-09-16 20:45:21.509555384 +0300
@@ -1806,7 +1806,9 @@
if (cur_ent->d_name == cur_ent->d_long_name)
continue;
+#ifdef HAVE_UNICODE_TRANSLATION
if (!name_ufs_to_dos(tmpname,cur_ent->d_long_name,0))
+#endif
if (!name_convert(tmpname,cur_ent->d_long_name,MANGLE,NULL))
continue;
diff -ur dosemu-1.1.5.7/src/dosext/mfs/util.c my1/src/dosext/mfs/util.c
--- dosemu-1.1.5.7/src/dosext/mfs/util.c 2003-09-16 21:00:47.305812960 +0300
+++ my1/src/dosext/mfs/util.c 2003-09-16 20:45:54.971468400 +0300
@@ -6,7 +6,9 @@
#include "config.h"
#include "mangle.h"
+#ifdef HAVE_UNICODE_TRANSLATION
#include "translate.h"
+#endif
#include <wctype.h>
int case_default=-1;
diff -ur dosemu-1.1.5.7/src/plugin/keyboard/term/Makefile
my1/src/plugin/keyboard/term/Makefile
--- dosemu-1.1.5.7/src/plugin/keyboard/term/Makefile 2003-09-16 21:00:46.674908872
+0300
+++ my1/src/plugin/keyboard/term/Makefile 2003-09-16 20:46:43.494091840 +0300
@@ -4,7 +4,7 @@
# for details see file COPYING in the DOSEMU distribution
#
-top_builddir=../../..
+top_builddir=../../../..
include $(top_builddir)/Makefile.conf