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
|
||||
eval "have$i() { false; }"
|
||||
done
|
||||
havethread() { false; }
|
||||
|
||||
# now find correct order
|
||||
libsl=""
|
||||
|
@ -129,6 +130,12 @@ then
|
|||
fi
|
||||
libsl="$libsl -l9"
|
||||
|
||||
# cycle: lib9 expects p9main, which is defined in libthread. oops.
|
||||
if $havethread
|
||||
then
|
||||
libsl="$libsl -lthread"
|
||||
fi
|
||||
|
||||
if [ "x$needdraw" = xtrue ]
|
||||
then
|
||||
if [ "x$X11" = "x" ]
|
||||
|
@ -194,9 +201,11 @@ if $verbose
|
|||
then
|
||||
echo $ld -L$PLAN9/lib "$@" $libsl $extralibs
|
||||
fi
|
||||
if ! $ld -L$PLAN9/lib "$@" $libsl $extralibs
|
||||
if $ld -L$PLAN9/lib "$@" $libsl $extralibs
|
||||
then
|
||||
exit 0
|
||||
else
|
||||
rm -f $target
|
||||
exit 1
|
||||
fi
|
||||
exit 0
|
||||
|
||||
|
|
|
@ -24,7 +24,7 @@ ifs='
|
|||
'{
|
||||
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 |
|
||||
awk '
|
||||
BEGIN { files = "'$files'" }
|
||||
|
|
2
bin/g
2
bin/g
|
@ -34,4 +34,4 @@ case $# in
|
|||
files="$@"
|
||||
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
|
||||
|
||||
ls "$@" | mc
|
||||
9 ls "$@" | mc
|
||||
|
|
12
bin/man
12
bin/man
|
@ -60,11 +60,11 @@ if(~ $#sec 0) {
|
|||
}
|
||||
ix=$S/man$sec/INDEX
|
||||
if(~ $#* 1) pat='^'^$1^' '
|
||||
if not pat='^('^`{echo $* | 9sed 's/ /|/g'}^') '
|
||||
if not pat='^('^`{echo $* | 9 sed 's/ /|/g'}^') '
|
||||
fils=()
|
||||
for(i in $S/man$sec){
|
||||
if(/bin/test -f $i/INDEX){
|
||||
try=`{grep $pat $i/INDEX | 9sed 's/^[^ ]* //'}
|
||||
if(test -f $i/INDEX){
|
||||
try=`{grep $pat $i/INDEX | 9 sed 's/^[^ ]* //'}
|
||||
if(! ~ $#try 0)
|
||||
fils=($fils $i/$try)
|
||||
}
|
||||
|
@ -75,7 +75,7 @@ if(~ $#fils 0) {
|
|||
for(i) {
|
||||
for(n in $sec) {
|
||||
try=$S/man$n/$i.$n*
|
||||
if (/bin/test -f $try)
|
||||
if (test -f $try)
|
||||
fils=($fils $try)
|
||||
}
|
||||
}
|
||||
|
@ -85,7 +85,7 @@ if(~ $#fils 0) {
|
|||
}
|
||||
}
|
||||
for(i in $fils) {
|
||||
if(! /bin/test -f $i)
|
||||
if(! test -f $i)
|
||||
echo need $i >[1=2]
|
||||
if not {
|
||||
switch($cmd) {
|
||||
|
@ -99,7 +99,7 @@ for(i in $fils) {
|
|||
roff t $i |tr2post |psfonts |page
|
||||
|
||||
case n
|
||||
roff n $i | 9sed '
|
||||
roff n $i | 9 sed '
|
||||
${
|
||||
/^$/p
|
||||
}
|
||||
|
|
|
@ -5,3 +5,9 @@
|
|||
wget -O- http://pdos.lcs.mit.edu/~rsc/software/plan9/pgw.tar.bz2|
|
||||
bunzip2|
|
||||
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["prof(1)"] = 1
|
||||
Omitman["pwd(1)"] = 1
|
||||
Omitman["qiv(1)"] = 1
|
||||
Omitman["sh(1)"] = 1
|
||||
Omitman["ssh(1)"] = 1
|
||||
Omitman["stty(1)"] = 1
|
||||
Omitman["tar(1)"] = 1
|
||||
Omitman["tex(1)"] = 1
|
||||
Omitman["unutf(1)"] = 1
|
||||
|
@ -50,6 +52,7 @@ BEGIN {
|
|||
|
||||
Omitman["access(2)"] = 1
|
||||
Omitman["brk(2)"] = 1
|
||||
Omitman["chdir(2)"] = 1
|
||||
Omitman["close(2)"] = 1
|
||||
Omitman["connect(2)"] = 1
|
||||
Omitman["fork(2)"] = 1
|
||||
|
@ -90,10 +93,10 @@ BEGIN {
|
|||
# don't need documentation for these in bin
|
||||
Omitted[".cvsignore"] = 1
|
||||
Omitted["Getdir"] = 1
|
||||
Omitted["9grep"] = 1 # is in grep(1)
|
||||
Omitted["9sed"] = 1 # is in sed(1)
|
||||
Omitted["9lex"] = 1 # is in lex(1)
|
||||
Omitted["9yacc"] = 1 # is in yacc(1)
|
||||
Omitted["tcolors"] = 1
|
||||
Omitted["tref"] = 1
|
||||
Omitted["unutf"] = 1
|
||||
Omitted["vtdump"] = 1
|
||||
|
||||
# not for users
|
||||
Omittedlib["creadimage"] = 1
|
||||
|
@ -198,56 +201,66 @@ BEGIN {
|
|||
Renamelib["regsub9"] = "regsub"
|
||||
Renamelib["rregexec9"] = "rregexec"
|
||||
Renamelib["rregsub9"] = "rregsub"
|
||||
|
||||
lastline = "XXX";
|
||||
lastfile = FILENAME;
|
||||
}
|
||||
|
||||
FNR==1 {
|
||||
n = length(FILENAME)
|
||||
nam = FILENAME
|
||||
if(nam ~ /\.html$/)
|
||||
next
|
||||
if(nam !~ /^man\/man(.*)\/(.*)\.(.*)$/){
|
||||
print "nam", nam, "not of form [0-9][0-9]?/*"
|
||||
next
|
||||
}
|
||||
nam = substr(nam, 8)
|
||||
gsub("[/.]", " ", nam);
|
||||
n = split(nam, a)
|
||||
sec = a[1]
|
||||
name = a[2]
|
||||
section = a[3]
|
||||
if($1 != ".TH" || NF != 3)
|
||||
print "First line of", FILENAME, "not a proper .TH"
|
||||
else if(($2 != toupper(name) || substr($3, 1, length(sec)) != sec || $3 != toupper(section)) \
|
||||
&& ($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
|
||||
if(lastline == ""){
|
||||
# screws up troff headers
|
||||
print lastfile ":$ is a blank line"
|
||||
}
|
||||
|
||||
n = length(FILENAME)
|
||||
nam = FILENAME
|
||||
if(nam ~ /\.html$/)
|
||||
next
|
||||
if(nam !~ /^man\/man(.*)\/(.*)\.(.*)$/){
|
||||
print "nam", nam, "not of form [0-9][0-9]?/*"
|
||||
next
|
||||
}
|
||||
nam = substr(nam, 8)
|
||||
gsub("[/.]", " ", nam);
|
||||
n = split(nam, a)
|
||||
sec = a[1]
|
||||
name = a[2]
|
||||
section = a[3]
|
||||
if($1 != ".TH" || NF != 3)
|
||||
print "First line of", FILENAME, "not a proper .TH"
|
||||
else if(($2 != toupper(name) || substr($3, 1, length(sec)) != sec || $3 != toupper(section)) \
|
||||
&& ($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" {
|
||||
if(inex)
|
||||
print "Unterminated .EX in", FILENAME, ":", $0
|
||||
inex = 0;
|
||||
if (substr($2, 1, 1) == "\"") {
|
||||
if (NF == 2) {
|
||||
print "Unneeded quote in", FILENAME, ":", $0
|
||||
$2 = substr($2, 2, length($2)-2)
|
||||
} else if (NF == 3) {
|
||||
$2 = substr($2, 2) substr($3, 1, length($3)-1)
|
||||
NF = 2
|
||||
}
|
||||
if(inex)
|
||||
print "Unterminated .EX in", FILENAME, ":", $0
|
||||
inex = 0;
|
||||
if (substr($2, 1, 1) == "\"") {
|
||||
if (NF == 2) {
|
||||
print "Unneeded quote in", FILENAME, ":", $0
|
||||
$2 = substr($2, 2, length($2)-2)
|
||||
} else if (NF == 3) {
|
||||
$2 = substr($2, 2) substr($3, 1, length($3)-1)
|
||||
NF = 2
|
||||
}
|
||||
if(Sh == 0 && $2 != "NAME")
|
||||
print FILENAME, "has no .SH NAME"
|
||||
w = Weight[$2]
|
||||
if (w) {
|
||||
if (w < Sh)
|
||||
print "Heading", $2, "out of order in", FILENAME
|
||||
Sh += w
|
||||
}
|
||||
sh = $2
|
||||
}
|
||||
if(Sh == 0 && $2 != "NAME")
|
||||
print FILENAME, "has no .SH NAME"
|
||||
w = Weight[$2]
|
||||
if (w) {
|
||||
if (w < Sh)
|
||||
print "Heading", $2, "out of order in", FILENAME
|
||||
Sh += w
|
||||
}
|
||||
sh = $2
|
||||
}
|
||||
|
||||
$1 == ".EX" {
|
||||
|
@ -257,43 +270,53 @@ $1 == ".EX" {
|
|||
}
|
||||
|
||||
$1 == ".EE" {
|
||||
if(!inex)
|
||||
print "Bad .EE in", FILENAME ":" FNR ":", $0
|
||||
inex = 0;
|
||||
if(!inex)
|
||||
print "Bad .EE in", FILENAME ":" FNR ":", $0
|
||||
inex = 0;
|
||||
}
|
||||
|
||||
$1 == ".TF" {
|
||||
smallspace = 1
|
||||
smallspace = 1
|
||||
}
|
||||
|
||||
$1 == ".PD" || $1 == ".SH" || $1 == ".SS" || $1 == ".TH" {
|
||||
smallspace = 0
|
||||
smallspace = 0
|
||||
}
|
||||
|
||||
$1 == ".RE" {
|
||||
lastre = 1
|
||||
lastre = 1
|
||||
}
|
||||
|
||||
$1 == ".PP" {
|
||||
if(smallspace && !lastre)
|
||||
print "Possible missing .PD at " FILENAME ":" FNR
|
||||
smallspace = 0
|
||||
if(smallspace && !lastre)
|
||||
print "Possible missing .PD at " FILENAME ":" FNR
|
||||
smallspace = 0
|
||||
}
|
||||
|
||||
$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 ~ /^\// {
|
||||
s = $1
|
||||
sub("\\\*9", ENVIRON["PLAN9"], s)
|
||||
Sources[s] = 1
|
||||
Sources[$1] = 1
|
||||
}
|
||||
|
||||
sh == "SOURCE" && $2 ~ /^\// {
|
||||
s = $2
|
||||
sub("\\\*9", ENVIRON["PLAN9"], s)
|
||||
Sources[s] = 1
|
||||
Sources[$2] = 1
|
||||
}
|
||||
|
||||
$0 ~ /^\.[A-Z].*\([1-9]\)/ {
|
||||
|
@ -319,6 +342,10 @@ $0 ~ /^\.[A-Z].*\([1-9]\)/ {
|
|||
}
|
||||
|
||||
END {
|
||||
if(lastline == ""){
|
||||
print lastfile ":$ is a blank line"
|
||||
}
|
||||
|
||||
print "Checking Source References"
|
||||
cmd = "xargs -n 100 ls -d 2>&1 >/dev/null | sed 's/^ls: / /; s/: .*//'"
|
||||
for (i in Sources) {
|
||||
|
|
|
@ -358,10 +358,8 @@ extern double atof(char*); <stdlib.h>
|
|||
extern int p9atoi(char*);
|
||||
extern long p9atol(char*);
|
||||
extern vlong p9atoll(char*);
|
||||
extern double charstod(int(*)(void*), void*);
|
||||
extern double fmtcharstod(int(*)(void*), void*);
|
||||
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 enc64(char*, int, uchar*, int);
|
||||
extern int dec32(uchar*, int, char*, int);
|
||||
|
@ -386,7 +384,6 @@ extern void p9longjmp(p9jmp_buf, int);
|
|||
extern char* mktemp(char*);
|
||||
extern int opentemp(char*);
|
||||
/* extern double modf(double, double*); <math.h> */
|
||||
extern int netcrypt(void*, void*);
|
||||
extern void p9notejmp(void*, p9jmp_buf, int);
|
||||
extern void perror(const char*);
|
||||
extern int postnote(int, int, char *);
|
||||
|
@ -397,14 +394,12 @@ extern double p9pow10(int);
|
|||
#define p9setjmp(b) sigsetjmp((void*)(b), 1)
|
||||
/*
|
||||
* <stdlib.h>
|
||||
extern double strtod(char*, char**);
|
||||
extern long strtol(char*, char**, int);
|
||||
extern ulong strtoul(char*, char**, int);
|
||||
extern vlong strtoll(char*, char**, int);
|
||||
extern uvlong strtoull(char*, char**, int);
|
||||
*/
|
||||
extern void sysfatal(char*, ...);
|
||||
extern void p9syslog(int, char*, char*, ...);
|
||||
extern long p9time(long*);
|
||||
/* extern int tolower(int); <ctype.h> */
|
||||
/* extern int toupper(int); <ctype.h> */
|
||||
|
@ -426,9 +421,10 @@ extern void needstack(int);
|
|||
#define putenv p9putenv
|
||||
#define notejmp p9notejmp
|
||||
#define jmp_buf p9jmp_buf
|
||||
#define syslog p9syslog
|
||||
#define time p9time
|
||||
#define pow10 p9pow10
|
||||
#define strtod fmtstrtod
|
||||
#define charstod fmtcharstod
|
||||
#endif
|
||||
|
||||
/*
|
||||
|
@ -527,7 +523,6 @@ extern int p9announce(char*, char*);
|
|||
extern int p9dial(char*, char*, char*, int*);
|
||||
extern int p9dialparse(char *ds, char **net, char **unixa, u32int *ip, int *port);
|
||||
extern void p9setnetmtpt(char*, int, char*);
|
||||
extern int p9hangup(int);
|
||||
extern int p9listen(char*, char*);
|
||||
extern char* p9netmkaddr(char*, char*, char*);
|
||||
extern int p9reject(int, char*, char*);
|
||||
|
@ -537,7 +532,6 @@ extern int p9reject(int, char*, char*);
|
|||
#define announce p9announce
|
||||
#define dial p9dial
|
||||
#define setnetmtpt p9setnetmtpt
|
||||
#define hangup p9hangup
|
||||
#define listen p9listen
|
||||
#define netmkaddr p9netmkaddr
|
||||
#define reject p9reject
|
||||
|
@ -614,6 +608,7 @@ extern void freenetconninfo(NetConnInfo*);
|
|||
#define QTEXCL 0x20 /* type bit for exclusive use files */
|
||||
#define QTMOUNT 0x10 /* type bit for mounted channel */
|
||||
#define QTAUTH 0x08 /* type bit for authentication file */
|
||||
#define QTLINK 0x04 /* symbolic link */
|
||||
#define QTFILE 0x00 /* plain file */
|
||||
|
||||
/* bits in Dir.mode */
|
||||
|
@ -622,6 +617,7 @@ extern void freenetconninfo(NetConnInfo*);
|
|||
#define DMEXCL 0x20000000 /* mode bit for exclusive use files */
|
||||
#define DMMOUNT 0x10000000 /* mode bit for mounted channel */
|
||||
#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 DMWRITE 0x2 /* mode bit for write permission */
|
||||
#define DMEXEC 0x1 /* mode bit for execute permission */
|
||||
|
|
|
@ -34,11 +34,6 @@ void threadnotify(int(*f)(void*,char*), int);
|
|||
void threaddaemonize(void);
|
||||
*/
|
||||
|
||||
/*
|
||||
* clumsy linker hack
|
||||
*/
|
||||
void threadlinklibrary(void);
|
||||
|
||||
/*
|
||||
* 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
|
||||
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
|
||||
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/doctype
|
||||
bin/lookman
|
||||
bin/sig
|
||||
bin/spell
|
||||
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
|
||||
.SH SYNOPSIS
|
||||
.B 9c
|
||||
[
|
||||
.B -I
|
||||
.I path
|
||||
]
|
||||
[
|
||||
.B -D
|
||||
.I name
|
||||
]
|
||||
.I file
|
||||
\&...
|
||||
.PP
|
||||
|
@ -26,7 +34,7 @@
|
|||
\&...
|
||||
]
|
||||
[
|
||||
.BI -l library
|
||||
.BI -l name
|
||||
\&...
|
||||
]
|
||||
.PP
|
||||
|
@ -49,12 +57,24 @@ One can use them to write portable recipes for mkfiles.
|
|||
compiles the named C
|
||||
.I files
|
||||
into object files for the current system.
|
||||
The system C compiler is invoked with warnings enabled,
|
||||
with the symbol
|
||||
The system C compiler is invoked with warnings enabled.
|
||||
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
|
||||
is defined in the C preprocessor, and with
|
||||
defined in the C preprocessor and adds
|
||||
.B $PLAN9/include
|
||||
on the include path.
|
||||
to the include path.
|
||||
.PP
|
||||
.I 9c
|
||||
also defines
|
||||
|
@ -74,7 +94,7 @@ links the named object files and libraries to create the target executable.
|
|||
Each
|
||||
.B -l
|
||||
option specifies that a library named
|
||||
.BI lib library .a
|
||||
.BI lib name .a
|
||||
be found and linked.
|
||||
The
|
||||
.B -L
|
||||
|
@ -84,6 +104,30 @@ invokes the system linker with
|
|||
.B $PLAN9/lib
|
||||
already on the library search path.
|
||||
.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
|
||||
maintains object file archives called libraries.
|
||||
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 table of contents is
|
||||
rebuilt whenever the archive is modified.
|
||||
.SH EXAMPLE
|
||||
.SH EXAMPLES
|
||||
.TP
|
||||
.L
|
||||
9c file1.c file2.c file3.c
|
||||
|
@ -167,6 +211,7 @@ Assemble one assembler source file.
|
|||
.L
|
||||
9ar rvc lib.a file[12].o
|
||||
Archive the first two object files into a library.
|
||||
.TP
|
||||
.L
|
||||
9l -o prog file3.o file4.o lib.a
|
||||
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
|
||||
To display the contents of the current
|
||||
.IR acme (4)
|
||||
window (specified by the environment variable
|
||||
.BR $winid )
|
||||
on standard output:
|
||||
window:
|
||||
.IP
|
||||
.EX
|
||||
9p read acme/$winid/body
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
.TH 9TERM 1
|
||||
.SH NAME
|
||||
9term, label \- terminal windows
|
||||
9term \- terminal windows
|
||||
.SH SYNOPSIS
|
||||
.B 9term
|
||||
[
|
||||
|
@ -14,14 +14,11 @@
|
|||
.I cmd
|
||||
\&...
|
||||
]
|
||||
.PP
|
||||
.B label
|
||||
.I name
|
||||
.SH DESCRIPTION
|
||||
.I 9term
|
||||
is a terminal window program for the X Window System,
|
||||
providing an interface similar to that used on Plan 9.
|
||||
.SS Commands
|
||||
.SS Command
|
||||
The
|
||||
.I 9term
|
||||
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
|
||||
.B $SHELL
|
||||
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
|
||||
Characters typed on the keyboard
|
||||
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.
|
||||
Thus on an empty line an EOT serves to deliver an end-of-file indication:
|
||||
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 ETB character (control-W) erases any nonalphanumeric characters, then
|
||||
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
|
||||
EOT and DEL, so the terminal must be set up with EOT
|
||||
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
|
||||
Normally, written output to a window blocks when
|
||||
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.
|
||||
In this mode,
|
||||
.I 9term
|
||||
display and allows editing of the input.
|
||||
displays and allows editing of the input.
|
||||
Some programs, typically those reading passwords,
|
||||
run with echo disabled.
|
||||
In this mode,
|
||||
|
@ -279,9 +271,23 @@ If the selection is empty, it sends the white-space-delimited text
|
|||
containing the selection (typing cursor).
|
||||
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.
|
||||
.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
|
||||
.B \*9/src/cmd/9term
|
||||
.SH BUGS
|
||||
There should be a program to toggle the current window's hold mode.
|
||||
.PP
|
||||
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
|
||||
9ar 9c.1
|
||||
9c 9c.1
|
||||
9l 9c.1
|
||||
9p 9p.1
|
||||
9term 9term.1
|
||||
label 9term.1
|
||||
acid acid.1
|
||||
acidtypes acid.1
|
||||
acme acme.1
|
||||
|
@ -27,13 +29,12 @@ cleanname cleanname.1
|
|||
auxclog clog.1
|
||||
clog clog.1
|
||||
cmp cmp.1
|
||||
cmapcube colors.1
|
||||
colors colors.1
|
||||
getmap colors.1
|
||||
comm comm.1
|
||||
core core.1
|
||||
crop crop.1
|
||||
iconv crop.1
|
||||
clock date.1
|
||||
date date.1
|
||||
db db.1
|
||||
dc dc.1
|
||||
|
@ -93,6 +94,7 @@ lc ls.1
|
|||
ls ls.1
|
||||
lookman man.1
|
||||
man man.1
|
||||
sig man.1
|
||||
map map.1
|
||||
mapd map.1
|
||||
mapdemo map.1
|
||||
|
@ -142,7 +144,6 @@ scat scat.1
|
|||
aescbc secstore.1
|
||||
ipso secstore.1
|
||||
secstore secstore.1
|
||||
9sed sed.1
|
||||
sed sed.1
|
||||
seq seq.1
|
||||
sleep sleep.1
|
||||
|
|
|
@ -4,7 +4,7 @@ acid, acidtypes \- debugger
|
|||
.SH SYNOPSIS
|
||||
.B acid
|
||||
[
|
||||
.BI -l " libfile
|
||||
.BI -l " library
|
||||
]
|
||||
[
|
||||
.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 running or defunct process,
|
||||
or by the name of the program's text file
|
||||
.RB ( 8.out
|
||||
.RB ( a.out
|
||||
by default).
|
||||
At the prompt,
|
||||
.I acid
|
||||
|
@ -514,13 +514,13 @@ for processes that are still active.
|
|||
.SH BUGS
|
||||
There is no way to redirect the standard input and standard output
|
||||
of a new process.
|
||||
.br
|
||||
.PP
|
||||
Source line selection near the beginning of a file may pick
|
||||
an adjacent file.
|
||||
.br
|
||||
.PP
|
||||
With the extant stepping commands, one cannot step through instructions
|
||||
outside the text segment and it is hard to debug across process forks.
|
||||
.br
|
||||
.PP
|
||||
Breakpoints do not work yet.
|
||||
Therefore, commands such as
|
||||
.BR step ,
|
||||
|
|
|
@ -71,7 +71,7 @@ The
|
|||
.RB ( -F )
|
||||
option sets the main font, usually variable-pitch (alternate, usually fixed-pitch);
|
||||
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 ).
|
||||
Tab intervals are set to the width of 4 (or the value of
|
||||
.BR $tabstop )
|
||||
|
@ -140,7 +140,7 @@ temporarily hiding other windows in the column.
|
|||
if any of them needs attention.)
|
||||
The layout box in a window is normally white; when it is black in the center,
|
||||
it records that the file is `dirty':
|
||||
.I Acme
|
||||
.I acme
|
||||
believes it is modified from its original
|
||||
contents.
|
||||
.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
|
||||
necessary.
|
||||
For example, in a window
|
||||
.B /adm/users
|
||||
.B /etc/passwd
|
||||
executing
|
||||
.B pwd
|
||||
will produce the output
|
||||
.B /adm
|
||||
.B /etc
|
||||
in a (possibly newly-created) window labeled
|
||||
.BR /adm/+Errors ;
|
||||
.BR /etc/+Errors ;
|
||||
in a window containing
|
||||
.B \*9/src/cmd/sam/sam.c
|
||||
.B /home/rob/sam/sam.c
|
||||
executing
|
||||
.B mk
|
||||
will run
|
||||
.IR mk (1)
|
||||
in
|
||||
.BR \*9/src/cmd/sam ,
|
||||
.BR /home/rob/sam ,
|
||||
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
|
||||
.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
|
||||
Pointing at text with button 3 instructs
|
||||
.I acme
|
||||
|
@ -586,7 +591,7 @@ creates a new
|
|||
window and runs a
|
||||
.I command
|
||||
(default
|
||||
.BR /bin/rc )
|
||||
.BR $SHELL )
|
||||
in it, turning the window into something analogous to an
|
||||
.IR rio (1)
|
||||
window.
|
||||
|
|
|
@ -132,32 +132,92 @@ and
|
|||
a button 2 action in the tag
|
||||
.RB ( x ).
|
||||
.TP
|
||||
.I q0
|
||||
|
||||
.I q0\fR, \fPq1
|
||||
The character addresses of the action.
|
||||
.TP
|
||||
.I eq0\fR, \fPq1
|
||||
The expanded character addresses of the action.
|
||||
If the text indicated by
|
||||
.IR q0 ,
|
||||
.I q1
|
||||
|
||||
.TP
|
||||
.I eq0
|
||||
|
||||
.TP
|
||||
is a null string that has a non-null expansion,
|
||||
.IR eq0 ,
|
||||
.I eq1
|
||||
|
||||
are the addresses of the expansion.
|
||||
Otherwise they are the same as
|
||||
.IR q0 ,
|
||||
.IR q1 .
|
||||
.TP
|
||||
.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
|
||||
.I textlen
|
||||
|
||||
The length of the action text (or its expansion) for button 2 and button 3 events in characters.
|
||||
.TP
|
||||
.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
|
||||
.I chordarg
|
||||
|
||||
The chorded argument for an action.
|
||||
.TP
|
||||
.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
|
||||
.I Acme.rc
|
||||
is a library of
|
||||
|
|
|
@ -39,7 +39,7 @@ ascii, unicode \- interpret ASCII, Unicode characters
|
|||
.PP
|
||||
.B look
|
||||
.I hex
|
||||
.B /lib/unicode
|
||||
.B \*9/lib/unicode
|
||||
.SH DESCRIPTION
|
||||
.I Ascii
|
||||
prints the
|
||||
|
@ -122,7 +122,7 @@ and
|
|||
may be unhelpful if the characters printed are not available in the current font.
|
||||
.PP
|
||||
The file
|
||||
.B /lib/unicode
|
||||
.B \*9/lib/unicode
|
||||
contains a
|
||||
table of characters and descriptions, sorted in hexadecimal order,
|
||||
suitable for
|
||||
|
@ -143,19 +143,18 @@ Print the hex value of `p'.
|
|||
.B "unicode 2200-22f1"
|
||||
Print a table of miscellaneous mathematical symbols.
|
||||
.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.
|
||||
.SH FILES
|
||||
.TF /lib/unicode
|
||||
.TP
|
||||
.B /lib/unicode
|
||||
.B \*9/lib/unicode
|
||||
table of characters and descriptions.
|
||||
.SH SOURCE
|
||||
.B \*9/src/cmd/ascii.c
|
||||
.br
|
||||
.B \*9/src/cmd/unicode.c
|
||||
.SH "SEE ALSO"
|
||||
.IR look (1)
|
||||
.IR look (1),
|
||||
.IR tcs (1),
|
||||
.IR utf (7),
|
||||
.IR font (7)
|
||||
|
|
|
@ -35,7 +35,7 @@ A prompt gives the input format.
|
|||
If
|
||||
.B l
|
||||
is missing, the initial position is read from the file
|
||||
.BR /lib/sky/here .
|
||||
.BR \*9/sky/here .
|
||||
.TP
|
||||
.B c
|
||||
Report for
|
||||
|
@ -105,12 +105,11 @@ This is modified (in the source) to refer to an approaching comet
|
|||
but in steady state
|
||||
usually refers to the last interesting comet (currently Hale-Bopp, C/1995 O1).
|
||||
.SH FILES
|
||||
.TF /lib/sky/estartab
|
||||
.TP
|
||||
.B /lib/sky/estartab
|
||||
.B \*9/sky/estartab
|
||||
ecliptic star data
|
||||
.TP
|
||||
.B /lib/sky/here
|
||||
.B \*9/sky/here
|
||||
default latitude (N), longitude (W), and elevation (meters)
|
||||
.SH SOURCE
|
||||
.B \*9/src/cmd/astro
|
||||
|
|
|
@ -267,7 +267,7 @@ define e(x) {
|
|||
for(i=1; i<=10; i++) print e(i)
|
||||
.EE
|
||||
.SH FILES
|
||||
.B /sys/lib/bclib
|
||||
.B \*9/lib/bclib
|
||||
mathematical library
|
||||
.SH SOURCE
|
||||
.B \*9/src/cmd/bc.y
|
||||
|
@ -281,12 +281,12 @@ No
|
|||
or
|
||||
.L !
|
||||
operators.
|
||||
.br
|
||||
.PP
|
||||
A
|
||||
.L for
|
||||
statement must have all three
|
||||
.LR E s.
|
||||
.br
|
||||
.PP
|
||||
A
|
||||
.L quit
|
||||
is interpreted when read, not when executed.
|
||||
|
|
|
@ -41,7 +41,7 @@ say in
|
|||
then do
|
||||
.TP
|
||||
.L
|
||||
cd gift; rc horse; mk
|
||||
cd gift; sh horse; mk
|
||||
.SH SOURCE
|
||||
.B \*9/bin/bundle
|
||||
.SH SEE ALSO
|
||||
|
@ -53,5 +53,5 @@ cd gift; rc horse; mk
|
|||
.SH BUGS
|
||||
.I Bundle
|
||||
will not create directories and is unsatisfactory for non-text files.
|
||||
.br
|
||||
.PP
|
||||
Beware of gift horses.
|
||||
|
|
|
@ -39,7 +39,7 @@ Try
|
|||
.SH BUGS
|
||||
The year is always considered to start in January even though this
|
||||
is historically naive.
|
||||
.br
|
||||
.PP
|
||||
Beware that
|
||||
.L "cal 90"
|
||||
refers to the early Christian era,
|
||||
|
|
|
@ -15,7 +15,7 @@ calendar \- print upcoming events
|
|||
.SH DESCRIPTION
|
||||
.I Calendar
|
||||
reads the named files, default
|
||||
.BR /usr/$user/lib/calendar ,
|
||||
.BR $HOME/lib/calendar ,
|
||||
and writes to standard output any lines
|
||||
containing today's or tomorrow's date.
|
||||
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
|
||||
.IR cron (8).
|
||||
.SH FILES
|
||||
.TF /usr/$user/lib/calendar
|
||||
.TF $HOME/lib/calendar
|
||||
.TP
|
||||
.B /usr/$user/lib/calendar
|
||||
.B $HOME/lib/calendar
|
||||
personal calendar
|
||||
.SH SOURCE
|
||||
.B \*9/src/cmd/calendar.c
|
||||
|
|
|
@ -17,7 +17,7 @@ cat, read, nobs \- catenate files
|
|||
.I file ...
|
||||
]
|
||||
.br
|
||||
nobs
|
||||
.B nobs
|
||||
[
|
||||
.I file ...
|
||||
]
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
.TH COLORS 1
|
||||
.SH NAME
|
||||
getmap, colors \- display color map
|
||||
colors, cmapcube \- display color map
|
||||
.SH SYNOPSIS
|
||||
.PP
|
||||
.B colors
|
||||
|
@ -9,16 +9,13 @@ getmap, colors \- display color map
|
|||
.B -x
|
||||
]
|
||||
.PP
|
||||
.B getmap
|
||||
.B cmapcube
|
||||
[
|
||||
.I colormap
|
||||
.B -nbw
|
||||
]
|
||||
.SH DESCRIPTION
|
||||
.I Colors
|
||||
presents a grid showing the colors in the current color map.
|
||||
If the display is true color,
|
||||
.I colors
|
||||
shows a grid of the RGBV color map
|
||||
presents a grid showing the colors in the RGBV color map
|
||||
(see
|
||||
.IR color (7)).
|
||||
.PP
|
||||
|
@ -37,36 +34,22 @@ option instead shows, in the same form, a grey-scale ramp.
|
|||
.PP
|
||||
A menu on mouse button 3 contains a single entry, to exit the program.
|
||||
.PP
|
||||
On 8-bit color-mapped displays,
|
||||
.I getmap
|
||||
loads the display's color map (default
|
||||
.BR rgbv ).
|
||||
The named
|
||||
.I colormap
|
||||
can be a file in the current directory or in the standard repository
|
||||
.BR /lib/cmap .
|
||||
It can also be a string of the form
|
||||
.B gamma
|
||||
or
|
||||
.BI gamma N\f1 ,
|
||||
where
|
||||
.I N
|
||||
is a floating point value for the gamma, defining the contrast for a monochrome map.
|
||||
Similarly,
|
||||
.B rgamma
|
||||
.I Cmapcube
|
||||
presents the same colors but in a 3-dimensional cube.
|
||||
Dragging with button 1 rotates the cube.
|
||||
Clicking on a color with button 2
|
||||
displays the map index for that color.
|
||||
Clicking button 3 exits.
|
||||
.PP
|
||||
The
|
||||
.B -n
|
||||
option disables drawing of the color squares.
|
||||
The
|
||||
.B -b
|
||||
and
|
||||
.BI rgamma N
|
||||
define a reverse-video monochrome map.
|
||||
Finally, the names
|
||||
.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
|
||||
.B -w
|
||||
options set the background (default grey)
|
||||
to black or white.
|
||||
.SH SOURCE
|
||||
.B \*9/src/cmd/draw/colors.c
|
||||
.SH SEE ALSO
|
||||
|
|
|
@ -44,3 +44,6 @@ searches the current directory.
|
|||
.IR acid (1),
|
||||
.IR db (1),
|
||||
.IR core (5)
|
||||
.SH BUGS
|
||||
.I Core
|
||||
has not been written.
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
.TH DATE 1
|
||||
.SH NAME
|
||||
date, clock \- date and time
|
||||
date \- date and time
|
||||
.SH SYNOPSIS
|
||||
.B date
|
||||
[
|
||||
|
|
|
@ -912,14 +912,6 @@ To set a breakpoint at the beginning of
|
|||
.B write()
|
||||
in extant process 27:
|
||||
.IP
|
||||
.de EX
|
||||
.RS
|
||||
.ft B
|
||||
.nf
|
||||
..
|
||||
.de EE
|
||||
.RE
|
||||
..
|
||||
.EX
|
||||
% db 27
|
||||
:h
|
||||
|
|
|
@ -223,15 +223,15 @@ results are truncated to the following scales.
|
|||
\fLv\fR max(\fIs,sa\fR)
|
||||
.fi
|
||||
.SH EXAMPLES
|
||||
.LP
|
||||
Print the first ten values of
|
||||
.IR n !
|
||||
.IP
|
||||
.EX
|
||||
[la1+dsa*pla10>y]sy
|
||||
0sa1
|
||||
lyx
|
||||
.EE
|
||||
.ns
|
||||
.IP
|
||||
Print the first ten values of
|
||||
.IR n !
|
||||
.SH SOURCE
|
||||
.B \*9/src/cmd/dc.c
|
||||
.SH "SEE ALSO"
|
||||
|
|
|
@ -112,6 +112,6 @@ when the popular
|
|||
delimiters for
|
||||
.I eqn
|
||||
are in effect.
|
||||
.br
|
||||
.PP
|
||||
Text inside macros is emitted at place of
|
||||
definition, not place of call.
|
||||
|
|
|
@ -182,12 +182,10 @@ it starts with the
|
|||
.BI /adict/ dict /
|
||||
window.
|
||||
.SH FILES
|
||||
.B /lib/dict/oed2
|
||||
.br
|
||||
.B /lib/dict/oed2index
|
||||
.br
|
||||
Other files in
|
||||
.BR /lib .
|
||||
.TP
|
||||
.B \*9/dict
|
||||
dictionaries
|
||||
.PD
|
||||
.SH "SEE ALSO"
|
||||
.IR regexp (7)
|
||||
.SH SOURCE
|
||||
|
|
|
@ -148,7 +148,7 @@ Editing scripts produced under the
|
|||
.BR -e " or"
|
||||
.BR -f " option are naive about"
|
||||
creating lines consisting of a single `\fB.\fR'.
|
||||
.br
|
||||
.PP
|
||||
When running
|
||||
.I diff
|
||||
on directories, the notion of what is a text
|
||||
|
|
|
@ -4,8 +4,13 @@ doctype \- intuit command line for formatting a document
|
|||
.SH SYNOPSIS
|
||||
.B doctype
|
||||
[
|
||||
.I option ...
|
||||
] [
|
||||
.B -n
|
||||
]
|
||||
[
|
||||
.B -T
|
||||
.I dev
|
||||
]
|
||||
[
|
||||
.I file
|
||||
]
|
||||
\&...
|
||||
|
@ -32,7 +37,9 @@ invokes
|
|||
.I nroff
|
||||
instead of
|
||||
.IR troff .
|
||||
Other options are passed to
|
||||
The
|
||||
.B -T
|
||||
option is passed to
|
||||
.IR troff .
|
||||
.SH EXAMPLES
|
||||
.TP
|
||||
|
|
|
@ -49,7 +49,7 @@ commands.
|
|||
If no
|
||||
.I file
|
||||
is given, make
|
||||
.B /fd/1
|
||||
.B /dev/stdout
|
||||
the remembered file; see the
|
||||
.L e
|
||||
command below.
|
||||
|
|
|
@ -13,11 +13,11 @@ If a
|
|||
.I file
|
||||
is specified, the saying is taken from that file;
|
||||
otherwise it is selected from
|
||||
.BR /sys/games/lib/fortunes .
|
||||
.BR \*9/lib/fortunes .
|
||||
.SH FILES
|
||||
.B /sys/games/lib/fortunes
|
||||
.B \*9/lib/fortunes
|
||||
.br
|
||||
.B /sys/games/lib/fortunes.index
|
||||
.B \*9/lib/fortunes.index
|
||||
\ \ fast lookup table, maintained automatically
|
||||
.SH SOURCE
|
||||
.B \*9/src/cmd/fortune.c
|
||||
|
|
|
@ -254,7 +254,7 @@ symbols like
|
|||
.BR star ,
|
||||
.BR plus ,
|
||||
etc., in
|
||||
.BR /sys/lib/grap.defines ,
|
||||
.BR \*9/lib/grap.defines ,
|
||||
which is included if it exists.
|
||||
.PP
|
||||
.I var
|
||||
|
@ -399,9 +399,9 @@ copy thru / circle at $1,$2 /
|
|||
.vs
|
||||
.EE
|
||||
.SH FILES
|
||||
.TF /sys/lib/grap.defines
|
||||
.TF \*9/lib/grap.defines
|
||||
.TP
|
||||
.B /sys/lib/grap.defines
|
||||
.B \*9/lib/grap.defines
|
||||
definitions of standard plotting characters, e.g., bullet
|
||||
.SH SOURCE
|
||||
.B \*9/src/cmd/grap
|
||||
|
|
|
@ -10,6 +10,7 @@ grep, g \- search a file for a pattern
|
|||
[
|
||||
.I file ...
|
||||
]
|
||||
.PP
|
||||
.B g
|
||||
[
|
||||
.I option ...
|
||||
|
|
|
@ -14,7 +14,8 @@ interactively
|
|||
merges
|
||||
.I file1
|
||||
and
|
||||
.IR file2 .
|
||||
.I file2
|
||||
onto standard output.
|
||||
Wherever
|
||||
.I file1
|
||||
and
|
||||
|
@ -23,7 +24,8 @@ differ,
|
|||
.I idiff
|
||||
displays the differences in the style of
|
||||
.RB `` diff
|
||||
.RB -n ''
|
||||
.BR -n ''
|
||||
on standard error
|
||||
and prompts the user to select a chunk.
|
||||
Valid responses are:
|
||||
.TP
|
||||
|
@ -54,9 +56,10 @@ The
|
|||
.B -b
|
||||
and
|
||||
.B -w
|
||||
flags
|
||||
are simply
|
||||
passed through to
|
||||
flags,
|
||||
if passed,
|
||||
are
|
||||
passed to
|
||||
.IR diff .
|
||||
.SH FILES
|
||||
.B /tmp/idiff.*
|
||||
|
@ -68,5 +71,3 @@ passed through to
|
|||
Kernighan and Pike,
|
||||
.IR "The Unix Programming Environment" ,
|
||||
Prentice-Hall, 1984.
|
||||
.SH BUGS
|
||||
This is a poorly-written manual page.
|
||||
|
|
|
@ -143,5 +143,5 @@ with
|
|||
the sequence is that of
|
||||
.BI "sort -t" x
|
||||
.BI -k y , y\f1.
|
||||
.br
|
||||
.PP
|
||||
One of the files must be randomly accessible.
|
||||
|
|
|
@ -13,11 +13,6 @@ kill, slay, start, stop \- print commands to manipulate processes
|
|||
.PP
|
||||
.B stop
|
||||
.I name ...
|
||||
.PP
|
||||
.B broke
|
||||
[
|
||||
.I user
|
||||
]
|
||||
.SH DESCRIPTION
|
||||
.I Kill
|
||||
prints commands that will cause all processes with
|
||||
|
@ -67,3 +62,8 @@ signal.
|
|||
.SH "SEE ALSO"
|
||||
.IR ps (1),
|
||||
.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
|
||||
Cannot handle
|
||||
.SM UTF.
|
||||
.br
|
||||
.PP
|
||||
The asteroid to kill this dinosaur is still in orbit.
|
||||
|
|
|
@ -77,10 +77,9 @@ is assumed, with collating sequence
|
|||
.IR grep (1)
|
||||
.SH DIAGNOSTICS
|
||||
The exit status is
|
||||
.B \&"not found"
|
||||
.RB `` "not found" ''
|
||||
if no match is found, and
|
||||
.B \&"no dictionary"
|
||||
.RB `` "no dictionary" ''
|
||||
if
|
||||
.I file
|
||||
or the default dictionary cannot be opened.
|
||||
|
||||
|
|
|
@ -157,6 +157,5 @@ if none of the above permissions is granted.
|
|||
.br
|
||||
.B \*9/bin/lc
|
||||
.SH SEE ALSO
|
||||
.IR stat (3)
|
||||
.IR stat (3),
|
||||
.IR mc (1)
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
.TH MAN 1
|
||||
.SH NAME
|
||||
man, lookman \- print or find pages of this manual
|
||||
man, lookman, sig \- print or find pages of this manual
|
||||
.SH SYNOPSIS
|
||||
.B man
|
||||
[
|
||||
|
@ -88,17 +88,20 @@ command to make an index for a given section
|
|||
index for
|
||||
.I lookman
|
||||
.SH SOURCE
|
||||
.B \*9/bin/9man
|
||||
.B \*9/bin/man
|
||||
.br
|
||||
.B \*9/bin/lookman
|
||||
.SH "SEE ALSO"
|
||||
.IR page (1),
|
||||
.IR proof (1)
|
||||
.SH BUGS
|
||||
The manual was intended to be typeset; some detail is sacrificed on text terminals.
|
||||
.PP
|
||||
There is no automatic mechanism to keep the indices up to date.
|
||||
.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
|
||||
and/or
|
||||
.IR eqn .
|
||||
|
|
|
@ -634,7 +634,7 @@ maps for
|
|||
.B /lib/map/*.x
|
||||
map indexes
|
||||
.TP
|
||||
.B /bin/aux/mapd
|
||||
.B mapd
|
||||
Map driver program
|
||||
.SH SOURCE
|
||||
.B \*9/src/cmd/map
|
||||
|
|
|
@ -1,21 +1,4 @@
|
|||
.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
|
||||
mk, membername \- maintain (make) related files
|
||||
.SH SYNOPSIS
|
||||
|
@ -313,6 +296,7 @@ and any command line assignment as an argument to
|
|||
.IR mk .
|
||||
A variable assignment argument overrides the first (but not any subsequent)
|
||||
assignment to that variable.
|
||||
.PP
|
||||
The variable
|
||||
.B MKFLAGS
|
||||
contains all the option arguments (arguments starting with
|
||||
|
@ -324,6 +308,45 @@ and
|
|||
contains all the targets in the call to
|
||||
.IR mk .
|
||||
.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
|
||||
.IP
|
||||
\fR<|\fIcommand\fR \fIargs\fR
|
||||
|
@ -510,6 +533,7 @@ archives.
|
|||
.I Membername
|
||||
echoes just the member names of a list of aggregate names.
|
||||
It is useful in recipes like:
|
||||
.IP
|
||||
.EX
|
||||
OFILES=a.o b.o
|
||||
libc.a(%):N: %
|
||||
|
@ -647,7 +671,7 @@ x.tab.h:Pcmp -s: y.tab.h
|
|||
.EE
|
||||
.SH SEE ALSO
|
||||
.IR sh (1),
|
||||
.IR regexp9 (7)
|
||||
.IR regexp (7)
|
||||
.PP
|
||||
A. Hume,
|
||||
``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.
|
||||
.SH BUGS
|
||||
Identical recipes for regular expression meta-rules only have one target.
|
||||
.br
|
||||
.PP
|
||||
Seemingly appropriate input like
|
||||
.B CFLAGS=-DHZ=60
|
||||
is parsed as an erroneous attribute; correct it by inserting
|
||||
a space after the first
|
||||
.LR = .
|
||||
.br
|
||||
.PP
|
||||
The recipes printed by
|
||||
.I mk
|
||||
before being passed to
|
||||
.I sh
|
||||
the shell
|
||||
for execution are sometimes erroneously expanded
|
||||
for printing. Don't trust what's printed; rely
|
||||
on what
|
||||
.I sh
|
||||
on what the shell
|
||||
does.
|
||||
|
|
|
@ -11,4 +11,5 @@ See
|
|||
.SH SOURCE
|
||||
.B \*9/src/cmd/namespace.c
|
||||
.SH SEE ALSO
|
||||
.IR getns (3)
|
||||
.IR getns (3),
|
||||
.IR intro (4)
|
||||
|
|
|
@ -35,13 +35,13 @@ Other arguments
|
|||
select particular news items.
|
||||
.PP
|
||||
To post a news item, create a file in
|
||||
.BR /lib/news .
|
||||
.PP
|
||||
You may arrange to receive news automatically by
|
||||
registering your mail address in
|
||||
.BR /sys/lib/subscribers .
|
||||
A daemon mails recent news
|
||||
to all addresses on the list.
|
||||
.BR \*9/news .
|
||||
.\" .PP
|
||||
.\" You may arrange to receive news automatically by
|
||||
.\" registering your mail address in
|
||||
.\" .BR /sys/lib/subscribers .
|
||||
.\" A daemon mails recent news
|
||||
.\" to all addresses on the list.
|
||||
.PP
|
||||
Empty news items, and news items named
|
||||
.B core
|
||||
|
@ -49,15 +49,14 @@ or
|
|||
.B dead.letter
|
||||
are ignored.
|
||||
.SH FILES
|
||||
.TF /sys/lib/subscribers
|
||||
.TP
|
||||
.B /lib/news/*
|
||||
.B \*9/news/*
|
||||
articles
|
||||
.TP
|
||||
.B $HOME/lib/newstime
|
||||
modify time is time news was last read
|
||||
.TP
|
||||
.B /sys/lib/subscribers
|
||||
.\" .TP
|
||||
.\" .B /sys/lib/subscribers
|
||||
who gets news mailed to them
|
||||
.SH SOURCE
|
||||
.B \*9/src/cmd/news.c
|
||||
|
|
|
@ -49,7 +49,7 @@ To view troff output, use
|
|||
.IR proof (1).
|
||||
.SH "SEE ALSO
|
||||
.IR gs (1),
|
||||
.IR gv (1)
|
||||
.IR gv (1),
|
||||
.IR jpg (1),
|
||||
.IR proof (1),
|
||||
.IR tex (1),
|
||||
|
@ -64,3 +64,11 @@ When using Preview on Mac OS X,
|
|||
leaves temporary files in
|
||||
.BR /var/tmp ,
|
||||
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
|
||||
attribute to the message.
|
||||
.SH FILES
|
||||
.TF /usr/$user/lib/plumbing
|
||||
.TF $HOME/lib/plumbing
|
||||
.TP
|
||||
.B /usr/$user/lib/plumbing
|
||||
.B $HOME/lib/plumbing
|
||||
default rules file
|
||||
.TP
|
||||
.B /mnt/plumb
|
||||
mount point for
|
||||
.IR plumber (4).
|
||||
.SH SOURCE
|
||||
.B \*9/src/cmd/plumb
|
||||
.SH "SEE ALSO"
|
||||
|
|
|
@ -115,12 +115,11 @@ and
|
|||
.B d
|
||||
commands are also available as command line options.
|
||||
.SH FILES
|
||||
.TF /lib/font/bit/MAP
|
||||
.TP
|
||||
.B /lib/font/bit/*
|
||||
.B \*9/font/*
|
||||
fonts
|
||||
.TP
|
||||
.B /lib/font/bit/MAP
|
||||
.B \*9/font/MAP
|
||||
how to convert troff output fonts and character names
|
||||
into screen fonts and character numbers
|
||||
.SH SOURCE
|
||||
|
|
|
@ -81,7 +81,7 @@ performing the named system call.
|
|||
waiting for more of a critical
|
||||
.IR resource .
|
||||
.TP
|
||||
.BI wchan
|
||||
.I wchan
|
||||
waiting on the named wait channel
|
||||
(on a Unix kernel).
|
||||
.PD
|
||||
|
|
|
@ -765,8 +765,7 @@ The string for a variable entry has the variable's name followed by
|
|||
.B =
|
||||
and its value.
|
||||
If the value has more than one component, these
|
||||
are separated by SOH
|
||||
.RB ( '\e001' )
|
||||
are separated by SOH (001)
|
||||
characters.
|
||||
The string for a function is just the
|
||||
.I rc
|
||||
|
|
|
@ -19,6 +19,9 @@ sam, B, E, sam.save, samterm, samsave \- screen editor with structural regular e
|
|||
.B B
|
||||
.IB file \fR[\fP: line \fR]
|
||||
\&...
|
||||
.PP
|
||||
.B E
|
||||
.I file
|
||||
.SH DESCRIPTION
|
||||
.I Sam
|
||||
is a multi-file editor.
|
||||
|
@ -845,7 +848,7 @@ It runs
|
|||
.I B
|
||||
on
|
||||
.I file
|
||||
and then waits to exit until
|
||||
and then does not exit until
|
||||
.I file
|
||||
is changed, which is taken as a signal that
|
||||
.I file
|
||||
|
@ -858,22 +861,22 @@ terminates other than by a
|
|||
command (by hangup, deleting its window, etc.), modified
|
||||
files are saved in an
|
||||
executable file,
|
||||
.BR $home/sam.save .
|
||||
.BR $HOME/sam.save .
|
||||
This program, when executed, asks whether to write
|
||||
each file back to a external file.
|
||||
The answer
|
||||
.L y
|
||||
causes writing; anything else skips the file.
|
||||
.SH FILES
|
||||
.TF \*9/src/cmd/samterm
|
||||
.TF $HOME/sam.save
|
||||
.TP
|
||||
.B $home/sam.save
|
||||
.B $HOME/sam.save
|
||||
.TP
|
||||
.B $home/sam.err
|
||||
.B $HOME/sam.err
|
||||
.TP
|
||||
.B \*9/bin/samsave
|
||||
the program called to unpack
|
||||
.BR $home/sam.save .
|
||||
.BR $HOME/sam.save .
|
||||
.SH SOURCE
|
||||
.TF \*9/src/cmd/samterm
|
||||
.TP
|
||||
|
@ -886,6 +889,8 @@ itself
|
|||
source for the separate terminal part
|
||||
.TP
|
||||
.B \*9/bin/B
|
||||
.TP
|
||||
.B \*9/bin/E
|
||||
.SH SEE ALSO
|
||||
.IR ed (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
|
||||
.BR astro .
|
||||
The positions are current at the start of
|
||||
.I scat 's
|
||||
.IR scat 's
|
||||
execution; see the
|
||||
.B astro
|
||||
command in the next section for more information.
|
||||
|
@ -313,20 +313,20 @@ Draw a map of the Pleiades.
|
|||
expand 1
|
||||
plot
|
||||
.EE
|
||||
.PP
|
||||
Show a pretty galaxy.
|
||||
.EX
|
||||
ngc1300
|
||||
plate 10'
|
||||
.EE
|
||||
.\" .PP
|
||||
.\" Show a pretty galaxy.
|
||||
.\" .EX
|
||||
.\" ngc1300
|
||||
.\" plate 10'
|
||||
.\" .EE
|
||||
.SH FILES
|
||||
.B /lib/sky/*.scat
|
||||
.B \*9/sky/*.scat
|
||||
.SH SOURCE
|
||||
.B \*9/src/cmd/scat
|
||||
.SH SEE ALSO
|
||||
.IR astro (1)
|
||||
.br
|
||||
.B /lib/sky/constelnames\ \
|
||||
.B \*9/sky/constelnames\ \
|
||||
the three-letter abbreviations of the constellation names.
|
||||
.PP
|
||||
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,
|
||||
and save the updated file back to secstore.
|
||||
The final command loads the new secret into the running factotum.
|
||||
.PP
|
||||
The
|
||||
.I ipso
|
||||
command packages this sequence into a convenient script to simplify editing of
|
||||
.I files
|
||||
stored on a secure store.
|
||||
It copies the named
|
||||
.I files
|
||||
into a local
|
||||
.IR ramfs (4)
|
||||
and invokes
|
||||
.IR acme (1)
|
||||
on them. When the editor exits,
|
||||
.I ipso
|
||||
prompts the user to confirm copying modifed or newly created files back to
|
||||
.I secstore.
|
||||
If no
|
||||
.I file
|
||||
is mentioned,
|
||||
.I ipso
|
||||
grabs all the user's files from
|
||||
.I secstore
|
||||
for editing.
|
||||
.PP
|
||||
By default, ipso will edit the
|
||||
.I secstore
|
||||
files and, if
|
||||
one of them is named
|
||||
.BR factotum ,
|
||||
flush your current keys from factotum and load
|
||||
the new ones from the file.
|
||||
If you supply any of the
|
||||
.BR -e ,
|
||||
.BR -f ,
|
||||
or
|
||||
.BR -l
|
||||
options,
|
||||
.I ipso
|
||||
will just perform the operations you requested, i.e.,
|
||||
edit, flush, and/or load.
|
||||
.PP
|
||||
The
|
||||
.B -s
|
||||
option of
|
||||
.I ipso
|
||||
invokes
|
||||
.IR sam (1)
|
||||
as the editor insted of
|
||||
.BR acme ;
|
||||
the
|
||||
.B -a
|
||||
option provides a similar service for files encrypted by
|
||||
.I aescbc
|
||||
.RI ( q.v. ).
|
||||
With the
|
||||
.B -a
|
||||
option, the full rooted pathname of the
|
||||
.I file
|
||||
must be specified and all
|
||||
.I files
|
||||
must be encrypted with the same key.
|
||||
Also with
|
||||
.BR -a ,
|
||||
newly created files are ignored.
|
||||
.\" .PP
|
||||
.\" The
|
||||
.\" .I ipso
|
||||
.\" command packages this sequence into a convenient script to simplify editing of
|
||||
.\" .I files
|
||||
.\" stored on a secure store.
|
||||
.\" It copies the named
|
||||
.\" .I files
|
||||
.\" into a local
|
||||
.\" .IR ramfs (4)
|
||||
.\" and invokes
|
||||
.\" .IR acme (1)
|
||||
.\" on them. When the editor exits,
|
||||
.\" .I ipso
|
||||
.\" prompts the user to confirm copying modifed or newly created files back to
|
||||
.\" .I secstore.
|
||||
.\" If no
|
||||
.\" .I file
|
||||
.\" is mentioned,
|
||||
.\" .I ipso
|
||||
.\" grabs all the user's files from
|
||||
.\" .I secstore
|
||||
.\" for editing.
|
||||
.\" .PP
|
||||
.\" By default, ipso will edit the
|
||||
.\" .I secstore
|
||||
.\" files and, if
|
||||
.\" one of them is named
|
||||
.\" .BR factotum ,
|
||||
.\" flush your current keys from factotum and load
|
||||
.\" the new ones from the file.
|
||||
.\" If you supply any of the
|
||||
.\" .BR -e ,
|
||||
.\" .BR -f ,
|
||||
.\" or
|
||||
.\" .BR -l
|
||||
.\" options,
|
||||
.\" .I ipso
|
||||
.\" will just perform the operations you requested, i.e.,
|
||||
.\" edit, flush, and/or load.
|
||||
.\" .PP
|
||||
.\" The
|
||||
.\" .B -s
|
||||
.\" option of
|
||||
.\" .I ipso
|
||||
.\" invokes
|
||||
.\" .IR sam (1)
|
||||
.\" as the editor insted of
|
||||
.\" .BR acme ;
|
||||
.\" the
|
||||
.\" .B -a
|
||||
.\" option provides a similar service for files encrypted by
|
||||
.\" .I aescbc
|
||||
.\" .RI ( q.v. ).
|
||||
.\" With the
|
||||
.\" .B -a
|
||||
.\" option, the full rooted pathname of the
|
||||
.\" .I file
|
||||
.\" must be specified and all
|
||||
.\" .I files
|
||||
.\" must be encrypted with the same key.
|
||||
.\" Also with
|
||||
.\" .BR -a ,
|
||||
.\" newly created files are ignored.
|
||||
.PP
|
||||
.I Aescbc
|
||||
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
|
||||
(or a disk crash) is irrevocable. You are advised to store
|
||||
important secrets in a second location.
|
||||
.PP
|
||||
When using
|
||||
.IR ipso ,
|
||||
secrets will appear as plain text in the editor window,
|
||||
so use the command in private.
|
||||
.\" .PP
|
||||
.\" When using
|
||||
.\" .IR ipso ,
|
||||
.\" secrets will appear as plain text in the editor window,
|
||||
.\" so use the command in private.
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
.TH SED 1
|
||||
.SH NAME
|
||||
9sed \- stream editor
|
||||
sed \- stream editor
|
||||
.SH SYNOPSIS
|
||||
.B 9sed
|
||||
.B sed
|
||||
[
|
||||
.B -n
|
||||
]
|
||||
|
@ -366,7 +366,7 @@ ${
|
|||
Delete all but one of each group of empty lines from a
|
||||
formatted manuscript.
|
||||
.SH SOURCE
|
||||
.B \*9/src/cmd/9sed.c
|
||||
.B \*9/src/cmd/sed.c
|
||||
.SH SEE ALSO
|
||||
.IR ed (1),
|
||||
.IR grep (1),
|
||||
|
|
|
@ -19,6 +19,8 @@ sort \- sort and/or merge files
|
|||
.I ,pos2
|
||||
]
|
||||
] ...
|
||||
.br
|
||||
\h'0.5in'
|
||||
[
|
||||
.B -o
|
||||
.I output
|
||||
|
@ -210,7 +212,7 @@ This file may be the same as one of the inputs.
|
|||
Put temporary files in
|
||||
.I dir
|
||||
rather than in
|
||||
.BR /tmp .
|
||||
.BR /var/tmp .
|
||||
.ne 4
|
||||
.SH EXAMPLES
|
||||
.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
|
||||
come out in their original order.
|
||||
.SH FILES
|
||||
.BI /tmp/sort. <pid>.<ordinal>
|
||||
.BI /var/tmp/sort. <pid>.<ordinal>
|
||||
.SH SOURCE
|
||||
.B \*9/src/cmd/sort.c
|
||||
.SH SEE ALSO
|
||||
|
|
|
@ -67,7 +67,7 @@ American spelling list
|
|||
.B \*9/lib/brspell
|
||||
British spelling list
|
||||
.TP
|
||||
.B /bin/aux/sprog
|
||||
.B \*9/bin/sprog
|
||||
The actual spelling checker.
|
||||
It expects one word per line on standard input,
|
||||
and takes the same arguments as
|
||||
|
@ -87,7 +87,7 @@ source for
|
|||
The heuristics of
|
||||
.IR deroff (1)
|
||||
used to excise formatting information are imperfect.
|
||||
.br
|
||||
.PP
|
||||
The spelling list's coverage is uneven;
|
||||
in particular biology, medicine, and chemistry, and
|
||||
perforce proper names,
|
||||
|
|
|
@ -167,13 +167,21 @@ to exit.
|
|||
.PD
|
||||
.SH EXAMPLE
|
||||
Show the load, memory, interrupts, system calls, context switches,
|
||||
and ethernet packets for the local machine, a remote Linux machine
|
||||
.BR tux ,
|
||||
and a remote BSD machine
|
||||
.BR daemon .
|
||||
and ethernet packets for the local machine,
|
||||
a remote BSD machine
|
||||
.IR 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
|
||||
.B
|
||||
stats -lmisce `hostname` tux:\*9/bin/auxstats daemon
|
||||
.EX
|
||||
stats -lmisce `hostname` daemon \e
|
||||
tux:\*9/bin/auxstats
|
||||
.EE
|
||||
.SH SOURCE
|
||||
.B \*9/src/cmd/draw/stats.c
|
||||
.PP
|
||||
|
|
|
@ -77,11 +77,11 @@ Print the first 10 lines of a file.
|
|||
Tails relative to the end of the file
|
||||
are treasured up in a buffer, and thus
|
||||
are limited in length.
|
||||
.br
|
||||
.PP
|
||||
According to custom, option
|
||||
.BI + number
|
||||
counts lines from 1, and counts
|
||||
blocks and bytes from 0.
|
||||
.br
|
||||
.PP
|
||||
.I Tail
|
||||
is ignorant of UTF.
|
||||
|
|
|
@ -158,19 +158,19 @@ to speed output and reduce output character count.
|
|||
Tab settings are assumed to be every
|
||||
8 nominal character widths.
|
||||
.SH FILES
|
||||
.TF /sys/lib/troff/term/*
|
||||
.TF \*9/troff/term/*
|
||||
.TP
|
||||
.B /tmp/trtmp*
|
||||
temporary file
|
||||
.TP
|
||||
.B /sys/lib/tmac/tmac.*
|
||||
.B \*9/tmac/tmac.*
|
||||
standard macro files
|
||||
.TP
|
||||
.B /sys/lib/troff/term/*
|
||||
.B \*9/troff/term/*
|
||||
terminal driving tables for
|
||||
.I nroff
|
||||
.TP
|
||||
.B /sys/lib/troff/font/*
|
||||
.B \*9/troff/font/*
|
||||
font width tables for
|
||||
.I troff
|
||||
.SH SOURCE
|
||||
|
|
|
@ -73,13 +73,13 @@ Currency is denoted
|
|||
etc.
|
||||
.PP
|
||||
The complete list of units can be found in
|
||||
.BR /lib/units .
|
||||
.BR \*9/lib/units .
|
||||
A
|
||||
.I file
|
||||
argument to
|
||||
.I units
|
||||
specifies a file to be used instead of
|
||||
.BR /lib/units.
|
||||
.BR \*9/lib/units.
|
||||
The
|
||||
.B -v
|
||||
flag causes
|
||||
|
@ -93,7 +93,7 @@ you want: atm
|
|||
/ .97973
|
||||
.EE
|
||||
.SH FILES
|
||||
.B /lib/units
|
||||
.B \*9/lib/units
|
||||
.SH SOURCE
|
||||
.B \*9/src/cmd/units.y
|
||||
.SH BUGS
|
||||
|
@ -102,7 +102,6 @@ Since
|
|||
does only multiplicative scale changes,
|
||||
it can convert Kelvin to Rankine but not Centigrade to
|
||||
Fahrenheit.
|
||||
.br
|
||||
.PP
|
||||
Currency conversions are only as accurate as the last time someone
|
||||
updated
|
||||
.BR /lib/units .
|
||||
updated the database.
|
||||
|
|
|
@ -127,4 +127,3 @@ and the vac archives that are expanded and merged.
|
|||
.B \*9/src/cmd/vac
|
||||
.SH "SEE ALSO"
|
||||
Plan 9's \fIvacfs\fR(4) and \fIventi\fR(8)
|
||||
|
||||
|
|
|
@ -43,7 +43,7 @@ but
|
|||
looks for only
|
||||
.SM ASCII
|
||||
space, tab and newline.
|
||||
.br
|
||||
.PP
|
||||
.I Wc
|
||||
should have options to count suboptimal
|
||||
.SM UTF
|
||||
|
|
|
@ -31,6 +31,8 @@ The choice of browser is determined by the
|
|||
.B $BROWSER
|
||||
environment variable, which should be the name of
|
||||
the executable for your choice of web browser.
|
||||
The default is
|
||||
.BR firefox .
|
||||
Since the various browsers all use different syntaxes
|
||||
in their
|
||||
.B -remote
|
||||
|
@ -41,6 +43,23 @@ When possible,
|
|||
.I web
|
||||
opens each URL in a new tab rather than a new window.
|
||||
.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
|
||||
starts the composition of a new mail message to
|
||||
.IR address .
|
||||
|
@ -49,7 +68,8 @@ The choice of mailer is determined by the
|
|||
.B $MAILER
|
||||
environment variable.
|
||||
The supported mailers are:
|
||||
.TP browser
|
||||
.TP
|
||||
.B browser
|
||||
invoke the mailer via a
|
||||
.B mailto://
|
||||
URL passed to
|
||||
|
|
|
@ -1,15 +1,19 @@
|
|||
.TH WINTEXT 1
|
||||
.SH NAME
|
||||
wintext, ", "" \- access text in current window
|
||||
.ds x \C'"'
|
||||
.ds xx \C'"'\^\^\^\^\C'"'
|
||||
.ds y \*x\
|
||||
.ds yy \*(xx\
|
||||
.SH SYNOPSIS
|
||||
.B wintext
|
||||
.br
|
||||
.B \C'"'\
|
||||
.B \*x\
|
||||
[
|
||||
.I prefix
|
||||
]
|
||||
.br
|
||||
.B \C'"'\C'"'\
|
||||
.B \*(xx\
|
||||
[
|
||||
.I prefix
|
||||
]
|
||||
|
@ -23,7 +27,7 @@ or
|
|||
.IR 9term (1)
|
||||
window to standard output.
|
||||
.PP
|
||||
.I \C'"'
|
||||
.I \*y
|
||||
searches the window text for commands typed with a particular prefix
|
||||
and prints them, indented, to standard output.
|
||||
.I Prefix
|
||||
|
@ -31,18 +35,18 @@ is a regular expression that is matched against the beginning of the command-lin
|
|||
If
|
||||
.I prefix
|
||||
is omitted,
|
||||
.I \C'"'
|
||||
.I \*y
|
||||
prints the last command executed.
|
||||
.I \C'"'\C'"'
|
||||
.I \*(yy
|
||||
prints the last command that
|
||||
.I \C'"'
|
||||
.I \*y
|
||||
would print and then executes it by piping it into
|
||||
.IR rc (1).
|
||||
.PP
|
||||
Both
|
||||
.I \C'"'
|
||||
.I \*y
|
||||
and
|
||||
.I \C'"'\C'"'
|
||||
.I \*(yy
|
||||
identify commands in the window text by looking for lines
|
||||
beginning with a shell prompt.
|
||||
Prompts are assumed to be an unindented sequence of
|
||||
|
@ -62,7 +66,7 @@ commands executed in this window:
|
|||
.IP
|
||||
.EX
|
||||
.ta +4n
|
||||
% \C'"' 'l[sc]'
|
||||
% \*x 'l[sc]'
|
||||
% ls -l /tmp/qq*
|
||||
# ls -lrt /etc
|
||||
% lc r*
|
||||
|
@ -75,7 +79,7 @@ command again:
|
|||
.IP
|
||||
.EX
|
||||
.ta +4n
|
||||
% \C'"'\C'"' lc
|
||||
% \*(xx lc
|
||||
% lc r*
|
||||
ramfs rc read rio rm
|
||||
%
|
||||
|
@ -86,13 +90,9 @@ ramfs rc read rio rm
|
|||
.SH SOURCE
|
||||
.B \*9/bin
|
||||
.SH BUGS
|
||||
.I \C'"'
|
||||
.I \*y
|
||||
and
|
||||
.I \C'"'\C'"'
|
||||
.I \*(yy
|
||||
are hard to type in shells other than
|
||||
.IR rc (1).
|
||||
.\" and in troff!
|
||||
.PP
|
||||
Don't run
|
||||
.I \C'"'\C'"'
|
||||
twice in a row.
|
||||
|
|
|
@ -145,7 +145,7 @@ parser prototype
|
|||
.B \*9/lib/yaccpars
|
||||
parser prototype using stdio
|
||||
.SH SOURCE
|
||||
.B \*9/src/cmd/9yacc.c
|
||||
.B \*9/src/cmd/yacc.c
|
||||
.SH "SEE ALSO"
|
||||
.IR lex (1)
|
||||
.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
|
||||
structures are allocated one-to-one with uncompleted
|
||||
requests and active fids, and are described in
|
||||
.IR 9pfid (3).
|
||||
.IR 9p-fid (3).
|
||||
.PP
|
||||
The behavior of
|
||||
.I srv
|
||||
depends on whether there is a file tree
|
||||
(see
|
||||
.IR 9pfile (3))
|
||||
.IR 9p-file (3))
|
||||
associated with the server, that is,
|
||||
whether the
|
||||
.B tree
|
||||
|
@ -717,8 +717,8 @@ accept the
|
|||
option to increment
|
||||
.BR chatty9p .
|
||||
.SH EXAMPLES
|
||||
\*9/src/lib9p/ramfs.c
|
||||
is an example of simple single-threaded file servers.
|
||||
.B \*9/src/lib9p/ramfs.c
|
||||
is an example of a simple single-threaded file server.
|
||||
On Plan 9, see
|
||||
.IR archfs ,
|
||||
.IR cdfs ,
|
||||
|
@ -744,6 +744,6 @@ or is maintained elsewhere.
|
|||
.SH SOURCE
|
||||
.B \*9/src/lib9p
|
||||
.SH SEE ALSO
|
||||
.IR 9pfid (3),
|
||||
.IR 9pfile (3),
|
||||
.IR 9p-fid (3),
|
||||
.IR 9p-file (3),
|
||||
.IR intro (9p)
|
||||
|
|
|
@ -9,8 +9,8 @@ CFid, CFsys, fsinit, fsmount, fsroot, fssetroot, fsunmount, nsmount, fsversion,
|
|||
.B #include <fcall.h>
|
||||
.PP
|
||||
.B #include <9pclient.h>
|
||||
.ta +\w'\fLCFsys* 'u
|
||||
.PP
|
||||
.ta +'\fLCFsys* 'u
|
||||
.B
|
||||
CFsys* fsmount(int fd, char *aname)
|
||||
.PP
|
||||
|
@ -214,7 +214,7 @@ The path is parsed as a slash-separated sequence of path elements,
|
|||
as on Unix and Plan 9.
|
||||
Elements that are empty or
|
||||
dot
|
||||
.B ( . )
|
||||
.RB ( . )
|
||||
are ignored.
|
||||
.PP
|
||||
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
|
||||
Srv 9p.3
|
||||
dirread9p 9p.3
|
||||
|
@ -39,41 +84,6 @@ fsunmount 9pclient.3
|
|||
fsversion 9pclient.3
|
||||
fswrite 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
|
||||
Dy addpt.3
|
||||
Pt addpt.3
|
||||
|
@ -233,15 +243,11 @@ accept dial.3
|
|||
announce dial.3
|
||||
dial dial.3
|
||||
dialparse dial.3
|
||||
hangup dial.3
|
||||
listen dial.3
|
||||
netmkaddr dial.3
|
||||
reject dial.3
|
||||
dirread dirread.3
|
||||
dirreadall dirread.3
|
||||
Disk disk.3
|
||||
disk disk.3
|
||||
opendisk disk.3
|
||||
ARROW draw.3
|
||||
Image draw.3
|
||||
_string draw.3
|
||||
|
@ -473,14 +479,6 @@ targetid html.3
|
|||
targetname html.3
|
||||
toStr 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
|
||||
iocall ioproc.3
|
||||
ioclose ioproc.3
|
||||
|
@ -927,9 +925,6 @@ pwrite read.3
|
|||
read read.3
|
||||
readn read.3
|
||||
write read.3
|
||||
RGB readcolmap.3
|
||||
readcolmap readcolmap.3
|
||||
writecolmap readcolmap.3
|
||||
regcomp regexp.3
|
||||
regcomplit regexp.3
|
||||
regcompnl regexp.3
|
||||
|
@ -939,15 +934,6 @@ regexp regexp.3
|
|||
regsub regexp.3
|
||||
rregexec 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
|
||||
|
||||
X509dump rsa.3
|
||||
|
@ -993,11 +979,6 @@ runestrncmp runestrcat.3
|
|||
runestrncpy runestrcat.3
|
||||
runestrrchr 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_sha1 sechash.3
|
||||
md4 sechash.3
|
||||
|
@ -1125,7 +1106,6 @@ threadint thread.3
|
|||
threadintgrp thread.3
|
||||
threadkill thread.3
|
||||
threadkillgrp thread.3
|
||||
threadlinklibrary thread.3
|
||||
threadmain thread.3
|
||||
threadnotify thread.3
|
||||
threadpid thread.3
|
||||
|
|
|
@ -144,3 +144,35 @@ and
|
|||
.I atol
|
||||
accept octal and hexadecimal numbers in the style of C,
|
||||
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,
|
||||
.br
|
||||
.B
|
||||
ulong size, int clr);
|
||||
ulong size, int clr);
|
||||
.PP
|
||||
.B
|
||||
void binfree(Bin **bp);
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
.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
|
||||
.SH SYNOPSIS
|
||||
.ta \w'Biobuf* 'u
|
||||
.ta \w'\fLBiobuf* 'u
|
||||
.B #include <u.h>
|
||||
.br
|
||||
.B #include <libc.h>
|
||||
|
|
|
@ -13,12 +13,12 @@ complete, freecompletion \- file name completion
|
|||
.ta \w' 'u +\w' 'u +\w' 'u +\w' 'u +\w' 'u
|
||||
typedef struct Completion Completion;
|
||||
struct Completion{
|
||||
uchar advance; /* whether forward progress has been made */
|
||||
uchar complete; /* whether the completion now represents a file or directory */
|
||||
char *string; /* the string to advance, suffixed " " or "/" for file or directory */
|
||||
int nmatch; /* number of files that matched */
|
||||
int nfile; /* number of files returned */
|
||||
char **filename; /* their names */
|
||||
uchar advance;
|
||||
uchar complete;
|
||||
char *string;
|
||||
int nmatch;
|
||||
int nfile;
|
||||
char **filename;
|
||||
};
|
||||
|
||||
.fi
|
||||
|
|
|
@ -90,9 +90,26 @@ is not
|
|||
.SH BUGS
|
||||
The return values point to static data
|
||||
whose content is overwritten by each call.
|
||||
.br
|
||||
.PP
|
||||
Daylight Savings Time is ``normal'' in the Southern hemisphere.
|
||||
.br
|
||||
.PP
|
||||
These routines are not equipped to handle non-\c
|
||||
.SM ASCII
|
||||
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
|
||||
.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
|
||||
.B #include <u.h>
|
||||
.br
|
||||
|
@ -34,7 +34,10 @@ char* netmkaddr(char *addr, char *defnet, char *defservice)
|
|||
.\" void freenetconninfo(NetConnINfo*)
|
||||
.PP
|
||||
.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
|
||||
For these routines,
|
||||
.I addr
|
||||
|
@ -310,3 +313,17 @@ bekremvax(void)
|
|||
and
|
||||
.I listen
|
||||
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
|
||||
.IR errstr .
|
||||
.SH BUGS
|
||||
.I Dup
|
||||
is a macro for
|
||||
.I p9dup
|
||||
to avoid name conflicts with the Unix function; see
|
||||
To avoid name conflicts with the underlying system,
|
||||
.I dup
|
||||
is a preprocessor macro defined as
|
||||
.IR p9dup ;
|
||||
see
|
||||
.IR intro (3).
|
||||
|
|
|
@ -382,3 +382,8 @@ is nil, it restores the image to the default arrow.
|
|||
.IR plumb (3),
|
||||
.\" .IR cons (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
|
||||
a union directory for
|
||||
.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
|
||||
internal synchronization errors between the main program
|
||||
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
|
||||
.B #include <flate.h>
|
||||
.PP
|
||||
.ta \w'ulongmm'u
|
||||
.ta \w'\fLulongmm'u +\w'\fL 'u
|
||||
.PP
|
||||
.B
|
||||
int deflateinit(void)
|
||||
|
@ -17,37 +17,37 @@ int deflateinit(void)
|
|||
int deflate(void *wr, int (*w)(void*,void*,int),
|
||||
.br
|
||||
.B
|
||||
void *rr, int (*r)(void*,void*,int),
|
||||
void *rr, int (*r)(void*,void*,int),
|
||||
.br
|
||||
.B
|
||||
int level, int debug)
|
||||
int level, int debug)
|
||||
.PP
|
||||
.B
|
||||
int deflatezlib(void *wr, int (*w)(void*,void*,int),
|
||||
.br
|
||||
.B
|
||||
void *rr, int (*r)(void*,void*,int),
|
||||
void *rr, int (*r)(void*,void*,int),
|
||||
.br
|
||||
.B
|
||||
int level, int debug)
|
||||
int level, int debug)
|
||||
.PP
|
||||
.B
|
||||
int deflateblock(uchar *dst, int dsize,
|
||||
.br
|
||||
.B
|
||||
uchar *src, int ssize,
|
||||
uchar *src, int ssize,
|
||||
.br
|
||||
.B
|
||||
int level, int debug)
|
||||
int level, int debug)
|
||||
.PP
|
||||
.B
|
||||
int deflatezlibblock(uchar *dst, int dsize,
|
||||
.br
|
||||
.B
|
||||
uchar *src, int ssize,
|
||||
uchar *src, int ssize,
|
||||
.br
|
||||
.B
|
||||
int level, int debug)
|
||||
int level, int debug)
|
||||
.PP
|
||||
.B
|
||||
int inflateinit(void)
|
||||
|
@ -56,25 +56,25 @@ int inflateinit(void)
|
|||
int inflate(void *wr, int (*w)(void*, void*, int),
|
||||
.br
|
||||
.B
|
||||
void *getr, int (*get)(void*))
|
||||
void *getr, int (*get)(void*))
|
||||
.PP
|
||||
.B
|
||||
int inflatezlib(void *wr, int (*w)(void*, void*, int),
|
||||
.br
|
||||
.B
|
||||
void *getr, int (*get)(void*))
|
||||
void *getr, int (*get)(void*))
|
||||
.PP
|
||||
.B
|
||||
int inflateblock(uchar *dst, int dsize,
|
||||
.br
|
||||
.B
|
||||
uchar *src, int ssize)
|
||||
uchar *src, int ssize)
|
||||
.PP
|
||||
.B
|
||||
int inflatezlibblock(uchar *dst, int dsize,
|
||||
.br
|
||||
.B
|
||||
uchar *src, int ssize)
|
||||
uchar *src, int ssize)
|
||||
.PP
|
||||
.B
|
||||
char *flateerr(int error)
|
||||
|
|
|
@ -370,4 +370,3 @@ main(...)
|
|||
.SH DIAGNOSTICS
|
||||
These routines return negative numbers or nil for errors and set
|
||||
.IR errstr .
|
||||
.SH BUGS
|
||||
|
|
|
@ -75,7 +75,7 @@ This library supports
|
|||
of editable text in a single font on raster displays, such as in
|
||||
.IR sam (1)
|
||||
and
|
||||
.IR rio (1).
|
||||
.IR 9term (1).
|
||||
Frames may hold any character except NUL (0).
|
||||
Long lines are folded and tabs are at fixed intervals.
|
||||
.PP
|
||||
|
|
|
@ -22,8 +22,10 @@ very least, unguessable numbers.
|
|||
.I Genrandom
|
||||
fills a buffer with bytes from the X9.17 pseudo-random
|
||||
number generator. The X9.17 generator is seeded by 24
|
||||
truly random bytes read from
|
||||
.BR /dev/random .
|
||||
truly random bytes read via
|
||||
.I truerand
|
||||
(see
|
||||
.IR rand (3)).
|
||||
.PP
|
||||
.I Prng
|
||||
uses the native
|
||||
|
|
|
@ -35,8 +35,13 @@ to
|
|||
Sets
|
||||
.IR errstr .
|
||||
.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
|
||||
and
|
||||
.I p9putenv
|
||||
to avoid name conflicts with Unix library calls.
|
||||
.IR p9putenv ;
|
||||
see
|
||||
.IR intro (3).
|
||||
|
|
|
@ -23,8 +23,15 @@ bytes in the buffer provided.
|
|||
.SH SOURCE
|
||||
.B \*9/src/lib9/getwd.c
|
||||
.SH "SEE ALSO"
|
||||
.IR pwd (1),
|
||||
.IR pwd (1)
|
||||
.SH DIAGNOSTICS
|
||||
On error, zero is returned.
|
||||
.IR Errstr (3)
|
||||
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
|
||||
.SH FILES
|
||||
.BR /lib/font/bit " directory of fonts
|
||||
.BR \*9/font/bit " directory of fonts
|
||||
.SH SOURCE
|
||||
.B \*9/src/libdraw
|
||||
.SH "SEE ALSO"
|
||||
|
@ -649,3 +649,7 @@ and might be more appropriately called
|
|||
.B white
|
||||
and
|
||||
.BR black .
|
||||
.PP
|
||||
These manual pages contain many references to
|
||||
the now-fictitious
|
||||
.BR /dev/draw .
|
||||
|
|
|
@ -168,3 +168,18 @@ When
|
|||
and
|
||||
.I free
|
||||
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,
|
||||
and in having no parameter to align the source.
|
||||
.PP
|
||||
.I Libmemdraw
|
||||
is archived into
|
||||
These functions are
|
||||
archived into
|
||||
.IR libdraw .
|
||||
|
||||
|
|
|
@ -304,6 +304,6 @@ are in compressed image format
|
|||
.IR window (3),
|
||||
.IR draw (3)
|
||||
.SH BUGS
|
||||
.I Libmemlayer
|
||||
is archived into
|
||||
These functions
|
||||
are archived into
|
||||
.IR libdraw .
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
.TH MP 3
|
||||
.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
|
||||
.B #include <u.h>
|
||||
.br
|
||||
|
@ -108,6 +108,9 @@ void mpmod(mpint *b, mpint *m, mpint *remainder)
|
|||
void mpdiv(mpint *dividend, mpint *divisor, mpint *quotient, mpint *remainder)
|
||||
.PP
|
||||
.B
|
||||
mpint* mpfactorial(ulong n)
|
||||
.PP
|
||||
.B
|
||||
int mpcmp(mpint *b1, mpint *b2)
|
||||
.PP
|
||||
.B
|
||||
|
@ -162,9 +165,6 @@ void crtprefree(CRTpre *cre)
|
|||
void crtresfree(CRTres *res)
|
||||
.PP
|
||||
.B
|
||||
mpint* mpfactorial(ulong n)
|
||||
.PP
|
||||
.B
|
||||
mpint *mpzero, *mpone, *mptwo
|
||||
.SH DESCRIPTION
|
||||
.PP
|
||||
|
@ -441,6 +441,10 @@ Otherwise,
|
|||
.BR "quotient = dividend/divisor" .
|
||||
.BR "remainder = dividend % divisor" .
|
||||
.TP
|
||||
.I mpfactorial
|
||||
returns factorial of
|
||||
.IR n .
|
||||
.TP
|
||||
.I mpcmp
|
||||
returns -1, 0, or +1 as
|
||||
.I b1
|
||||
|
@ -575,9 +579,5 @@ free
|
|||
and
|
||||
.I CRTres
|
||||
structures respectively.
|
||||
.PP
|
||||
.I Mpfactorial
|
||||
returns the factorial of
|
||||
.IR n .
|
||||
.SH SOURCE
|
||||
.B \*9/src/libmp
|
||||
|
|
|
@ -7,7 +7,7 @@ muldiv, umuldiv \- high-precision multiplication and division
|
|||
.B #include <libc.h>
|
||||
.PP
|
||||
.B
|
||||
long muldiv(long a, long b, long c)
|
||||
long muldiv(long a, long b, long c)
|
||||
.PP
|
||||
.B
|
||||
ulong umuldiv(ulong a, ulong b, ulong c)
|
||||
|
|
|
@ -7,6 +7,7 @@ Mux, muxinit, muxrpc, muxthreads \- protocol multiplexor
|
|||
.nf
|
||||
.B
|
||||
.ta +4n
|
||||
.ft B
|
||||
struct Mux
|
||||
{
|
||||
uint mintag;
|
||||
|
|
|
@ -207,7 +207,7 @@ is a common set that includes:
|
|||
.PP
|
||||
.RS 3n
|
||||
.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
|
||||
\fLinterrupt\fP user interrupt (DEL key) SIGINTR
|
||||
\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: bus error\fP bus error SIGBUS
|
||||
\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
|
||||
.RE
|
||||
.PP
|
||||
|
|
|
@ -1,18 +1,10 @@
|
|||
.TH PRINT 3
|
||||
.de EX
|
||||
.nf
|
||||
.ft B
|
||||
..
|
||||
.de EE
|
||||
.fi
|
||||
.ft R
|
||||
..
|
||||
.SH NAME
|
||||
print, fprint, sprint, snprint, seprint, smprint, runesprint, runesnprint, runeseprint, runesmprint, vfprint, vsnprint, vseprint, vsmprint, runevsnprint, runevseprint, runevsmprint \- print formatted output
|
||||
.SH SYNOPSIS
|
||||
.B #include <utf.h>
|
||||
.B #include <u.h>
|
||||
.PP
|
||||
.B #include <fmt.h>
|
||||
.B #include <libc.h>
|
||||
.PP
|
||||
.ta \w'\fLchar* 'u
|
||||
.B
|
||||
|
@ -72,7 +64,10 @@ Rune* runevsmprint(Rune *format, va_list v)
|
|||
writes text to the standard output.
|
||||
.I Fprint
|
||||
writes to the named output
|
||||
file descriptor.
|
||||
file descriptor:
|
||||
a buffered form
|
||||
is described in
|
||||
.IR bio (3).
|
||||
.I Sprint
|
||||
places text
|
||||
followed by the NUL character
|
||||
|
@ -96,7 +91,7 @@ but will not place more than
|
|||
bytes in
|
||||
.IR s .
|
||||
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
|
||||
is like
|
||||
.IR snprint ,
|
||||
|
@ -191,27 +186,26 @@ described below.
|
|||
.PP
|
||||
The numeric verbs
|
||||
.BR d ,
|
||||
.BR i ,
|
||||
.BR u ,
|
||||
.BR o ,
|
||||
.BR b ,
|
||||
.BR x ,
|
||||
and
|
||||
.B X
|
||||
format their arguments in decimal, decimal,
|
||||
unsigned decimal, octal, binary, hexadecimal, and upper case hexadecimal.
|
||||
format their arguments in decimal,
|
||||
octal, binary, hexadecimal, and upper case hexadecimal.
|
||||
Each interprets the flags
|
||||
.BR 0 ,
|
||||
.BR h ,
|
||||
.BR hh ,
|
||||
.BR l ,
|
||||
.BR u ,
|
||||
.BR + ,
|
||||
.BR - ,
|
||||
.BR , ,
|
||||
and
|
||||
.B #
|
||||
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.
|
||||
Also, a space character in the flag
|
||||
position is like
|
||||
|
@ -221,12 +215,9 @@ If neither
|
|||
short nor long is specified,
|
||||
then the argument is an
|
||||
.BR int .
|
||||
If an unsigned verb is specified,
|
||||
If unsigned is specified,
|
||||
then the argument is interpreted as a
|
||||
positive number and no sign is output;
|
||||
space and
|
||||
.B +
|
||||
flags are ignored for unsigned verbs.
|
||||
positive number and no sign is output.
|
||||
If two
|
||||
.B l
|
||||
flags are given,
|
||||
|
@ -249,8 +240,8 @@ for
|
|||
.B o
|
||||
conversion, the number is preceded by a
|
||||
.B 0
|
||||
if it doesn't already begin with one.
|
||||
For non-zero numbers and
|
||||
if it doesn't already begin with one;
|
||||
for
|
||||
.B x
|
||||
conversion, the number is preceded by
|
||||
.BR 0x ;
|
||||
|
@ -345,7 +336,7 @@ conversions, trailing zeros are not removed.
|
|||
.PP
|
||||
The
|
||||
.B s
|
||||
verb copies a string
|
||||
verb copies a NUL-terminated string
|
||||
(pointer to
|
||||
.BR char )
|
||||
to the output.
|
||||
|
@ -397,9 +388,7 @@ but that will change if pointers and integers are different sizes.
|
|||
The
|
||||
.B r
|
||||
verb takes no arguments; it copies the error string returned by a call to
|
||||
.IR strerror (3)
|
||||
with an argument of
|
||||
.IR errno.
|
||||
.IR errstr (3).
|
||||
.PP
|
||||
Custom verbs may be installed using
|
||||
.IR fmtinstall (3).
|
||||
|
@ -414,12 +403,12 @@ void fatal(char *msg, ...)
|
|||
char buf[1024], *out;
|
||||
va_list arg;
|
||||
|
||||
out = vseprint(buf, buf+sizeof buf, "Fatal error: ");
|
||||
out = seprint(buf, buf+sizeof buf, "Fatal error: ");
|
||||
va_start(arg, msg);
|
||||
out = vseprint(out, buf+sizeof buf, msg, arg);
|
||||
va_end(arg);
|
||||
write(2, buf, out-buf);
|
||||
exit(1);
|
||||
exits("fatal error");
|
||||
}
|
||||
.EE
|
||||
.SH SEE ALSO
|
||||
|
@ -438,9 +427,9 @@ the main difference is that
|
|||
.B b
|
||||
and
|
||||
.B r
|
||||
are not in ANSI and some
|
||||
.B C9X
|
||||
verbs are missing.
|
||||
are not in ANSI and
|
||||
.B u
|
||||
is a flag here instead of a verb.
|
||||
Also, and distinctly not a bug,
|
||||
.I print
|
||||
and friends generate
|
||||
|
@ -449,8 +438,8 @@ rather than
|
|||
.SM ASCII.
|
||||
.PP
|
||||
There is no
|
||||
.BR runeprint ,
|
||||
.BR runefprint ,
|
||||
.IR runeprint ,
|
||||
.IR runefprint ,
|
||||
etc. because runes are byte-order dependent and should not be written directly to a file; use the
|
||||
UTF output of
|
||||
.I print
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue