about summary refs log tree commit diff
diff options
context:
space:
mode:
authorPeter Stephenson <pws@users.sourceforge.net>2008-11-18 10:14:35 +0000
committerPeter Stephenson <pws@users.sourceforge.net>2008-11-18 10:14:35 +0000
commit1e9b85e586a24ae119e4f41504ea2e71e4dd5de7 (patch)
tree092d6a6832f2fa9feb3c5a7cb8ffcfb7392e44ad
parent14231691e15744c0aac39224e9aa0d84835313fe (diff)
downloadzsh-1e9b85e586a24ae119e4f41504ea2e71e4dd5de7.tar.gz
zsh-1e9b85e586a24ae119e4f41504ea2e71e4dd5de7.tar.xz
zsh-1e9b85e586a24ae119e4f41504ea2e71e4dd5de7.zip
François Revol: some BeOS fixes
-rw-r--r--ChangeLog3
-rw-r--r--Src/Modules/zpty.c3
-rw-r--r--Src/Zle/zle_refresh.c4
-rw-r--r--configure.ac11
4 files changed, 20 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 14133be43..c53072059 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2008-11-18  Peter Stephenson  <pws@csr.com>
 
+	* 26060: François Revol: configure.ac, Src/Module/zpty.c,
+	Src/Zle/zle_refresh.c: fixes for BeOS.
+
 	* 26062: Src/Zle/compmatch.c: missed change needed with 26047.
 
 	* 26061: Src/lex.c, Src/parse.c, Src/subst.c, Src/zsh.h,
diff --git a/Src/Modules/zpty.c b/Src/Modules/zpty.c
index 6c332b270..d115afcef 100644
--- a/Src/Modules/zpty.c
+++ b/Src/Modules/zpty.c
@@ -260,6 +260,9 @@ get_pty(int master, int *retfd)
 
     if (master) {
 	strcpy(name, "/dev/ptyxx");
+#if defined(__BEOS__) || defined(__HAIKU__)
+	name[7] = '/';
+#endif
 
 	for (p1 = char1; *p1; p1++) {
 	    name[8] = *p1;
diff --git a/Src/Zle/zle_refresh.c b/Src/Zle/zle_refresh.c
index 6a50d8b99..ba6fdaaf1 100644
--- a/Src/Zle/zle_refresh.c
+++ b/Src/Zle/zle_refresh.c
@@ -1879,6 +1879,8 @@ refreshline(int ln)
 /* 3: main display loop - write out the buffer using whatever tricks we can */
 
     for (;;) {
+	int now_off;
+
 #ifdef MULTIBYTE_SUPPORT
 	if ((!nl->chr || nl->chr != WEOF) && (!ol->chr || ol->chr != WEOF)) {
 #endif
@@ -2050,7 +2052,7 @@ refreshline(int ln)
 	     * If an attribute was on here but isn't any more,
 	     * output the sequence to turn it off.
 	     */
-	    int now_off = ol->atr & ~nl->atr & TXT_ATTR_ON_MASK;
+	    now_off = ol->atr & ~nl->atr & TXT_ATTR_ON_MASK;
 	    if (now_off)
 		settextattributes(TXT_ATTR_OFF_FROM_ON(now_off));
 
diff --git a/configure.ac b/configure.ac
index 8fb4843e0..f68b1b9bc 100644
--- a/configure.ac
+++ b/configure.ac
@@ -745,6 +745,7 @@ if test x$enable_cap = xyes; then
 fi
 
 AC_CHECK_LIB(socket, socket)
+AC_CHECK_LIB(bind, gethostbyname2)
 
 dnl ---------------
 dnl CHECK FOR ICONV
@@ -2527,6 +2528,7 @@ char *argv[];
     aix*)         DLLDFLAGS="${DLLDFLAGS=-G -bexpall -lc}" ;;
     solaris*|sysv4*|esix*) DLLDFLAGS="${DLLDFLAGS=-G}" ;;
     darwin*)      DLLDFLAGS="${DLLDFLAGS=-bundle -flat_namespace -undefined suppress}" ;;
+    beos*|haiku*) DLLDFLAGS="${DLLDFLAGS=-nostart}" ;;
     openbsd*)
       if test x$zsh_cv_sys_elf = xyes; then
 	DLLDFLAGS="${DLLDFLAGS=-shared -fPIC}"
@@ -2568,6 +2570,15 @@ char *argv[];
        ;;
       esac
     ;;
+    *-beos*)
+      # gcc on BeOS doesn't like -rdynamic...
+      EXTRA_LDFLAGS="${EXTRA_LDFLAGS= }"
+      # also, dlopen() at least in Zeta respects $LIBRARY_PATH, so needs %A added to it.
+      export LIBRARY_PATH="$LIBRARY_PATH:%A/"
+    ;;
+    *-haiku*)
+      # 
+    ;;
   esac
 
   # Done with our shell code, so restore autotools quoting