From fed6525853e7368dd9640bbefb578d596bf0e060 Mon Sep 17 00:00:00 2001 From: Warren Toomey Date: Mon, 28 Mar 2016 13:24:27 +1000 Subject: [PATCH] I've converted all the man pages so far into roff format. --- man/chrm.1 | 64 +++++++++------ man/cp.1 | 48 +++++------ man/date.1 | 37 +++++---- man/dir.5 | 70 ++++++++-------- man/filesys.5 | 223 +++++++++++++++++++++++++++----------------------- man/ln.1 | 40 ++++----- man/mv.1 | 45 +++++----- man/stat.1 | 108 +++++++++++++----------- tools/roff.c | 2 + 9 files changed, 344 insertions(+), 293 deletions(-) diff --git a/man/chrm.1 b/man/chrm.1 index 0709a90..68ae8ec 100644 --- a/man/chrm.1 +++ b/man/chrm.1 @@ -1,26 +1,38 @@ - 11/3/70 CHRM (I) - - -NAME chrm -- remove (unlink) files - -SYNOPSIS chrm directory name1 ... - -DESCRIPTION chrm removes the entries for one or more files from the - named directory. If an entry was the last link to the file, - the file is destroyed. Removal of a file requires write - permission in its directory, but neither read nor write - permission on the file itself. - - Directories cannot be removed by rm; cf. rmdir. - -FILES none. - -SEE ALSO rmdir, for removing directories. - -DIAGNOSTICS If the file cannot be removed or does not exist, the name - of the file followed by a question mark is typed. - -BUGS rm probably should ask whether a read-only file is really - to be removed. - -OWNER ken, dmr +.oh '11/3/70''CHRM(I)' +.ta 18 21 +NAME chrm -- remove (unlink) files +.sp +SYNOPSIS +.ul +chrm +directory name1 ... +.sp +DESCRIPTION +.ul +chrm +removes the entries for one or more files + from the named directory. If an entry was the + last link to the file, the file is destroyed. + Removal of a file requires write permission in + its directory, but neither read nor write + permission on the file itself. +.sp + Directories cannot be removed by +.ul +chrm. +.sp +FILES -- +.sp +SEE ALSO -- +.sp +DIAGNOSTICS If the file cannot be removed or does not exist, + the name of the file followed by a question mark + is typed. +.sp +BUGS +.ul +chrm +probably should ask whether a read-only + file is really to be removed. +.sp +OWNER ken, dmr diff --git a/man/cp.1 b/man/cp.1 index c97bca8..ad15f1c 100644 --- a/man/cp.1 +++ b/man/cp.1 @@ -1,23 +1,25 @@ -11/3/70 CP (I) - - -NAME cp -- copy - -SYNOPSIS cp file11 file12 file21 file22 ... - -DESCRIPTION Files are taken in pairs; the first is opened for reading, - the second created mode 17. Then the first is copied into - the second. - -FILES - -SEE ALSO cat, pr - -DIAGNOSTICS Error returns are checked at every system call, and - appropriate diagnostics are produced. - -BUGS The second file should be created in the mode of the first. - - A directory convention as used in mv should be adopted to cp. - -OWNER ken, dmr +.oh '11/3/70''CP(I)' +.ta 18 21 +NAME cp -- copy +.sp +SYNOPSIS +.ul +cp +file11 file12 file21 file22 ... +.sp +DESCRIPTION Files are taken in pairs; the first is opened + for reading, the second created mode 17. Then + the first is copied into the second. +.sp +FILES -- +.sp +SEE ALSO cat, pr +.sp +DIAGNOSTICS Error returns are checked at every system call, + and appropriate diagnostics are produced. +.sp +BUGS The second file should be created in the mode of + the first. A directory convention as used in mv + should be adopted to cp. +.sp +OWNER ken, dmr diff --git a/man/date.1 b/man/date.1 index 48ebc38..cf64b17 100644 --- a/man/date.1 +++ b/man/date.1 @@ -1,19 +1,20 @@ - 11/3/70 DATE (I) - - -NAME date - print the date - -SYNOPSIS date - -DESCRIPTION The current date is printed to the second. - -FILES - -SEE ALSO - -DIAGNOSTICS It is always 1970. - -BUGS - -OWNER wkt +.oh '11/3/70''DATE(I)' +.ta 18 21 +NAME date - print the date +.sp +SYNOPSIS +.ul +date +.sp +DESCRIPTION The current date is printed to the second. +.sp +FILES -- +.sp +SEE ALSO -- +.sp +DIAGNOSTICS -- +.sp +BUGS It is always 1970. +.sp +OWNER wkt diff --git a/man/dir.5 b/man/dir.5 index 66a5515..b7298f2 100644 --- a/man/dir.5 +++ b/man/dir.5 @@ -1,34 +1,36 @@ - 11/3/70 DIRECTORY (V) - - -NAME format of directories - -SYNOPSIS - -DESCRIPTION A directory behaves exactly like an ordinary file, save - that no user may write into a directory. The fact that a - file is a directory is indicated by a bit in the flag word - of its i-node entry. - - Directory entries are 8 words long. The first word is the - i-node of the file represented by the entry, if non-zero; - if zero, the entry is empty. - - Words 1-4 represent the (8-character) file name, space - padded on the right. These words are not necessarily - cleared for empty slots. - - By convention, the first entry in each directory is - for "dd", which is the "directory directory" that holds - all the users' home directories and the "system" directory. - The "system" directory contains "init" and "sh". - -FILES - -SEE ALSO file system format - -DIAGNOSTICS - -BUGS - -OWNER ken, dmr +.oh '11/3/70''DIRECTORY(I)' +.ta 18 21 +NAME format of directories +.sp +SYNOPSIS -- +.sp +DESCRIPTION A directory behaves exactly like an ordinary + file, save that no user may write into a + directory. The fact that a file is a directory + is indicated by a bit in the flag word of its + i-node entry. +.sp + Directory entries are 8 words long. The first + word is the i-node of the file represented by + the entry, if non-zero; if zero, the entry is + empty. +.sp + Words 1-4 represent the (8-character) file name, + space padded on the right. These words are not + necessarily cleared for empty slots. +.sp + By convention, the first entry in each directory + is for "dd", which is the "directory directory" + that holds all the users' home directories and + the "system" directory. The "system" directory + contains "init" and "sh". +.sp +FILES -- +.sp +SEE ALSO file system format +.sp +DIAGNOSTICS -- +.sp +BUGS -- +.sp +OWNER ken, dmr diff --git a/man/filesys.5 b/man/filesys.5 index 9d28db1..eda002a 100644 --- a/man/filesys.5 +++ b/man/filesys.5 @@ -1,104 +1,119 @@ - 11/3/70 FILE SYSTEM (V) - - -NAME format of file system - -SYNOPSIS - -DESCRIPTION The RB09 fixed head disk has 8,000 64-word blocks on - each of its two surfaces. Unix uses the second surface - (physical blocks 8,000 to 15,999) and numbers them - from logical block 0 to logical block 7,999. The following - discussion refers to logical blocks. - - The Unix filesystem is divided into 8,000 blocks of 64 words - per block. Block 0 is the "sysdata" block. The first word - points to the first block of the free-storage map. Each block - in the free-storage map is structured as follows: the first - word is the block number of the next block in the free-storage - map, or zero if this is the end of the free-storage map. The - next nine words hold free block numbers, or zero (no block number). - - Block 1 on the filesystem is unused. (?) - - I-numbers begin at 1, and the storage for i-nodes begins at - block 2. Blocks 2 to 711 contain the i-nodes, with five - consecutive i-nodes per block. Certain i-nodes are reserved for - special files, directories and devices: - - 1 The core file written by "sys save" or a bad system call - 2 The "dd" directory directory - 3 The "system" directory - 6 The "ttyin" special file - 7 The "keyboard" (graphic-2) special file - 8 The "pptin" (paper tape reader) special file - 10 The "ttyout" special file - 11 The "display" (graphic-2) special file - 12 The "pptout" (paper tape punch) special file - - - There is only one file system which is always mounted; - it resides on the RB disk. This device is also used for - swapping. The swap areas are at the high blocks on this device: - blocks 6,400 to 7,999. These blocks do not appear in the free list. - - Each i-node represents one file. The format of - an i-node is as follows, where the left column represents - the offset in words from the beginning of the i-node: - - 0 flags (see below) - 1 first indirect block or contents block - ... - 7 seventh indirect block or contents block - 8 user ID of owner - 9 link count - 10 size in words - 11 unique value assigned at creation - - The flags are as follows: - - 400000 i-node is allocated - 200000 large file - ?????? allocated bit (always on) - 000040 special file - 000020 directory - 000010 read, owner - 000004 write, owner - 000002 read, non-owner - 000001 write, non-owner - - The allocated bit (flag ??????) is believed even if the i-node - map says the i-node is free; thus corruption of the map may - cause i-nodes to become unallocatable, but will not cause active - nodes to be reused. - - Word number n of a file is accessed as follows: n is - divided by 64 to find its logical block number (say b) in - the file. If the file is small (flag 200000 is 0), then b - must be less than 7, and the physical block number corresponding - to b is the bth entry in the address portion of the i-node. - - If the file is large, b is divided by 64 to yield a number - which must be less than 8 (or the file is too large for - UNIX to handle). The corresponding slot in the i-node - address portion gives the physical block number of an - indirect block. The residue mod 64 gives a word offset - in the indirect block, and the word found there is the - physical address of the block corresponding to b. - - If block b in a file exists, it is not necessary that all - blocks less than b exist. A zero block number either in the - address words of the i-node or in an indirect block - indicates that the corresponding block has never been - allocated. Such a missing block reads as if it contained - all zero words. - -FILES - -SEE ALSO format of directories - -DIAGNOSTICS - -BUGS - -OWNER +.oh '11/3/70''FILE SYSTEM(V)' +.ta 18 21 24 +NAME format of file system +.sp +SYNOPSIS -- +.sp +DESCRIPTION The RB09 fixed head disk has 8,000 64-word + blocks on each of its two surfaces. Unix uses + the second surface (physical blocks 8,000 to + 15,999) and numbers them from logical block 0 to + logical block 7,999. The following discussion + refers to logical blocks. +.sp + The Unix filesystem is divided into 8,000 blocks + of 64 words per block. Block 0 is the "sysdata" + block. The first word points to the first block + of the free-storage map. Each block in the + free-storage map is structured as follows: the + first word is the block number of the next block + in the free-storage map, or zero if this is the + end of the free-storage map. The next nine words + hold free block numbers, or zero (no block + number). +.sp + Block 1 on the filesystem is unused. (?) +.sp + I-numbers begin at 1, and the storage for + i-nodes begins at block 2. Blocks 2 to 711 + contain the i-nodes, with five consecutive + i-nodes per block. Certain i-nodes are reserved + for special files, directories and devices: +.sp + 1 The core file written by "sys save" or a + bad system call + 2 The "dd" directory directory + 3 The "system" directory + 6 The "ttyin" special file + 7 The "keyboard" (graphic-2) special file + 8 The "pptin" (paper tape reader) special + file + 10 The "ttyout" special file + 11 The "display" (graphic-2) special file + 12 The "pptout" (paper tape punch) special + file +.sp + There is only one file system which is always + mounted; it resides on the RB disk. This device + is also used for swapping. The swap areas are at + the high blocks on this device: blocks 6,400 to + 7,999. These blocks do not appear in the free + list. +.sp + Each i-node represents one file. The format of + an i-node is as follows, where the left column + represents the offset in words from the + beginning of the i-node: +.sp + 0 flags (see below) + 1 first indirect block or contents block + ... + 7 seventh indirect block or contents block + 8 user ID of owner + 9 link count + 10 size in words + 11 unique value assigned at creation +.sp + The flags are as follows: +.sp + 400000 i-node is allocated + 200000 large file + ?????? allocated bit (always on) + 000040 special file + 000020 directory + 000010 read, owner + 000004 write, owner + 000002 read, non-owner + 000001 write, non-owner +.sp + The allocated bit (flag ??????) is believed even + if the i-node map says the i-node is free; thus + corruption of the map may cause i-nodes to + become unallocatable, but will not cause active + nodes to be reused. +.sp + Word number n of a file is accessed as follows: + n is divided by 64 to find its logical block + number (say b) in the file. If the file is small + (flag 200000 is 0), then b must be less than 7, + and the physical block number corresponding to b + is the bth entry in the address portion of the + i-node. +.sp + If the file is large, b is divided by 64 to + yield a number which must be less than 8 (or + the file is too large for UNIX to handle). + The corresponding slot in the i-node address + portion gives the physical block number of an + indirect block. The residue mod 64 gives a + word offset in the indirect block, and the + word found there is the physical address of + the block corresponding to b. +.sp + If block b in a file exists, it is not necessary + that all blocks less than b exist. A zero block + number either in the address words of the i-node + or in an indirect block indicates that the + corresponding block has never been allocated. + Such a missing block reads as if it contained + all zero words. +.sp +FILES -- +.sp +SEE ALSO format of directories +.sp +DIAGNOSTICS -- +.sp +BUGS -- +.sp +OWNER ken diff --git a/man/ln.1 b/man/ln.1 index bc81f4b..207f5b0 100644 --- a/man/ln.1 +++ b/man/ln.1 @@ -1,19 +1,21 @@ - 11/3/70 LN (I) - - -NAME ln -- link to a file - -SYNOPSIS ln name1 name2 - -DESCRIPTION ln adds another filename to the first filename - -FILES - -SEE ALSO - -DIAGNOSTICS "twofiles" - please provide two filenames - "? file" - unable to make the link - -BUGS - -OWNER wkt +.oh '11/3/70''LN(I)' +.ta 18 30 +NAME ln -- link to a file +.sp +SYNOPSIS +.ul +ln +name1 name2 +.sp +DESCRIPTION ln adds another filename to the first filename +.sp +FILES -- +.sp +SEE ALSO -- +.sp +DIAGNOSTICS "twofiles" - please provide two filenames + "? file" - unable to make the link +.sp +BUGS -- +.sp +OWNER wkt diff --git a/man/mv.1 b/man/mv.1 index aa86651..49f37c1 100644 --- a/man/mv.1 +++ b/man/mv.1 @@ -1,19 +1,26 @@ - 11/3/70 MV (I) - - -NAME mv -- move or rename a file - -SYNOPSIS mv name1 name2 - -DESCRIPTION mv changes the name of name with the rename system call. - -FILES - -SEE ALSO - -DIAGNOSTICS "twofiles" - please provide two filenames - "? file" - either unable to remove or create a file - -BUGS The second diagnostic is ambiguous. - -OWNER wkt +.oh '11/3/70''MV(I)' +.ta 18 31 +NAME mv -- move or rename a file +.sp +SYNOPSIS +.ul +mv +name1 name2 +.sp +DESCRIPTION +.ul +mv +changes the name of name with the rename + system call. +.sp +FILES -- +.sp +SEE ALSO -- +.sp +DIAGNOSTICS "twofiles" - please provide two filenames + "? file" - either unable to remove or create + a file +.sp +BUGS The second diagnostic is ambiguous. +.sp +OWNER wkt diff --git a/man/stat.1 b/man/stat.1 index a46f885..fd594b4 100644 --- a/man/stat.1 +++ b/man/stat.1 @@ -1,50 +1,58 @@ - 11/3/70 STAT (I) - - -NAME stat - get file status - -SYNOPSIS stat name - -DESCRIPTION stat gives several kinds of information about one file: - files: - - access mode - number of links - owner - size in words - name - - All information is self-explanatory except the mode. The - mode is a five-character string whose characters mean the - following: - - 1 s: file is small (smaller than 4096 words) - l: file is large - d: file is a directory - - 2 r: owner can read - -: owner cannot read - - 3 w: owner can write - -: owner cannot write - - 4 r: non-owner can read - -: non-owner cannot read - - 5 w: non-owner can write - -: non-owner cannot write - - All numeric values are printed in octal - if he cannot be found in "/etc/uids" a number is given. - - -FILES - -SEE ALSO ls with the -l option gives the same information as stat, - except that it also shows the i-node number for each file. - -DIAGNOSTICS "name ?" for any error. "nofiles" if no file name is given. - -BUGS none - -OWNER wkt +.oh '11/3/70''STAT(I)' +.ta 18 21 +NAME stat - get file status +.sp +SYNOPSIS +.ul +stat +name +.sp +DESCRIPTION stat gives several kinds of information about + one file: +.sp + access mode + number of links + owner + size in words + name +.sp + All information is self-explanatory except the + mode. The mode is a five-character string whose + characters mean the following: +.sp + 1 s: file is small (smaller than 4096 words) + l: file is large + d: file is a directory +.sp + 2 r: owner can read + -: owner cannot read +.sp + 3 w: owner can write + -: owner cannot write +.sp + 4 r: non-owner can read + -: non-owner cannot read +.sp + 5 w: non-owner can write + -: non-owner cannot write +.sp + All numeric values are printed in octal. +.sp +FILES +.sp +SEE ALSO +.ul +ls +with the -l option gives the same information + as +.ul +stat, +except that it also shows the i-node + number for each file. +.sp +DIAGNOSTICS "name ?" for any error. + "nofiles" if no file name is given. +.sp +BUGS none +.sp +OWNER wkt diff --git a/tools/roff.c b/tools/roff.c index 2d7dc95..f58ae14 100644 --- a/tools/roff.c +++ b/tools/roff.c @@ -43,6 +43,7 @@ int o_ll = 65, o_ad = 1, o_po = 0, o_ls = 1, o_ig = 0, o_fi = 1; int o_pl = 66, o_ro = 0, o_hx = 0, o_sp = 0, o_sk = 0; int o_ce = 0, o_ul = 0; int o_li = 0, o_bp = -1, o_hy = 1; +int o_m2 = 1; int o_nn = 0; /* #LINES TO SUPPRESS NUMBERING */ int o_ti = -1; /* TEMPORARY INDENT */ int page_no = -1; @@ -779,6 +780,7 @@ void beginpage() { int i; writetitle(page_no & 1 ? ohead : ehead); + for (i = 0; i < o_m2; i++) spit('\n'); line_no = 0; }