Change use of quote characters to get better UTF-8 rendering.

This commit is contained in:
Michael Kerrisk 2008-06-05 20:14:50 +00:00
parent b8b45978b0
commit 84c517a450
40 changed files with 110 additions and 78 deletions

30
Changes
View File

@ -9,6 +9,7 @@ Contributors
The following people contributed notes, ideas, or patches that have
been incorporated in changes in this release:
Stuart Brady <sdbrady@ntlworld.com>
Apologies if I missed anyone!
@ -22,6 +23,31 @@ This made sense because those pages are seldom changed (only formatting
fixes, etc.) so that it was unnecessary to redistribute them with each
man-pages release.
console_codes.4
random.4
dir_colors.5
proc.5
glob.7
Stuart Brady
s/`/\`/ for backquotes used in command substitution, for
proper rendering in UTF-8.
Various pages
mtk, after a note from Stuart Brady
Using /'x'/ to denote a character (string) renders poorly in UTF-8,
where the two ' characters render as closing single quotes. On the
other hand, using /`x'/ renders nicely on UTF-8, where proper
opening and closing single quotes are produced by groff, but looks
ugly when rendered in ASCII. Using the sequence /\'x\'/ produces
a reasonable rendering (a verticle "apostrophe quote") in both UTF-8
and ASCII. So that change is made in a number of pages.
See also http://www.cl.cal.ac.uk/~mgk25/ucs/quotes.html.
Varios pages
mtk
Replace form /`string'/ by /"string"/, since the former renders
poorly in ASCII.
New pages
---------
@ -31,3 +57,7 @@ New links
Changes to individual pages
---------------------------
locale.7
mtk
Minor formatting fixes.

View File

@ -53,7 +53,8 @@ This call changes an ingredient in the pathname resolution process
and does nothing else.
This call does not change the current working directory,
so that after the call '\fI.\fP' can be outside the tree rooted at '\fI/\fP'.
so that after the call \'\fI.\fP\' can
be outside the tree rooted at \'\fI/\fP\'.
In particular, the superuser can escape from a "chroot jail"
by doing:
.nf

View File

@ -70,9 +70,9 @@ one or more ASCII letters were used.
For example,
.B TCGETS
has value
0x00005401, with 0x54 = 'T' indicating the terminal driver, and
0x00005401, with 0x54 = \'T\' indicating the terminal driver, and
.B CYGETTIMEOUT
has value 0x00435906, with 0x43 0x59 = 'C' 'Y'
has value 0x00435906, with 0x43 0x59 = \'C\' \'Y\'
indicating the cyclades driver.
.LP
Later (0.98p5) some more information was built into the number.
@ -695,8 +695,8 @@ They use the same pointer as an output pointer to
The length varies by request.
For
.BR CDROMREADMODE1 ,
most drivers use 'CD_FRAMESIZE', but the Optics Storage
driver uses 'OPT_BLOCKSIZE' instead (both have the numerical value
most drivers use CD_FRAMESIZE, but the Optics Storage
driver uses OPT_BLOCKSIZE instead (both have the numerical value
2048).
.nf

View File

@ -582,7 +582,7 @@ main(int argc, char *argv[])
length = atoi(argv[3]);
if (offset + length > sb.st_size)
length = sb.st_size \- offset;
/* Can't display bytes past end of file */
/* Can\'t display bytes past end of file */
} else { /* No length arg ==> display to end of file */
length = sb.st_size \- offset;

View File

@ -137,7 +137,7 @@ Only the superuser may call
The precise effect of the above actions depends on the architecture.
For the i386 architecture, the additional argument does not do
anything at present (2.1.122), but the type of reboot can be
determined by kernel command-line arguments (`reboot=...') to be
determined by kernel command-line arguments ("reboot=...") to be
either warm or cold, and either hard or through the BIOS.
.SH "RETURN VALUE"
For the values of

View File

@ -368,7 +368,7 @@ main(int argc, char *argv[])
sigaddset(&mask, SIGINT);
sigaddset(&mask, SIGQUIT);
/* Block signals so that they aren't handled
/* Block signals so that they aren\'t handled
according to their default dispositions */
if (sigprocmask(SIG_BLOCK, &mask, NULL) == \-1)

