Hi there, I've had a working port of zsh to ZETA (BeOS R6) for quite a while, but since I'm not (yet) a big user I never managed to publish it. I was also too lazy to clean up the small C89 fix required (we require gcc2.95 due to the C++ ABI breackage on later versions). I didn't try but it should likely compile fine on BeOS R5, at least with the BONE network stack. It should also compile without much trouble in Haiku (MIT licenced rewrite of BeOS). It will probably need some more library check (socket in -lnetwork) though. Some tests still break, but most are due to missing features, and at least they don't crash like they used to. - BeOS defvs shows all devices as S_IFCHR, including block devices, so there is no S_IFBLK device in /dev per see. - BeOS doesn't have /dev/tty (Haiku does though) - BeOS natively uses UTF-8 everywhere, but has an old glibc, so it misses some wc*()... I still don't get the point of using ugly stuff like wchar anyway. - zpty doesn't load yet for some reason I'll likely have to port over all the bash_completion stuff I wrote... http://revolf.free.fr/beos/bash_completion/zeta_completion François. ---- make test: [revol@Zeta /Data/zsh/build.zeta]# make test cd Test ; /bin/make check make[1]: Entering directory `/Data/zsh/build.zeta/Test' if test -n "gcc"; then \ cd .. && DESTDIR= \ /bin/make MODDIR=`pwd`/Test/Modules install.modules > /dev/null; \ fi if ZTST_testlist="`for f in ../../zsh/Test/*.ztst; \ do echo $f; done`" \ ZTST_srcdir="../../zsh/Test" \ ZTST_exe=../Src/zsh \ ../Src/zsh +Z -f ../../zsh/Test/runtests.zsh; then \ stat=0; \ else \ stat=1; \ fi; \ rm -rf Modules .zcompdump; \ exit $stat ../../zsh/Test/A01grammar.ztst: starting. Test ../../zsh/Test/A01grammar.ztst failed: bad status 1, expected 0 from: - $ZTST_testdir/../Src/zsh -fc "[[ \$0 = \"-$ZTST_testdir/../Src/zsh\ " ]]" Was testing: `-' precommand modifier ../../zsh/Test/A01grammar.ztst: test failed. ../../zsh/Test/A02alias.ztst: starting. ../../zsh/Test/A02alias.ztst: all tests successful. ../../zsh/Test/A03quoting.ztst: starting. Test ../../zsh/Test/A03quoting.ztst failed: bad status 1, expected 0 from: print '<\u0041>' printf '%s\n' $'<\u0042>' print '<\u0043>' printf '%s\n' $'<\u0044>' Error output: (eval):1: cannot do charset conversion (NLS not supported) Was testing: \u in both print and printf ../../zsh/Test/A03quoting.ztst: test failed. ../../zsh/Test/A04redirect.ztst: starting. ../../zsh/Test/A04redirect.ztst: all tests successful. ../../zsh/Test/A05execution.ztst: starting. ../../zsh/Test/A05execution.ztst: all tests successful. ../../zsh/Test/A06assign.ztst: starting. ../../zsh/Test/A06assign.ztst: all tests successful. ../../zsh/Test/A07control.ztst: starting. ../../zsh/Test/A07control.ztst: all tests successful. ../../zsh/Test/B01cd.ztst: starting. ../../zsh/Test/B01cd.ztst: all tests successful. ../../zsh/Test/B02typeset.ztst: starting. ../../zsh/Test/B02typeset.ztst: all tests successful. ../../zsh/Test/B03print.ztst: starting. ../../zsh/Test/B03print.ztst: all tests successful. ../../zsh/Test/B04read.ztst: starting. ../../zsh/Test/B04read.ztst: all tests successful. ../../zsh/Test/B05eval.ztst: starting. ../../zsh/Test/B05eval.ztst: all tests successful. ../../zsh/Test/B06fc.ztst: starting. ../../zsh/Test/B06fc.ztst: all tests successful. ../../zsh/Test/C01arith.ztst: starting. ../../zsh/Test/C01arith.ztst: all tests successful. ../../zsh/Test/C02cond.ztst: starting. Warning: Not testing [[ -b blockdevice ]] (no devices found) Test ../../zsh/Test/C02cond.ztst failed: bad status 1, expected 0 from: # Use hardcoded /dev/tty because globbing inside /dev fails on Cygwin char=/dev/tty [[ -c $char && ! -c $zerolength ]] Was testing: -c cond ../../zsh/Test/C02cond.ztst: test failed. ../../zsh/Test/C03traps.ztst: starting. This test takes at least three seconds... This test, too, takes at least three seconds... Another test that takes three seconds ../../zsh/Test/C03traps.ztst: all tests successful. ../../zsh/Test/C04funcdef.ztst: starting. ../../zsh/Test/C04funcdef.ztst: all tests successful. ../../zsh/Test/C05debug.ztst: starting. ../../zsh/Test/C05debug.ztst: all tests successful. ../../zsh/Test/D01prompt.ztst: starting. ../../zsh/Test/D01prompt.ztst: all tests successful. ../../zsh/Test/D02glob.ztst: starting. ../../zsh/Test/D02glob.ztst: all tests successful. ../../zsh/Test/D03procsubst.ztst: starting. ../../zsh/Test/D03procsubst.ztst: skipped (process substitution is not supported) ../../zsh/Test/D04parameter.ztst: starting. ../../zsh/Test/D04parameter.ztst: all tests successful. ../../zsh/Test/D05array.ztst: starting. ../../zsh/Test/D05array.ztst: all tests successful. ../../zsh/Test/D06subscript.ztst: starting. ../../zsh/Test/D06subscript.ztst: all tests successful. ../../zsh/Test/D07multibyte.ztst: starting. ../../zsh/Test/D07multibyte.ztst: skipped (no UTF-8 locale or multibyte mode is not implemented) ../../zsh/Test/D08cmdsubst.ztst: starting. ../../zsh/Test/D08cmdsubst.ztst: all tests successful. ../../zsh/Test/E01options.ztst: starting. *** /tmp/zsh.ztst.err.147519 Wed Nov 5 05:56:27 2008 --- /tmp/zsh.ztst.terr.147519 Wed Nov 5 05:56:27 2008 *************** *** 1,2 **** ! (eval):4: file exists: foo1 (eval):6: no such file or directory: bar1 --- 1,2 ---- ! (eval):4: file or Directory already exists: foo1 (eval):6: no such file or directory: bar1 Test ../../zsh/Test/E01options.ztst failed: error output differs from expected as shown above for: setopt noclobber rm -f foo1 bar1 rod1 echo waterbeach >foo1 (echo landbeach >foo1) cat foo1 (echo lode >>bar1) [[ -f bar1 ]] && print That shouldn\'t be there. echo denny >rod1 echo wicken >>rod1 cat rod1 unsetopt noclobber rm -f foo2 bar2 rod2 echo ely >foo2 echo march >foo2 cat foo2 echo wimpole >>bar2 cat bar2 echo royston >rod2 echo foxton >>rod2 cat rod2 rm -f foo* bar* rod* Was testing: CLOBBER option ../../zsh/Test/E01options.ztst: test failed. ../../zsh/Test/E02xtrace.ztst: starting. ../../zsh/Test/E02xtrace.ztst: all tests successful. ../../zsh/Test/V01zmodload.ztst: starting. *** /tmp/zsh.ztst.err.147628 Wed Nov 5 05:56:31 2008 --- /tmp/zsh.ztst.terr.147628 Wed Nov 5 05:56:31 2008 *************** *** 0 **** --- 1,2 ---- + (eval):3: module `zsh/terminfo' has no such feature: `b:echoti': autoload cancelled + (eval):3: module `zsh/terminfo' has no such feature: `p:terminfo': autoload cancelled Test ../../zsh/Test/V01zmodload.ztst failed: error output differs from expected as shown above for: for m in $mods do zmodload -i $m || mods[(r)$m]=() done Was testing: Test loading of all compiled modules ../../zsh/Test/V01zmodload.ztst: test failed. ../../zsh/Test/V02zregexparse.ztst: starting. ../../zsh/Test/V02zregexparse.ztst: all tests successful. ../../zsh/Test/V03mathfunc.ztst: starting. ../../zsh/Test/V03mathfunc.ztst: skipped (The module zsh/mathfunc is not available.) ../../zsh/Test/V04features.ztst: starting. ../../zsh/Test/V04features.ztst: all tests successful. ../../zsh/Test/V05styles.ztst: starting. ../../zsh/Test/V05styles.ztst: all tests successful. ../../zsh/Test/V06parameter.ztst: starting. ../../zsh/Test/V06parameter.ztst: all tests successful. ../../zsh/Test/Y01completion.ztst: starting. ../../zsh/Test/Y01completion.ztst: skipped (the zsh/zpty module is not available) ../../zsh/Test/Y02compmatch.ztst: starting. ../../zsh/Test/Y02compmatch.ztst: skipped (the zsh/zpty module is not available) ../../zsh/Test/Y03arguments.ztst: starting. ../../zsh/Test/Y03arguments.ztst: skipped (the zsh/zpty module is not available) ************************************** 26 successful test scripts, 5 failures, 6 skipped ************************************** make[1]: *** [check] Error 1 make[1]: Leaving directory `/Data/zsh/build.zeta/Test' make: *** [test] Error 2