Commit Diff


commit - 76f90e51459082e3dd93f80e310635c6d37044e2
commit + e6c837d612cc884aa4fe68335c121c3dadddeebc
blob - c512ad1c253f4bbe7c1e510e96c2b0d046e2c760
blob + 8a71772bb1c614b19d07479a69302484ef078850
--- .hgignore
+++ .hgignore
@@ -17,3 +17,4 @@ y.tab.[ch]$
 ^log/
 ^dict/
 ^postscript/font/
+\.orig$
blob - 996e6a2b24eae83d7d36294c7330331d4a7a92c5
blob + 86e9c9706bee263b80d20f5df51676679cee292d
--- LICENSE
+++ LICENSE
@@ -1,3 +1,9 @@
+Copyright © 2000-2009 Lucent Technologies.  All Rights Reserved.
+Portions Copyright © 2001-2008 Russ Cox
+Portions Copyright © 2008-2009 Google Inc.
+
+===================================================================
+
 The bulk of this software is derived from Plan 9 and is thus distributed
 under the Lucent Public License, Version 1.02, reproduced below.
 
blob - 327f1670642068d88361660f826e73aaa1b2f048
blob + 8ee137ee4bd985ef506ef5e78387bd97a55d2fb4
--- bin/9c
+++ bin/9c
@@ -58,6 +58,9 @@ case "$tag" in
 		cflags="$ngflags -g"
 		cflags="$cflags -D__sun__ -D__${s}__"
 		;;
+*AIX*)		usegcc
+		cflags="$ngflags -g -D__AIX__"
+		;;
 *)
 	echo 9c does not know how to compile on "$tag" 1>&2
 	exit 1
blob - ce3047afc04f3b1073d42201f3797875354cf541
blob + ae4157624736f04b49d63f29d040bda0bd263a2f
--- dist/buildmk
+++ dist/buildmk
@@ -2,13 +2,13 @@
 
 # run this in the src directory
 SYSNAME=`uname` export SYSNAME
-OBJTYPE=`uname -m | sed '
+OBJTYPE=`uname -p | sed '
 	s;i.86;386;;
 	s;i86pc;386;;
 	s;amd64;x86_64;;
 	s;/.*;;; s; ;;g;
 	s;armv4l;arm;g;
-	s;PowerMacintosh;power;g;
+	s;powerpc;power;g;
 	s;macppc;power;g;
 	s;ppc64;power;g;
 	s;ppc;power;g;
blob - e604d3afc223b466ee9ac82e3d9612b7c04e8dc4
blob + 3a25d01cdf8ce78b6da354bc9a3296b011ab7b6f
--- include/u.h
+++ include/u.h
@@ -29,6 +29,9 @@ extern "C" {
 #	undef __LONG_LONG_SUPPORTED
 #	define __LONG_LONG_SUPPORTED
 #endif
+#if defined(__AIX__)
+#	define _XOPEN_SOURCE 1
+#endif
 #define _LARGEFILE64_SOURCE 1
 #define _FILE_OFFSET_BITS 64
 
blob - 51f3e1c5f5c978eef5cdff130e4fd50c30215236
blob + 31322f8a1c5b6bc978497aec5643891600c2e110
--- src/cmd/acme/rows.c
+++ src/cmd/acme/rows.c
@@ -269,6 +269,9 @@ rowtype(Row *row, Rune r, Point p)
 	Window *w;
 	Text *t;
 
+	if(r == 0)
+		r = Runeerror;
+
 	clearmouse();
 	qlock(&row->lk);
 	if(bartflag)
blob - 5485df0c2c5eb0a151e0d4ea182d8c25fef3eb09
blob + 74dd1422af531836028dd8cc609e8a968b49c8a2
--- src/lib9/dirread.c
+++ src/lib9/dirread.c
@@ -31,6 +31,12 @@ mygetdents(int fd, struct dirent *buf, int n)
 {
 	return getdents(fd, (void*)buf, n);
 }
+#elif defined(__AIX__)
+static int
+mygetdents(int fd, struct dirent *buf, int n)
+{
+	return getdirent(fd, (void*)buf, n);
+}
 #endif
 
 static int
blob - 361cb0aca5c845c50e9a2bd9d3e7feb6af9ec900
blob + f6cc586121822e3775c1d693be626d797d7e6571
--- src/libdraw/drawclient.c
+++ src/libdraw/drawclient.c
@@ -34,6 +34,7 @@ _displayconnect(Display *d)
 		return -1;
 	}
 	if(pid == 0){
+		char *devdraw;
 		close(p[0]);
 		dup(p[1], 0);
 		dup(p[1], 1);
@@ -54,9 +55,12 @@ _displayconnect(Display *d)
 		 * instead.
 		 */
 		putenv("NOLIBTHREADDAEMONIZE", "1");
+		devdraw = getenv("DEVDRAW");
+		if(devdraw == nil)
+			devdraw = "devdraw";
 		if(argv0 == nil)
-			argv0 = "devdraw";
-		execl("devdraw", argv0, argv0, "(devdraw)", nil);
+			argv0 = devdraw;
+		execl(devdraw, argv0, argv0, "(devdraw)", nil);
 		sysfatal("exec devdraw: %r");
 	}
 	close(p[1]);
blob - 3d3f325a1b55f8b183d18456e024083da0c7cc16
blob + 8c452f42dddab837f0e4402c712d090fb8b1849f
--- src/mkhdr
+++ src/mkhdr
@@ -6,7 +6,7 @@ OBJTYPE=`uname -m | sed '
 	s;amd64;x86_64;;
 	s;/.*;;;
 	s; ;;g;
-	s;armv4l;arm;g;
+	s;armv.*;arm;g;
 	s;PowerMacintosh;power;g;
 	s;macppc;power;g;
 	s;ppc64;power;g;