View File

@ -224,7 +224,7 @@ int main(void)
if (context == -1)
handle_error("spu_create");
/* write a 'stop 0x1234' instruction to the SPU's
/* write a \'stop 0x1234\' instruction to the SPU\'s
* local store memory
*/
instruction = 0x00001234;

View File

@ -210,7 +210,7 @@ myfunc3(void)
free(strings);
}
static void /* 'static' means don't export the symbol... */
static void /* \'static\' means don\'t export the symbol... */
myfunc2(void)
{
myfunc3();

View File

@ -105,7 +105,7 @@ main(int argc, char **argv)
res = bsearch(&key, months, nr_of_months,
sizeof(struct mi), compmi);
if (res == NULL)
printf("'%s': unknown month\en", argv[i]);
printf("\'%s\': unknown month\en", argv[i]);
else
printf("%s: month #%d\en", res\->name, res\->nr);
}

View File

@ -151,11 +151,11 @@ It converts the calendar time \fIt\fP into a string of the form
"Wed Jun 30 21:49:08 1993\\n"
.RE
.sp
The abbreviations for the days of the week are `Sun', `Mon', `Tue', `Wed',
`Thu', `Fri', and `Sat'.
The abbreviations for the months are `Jan',
`Feb', `Mar', `Apr', `May', `Jun', `Jul', `Aug', `Sep', `Oct', `Nov', and
`Dec'.
The abbreviations for the days of the week are "Sun", "Mon", "Tue", "Wed",
"Thu", "Fri", and "Sat".
The abbreviations for the months are "Jan",
"Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", and
"Dec".
The return value points to a statically allocated string which
might be overwritten by subsequent calls to any of the date and time
functions.

View File

@ -79,12 +79,12 @@ The fourth parameter,
is formed by
OR 'ing
together some things.
For the encryption direction 'or' in either
For the encryption direction OR in either
.BR DES_ENCRYPT
or
.BR DES_DECRYPT .
For software versus hardware
encryption, 'or' in either
encryption, OR in either
.BR DES_HW
or
.BR DES_SW .

View File

@ -81,7 +81,7 @@ struct dl_phdr_info {
const ElfW(Phdr) *dlpi_phdr; /* Pointer to array of
ELF program headers
for this object */
ElfW(Half) dlpi_phnum; /* # of items in 'dlpi_phdr' */
ElfW(Half) dlpi_phnum; /* # of items in \'dlpi_phdr\' */
};
.fi
.in

View File

@ -29,7 +29,7 @@ mq_open \- open a message queue
.SH SYNOPSIS
.nf
.BR "#include <fcntl.h>" " /* For O_* constants */"
.BR "#include <sys/stat.h>" " /* For 'mode' constants */"
.BR "#include <sys/stat.h>" " /* For mode constants */"
.B #include <mqueue.h>
.sp
.BI "mqd_t mq_open(const char *" name ", int " oflag );

View File

@ -76,9 +76,9 @@ that the time entry within
.I /etc/inetd.conf
is not commented out.
.br
The program connects to a computer called 'linux'.
Using 'localhost' does not work.
The result is the localtime of the computer 'linux'.
The program connects to a computer called "linux".
Using "localhost" does not work.
The result is the localtime of the computer "linux".
.sp
.nf
#include <stdio.h>

View File

@ -29,7 +29,7 @@ sem_open \- initialize and open a named semaphore
.SH SYNOPSIS
.nf
.BR "#include <fcntl.h>" " /* For O_* constants */"
.BR "#include <sys/stat.h>" " /* For 'mode' constants */"
.BR "#include <sys/stat.h>" " /* For mode constants */"
.B #include <semaphore.h>
.sp
.BI "sem_t *sem_open(const char *" name ", int " oflag );

View File

@ -29,7 +29,7 @@ shm_open, shm_unlink \- Create/open or unlink POSIX shared memory objects
.SH SYNOPSIS
.B #include <sys/mman.h>
.br
.BR "#include <sys/stat.h>" " /* For 'mode' constants */"
.BR "#include <sys/stat.h>" " /* For mode constants */"
.br
.BR "#include <fcntl.h>" " /* For O_* constants */"
.sp

