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 ! .

Reply via email to