mirror of
https://github.com/9fans/plan9port.git
synced 2025-01-12 11:10:07 +00:00
Many small edits.
This commit is contained in:
parent
741f510ce7
commit
c8b6342d3c
160 changed files with 2204 additions and 864 deletions
13
bin/9l
13
bin/9l
|
@ -91,6 +91,7 @@ then
|
||||||
do
|
do
|
||||||
eval "have$i() { false; }"
|
eval "have$i() { false; }"
|
||||||
done
|
done
|
||||||
|
havethread() { false; }
|
||||||
|
|
||||||
# now find correct order
|
# now find correct order
|
||||||
libsl=""
|
libsl=""
|
||||||
|
@ -129,6 +130,12 @@ then
|
||||||
fi
|
fi
|
||||||
libsl="$libsl -l9"
|
libsl="$libsl -l9"
|
||||||
|
|
||||||
|
# cycle: lib9 expects p9main, which is defined in libthread. oops.
|
||||||
|
if $havethread
|
||||||
|
then
|
||||||
|
libsl="$libsl -lthread"
|
||||||
|
fi
|
||||||
|
|
||||||
if [ "x$needdraw" = xtrue ]
|
if [ "x$needdraw" = xtrue ]
|
||||||
then
|
then
|
||||||
if [ "x$X11" = "x" ]
|
if [ "x$X11" = "x" ]
|
||||||
|
@ -194,9 +201,11 @@ if $verbose
|
||||||
then
|
then
|
||||||
echo $ld -L$PLAN9/lib "$@" $libsl $extralibs
|
echo $ld -L$PLAN9/lib "$@" $libsl $extralibs
|
||||||
fi
|
fi
|
||||||
if ! $ld -L$PLAN9/lib "$@" $libsl $extralibs
|
if $ld -L$PLAN9/lib "$@" $libsl $extralibs
|
||||||
then
|
then
|
||||||
|
exit 0
|
||||||
|
else
|
||||||
rm -f $target
|
rm -f $target
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
exit 0
|
|
||||||
|
|
|
@ -24,7 +24,7 @@ ifs='
|
||||||
'{
|
'{
|
||||||
files=`{echo $*}
|
files=`{echo $*}
|
||||||
}
|
}
|
||||||
9grep -h '\$LIST|\|reference|^\.(EQ|TS|\[|PS|IS|GS|G1|GD|PP|BM|LP|BP|PI|cstart|begin|TH...)|^\.P$' $* |
|
9 grep -h '\$LIST|\|reference|^\.(EQ|TS|\[|PS|IS|GS|G1|GD|PP|BM|LP|BP|PI|cstart|begin|TH...)|^\.P$' $* |
|
||||||
sort -u |
|
sort -u |
|
||||||
awk '
|
awk '
|
||||||
BEGIN { files = "'$files'" }
|
BEGIN { files = "'$files'" }
|
||||||
|
|
2
bin/g
2
bin/g
|
@ -34,4 +34,4 @@ case $# in
|
||||||
files="$@"
|
files="$@"
|
||||||
esac
|
esac
|
||||||
|
|
||||||
exec grep -n $flags -- "$pattern" $files /dev/null
|
exec 9 grep -n $flags -- "$pattern" $files /dev/null
|
||||||
|
|
2
bin/lc
2
bin/lc
|
@ -1,3 +1,3 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
ls "$@" | mc
|
9 ls "$@" | mc
|
||||||
|
|
12
bin/man
12
bin/man
|
@ -60,11 +60,11 @@ if(~ $#sec 0) {
|
||||||
}
|
}
|
||||||
ix=$S/man$sec/INDEX
|
ix=$S/man$sec/INDEX
|
||||||
if(~ $#* 1) pat='^'^$1^' '
|
if(~ $#* 1) pat='^'^$1^' '
|
||||||
if not pat='^('^`{echo $* | 9sed 's/ /|/g'}^') '
|
if not pat='^('^`{echo $* | 9 sed 's/ /|/g'}^') '
|
||||||
fils=()
|
fils=()
|
||||||
for(i in $S/man$sec){
|
for(i in $S/man$sec){
|
||||||
if(/bin/test -f $i/INDEX){
|
if(test -f $i/INDEX){
|
||||||
try=`{grep $pat $i/INDEX | 9sed 's/^[^ ]* //'}
|
try=`{grep $pat $i/INDEX | 9 sed 's/^[^ ]* //'}
|
||||||
if(! ~ $#try 0)
|
if(! ~ $#try 0)
|
||||||
fils=($fils $i/$try)
|
fils=($fils $i/$try)
|
||||||
}
|
}
|
||||||
|
@ -75,7 +75,7 @@ if(~ $#fils 0) {
|
||||||
for(i) {
|
for(i) {
|
||||||
for(n in $sec) {
|
for(n in $sec) {
|
||||||
try=$S/man$n/$i.$n*
|
try=$S/man$n/$i.$n*
|
||||||
if (/bin/test -f $try)
|
if (test -f $try)
|
||||||
fils=($fils $try)
|
fils=($fils $try)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -85,7 +85,7 @@ if(~ $#fils 0) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for(i in $fils) {
|
for(i in $fils) {
|
||||||
if(! /bin/test -f $i)
|
if(! test -f $i)
|
||||||
echo need $i >[1=2]
|
echo need $i >[1=2]
|
||||||
if not {
|
if not {
|
||||||
switch($cmd) {
|
switch($cmd) {
|
||||||
|
@ -99,7 +99,7 @@ for(i in $fils) {
|
||||||
roff t $i |tr2post |psfonts |page
|
roff t $i |tr2post |psfonts |page
|
||||||
|
|
||||||
case n
|
case n
|
||||||
roff n $i | 9sed '
|
roff n $i | 9 sed '
|
||||||
${
|
${
|
||||||
/^$/p
|
/^$/p
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,3 +5,9 @@
|
||||||
wget -O- http://pdos.lcs.mit.edu/~rsc/software/plan9/pgw.tar.bz2|
|
wget -O- http://pdos.lcs.mit.edu/~rsc/software/plan9/pgw.tar.bz2|
|
||||||
bunzip2|
|
bunzip2|
|
||||||
tar xf -
|
tar xf -
|
||||||
|
|
||||||
|
# This is the Project Gutenberg original Roget's thesaurus
|
||||||
|
|
||||||
|
wget -O- http://pdos.lcs.mit.edu/~rsc/software/plan9/roget.tar.bz2|
|
||||||
|
bunzip2|
|
||||||
|
tar xf -
|
||||||
|
|
153
dist/checkman.awk
vendored
153
dist/checkman.awk
vendored
|
@ -41,8 +41,10 @@ BEGIN {
|
||||||
Omitman["nm(1)"] = 1
|
Omitman["nm(1)"] = 1
|
||||||
Omitman["prof(1)"] = 1
|
Omitman["prof(1)"] = 1
|
||||||
Omitman["pwd(1)"] = 1
|
Omitman["pwd(1)"] = 1
|
||||||
|
Omitman["qiv(1)"] = 1
|
||||||
Omitman["sh(1)"] = 1
|
Omitman["sh(1)"] = 1
|
||||||
Omitman["ssh(1)"] = 1
|
Omitman["ssh(1)"] = 1
|
||||||
|
Omitman["stty(1)"] = 1
|
||||||
Omitman["tar(1)"] = 1
|
Omitman["tar(1)"] = 1
|
||||||
Omitman["tex(1)"] = 1
|
Omitman["tex(1)"] = 1
|
||||||
Omitman["unutf(1)"] = 1
|
Omitman["unutf(1)"] = 1
|
||||||
|
@ -50,6 +52,7 @@ BEGIN {
|
||||||
|
|
||||||
Omitman["access(2)"] = 1
|
Omitman["access(2)"] = 1
|
||||||
Omitman["brk(2)"] = 1
|
Omitman["brk(2)"] = 1
|
||||||
|
Omitman["chdir(2)"] = 1
|
||||||
Omitman["close(2)"] = 1
|
Omitman["close(2)"] = 1
|
||||||
Omitman["connect(2)"] = 1
|
Omitman["connect(2)"] = 1
|
||||||
Omitman["fork(2)"] = 1
|
Omitman["fork(2)"] = 1
|
||||||
|
@ -90,10 +93,10 @@ BEGIN {
|
||||||
# don't need documentation for these in bin
|
# don't need documentation for these in bin
|
||||||
Omitted[".cvsignore"] = 1
|
Omitted[".cvsignore"] = 1
|
||||||
Omitted["Getdir"] = 1
|
Omitted["Getdir"] = 1
|
||||||
Omitted["9grep"] = 1 # is in grep(1)
|
Omitted["tcolors"] = 1
|
||||||
Omitted["9sed"] = 1 # is in sed(1)
|
Omitted["tref"] = 1
|
||||||
Omitted["9lex"] = 1 # is in lex(1)
|
Omitted["unutf"] = 1
|
||||||
Omitted["9yacc"] = 1 # is in yacc(1)
|
Omitted["vtdump"] = 1
|
||||||
|
|
||||||
# not for users
|
# not for users
|
||||||
Omittedlib["creadimage"] = 1
|
Omittedlib["creadimage"] = 1
|
||||||
|
@ -198,56 +201,66 @@ BEGIN {
|
||||||
Renamelib["regsub9"] = "regsub"
|
Renamelib["regsub9"] = "regsub"
|
||||||
Renamelib["rregexec9"] = "rregexec"
|
Renamelib["rregexec9"] = "rregexec"
|
||||||
Renamelib["rregsub9"] = "rregsub"
|
Renamelib["rregsub9"] = "rregsub"
|
||||||
|
|
||||||
|
lastline = "XXX";
|
||||||
|
lastfile = FILENAME;
|
||||||
}
|
}
|
||||||
|
|
||||||
FNR==1 {
|
FNR==1 {
|
||||||
n = length(FILENAME)
|
if(lastline == ""){
|
||||||
nam = FILENAME
|
# screws up troff headers
|
||||||
if(nam ~ /\.html$/)
|
print lastfile ":$ is a blank line"
|
||||||
next
|
}
|
||||||
if(nam !~ /^man\/man(.*)\/(.*)\.(.*)$/){
|
|
||||||
print "nam", nam, "not of form [0-9][0-9]?/*"
|
n = length(FILENAME)
|
||||||
next
|
nam = FILENAME
|
||||||
}
|
if(nam ~ /\.html$/)
|
||||||
nam = substr(nam, 8)
|
next
|
||||||
gsub("[/.]", " ", nam);
|
if(nam !~ /^man\/man(.*)\/(.*)\.(.*)$/){
|
||||||
n = split(nam, a)
|
print "nam", nam, "not of form [0-9][0-9]?/*"
|
||||||
sec = a[1]
|
next
|
||||||
name = a[2]
|
}
|
||||||
section = a[3]
|
nam = substr(nam, 8)
|
||||||
if($1 != ".TH" || NF != 3)
|
gsub("[/.]", " ", nam);
|
||||||
print "First line of", FILENAME, "not a proper .TH"
|
n = split(nam, a)
|
||||||
else if(($2 != toupper(name) || substr($3, 1, length(sec)) != sec || $3 != toupper(section)) \
|
sec = a[1]
|
||||||
&& ($2!="INTRO" || name!="0intro") \
|
name = a[2]
|
||||||
&& (name !~ /^9/ || $2!=toupper(substr(name, 2)))){
|
section = a[3]
|
||||||
print ".TH of", FILENAME, "doesn't match filename"
|
if($1 != ".TH" || NF != 3)
|
||||||
}else
|
print "First line of", FILENAME, "not a proper .TH"
|
||||||
Pages[tolower($2) "(" tolower($3) ")"] = 1
|
else if(($2 != toupper(name) || substr($3, 1, length(sec)) != sec || $3 != toupper(section)) \
|
||||||
Sh = 0
|
&& ($2!="INTRO" || name!="0intro") \
|
||||||
|
&& (name !~ /^9/ || $2!=toupper(substr(name, 2)))){
|
||||||
|
print ".TH of", FILENAME, "doesn't match filename"
|
||||||
|
}else
|
||||||
|
Pages[tolower($2) "(" tolower($3) ")"] = 1
|
||||||
|
Sh = 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
{ lastline=$0; lastfile=FILENAME; }
|
||||||
|
|
||||||
$1 == ".SH" {
|
$1 == ".SH" {
|
||||||
if(inex)
|
if(inex)
|
||||||
print "Unterminated .EX in", FILENAME, ":", $0
|
print "Unterminated .EX in", FILENAME, ":", $0
|
||||||
inex = 0;
|
inex = 0;
|
||||||
if (substr($2, 1, 1) == "\"") {
|
if (substr($2, 1, 1) == "\"") {
|
||||||
if (NF == 2) {
|
if (NF == 2) {
|
||||||
print "Unneeded quote in", FILENAME, ":", $0
|
print "Unneeded quote in", FILENAME, ":", $0
|
||||||
$2 = substr($2, 2, length($2)-2)
|
$2 = substr($2, 2, length($2)-2)
|
||||||
} else if (NF == 3) {
|
} else if (NF == 3) {
|
||||||
$2 = substr($2, 2) substr($3, 1, length($3)-1)
|
$2 = substr($2, 2) substr($3, 1, length($3)-1)
|
||||||
NF = 2
|
NF = 2
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if(Sh == 0 && $2 != "NAME")
|
}
|
||||||
print FILENAME, "has no .SH NAME"
|
if(Sh == 0 && $2 != "NAME")
|
||||||
w = Weight[$2]
|
print FILENAME, "has no .SH NAME"
|
||||||
if (w) {
|
w = Weight[$2]
|
||||||
if (w < Sh)
|
if (w) {
|
||||||
print "Heading", $2, "out of order in", FILENAME
|
if (w < Sh)
|
||||||
Sh += w
|
print "Heading", $2, "out of order in", FILENAME
|
||||||
}
|
Sh += w
|
||||||
sh = $2
|
}
|
||||||
|
sh = $2
|
||||||
}
|
}
|
||||||
|
|
||||||
$1 == ".EX" {
|
$1 == ".EX" {
|
||||||
|
@ -257,43 +270,53 @@ $1 == ".EX" {
|
||||||
}
|
}
|
||||||
|
|
||||||
$1 == ".EE" {
|
$1 == ".EE" {
|
||||||
if(!inex)
|
if(!inex)
|
||||||
print "Bad .EE in", FILENAME ":" FNR ":", $0
|
print "Bad .EE in", FILENAME ":" FNR ":", $0
|
||||||
inex = 0;
|
inex = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
$1 == ".TF" {
|
$1 == ".TF" {
|
||||||
smallspace = 1
|
smallspace = 1
|
||||||
}
|
}
|
||||||
|
|
||||||
$1 == ".PD" || $1 == ".SH" || $1 == ".SS" || $1 == ".TH" {
|
$1 == ".PD" || $1 == ".SH" || $1 == ".SS" || $1 == ".TH" {
|
||||||
smallspace = 0
|
smallspace = 0
|
||||||
}
|
}
|
||||||
|
|
||||||
$1 == ".RE" {
|
$1 == ".RE" {
|
||||||
lastre = 1
|
lastre = 1
|
||||||
}
|
}
|
||||||
|
|
||||||
$1 == ".PP" {
|
$1 == ".PP" {
|
||||||
if(smallspace && !lastre)
|
if(smallspace && !lastre)
|
||||||
print "Possible missing .PD at " FILENAME ":" FNR
|
print "Possible missing .PD at " FILENAME ":" FNR
|
||||||
smallspace = 0
|
smallspace = 0
|
||||||
}
|
}
|
||||||
|
|
||||||
$1 != ".RE" {
|
$1 != ".RE" {
|
||||||
lastre = 0
|
lastre = 0
|
||||||
|
}
|
||||||
|
|
||||||
|
sh == "BUGS" && $1 == ".br" {
|
||||||
|
print FILENAME ":" FNR ": .br in BUGS"
|
||||||
|
}
|
||||||
|
|
||||||
|
sh == "SOURCE" && $1 ~ /^\\\*9\// {
|
||||||
|
s = ENVIRON["PLAN9"] substr($1, 4)
|
||||||
|
Sources[s] = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
sh == "SOURCE" && $2 ~ /^\\\*9\// {
|
||||||
|
s = ENVIRON["PLAN9"] substr($2, 4)
|
||||||
|
Sources[s] = 1
|
||||||
}
|
}
|
||||||
|
|
||||||
sh == "SOURCE" && $1 ~ /^\// {
|
sh == "SOURCE" && $1 ~ /^\// {
|
||||||
s = $1
|
Sources[$1] = 1
|
||||||
sub("\\\*9", ENVIRON["PLAN9"], s)
|
|
||||||
Sources[s] = 1
|
|
||||||
}
|
}
|
||||||
|
|
||||||
sh == "SOURCE" && $2 ~ /^\// {
|
sh == "SOURCE" && $2 ~ /^\// {
|
||||||
s = $2
|
Sources[$2] = 1
|
||||||
sub("\\\*9", ENVIRON["PLAN9"], s)
|
|
||||||
Sources[s] = 1
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$0 ~ /^\.[A-Z].*\([1-9]\)/ {
|
$0 ~ /^\.[A-Z].*\([1-9]\)/ {
|
||||||
|
@ -319,6 +342,10 @@ $0 ~ /^\.[A-Z].*\([1-9]\)/ {
|
||||||
}
|
}
|
||||||
|
|
||||||
END {
|
END {
|
||||||
|
if(lastline == ""){
|
||||||
|
print lastfile ":$ is a blank line"
|
||||||
|
}
|
||||||
|
|
||||||
print "Checking Source References"
|
print "Checking Source References"
|
||||||
cmd = "xargs -n 100 ls -d 2>&1 >/dev/null | sed 's/^ls: / /; s/: .*//'"
|
cmd = "xargs -n 100 ls -d 2>&1 >/dev/null | sed 's/^ls: / /; s/: .*//'"
|
||||||
for (i in Sources) {
|
for (i in Sources) {
|
||||||
|
|
|
@ -358,10 +358,8 @@ extern double atof(char*); <stdlib.h>
|
||||||
extern int p9atoi(char*);
|
extern int p9atoi(char*);
|
||||||
extern long p9atol(char*);
|
extern long p9atol(char*);
|
||||||
extern vlong p9atoll(char*);
|
extern vlong p9atoll(char*);
|
||||||
extern double charstod(int(*)(void*), void*);
|
extern double fmtcharstod(int(*)(void*), void*);
|
||||||
extern char* cleanname(char*);
|
extern char* cleanname(char*);
|
||||||
extern int p9decrypt(void*, void*, int);
|
|
||||||
extern int p9encrypt(void*, void*, int);
|
|
||||||
extern int dec64(uchar*, int, char*, int);
|
extern int dec64(uchar*, int, char*, int);
|
||||||
extern int enc64(char*, int, uchar*, int);
|
extern int enc64(char*, int, uchar*, int);
|
||||||
extern int dec32(uchar*, int, char*, int);
|
extern int dec32(uchar*, int, char*, int);
|
||||||
|
@ -386,7 +384,6 @@ extern void p9longjmp(p9jmp_buf, int);
|
||||||
extern char* mktemp(char*);
|
extern char* mktemp(char*);
|
||||||
extern int opentemp(char*);
|
extern int opentemp(char*);
|
||||||
/* extern double modf(double, double*); <math.h> */
|
/* extern double modf(double, double*); <math.h> */
|
||||||
extern int netcrypt(void*, void*);
|
|
||||||
extern void p9notejmp(void*, p9jmp_buf, int);
|
extern void p9notejmp(void*, p9jmp_buf, int);
|
||||||
extern void perror(const char*);
|
extern void perror(const char*);
|
||||||
extern int postnote(int, int, char *);
|
extern int postnote(int, int, char *);
|
||||||
|
@ -397,14 +394,12 @@ extern double p9pow10(int);
|
||||||
#define p9setjmp(b) sigsetjmp((void*)(b), 1)
|
#define p9setjmp(b) sigsetjmp((void*)(b), 1)
|
||||||
/*
|
/*
|
||||||
* <stdlib.h>
|
* <stdlib.h>
|
||||||
extern double strtod(char*, char**);
|
|
||||||
extern long strtol(char*, char**, int);
|
extern long strtol(char*, char**, int);
|
||||||
extern ulong strtoul(char*, char**, int);
|
extern ulong strtoul(char*, char**, int);
|
||||||
extern vlong strtoll(char*, char**, int);
|
extern vlong strtoll(char*, char**, int);
|
||||||
extern uvlong strtoull(char*, char**, int);
|
extern uvlong strtoull(char*, char**, int);
|
||||||
*/
|
*/
|
||||||
extern void sysfatal(char*, ...);
|
extern void sysfatal(char*, ...);
|
||||||
extern void p9syslog(int, char*, char*, ...);
|
|
||||||
extern long p9time(long*);
|
extern long p9time(long*);
|
||||||
/* extern int tolower(int); <ctype.h> */
|
/* extern int tolower(int); <ctype.h> */
|
||||||
/* extern int toupper(int); <ctype.h> */
|
/* extern int toupper(int); <ctype.h> */
|
||||||
|
@ -426,9 +421,10 @@ extern void needstack(int);
|
||||||
#define putenv p9putenv
|
#define putenv p9putenv
|
||||||
#define notejmp p9notejmp
|
#define notejmp p9notejmp
|
||||||
#define jmp_buf p9jmp_buf
|
#define jmp_buf p9jmp_buf
|
||||||
#define syslog p9syslog
|
|
||||||
#define time p9time
|
#define time p9time
|
||||||
#define pow10 p9pow10
|
#define pow10 p9pow10
|
||||||
|
#define strtod fmtstrtod
|
||||||
|
#define charstod fmtcharstod
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -527,7 +523,6 @@ extern int p9announce(char*, char*);
|
||||||
extern int p9dial(char*, char*, char*, int*);
|
extern int p9dial(char*, char*, char*, int*);
|
||||||
extern int p9dialparse(char *ds, char **net, char **unixa, u32int *ip, int *port);
|
extern int p9dialparse(char *ds, char **net, char **unixa, u32int *ip, int *port);
|
||||||
extern void p9setnetmtpt(char*, int, char*);
|
extern void p9setnetmtpt(char*, int, char*);
|
||||||
extern int p9hangup(int);
|
|
||||||
extern int p9listen(char*, char*);
|
extern int p9listen(char*, char*);
|
||||||
extern char* p9netmkaddr(char*, char*, char*);
|
extern char* p9netmkaddr(char*, char*, char*);
|
||||||
extern int p9reject(int, char*, char*);
|
extern int p9reject(int, char*, char*);
|
||||||
|
@ -537,7 +532,6 @@ extern int p9reject(int, char*, char*);
|
||||||
#define announce p9announce
|
#define announce p9announce
|
||||||
#define dial p9dial
|
#define dial p9dial
|
||||||
#define setnetmtpt p9setnetmtpt
|
#define setnetmtpt p9setnetmtpt
|
||||||
#define hangup p9hangup
|
|
||||||
#define listen p9listen
|
#define listen p9listen
|
||||||
#define netmkaddr p9netmkaddr
|
#define netmkaddr p9netmkaddr
|
||||||
#define reject p9reject
|
#define reject p9reject
|
||||||
|
@ -614,6 +608,7 @@ extern void freenetconninfo(NetConnInfo*);
|
||||||
#define QTEXCL 0x20 /* type bit for exclusive use files */
|
#define QTEXCL 0x20 /* type bit for exclusive use files */
|
||||||
#define QTMOUNT 0x10 /* type bit for mounted channel */
|
#define QTMOUNT 0x10 /* type bit for mounted channel */
|
||||||
#define QTAUTH 0x08 /* type bit for authentication file */
|
#define QTAUTH 0x08 /* type bit for authentication file */
|
||||||
|
#define QTLINK 0x04 /* symbolic link */
|
||||||
#define QTFILE 0x00 /* plain file */
|
#define QTFILE 0x00 /* plain file */
|
||||||
|
|
||||||
/* bits in Dir.mode */
|
/* bits in Dir.mode */
|
||||||
|
@ -622,6 +617,7 @@ extern void freenetconninfo(NetConnInfo*);
|
||||||
#define DMEXCL 0x20000000 /* mode bit for exclusive use files */
|
#define DMEXCL 0x20000000 /* mode bit for exclusive use files */
|
||||||
#define DMMOUNT 0x10000000 /* mode bit for mounted channel */
|
#define DMMOUNT 0x10000000 /* mode bit for mounted channel */
|
||||||
#define DMAUTH 0x08000000 /* mode bit for authentication file */
|
#define DMAUTH 0x08000000 /* mode bit for authentication file */
|
||||||
|
#define DMLINK 0x04000000 /* mode bit for symbolic link */
|
||||||
#define DMREAD 0x4 /* mode bit for read permission */
|
#define DMREAD 0x4 /* mode bit for read permission */
|
||||||
#define DMWRITE 0x2 /* mode bit for write permission */
|
#define DMWRITE 0x2 /* mode bit for write permission */
|
||||||
#define DMEXEC 0x1 /* mode bit for execute permission */
|
#define DMEXEC 0x1 /* mode bit for execute permission */
|
||||||
|
|
|
@ -34,11 +34,6 @@ void threadnotify(int(*f)(void*,char*), int);
|
||||||
void threaddaemonize(void);
|
void threaddaemonize(void);
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* clumsy linker hack
|
|
||||||
*/
|
|
||||||
void threadlinklibrary(void);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* per proc and thread data
|
* per proc and thread data
|
||||||
*/
|
*/
|
||||||
|
|
38
lib/fortunes
38
lib/fortunes
|
@ -4005,3 +4005,41 @@ object-oriented design is the roman numerals of computing. - rob
|
||||||
Java is the f*cking COBOL of the 90s, and future generations of geeks are going to fly back from Mars to piss on our graves for inflicting it on them. - rasputnik@hellooperator.net
|
Java is the f*cking COBOL of the 90s, and future generations of geeks are going to fly back from Mars to piss on our graves for inflicting it on them. - rasputnik@hellooperator.net
|
||||||
httpd_server* httpd_initialize(char* hostname, httpd_sockaddr* sa4P, httpd_sockaddr* sa6P, unsigned short port, char* cgi_pattern, int cgi_limit, char* charset, char* p3p, int max_age, char* cwd, int no_log, FILE* logfp, int no_symlink_check, int vhost, int global_passwd, char* url_pattern, char* local_pattern, int no_empty_referers )
|
httpd_server* httpd_initialize(char* hostname, httpd_sockaddr* sa4P, httpd_sockaddr* sa6P, unsigned short port, char* cgi_pattern, int cgi_limit, char* charset, char* p3p, int max_age, char* cwd, int no_log, FILE* logfp, int no_symlink_check, int vhost, int global_passwd, char* url_pattern, char* local_pattern, int no_empty_referers )
|
||||||
it's easier to post to 9fans than to think. - boyd
|
it's easier to post to 9fans than to think. - boyd
|
||||||
|
We assume familiarity with Rubik's Cube, the delights of which cannot be presented adequately in a textual description! - an algorithms textbook
|
||||||
|
If you are idle for more than 1000 hours, the system will log you out. Please save reviews frequently.
|
||||||
|
We lead by following standards. - sape
|
||||||
|
-bash: /home/r/.bash_logout: Permission denied
|
||||||
|
I am he as you are he as you are me and we are all together. - forsyth after Lennon on authentication
|
||||||
|
Network services at the Murray Hill, NJ, location (100001) will be unavailable due to UPS (Uninterrupted Power Supply) maintenance from 8:00 p.m. EDT on Saturday, June 26, to 4:00 a.m. EDT on Sunday, June 27.
|
||||||
|
Don't show this message again.
|
||||||
|
Service error -27.
|
||||||
|
Beauty is more important in computing than anywhere else in technology because software is so complicated. Beauty is the ultimate defence against complexity. - David Gelernter
|
||||||
|
Zatoichi: in theaters December 31, 1969.
|
||||||
|
recordio.h:992: type `__true_type' is not a base type for type `__false_type'
|
||||||
|
Telephone number has to be 10 numbers. For example, enter '8002158482'. Please contact us at 1-800-215-8482 for any assitance.
|
||||||
|
No one but a theorist believes his theory; everyone puts faith in a laboratory result but the experimenter himself. - Einstein
|
||||||
|
(Okay, Plan 9 isn't Linux, but it's a close relative).
|
||||||
|
Tux is not cute. Tux has the expression of someone right after knitting needles have been used to scramble the front side of their cerebral cortex. Tux scares me. - Ron Minnich
|
||||||
|
Setting up your SIP account will allow you to call both other SIP users as well as pstn phones. - Wim Sweldens
|
||||||
|
ntifs.c(202) : error C2064: term does not evaluate to a function taking 25732904 arguments
|
||||||
|
There's no "I" in team, but there's both a "me" and an "I" in media.
|
||||||
|
Oh, I'm sorry, sir, go ahead. I didn't realize you were root.
|
||||||
|
C++ is to C as lung cancer is to lung.
|
||||||
|
Warning: bad syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.html
|
||||||
|
Those days [of "one tool doing one job well"] are dead and gone and the eulogy was delivered by Perl. - rob
|
||||||
|
We have found that the Real Player plugin, which is used by the BBC Radio Player, may or may not function fully depending on a combination of what flavour of unix/linux you are using, which browser you are using, which version of browser you are using, and which version of GCC built the plugin during installation.
|
||||||
|
Sheer [program] size is often an illusion, reflecting only a need for improvement. - Kernighan and Plauger
|
||||||
|
bootsplash: silent mode.
|
||||||
|
Trusting every aspect of our lives to a giant computer was the smartest thing we ever did! - Homer
|
||||||
|
Courts are not equipped to execute the law. - John Ashcroft
|
||||||
|
The Ken Thompson school of thought on expert systems: there's table lookup, fraud, and grand fraud. - Andrew Hume, quoted in ;login:
|
||||||
|
I am Davros, my Daleks are my servers and plan9 is my control board mwahahaha - Matt
|
||||||
|
What's grey? A melted penguin.
|
||||||
|
Why don't cannibals eat clowns? Because they taste funny.
|
||||||
|
Two goldfish are in a tank. One turns to the other and says, "Do you know how to drive one of these things?"
|
||||||
|
What do software pirates say? CD-Arrrrrrr!
|
||||||
|
Select only drivers expected to compile cleanly. - Linux kernel configuration option
|
||||||
|
usage: tar [-][{ruxXtcC}acdefhlm{o|S}pqvwLUBDRV{O|K}fb] [dir] [tapefile] [blocksize] file ...
|
||||||
|
/opt/exp/lib/firefox/bin/run-mozilla.sh: line 451: 16207 Segmentation fault "$prog" ${1+"$@"}
|
||||||
|
LoadPlugin: failed to initialize shared library /opt/net/exp/lib/mozilla/bin/plugins/j2re1.4.2/plugin/i386/ns610-gcc32/libjavaplugin_oji.so [/opt/net/exp/lib/mozilla/bin/plugins/j2re1.4.2/plugin/i386/ns610-gcc32/libjavaplugin_oji.so: undefined symbol: _ZdlPv]
|
||||||
|
This 43 minute video FEATURES the 22 year-old, 6'6" (6'11" in heels) 300+ pound, size 14 shoe size Blythe
|
||||||
|
|
|
@ -5,5 +5,6 @@ bin/Getdir
|
||||||
bin/adict
|
bin/adict
|
||||||
bin/doctype
|
bin/doctype
|
||||||
bin/lookman
|
bin/lookman
|
||||||
|
bin/sig
|
||||||
bin/spell
|
bin/spell
|
||||||
bin/src
|
bin/src
|
||||||
|
|
10
man/fonts
Executable file
10
man/fonts
Executable file
|
@ -0,0 +1,10 @@
|
||||||
|
# mkfile rules to get fonts in Lucida Sans.
|
||||||
|
# if you want to use Times, change these next lines to
|
||||||
|
# MAN=mantimes
|
||||||
|
# FONTS=''
|
||||||
|
MAN=man
|
||||||
|
FONTS='.fp 1 R LucidaSans
|
||||||
|
.fp 2 I LucidaSansI
|
||||||
|
.fp 3 B LucidaSansB
|
||||||
|
.fp 5 L LucidaCW
|
||||||
|
'
|
300
man/man1/0intro.1
Normal file
300
man/man1/0intro.1
Normal file
|
@ -0,0 +1,300 @@
|
||||||
|
.TH INTRO 1
|
||||||
|
.SH NAME
|
||||||
|
intro \- introduction to Plan 9 from User Space
|
||||||
|
.SH DESCRIPTION
|
||||||
|
Plan 9 is a distributed computing environment built
|
||||||
|
at Bell Labs starting in the late 1980s.
|
||||||
|
The system can be obtained from Bell Labs at
|
||||||
|
.B http://plan9.bell-labs.com/plan9
|
||||||
|
and runs on PCs and a variety of other platforms.
|
||||||
|
Plan 9 became a convenient platform for experimenting
|
||||||
|
with new ideas, applications, and services.
|
||||||
|
.PP
|
||||||
|
Plan 9 from User Space provides many of the ideas,
|
||||||
|
applications, and services from Plan 9
|
||||||
|
on Unix-like systems.
|
||||||
|
It runs on
|
||||||
|
FreeBSD (x86),
|
||||||
|
Linux (x86 and PowerPC),
|
||||||
|
Mac OS X (PowerPC),
|
||||||
|
OpenBSD (x86),
|
||||||
|
and
|
||||||
|
SunOS (Sparc).
|
||||||
|
.SS Commands
|
||||||
|
Plan 9 from User Space expects its own directory tree,
|
||||||
|
conventionally
|
||||||
|
.BR /usr/local/plan9 .
|
||||||
|
When programs need to access files in the tree,
|
||||||
|
they expect the
|
||||||
|
.B $PLAN9
|
||||||
|
environment variable
|
||||||
|
to contain the name of the root of the tree.
|
||||||
|
See
|
||||||
|
.IR install (8)
|
||||||
|
for details about installation.
|
||||||
|
.PP
|
||||||
|
Many of the familiar Unix commands,
|
||||||
|
for example
|
||||||
|
.IR cat (1),
|
||||||
|
.IR ls (1),
|
||||||
|
and
|
||||||
|
.IR wc (1),
|
||||||
|
are present, but in their Plan 9 forms:
|
||||||
|
.I cat
|
||||||
|
takes no arguments,
|
||||||
|
.I ls
|
||||||
|
does not columnate its output when printing to a terminal,
|
||||||
|
and
|
||||||
|
.I wc
|
||||||
|
counts UTF characters.
|
||||||
|
In some cases, the differences are quite noticeable:
|
||||||
|
.IR grep (1)
|
||||||
|
and
|
||||||
|
.IR sed (1)
|
||||||
|
expect Plan 9 regular expressions
|
||||||
|
(see
|
||||||
|
.IR regexp (7)),
|
||||||
|
which are closest to what Unix calls extended regular expressions.
|
||||||
|
Because of these differences, it is not recommended to put
|
||||||
|
.B $PLAN9/bin
|
||||||
|
before the usual system
|
||||||
|
.B bin
|
||||||
|
directories in your search path.
|
||||||
|
Instead, put it at the end of your path and use the
|
||||||
|
.IR 9 (1)
|
||||||
|
script when you want to invoke the Plan 9 version of a
|
||||||
|
traditional Unix command.
|
||||||
|
.PP
|
||||||
|
Occasionally the Plan 9 programs have been
|
||||||
|
changed to adapt to Unix.
|
||||||
|
.IR Mk (1)
|
||||||
|
now allows mkfiles to choose their own shell,
|
||||||
|
and
|
||||||
|
.IR rc (1)
|
||||||
|
has a
|
||||||
|
.I ulimit
|
||||||
|
builtin and manages
|
||||||
|
.BR $PATH .
|
||||||
|
.PP
|
||||||
|
Many of the graphical programs from Plan 9 are present,
|
||||||
|
including
|
||||||
|
.IR sam (1)
|
||||||
|
and
|
||||||
|
.IR acme (1).
|
||||||
|
An X11 window manager
|
||||||
|
.IR rio (1)
|
||||||
|
mimics Plan 9's window system, with command windows
|
||||||
|
implemented by the external program
|
||||||
|
.IR 9term (1).
|
||||||
|
Following the style of X Windows, these programs run in new
|
||||||
|
windows rather than the one in which they are invoked.
|
||||||
|
They all take a
|
||||||
|
.B -W
|
||||||
|
option to specify the size and placement of the new window.
|
||||||
|
The argument is one of
|
||||||
|
\fIwidth\^\^\fLx\fI\^\^height\fR,
|
||||||
|
\fIwidth\^\^\fLx\fI\^\^height\^\^\fL@\fI\^\^xmin\fL,\fIxmax\fR,
|
||||||
|
\fL'\fIxmin ymin xmax ymax\fL'\fR,
|
||||||
|
\fRor
|
||||||
|
\fIxmin\fL,\fIymin\fL,\fIxmax\fL,\fIymax\fR.
|
||||||
|
.PP
|
||||||
|
The
|
||||||
|
.IR plumber (4)
|
||||||
|
helps to connect the various Plan 9 programs together,
|
||||||
|
and fittings like
|
||||||
|
.IR web (1)
|
||||||
|
connect it to external programs such as web browsers;
|
||||||
|
one can click on a URL in
|
||||||
|
.I acme
|
||||||
|
and see the page load in
|
||||||
|
.IR Firefox .
|
||||||
|
.SS User-level file servers
|
||||||
|
In Plan 9, user-level file servers present file trees via the Plan 9 file protocol, 9P.
|
||||||
|
Processes can mount arbitrary file servers and customize their own name spaces.
|
||||||
|
These facilities are used to connect programs. Clients interact
|
||||||
|
with file servers by reading and writing files.
|
||||||
|
.PP
|
||||||
|
This cannot be done directly on Unix.
|
||||||
|
Instead the servers listen for 9P connections on Unix domain sockets;
|
||||||
|
clients connect to these sockets and speak 9P directly using the
|
||||||
|
.IR 9pclient (3)
|
||||||
|
library.
|
||||||
|
.IR Intro (4)
|
||||||
|
tells more of the story.
|
||||||
|
The effect is not as clean as on Plan 9, but it gets the job done
|
||||||
|
and still provides a uniform and easy-to-understand mechanism.
|
||||||
|
The
|
||||||
|
.IR 9p (1)
|
||||||
|
client can be used in shell scripts or by hand to carry out
|
||||||
|
simple interactions with servers.
|
||||||
|
.SS Programming
|
||||||
|
The shell scripts
|
||||||
|
.I 9c
|
||||||
|
and
|
||||||
|
.I 9l
|
||||||
|
(see
|
||||||
|
.IR 9c (1))
|
||||||
|
provide a simple interface to the underlying system compiler and linker,
|
||||||
|
similar to the
|
||||||
|
.I 2c
|
||||||
|
and
|
||||||
|
.I 2l
|
||||||
|
families on Plan 9.
|
||||||
|
.I 9c
|
||||||
|
compiles source files, and
|
||||||
|
.I 9l
|
||||||
|
links object files into executables.
|
||||||
|
When using Plan 9 libraries,
|
||||||
|
.I 9l
|
||||||
|
infers the correct set of libraries from the object files,
|
||||||
|
so that no
|
||||||
|
.B -l
|
||||||
|
options are needed.
|
||||||
|
.PP
|
||||||
|
The only way to write multithreaded programs is to use the
|
||||||
|
.IR thread (3)
|
||||||
|
library.
|
||||||
|
.IR Rfork (3)
|
||||||
|
exists but is not as capable as on Plan 9.
|
||||||
|
There are many unfortunate by necessary preprocessor
|
||||||
|
diversions to make Plan 9 and Unix libraries coexist.
|
||||||
|
See
|
||||||
|
.IR intro (3)
|
||||||
|
for details.
|
||||||
|
.PP
|
||||||
|
The debuggers
|
||||||
|
.IR acid (1)
|
||||||
|
and
|
||||||
|
.IR db (1)
|
||||||
|
and the debugging library
|
||||||
|
.IR mach (3)
|
||||||
|
are works in progress.
|
||||||
|
They are platform-independent, so that x86 Linux core dumps
|
||||||
|
can be inspected on PowerPC Mac OS X machines,
|
||||||
|
but they are also fairly incomplete.
|
||||||
|
The x86 target is the most mature; initial PowerPC support
|
||||||
|
exists; and other targets are unimplemented.
|
||||||
|
The debuggers can only inspect, not manipulate, target processes.
|
||||||
|
Support for operating system threads and for 64-bit architectures
|
||||||
|
needs to be rethought.
|
||||||
|
On x86 Linux systems,
|
||||||
|
.I acid
|
||||||
|
and
|
||||||
|
.I db
|
||||||
|
can be relied upon to produce reasonable stack traces
|
||||||
|
(often in cases when GNU
|
||||||
|
.I gdb
|
||||||
|
cannot)
|
||||||
|
and dump data structures,
|
||||||
|
but that it is the extent to which they have been developed and exercised.
|
||||||
|
.SS External databases
|
||||||
|
Some programs rely on large databases that would be
|
||||||
|
cumbersome to include in every release.
|
||||||
|
Scripts are provided that download these databases separately.
|
||||||
|
These databases can be downloaded separately.
|
||||||
|
See
|
||||||
|
.B $PLAN9/dict/README
|
||||||
|
and
|
||||||
|
.BR $PLAN9/sky/README .
|
||||||
|
.SS Porting programs
|
||||||
|
The vast majority of the familiar Plan 9 programs
|
||||||
|
have been ported, including the Unicode-aware
|
||||||
|
.IR troff (1).
|
||||||
|
.PP
|
||||||
|
Of the more recent additions to Plan 9,
|
||||||
|
the
|
||||||
|
.IR secstore (1)
|
||||||
|
client has been ported, though
|
||||||
|
.I secstored
|
||||||
|
has not.
|
||||||
|
.IR Vac (1)
|
||||||
|
has been ported, though
|
||||||
|
.I vacfs
|
||||||
|
has not.
|
||||||
|
.IR Factotum
|
||||||
|
and
|
||||||
|
.IR venti
|
||||||
|
are in progress.
|
||||||
|
.PP
|
||||||
|
A backup system providing a dump file system built atop Venti
|
||||||
|
is also in progress.
|
||||||
|
.SS Porting to new systems
|
||||||
|
Porting the tree to new operating systems or architectures
|
||||||
|
should be straightforward, as system-specific code has been
|
||||||
|
kept to a minimum.
|
||||||
|
The largest pieces of system-specific code are
|
||||||
|
.BR <u.h> ,
|
||||||
|
which must include the right system files and
|
||||||
|
set up the right integer type definitions,
|
||||||
|
and
|
||||||
|
.IR libthread ,
|
||||||
|
which must implement spin locks, operating system thread
|
||||||
|
creation, and context switching routines.
|
||||||
|
Portable implementations of these using
|
||||||
|
.B <pthread.h>
|
||||||
|
and
|
||||||
|
.B <ucontext.h>
|
||||||
|
already exist. If your system supports them, you may not
|
||||||
|
need to write any system specific code at all.
|
||||||
|
.PP
|
||||||
|
There are other smaller system dependencies,
|
||||||
|
such as the terminal handling code in
|
||||||
|
.IR 9term (1)
|
||||||
|
and the implementation of
|
||||||
|
.IR getcallerpc (3),
|
||||||
|
but these are usually simple and are not on the critical
|
||||||
|
path for getting the system up and running.
|
||||||
|
.SS SEE ALSO
|
||||||
|
The system's documentation is these manual pages.
|
||||||
|
Many of the man pages have been brought from Plan 9,
|
||||||
|
but they have been updated, and others have been written from scratch.
|
||||||
|
.PP
|
||||||
|
The manual pages are in a Unix style tree, with names like
|
||||||
|
.B $PLAN9/man/man1/cat.1
|
||||||
|
instead of Plan 9's simpler
|
||||||
|
.BR $PLAN9/man/1/cat ,
|
||||||
|
so that the Unix
|
||||||
|
.IR man (1)
|
||||||
|
utility can handle it.
|
||||||
|
Some systems, for example Debian Linux,
|
||||||
|
deduce the man page locations from the search path, so that
|
||||||
|
adding
|
||||||
|
.B $PLAN9/bin
|
||||||
|
to your path is sufficient to cause
|
||||||
|
.B $PLAN9/man
|
||||||
|
to be consulted for manual pages using the system
|
||||||
|
.IR man .
|
||||||
|
On other systems, or to look at manual pages with the
|
||||||
|
same name as a system page,
|
||||||
|
invoke the Plan 9
|
||||||
|
.I man
|
||||||
|
directly, as in
|
||||||
|
.B 9
|
||||||
|
.B man
|
||||||
|
.BR cat .
|
||||||
|
.PP
|
||||||
|
The manual sections follow the Unix numbering conventions,
|
||||||
|
not the Plan 9 ones.
|
||||||
|
.PP
|
||||||
|
Section (1) describes general publicly accessible commands.
|
||||||
|
.PP
|
||||||
|
Section (3) describes C library functions.
|
||||||
|
.PP
|
||||||
|
Section (4) describes user-level file servers.
|
||||||
|
.PP
|
||||||
|
Section (7) describes file formats and protocols.
|
||||||
|
(On Unix, section (5) is technically for file formats but
|
||||||
|
seems now to be used for describing specific files.)
|
||||||
|
.PP
|
||||||
|
Section (8) describes commands used for system administration.
|
||||||
|
.PP
|
||||||
|
Section (9p) describes the Plan 9 file protocol 9P.
|
||||||
|
.SH DIAGNOSTICS
|
||||||
|
In Plan 9, a program's exit status is an arbitrary text string,
|
||||||
|
while on Unix it is an integer.
|
||||||
|
Section (1) of this manual describes commands as though they
|
||||||
|
exit with string statuses. In fact, exiting with an empty status
|
||||||
|
corresponds to exiting with status 0,
|
||||||
|
and exiting with any non-empty string corresponds to exiting with status 1.
|
||||||
|
See
|
||||||
|
.IR exits (3).
|
|
@ -3,6 +3,14 @@
|
||||||
9c, 9a, 9l, 9ar \- C compiler, assembler, linker, archiver
|
9c, 9a, 9l, 9ar \- C compiler, assembler, linker, archiver
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
.B 9c
|
.B 9c
|
||||||
|
[
|
||||||
|
.B -I
|
||||||
|
.I path
|
||||||
|
]
|
||||||
|
[
|
||||||
|
.B -D
|
||||||
|
.I name
|
||||||
|
]
|
||||||
.I file
|
.I file
|
||||||
\&...
|
\&...
|
||||||
.PP
|
.PP
|
||||||
|
@ -26,7 +34,7 @@
|
||||||
\&...
|
\&...
|
||||||
]
|
]
|
||||||
[
|
[
|
||||||
.BI -l library
|
.BI -l name
|
||||||
\&...
|
\&...
|
||||||
]
|
]
|
||||||
.PP
|
.PP
|
||||||
|
@ -49,12 +57,24 @@ One can use them to write portable recipes for mkfiles.
|
||||||
compiles the named C
|
compiles the named C
|
||||||
.I files
|
.I files
|
||||||
into object files for the current system.
|
into object files for the current system.
|
||||||
The system C compiler is invoked with warnings enabled,
|
The system C compiler is invoked with warnings enabled.
|
||||||
with the symbol
|
The
|
||||||
|
.B -I
|
||||||
|
option adds
|
||||||
|
.I path
|
||||||
|
to the include path,
|
||||||
|
and the
|
||||||
|
.B -D
|
||||||
|
option defines
|
||||||
|
.I name
|
||||||
|
in the C preprocessor.
|
||||||
|
.I 9c
|
||||||
|
always
|
||||||
|
defines the symbol
|
||||||
.B PLAN9PORT
|
.B PLAN9PORT
|
||||||
is defined in the C preprocessor, and with
|
defined in the C preprocessor and adds
|
||||||
.B $PLAN9/include
|
.B $PLAN9/include
|
||||||
on the include path.
|
to the include path.
|
||||||
.PP
|
.PP
|
||||||
.I 9c
|
.I 9c
|
||||||
also defines
|
also defines
|
||||||
|
@ -74,7 +94,7 @@ links the named object files and libraries to create the target executable.
|
||||||
Each
|
Each
|
||||||
.B -l
|
.B -l
|
||||||
option specifies that a library named
|
option specifies that a library named
|
||||||
.BI lib library .a
|
.BI lib name .a
|
||||||
be found and linked.
|
be found and linked.
|
||||||
The
|
The
|
||||||
.B -L
|
.B -L
|
||||||
|
@ -84,6 +104,30 @@ invokes the system linker with
|
||||||
.B $PLAN9/lib
|
.B $PLAN9/lib
|
||||||
already on the library search path.
|
already on the library search path.
|
||||||
.PP
|
.PP
|
||||||
|
.I 9l
|
||||||
|
searches the named objects and libraries for symbols of the form
|
||||||
|
.BI __p9l_autolib_ name \fR,
|
||||||
|
which it takes as indication that it should link
|
||||||
|
.BI $PLAN9/lib/lib name .a
|
||||||
|
as well.
|
||||||
|
It also examines such libraries to find their own dependencies.
|
||||||
|
A single
|
||||||
|
.B -l
|
||||||
|
option at the beginning of the command line disables this behavior.
|
||||||
|
The symbol
|
||||||
|
.BI __p9l_autolib_ name
|
||||||
|
is added to an object file by the macro
|
||||||
|
.B AUTOLIB( name )\fR,
|
||||||
|
defined in
|
||||||
|
.B <u.h>.
|
||||||
|
Header files associated with libraries contain
|
||||||
|
.B AUTOLIB
|
||||||
|
annotations; ordinary programs need not use them.
|
||||||
|
Due to shortcomings in the implementation, a source file may not
|
||||||
|
contain the same
|
||||||
|
.B AUTOLIB
|
||||||
|
statement multiple times.
|
||||||
|
.PP
|
||||||
.I 9ar
|
.I 9ar
|
||||||
maintains object file archives called libraries.
|
maintains object file archives called libraries.
|
||||||
The exact set of valid command keys varies from system to system,
|
The exact set of valid command keys varies from system to system,
|
||||||
|
@ -154,7 +198,7 @@ inserts a table of contents, required by the linker, at
|
||||||
the front of the library.
|
the front of the library.
|
||||||
The table of contents is
|
The table of contents is
|
||||||
rebuilt whenever the archive is modified.
|
rebuilt whenever the archive is modified.
|
||||||
.SH EXAMPLE
|
.SH EXAMPLES
|
||||||
.TP
|
.TP
|
||||||
.L
|
.L
|
||||||
9c file1.c file2.c file3.c
|
9c file1.c file2.c file3.c
|
||||||
|
@ -167,6 +211,7 @@ Assemble one assembler source file.
|
||||||
.L
|
.L
|
||||||
9ar rvc lib.a file[12].o
|
9ar rvc lib.a file[12].o
|
||||||
Archive the first two object files into a library.
|
Archive the first two object files into a library.
|
||||||
|
.TP
|
||||||
.L
|
.L
|
||||||
9l -o prog file3.o file4.o lib.a
|
9l -o prog file3.o file4.o lib.a
|
||||||
Link the final two object files and any necessary objects from the library
|
Link the final two object files and any necessary objects from the library
|
||||||
|
|
|
@ -110,9 +110,7 @@ cat $HOME/lib/plumbing | 9p write plumb/rules
|
||||||
.PP
|
.PP
|
||||||
To display the contents of the current
|
To display the contents of the current
|
||||||
.IR acme (4)
|
.IR acme (4)
|
||||||
window (specified by the environment variable
|
window:
|
||||||
.BR $winid )
|
|
||||||
on standard output:
|
|
||||||
.IP
|
.IP
|
||||||
.EX
|
.EX
|
||||||
9p read acme/$winid/body
|
9p read acme/$winid/body
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
.TH 9TERM 1
|
.TH 9TERM 1
|
||||||
.SH NAME
|
.SH NAME
|
||||||
9term, label \- terminal windows
|
9term \- terminal windows
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
.B 9term
|
.B 9term
|
||||||
[
|
[
|
||||||
|
@ -14,14 +14,11 @@
|
||||||
.I cmd
|
.I cmd
|
||||||
\&...
|
\&...
|
||||||
]
|
]
|
||||||
.PP
|
|
||||||
.B label
|
|
||||||
.I name
|
|
||||||
.SH DESCRIPTION
|
.SH DESCRIPTION
|
||||||
.I 9term
|
.I 9term
|
||||||
is a terminal window program for the X Window System,
|
is a terminal window program for the X Window System,
|
||||||
providing an interface similar to that used on Plan 9.
|
providing an interface similar to that used on Plan 9.
|
||||||
.SS Commands
|
.SS Command
|
||||||
The
|
The
|
||||||
.I 9term
|
.I 9term
|
||||||
command starts a new window.
|
command starts a new window.
|
||||||
|
@ -59,15 +56,6 @@ if set; otherwise it uses the graphics system default.
|
||||||
runs the given command in the window, or
|
runs the given command in the window, or
|
||||||
.B $SHELL
|
.B $SHELL
|
||||||
if no command is given.
|
if no command is given.
|
||||||
.PP
|
|
||||||
The
|
|
||||||
.I label
|
|
||||||
command changes a window's identifying name by
|
|
||||||
echoing a special control code that both
|
|
||||||
.I 9term
|
|
||||||
and
|
|
||||||
.IR xterm (1)
|
|
||||||
understand.
|
|
||||||
.SS Text windows
|
.SS Text windows
|
||||||
Characters typed on the keyboard
|
Characters typed on the keyboard
|
||||||
collect in the window to form
|
collect in the window to form
|
||||||
|
@ -152,7 +140,7 @@ An EOT character (control-D) behaves exactly like newline except
|
||||||
that it is not delivered to a program when read.
|
that it is not delivered to a program when read.
|
||||||
Thus on an empty line an EOT serves to deliver an end-of-file indication:
|
Thus on an empty line an EOT serves to deliver an end-of-file indication:
|
||||||
the read will return zero characters.
|
the read will return zero characters.
|
||||||
Like newlines, unread EOTs may be successfully edited out of the text.
|
.\" Like newlines, unread EOTs may be successfully edited out of the text.
|
||||||
The BS character (control-H) erases the character before the selected text.
|
The BS character (control-H) erases the character before the selected text.
|
||||||
The ETB character (control-W) erases any nonalphanumeric characters, then
|
The ETB character (control-W) erases any nonalphanumeric characters, then
|
||||||
the alphanumeric word just before the selected text.
|
the alphanumeric word just before the selected text.
|
||||||
|
@ -202,6 +190,10 @@ before (after) the current selection.
|
||||||
relies on the kernel's terminal processing to handle
|
relies on the kernel's terminal processing to handle
|
||||||
EOT and DEL, so the terminal must be set up with EOT
|
EOT and DEL, so the terminal must be set up with EOT
|
||||||
as the ``eof'' character and DEL as the ``intr'' character.
|
as the ``eof'' character and DEL as the ``intr'' character.
|
||||||
|
.I 9term
|
||||||
|
runs
|
||||||
|
.IR stty (1)
|
||||||
|
to establish this when the terminal is created.
|
||||||
.PP
|
.PP
|
||||||
Normally, written output to a window blocks when
|
Normally, written output to a window blocks when
|
||||||
the text reaches the end of the screen and the terminal
|
the text reaches the end of the screen and the terminal
|
||||||
|
@ -214,7 +206,7 @@ the terminal settings of the running programs.
|
||||||
Most programs run with echo enabled.
|
Most programs run with echo enabled.
|
||||||
In this mode,
|
In this mode,
|
||||||
.I 9term
|
.I 9term
|
||||||
display and allows editing of the input.
|
displays and allows editing of the input.
|
||||||
Some programs, typically those reading passwords,
|
Some programs, typically those reading passwords,
|
||||||
run with echo disabled.
|
run with echo disabled.
|
||||||
In this mode,
|
In this mode,
|
||||||
|
@ -279,9 +271,23 @@ If the selection is empty, it sends the white-space-delimited text
|
||||||
containing the selection (typing cursor).
|
containing the selection (typing cursor).
|
||||||
A typical use of this feature is to tell the editor to find the source of an error
|
A typical use of this feature is to tell the editor to find the source of an error
|
||||||
by plumbing the file and line information in a compiler's diagnostic.
|
by plumbing the file and line information in a compiler's diagnostic.
|
||||||
|
.PP
|
||||||
|
Each
|
||||||
|
.I 9term
|
||||||
|
listens for connections on a Unix socket.
|
||||||
|
When a client connects, the
|
||||||
|
.I 9term
|
||||||
|
writes the window contents to the client and then hangs up.
|
||||||
|
.I 9term
|
||||||
|
installs the name of this socket in the environment as
|
||||||
|
.B $text9term
|
||||||
|
before running
|
||||||
|
.IR cmd .
|
||||||
.SH SOURCE
|
.SH SOURCE
|
||||||
.B \*9/src/cmd/9term
|
.B \*9/src/cmd/9term
|
||||||
.SH BUGS
|
.SH BUGS
|
||||||
There should be a program to toggle the current window's hold mode.
|
There should be a program to toggle the current window's hold mode.
|
||||||
.PP
|
.PP
|
||||||
Unix makes everything harder.
|
Unix makes everything harder.
|
||||||
|
.SH SEE ALSO
|
||||||
|
.IR wintext (1)
|
||||||
|
|
|
@ -1,10 +1,12 @@
|
||||||
|
0intro 0intro.1
|
||||||
|
intro 0intro.1
|
||||||
|
9 9.1
|
||||||
9a 9c.1
|
9a 9c.1
|
||||||
9ar 9c.1
|
9ar 9c.1
|
||||||
9c 9c.1
|
9c 9c.1
|
||||||
9l 9c.1
|
9l 9c.1
|
||||||
9p 9p.1
|
9p 9p.1
|
||||||
9term 9term.1
|
9term 9term.1
|
||||||
label 9term.1
|
|
||||||
acid acid.1
|
acid acid.1
|
||||||
acidtypes acid.1
|
acidtypes acid.1
|
||||||
acme acme.1
|
acme acme.1
|
||||||
|
@ -27,13 +29,12 @@ cleanname cleanname.1
|
||||||
auxclog clog.1
|
auxclog clog.1
|
||||||
clog clog.1
|
clog clog.1
|
||||||
cmp cmp.1
|
cmp cmp.1
|
||||||
|
cmapcube colors.1
|
||||||
colors colors.1
|
colors colors.1
|
||||||
getmap colors.1
|
|
||||||
comm comm.1
|
comm comm.1
|
||||||
core core.1
|
core core.1
|
||||||
crop crop.1
|
crop crop.1
|
||||||
iconv crop.1
|
iconv crop.1
|
||||||
clock date.1
|
|
||||||
date date.1
|
date date.1
|
||||||
db db.1
|
db db.1
|
||||||
dc dc.1
|
dc dc.1
|
||||||
|
@ -93,6 +94,7 @@ lc ls.1
|
||||||
ls ls.1
|
ls ls.1
|
||||||
lookman man.1
|
lookman man.1
|
||||||
man man.1
|
man man.1
|
||||||
|
sig man.1
|
||||||
map map.1
|
map map.1
|
||||||
mapd map.1
|
mapd map.1
|
||||||
mapdemo map.1
|
mapdemo map.1
|
||||||
|
@ -142,7 +144,6 @@ scat scat.1
|
||||||
aescbc secstore.1
|
aescbc secstore.1
|
||||||
ipso secstore.1
|
ipso secstore.1
|
||||||
secstore secstore.1
|
secstore secstore.1
|
||||||
9sed sed.1
|
|
||||||
sed sed.1
|
sed sed.1
|
||||||
seq seq.1
|
seq seq.1
|
||||||
sleep sleep.1
|
sleep sleep.1
|
||||||
|
|
|
@ -4,7 +4,7 @@ acid, acidtypes \- debugger
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
.B acid
|
.B acid
|
||||||
[
|
[
|
||||||
.BI -l " libfile
|
.BI -l " library
|
||||||
]
|
]
|
||||||
[
|
[
|
||||||
.B -wq
|
.B -wq
|
||||||
|
@ -49,7 +49,7 @@ It can inspect one or more processes that share an address space.
|
||||||
A program to be debugged may be specified by the process id of
|
A program to be debugged may be specified by the process id of
|
||||||
a running or defunct process,
|
a running or defunct process,
|
||||||
or by the name of the program's text file
|
or by the name of the program's text file
|
||||||
.RB ( 8.out
|
.RB ( a.out
|
||||||
by default).
|
by default).
|
||||||
At the prompt,
|
At the prompt,
|
||||||
.I acid
|
.I acid
|
||||||
|
@ -514,13 +514,13 @@ for processes that are still active.
|
||||||
.SH BUGS
|
.SH BUGS
|
||||||
There is no way to redirect the standard input and standard output
|
There is no way to redirect the standard input and standard output
|
||||||
of a new process.
|
of a new process.
|
||||||
.br
|
.PP
|
||||||
Source line selection near the beginning of a file may pick
|
Source line selection near the beginning of a file may pick
|
||||||
an adjacent file.
|
an adjacent file.
|
||||||
.br
|
.PP
|
||||||
With the extant stepping commands, one cannot step through instructions
|
With the extant stepping commands, one cannot step through instructions
|
||||||
outside the text segment and it is hard to debug across process forks.
|
outside the text segment and it is hard to debug across process forks.
|
||||||
.br
|
.PP
|
||||||
Breakpoints do not work yet.
|
Breakpoints do not work yet.
|
||||||
Therefore, commands such as
|
Therefore, commands such as
|
||||||
.BR step ,
|
.BR step ,
|
||||||
|
|
|
@ -71,7 +71,7 @@ The
|
||||||
.RB ( -F )
|
.RB ( -F )
|
||||||
option sets the main font, usually variable-pitch (alternate, usually fixed-pitch);
|
option sets the main font, usually variable-pitch (alternate, usually fixed-pitch);
|
||||||
the default is
|
the default is
|
||||||
.B /lib/font/bit/lucidasans/euro.8.font
|
.B /usr/local/plan9/font/lucidasans/euro.8.font
|
||||||
.RB ( \&.../lucm/unicode.9.font ).
|
.RB ( \&.../lucm/unicode.9.font ).
|
||||||
Tab intervals are set to the width of 4 (or the value of
|
Tab intervals are set to the width of 4 (or the value of
|
||||||
.BR $tabstop )
|
.BR $tabstop )
|
||||||
|
@ -140,7 +140,7 @@ temporarily hiding other windows in the column.
|
||||||
if any of them needs attention.)
|
if any of them needs attention.)
|
||||||
The layout box in a window is normally white; when it is black in the center,
|
The layout box in a window is normally white; when it is black in the center,
|
||||||
it records that the file is `dirty':
|
it records that the file is `dirty':
|
||||||
.I Acme
|
.I acme
|
||||||
believes it is modified from its original
|
believes it is modified from its original
|
||||||
contents.
|
contents.
|
||||||
.PP
|
.PP
|
||||||
|
@ -455,26 +455,31 @@ and error outputs of commands are sent to the error window associated with
|
||||||
the directory from which the command was run, which will be created if
|
the directory from which the command was run, which will be created if
|
||||||
necessary.
|
necessary.
|
||||||
For example, in a window
|
For example, in a window
|
||||||
.B /adm/users
|
.B /etc/passwd
|
||||||
executing
|
executing
|
||||||
.B pwd
|
.B pwd
|
||||||
will produce the output
|
will produce the output
|
||||||
.B /adm
|
.B /etc
|
||||||
in a (possibly newly-created) window labeled
|
in a (possibly newly-created) window labeled
|
||||||
.BR /adm/+Errors ;
|
.BR /etc/+Errors ;
|
||||||
in a window containing
|
in a window containing
|
||||||
.B \*9/src/cmd/sam/sam.c
|
.B /home/rob/sam/sam.c
|
||||||
executing
|
executing
|
||||||
.B mk
|
.B mk
|
||||||
will run
|
will run
|
||||||
.IR mk (1)
|
.IR mk (1)
|
||||||
in
|
in
|
||||||
.BR \*9/src/cmd/sam ,
|
.BR /home/rob/sam ,
|
||||||
producing output in a window labeled
|
producing output in a window labeled
|
||||||
.BR \*9/src/cmd/sam/+Errors .
|
.BR /home/rob/sam/+Errors .
|
||||||
The environment of such commands contains the variable
|
The environment of such commands contains the variable
|
||||||
.B $%
|
.B $%
|
||||||
with value set to the filename of the window in which the command is run.
|
with value set to the filename of the window in which the command is run,
|
||||||
|
and
|
||||||
|
.B $winid
|
||||||
|
set to the window's id number
|
||||||
|
(see
|
||||||
|
.IR acme (4)).
|
||||||
.SS "Mouse button 3
|
.SS "Mouse button 3
|
||||||
Pointing at text with button 3 instructs
|
Pointing at text with button 3 instructs
|
||||||
.I acme
|
.I acme
|
||||||
|
@ -586,7 +591,7 @@ creates a new
|
||||||
window and runs a
|
window and runs a
|
||||||
.I command
|
.I command
|
||||||
(default
|
(default
|
||||||
.BR /bin/rc )
|
.BR $SHELL )
|
||||||
in it, turning the window into something analogous to an
|
in it, turning the window into something analogous to an
|
||||||
.IR rio (1)
|
.IR rio (1)
|
||||||
window.
|
window.
|
||||||
|
|
|
@ -132,32 +132,92 @@ and
|
||||||
a button 2 action in the tag
|
a button 2 action in the tag
|
||||||
.RB ( x ).
|
.RB ( x ).
|
||||||
.TP
|
.TP
|
||||||
.I q0
|
.I q0\fR, \fPq1
|
||||||
|
The character addresses of the action.
|
||||||
.TP
|
.TP
|
||||||
|
.I eq0\fR, \fPq1
|
||||||
|
The expanded character addresses of the action.
|
||||||
|
If the text indicated by
|
||||||
|
.IR q0 ,
|
||||||
.I q1
|
.I q1
|
||||||
|
is a null string that has a non-null expansion,
|
||||||
.TP
|
.IR eq0 ,
|
||||||
.I eq0
|
|
||||||
|
|
||||||
.TP
|
|
||||||
.I eq1
|
.I eq1
|
||||||
|
are the addresses of the expansion.
|
||||||
|
Otherwise they are the same as
|
||||||
|
.IR q0 ,
|
||||||
|
.IR q1 .
|
||||||
.TP
|
.TP
|
||||||
.I flag
|
.I flag
|
||||||
|
.I Flag
|
||||||
|
is a bitwise OR (reported decimally) of the following:
|
||||||
|
1 if the text indicated is recognized as an
|
||||||
|
.I acme
|
||||||
|
built-in command;
|
||||||
|
2 if the text indicated is a null string that has a non-null expansion
|
||||||
|
(see
|
||||||
|
.IR eq0 ,
|
||||||
|
.I eq1
|
||||||
|
above);
|
||||||
|
8 if the command has an extra (chorded) argument
|
||||||
|
(see
|
||||||
|
.I chordarg
|
||||||
|
below).
|
||||||
|
.I Flag
|
||||||
|
remains from the
|
||||||
|
.IR acme (4)
|
||||||
|
event format.
|
||||||
|
Because
|
||||||
|
.IR eq0 ,
|
||||||
|
.IR eq1 ,
|
||||||
|
and
|
||||||
|
.I chordarg
|
||||||
|
are explicit in each event
|
||||||
|
(unlike in
|
||||||
|
.IR acme (4)
|
||||||
|
events),
|
||||||
|
.I flag
|
||||||
|
can usually be ignored.
|
||||||
.TP
|
.TP
|
||||||
.I textlen
|
.I textlen
|
||||||
|
The length of the action text (or its expansion) for button 2 and button 3 events in characters.
|
||||||
.TP
|
.TP
|
||||||
.I text
|
.I text
|
||||||
|
If
|
||||||
|
.I textlen
|
||||||
|
is less than 256 chracters,
|
||||||
|
.I text
|
||||||
|
is the action text itself.
|
||||||
|
Otherwise it is an empty string and must be read from the
|
||||||
|
.B data
|
||||||
|
file.
|
||||||
.TP
|
.TP
|
||||||
.I chordarg
|
.I chordarg
|
||||||
|
The chorded argument for an action.
|
||||||
.TP
|
.TP
|
||||||
.I chordorigin
|
.I chordorigin
|
||||||
|
If the chord argument is in the body of a named window,
|
||||||
|
.I chordorigin
|
||||||
|
specifies the full address of the argument,
|
||||||
|
as in
|
||||||
|
.BR /etc/group:#123,#234 .
|
||||||
|
.PD
|
||||||
|
.PP
|
||||||
|
To experiment with
|
||||||
|
.IR acmeevent ,
|
||||||
|
create an empty window in
|
||||||
|
.I acme
|
||||||
|
(using
|
||||||
|
.IR New ), type
|
||||||
|
.IP
|
||||||
|
.EX
|
||||||
|
9p read acme/$winid/event | acmeevent
|
||||||
|
.EE
|
||||||
|
.LP
|
||||||
|
inside it, and execute it.
|
||||||
|
Actions performed on the window will be printed as events in the
|
||||||
|
.B +Errors
|
||||||
|
window.
|
||||||
.PP
|
.PP
|
||||||
.I Acme.rc
|
.I Acme.rc
|
||||||
is a library of
|
is a library of
|
||||||
|
|
|
@ -39,7 +39,7 @@ ascii, unicode \- interpret ASCII, Unicode characters
|
||||||
.PP
|
.PP
|
||||||
.B look
|
.B look
|
||||||
.I hex
|
.I hex
|
||||||
.B /lib/unicode
|
.B \*9/lib/unicode
|
||||||
.SH DESCRIPTION
|
.SH DESCRIPTION
|
||||||
.I Ascii
|
.I Ascii
|
||||||
prints the
|
prints the
|
||||||
|
@ -122,7 +122,7 @@ and
|
||||||
may be unhelpful if the characters printed are not available in the current font.
|
may be unhelpful if the characters printed are not available in the current font.
|
||||||
.PP
|
.PP
|
||||||
The file
|
The file
|
||||||
.B /lib/unicode
|
.B \*9/lib/unicode
|
||||||
contains a
|
contains a
|
||||||
table of characters and descriptions, sorted in hexadecimal order,
|
table of characters and descriptions, sorted in hexadecimal order,
|
||||||
suitable for
|
suitable for
|
||||||
|
@ -143,19 +143,18 @@ Print the hex value of `p'.
|
||||||
.B "unicode 2200-22f1"
|
.B "unicode 2200-22f1"
|
||||||
Print a table of miscellaneous mathematical symbols.
|
Print a table of miscellaneous mathematical symbols.
|
||||||
.TP
|
.TP
|
||||||
.B "look 039 /lib/unicode"
|
.B "look 039 \*9/lib/unicode"
|
||||||
See the start of the Greek alphabet's encoding in the Unicode Standard.
|
See the start of the Greek alphabet's encoding in the Unicode Standard.
|
||||||
.SH FILES
|
.SH FILES
|
||||||
.TF /lib/unicode
|
|
||||||
.TP
|
.TP
|
||||||
.B /lib/unicode
|
.B \*9/lib/unicode
|
||||||
table of characters and descriptions.
|
table of characters and descriptions.
|
||||||
.SH SOURCE
|
.SH SOURCE
|
||||||
.B \*9/src/cmd/ascii.c
|
.B \*9/src/cmd/ascii.c
|
||||||
.br
|
.br
|
||||||
.B \*9/src/cmd/unicode.c
|
.B \*9/src/cmd/unicode.c
|
||||||
.SH "SEE ALSO"
|
.SH "SEE ALSO"
|
||||||
.IR look (1)
|
.IR look (1),
|
||||||
.IR tcs (1),
|
.IR tcs (1),
|
||||||
.IR utf (7),
|
.IR utf (7),
|
||||||
.IR font (7)
|
.IR font (7)
|
||||||
|
|
|
@ -35,7 +35,7 @@ A prompt gives the input format.
|
||||||
If
|
If
|
||||||
.B l
|
.B l
|
||||||
is missing, the initial position is read from the file
|
is missing, the initial position is read from the file
|
||||||
.BR /lib/sky/here .
|
.BR \*9/sky/here .
|
||||||
.TP
|
.TP
|
||||||
.B c
|
.B c
|
||||||
Report for
|
Report for
|
||||||
|
@ -105,12 +105,11 @@ This is modified (in the source) to refer to an approaching comet
|
||||||
but in steady state
|
but in steady state
|
||||||
usually refers to the last interesting comet (currently Hale-Bopp, C/1995 O1).
|
usually refers to the last interesting comet (currently Hale-Bopp, C/1995 O1).
|
||||||
.SH FILES
|
.SH FILES
|
||||||
.TF /lib/sky/estartab
|
|
||||||
.TP
|
.TP
|
||||||
.B /lib/sky/estartab
|
.B \*9/sky/estartab
|
||||||
ecliptic star data
|
ecliptic star data
|
||||||
.TP
|
.TP
|
||||||
.B /lib/sky/here
|
.B \*9/sky/here
|
||||||
default latitude (N), longitude (W), and elevation (meters)
|
default latitude (N), longitude (W), and elevation (meters)
|
||||||
.SH SOURCE
|
.SH SOURCE
|
||||||
.B \*9/src/cmd/astro
|
.B \*9/src/cmd/astro
|
||||||
|
|
|
@ -267,7 +267,7 @@ define e(x) {
|
||||||
for(i=1; i<=10; i++) print e(i)
|
for(i=1; i<=10; i++) print e(i)
|
||||||
.EE
|
.EE
|
||||||
.SH FILES
|
.SH FILES
|
||||||
.B /sys/lib/bclib
|
.B \*9/lib/bclib
|
||||||
mathematical library
|
mathematical library
|
||||||
.SH SOURCE
|
.SH SOURCE
|
||||||
.B \*9/src/cmd/bc.y
|
.B \*9/src/cmd/bc.y
|
||||||
|
@ -281,12 +281,12 @@ No
|
||||||
or
|
or
|
||||||
.L !
|
.L !
|
||||||
operators.
|
operators.
|
||||||
.br
|
.PP
|
||||||
A
|
A
|
||||||
.L for
|
.L for
|
||||||
statement must have all three
|
statement must have all three
|
||||||
.LR E s.
|
.LR E s.
|
||||||
.br
|
.PP
|
||||||
A
|
A
|
||||||
.L quit
|
.L quit
|
||||||
is interpreted when read, not when executed.
|
is interpreted when read, not when executed.
|
||||||
|
|
|
@ -41,7 +41,7 @@ say in
|
||||||
then do
|
then do
|
||||||
.TP
|
.TP
|
||||||
.L
|
.L
|
||||||
cd gift; rc horse; mk
|
cd gift; sh horse; mk
|
||||||
.SH SOURCE
|
.SH SOURCE
|
||||||
.B \*9/bin/bundle
|
.B \*9/bin/bundle
|
||||||
.SH SEE ALSO
|
.SH SEE ALSO
|
||||||
|
@ -53,5 +53,5 @@ cd gift; rc horse; mk
|
||||||
.SH BUGS
|
.SH BUGS
|
||||||
.I Bundle
|
.I Bundle
|
||||||
will not create directories and is unsatisfactory for non-text files.
|
will not create directories and is unsatisfactory for non-text files.
|
||||||
.br
|
.PP
|
||||||
Beware of gift horses.
|
Beware of gift horses.
|
||||||
|
|
|
@ -39,7 +39,7 @@ Try
|
||||||
.SH BUGS
|
.SH BUGS
|
||||||
The year is always considered to start in January even though this
|
The year is always considered to start in January even though this
|
||||||
is historically naive.
|
is historically naive.
|
||||||
.br
|
.PP
|
||||||
Beware that
|
Beware that
|
||||||
.L "cal 90"
|
.L "cal 90"
|
||||||
refers to the early Christian era,
|
refers to the early Christian era,
|
||||||
|
|
|
@ -15,7 +15,7 @@ calendar \- print upcoming events
|
||||||
.SH DESCRIPTION
|
.SH DESCRIPTION
|
||||||
.I Calendar
|
.I Calendar
|
||||||
reads the named files, default
|
reads the named files, default
|
||||||
.BR /usr/$user/lib/calendar ,
|
.BR $HOME/lib/calendar ,
|
||||||
and writes to standard output any lines
|
and writes to standard output any lines
|
||||||
containing today's or tomorrow's date.
|
containing today's or tomorrow's date.
|
||||||
Examples of recognized date formats are
|
Examples of recognized date formats are
|
||||||
|
@ -45,9 +45,9 @@ On Friday and Saturday, events through Monday are printed.
|
||||||
To have your calendar mailed to you every day, use
|
To have your calendar mailed to you every day, use
|
||||||
.IR cron (8).
|
.IR cron (8).
|
||||||
.SH FILES
|
.SH FILES
|
||||||
.TF /usr/$user/lib/calendar
|
.TF $HOME/lib/calendar
|
||||||
.TP
|
.TP
|
||||||
.B /usr/$user/lib/calendar
|
.B $HOME/lib/calendar
|
||||||
personal calendar
|
personal calendar
|
||||||
.SH SOURCE
|
.SH SOURCE
|
||||||
.B \*9/src/cmd/calendar.c
|
.B \*9/src/cmd/calendar.c
|
||||||
|
|
|
@ -17,7 +17,7 @@ cat, read, nobs \- catenate files
|
||||||
.I file ...
|
.I file ...
|
||||||
]
|
]
|
||||||
.br
|
.br
|
||||||
nobs
|
.B nobs
|
||||||
[
|
[
|
||||||
.I file ...
|
.I file ...
|
||||||
]
|
]
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
.TH COLORS 1
|
.TH COLORS 1
|
||||||
.SH NAME
|
.SH NAME
|
||||||
getmap, colors \- display color map
|
colors, cmapcube \- display color map
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
.PP
|
.PP
|
||||||
.B colors
|
.B colors
|
||||||
|
@ -9,16 +9,13 @@ getmap, colors \- display color map
|
||||||
.B -x
|
.B -x
|
||||||
]
|
]
|
||||||
.PP
|
.PP
|
||||||
.B getmap
|
.B cmapcube
|
||||||
[
|
[
|
||||||
.I colormap
|
.B -nbw
|
||||||
]
|
]
|
||||||
.SH DESCRIPTION
|
.SH DESCRIPTION
|
||||||
.I Colors
|
.I Colors
|
||||||
presents a grid showing the colors in the current color map.
|
presents a grid showing the colors in the RGBV color map
|
||||||
If the display is true color,
|
|
||||||
.I colors
|
|
||||||
shows a grid of the RGBV color map
|
|
||||||
(see
|
(see
|
||||||
.IR color (7)).
|
.IR color (7)).
|
||||||
.PP
|
.PP
|
||||||
|
@ -37,36 +34,22 @@ option instead shows, in the same form, a grey-scale ramp.
|
||||||
.PP
|
.PP
|
||||||
A menu on mouse button 3 contains a single entry, to exit the program.
|
A menu on mouse button 3 contains a single entry, to exit the program.
|
||||||
.PP
|
.PP
|
||||||
On 8-bit color-mapped displays,
|
.I Cmapcube
|
||||||
.I getmap
|
presents the same colors but in a 3-dimensional cube.
|
||||||
loads the display's color map (default
|
Dragging with button 1 rotates the cube.
|
||||||
.BR rgbv ).
|
Clicking on a color with button 2
|
||||||
The named
|
displays the map index for that color.
|
||||||
.I colormap
|
Clicking button 3 exits.
|
||||||
can be a file in the current directory or in the standard repository
|
.PP
|
||||||
.BR /lib/cmap .
|
The
|
||||||
It can also be a string of the form
|
.B -n
|
||||||
.B gamma
|
option disables drawing of the color squares.
|
||||||
or
|
The
|
||||||
.BI gamma N\f1 ,
|
.B -b
|
||||||
where
|
|
||||||
.I N
|
|
||||||
is a floating point value for the gamma, defining the contrast for a monochrome map.
|
|
||||||
Similarly,
|
|
||||||
.B rgamma
|
|
||||||
and
|
and
|
||||||
.BI rgamma N
|
.B -w
|
||||||
define a reverse-video monochrome map.
|
options set the background (default grey)
|
||||||
Finally, the names
|
to black or white.
|
||||||
.B screen
|
|
||||||
or
|
|
||||||
.B display
|
|
||||||
or
|
|
||||||
.B vga
|
|
||||||
are taken as synonyms for the current color map stored in the display hardware.
|
|
||||||
.SH FILES
|
|
||||||
.B /lib/cmap
|
|
||||||
directory of color map files
|
|
||||||
.SH SOURCE
|
.SH SOURCE
|
||||||
.B \*9/src/cmd/draw/colors.c
|
.B \*9/src/cmd/draw/colors.c
|
||||||
.SH SEE ALSO
|
.SH SEE ALSO
|
||||||
|
|
|
@ -44,3 +44,6 @@ searches the current directory.
|
||||||
.IR acid (1),
|
.IR acid (1),
|
||||||
.IR db (1),
|
.IR db (1),
|
||||||
.IR core (5)
|
.IR core (5)
|
||||||
|
.SH BUGS
|
||||||
|
.I Core
|
||||||
|
has not been written.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
.TH DATE 1
|
.TH DATE 1
|
||||||
.SH NAME
|
.SH NAME
|
||||||
date, clock \- date and time
|
date \- date and time
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
.B date
|
.B date
|
||||||
[
|
[
|
||||||
|
|
|
@ -912,14 +912,6 @@ To set a breakpoint at the beginning of
|
||||||
.B write()
|
.B write()
|
||||||
in extant process 27:
|
in extant process 27:
|
||||||
.IP
|
.IP
|
||||||
.de EX
|
|
||||||
.RS
|
|
||||||
.ft B
|
|
||||||
.nf
|
|
||||||
..
|
|
||||||
.de EE
|
|
||||||
.RE
|
|
||||||
..
|
|
||||||
.EX
|
.EX
|
||||||
% db 27
|
% db 27
|
||||||
:h
|
:h
|
||||||
|
|
|
@ -223,15 +223,15 @@ results are truncated to the following scales.
|
||||||
\fLv\fR max(\fIs,sa\fR)
|
\fLv\fR max(\fIs,sa\fR)
|
||||||
.fi
|
.fi
|
||||||
.SH EXAMPLES
|
.SH EXAMPLES
|
||||||
|
.LP
|
||||||
|
Print the first ten values of
|
||||||
|
.IR n !
|
||||||
|
.IP
|
||||||
.EX
|
.EX
|
||||||
[la1+dsa*pla10>y]sy
|
[la1+dsa*pla10>y]sy
|
||||||
0sa1
|
0sa1
|
||||||
lyx
|
lyx
|
||||||
.EE
|
.EE
|
||||||
.ns
|
|
||||||
.IP
|
|
||||||
Print the first ten values of
|
|
||||||
.IR n !
|
|
||||||
.SH SOURCE
|
.SH SOURCE
|
||||||
.B \*9/src/cmd/dc.c
|
.B \*9/src/cmd/dc.c
|
||||||
.SH "SEE ALSO"
|
.SH "SEE ALSO"
|
||||||
|
|
|
@ -112,6 +112,6 @@ when the popular
|
||||||
delimiters for
|
delimiters for
|
||||||
.I eqn
|
.I eqn
|
||||||
are in effect.
|
are in effect.
|
||||||
.br
|
.PP
|
||||||
Text inside macros is emitted at place of
|
Text inside macros is emitted at place of
|
||||||
definition, not place of call.
|
definition, not place of call.
|
||||||
|
|
|
@ -182,12 +182,10 @@ it starts with the
|
||||||
.BI /adict/ dict /
|
.BI /adict/ dict /
|
||||||
window.
|
window.
|
||||||
.SH FILES
|
.SH FILES
|
||||||
.B /lib/dict/oed2
|
.TP
|
||||||
.br
|
.B \*9/dict
|
||||||
.B /lib/dict/oed2index
|
dictionaries
|
||||||
.br
|
.PD
|
||||||
Other files in
|
|
||||||
.BR /lib .
|
|
||||||
.SH "SEE ALSO"
|
.SH "SEE ALSO"
|
||||||
.IR regexp (7)
|
.IR regexp (7)
|
||||||
.SH SOURCE
|
.SH SOURCE
|
||||||
|
|
|
@ -148,7 +148,7 @@ Editing scripts produced under the
|
||||||
.BR -e " or"
|
.BR -e " or"
|
||||||
.BR -f " option are naive about"
|
.BR -f " option are naive about"
|
||||||
creating lines consisting of a single `\fB.\fR'.
|
creating lines consisting of a single `\fB.\fR'.
|
||||||
.br
|
.PP
|
||||||
When running
|
When running
|
||||||
.I diff
|
.I diff
|
||||||
on directories, the notion of what is a text
|
on directories, the notion of what is a text
|
||||||
|
|
|
@ -4,8 +4,13 @@ doctype \- intuit command line for formatting a document
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
.B doctype
|
.B doctype
|
||||||
[
|
[
|
||||||
.I option ...
|
.B -n
|
||||||
] [
|
]
|
||||||
|
[
|
||||||
|
.B -T
|
||||||
|
.I dev
|
||||||
|
]
|
||||||
|
[
|
||||||
.I file
|
.I file
|
||||||
]
|
]
|
||||||
\&...
|
\&...
|
||||||
|
@ -32,7 +37,9 @@ invokes
|
||||||
.I nroff
|
.I nroff
|
||||||
instead of
|
instead of
|
||||||
.IR troff .
|
.IR troff .
|
||||||
Other options are passed to
|
The
|
||||||
|
.B -T
|
||||||
|
option is passed to
|
||||||
.IR troff .
|
.IR troff .
|
||||||
.SH EXAMPLES
|
.SH EXAMPLES
|
||||||
.TP
|
.TP
|
||||||
|
|
|
@ -49,7 +49,7 @@ commands.
|
||||||
If no
|
If no
|
||||||
.I file
|
.I file
|
||||||
is given, make
|
is given, make
|
||||||
.B /fd/1
|
.B /dev/stdout
|
||||||
the remembered file; see the
|
the remembered file; see the
|
||||||
.L e
|
.L e
|
||||||
command below.
|
command below.
|
||||||
|
|
|
@ -13,11 +13,11 @@ If a
|
||||||
.I file
|
.I file
|
||||||
is specified, the saying is taken from that file;
|
is specified, the saying is taken from that file;
|
||||||
otherwise it is selected from
|
otherwise it is selected from
|
||||||
.BR /sys/games/lib/fortunes .
|
.BR \*9/lib/fortunes .
|
||||||
.SH FILES
|
.SH FILES
|
||||||
.B /sys/games/lib/fortunes
|
.B \*9/lib/fortunes
|
||||||
.br
|
.br
|
||||||
.B /sys/games/lib/fortunes.index
|
.B \*9/lib/fortunes.index
|
||||||
\ \ fast lookup table, maintained automatically
|
\ \ fast lookup table, maintained automatically
|
||||||
.SH SOURCE
|
.SH SOURCE
|
||||||
.B \*9/src/cmd/fortune.c
|
.B \*9/src/cmd/fortune.c
|
||||||
|
|
|
@ -254,7 +254,7 @@ symbols like
|
||||||
.BR star ,
|
.BR star ,
|
||||||
.BR plus ,
|
.BR plus ,
|
||||||
etc., in
|
etc., in
|
||||||
.BR /sys/lib/grap.defines ,
|
.BR \*9/lib/grap.defines ,
|
||||||
which is included if it exists.
|
which is included if it exists.
|
||||||
.PP
|
.PP
|
||||||
.I var
|
.I var
|
||||||
|
@ -399,9 +399,9 @@ copy thru / circle at $1,$2 /
|
||||||
.vs
|
.vs
|
||||||
.EE
|
.EE
|
||||||
.SH FILES
|
.SH FILES
|
||||||
.TF /sys/lib/grap.defines
|
.TF \*9/lib/grap.defines
|
||||||
.TP
|
.TP
|
||||||
.B /sys/lib/grap.defines
|
.B \*9/lib/grap.defines
|
||||||
definitions of standard plotting characters, e.g., bullet
|
definitions of standard plotting characters, e.g., bullet
|
||||||
.SH SOURCE
|
.SH SOURCE
|
||||||
.B \*9/src/cmd/grap
|
.B \*9/src/cmd/grap
|
||||||
|
|
|
@ -10,6 +10,7 @@ grep, g \- search a file for a pattern
|
||||||
[
|
[
|
||||||
.I file ...
|
.I file ...
|
||||||
]
|
]
|
||||||
|
.PP
|
||||||
.B g
|
.B g
|
||||||
[
|
[
|
||||||
.I option ...
|
.I option ...
|
||||||
|
|
|
@ -14,7 +14,8 @@ interactively
|
||||||
merges
|
merges
|
||||||
.I file1
|
.I file1
|
||||||
and
|
and
|
||||||
.IR file2 .
|
.I file2
|
||||||
|
onto standard output.
|
||||||
Wherever
|
Wherever
|
||||||
.I file1
|
.I file1
|
||||||
and
|
and
|
||||||
|
@ -23,7 +24,8 @@ differ,
|
||||||
.I idiff
|
.I idiff
|
||||||
displays the differences in the style of
|
displays the differences in the style of
|
||||||
.RB `` diff
|
.RB `` diff
|
||||||
.RB -n ''
|
.BR -n ''
|
||||||
|
on standard error
|
||||||
and prompts the user to select a chunk.
|
and prompts the user to select a chunk.
|
||||||
Valid responses are:
|
Valid responses are:
|
||||||
.TP
|
.TP
|
||||||
|
@ -54,9 +56,10 @@ The
|
||||||
.B -b
|
.B -b
|
||||||
and
|
and
|
||||||
.B -w
|
.B -w
|
||||||
flags
|
flags,
|
||||||
are simply
|
if passed,
|
||||||
passed through to
|
are
|
||||||
|
passed to
|
||||||
.IR diff .
|
.IR diff .
|
||||||
.SH FILES
|
.SH FILES
|
||||||
.B /tmp/idiff.*
|
.B /tmp/idiff.*
|
||||||
|
@ -68,5 +71,3 @@ passed through to
|
||||||
Kernighan and Pike,
|
Kernighan and Pike,
|
||||||
.IR "The Unix Programming Environment" ,
|
.IR "The Unix Programming Environment" ,
|
||||||
Prentice-Hall, 1984.
|
Prentice-Hall, 1984.
|
||||||
.SH BUGS
|
|
||||||
This is a poorly-written manual page.
|
|
||||||
|
|
|
@ -143,5 +143,5 @@ with
|
||||||
the sequence is that of
|
the sequence is that of
|
||||||
.BI "sort -t" x
|
.BI "sort -t" x
|
||||||
.BI -k y , y\f1.
|
.BI -k y , y\f1.
|
||||||
.br
|
.PP
|
||||||
One of the files must be randomly accessible.
|
One of the files must be randomly accessible.
|
||||||
|
|
|
@ -13,11 +13,6 @@ kill, slay, start, stop \- print commands to manipulate processes
|
||||||
.PP
|
.PP
|
||||||
.B stop
|
.B stop
|
||||||
.I name ...
|
.I name ...
|
||||||
.PP
|
|
||||||
.B broke
|
|
||||||
[
|
|
||||||
.I user
|
|
||||||
]
|
|
||||||
.SH DESCRIPTION
|
.SH DESCRIPTION
|
||||||
.I Kill
|
.I Kill
|
||||||
prints commands that will cause all processes with
|
prints commands that will cause all processes with
|
||||||
|
@ -67,3 +62,8 @@ signal.
|
||||||
.SH "SEE ALSO"
|
.SH "SEE ALSO"
|
||||||
.IR ps (1),
|
.IR ps (1),
|
||||||
.IR notify (3)
|
.IR notify (3)
|
||||||
|
.SH BUGS
|
||||||
|
.I Stop
|
||||||
|
and
|
||||||
|
.I start
|
||||||
|
should limit themselves to currently running or stopped processes.
|
||||||
|
|
|
@ -77,5 +77,5 @@ Tenth Edition, Volume 2.
|
||||||
.SH BUGS
|
.SH BUGS
|
||||||
Cannot handle
|
Cannot handle
|
||||||
.SM UTF.
|
.SM UTF.
|
||||||
.br
|
.PP
|
||||||
The asteroid to kill this dinosaur is still in orbit.
|
The asteroid to kill this dinosaur is still in orbit.
|
||||||
|
|
|
@ -77,10 +77,9 @@ is assumed, with collating sequence
|
||||||
.IR grep (1)
|
.IR grep (1)
|
||||||
.SH DIAGNOSTICS
|
.SH DIAGNOSTICS
|
||||||
The exit status is
|
The exit status is
|
||||||
.B \&"not found"
|
.RB `` "not found" ''
|
||||||
if no match is found, and
|
if no match is found, and
|
||||||
.B \&"no dictionary"
|
.RB `` "no dictionary" ''
|
||||||
if
|
if
|
||||||
.I file
|
.I file
|
||||||
or the default dictionary cannot be opened.
|
or the default dictionary cannot be opened.
|
||||||
|
|
||||||
|
|
|
@ -157,6 +157,5 @@ if none of the above permissions is granted.
|
||||||
.br
|
.br
|
||||||
.B \*9/bin/lc
|
.B \*9/bin/lc
|
||||||
.SH SEE ALSO
|
.SH SEE ALSO
|
||||||
.IR stat (3)
|
.IR stat (3),
|
||||||
.IR mc (1)
|
.IR mc (1)
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
.TH MAN 1
|
.TH MAN 1
|
||||||
.SH NAME
|
.SH NAME
|
||||||
man, lookman \- print or find pages of this manual
|
man, lookman, sig \- print or find pages of this manual
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
.B man
|
.B man
|
||||||
[
|
[
|
||||||
|
@ -88,17 +88,20 @@ command to make an index for a given section
|
||||||
index for
|
index for
|
||||||
.I lookman
|
.I lookman
|
||||||
.SH SOURCE
|
.SH SOURCE
|
||||||
.B \*9/bin/9man
|
.B \*9/bin/man
|
||||||
.br
|
.br
|
||||||
.B \*9/bin/lookman
|
.B \*9/bin/lookman
|
||||||
.SH "SEE ALSO"
|
.SH "SEE ALSO"
|
||||||
|
.IR page (1),
|
||||||
.IR proof (1)
|
.IR proof (1)
|
||||||
.SH BUGS
|
.SH BUGS
|
||||||
The manual was intended to be typeset; some detail is sacrificed on text terminals.
|
The manual was intended to be typeset; some detail is sacrificed on text terminals.
|
||||||
.PP
|
.PP
|
||||||
There is no automatic mechanism to keep the indices up to date.
|
There is no automatic mechanism to keep the indices up to date.
|
||||||
.PP
|
.PP
|
||||||
Except for special cases, it doesn't recognize things that should be run through
|
Except for special cases,
|
||||||
|
.I man
|
||||||
|
doesn't recognize things that should be run through
|
||||||
.I tbl
|
.I tbl
|
||||||
and/or
|
and/or
|
||||||
.IR eqn .
|
.IR eqn .
|
||||||
|
|
|
@ -634,7 +634,7 @@ maps for
|
||||||
.B /lib/map/*.x
|
.B /lib/map/*.x
|
||||||
map indexes
|
map indexes
|
||||||
.TP
|
.TP
|
||||||
.B /bin/aux/mapd
|
.B mapd
|
||||||
Map driver program
|
Map driver program
|
||||||
.SH SOURCE
|
.SH SOURCE
|
||||||
.B \*9/src/cmd/map
|
.B \*9/src/cmd/map
|
||||||
|
|
|
@ -1,21 +1,4 @@
|
||||||
.TH MK 1
|
.TH MK 1
|
||||||
.de EX
|
|
||||||
.nf
|
|
||||||
.ft B
|
|
||||||
..
|
|
||||||
.de EE
|
|
||||||
.fi
|
|
||||||
.ft R
|
|
||||||
..
|
|
||||||
.de LR
|
|
||||||
.if t .BR \\$1 \\$2
|
|
||||||
.if n .RB ` \\$1 '\\$2
|
|
||||||
..
|
|
||||||
.de L
|
|
||||||
.nh
|
|
||||||
.if t .B \\$1
|
|
||||||
.if n .RB ` \\$1 '
|
|
||||||
..
|
|
||||||
.SH NAME
|
.SH NAME
|
||||||
mk, membername \- maintain (make) related files
|
mk, membername \- maintain (make) related files
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
@ -313,6 +296,7 @@ and any command line assignment as an argument to
|
||||||
.IR mk .
|
.IR mk .
|
||||||
A variable assignment argument overrides the first (but not any subsequent)
|
A variable assignment argument overrides the first (but not any subsequent)
|
||||||
assignment to that variable.
|
assignment to that variable.
|
||||||
|
.PP
|
||||||
The variable
|
The variable
|
||||||
.B MKFLAGS
|
.B MKFLAGS
|
||||||
contains all the option arguments (arguments starting with
|
contains all the option arguments (arguments starting with
|
||||||
|
@ -324,6 +308,45 @@ and
|
||||||
contains all the targets in the call to
|
contains all the targets in the call to
|
||||||
.IR mk .
|
.IR mk .
|
||||||
.PP
|
.PP
|
||||||
|
The variable
|
||||||
|
.B MKSHELL
|
||||||
|
contains the shell command line
|
||||||
|
.I mk
|
||||||
|
uses to run recipes.
|
||||||
|
If the first word of the command ends in
|
||||||
|
.B rc
|
||||||
|
or
|
||||||
|
.BR rcsh ,
|
||||||
|
.I mk
|
||||||
|
uses
|
||||||
|
.IR rc (1)'s
|
||||||
|
quoting rules; otherwise it uses
|
||||||
|
.IR sh (1)'s.
|
||||||
|
The
|
||||||
|
.B MKSHELL
|
||||||
|
variable is consulted when the mkfile is read, not when it is executed,
|
||||||
|
so that different shells can be used within a single mkfile:
|
||||||
|
.IP
|
||||||
|
.EX
|
||||||
|
MKSHELL=$PLAN9/bin/rc
|
||||||
|
use-rc:V:
|
||||||
|
for(i in a b c) echo $i
|
||||||
|
|
||||||
|
MKSHELL=sh
|
||||||
|
use-sh:V:
|
||||||
|
for i in a b c; do echo $i; done
|
||||||
|
.EE
|
||||||
|
.LP
|
||||||
|
Mkfiles included via
|
||||||
|
.B <
|
||||||
|
or
|
||||||
|
.B <|
|
||||||
|
.RI ( q.v. )
|
||||||
|
see their own private copy of
|
||||||
|
.BR MKSHELL ,
|
||||||
|
which always starts set to
|
||||||
|
.B sh .
|
||||||
|
.PP
|
||||||
Dynamic information may be included in the mkfile by using a line of the form
|
Dynamic information may be included in the mkfile by using a line of the form
|
||||||
.IP
|
.IP
|
||||||
\fR<|\fIcommand\fR \fIargs\fR
|
\fR<|\fIcommand\fR \fIargs\fR
|
||||||
|
@ -510,6 +533,7 @@ archives.
|
||||||
.I Membername
|
.I Membername
|
||||||
echoes just the member names of a list of aggregate names.
|
echoes just the member names of a list of aggregate names.
|
||||||
It is useful in recipes like:
|
It is useful in recipes like:
|
||||||
|
.IP
|
||||||
.EX
|
.EX
|
||||||
OFILES=a.o b.o
|
OFILES=a.o b.o
|
||||||
libc.a(%):N: %
|
libc.a(%):N: %
|
||||||
|
@ -647,7 +671,7 @@ x.tab.h:Pcmp -s: y.tab.h
|
||||||
.EE
|
.EE
|
||||||
.SH SEE ALSO
|
.SH SEE ALSO
|
||||||
.IR sh (1),
|
.IR sh (1),
|
||||||
.IR regexp9 (7)
|
.IR regexp (7)
|
||||||
.PP
|
.PP
|
||||||
A. Hume,
|
A. Hume,
|
||||||
``Mk: a Successor to Make''
|
``Mk: a Successor to Make''
|
||||||
|
@ -664,19 +688,18 @@ It was later ported to Plan 9.
|
||||||
This software is a port of the Plan 9 version back to Unix.
|
This software is a port of the Plan 9 version back to Unix.
|
||||||
.SH BUGS
|
.SH BUGS
|
||||||
Identical recipes for regular expression meta-rules only have one target.
|
Identical recipes for regular expression meta-rules only have one target.
|
||||||
.br
|
.PP
|
||||||
Seemingly appropriate input like
|
Seemingly appropriate input like
|
||||||
.B CFLAGS=-DHZ=60
|
.B CFLAGS=-DHZ=60
|
||||||
is parsed as an erroneous attribute; correct it by inserting
|
is parsed as an erroneous attribute; correct it by inserting
|
||||||
a space after the first
|
a space after the first
|
||||||
.LR = .
|
.LR = .
|
||||||
.br
|
.PP
|
||||||
The recipes printed by
|
The recipes printed by
|
||||||
.I mk
|
.I mk
|
||||||
before being passed to
|
before being passed to
|
||||||
.I sh
|
the shell
|
||||||
for execution are sometimes erroneously expanded
|
for execution are sometimes erroneously expanded
|
||||||
for printing. Don't trust what's printed; rely
|
for printing. Don't trust what's printed; rely
|
||||||
on what
|
on what the shell
|
||||||
.I sh
|
|
||||||
does.
|
does.
|
||||||
|
|
|
@ -11,4 +11,5 @@ See
|
||||||
.SH SOURCE
|
.SH SOURCE
|
||||||
.B \*9/src/cmd/namespace.c
|
.B \*9/src/cmd/namespace.c
|
||||||
.SH SEE ALSO
|
.SH SEE ALSO
|
||||||
.IR getns (3)
|
.IR getns (3),
|
||||||
|
.IR intro (4)
|
||||||
|
|
|
@ -35,13 +35,13 @@ Other arguments
|
||||||
select particular news items.
|
select particular news items.
|
||||||
.PP
|
.PP
|
||||||
To post a news item, create a file in
|
To post a news item, create a file in
|
||||||
.BR /lib/news .
|
.BR \*9/news .
|
||||||
.PP
|
.\" .PP
|
||||||
You may arrange to receive news automatically by
|
.\" You may arrange to receive news automatically by
|
||||||
registering your mail address in
|
.\" registering your mail address in
|
||||||
.BR /sys/lib/subscribers .
|
.\" .BR /sys/lib/subscribers .
|
||||||
A daemon mails recent news
|
.\" A daemon mails recent news
|
||||||
to all addresses on the list.
|
.\" to all addresses on the list.
|
||||||
.PP
|
.PP
|
||||||
Empty news items, and news items named
|
Empty news items, and news items named
|
||||||
.B core
|
.B core
|
||||||
|
@ -49,15 +49,14 @@ or
|
||||||
.B dead.letter
|
.B dead.letter
|
||||||
are ignored.
|
are ignored.
|
||||||
.SH FILES
|
.SH FILES
|
||||||
.TF /sys/lib/subscribers
|
|
||||||
.TP
|
.TP
|
||||||
.B /lib/news/*
|
.B \*9/news/*
|
||||||
articles
|
articles
|
||||||
.TP
|
.TP
|
||||||
.B $HOME/lib/newstime
|
.B $HOME/lib/newstime
|
||||||
modify time is time news was last read
|
modify time is time news was last read
|
||||||
.TP
|
.\" .TP
|
||||||
.B /sys/lib/subscribers
|
.\" .B /sys/lib/subscribers
|
||||||
who gets news mailed to them
|
who gets news mailed to them
|
||||||
.SH SOURCE
|
.SH SOURCE
|
||||||
.B \*9/src/cmd/news.c
|
.B \*9/src/cmd/news.c
|
||||||
|
|
|
@ -49,7 +49,7 @@ To view troff output, use
|
||||||
.IR proof (1).
|
.IR proof (1).
|
||||||
.SH "SEE ALSO
|
.SH "SEE ALSO
|
||||||
.IR gs (1),
|
.IR gs (1),
|
||||||
.IR gv (1)
|
.IR gv (1),
|
||||||
.IR jpg (1),
|
.IR jpg (1),
|
||||||
.IR proof (1),
|
.IR proof (1),
|
||||||
.IR tex (1),
|
.IR tex (1),
|
||||||
|
@ -64,3 +64,11 @@ When using Preview on Mac OS X,
|
||||||
leaves temporary files in
|
leaves temporary files in
|
||||||
.BR /var/tmp ,
|
.BR /var/tmp ,
|
||||||
since it has no way to know when the viewer has exited.
|
since it has no way to know when the viewer has exited.
|
||||||
|
.PP
|
||||||
|
.I Page
|
||||||
|
does not handle
|
||||||
|
Plan 9
|
||||||
|
.IR image (7)
|
||||||
|
files; use
|
||||||
|
.I img
|
||||||
|
explicitly.
|
||||||
|
|
|
@ -76,14 +76,10 @@ will add an
|
||||||
.B action=showdata
|
.B action=showdata
|
||||||
attribute to the message.
|
attribute to the message.
|
||||||
.SH FILES
|
.SH FILES
|
||||||
.TF /usr/$user/lib/plumbing
|
.TF $HOME/lib/plumbing
|
||||||
.TP
|
.TP
|
||||||
.B /usr/$user/lib/plumbing
|
.B $HOME/lib/plumbing
|
||||||
default rules file
|
default rules file
|
||||||
.TP
|
|
||||||
.B /mnt/plumb
|
|
||||||
mount point for
|
|
||||||
.IR plumber (4).
|
|
||||||
.SH SOURCE
|
.SH SOURCE
|
||||||
.B \*9/src/cmd/plumb
|
.B \*9/src/cmd/plumb
|
||||||
.SH "SEE ALSO"
|
.SH "SEE ALSO"
|
||||||
|
|
|
@ -115,12 +115,11 @@ and
|
||||||
.B d
|
.B d
|
||||||
commands are also available as command line options.
|
commands are also available as command line options.
|
||||||
.SH FILES
|
.SH FILES
|
||||||
.TF /lib/font/bit/MAP
|
|
||||||
.TP
|
.TP
|
||||||
.B /lib/font/bit/*
|
.B \*9/font/*
|
||||||
fonts
|
fonts
|
||||||
.TP
|
.TP
|
||||||
.B /lib/font/bit/MAP
|
.B \*9/font/MAP
|
||||||
how to convert troff output fonts and character names
|
how to convert troff output fonts and character names
|
||||||
into screen fonts and character numbers
|
into screen fonts and character numbers
|
||||||
.SH SOURCE
|
.SH SOURCE
|
||||||
|
|
|
@ -81,7 +81,7 @@ performing the named system call.
|
||||||
waiting for more of a critical
|
waiting for more of a critical
|
||||||
.IR resource .
|
.IR resource .
|
||||||
.TP
|
.TP
|
||||||
.BI wchan
|
.I wchan
|
||||||
waiting on the named wait channel
|
waiting on the named wait channel
|
||||||
(on a Unix kernel).
|
(on a Unix kernel).
|
||||||
.PD
|
.PD
|
||||||
|
|
|
@ -765,8 +765,7 @@ The string for a variable entry has the variable's name followed by
|
||||||
.B =
|
.B =
|
||||||
and its value.
|
and its value.
|
||||||
If the value has more than one component, these
|
If the value has more than one component, these
|
||||||
are separated by SOH
|
are separated by SOH (001)
|
||||||
.RB ( '\e001' )
|
|
||||||
characters.
|
characters.
|
||||||
The string for a function is just the
|
The string for a function is just the
|
||||||
.I rc
|
.I rc
|
||||||
|
|
|
@ -19,6 +19,9 @@ sam, B, E, sam.save, samterm, samsave \- screen editor with structural regular e
|
||||||
.B B
|
.B B
|
||||||
.IB file \fR[\fP: line \fR]
|
.IB file \fR[\fP: line \fR]
|
||||||
\&...
|
\&...
|
||||||
|
.PP
|
||||||
|
.B E
|
||||||
|
.I file
|
||||||
.SH DESCRIPTION
|
.SH DESCRIPTION
|
||||||
.I Sam
|
.I Sam
|
||||||
is a multi-file editor.
|
is a multi-file editor.
|
||||||
|
@ -845,7 +848,7 @@ It runs
|
||||||
.I B
|
.I B
|
||||||
on
|
on
|
||||||
.I file
|
.I file
|
||||||
and then waits to exit until
|
and then does not exit until
|
||||||
.I file
|
.I file
|
||||||
is changed, which is taken as a signal that
|
is changed, which is taken as a signal that
|
||||||
.I file
|
.I file
|
||||||
|
@ -858,22 +861,22 @@ terminates other than by a
|
||||||
command (by hangup, deleting its window, etc.), modified
|
command (by hangup, deleting its window, etc.), modified
|
||||||
files are saved in an
|
files are saved in an
|
||||||
executable file,
|
executable file,
|
||||||
.BR $home/sam.save .
|
.BR $HOME/sam.save .
|
||||||
This program, when executed, asks whether to write
|
This program, when executed, asks whether to write
|
||||||
each file back to a external file.
|
each file back to a external file.
|
||||||
The answer
|
The answer
|
||||||
.L y
|
.L y
|
||||||
causes writing; anything else skips the file.
|
causes writing; anything else skips the file.
|
||||||
.SH FILES
|
.SH FILES
|
||||||
.TF \*9/src/cmd/samterm
|
.TF $HOME/sam.save
|
||||||
.TP
|
.TP
|
||||||
.B $home/sam.save
|
.B $HOME/sam.save
|
||||||
.TP
|
.TP
|
||||||
.B $home/sam.err
|
.B $HOME/sam.err
|
||||||
.TP
|
.TP
|
||||||
.B \*9/bin/samsave
|
.B \*9/bin/samsave
|
||||||
the program called to unpack
|
the program called to unpack
|
||||||
.BR $home/sam.save .
|
.BR $HOME/sam.save .
|
||||||
.SH SOURCE
|
.SH SOURCE
|
||||||
.TF \*9/src/cmd/samterm
|
.TF \*9/src/cmd/samterm
|
||||||
.TP
|
.TP
|
||||||
|
@ -886,6 +889,8 @@ itself
|
||||||
source for the separate terminal part
|
source for the separate terminal part
|
||||||
.TP
|
.TP
|
||||||
.B \*9/bin/B
|
.B \*9/bin/B
|
||||||
|
.TP
|
||||||
|
.B \*9/bin/E
|
||||||
.SH SEE ALSO
|
.SH SEE ALSO
|
||||||
.IR ed (1),
|
.IR ed (1),
|
||||||
.IR sed (1),
|
.IR sed (1),
|
||||||
|
|
|
@ -124,7 +124,7 @@ The output is the planet's name, right ascension and declination, azimuth and al
|
||||||
for the moon and sun, as shown by
|
for the moon and sun, as shown by
|
||||||
.BR astro .
|
.BR astro .
|
||||||
The positions are current at the start of
|
The positions are current at the start of
|
||||||
.I scat 's
|
.IR scat 's
|
||||||
execution; see the
|
execution; see the
|
||||||
.B astro
|
.B astro
|
||||||
command in the next section for more information.
|
command in the next section for more information.
|
||||||
|
@ -313,20 +313,20 @@ Draw a map of the Pleiades.
|
||||||
expand 1
|
expand 1
|
||||||
plot
|
plot
|
||||||
.EE
|
.EE
|
||||||
.PP
|
.\" .PP
|
||||||
Show a pretty galaxy.
|
.\" Show a pretty galaxy.
|
||||||
.EX
|
.\" .EX
|
||||||
ngc1300
|
.\" ngc1300
|
||||||
plate 10'
|
.\" plate 10'
|
||||||
.EE
|
.\" .EE
|
||||||
.SH FILES
|
.SH FILES
|
||||||
.B /lib/sky/*.scat
|
.B \*9/sky/*.scat
|
||||||
.SH SOURCE
|
.SH SOURCE
|
||||||
.B \*9/src/cmd/scat
|
.B \*9/src/cmd/scat
|
||||||
.SH SEE ALSO
|
.SH SEE ALSO
|
||||||
.IR astro (1)
|
.IR astro (1)
|
||||||
.br
|
.br
|
||||||
.B /lib/sky/constelnames\ \
|
.B \*9/sky/constelnames\ \
|
||||||
the three-letter abbreviations of the constellation names.
|
the three-letter abbreviations of the constellation names.
|
||||||
.PP
|
.PP
|
||||||
The data was provided by the Astronomical Data Center at the NASA Goddard
|
The data was provided by the Astronomical Data Center at the NASA Goddard
|
||||||
|
|
|
@ -127,70 +127,70 @@ The next three commands fetch the persistent copy of the secrets,
|
||||||
append a new secret,
|
append a new secret,
|
||||||
and save the updated file back to secstore.
|
and save the updated file back to secstore.
|
||||||
The final command loads the new secret into the running factotum.
|
The final command loads the new secret into the running factotum.
|
||||||
.PP
|
.\" .PP
|
||||||
The
|
.\" The
|
||||||
.I ipso
|
.\" .I ipso
|
||||||
command packages this sequence into a convenient script to simplify editing of
|
.\" command packages this sequence into a convenient script to simplify editing of
|
||||||
.I files
|
.\" .I files
|
||||||
stored on a secure store.
|
.\" stored on a secure store.
|
||||||
It copies the named
|
.\" It copies the named
|
||||||
.I files
|
.\" .I files
|
||||||
into a local
|
.\" into a local
|
||||||
.IR ramfs (4)
|
.\" .IR ramfs (4)
|
||||||
and invokes
|
.\" and invokes
|
||||||
.IR acme (1)
|
.\" .IR acme (1)
|
||||||
on them. When the editor exits,
|
.\" on them. When the editor exits,
|
||||||
.I ipso
|
.\" .I ipso
|
||||||
prompts the user to confirm copying modifed or newly created files back to
|
.\" prompts the user to confirm copying modifed or newly created files back to
|
||||||
.I secstore.
|
.\" .I secstore.
|
||||||
If no
|
.\" If no
|
||||||
.I file
|
.\" .I file
|
||||||
is mentioned,
|
.\" is mentioned,
|
||||||
.I ipso
|
.\" .I ipso
|
||||||
grabs all the user's files from
|
.\" grabs all the user's files from
|
||||||
.I secstore
|
.\" .I secstore
|
||||||
for editing.
|
.\" for editing.
|
||||||
.PP
|
.\" .PP
|
||||||
By default, ipso will edit the
|
.\" By default, ipso will edit the
|
||||||
.I secstore
|
.\" .I secstore
|
||||||
files and, if
|
.\" files and, if
|
||||||
one of them is named
|
.\" one of them is named
|
||||||
.BR factotum ,
|
.\" .BR factotum ,
|
||||||
flush your current keys from factotum and load
|
.\" flush your current keys from factotum and load
|
||||||
the new ones from the file.
|
.\" the new ones from the file.
|
||||||
If you supply any of the
|
.\" If you supply any of the
|
||||||
.BR -e ,
|
.\" .BR -e ,
|
||||||
.BR -f ,
|
.\" .BR -f ,
|
||||||
or
|
.\" or
|
||||||
.BR -l
|
.\" .BR -l
|
||||||
options,
|
.\" options,
|
||||||
.I ipso
|
.\" .I ipso
|
||||||
will just perform the operations you requested, i.e.,
|
.\" will just perform the operations you requested, i.e.,
|
||||||
edit, flush, and/or load.
|
.\" edit, flush, and/or load.
|
||||||
.PP
|
.\" .PP
|
||||||
The
|
.\" The
|
||||||
.B -s
|
.\" .B -s
|
||||||
option of
|
.\" option of
|
||||||
.I ipso
|
.\" .I ipso
|
||||||
invokes
|
.\" invokes
|
||||||
.IR sam (1)
|
.\" .IR sam (1)
|
||||||
as the editor insted of
|
.\" as the editor insted of
|
||||||
.BR acme ;
|
.\" .BR acme ;
|
||||||
the
|
.\" the
|
||||||
.B -a
|
.\" .B -a
|
||||||
option provides a similar service for files encrypted by
|
.\" option provides a similar service for files encrypted by
|
||||||
.I aescbc
|
.\" .I aescbc
|
||||||
.RI ( q.v. ).
|
.\" .RI ( q.v. ).
|
||||||
With the
|
.\" With the
|
||||||
.B -a
|
.\" .B -a
|
||||||
option, the full rooted pathname of the
|
.\" option, the full rooted pathname of the
|
||||||
.I file
|
.\" .I file
|
||||||
must be specified and all
|
.\" must be specified and all
|
||||||
.I files
|
.\" .I files
|
||||||
must be encrypted with the same key.
|
.\" must be encrypted with the same key.
|
||||||
Also with
|
.\" Also with
|
||||||
.BR -a ,
|
.\" .BR -a ,
|
||||||
newly created files are ignored.
|
.\" newly created files are ignored.
|
||||||
.PP
|
.PP
|
||||||
.I Aescbc
|
.I Aescbc
|
||||||
encrypts and decrypts using AES (Rijndael) in cipher
|
encrypts and decrypts using AES (Rijndael) in cipher
|
||||||
|
@ -205,8 +205,8 @@ There is deliberately no backup of files on the secstore, so
|
||||||
.B -r
|
.B -r
|
||||||
(or a disk crash) is irrevocable. You are advised to store
|
(or a disk crash) is irrevocable. You are advised to store
|
||||||
important secrets in a second location.
|
important secrets in a second location.
|
||||||
.PP
|
.\" .PP
|
||||||
When using
|
.\" When using
|
||||||
.IR ipso ,
|
.\" .IR ipso ,
|
||||||
secrets will appear as plain text in the editor window,
|
.\" secrets will appear as plain text in the editor window,
|
||||||
so use the command in private.
|
.\" so use the command in private.
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
.TH SED 1
|
.TH SED 1
|
||||||
.SH NAME
|
.SH NAME
|
||||||
9sed \- stream editor
|
sed \- stream editor
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
.B 9sed
|
.B sed
|
||||||
[
|
[
|
||||||
.B -n
|
.B -n
|
||||||
]
|
]
|
||||||
|
@ -366,7 +366,7 @@ ${
|
||||||
Delete all but one of each group of empty lines from a
|
Delete all but one of each group of empty lines from a
|
||||||
formatted manuscript.
|
formatted manuscript.
|
||||||
.SH SOURCE
|
.SH SOURCE
|
||||||
.B \*9/src/cmd/9sed.c
|
.B \*9/src/cmd/sed.c
|
||||||
.SH SEE ALSO
|
.SH SEE ALSO
|
||||||
.IR ed (1),
|
.IR ed (1),
|
||||||
.IR grep (1),
|
.IR grep (1),
|
||||||
|
|
|
@ -19,6 +19,8 @@ sort \- sort and/or merge files
|
||||||
.I ,pos2
|
.I ,pos2
|
||||||
]
|
]
|
||||||
] ...
|
] ...
|
||||||
|
.br
|
||||||
|
\h'0.5in'
|
||||||
[
|
[
|
||||||
.B -o
|
.B -o
|
||||||
.I output
|
.I output
|
||||||
|
@ -210,7 +212,7 @@ This file may be the same as one of the inputs.
|
||||||
Put temporary files in
|
Put temporary files in
|
||||||
.I dir
|
.I dir
|
||||||
rather than in
|
rather than in
|
||||||
.BR /tmp .
|
.BR /var/tmp .
|
||||||
.ne 4
|
.ne 4
|
||||||
.SH EXAMPLES
|
.SH EXAMPLES
|
||||||
.TP
|
.TP
|
||||||
|
@ -236,7 +238,7 @@ grep -n '^' input | sort -t: +1f +0n | sed 's/[0-9]*://'
|
||||||
A stable sort: input lines that compare equal will
|
A stable sort: input lines that compare equal will
|
||||||
come out in their original order.
|
come out in their original order.
|
||||||
.SH FILES
|
.SH FILES
|
||||||
.BI /tmp/sort. <pid>.<ordinal>
|
.BI /var/tmp/sort. <pid>.<ordinal>
|
||||||
.SH SOURCE
|
.SH SOURCE
|
||||||
.B \*9/src/cmd/sort.c
|
.B \*9/src/cmd/sort.c
|
||||||
.SH SEE ALSO
|
.SH SEE ALSO
|
||||||
|
|
|
@ -67,7 +67,7 @@ American spelling list
|
||||||
.B \*9/lib/brspell
|
.B \*9/lib/brspell
|
||||||
British spelling list
|
British spelling list
|
||||||
.TP
|
.TP
|
||||||
.B /bin/aux/sprog
|
.B \*9/bin/sprog
|
||||||
The actual spelling checker.
|
The actual spelling checker.
|
||||||
It expects one word per line on standard input,
|
It expects one word per line on standard input,
|
||||||
and takes the same arguments as
|
and takes the same arguments as
|
||||||
|
@ -87,7 +87,7 @@ source for
|
||||||
The heuristics of
|
The heuristics of
|
||||||
.IR deroff (1)
|
.IR deroff (1)
|
||||||
used to excise formatting information are imperfect.
|
used to excise formatting information are imperfect.
|
||||||
.br
|
.PP
|
||||||
The spelling list's coverage is uneven;
|
The spelling list's coverage is uneven;
|
||||||
in particular biology, medicine, and chemistry, and
|
in particular biology, medicine, and chemistry, and
|
||||||
perforce proper names,
|
perforce proper names,
|
||||||
|
|
|
@ -167,13 +167,21 @@ to exit.
|
||||||
.PD
|
.PD
|
||||||
.SH EXAMPLE
|
.SH EXAMPLE
|
||||||
Show the load, memory, interrupts, system calls, context switches,
|
Show the load, memory, interrupts, system calls, context switches,
|
||||||
and ethernet packets for the local machine, a remote Linux machine
|
and ethernet packets for the local machine,
|
||||||
.BR tux ,
|
a remote BSD machine
|
||||||
and a remote BSD machine
|
.IR daemon ,
|
||||||
.BR daemon .
|
and
|
||||||
|
a remote Linux machine
|
||||||
|
.IR tux .
|
||||||
|
.I Auxstats
|
||||||
|
is not in
|
||||||
|
.IR tux 's
|
||||||
|
path, so the full path must be given.
|
||||||
.IP
|
.IP
|
||||||
.B
|
.EX
|
||||||
stats -lmisce `hostname` tux:\*9/bin/auxstats daemon
|
stats -lmisce `hostname` daemon \e
|
||||||
|
tux:\*9/bin/auxstats
|
||||||
|
.EE
|
||||||
.SH SOURCE
|
.SH SOURCE
|
||||||
.B \*9/src/cmd/draw/stats.c
|
.B \*9/src/cmd/draw/stats.c
|
||||||
.PP
|
.PP
|
||||||
|
|
|
@ -77,11 +77,11 @@ Print the first 10 lines of a file.
|
||||||
Tails relative to the end of the file
|
Tails relative to the end of the file
|
||||||
are treasured up in a buffer, and thus
|
are treasured up in a buffer, and thus
|
||||||
are limited in length.
|
are limited in length.
|
||||||
.br
|
.PP
|
||||||
According to custom, option
|
According to custom, option
|
||||||
.BI + number
|
.BI + number
|
||||||
counts lines from 1, and counts
|
counts lines from 1, and counts
|
||||||
blocks and bytes from 0.
|
blocks and bytes from 0.
|
||||||
.br
|
.PP
|
||||||
.I Tail
|
.I Tail
|
||||||
is ignorant of UTF.
|
is ignorant of UTF.
|
||||||
|
|
|
@ -158,19 +158,19 @@ to speed output and reduce output character count.
|
||||||
Tab settings are assumed to be every
|
Tab settings are assumed to be every
|
||||||
8 nominal character widths.
|
8 nominal character widths.
|
||||||
.SH FILES
|
.SH FILES
|
||||||
.TF /sys/lib/troff/term/*
|
.TF \*9/troff/term/*
|
||||||
.TP
|
.TP
|
||||||
.B /tmp/trtmp*
|
.B /tmp/trtmp*
|
||||||
temporary file
|
temporary file
|
||||||
.TP
|
.TP
|
||||||
.B /sys/lib/tmac/tmac.*
|
.B \*9/tmac/tmac.*
|
||||||
standard macro files
|
standard macro files
|
||||||
.TP
|
.TP
|
||||||
.B /sys/lib/troff/term/*
|
.B \*9/troff/term/*
|
||||||
terminal driving tables for
|
terminal driving tables for
|
||||||
.I nroff
|
.I nroff
|
||||||
.TP
|
.TP
|
||||||
.B /sys/lib/troff/font/*
|
.B \*9/troff/font/*
|
||||||
font width tables for
|
font width tables for
|
||||||
.I troff
|
.I troff
|
||||||
.SH SOURCE
|
.SH SOURCE
|
||||||
|
|
|
@ -73,13 +73,13 @@ Currency is denoted
|
||||||
etc.
|
etc.
|
||||||
.PP
|
.PP
|
||||||
The complete list of units can be found in
|
The complete list of units can be found in
|
||||||
.BR /lib/units .
|
.BR \*9/lib/units .
|
||||||
A
|
A
|
||||||
.I file
|
.I file
|
||||||
argument to
|
argument to
|
||||||
.I units
|
.I units
|
||||||
specifies a file to be used instead of
|
specifies a file to be used instead of
|
||||||
.BR /lib/units.
|
.BR \*9/lib/units.
|
||||||
The
|
The
|
||||||
.B -v
|
.B -v
|
||||||
flag causes
|
flag causes
|
||||||
|
@ -93,7 +93,7 @@ you want: atm
|
||||||
/ .97973
|
/ .97973
|
||||||
.EE
|
.EE
|
||||||
.SH FILES
|
.SH FILES
|
||||||
.B /lib/units
|
.B \*9/lib/units
|
||||||
.SH SOURCE
|
.SH SOURCE
|
||||||
.B \*9/src/cmd/units.y
|
.B \*9/src/cmd/units.y
|
||||||
.SH BUGS
|
.SH BUGS
|
||||||
|
@ -102,7 +102,6 @@ Since
|
||||||
does only multiplicative scale changes,
|
does only multiplicative scale changes,
|
||||||
it can convert Kelvin to Rankine but not Centigrade to
|
it can convert Kelvin to Rankine but not Centigrade to
|
||||||
Fahrenheit.
|
Fahrenheit.
|
||||||
.br
|
.PP
|
||||||
Currency conversions are only as accurate as the last time someone
|
Currency conversions are only as accurate as the last time someone
|
||||||
updated
|
updated the database.
|
||||||
.BR /lib/units .
|
|
||||||
|
|
|
@ -127,4 +127,3 @@ and the vac archives that are expanded and merged.
|
||||||
.B \*9/src/cmd/vac
|
.B \*9/src/cmd/vac
|
||||||
.SH "SEE ALSO"
|
.SH "SEE ALSO"
|
||||||
Plan 9's \fIvacfs\fR(4) and \fIventi\fR(8)
|
Plan 9's \fIvacfs\fR(4) and \fIventi\fR(8)
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,7 @@ but
|
||||||
looks for only
|
looks for only
|
||||||
.SM ASCII
|
.SM ASCII
|
||||||
space, tab and newline.
|
space, tab and newline.
|
||||||
.br
|
.PP
|
||||||
.I Wc
|
.I Wc
|
||||||
should have options to count suboptimal
|
should have options to count suboptimal
|
||||||
.SM UTF
|
.SM UTF
|
||||||
|
|
|
@ -31,6 +31,8 @@ The choice of browser is determined by the
|
||||||
.B $BROWSER
|
.B $BROWSER
|
||||||
environment variable, which should be the name of
|
environment variable, which should be the name of
|
||||||
the executable for your choice of web browser.
|
the executable for your choice of web browser.
|
||||||
|
The default is
|
||||||
|
.BR firefox .
|
||||||
Since the various browsers all use different syntaxes
|
Since the various browsers all use different syntaxes
|
||||||
in their
|
in their
|
||||||
.B -remote
|
.B -remote
|
||||||
|
@ -41,6 +43,23 @@ When possible,
|
||||||
.I web
|
.I web
|
||||||
opens each URL in a new tab rather than a new window.
|
opens each URL in a new tab rather than a new window.
|
||||||
.PP
|
.PP
|
||||||
|
When run under Mac OS X,
|
||||||
|
.B $BROWSER
|
||||||
|
should be set to the string
|
||||||
|
.B safari
|
||||||
|
or
|
||||||
|
.BR firefox .
|
||||||
|
.I Web
|
||||||
|
uses AppleScript to talk to the browser.
|
||||||
|
If
|
||||||
|
.B $BROWSER
|
||||||
|
is not set,
|
||||||
|
.I web
|
||||||
|
looks for Firefox in
|
||||||
|
.BR /Applications/Firefox.app
|
||||||
|
and uses it if found;
|
||||||
|
otherwise it uses Safari.
|
||||||
|
.PP
|
||||||
.I Wmail
|
.I Wmail
|
||||||
starts the composition of a new mail message to
|
starts the composition of a new mail message to
|
||||||
.IR address .
|
.IR address .
|
||||||
|
@ -49,7 +68,8 @@ The choice of mailer is determined by the
|
||||||
.B $MAILER
|
.B $MAILER
|
||||||
environment variable.
|
environment variable.
|
||||||
The supported mailers are:
|
The supported mailers are:
|
||||||
.TP browser
|
.TP
|
||||||
|
.B browser
|
||||||
invoke the mailer via a
|
invoke the mailer via a
|
||||||
.B mailto://
|
.B mailto://
|
||||||
URL passed to
|
URL passed to
|
||||||
|
|
|
@ -1,15 +1,19 @@
|
||||||
.TH WINTEXT 1
|
.TH WINTEXT 1
|
||||||
.SH NAME
|
.SH NAME
|
||||||
wintext, ", "" \- access text in current window
|
wintext, ", "" \- access text in current window
|
||||||
|
.ds x \C'"'
|
||||||
|
.ds xx \C'"'\^\^\^\^\C'"'
|
||||||
|
.ds y \*x\
|
||||||
|
.ds yy \*(xx\
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
.B wintext
|
.B wintext
|
||||||
.br
|
.br
|
||||||
.B \C'"'\
|
.B \*x\
|
||||||
[
|
[
|
||||||
.I prefix
|
.I prefix
|
||||||
]
|
]
|
||||||
.br
|
.br
|
||||||
.B \C'"'\C'"'\
|
.B \*(xx\
|
||||||
[
|
[
|
||||||
.I prefix
|
.I prefix
|
||||||
]
|
]
|
||||||
|
@ -23,7 +27,7 @@ or
|
||||||
.IR 9term (1)
|
.IR 9term (1)
|
||||||
window to standard output.
|
window to standard output.
|
||||||
.PP
|
.PP
|
||||||
.I \C'"'
|
.I \*y
|
||||||
searches the window text for commands typed with a particular prefix
|
searches the window text for commands typed with a particular prefix
|
||||||
and prints them, indented, to standard output.
|
and prints them, indented, to standard output.
|
||||||
.I Prefix
|
.I Prefix
|
||||||
|
@ -31,18 +35,18 @@ is a regular expression that is matched against the beginning of the command-lin
|
||||||
If
|
If
|
||||||
.I prefix
|
.I prefix
|
||||||
is omitted,
|
is omitted,
|
||||||
.I \C'"'
|
.I \*y
|
||||||
prints the last command executed.
|
prints the last command executed.
|
||||||
.I \C'"'\C'"'
|
.I \*(yy
|
||||||
prints the last command that
|
prints the last command that
|
||||||
.I \C'"'
|
.I \*y
|
||||||
would print and then executes it by piping it into
|
would print and then executes it by piping it into
|
||||||
.IR rc (1).
|
.IR rc (1).
|
||||||
.PP
|
.PP
|
||||||
Both
|
Both
|
||||||
.I \C'"'
|
.I \*y
|
||||||
and
|
and
|
||||||
.I \C'"'\C'"'
|
.I \*(yy
|
||||||
identify commands in the window text by looking for lines
|
identify commands in the window text by looking for lines
|
||||||
beginning with a shell prompt.
|
beginning with a shell prompt.
|
||||||
Prompts are assumed to be an unindented sequence of
|
Prompts are assumed to be an unindented sequence of
|
||||||
|
@ -62,7 +66,7 @@ commands executed in this window:
|
||||||
.IP
|
.IP
|
||||||
.EX
|
.EX
|
||||||
.ta +4n
|
.ta +4n
|
||||||
% \C'"' 'l[sc]'
|
% \*x 'l[sc]'
|
||||||
% ls -l /tmp/qq*
|
% ls -l /tmp/qq*
|
||||||
# ls -lrt /etc
|
# ls -lrt /etc
|
||||||
% lc r*
|
% lc r*
|
||||||
|
@ -75,7 +79,7 @@ command again:
|
||||||
.IP
|
.IP
|
||||||
.EX
|
.EX
|
||||||
.ta +4n
|
.ta +4n
|
||||||
% \C'"'\C'"' lc
|
% \*(xx lc
|
||||||
% lc r*
|
% lc r*
|
||||||
ramfs rc read rio rm
|
ramfs rc read rio rm
|
||||||
%
|
%
|
||||||
|
@ -86,13 +90,9 @@ ramfs rc read rio rm
|
||||||
.SH SOURCE
|
.SH SOURCE
|
||||||
.B \*9/bin
|
.B \*9/bin
|
||||||
.SH BUGS
|
.SH BUGS
|
||||||
.I \C'"'
|
.I \*y
|
||||||
and
|
and
|
||||||
.I \C'"'\C'"'
|
.I \*(yy
|
||||||
are hard to type in shells other than
|
are hard to type in shells other than
|
||||||
.IR rc (1).
|
.IR rc (1).
|
||||||
.\" and in troff!
|
.\" and in troff!
|
||||||
.PP
|
|
||||||
Don't run
|
|
||||||
.I \C'"'\C'"'
|
|
||||||
twice in a row.
|
|
||||||
|
|
|
@ -145,7 +145,7 @@ parser prototype
|
||||||
.B \*9/lib/yaccpars
|
.B \*9/lib/yaccpars
|
||||||
parser prototype using stdio
|
parser prototype using stdio
|
||||||
.SH SOURCE
|
.SH SOURCE
|
||||||
.B \*9/src/cmd/9yacc.c
|
.B \*9/src/cmd/yacc.c
|
||||||
.SH "SEE ALSO"
|
.SH "SEE ALSO"
|
||||||
.IR lex (1)
|
.IR lex (1)
|
||||||
.br
|
.br
|
||||||
|
|
395
man/man3/0intro.3
Normal file
395
man/man3/0intro.3
Normal file
|
@ -0,0 +1,395 @@
|
||||||
|
.TH INTRO 3
|
||||||
|
.SH NAME
|
||||||
|
intro \- introduction to library functions
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.nf
|
||||||
|
.B #include <u.h>
|
||||||
|
.PP
|
||||||
|
.B #include \fIany Unix headers\fR
|
||||||
|
.PP
|
||||||
|
.B #include <libc.h>
|
||||||
|
.PP
|
||||||
|
.B #include <auth.h>
|
||||||
|
.PP
|
||||||
|
.B #include <bio.h>
|
||||||
|
.PP
|
||||||
|
.B #include <draw.h>
|
||||||
|
.PP
|
||||||
|
.B #include <fcall.h>
|
||||||
|
.PP
|
||||||
|
.B #include <frame.h>
|
||||||
|
.PP
|
||||||
|
.B #include <mach.h>
|
||||||
|
.PP
|
||||||
|
.B #include <regexp.h>
|
||||||
|
.PP
|
||||||
|
.B #include <thread.h>
|
||||||
|
.fi
|
||||||
|
.SH DESCRIPTION
|
||||||
|
This section describes functions
|
||||||
|
in various libraries.
|
||||||
|
For the most part, each library is defined by a single C include
|
||||||
|
file, such as those listed above, and a single archive file containing
|
||||||
|
the library proper. The name of the archive is
|
||||||
|
.BI \*9/lib/lib x .a \f1,
|
||||||
|
where
|
||||||
|
.I x
|
||||||
|
is the base of the include file name, stripped of a leading
|
||||||
|
.B lib
|
||||||
|
if present.
|
||||||
|
For example,
|
||||||
|
.B <draw.h>
|
||||||
|
defines the contents of library
|
||||||
|
.BR \*9/lib/libdraw.a ,
|
||||||
|
which may be abbreviated when named to the loader as
|
||||||
|
.BR -ldraw .
|
||||||
|
In practice, each include file contains a magic pragma
|
||||||
|
that directs the loader to pick up the associated archive
|
||||||
|
automatically, so it is rarely necessary to tell the loader
|
||||||
|
which
|
||||||
|
libraries a program needs;
|
||||||
|
see
|
||||||
|
.IR 9c (1).
|
||||||
|
.PP
|
||||||
|
The library to which a function belongs is defined by the
|
||||||
|
header file that defines its interface.
|
||||||
|
The `C library',
|
||||||
|
.IR libc ,
|
||||||
|
contains most of the basic subroutines such
|
||||||
|
as
|
||||||
|
.IR strlen .
|
||||||
|
Declarations for all of these functions are
|
||||||
|
in
|
||||||
|
.BR <libc.h> ,
|
||||||
|
which must be preceded by
|
||||||
|
.RI ( needs )
|
||||||
|
an include of
|
||||||
|
.BR <u.h> .
|
||||||
|
The graphics library,
|
||||||
|
.IR draw ,
|
||||||
|
is defined by
|
||||||
|
.BR <draw.h> ,
|
||||||
|
which needs
|
||||||
|
.B <libc.h>
|
||||||
|
and
|
||||||
|
.BR <u.h> .
|
||||||
|
The Buffered I/O library,
|
||||||
|
.IR libbio ,
|
||||||
|
is defined by
|
||||||
|
.BR <bio.h> ,
|
||||||
|
which needs
|
||||||
|
.B <libc.h>
|
||||||
|
and
|
||||||
|
.BR <u.h> .
|
||||||
|
The ANSI C Standard I/O library,
|
||||||
|
.IR libstdio ,
|
||||||
|
is defined by
|
||||||
|
.BR <stdio.h> ,
|
||||||
|
which needs
|
||||||
|
.BR <u.h> .
|
||||||
|
There are a few other, less commonly used libraries defined on
|
||||||
|
individual pages of this section.
|
||||||
|
.PP
|
||||||
|
The include file
|
||||||
|
.BR <u.h> ,
|
||||||
|
a prerequisite of several other include files,
|
||||||
|
declares the architecture-dependent and -independent types, including:
|
||||||
|
.IR uchar ,
|
||||||
|
.IR ushort ,
|
||||||
|
and
|
||||||
|
.IR ulong ,
|
||||||
|
the unsigned integer types;
|
||||||
|
.IR schar ,
|
||||||
|
the signed char type;
|
||||||
|
.I vlong
|
||||||
|
and
|
||||||
|
.IR uvlong ,
|
||||||
|
the signed and unsigned very long integral types;
|
||||||
|
.IR Rune ,
|
||||||
|
the Unicode character type;
|
||||||
|
.IR u8int ,
|
||||||
|
.IR u16int ,
|
||||||
|
.IR u32int ,
|
||||||
|
and
|
||||||
|
.IR u64int ,
|
||||||
|
the unsigned integral types with specific widths;
|
||||||
|
.IR jmp_buf ,
|
||||||
|
the type of the argument to
|
||||||
|
.I setjmp
|
||||||
|
and
|
||||||
|
.IR longjmp ,
|
||||||
|
plus macros that define the layout of
|
||||||
|
.IR jmp_buf
|
||||||
|
(see
|
||||||
|
.IR setjmp (3));
|
||||||
|
.\" definitions of the bits in the floating-point control register
|
||||||
|
.\" as used by
|
||||||
|
.\" .IR getfcr (2);
|
||||||
|
and
|
||||||
|
the macros
|
||||||
|
.B va_arg
|
||||||
|
and friends for accessing arguments of variadic functions (identical to the
|
||||||
|
macros defined in
|
||||||
|
.B <stdarg.h>
|
||||||
|
in ANSI C).
|
||||||
|
.PP
|
||||||
|
Plan 9 and Unix use many similarly-named functions for different purposes:
|
||||||
|
for example, Plan 9's
|
||||||
|
.I dup
|
||||||
|
is closer to (but not exactly) Unix's
|
||||||
|
.IR dup2 .
|
||||||
|
To avoid name conflicts,
|
||||||
|
.B <libc.h>
|
||||||
|
defines many of these names as preprocessor macros to add a
|
||||||
|
.I p9
|
||||||
|
prefix,
|
||||||
|
so that
|
||||||
|
.I dup
|
||||||
|
becomes
|
||||||
|
.IR p9dup .
|
||||||
|
To disable this renaming,
|
||||||
|
.B #define
|
||||||
|
.B NOPLAN9DEFINES
|
||||||
|
before including
|
||||||
|
.BR <libc.h> .
|
||||||
|
If Unix headers must be included in a program,
|
||||||
|
they should be included after
|
||||||
|
.BR <u.h> ,
|
||||||
|
which sets important preprocessor directives
|
||||||
|
(for example, to enable 64-bit file offsets),
|
||||||
|
but before
|
||||||
|
.BR <libc.h> ,
|
||||||
|
to avoid renaming problems.
|
||||||
|
.SS "Name space
|
||||||
|
Files are collected into a hierarchical organization called a
|
||||||
|
.I "file tree
|
||||||
|
starting in a
|
||||||
|
.I directory
|
||||||
|
called the
|
||||||
|
.IR root .
|
||||||
|
File names, also called
|
||||||
|
.IR paths ,
|
||||||
|
consist of a number of
|
||||||
|
.BR / -separated
|
||||||
|
.I "path elements"
|
||||||
|
with the slashes corresponding to directories.
|
||||||
|
A path element must contain only printable
|
||||||
|
characters (those outside the control spaces of
|
||||||
|
.SM ASCII
|
||||||
|
and Latin-1).
|
||||||
|
A path element cannot contain a slash.
|
||||||
|
.PP
|
||||||
|
When a process presents a file name to Plan 9, it is
|
||||||
|
.I evaluated
|
||||||
|
by the following algorithm.
|
||||||
|
Start with a directory that depends on the first
|
||||||
|
character of the path:
|
||||||
|
.L /
|
||||||
|
means the root of the main hierarchy,
|
||||||
|
and anything else means the process's current working directory.
|
||||||
|
Then for each path element, look up the element
|
||||||
|
in the directory, advance to that directory,
|
||||||
|
do a possible translation (see below), and repeat.
|
||||||
|
The last step may yield a directory or regular file.
|
||||||
|
.SS "File I/O"
|
||||||
|
Files are opened for input or output
|
||||||
|
by
|
||||||
|
.I open
|
||||||
|
or
|
||||||
|
.I create
|
||||||
|
(see
|
||||||
|
.IR open (3)).
|
||||||
|
These calls return an integer called a
|
||||||
|
.IR "file descriptor"
|
||||||
|
which identifies the file
|
||||||
|
to subsequent I/O calls,
|
||||||
|
notably
|
||||||
|
.IR read (3)
|
||||||
|
and
|
||||||
|
.IR write .
|
||||||
|
The system allocates the numbers by selecting the lowest unused descriptor.
|
||||||
|
They are allocated dynamically; there is no visible limit to the number of file
|
||||||
|
descriptors a process may have open.
|
||||||
|
They may be reassigned using
|
||||||
|
.IR dup (3).
|
||||||
|
File descriptors are indices into a
|
||||||
|
kernel resident
|
||||||
|
.IR "file descriptor table" .
|
||||||
|
Each process has an associated file descriptor table.
|
||||||
|
In threaded programs
|
||||||
|
(see
|
||||||
|
.IR thread (3)),
|
||||||
|
the file descriptor table is shared by all the procs.
|
||||||
|
.PP
|
||||||
|
By convention,
|
||||||
|
file descriptor 0 is the standard input,
|
||||||
|
1 is the standard output,
|
||||||
|
and 2 is the standard error output.
|
||||||
|
With one exception, the operating system is unaware of these conventions;
|
||||||
|
it is permissible to close file 0,
|
||||||
|
or even to replace it by a file open only for writing,
|
||||||
|
but many programs will be confused by such chicanery.
|
||||||
|
The exception is that the system prints messages about broken processes
|
||||||
|
to file descriptor 2.
|
||||||
|
.PP
|
||||||
|
Files are normally read or written in sequential order.
|
||||||
|
The I/O position in the file is called the
|
||||||
|
.IR "file offset"
|
||||||
|
and may be set arbitrarily using the
|
||||||
|
.IR seek (3)
|
||||||
|
system call.
|
||||||
|
.PP
|
||||||
|
Directories may be opened like regular files.
|
||||||
|
Instead of reading them with
|
||||||
|
.IR read (3),
|
||||||
|
use the
|
||||||
|
.B Dir
|
||||||
|
structure-based
|
||||||
|
routines described in
|
||||||
|
.IR dirread (3).
|
||||||
|
The entry
|
||||||
|
corresponding to an arbitrary file can be retrieved by
|
||||||
|
.IR dirstat
|
||||||
|
(see
|
||||||
|
.IR stat (3))
|
||||||
|
or
|
||||||
|
.IR dirfstat ;
|
||||||
|
.I dirwstat
|
||||||
|
and
|
||||||
|
.I dirfwstat
|
||||||
|
write back entries, thus changing the properties of a file.
|
||||||
|
.PP
|
||||||
|
New files are made with
|
||||||
|
.I create
|
||||||
|
(see
|
||||||
|
.IR open (3))
|
||||||
|
and deleted with
|
||||||
|
.IR remove (3).
|
||||||
|
Directories may not directly be written;
|
||||||
|
.IR create ,
|
||||||
|
.IR remove ,
|
||||||
|
.IR wstat ,
|
||||||
|
and
|
||||||
|
.I fwstat
|
||||||
|
alter them.
|
||||||
|
.PP
|
||||||
|
.IR Pipe (3)
|
||||||
|
creates a connected pair of file descriptors,
|
||||||
|
useful for bidirectional local communication.
|
||||||
|
.SS "Process execution and control"
|
||||||
|
A new process is created
|
||||||
|
when an existing one calls
|
||||||
|
.IR fork (2).
|
||||||
|
The new (child) process starts out with
|
||||||
|
copies of the address space and most other attributes
|
||||||
|
of the old (parent) process.
|
||||||
|
In particular,
|
||||||
|
the child starts out running
|
||||||
|
the same program as the parent;
|
||||||
|
.IR exec (3)
|
||||||
|
will bring in a different one.
|
||||||
|
.PP
|
||||||
|
Each process has a unique integer process id;
|
||||||
|
a set of open files, indexed by file descriptor;
|
||||||
|
and a current working directory
|
||||||
|
(changed by
|
||||||
|
.IR chdir (2)).
|
||||||
|
.PP
|
||||||
|
Each process has a set of attributes \(em memory, open files,
|
||||||
|
name space, etc. \(em that may be shared or unique.
|
||||||
|
Flags to
|
||||||
|
.IR rfork
|
||||||
|
control the sharing of these attributes.
|
||||||
|
.PP
|
||||||
|
A process terminates by calling
|
||||||
|
.IR exits (3).
|
||||||
|
A parent process may call
|
||||||
|
.IR wait (3)
|
||||||
|
to wait for some child to terminate.
|
||||||
|
A bit of status information
|
||||||
|
may be passed from
|
||||||
|
.I exits
|
||||||
|
to
|
||||||
|
.IR wait .
|
||||||
|
On Plan 9, the status information is an arbitrary text string,
|
||||||
|
but on Unix it is a single integer.
|
||||||
|
The Plan 9 interface persists here, although the functionality does not.
|
||||||
|
Instead, empty strings are converted to exit status 0 and non-empty strings to 1.
|
||||||
|
.PP
|
||||||
|
A process can go to sleep for a specified time by calling
|
||||||
|
.IR sleep (3).
|
||||||
|
.PP
|
||||||
|
There is a
|
||||||
|
.I notification
|
||||||
|
mechanism for telling a process about events such as address faults,
|
||||||
|
floating point faults, and messages from other processes.
|
||||||
|
A process uses
|
||||||
|
.IR notify (3)
|
||||||
|
to register the function to be called (the
|
||||||
|
.IR "notification handler" )
|
||||||
|
when such events occur.
|
||||||
|
.SS Multithreading
|
||||||
|
Where possible according to the ANSI C standard,
|
||||||
|
the main C library works properly in multiprocess programs;
|
||||||
|
.IR malloc ,
|
||||||
|
.IR print ,
|
||||||
|
and the other routines use locks (see
|
||||||
|
.IR lock (3))
|
||||||
|
to synchronize access to their data structures.
|
||||||
|
The graphics library defined in
|
||||||
|
.B <draw.h>
|
||||||
|
is also multi-process capable; details are in
|
||||||
|
.IR graphics (3).
|
||||||
|
In general, though, multiprocess programs should use some form of synchronization
|
||||||
|
to protect shared data.
|
||||||
|
.PP
|
||||||
|
The thread library, defined in
|
||||||
|
.BR <thread.h> ,
|
||||||
|
provides support for multiprocess programs.
|
||||||
|
It includes a data structure called a
|
||||||
|
.B Channel
|
||||||
|
that can be used to send messages between processes,
|
||||||
|
and coroutine-like
|
||||||
|
.IR threads ,
|
||||||
|
which enable multiple threads of control within a single process.
|
||||||
|
The threads within a process are scheduled by the library, but there is
|
||||||
|
no pre-emptive scheduling within a process; thread switching occurs
|
||||||
|
only at communication or synchronization points.
|
||||||
|
.PP
|
||||||
|
Most programs using the thread library
|
||||||
|
comprise multiple processes
|
||||||
|
communicating over channels, and within some processes,
|
||||||
|
multiple threads. Since I/O calls may block, a system
|
||||||
|
call may block all the threads in a process.
|
||||||
|
Therefore, a program that shouldn't block unexpectedly will use a process
|
||||||
|
to serve the I/O request, passing the result to the main processes
|
||||||
|
over a channel when the request completes.
|
||||||
|
For examples of this design, see
|
||||||
|
.IR ioproc (3)
|
||||||
|
or
|
||||||
|
.IR mouse (3).
|
||||||
|
.SH SEE ALSO
|
||||||
|
.IR nm (1),
|
||||||
|
.IR 9c (1)
|
||||||
|
.SH DIAGNOSTICS
|
||||||
|
Math functions in
|
||||||
|
.I libc
|
||||||
|
return
|
||||||
|
special values when the function is undefined for the
|
||||||
|
given arguments or when the value is not representable
|
||||||
|
(see
|
||||||
|
.IR nan (3)).
|
||||||
|
.PP
|
||||||
|
Some of the functions in
|
||||||
|
.I libc
|
||||||
|
are system calls and many others employ system calls in their implementation.
|
||||||
|
All system calls return integers,
|
||||||
|
with \-1 indicating that an error occurred;
|
||||||
|
.IR errstr (3)
|
||||||
|
recovers a string describing the error.
|
||||||
|
Some user-level library functions also use the
|
||||||
|
.I errstr
|
||||||
|
mechanism to report errors.
|
||||||
|
Functions that may affect the value of the error string are said to ``set
|
||||||
|
.IR errstr '';
|
||||||
|
it is understood that the error string is altered only if an error occurs.
|
|
@ -109,13 +109,13 @@ and
|
||||||
.B Fid
|
.B Fid
|
||||||
structures are allocated one-to-one with uncompleted
|
structures are allocated one-to-one with uncompleted
|
||||||
requests and active fids, and are described in
|
requests and active fids, and are described in
|
||||||
.IR 9pfid (3).
|
.IR 9p-fid (3).
|
||||||
.PP
|
.PP
|
||||||
The behavior of
|
The behavior of
|
||||||
.I srv
|
.I srv
|
||||||
depends on whether there is a file tree
|
depends on whether there is a file tree
|
||||||
(see
|
(see
|
||||||
.IR 9pfile (3))
|
.IR 9p-file (3))
|
||||||
associated with the server, that is,
|
associated with the server, that is,
|
||||||
whether the
|
whether the
|
||||||
.B tree
|
.B tree
|
||||||
|
@ -717,8 +717,8 @@ accept the
|
||||||
option to increment
|
option to increment
|
||||||
.BR chatty9p .
|
.BR chatty9p .
|
||||||
.SH EXAMPLES
|
.SH EXAMPLES
|
||||||
\*9/src/lib9p/ramfs.c
|
.B \*9/src/lib9p/ramfs.c
|
||||||
is an example of simple single-threaded file servers.
|
is an example of a simple single-threaded file server.
|
||||||
On Plan 9, see
|
On Plan 9, see
|
||||||
.IR archfs ,
|
.IR archfs ,
|
||||||
.IR cdfs ,
|
.IR cdfs ,
|
||||||
|
@ -744,6 +744,6 @@ or is maintained elsewhere.
|
||||||
.SH SOURCE
|
.SH SOURCE
|
||||||
.B \*9/src/lib9p
|
.B \*9/src/lib9p
|
||||||
.SH SEE ALSO
|
.SH SEE ALSO
|
||||||
.IR 9pfid (3),
|
.IR 9p-fid (3),
|
||||||
.IR 9pfile (3),
|
.IR 9p-file (3),
|
||||||
.IR intro (9p)
|
.IR intro (9p)
|
||||||
|
|
|
@ -9,8 +9,8 @@ CFid, CFsys, fsinit, fsmount, fsroot, fssetroot, fsunmount, nsmount, fsversion,
|
||||||
.B #include <fcall.h>
|
.B #include <fcall.h>
|
||||||
.PP
|
.PP
|
||||||
.B #include <9pclient.h>
|
.B #include <9pclient.h>
|
||||||
|
.ta +\w'\fLCFsys* 'u
|
||||||
.PP
|
.PP
|
||||||
.ta +'\fLCFsys* 'u
|
|
||||||
.B
|
.B
|
||||||
CFsys* fsmount(int fd, char *aname)
|
CFsys* fsmount(int fd, char *aname)
|
||||||
.PP
|
.PP
|
||||||
|
@ -214,7 +214,7 @@ The path is parsed as a slash-separated sequence of path elements,
|
||||||
as on Unix and Plan 9.
|
as on Unix and Plan 9.
|
||||||
Elements that are empty or
|
Elements that are empty or
|
||||||
dot
|
dot
|
||||||
.B ( . )
|
.RB ( . )
|
||||||
are ignored.
|
are ignored.
|
||||||
.PP
|
.PP
|
||||||
Once opened, these fids can be read and written using
|
Once opened, these fids can be read and written using
|
||||||
|
|
110
man/man3/INDEX
110
man/man3/INDEX
|
@ -1,3 +1,48 @@
|
||||||
|
0intro 0intro.3
|
||||||
|
intro 0intro.3
|
||||||
|
9p-cmdbuf 9p-cmdbuf.3
|
||||||
|
Cmdbuf 9p-cmdbuf.3
|
||||||
|
lookupcmd 9p-cmdbuf.3
|
||||||
|
parsecmd 9p-cmdbuf.3
|
||||||
|
respondcmderror 9p-cmdbuf.3
|
||||||
|
9p-fid 9p-fid.3
|
||||||
|
Fid 9p-fid.3
|
||||||
|
Fidpool 9p-fid.3
|
||||||
|
Req 9p-fid.3
|
||||||
|
Reqpool 9p-fid.3
|
||||||
|
allocfid 9p-fid.3
|
||||||
|
allocfidpool 9p-fid.3
|
||||||
|
allocreq 9p-fid.3
|
||||||
|
allocreqpool 9p-fid.3
|
||||||
|
closefid 9p-fid.3
|
||||||
|
closereq 9p-fid.3
|
||||||
|
freefidpool 9p-fid.3
|
||||||
|
freereqpool 9p-fid.3
|
||||||
|
lookupfid 9p-fid.3
|
||||||
|
lookupreq 9p-fid.3
|
||||||
|
removefid 9p-fid.3
|
||||||
|
removereq 9p-fid.3
|
||||||
|
9p-file 9p-file.3
|
||||||
|
File 9p-file.3
|
||||||
|
Tree 9p-file.3
|
||||||
|
alloctree 9p-file.3
|
||||||
|
closedirfile 9p-file.3
|
||||||
|
closefile 9p-file.3
|
||||||
|
createfile 9p-file.3
|
||||||
|
freetree 9p-file.3
|
||||||
|
hasperm 9p-file.3
|
||||||
|
opendirfile 9p-file.3
|
||||||
|
readdirfile 9p-file.3
|
||||||
|
removefile 9p-file.3
|
||||||
|
walkfile 9p-file.3
|
||||||
|
9p-intmap 9p-intmap.3
|
||||||
|
Intmap 9p-intmap.3
|
||||||
|
allocmap 9p-intmap.3
|
||||||
|
caninsertkey 9p-intmap.3
|
||||||
|
deletekey 9p-intmap.3
|
||||||
|
freemap 9p-intmap.3
|
||||||
|
insertkey 9p-intmap.3
|
||||||
|
lookupkey 9p-intmap.3
|
||||||
9p 9p.3
|
9p 9p.3
|
||||||
Srv 9p.3
|
Srv 9p.3
|
||||||
dirread9p 9p.3
|
dirread9p 9p.3
|
||||||
|
@ -39,41 +84,6 @@ fsunmount 9pclient.3
|
||||||
fsversion 9pclient.3
|
fsversion 9pclient.3
|
||||||
fswrite 9pclient.3
|
fswrite 9pclient.3
|
||||||
nsmount 9pclient.3
|
nsmount 9pclient.3
|
||||||
9pcmdbuf 9pcmdbuf.3
|
|
||||||
Cmdbuf 9pcmdbuf.3
|
|
||||||
lookupcmd 9pcmdbuf.3
|
|
||||||
parsecmd 9pcmdbuf.3
|
|
||||||
respondcmderror 9pcmdbuf.3
|
|
||||||
9pfid 9pfid.3
|
|
||||||
Fid 9pfid.3
|
|
||||||
Fidpool 9pfid.3
|
|
||||||
Req 9pfid.3
|
|
||||||
Reqpool 9pfid.3
|
|
||||||
allocfid 9pfid.3
|
|
||||||
allocfidpool 9pfid.3
|
|
||||||
allocreq 9pfid.3
|
|
||||||
allocreqpool 9pfid.3
|
|
||||||
closefid 9pfid.3
|
|
||||||
closereq 9pfid.3
|
|
||||||
freefidpool 9pfid.3
|
|
||||||
freereqpool 9pfid.3
|
|
||||||
lookupfid 9pfid.3
|
|
||||||
lookupreq 9pfid.3
|
|
||||||
removefid 9pfid.3
|
|
||||||
removereq 9pfid.3
|
|
||||||
9pfile 9pfile.3
|
|
||||||
File 9pfile.3
|
|
||||||
Tree 9pfile.3
|
|
||||||
alloctree 9pfile.3
|
|
||||||
closedirfile 9pfile.3
|
|
||||||
closefile 9pfile.3
|
|
||||||
createfile 9pfile.3
|
|
||||||
freetree 9pfile.3
|
|
||||||
hasperm 9pfile.3
|
|
||||||
opendirfile 9pfile.3
|
|
||||||
readdirfile 9pfile.3
|
|
||||||
removefile 9pfile.3
|
|
||||||
walkfile 9pfile.3
|
|
||||||
Dx addpt.3
|
Dx addpt.3
|
||||||
Dy addpt.3
|
Dy addpt.3
|
||||||
Pt addpt.3
|
Pt addpt.3
|
||||||
|
@ -233,15 +243,11 @@ accept dial.3
|
||||||
announce dial.3
|
announce dial.3
|
||||||
dial dial.3
|
dial dial.3
|
||||||
dialparse dial.3
|
dialparse dial.3
|
||||||
hangup dial.3
|
|
||||||
listen dial.3
|
listen dial.3
|
||||||
netmkaddr dial.3
|
netmkaddr dial.3
|
||||||
reject dial.3
|
reject dial.3
|
||||||
dirread dirread.3
|
dirread dirread.3
|
||||||
dirreadall dirread.3
|
dirreadall dirread.3
|
||||||
Disk disk.3
|
|
||||||
disk disk.3
|
|
||||||
opendisk disk.3
|
|
||||||
ARROW draw.3
|
ARROW draw.3
|
||||||
Image draw.3
|
Image draw.3
|
||||||
_string draw.3
|
_string draw.3
|
||||||
|
@ -473,14 +479,6 @@ targetid html.3
|
||||||
targetname html.3
|
targetname html.3
|
||||||
toStr html.3
|
toStr html.3
|
||||||
validitems html.3
|
validitems html.3
|
||||||
Intmap intmap.3
|
|
||||||
allocmap intmap.3
|
|
||||||
caninsertkey intmap.3
|
|
||||||
deletekey intmap.3
|
|
||||||
freemap intmap.3
|
|
||||||
insertkey intmap.3
|
|
||||||
intmap intmap.3
|
|
||||||
lookupkey intmap.3
|
|
||||||
closeioproc ioproc.3
|
closeioproc ioproc.3
|
||||||
iocall ioproc.3
|
iocall ioproc.3
|
||||||
ioclose ioproc.3
|
ioclose ioproc.3
|
||||||
|
@ -927,9 +925,6 @@ pwrite read.3
|
||||||
read read.3
|
read read.3
|
||||||
readn read.3
|
readn read.3
|
||||||
write read.3
|
write read.3
|
||||||
RGB readcolmap.3
|
|
||||||
readcolmap readcolmap.3
|
|
||||||
writecolmap readcolmap.3
|
|
||||||
regcomp regexp.3
|
regcomp regexp.3
|
||||||
regcomplit regexp.3
|
regcomplit regexp.3
|
||||||
regcompnl regexp.3
|
regcompnl regexp.3
|
||||||
|
@ -939,15 +934,6 @@ regexp regexp.3
|
||||||
regsub regexp.3
|
regsub regexp.3
|
||||||
rregexec regexp.3
|
rregexec regexp.3
|
||||||
rregsub regexp.3
|
rregsub regexp.3
|
||||||
regcomp regexp9.3
|
|
||||||
regcomplit regexp9.3
|
|
||||||
regcompnl regexp9.3
|
|
||||||
regerror regexp9.3
|
|
||||||
regexec regexp9.3
|
|
||||||
regexp9 regexp9.3
|
|
||||||
regsub regexp9.3
|
|
||||||
rregexec regexp9.3
|
|
||||||
rregsub regexp9.3
|
|
||||||
rfork rfork.3
|
rfork rfork.3
|
||||||
|
|
||||||
X509dump rsa.3
|
X509dump rsa.3
|
||||||
|
@ -993,11 +979,6 @@ runestrncmp runestrcat.3
|
||||||
runestrncpy runestrcat.3
|
runestrncpy runestrcat.3
|
||||||
runestrrchr runestrcat.3
|
runestrrchr runestrcat.3
|
||||||
runestrstr runestrcat.3
|
runestrstr runestrcat.3
|
||||||
openscsi scsi.3
|
|
||||||
scsi scsi.3
|
|
||||||
scsicmd scsi.3
|
|
||||||
scsierror scsi.3
|
|
||||||
scsiready scsi.3
|
|
||||||
hmac_md5 sechash.3
|
hmac_md5 sechash.3
|
||||||
hmac_sha1 sechash.3
|
hmac_sha1 sechash.3
|
||||||
md4 sechash.3
|
md4 sechash.3
|
||||||
|
@ -1125,7 +1106,6 @@ threadint thread.3
|
||||||
threadintgrp thread.3
|
threadintgrp thread.3
|
||||||
threadkill thread.3
|
threadkill thread.3
|
||||||
threadkillgrp thread.3
|
threadkillgrp thread.3
|
||||||
threadlinklibrary thread.3
|
|
||||||
threadmain thread.3
|
threadmain thread.3
|
||||||
threadnotify thread.3
|
threadnotify thread.3
|
||||||
threadpid thread.3
|
threadpid thread.3
|
||||||
|
|
|
@ -144,3 +144,35 @@ and
|
||||||
.I atol
|
.I atol
|
||||||
accept octal and hexadecimal numbers in the style of C,
|
accept octal and hexadecimal numbers in the style of C,
|
||||||
contrary to the ANSI specification.
|
contrary to the ANSI specification.
|
||||||
|
.PP
|
||||||
|
.IR Atof ,
|
||||||
|
.IR strtod ,
|
||||||
|
.IR strtol ,
|
||||||
|
.IR strtoul ,
|
||||||
|
.IR strtoll ,
|
||||||
|
and
|
||||||
|
.IR strtoull
|
||||||
|
are not provided:
|
||||||
|
they are expected to be provided by the underlying system.
|
||||||
|
.PP
|
||||||
|
Because they are implemented in the fmt library,
|
||||||
|
.I charstod
|
||||||
|
and
|
||||||
|
.I strtod
|
||||||
|
are preprocessor macros defined as
|
||||||
|
.I fmtcharstod
|
||||||
|
and
|
||||||
|
.IR fmtstrtod .
|
||||||
|
.PP
|
||||||
|
To avoid name conflicts with the underlying system,
|
||||||
|
.IR atoi ,
|
||||||
|
.IR atol ,
|
||||||
|
and
|
||||||
|
.I atoll
|
||||||
|
are preprocessor macros defined as
|
||||||
|
.IR p9atoi ,
|
||||||
|
.IR p9atol ,
|
||||||
|
and
|
||||||
|
.IR p9atoll ;
|
||||||
|
see
|
||||||
|
.IR intro (3).
|
||||||
|
|
|
@ -20,7 +20,7 @@ void *binalloc(Bin **bp, ulong size, int clr);
|
||||||
void *bingrow(Bin **bp, void *op, ulong osize,
|
void *bingrow(Bin **bp, void *op, ulong osize,
|
||||||
.br
|
.br
|
||||||
.B
|
.B
|
||||||
ulong size, int clr);
|
ulong size, int clr);
|
||||||
.PP
|
.PP
|
||||||
.B
|
.B
|
||||||
void binfree(Bin **bp);
|
void binfree(Bin **bp);
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
.SH NAME
|
.SH NAME
|
||||||
Bopen, Bfdopen, Binit, Binits, Brdline, Brdstr, Bgetc, Bgetrune, Bgetd, Bungetc, Bungetrune, Bread, Bseek, Boffset, Bfildes, Blinelen, Bputc, Bputrune, Bprint, Bvprint, Bwrite, Bflush, Bterm, Bbuffered \- buffered input/output
|
Bopen, Bfdopen, Binit, Binits, Brdline, Brdstr, Bgetc, Bgetrune, Bgetd, Bungetc, Bungetrune, Bread, Bseek, Boffset, Bfildes, Blinelen, Bputc, Bputrune, Bprint, Bvprint, Bwrite, Bflush, Bterm, Bbuffered \- buffered input/output
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
.ta \w'Biobuf* 'u
|
.ta \w'\fLBiobuf* 'u
|
||||||
.B #include <u.h>
|
.B #include <u.h>
|
||||||
.br
|
.br
|
||||||
.B #include <libc.h>
|
.B #include <libc.h>
|
||||||
|
|
|
@ -13,12 +13,12 @@ complete, freecompletion \- file name completion
|
||||||
.ta \w' 'u +\w' 'u +\w' 'u +\w' 'u +\w' 'u
|
.ta \w' 'u +\w' 'u +\w' 'u +\w' 'u +\w' 'u
|
||||||
typedef struct Completion Completion;
|
typedef struct Completion Completion;
|
||||||
struct Completion{
|
struct Completion{
|
||||||
uchar advance; /* whether forward progress has been made */
|
uchar advance;
|
||||||
uchar complete; /* whether the completion now represents a file or directory */
|
uchar complete;
|
||||||
char *string; /* the string to advance, suffixed " " or "/" for file or directory */
|
char *string;
|
||||||
int nmatch; /* number of files that matched */
|
int nmatch;
|
||||||
int nfile; /* number of files returned */
|
int nfile;
|
||||||
char **filename; /* their names */
|
char **filename;
|
||||||
};
|
};
|
||||||
|
|
||||||
.fi
|
.fi
|
||||||
|
|
|
@ -90,9 +90,26 @@ is not
|
||||||
.SH BUGS
|
.SH BUGS
|
||||||
The return values point to static data
|
The return values point to static data
|
||||||
whose content is overwritten by each call.
|
whose content is overwritten by each call.
|
||||||
.br
|
.PP
|
||||||
Daylight Savings Time is ``normal'' in the Southern hemisphere.
|
Daylight Savings Time is ``normal'' in the Southern hemisphere.
|
||||||
.br
|
.PP
|
||||||
These routines are not equipped to handle non-\c
|
These routines are not equipped to handle non-\c
|
||||||
.SM ASCII
|
.SM ASCII
|
||||||
text, and are provincial anyway.
|
text, and are provincial anyway.
|
||||||
|
.PP
|
||||||
|
To avoid name conflicts with the underlying system,
|
||||||
|
.IR ctime ,
|
||||||
|
.IR localtime ,
|
||||||
|
.IR gmtime ,
|
||||||
|
.IR asctime ,
|
||||||
|
and
|
||||||
|
.I tm2sec
|
||||||
|
are preprocessor macros defined as
|
||||||
|
.IR p9ctime ,
|
||||||
|
.IR p9localtime ,
|
||||||
|
.IR p9gmtime ,
|
||||||
|
.IR p9asctime ,
|
||||||
|
and
|
||||||
|
.IR p9tm2sec ;
|
||||||
|
see
|
||||||
|
.IR intro (3).
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
.TH DIAL 3
|
.TH DIAL 3
|
||||||
.SH NAME
|
.SH NAME
|
||||||
dial, hangup, announce, listen, accept, reject, netmkaddr, dialparse \- make and break network connections
|
dial, announce, listen, accept, reject, netmkaddr, dialparse \- make and break network connections
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
.B #include <u.h>
|
.B #include <u.h>
|
||||||
.br
|
.br
|
||||||
|
@ -34,7 +34,10 @@ char* netmkaddr(char *addr, char *defnet, char *defservice)
|
||||||
.\" void freenetconninfo(NetConnINfo*)
|
.\" void freenetconninfo(NetConnINfo*)
|
||||||
.PP
|
.PP
|
||||||
.B
|
.B
|
||||||
int dialparse(char *addr, char **net, char **unix, u32int *host, int *port)
|
int dialparse(char *addr, char **net, char **unix,
|
||||||
|
.br
|
||||||
|
.B
|
||||||
|
u32int *host, int *port)
|
||||||
.SH DESCRIPTION
|
.SH DESCRIPTION
|
||||||
For these routines,
|
For these routines,
|
||||||
.I addr
|
.I addr
|
||||||
|
@ -310,3 +313,17 @@ bekremvax(void)
|
||||||
and
|
and
|
||||||
.I listen
|
.I listen
|
||||||
return \-1 if they fail.
|
return \-1 if they fail.
|
||||||
|
.SH BUGS
|
||||||
|
To avoid name conflicts with the underlying system,
|
||||||
|
.IR dial ,
|
||||||
|
.IR announce ,
|
||||||
|
.IR listen ,
|
||||||
|
.IR netmkaddr ,
|
||||||
|
and
|
||||||
|
.I reject
|
||||||
|
are preprocessor macros defined as
|
||||||
|
.IR p9dial ,
|
||||||
|
.IR p9announce ,
|
||||||
|
and so on;
|
||||||
|
see
|
||||||
|
.IR intro (3).
|
||||||
|
|
|
@ -31,8 +31,9 @@ for the new file descriptor
|
||||||
Sets
|
Sets
|
||||||
.IR errstr .
|
.IR errstr .
|
||||||
.SH BUGS
|
.SH BUGS
|
||||||
.I Dup
|
To avoid name conflicts with the underlying system,
|
||||||
is a macro for
|
.I dup
|
||||||
.I p9dup
|
is a preprocessor macro defined as
|
||||||
to avoid name conflicts with the Unix function; see
|
.IR p9dup ;
|
||||||
|
see
|
||||||
.IR intro (3).
|
.IR intro (3).
|
||||||
|
|
|
@ -382,3 +382,8 @@ is nil, it restores the image to the default arrow.
|
||||||
.IR plumb (3),
|
.IR plumb (3),
|
||||||
.\" .IR cons (3),
|
.\" .IR cons (3),
|
||||||
.IR draw (3)
|
.IR draw (3)
|
||||||
|
.SH BUGS
|
||||||
|
.I Etimer
|
||||||
|
and
|
||||||
|
.I estart
|
||||||
|
are unimplemented.
|
||||||
|
|
|
@ -128,3 +128,14 @@ use the user's current path to locate
|
||||||
This is a clumsy way to deal with Unix's lack of
|
This is a clumsy way to deal with Unix's lack of
|
||||||
a union directory for
|
a union directory for
|
||||||
.BR /bin .
|
.BR /bin .
|
||||||
|
.PP
|
||||||
|
To avoid name conflicts with the underlying system,
|
||||||
|
.I exec
|
||||||
|
and
|
||||||
|
.I execl
|
||||||
|
are preprocessor macros defined as
|
||||||
|
.I p9exec
|
||||||
|
and
|
||||||
|
.IR p9execl ;
|
||||||
|
see
|
||||||
|
.IR intro (3).
|
||||||
|
|
|
@ -93,3 +93,14 @@ non-empty messages.
|
||||||
Exit codes 97 through 99 are used by the thread library to signal
|
Exit codes 97 through 99 are used by the thread library to signal
|
||||||
internal synchronization errors between the main program
|
internal synchronization errors between the main program
|
||||||
and a proxy process that implements backgrounding.
|
and a proxy process that implements backgrounding.
|
||||||
|
.PP
|
||||||
|
To avoid name conflicts with the underlying system,
|
||||||
|
.I atexit
|
||||||
|
and
|
||||||
|
.I atexitdont
|
||||||
|
are preprocessor macros defined as
|
||||||
|
.I p9atexit
|
||||||
|
and
|
||||||
|
.IR p9atexitdont ;
|
||||||
|
see
|
||||||
|
.IR intro (3).
|
||||||
|
|
|
@ -8,7 +8,7 @@ deflateinit, deflate, deflatezlib, deflateblock, deflatezlibblock, inflateinit,
|
||||||
.br
|
.br
|
||||||
.B #include <flate.h>
|
.B #include <flate.h>
|
||||||
.PP
|
.PP
|
||||||
.ta \w'ulongmm'u
|
.ta \w'\fLulongmm'u +\w'\fL 'u
|
||||||
.PP
|
.PP
|
||||||
.B
|
.B
|
||||||
int deflateinit(void)
|
int deflateinit(void)
|
||||||
|
@ -17,37 +17,37 @@ int deflateinit(void)
|
||||||
int deflate(void *wr, int (*w)(void*,void*,int),
|
int deflate(void *wr, int (*w)(void*,void*,int),
|
||||||
.br
|
.br
|
||||||
.B
|
.B
|
||||||
void *rr, int (*r)(void*,void*,int),
|
void *rr, int (*r)(void*,void*,int),
|
||||||
.br
|
.br
|
||||||
.B
|
.B
|
||||||
int level, int debug)
|
int level, int debug)
|
||||||
.PP
|
.PP
|
||||||
.B
|
.B
|
||||||
int deflatezlib(void *wr, int (*w)(void*,void*,int),
|
int deflatezlib(void *wr, int (*w)(void*,void*,int),
|
||||||
.br
|
.br
|
||||||
.B
|
.B
|
||||||
void *rr, int (*r)(void*,void*,int),
|
void *rr, int (*r)(void*,void*,int),
|
||||||
.br
|
.br
|
||||||
.B
|
.B
|
||||||
int level, int debug)
|
int level, int debug)
|
||||||
.PP
|
.PP
|
||||||
.B
|
.B
|
||||||
int deflateblock(uchar *dst, int dsize,
|
int deflateblock(uchar *dst, int dsize,
|
||||||
.br
|
.br
|
||||||
.B
|
.B
|
||||||
uchar *src, int ssize,
|
uchar *src, int ssize,
|
||||||
.br
|
.br
|
||||||
.B
|
.B
|
||||||
int level, int debug)
|
int level, int debug)
|
||||||
.PP
|
.PP
|
||||||
.B
|
.B
|
||||||
int deflatezlibblock(uchar *dst, int dsize,
|
int deflatezlibblock(uchar *dst, int dsize,
|
||||||
.br
|
.br
|
||||||
.B
|
.B
|
||||||
uchar *src, int ssize,
|
uchar *src, int ssize,
|
||||||
.br
|
.br
|
||||||
.B
|
.B
|
||||||
int level, int debug)
|
int level, int debug)
|
||||||
.PP
|
.PP
|
||||||
.B
|
.B
|
||||||
int inflateinit(void)
|
int inflateinit(void)
|
||||||
|
@ -56,25 +56,25 @@ int inflateinit(void)
|
||||||
int inflate(void *wr, int (*w)(void*, void*, int),
|
int inflate(void *wr, int (*w)(void*, void*, int),
|
||||||
.br
|
.br
|
||||||
.B
|
.B
|
||||||
void *getr, int (*get)(void*))
|
void *getr, int (*get)(void*))
|
||||||
.PP
|
.PP
|
||||||
.B
|
.B
|
||||||
int inflatezlib(void *wr, int (*w)(void*, void*, int),
|
int inflatezlib(void *wr, int (*w)(void*, void*, int),
|
||||||
.br
|
.br
|
||||||
.B
|
.B
|
||||||
void *getr, int (*get)(void*))
|
void *getr, int (*get)(void*))
|
||||||
.PP
|
.PP
|
||||||
.B
|
.B
|
||||||
int inflateblock(uchar *dst, int dsize,
|
int inflateblock(uchar *dst, int dsize,
|
||||||
.br
|
.br
|
||||||
.B
|
.B
|
||||||
uchar *src, int ssize)
|
uchar *src, int ssize)
|
||||||
.PP
|
.PP
|
||||||
.B
|
.B
|
||||||
int inflatezlibblock(uchar *dst, int dsize,
|
int inflatezlibblock(uchar *dst, int dsize,
|
||||||
.br
|
.br
|
||||||
.B
|
.B
|
||||||
uchar *src, int ssize)
|
uchar *src, int ssize)
|
||||||
.PP
|
.PP
|
||||||
.B
|
.B
|
||||||
char *flateerr(int error)
|
char *flateerr(int error)
|
||||||
|
|
|
@ -370,4 +370,3 @@ main(...)
|
||||||
.SH DIAGNOSTICS
|
.SH DIAGNOSTICS
|
||||||
These routines return negative numbers or nil for errors and set
|
These routines return negative numbers or nil for errors and set
|
||||||
.IR errstr .
|
.IR errstr .
|
||||||
.SH BUGS
|
|
||||||
|
|
|
@ -75,7 +75,7 @@ This library supports
|
||||||
of editable text in a single font on raster displays, such as in
|
of editable text in a single font on raster displays, such as in
|
||||||
.IR sam (1)
|
.IR sam (1)
|
||||||
and
|
and
|
||||||
.IR rio (1).
|
.IR 9term (1).
|
||||||
Frames may hold any character except NUL (0).
|
Frames may hold any character except NUL (0).
|
||||||
Long lines are folded and tabs are at fixed intervals.
|
Long lines are folded and tabs are at fixed intervals.
|
||||||
.PP
|
.PP
|
||||||
|
|
|
@ -22,8 +22,10 @@ very least, unguessable numbers.
|
||||||
.I Genrandom
|
.I Genrandom
|
||||||
fills a buffer with bytes from the X9.17 pseudo-random
|
fills a buffer with bytes from the X9.17 pseudo-random
|
||||||
number generator. The X9.17 generator is seeded by 24
|
number generator. The X9.17 generator is seeded by 24
|
||||||
truly random bytes read from
|
truly random bytes read via
|
||||||
.BR /dev/random .
|
.I truerand
|
||||||
|
(see
|
||||||
|
.IR rand (3)).
|
||||||
.PP
|
.PP
|
||||||
.I Prng
|
.I Prng
|
||||||
uses the native
|
uses the native
|
||||||
|
|
|
@ -35,8 +35,13 @@ to
|
||||||
Sets
|
Sets
|
||||||
.IR errstr .
|
.IR errstr .
|
||||||
.SH BUGS
|
.SH BUGS
|
||||||
Defined as macros for
|
To avoid name conflicts with the underlying system,
|
||||||
|
.I getenv
|
||||||
|
and
|
||||||
|
.I putenv
|
||||||
|
are preprocessor macros defined as
|
||||||
.I p9getenv
|
.I p9getenv
|
||||||
and
|
and
|
||||||
.I p9putenv
|
.IR p9putenv ;
|
||||||
to avoid name conflicts with Unix library calls.
|
see
|
||||||
|
.IR intro (3).
|
||||||
|
|
|
@ -23,8 +23,15 @@ bytes in the buffer provided.
|
||||||
.SH SOURCE
|
.SH SOURCE
|
||||||
.B \*9/src/lib9/getwd.c
|
.B \*9/src/lib9/getwd.c
|
||||||
.SH "SEE ALSO"
|
.SH "SEE ALSO"
|
||||||
.IR pwd (1),
|
.IR pwd (1)
|
||||||
.SH DIAGNOSTICS
|
.SH DIAGNOSTICS
|
||||||
On error, zero is returned.
|
On error, zero is returned.
|
||||||
.IR Errstr (3)
|
.IR Errstr (3)
|
||||||
may be consulted for more information.
|
may be consulted for more information.
|
||||||
|
.SH BUGS
|
||||||
|
To avoid name conflicts with the underlying system,
|
||||||
|
.I getwd
|
||||||
|
is a preprocessor macro defined as
|
||||||
|
.IR p9getwd ;
|
||||||
|
see
|
||||||
|
.IR intro (3).
|
||||||
|
|
|
@ -615,7 +615,7 @@ if(gengetwindow(display, "/tmp/winname",
|
||||||
\&...
|
\&...
|
||||||
.EE
|
.EE
|
||||||
.SH FILES
|
.SH FILES
|
||||||
.BR /lib/font/bit " directory of fonts
|
.BR \*9/font/bit " directory of fonts
|
||||||
.SH SOURCE
|
.SH SOURCE
|
||||||
.B \*9/src/libdraw
|
.B \*9/src/libdraw
|
||||||
.SH "SEE ALSO"
|
.SH "SEE ALSO"
|
||||||
|
@ -649,3 +649,7 @@ and might be more appropriately called
|
||||||
.B white
|
.B white
|
||||||
and
|
and
|
||||||
.BR black .
|
.BR black .
|
||||||
|
.PP
|
||||||
|
These manual pages contain many references to
|
||||||
|
the now-fictitious
|
||||||
|
.BR /dev/draw .
|
||||||
|
|
|
@ -168,3 +168,18 @@ When
|
||||||
and
|
and
|
||||||
.I free
|
.I free
|
||||||
detect such corruption, they abort.
|
detect such corruption, they abort.
|
||||||
|
.PP
|
||||||
|
To avoid name conflicts with the system versions of these functions,
|
||||||
|
.IR malloc ,
|
||||||
|
.IR realloc ,
|
||||||
|
.IR calloc ,
|
||||||
|
and
|
||||||
|
.I free
|
||||||
|
are preprocessor macros defined as
|
||||||
|
.IR p9malloc ,
|
||||||
|
.IR p9realloc ,
|
||||||
|
.IR p9calloc ,
|
||||||
|
and
|
||||||
|
.IR p9free ;
|
||||||
|
see
|
||||||
|
.IR intro (3).
|
||||||
|
|
|
@ -449,7 +449,6 @@ prints to a serial line rather than the screen, for obvious reasons.
|
||||||
is unusual in using a subfont rather than a font,
|
is unusual in using a subfont rather than a font,
|
||||||
and in having no parameter to align the source.
|
and in having no parameter to align the source.
|
||||||
.PP
|
.PP
|
||||||
.I Libmemdraw
|
These functions are
|
||||||
is archived into
|
archived into
|
||||||
.IR libdraw .
|
.IR libdraw .
|
||||||
|
|
||||||
|
|
|
@ -304,6 +304,6 @@ are in compressed image format
|
||||||
.IR window (3),
|
.IR window (3),
|
||||||
.IR draw (3)
|
.IR draw (3)
|
||||||
.SH BUGS
|
.SH BUGS
|
||||||
.I Libmemlayer
|
These functions
|
||||||
is archived into
|
are archived into
|
||||||
.IR libdraw .
|
.IR libdraw .
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
.TH MP 3
|
.TH MP 3
|
||||||
.SH NAME
|
.SH NAME
|
||||||
mpsetminbits, mpnew, mpfree, mpbits, mpnorm, mpcopy, mpassign, mprand, strtomp, mpfmt,mptoa, betomp, mptobe, letomp, mptole, mptoui, uitomp, mptoi, itomp, uvtomp, mptouv, vtomp, mptov, mpdigdiv, mpadd, mpsub, mpleft, mpright, mpmul, mpexp, mpmod, mpdiv, mpcmp, mpextendedgcd, mpinvert, mpsignif, mplowbits0, mpvecdigmuladd, mpvecdigmulsub, mpvecadd, mpvecsub, mpveccmp, mpvecmul, mpmagcmp, mpmagadd, mpmagsub, crtpre, crtin, crtout, crtprefree, crtresfree, mpfactorial \- extended precision arithmetic
|
mpsetminbits, mpnew, mpfree, mpbits, mpnorm, mpcopy, mpassign, mprand, strtomp, mpfmt,mptoa, betomp, mptobe, letomp, mptole, mptoui, uitomp, mptoi, itomp, uvtomp, mptouv, vtomp, mptov, mpdigdiv, mpadd, mpsub, mpleft, mpright, mpmul, mpexp, mpmod, mpdiv, mpfactorial, mpcmp, mpextendedgcd, mpinvert, mpsignif, mplowbits0, mpvecdigmuladd, mpvecdigmulsub, mpvecadd, mpvecsub, mpveccmp, mpvecmul, mpmagcmp, mpmagadd, mpmagsub, crtpre, crtin, crtout, crtprefree, crtresfree \- extended precision arithmetic
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
.B #include <u.h>
|
.B #include <u.h>
|
||||||
.br
|
.br
|
||||||
|
@ -108,6 +108,9 @@ void mpmod(mpint *b, mpint *m, mpint *remainder)
|
||||||
void mpdiv(mpint *dividend, mpint *divisor, mpint *quotient, mpint *remainder)
|
void mpdiv(mpint *dividend, mpint *divisor, mpint *quotient, mpint *remainder)
|
||||||
.PP
|
.PP
|
||||||
.B
|
.B
|
||||||
|
mpint* mpfactorial(ulong n)
|
||||||
|
.PP
|
||||||
|
.B
|
||||||
int mpcmp(mpint *b1, mpint *b2)
|
int mpcmp(mpint *b1, mpint *b2)
|
||||||
.PP
|
.PP
|
||||||
.B
|
.B
|
||||||
|
@ -162,9 +165,6 @@ void crtprefree(CRTpre *cre)
|
||||||
void crtresfree(CRTres *res)
|
void crtresfree(CRTres *res)
|
||||||
.PP
|
.PP
|
||||||
.B
|
.B
|
||||||
mpint* mpfactorial(ulong n)
|
|
||||||
.PP
|
|
||||||
.B
|
|
||||||
mpint *mpzero, *mpone, *mptwo
|
mpint *mpzero, *mpone, *mptwo
|
||||||
.SH DESCRIPTION
|
.SH DESCRIPTION
|
||||||
.PP
|
.PP
|
||||||
|
@ -441,6 +441,10 @@ Otherwise,
|
||||||
.BR "quotient = dividend/divisor" .
|
.BR "quotient = dividend/divisor" .
|
||||||
.BR "remainder = dividend % divisor" .
|
.BR "remainder = dividend % divisor" .
|
||||||
.TP
|
.TP
|
||||||
|
.I mpfactorial
|
||||||
|
returns factorial of
|
||||||
|
.IR n .
|
||||||
|
.TP
|
||||||
.I mpcmp
|
.I mpcmp
|
||||||
returns -1, 0, or +1 as
|
returns -1, 0, or +1 as
|
||||||
.I b1
|
.I b1
|
||||||
|
@ -575,9 +579,5 @@ free
|
||||||
and
|
and
|
||||||
.I CRTres
|
.I CRTres
|
||||||
structures respectively.
|
structures respectively.
|
||||||
.PP
|
|
||||||
.I Mpfactorial
|
|
||||||
returns the factorial of
|
|
||||||
.IR n .
|
|
||||||
.SH SOURCE
|
.SH SOURCE
|
||||||
.B \*9/src/libmp
|
.B \*9/src/libmp
|
||||||
|
|
|
@ -7,7 +7,7 @@ muldiv, umuldiv \- high-precision multiplication and division
|
||||||
.B #include <libc.h>
|
.B #include <libc.h>
|
||||||
.PP
|
.PP
|
||||||
.B
|
.B
|
||||||
long muldiv(long a, long b, long c)
|
long muldiv(long a, long b, long c)
|
||||||
.PP
|
.PP
|
||||||
.B
|
.B
|
||||||
ulong umuldiv(ulong a, ulong b, ulong c)
|
ulong umuldiv(ulong a, ulong b, ulong c)
|
||||||
|
|
|
@ -7,6 +7,7 @@ Mux, muxinit, muxrpc, muxthreads \- protocol multiplexor
|
||||||
.nf
|
.nf
|
||||||
.B
|
.B
|
||||||
.ta +4n
|
.ta +4n
|
||||||
|
.ft B
|
||||||
struct Mux
|
struct Mux
|
||||||
{
|
{
|
||||||
uint mintag;
|
uint mintag;
|
||||||
|
|
|
@ -207,7 +207,7 @@ is a common set that includes:
|
||||||
.PP
|
.PP
|
||||||
.RS 3n
|
.RS 3n
|
||||||
.nf
|
.nf
|
||||||
.ta \w'\fLsys: write on closed pipe \fP'u \w'system call address argument out of range 'u
|
.ta \w'\fLsys: segmentation violation \fP'u +\w'process requested to exit 'u
|
||||||
\fINote\fP \fIMeaning\fP \fIUnix signal\fP
|
\fINote\fP \fIMeaning\fP \fIUnix signal\fP
|
||||||
\fLinterrupt\fP user interrupt (DEL key) SIGINTR
|
\fLinterrupt\fP user interrupt (DEL key) SIGINTR
|
||||||
\fLhangup\fP I/O connection closed SIGHUP
|
\fLhangup\fP I/O connection closed SIGHUP
|
||||||
|
@ -217,6 +217,8 @@ is a common set that includes:
|
||||||
\fLsys: kill\fP process forced to exit SIGKILL
|
\fLsys: kill\fP process forced to exit SIGKILL
|
||||||
\fLsys: bus error\fP bus error SIGBUS
|
\fLsys: bus error\fP bus error SIGBUS
|
||||||
\fLsys: segmentation violation\fP segmentation violation SIGSEGV
|
\fLsys: segmentation violation\fP segmentation violation SIGSEGV
|
||||||
|
\fLsys: write on closed pipe\fP write on closed pipe SIGPIPE
|
||||||
|
\fLsys: child\fP child wait status change SIGCHLD
|
||||||
.fi
|
.fi
|
||||||
.RE
|
.RE
|
||||||
.PP
|
.PP
|
||||||
|
|
|
@ -1,18 +1,10 @@
|
||||||
.TH PRINT 3
|
.TH PRINT 3
|
||||||
.de EX
|
|
||||||
.nf
|
|
||||||
.ft B
|
|
||||||
..
|
|
||||||
.de EE
|
|
||||||
.fi
|
|
||||||
.ft R
|
|
||||||
..
|
|
||||||
.SH NAME
|
.SH NAME
|
||||||
print, fprint, sprint, snprint, seprint, smprint, runesprint, runesnprint, runeseprint, runesmprint, vfprint, vsnprint, vseprint, vsmprint, runevsnprint, runevseprint, runevsmprint \- print formatted output
|
print, fprint, sprint, snprint, seprint, smprint, runesprint, runesnprint, runeseprint, runesmprint, vfprint, vsnprint, vseprint, vsmprint, runevsnprint, runevseprint, runevsmprint \- print formatted output
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
.B #include <utf.h>
|
.B #include <u.h>
|
||||||
.PP
|
.PP
|
||||||
.B #include <fmt.h>
|
.B #include <libc.h>
|
||||||
.PP
|
.PP
|
||||||
.ta \w'\fLchar* 'u
|
.ta \w'\fLchar* 'u
|
||||||
.B
|
.B
|
||||||
|
@ -72,7 +64,10 @@ Rune* runevsmprint(Rune *format, va_list v)
|
||||||
writes text to the standard output.
|
writes text to the standard output.
|
||||||
.I Fprint
|
.I Fprint
|
||||||
writes to the named output
|
writes to the named output
|
||||||
file descriptor.
|
file descriptor:
|
||||||
|
a buffered form
|
||||||
|
is described in
|
||||||
|
.IR bio (3).
|
||||||
.I Sprint
|
.I Sprint
|
||||||
places text
|
places text
|
||||||
followed by the NUL character
|
followed by the NUL character
|
||||||
|
@ -96,7 +91,7 @@ but will not place more than
|
||||||
bytes in
|
bytes in
|
||||||
.IR s .
|
.IR s .
|
||||||
Its result is always NUL-terminated and holds the maximal
|
Its result is always NUL-terminated and holds the maximal
|
||||||
number of characters that can fit.
|
number of complete UTF-8 characters that can fit.
|
||||||
.I Seprint
|
.I Seprint
|
||||||
is like
|
is like
|
||||||
.IR snprint ,
|
.IR snprint ,
|
||||||
|
@ -191,27 +186,26 @@ described below.
|
||||||
.PP
|
.PP
|
||||||
The numeric verbs
|
The numeric verbs
|
||||||
.BR d ,
|
.BR d ,
|
||||||
.BR i ,
|
|
||||||
.BR u ,
|
|
||||||
.BR o ,
|
.BR o ,
|
||||||
.BR b ,
|
.BR b ,
|
||||||
.BR x ,
|
.BR x ,
|
||||||
and
|
and
|
||||||
.B X
|
.B X
|
||||||
format their arguments in decimal, decimal,
|
format their arguments in decimal,
|
||||||
unsigned decimal, octal, binary, hexadecimal, and upper case hexadecimal.
|
octal, binary, hexadecimal, and upper case hexadecimal.
|
||||||
Each interprets the flags
|
Each interprets the flags
|
||||||
.BR 0 ,
|
.BR 0 ,
|
||||||
.BR h ,
|
.BR h ,
|
||||||
.BR hh ,
|
.BR hh ,
|
||||||
.BR l ,
|
.BR l ,
|
||||||
|
.BR u ,
|
||||||
.BR + ,
|
.BR + ,
|
||||||
.BR - ,
|
.BR - ,
|
||||||
.BR , ,
|
.BR , ,
|
||||||
and
|
and
|
||||||
.B #
|
.B #
|
||||||
to mean pad with zeros,
|
to mean pad with zeros,
|
||||||
short, byte, long, always print a sign, left justified, commas every three digits,
|
short, byte, long, unsigned, always print a sign, left justified, commas every three digits,
|
||||||
and alternate format.
|
and alternate format.
|
||||||
Also, a space character in the flag
|
Also, a space character in the flag
|
||||||
position is like
|
position is like
|
||||||
|
@ -221,12 +215,9 @@ If neither
|
||||||
short nor long is specified,
|
short nor long is specified,
|
||||||
then the argument is an
|
then the argument is an
|
||||||
.BR int .
|
.BR int .
|
||||||
If an unsigned verb is specified,
|
If unsigned is specified,
|
||||||
then the argument is interpreted as a
|
then the argument is interpreted as a
|
||||||
positive number and no sign is output;
|
positive number and no sign is output.
|
||||||
space and
|
|
||||||
.B +
|
|
||||||
flags are ignored for unsigned verbs.
|
|
||||||
If two
|
If two
|
||||||
.B l
|
.B l
|
||||||
flags are given,
|
flags are given,
|
||||||
|
@ -249,8 +240,8 @@ for
|
||||||
.B o
|
.B o
|
||||||
conversion, the number is preceded by a
|
conversion, the number is preceded by a
|
||||||
.B 0
|
.B 0
|
||||||
if it doesn't already begin with one.
|
if it doesn't already begin with one;
|
||||||
For non-zero numbers and
|
for
|
||||||
.B x
|
.B x
|
||||||
conversion, the number is preceded by
|
conversion, the number is preceded by
|
||||||
.BR 0x ;
|
.BR 0x ;
|
||||||
|
@ -345,7 +336,7 @@ conversions, trailing zeros are not removed.
|
||||||
.PP
|
.PP
|
||||||
The
|
The
|
||||||
.B s
|
.B s
|
||||||
verb copies a string
|
verb copies a NUL-terminated string
|
||||||
(pointer to
|
(pointer to
|
||||||
.BR char )
|
.BR char )
|
||||||
to the output.
|
to the output.
|
||||||
|
@ -397,9 +388,7 @@ but that will change if pointers and integers are different sizes.
|
||||||
The
|
The
|
||||||
.B r
|
.B r
|
||||||
verb takes no arguments; it copies the error string returned by a call to
|
verb takes no arguments; it copies the error string returned by a call to
|
||||||
.IR strerror (3)
|
.IR errstr (3).
|
||||||
with an argument of
|
|
||||||
.IR errno.
|
|
||||||
.PP
|
.PP
|
||||||
Custom verbs may be installed using
|
Custom verbs may be installed using
|
||||||
.IR fmtinstall (3).
|
.IR fmtinstall (3).
|
||||||
|
@ -414,12 +403,12 @@ void fatal(char *msg, ...)
|
||||||
char buf[1024], *out;
|
char buf[1024], *out;
|
||||||
va_list arg;
|
va_list arg;
|
||||||
|
|
||||||
out = vseprint(buf, buf+sizeof buf, "Fatal error: ");
|
out = seprint(buf, buf+sizeof buf, "Fatal error: ");
|
||||||
va_start(arg, msg);
|
va_start(arg, msg);
|
||||||
out = vseprint(out, buf+sizeof buf, msg, arg);
|
out = vseprint(out, buf+sizeof buf, msg, arg);
|
||||||
va_end(arg);
|
va_end(arg);
|
||||||
write(2, buf, out-buf);
|
write(2, buf, out-buf);
|
||||||
exit(1);
|
exits("fatal error");
|
||||||
}
|
}
|
||||||
.EE
|
.EE
|
||||||
.SH SEE ALSO
|
.SH SEE ALSO
|
||||||
|
@ -438,9 +427,9 @@ the main difference is that
|
||||||
.B b
|
.B b
|
||||||
and
|
and
|
||||||
.B r
|
.B r
|
||||||
are not in ANSI and some
|
are not in ANSI and
|
||||||
.B C9X
|
.B u
|
||||||
verbs are missing.
|
is a flag here instead of a verb.
|
||||||
Also, and distinctly not a bug,
|
Also, and distinctly not a bug,
|
||||||
.I print
|
.I print
|
||||||
and friends generate
|
and friends generate
|
||||||
|
@ -449,8 +438,8 @@ rather than
|
||||||
.SM ASCII.
|
.SM ASCII.
|
||||||
.PP
|
.PP
|
||||||
There is no
|
There is no
|
||||||
.BR runeprint ,
|
.IR runeprint ,
|
||||||
.BR runefprint ,
|
.IR runefprint ,
|
||||||
etc. because runes are byte-order dependent and should not be written directly to a file; use the
|
etc. because runes are byte-order dependent and should not be written directly to a file; use the
|
||||||
UTF output of
|
UTF output of
|
||||||
.I print
|
.I print
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue