aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--NOTES31
-rw-r--r--TODO3
-rwxr-xr-xbin/9l14
-rwxr-xr-xbin/awd3
-rwxr-xr-xbin/g19
-rwxr-xr-xbin/ps13
-rwxr-xr-xbin/web1
-rw-r--r--rcmain9
8 files changed, 87 insertions, 6 deletions
diff --git a/NOTES b/NOTES
index 7c695506..5757e708 100644
--- a/NOTES
+++ b/NOTES
@@ -27,6 +27,25 @@ There are a few shell scripts already included in bin -- B, Bwait,
and samsave. Arguably these directories should be broken up by
architecture so that
+During the initial build of mk, you will likely see a message like
+
+ Assembler messages:
+ Error: can't open getcallerpc-386.s for reading
+ getcallerpc-386.s: No error
+
+This is not a problem. The script tries to build getcallerpc
+from assembly and then C. As long as one of them succeeds, great.
+
+There are various directories that are not built by default.
+They are listed in the BUGGERED definitions in src/mkfile and src/cmd/mkfile.
+These aren't built because they're not quite ready for prime time.
+Either they don't actually build or they haven't been very well tested.
+
+As of this writing, factotum is buggered because it's not done yet,
+and Venti and vac are buggered because they've hardly been tested
+and are in a state of flux (they were both quite rewritten for the port).
+
+
* Writing programs
The bin/ directory contains shell scripts 9a, 9c, 9l, and 9ar that mimic
@@ -155,6 +174,13 @@ To check out from the anonymous CVS repository, use
When prompted for a password, just hit enter.
+If there is already a /usr/local/plan9 directory (from a previous
+unpacking), remove it or move it out of the way. You need write
+access to /usr/local in order to run the checkout, but after that
+you'll only need write access to the plan9 subtree. I typically run
+the initial checkout as root and then chown -R rsc plan9 so that
+I can do things as rsc afterward.
+
From then on, when you want to update, you can do
cd /usr/local/plan9
@@ -173,6 +199,11 @@ you can run
to generate the diff in a format that will be easy to apply.
(You can also use this to see what you've changed.)
+ cvs diff -D20040101 -u
+
+shows you differences txixt your tree and the repository
+as of January 1, 2004.
+
Running the cvs commands in /usr/local/plan9 makes them
apply to the whole tree. Running them in a subdirectory applies
only to the code rooted there in the code.
diff --git a/TODO b/TODO
index 7ca8745f..9aa4aa39 100644
--- a/TODO
+++ b/TODO
@@ -20,3 +20,6 @@
needs cleanup and release. should be easy to add ext2,
fat. ntfs harder but possible.
+* win
+ need to make a real pty so that ^D etc. work.
+
diff --git a/bin/9l b/bin/9l
index e510e4d6..a7924e74 100755
--- a/bin/9l
+++ b/bin/9l
@@ -3,12 +3,24 @@
extralibs=-lm
tag="${SYSNAME:-`uname`}-${OBJTYPE:-`uname -m`}"
case "$tag" in
-*FreeBSD*) ld=gcc ;;
+*OpenBSD*) ld=gcc
+ extralibs="$extralibs -lpthread"
+ ;;
*BSD*) ld=gcc ;;
*Linux*) ld=gcc ;;
*Darwin*) ld=gcc ;;
*SunOS*) ld="${CC9:-cc} -g"
extralibs="$extralibs -lrt -lpthread -lsocket -lnsl"
+ # Record paths to shared libraries to avoid needing LD_LIBRARY_PATH
+ for i in "$@"
+ do
+ case "$i" in
+ -L*)
+ s=`echo $i | sed 's/-L/-R/'`
+ extralibs="$extralibs $s"
+ ;;
+ esac
+ done
;;
*)
echo do not know how to link on "$tag" 1>&2
diff --git a/bin/awd b/bin/awd
new file mode 100755
index 00000000..4b1ab78e
--- /dev/null
+++ b/bin/awd
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+label `pwd`
diff --git a/bin/g b/bin/g
new file mode 100755
index 00000000..c9e8b929
--- /dev/null
+++ b/bin/g
@@ -0,0 +1,19 @@
+#!/usr/local/plan9/bin/rc
+
+flags=()
+while(! ~ $#* 1 && ~ $1 -*){
+ flags=($flags $1)
+ shift
+}
+
+switch($#*){
+case 0
+ echo 'usage: g [flags] pattern [files]' >[1=2]
+ exit 1
+case 1
+ 9grep -n $flags -- $1 *.[Cbchm] *.cc *.py *.tex *.ms *.java /dev/null \
+ |[2] {9grep -v '^(grep: can''t open \*|grep: \*\.)' >[1=2]; status=0}
+case *
+ 9grep -n $flags -- $* /dev/null
+}
+
diff --git a/bin/ps b/bin/ps
index 54678eb8..d7e0767f 100755
--- a/bin/ps
+++ b/bin/ps
@@ -15,6 +15,7 @@ BEGIN{
state["I"] = "Idle";
state["J"] = "Jail";
state["R"] = "Ready";
+ state["O"] = "Running";
state["S"] = "Sleep";
state["T"] = "Stopped";
state["Z"] = "Zombie";
@@ -65,8 +66,16 @@ function statestr(s)
}
!
-/bin/ps -axww -o 'user,pid,start,time,vsz,stat,command' | sed 1d |
- awk -f /tmp/awk.xxx$$ | sort -n +1
+case "${SYSNAME:-`uname`}" in
+SunOS)
+ /bin/ps -aA -o 'user,pid,stime,time,vsz,s,args' | sed 1d |
+ nawk -f /tmp/awk.xxx$$ | sort -n +1
+ ;;
+*)
+ /bin/ps -axww -o 'user,pid,start,time,vsz,stat,command' | sed 1d |
+ awk -f /tmp/awk.xxx$$ | sort -n +1
+ ;;
+esac
rm -f /tmp/awk.xxx$$
diff --git a/bin/web b/bin/web
index a597f2da..7ca1c7de 100755
--- a/bin/web
+++ b/bin/web
@@ -10,6 +10,7 @@ plumb1()
;;
*firebird*)
$BROWSER -remote 'openURL('$i', new-window)'
+ ;;
*firefox*)
$BROWSER -remote 'openURL('$i', new-window)'
;;
diff --git a/rcmain b/rcmain
index c4dda4cd..ad94b299 100644
--- a/rcmain
+++ b/rcmain
@@ -10,15 +10,18 @@ case 1
prompt=($prompt ' ')
}
if(~ $rcname ?.out) prompt=('broken! ' ' ')
-if(flag p) path=/bin
+if(flag p) path=(/bin)
if not{
finit
- if(~ $#path 0) . <{/bin/sh -c 'echo $PATH |
+ if(~ $#path 0) {
+ path=(/bin /usr/bin)
+ . <{sh -c 'echo $PATH |
sed "s/^/path=(''/; s/$/'')/; s/:/'' ''/g"'}
+ }
}
fn sigexit
if(! ~ $#cflag 0){
- if(flag l && /bin/test -r $home/lib/profile) . $home/lib/profile
+ if(flag l && test -r $home/lib/profile) . $home/lib/profile
status=''
eval $cflag
}