Package: bash Version: 4.1-3 Severity: normal Tags: upstream patch Overview --------
In the upstream manual page, - the pipe character has been erroneously replaced with a 'CURLY BRACKET EXTENSION' (U+23AA) in some places, and - the replaced occurrences are not rendered correctly in most places. In the Lenny release of bash (3.2.39(1)-release), the man page is still okay. Details ------- In places where the ordinary pipe character ("|", 0x7c) is the correct character, it has been erroneously replaced with 0xe28eaa, e. g. here: 00003A00 20 20 20 41 20 20 6C 69 73 74 20 20 69 73 20 61 A list is a 00003A10 20 73 65 71 75 65 6E 63 65 20 6F 66 20 6F 6E 65 sequence of one 00003A20 20 6F 72 20 6D 6F 72 65 20 70 69 70 65 6C 69 6E or more pipelin 00003A30 65 73 20 73 65 70 61 72 61 74 65 64 20 62 79 20 es separated by 00003A40 6F 6E 65 20 6F 66 20 74 68 65 0A 20 20 20 20 20 one of the. 00003A50 20 20 6F 70 65 72 61 74 6F 72 73 20 3B 2C 20 26 operators ;, & 00003A60 2C 20 26 26 2C 20 6F 72 20 E2 8E AA E2 8E AA 2C , &&, or ......, ^^^^^^^^^^^^^^^^^^ Although this is the wrong character here, it should at least be rendered correctly in "uxterm", but instead, it shows dotted boxes instead (attachment "bash-manpage.png"). Interestingly enough, there seems to be only one place in the manpage where this Unicode character gets correctly rendered in a uxterm as a large vertical bar: 00003340 20 20 20 20 20 5B 74 69 6D 65 20 5B 2D 70 5D 5D [time [-p]] 00003350 20 5B 20 21 20 5D 20 63 6F 6D 6D 61 6E 64 20 5B [ ! ] command [ 00003360 20 5B 7C E2 8E AA 7C 26 5D 20 63 6F 6D 6D 61 6E [|...|&] comman ^^^^^^^^^ Source code: -------- bash.1 -------- .RS .PP [\fBtime\fP [\fB\-p\fP]] [ ! ] \fIcommand\fP [ [\fB|\fP\(bv\fB|&\fP] \fIcommand2\fP ... ] .RE .PP ------------------------ Ironically, this is also the only place where the replacement was (maybe questionable, but) correct. I don't know if that is a bug in the manpage roff source code or in *roff itself. Patch ----- The attached patch, created with diff -u bash-4.1/bash-4.1/doc/bash.1{.orig,} > bash-4.1.patch fixes the wrong replacements (and leaves the sole correct replacement untouched). -- System Information: Debian Release: squeeze/sid APT prefers testing APT policy: (500, 'testing'), (50, 'unstable'), (10, 'experimental') Architecture: i386 (i686) Kernel: Linux 2.6.32-5-686 (SMP w/1 CPU core) Locale: LANG=en_US.iso885915, LC_CTYPE=en_US.iso885915 (charmap=ISO-8859-15) Shell: /bin/sh linked to /bin/bash Versions of packages bash depends on: ii base-files 5.9 Debian base system miscellaneous f ii dash 0.5.5.1-7.2 POSIX-compliant shell ii debianutils 3.4 Miscellaneous utilities specific t ii libc6 2.11.2-7 Embedded GNU C Library: Shared lib ii libncurses5 5.7+20100313-4 shared libraries for terminal hand Versions of packages bash recommends: ii bash-completion 1:1.2-2 programmable completion for the ba Versions of packages bash suggests: pn bash-doc <none> (no description available) -- no debconf information
--- bash-4.1/bash-4.1/doc/bash.1.orig 2009-12-30 19:01:31.000000000 +0100 +++ bash-4.1/bash-4.1/doc/bash.1 2010-11-17 14:08:19.000000000 +0100 @@ -478,7 +478,7 @@ symbols: .RS .PP -.if t \fB\(bv\(bv & && ; ;; ( ) | |& <newline>\fP +.if t \fB|| & && ; ;; ( ) | |& <newline>\fP .if n \fB|| & && ; ;; ( ) | |& <newline>\fP .RE .PD @@ -577,7 +577,7 @@ .BR & , .BR && , or -.BR \(bv\(bv , +.BR || , and optionally terminated by one of .BR ; , .BR & , @@ -587,7 +587,7 @@ Of these list operators, .B && and -.B \(bv\(bv +.B || have equal precedence, followed by .B ; and @@ -608,7 +608,7 @@ exit status of the last command executed. .PP AND and OR lists are sequences of one of more pipelines separated by the -\fB&&\fP and \fB\(bv\(bv\fP control operators, respectively. +\fB&&\fP and \fB||\fP control operators, respectively. AND and OR lists are executed with left associativity. An AND list has the form .RS @@ -624,7 +624,7 @@ An OR list has the form .RS .PP -\fIcommand1\fP \fB\(bv\(bv\fP \fIcommand2\fP +\fIcommand1\fP \fB||\fP \fIcommand2\fP .PP .RE .PP @@ -754,8 +754,7 @@ .I expression2 are true. .TP -.if t \fIexpression1\fP \fB\(bv\(bv\fP \fIexpression2\fP -.if n \fIexpression1\fP \fB||\fP \fIexpression2\fP +\fIexpression1\fP \fB||\fP \fIexpression2\fP True if either .I expression1 or @@ -764,8 +763,7 @@ .PD .LP The \fB&&\fP and -.if t \fB\(bv\(bv\fP -.if n \fB||\fP +\fB||\fP operators do not evaluate \fIexpression2\fP if the value of \fIexpression1\fP is sufficient to determine the return value of the entire conditional expression. @@ -8318,8 +8316,8 @@ reserved words, part of any command executed in a .B && or -.B \(bv\(bv -list except the command following the final \fB&&\fP or \fB\(bv\(bv\fP, +.B || +list except the command following the final \fB&&\fP or \fB||\fP, any command in a pipeline but the last, or if the command's return value is being inverted with @@ -9217,7 +9215,7 @@ statement, part of a command executed in a .B && or -.B \(bv\(bv +.B || list, or if the command's return value is being inverted via .BR ! .