View File

@ -68,7 +68,7 @@ putchar_unlocked \- non-locking stdio functions
.fi
.SH DESCRIPTION
Each of these functions has the same behavior as its counterpart
without the `_unlocked' suffix, except that they do not use locking
without the "_unlocked" suffix, except that they do not use locking
(they do not set locks themselves, and do not test for the presence
of locks set by others) and hence are thread-unsafe.
See

View File

@ -124,7 +124,7 @@ are ignored, or the # is treated as a non-comment character.
The expansion done consists of the following stages:
tilde expansion (replacing ~user by user's home directory),
variable substitution (replacing $FOO by the value of the environment
variable FOO), command substitution (replacing $(command) or `command`
variable FOO), command substitution (replacing $(command) or \`command\`
by the output of command), arithmetic expansion, field splitting,
wildcard expansion, quote removal.
.LP

View File

@ -76,10 +76,10 @@ according to the mapping table) it has one of the 14 codes
00 (NUL), 07 (BEL), 08 (BS), 09 (HT), 0a (LF), 0b (VT),
0c (FF), 0d (CR), 0e (SO), 0f (SI), 18 (CAN), 1a (SUB),
1b (ESC), 7f (DEL).
One can set a `display control characters' mode (see below),
One can set a "display control characters" mode (see below),
and allow 07, 09, 0b, 18, 1a, 7f to be displayed as glyphs.
On the other hand, in UTF-8 mode all codes 00-1f are regarded
as control characters, regardless of any `display control characters'
as control characters, regardless of any "display control characters"
mode.
.PP
If we have a control character, it is acted upon immediately
@ -195,7 +195,7 @@ M DL Delete the indicated # of lines.
P DCH Delete the indicated # of characters on the current line.
X ECH Erase the indicated # of characters on the current line.
a HPR Move cursor right the indicated # of columns.
c DA Answer ESC [ ? 6 c: `I am a VT102'.
c DA Answer ESC [ ? 6 c: "I am a VT102".
d VPA Move cursor to the indicated row, current column.
e VPR Move cursor down the indicated # of rows.
f HVP Move cursor to the indicated row, column.
@ -447,7 +447,7 @@ Again \fIx\fP and
The upper left corner is (1,1).
.SS "Comparisons With Other Terminals"
Many different terminal types are described, like the Linux console,
as being `VT100-compatible'.
as being "VT100-compatible".
Here we discuss differences between the
Linux console and the two most important others, the DEC VT102 and
.BR xterm (1).
@ -495,8 +495,8 @@ The program
.I xterm
(in VT100 mode) recognizes ESC c, ESC # 8, ESC >, ESC =,
ESC D, ESC E, ESC H, ESC M, ESC N, ESC O, ESC P ... ESC \,
ESC Z (it answers ESC [ ? 1 ; 2 c, `I am a VT100 with
advanced video option')
ESC Z (it answers ESC [ ? 1 ; 2 c, "I am a VT100 with
advanced video option")
and ESC ^ ... ESC \ with the same meanings as indicated above.
It accepts ESC (, ESC ), ESC *, ESC + followed by 0, A, B for
the DEC special character and line drawing set, UK, and US-ASCII,

View File

@ -51,7 +51,7 @@ Partition numbers are assigned in the order the partitions
are discovered, and only non-empty, non-extended partitions
get a number.
However, partition numbers 1-4 are given to the
four partitions described in the MBR (the `primary' partitions),
four partitions described in the MBR (the "primary" partitions),
regardless of whether they are unused or extended.
Thus, the first logical partition will be
.BI hd X 5\c
@ -63,7 +63,7 @@ For example,
.I /dev/hda
refers to all of the first IDE drive in the system; and
.I /dev/hdb3
refers to the third DOS `primary' partition on the second one.
refers to the third DOS "primary" partition on the second one.
.LP
They are typically created by:
.RS

View File

@ -303,7 +303,7 @@ For a NFS example, the following shell command lines would change the
normal root device to the NFS directory
.I /var/nfsroot
on a local networked NFS server with IP number 193.8.232.7 for a system with
IP number 193.8.232.7 and named 'idefix':
IP number 193.8.232.7 and named "idefix":
.nf
echo /var/nfsroot >/proc/sys/kernel/nfs-root-name

View File

@ -521,7 +521,7 @@ is the default.
RLMT monitors the status of the port.
If the link of the active port fails,
RLMT switches immediately to the standby link.
The virtual link is maintained as long as at least one 'physical' link is up.
The virtual link is maintained as long as at least one "physical" link is up.
This parameters states how RLMT should monitor both ports.
Possible values are:
.IR CheckLinkState ,

View File

@ -304,9 +304,9 @@ TIOCPKT_FLUSHREAD The read queue for the terminal is flushed.
TIOCPKT_FLUSHWRITE The write queue for the terminal is flushed.
TIOCPKT_STOP Output to the terminal is stopped.
TIOCPKT_START Output to the terminal is restarted.
TIOCPKT_DOSTOP t_stopc is `^S' and t_startc is `^Q'.
TIOCPKT_DOSTOP t_stopc is \'^S\' and t_startc is \'^Q\'.
TIOCPKT_NOSTOP The start and stop characters are not
`^S/^Q'.
\'^S\'/\'^Q\'.
.fi
While this mode is in use, the presence
@ -319,7 +319,7 @@ This mode is used by
.BR rlogin (1)
and
.BR rlogind (8)
to implement a remote-echoed, locally `^S/^Q' flow-controlled remote login.
to implement a remote-echoed, locally \`^S\'/\'^Q\' flow-controlled remote login.
The BSD ioctls
.BR TIOCSTOP ,

View File

@ -140,7 +140,7 @@ main(void)
if (attrib & mask)
ch |= 0x100;
attrib = ((s & ~mask) >> 8);
printf("ch='%c' attrib=0x%02x\\n", ch, attrib);
printf("ch=\'%c\' attrib=0x%02x\\n", ch, attrib);
attrib ^= 0x10;
(void) lseek(fd, \-1, 1);
(void) write(fd, &attrib, 1);

View File

@ -97,9 +97,9 @@ The name itself is enclosed between angle brackets.
Characters following an
.B <escape_char>
are interpreted as itself; for example, the sequence
.B '<\\\\\\\\\\\\>>'
.B "<\\\\\\\\\\\\>>"
represents the symbolic name
.B '\\\\>'
.B "\\\\>"
enclosed in angle brackets.
.SS "Character Encoding"
The

View File

@ -102,7 +102,7 @@ by the following values when a core file is created:
%g real GID of dumped process
%s number of signal causing dump
%t time of dump (seconds since 0:00h, 1 Jan 1970)
%h hostname (same as 'nodename' returned by \fBuname\fP(2))
%h hostname (same as \fInodename\fP returned by \fBuname\fP(2))
%e executable filename
.fi

View File

@ -183,19 +183,19 @@ It must be filled with
The second byte of the magic number.
It must be filled with
.BR ELFMAG1 .
(1: 'E')
(1: \'E\')
.TP
.BR EI_MAG2
The third byte of the magic number.
It must be filled with
.BR ELFMAG2 .
(2: 'L')
(2: \'L\')
.TP
.BR EI_MAG3
The fourth byte of the magic number.
It must be filled with
.BR ELFMAG3 .
(3: 'F')
(3: \'F\')
.TP
.BR EI_CLASS
The fifth byte identifies the architecture for this binary:

View File

@ -55,7 +55,7 @@ protocols when assigning a port number.
Therefore, most entries will
have two entries, even for TCP only services.
Port numbers below 1024 (so-called 'low numbered' ports) can only be
Port numbers below 1024 (so-called "low numbered" ports) can only be
bound to by root (see
.BR bind (2),
.BR tcp (7),

View File

@ -138,7 +138,7 @@ files or with the
interface.
Each interface in the system has its own directory in
/proc/sys/net/ipv4/neigh/.
The setting in the `default' directory is used for all newly created
The setting in the "default" directory is used for all newly created
devices.
Unless otherwise specified time-related sysctls are specified
in seconds.

View File

@ -137,11 +137,11 @@ a single startup script located in a specific directory
.RI ( /etc/init.d
in most versions of Linux).
Each of these scripts accepts as a single argument
the word 'start' \-\- causing it to start the service, or the word
\&'stop' \-\- causing it to stop the service.
the word "start" \-\- causing it to start the service, or the word
\&"stop" \-\- causing it to stop the service.
The script may optionally
accept other "convenience" parameters (e.g: 'restart', to stop and then
start, 'status' do display the service status).
accept other "convenience" parameters (e.g: "restart", to stop and then
start, "status" do display the service status).
Running the script
without parameters displays the possible arguments.
.SS "Sequencing Directories"
@ -156,10 +156,10 @@ directory.
A primary script (usually \fI/etc/rc\fR) is called from
.BR inittab (5)
and calls the services scripts via the links in the sequencing directories.
All links with names that begin with 'S' are being called with
the argument 'start' (thereby starting the service).
All links with names that begin with \'S\' are being called with
the argument "start" (thereby starting the service).
All links with
names that begin with 'K' are being called with the argument 'stop'
names that begin with \'K\' are being called with the argument "stop"
(thereby stopping the service).
To define the starting or stopping order within the same run-level,

View File

@ -94,8 +94,8 @@ It is essentially obsolete; see 8859-10 (Latin-6) and 8859-13 (Latin-7).
8859-5
Cyrillic letters supporting Bulgarian, Byelorussian, Macedonian,
Russian, Serbian and Ukrainian.
Ukrainians read the letter `ghe'
with downstroke as `heh' and would need a ghe with upstroke to write a
Ukrainians read the letter "ghe"
with downstroke as "heh" and would need a ghe with upstroke to write a
correct ghe.
See the discussion of KOI8-R below.
.TP
@ -121,7 +121,7 @@ Turkish ones.
8859-10 (Latin-6)
Latin 6 adds the last Inuit (Greenlandic) and Sami (Lappish) letters
that were missing in Latin 4 to cover the entire Nordic area.
RFC 1345 listed a preliminary and different `latin6'.
RFC 1345 listed a preliminary and different "latin6".
Skolt Sami still
needs a few more accents than these.
.TP
@ -280,7 +280,7 @@ It does not care at
all what the bytes it is handling stand for.
.LP
Rendering of Unicode data streams is typically handled through
`subfont' tables which map a subset of Unicode to glyphs.
"subfont" tables which map a subset of Unicode to glyphs.
Internally
the kernel uses Unicode to describe the subfont loaded in video RAM.
This means that in UTF-8 mode one can use a character set with 512

View File

@ -80,7 +80,7 @@ The sequence of directory prefixes that
.BR sh (1)
and many other
programs apply in searching for a file known by an incomplete pathname.
The prefixes are separated by '\fB:\fP'.
The prefixes are separated by \'\fB:\fP\'.
(Similarly one has \fBCDPATH\fP used by some shells to find the target
of a change directory command, \fBMANPATH\fP used by
.BR man (1)

View File

@ -14,7 +14,7 @@ futex \- Fast Userspace Locking
.fi
.SH DESCRIPTION
.PP
The Linux kernel provides futexes ('Fast Userspace muTexes')
The Linux kernel provides futexes ("Fast Userspace muTexes")
as a building block for fast userspace
locking and semaphores.
Futexes are very basic and lend themselves well for building higher level
@ -52,7 +52,7 @@ but it may necessary to communicate with the kernel using the
.BR futex (2)
system call.
.PP
To 'up' a futex, execute the proper assembler instructions that
To "up" a futex, execute the proper assembler instructions that
will cause the host CPU to atomically increment the integer.
Afterwards, check if it has in fact changed from 0 to 1, in which case
there were no waiters and the operation is done.
@ -66,7 +66,7 @@ kernel to wake up any waiters using the
.B FUTEX_WAKE
operation.
.PP
Waiting on a futex, to 'down' it, is the reverse operation.
Waiting on a futex, to "down" it, is the reverse operation.
Atomically decrement the counter and check if it changed to 0,
in which case the operation is done and the futex was uncontended.
In all other circumstances, the process should set the counter to \-1

View File

@ -88,7 +88,7 @@ struct inotify_event {
uint32_t mask; /* Mask of events */
uint32_t cookie; /* Unique cookie associating related
events (for rename(2)) */
uint32_t len; /* Size of 'name' field */
uint32_t len; /* Size of \fIname\fP field */
char name[]; /* Optional null-terminated name */
};
.fi

View File

@ -103,8 +103,9 @@ anycast to address the nearest member of a group of hosts
(not implemented in Linux), IPv4-on-IPv6 to
address a IPv4 host, and other reserved address types.
.PP
The address notation for IPv6 is a group of 16 2 digit hexadecimal
numbers, separated with a ':'. '::' stands for a string of 0 bits.
The address notation for IPv6 is a group of 16 2-digit hexadecimal
numbers, separated with a \':\'.
\&"::" stands for a string of 0 bits.
Special addresses are ::1 for loopback and ::FFFF:<IPv4 address>
for IPv4-mapped-on-IPv6.
.PP

View File

@ -169,15 +169,15 @@ struct lconv {
/* Remaining fields are for monetary information */
char *int_curr_symbol; /* First three chars are a currency symbol
from ISO 4217. Fourth char is the
separator. Fifth char is \'\\0\'. */
from ISO 4217. Fourth char is the
separator. Fifth char is \'\\0\'. */
char *currency_symbol; /* Local currency symbol */
char *mon_decimal_point; /* Radix character */
char *mon_thousands_sep; /* Like \fIthousands_sep\fP above */
char *mon_grouping; /* Like \fIgrouping\fP above */
char *positive_sign; /* Sign for positive values */
char *negative_sign; /* Sign for negative values */
char int_frac_digits; /* Int'l fractional digits */
char int_frac_digits; /* International fractional digits */
char frac_digits; /* Local fractional digits */
char p_cs_precedes; /* 1 if currency_symbol precedes a
positive value, 0 if succeeds */

View File

@ -415,8 +415,8 @@ be sufficient to determine the default threading implementation:
.nf
.in +4n
bash$ $( ldd /bin/ls | grep libc.so | awk '{print $3}' ) | \\
egrep \-i 'threads|nptl'
bash$ $( ldd /bin/ls | grep libc.so | awk \'{print $3}\' ) | \\
egrep \-i \'threads|nptl\'
Native POSIX Threads Library by Ulrich Drepper et al
.in
.fi
@ -439,7 +439,7 @@ For example:
.in +4n
bash$ $( LD_ASSUME_KERNEL=2.2.5 ldd /bin/ls | grep libc.so | \\
awk '{print $3}' ) | egrep \-i 'threads|ntpl'
awk \'{print $3}\' ) | egrep \-i \'threads|ntpl\'
linuxthreads-0.10 by Xavier Leroy
.in
.fi

View File

@ -64,8 +64,8 @@ See also
http://physics.nist.gov/cuu/Units/prefixes.html
.RE
.SS Binary prefixes
The binary prefixes resemble the decimal ones, but have an additional 'i'
(and "Ki" starts with a capital 'K').
The binary prefixes resemble the decimal ones, but have an additional \'i\'
(and "Ki" starts with a capital \'K\').
The names are formed by taking the
first syllable of the names of the decimal prefix with roughly the same
size, followed by "bi" for "binary".

View File

@ -661,8 +661,8 @@ remote operation to be performed.
It is clearly unwise to use a URI that contains a password which is
intended to be secret.
In particular, the use of a password within
the 'userinfo' component of a URI is strongly recommended against except
in those rare cases where the 'password' parameter is intended to be public.
the "userinfo" component of a URI is strongly recommended against except
in those rare cases where the "password" parameter is intended to be public.
.SH BUGS
.PP
Documentation may be placed in a variety of locations, so there

View File

@ -84,7 +84,7 @@ the directory containing the application executable.
Thus, an application located in
.I somedir/app
could be compiled with
.I gcc -Wl,-rpath,'$ORIGIN/../lib'
.I gcc -Wl,-rpath,\'$ORIGIN/../lib\'
so that it finds an associated shared library in
.I somedir/lib
no matter where