tag 402845 + patch
stop

I made a patch which can be applied to the Debian package. With the 
patch quotation marks display correctly in both Ascii and Unicode 
output devices.

This is what it does the the bash.1 file:

1) Replace single quotation marks (') with \(aq where the quotes are 
part of bash syntax. Quotes are left alone where they are English 
apostrophes or right single quotation marks.

2) Replace grave accents (`) with \` where they are used in bash syntax 
(command substitution for example). Grave accents are left untouched 
where they are used as English left single quotation marks.

3) Replace fake English left double quotes (``) with \(lq which outputs 
real left double quotation marks in Unicode output and Ascii double 
quotes (") in Ascii output.

4) Replace fake English right double quotes ('') with \(rq which outputs 
real right double quotation marks in Unicode output and Ascii double 
quotes (") in Ascii output.

Following table shows how these marks display in different output 
devices:

In file      Ascii     Unicode
-------------------------------
 \(aq        '         '
 '           '         <U+2019>
 `           `         <U+2018>
 \`          `         `
 "           "         "
 \(lq        "         <U+201C>
 \(rq        "         <U+201D>
-------------------------------
In file = Inside the bash.1 file
Ascii   = Output in Ascii or non-UTF-8 terminal
Unicode = Output in UTF-8 terminal or Postscript


The attached patch adds the file debian/patches/man-quotes.dpatch and 
inserts one line to debian/rules.

Thanks
diff -Nru bash-3.1dfsg/debian/patches/man-quotes.dpatch bash-3.1dfsg.orig/debian/patches/man-quotes.dpatch
--- bash-3.1dfsg/debian/patches/man-quotes.dpatch	2007-12-24 00:36:26.581022145 +0200
+++ bash-3.1dfsg.orig/debian/patches/man-quotes.dpatch	1970-01-01 02:00:00.000000000 +0200
@@ -1,503 +0,0 @@
-#! /bin/sh -e
-
-if [ $# -eq 3 -a "$2" = '-d' ]; then
-    pdir="-d $3"
-elif [ $# -ne 1 ]; then
-    echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
-    exit 1
-fi
-case "$1" in
-    -patch) patch $pdir -f --no-backup-if-mismatch -p1 < $0;;
-    -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p1 < $0;;
-    *)
-	echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
-	exit 1
-esac
-exit 0
-
-# DP: fix single and double quotes as well as backticks in Unicode output.
-
-diff -urb bash.orig/doc/bash.1 bash/doc/bash.1
---- bash.orig/doc/bash.1	2007-12-24 00:32:47.253006143 +0200
-+++ bash/doc/bash.1	2007-12-24 00:33:50.757521293 +0200
-@@ -948,19 +948,19 @@
- Enclosing characters in double quotes preserves the literal value
- of all characters within the quotes, with the exception of
- .BR $ ,
--.BR ` ,
-+.BR \` ,
- .BR \e ,
- and, when history expansion is enabled,
- .BR ! .
- The characters
- .B $
- and
--.B `
-+.B \`
- retain their special meaning within double quotes.  The backslash
- retains its special meaning only when followed by one of the following
- characters:
- .BR $ ,
--.BR ` ,
-+.BR \` ,
- \^\fB"\fP\^,
- .BR \e ,
- or
-@@ -984,7 +984,7 @@
- .B PARAMETERS
- below).
- .PP
--Words of the form \fB$\fP'\fIstring\fP' are treated specially.  The
-+Words of the form \fB$\fP\(aq\fIstring\fP\(aq are treated specially.  The
- word expands to \fIstring\fP, with backslash-escaped characters replaced
- as specified by the ANSI C standard.  Backslash escape sequences, if
- present, are decoded as follows:
-@@ -1018,7 +1018,7 @@
- .B \e\e
- backslash
- .TP
--.B \e'
-+.B \e\(aq
- single quote
- .TP   
- .B \e\fInnn\fP
-@@ -1768,7 +1768,7 @@
- split lines into words with the
- .B read
- builtin command.  The default value is
--``<space><tab><newline>''.
-+\(lq<space><tab><newline>\(rq.
- .TP
- .B IGNOREEOF
- Controls the
-@@ -1854,7 +1854,7 @@
- Example:
- .RS
- .PP
--\fBMAILPATH\fP='/var/mail/bfox?"You have mail":~/shell\-mail?"$_ has mail!"'
-+\fBMAILPATH\fP=\(aq/var/mail/bfox?"You have mail":~/shell\-mail?"$_ has mail!"\(aq
- .PP
- .B Bash
- supplies a default value for this variable, but the location of the user
-@@ -1891,7 +1891,7 @@
- .BR bash .
- A common value is
- .if t \f(CW/usr/gnu/bin:/usr/local/bin:/usr/ucb:/bin:/usr/bin\fP.
--.if n ``/usr/gnu/bin:/usr/local/bin:/usr/ucb:/bin:/usr/bin''.
-+.if n \(lq/usr/gnu/bin:/usr/local/bin:/usr/ucb:/bin:/usr/bin\(rq.
- .TP
- .B POSIXLY_CORRECT
- If this variable is in the environment when \fBbash\fP starts, the shell
-@@ -1912,13 +1912,13 @@
- .SM
- .B PROMPTING
- below) and used as the primary prompt string.  The default value is
--``\fB\es\-\ev\e$ \fP''.
-+\(lq\fB\es\-\ev\e$ \fP\(rq.
- .TP
- .B PS2
- The value of this parameter is expanded as with
- .B PS1
- and used as the secondary prompt string.  The default is
--``\fB> \fP''.
-+\(lq\fB> \fP\(rq.
- .TP
- .B PS3
- The value of this parameter is used as the prompt for the
-@@ -1937,7 +1937,7 @@
- .SM
- .B PS4
- is replicated multiple times, as necessary, to indicate multiple
--levels of indirection.  The default is ``\fB+ \fP''.
-+levels of indirection.  The default is \(lq\fB+ \fP\(rq.
- .TP
- .B SHELL
- The full pathname to the shell is kept in this environment variable.
-@@ -1988,7 +1988,7 @@
- included.
- .IP
- If this variable is not set, \fBbash\fP acts as if it had the
--value \fB$'\enreal\et%3lR\enuser\et%3lU\ensys\t%3lS'\fP.
-+value \fB$\(aq\enreal\et%3lR\enuser\et%3lU\ensys\t%3lS\(aq\fP.
- If the value is null, no timing information is displayed.
- A trailing newline is added when the format string is displayed.
- .TP
-@@ -2500,8 +2500,8 @@
- .IR parameter ,
- then the result of the expansion is the expanded value of
- .I parameter
--with the shortest matching pattern (the ``\fB#\fP'' case) or the
--longest matching pattern (the ``\fB##\fP'' case) deleted.
-+with the shortest matching pattern (the \(lq\fB#\fP\(rq case) or the
-+longest matching pattern (the \(lq\fB##\fP\(rq case) deleted.
- If
- .I parameter
- is
-@@ -2530,8 +2530,8 @@
- .IR parameter ,
- then the result of the expansion is the expanded value of
- .I parameter
--with the shortest matching pattern (the ``\fB%\fP'' case) or the
--longest matching pattern (the ``\fB%%\fP'' case) deleted.
-+with the shortest matching pattern (the \(lq\fB%\fP\(rq case) or the
-+longest matching pattern (the \(lq\fB%%\fP\(rq case) deleted.
- If
- .I parameter
- is
-@@ -2594,7 +2594,7 @@
- .RE
- or
- .RS
--\fB`\fP\fIcommand\fP\fB`\fP
-+\fB\`\fP\fIcommand\fP\fB\`\fP
- .RE
- .PP
- .B Bash
-@@ -2609,7 +2609,7 @@
- When the old-style backquote form of substitution is used,
- backslash retains its literal meaning except when followed by
- .BR $ ,
--.BR ` ,
-+.BR \` ,
- or
- .BR \e .
- The first backquote not preceded by a backslash terminates the
-@@ -2730,7 +2730,7 @@
- .B IFS
- is null, no word splitting occurs.
- .PP
--Explicit null arguments (\^\f3"\^"\fP or \^\f3'\^'\fP\^) are retained.
-+Explicit null arguments (\^\f3"\^"\fP or \^\f3\(aq\^\(aq\fP\^) are retained.
- Unquoted implicit null arguments, resulting from the expansion of
- parameters that have no values, are removed.
- If a parameter with no value is expanded within double quotes, a
-@@ -2777,7 +2777,7 @@
- .B LC_COLLATE.
- When a pattern is used for pathname expansion,
- the character
--.B ``.''
-+.B \(lq.\(rq
- at the start of a name or immediately following a slash
- must be matched explicitly, unless the shell option
- .B dotglob
-@@ -2785,7 +2785,7 @@
- When matching a pathname, the slash character must always be
- matched explicitly.
- In other cases, the
--.B ``.''
-+.B \(lq.\(rq
- character is not treated specially.
- See the description of
- .B shopt
-@@ -2813,9 +2813,9 @@
- .B GLOBIGNORE
- is removed from the list of matches.
- The file names
--.B ``.''
-+.B \(lq.\(rq
- and
--.B ``..''
-+.B \(lq..\(rq
- are always ignored when
- .SM
- .B GLOBIGNORE
-@@ -2825,12 +2825,12 @@
- to a non-null value has the effect of enabling the
- .B dotglob
- shell option, so all other file names beginning with a
--.B ``.''
-+.B \(lq.\(rq
- will match.
- To get the old behavior of ignoring file names beginning with a
--.BR ``.'' ,
-+.BR \(lq.\(rq ,
- make
--.B ``.*''
-+.B \(lq.*\(rq
- one of the patterns in
- .SM
- .BR GLOBIGNORE .
-@@ -2956,7 +2956,7 @@
- After the preceding expansions, all unquoted occurrences of the
- characters
- .BR \e ,
--.BR ' ,
-+.BR \(aq ,
- and \^\f3"\fP\^ that did not result from one of the above
- expansions are removed.
- .SH REDIRECTION
-@@ -3189,7 +3189,7 @@
- .BR \e ,
- .BR $ ,
- and
--.BR ` .
-+.BR \` .
- .PP
- If the redirection operator is
- .BR <<\- ,
-@@ -3303,7 +3303,7 @@
- The first word of each simple command, if unquoted,
- is checked to see if it has an
- alias.  If so, that word is replaced by the text of the alias.
--The characters \fB/\fP, \fB$\fP, \fB`\fP, and \fB=\fP and
-+The characters \fB/\fP, \fB$\fP, \fB\`\fP, and \fB=\fP and
- any of the shell \fImetacharacters\fP or quoting characters
- listed above may not appear in an alias name.
- The replacement text may contain any valid shell input,
-@@ -3601,7 +3601,7 @@
- True if \fIfile\fP exists and is a symbolic link.
- .TP
- .B \-k \fIfile\fP
--True if \fIfile\fP exists and its ``sticky'' bit is set.
-+True if \fIfile\fP exists and its \(lqsticky\(rq bit is set.
- .TP
- .B \-p \fIfile\fP
- True if \fIfile\fP exists and is a named pipe (FIFO).
-@@ -4175,12 +4175,12 @@
- foreground:
- .B %1
- is a synonym for
--\fB``fg %1''\fP,
-+\fB\(lqfg %1\(rq\fP,
- bringing job 1 from the background into the foreground.
- Similarly,
--.B ``%1 &''
-+.B \(lq%1 &\(rq
- resumes job 1 in the background, equivalent to
--\fB``bg %1''\fP.
-+\fB\(lqbg %1\(rq\fP.
- .PP
- The shell learns immediately whenever a job changes state.
- Normally,
-@@ -4475,7 +4475,7 @@
- is bound to run the macro
- expressed on the right hand side (that is, to insert the text
- .if t \f(CW> output\fP
--.if n ``> output''
-+.if n \(lq> output\(rq
- into the line).
- .PP
- In the second form, \fB"keyseq"\fP:\^\fIfunction\-name\fP or \fImacro\fP,
-@@ -4507,7 +4507,7 @@
- .I "ESC [ 1 1 ~"
- is bound to insert the text
- .if t \f(CWFunction Key 1\fP.
--.if n ``Function Key 1''.
-+.if n \(lqFunction Key 1\(rq.
- .PP
- The full set of GNU Emacs style escape sequences is
- .RS
-@@ -4528,8 +4528,8 @@
- .B \e"
- literal "
- .TP
--.B \e'
--literal '
-+.B \e\(aq
-+literal \(aq
- .RE
- .PD
- .PP
-@@ -4577,7 +4577,7 @@
- Unquoted text is assumed to be a function name.
- In the macro body, the backslash escapes described above are expanded.
- Backslash will quote any other character in the macro text,
--including " and '.
-+including " and \(aq.
- .PP
- .B Bash
- allows the current readline key bindings to be displayed or modified
-@@ -4627,7 +4627,7 @@
- treated specially by the kernel's terminal driver to their readline
- equivalents.
- .TP
--.B comment\-begin (``#'')
-+.B comment\-begin (\(lq#\(rq)
- The string that is inserted when the readline
- .B insert\-comment
- command is executed.
-@@ -4697,7 +4697,7 @@
- .B meta\-flag
- is a synonym for this variable.
- .TP
--.B isearch\-terminators (``C\-[C\-J'')
-+.B isearch\-terminators (\(lqC\-[C\-J\(rq)
- The string of characters that should terminate an incremental
- search without subsequently executing the character as a command.
- If this variable has not been given a value, the characters
-@@ -5792,7 +5792,7 @@
- with
- .IR string2 .
- Equivalent to
--``!!:s/\fIstring1\fP/\fIstring2\fP/''
-+\(lq!!:s/\fIstring1\fP/\fIstring2\fP/\(rq
- (see \fBModifiers\fP below).
- .TP
- .B !#
-@@ -6040,7 +6040,7 @@
- Each non-option argument is a command as it would appear in
- .IR .inputrc ,
- but each binding or command must be passed as a separate argument;
--e.g., '"\eC\-x\eC\-r": re\-read\-init\-file'.
-+e.g., `"\eC\-x\eC\-r": re\-read\-init\-file'.
- Options, if supplied, have the following meanings:
- .RS
- .PD 0
-@@ -6151,7 +6151,7 @@
- are separated by a colon (:).  A null directory name in
- .SM
- .B CDPATH
--is the same as the current directory, i.e., ``\fB.\fP''.  If
-+is the same as the current directory, i.e., \(lq\fB.\fP\(rq.  If
- .I dir
- begins with a slash (/),
- then
-@@ -6459,7 +6459,7 @@
- must be \(>= 1.  If
- .I n
- is greater than the number of enclosing loops, the last enclosing loop
--(the ``top-level'' loop) is resumed.  The return value is 0 unless the
-+(the \(lqtop-level\(rq loop) is resumed.  The return value is 0 unless the
- shell is not executing a loop when
- .B continue
- is executed.
-@@ -6533,7 +6533,7 @@
- the variable is set to \fIvalue\fP.
- The return value is 0 unless an invalid option is encountered,
- an attempt is made to define a function using
--.if n ``\-f foo=bar'',
-+.if n \(lq\-f foo=bar\(rq,
- .if t \f(CW\-f foo=bar\fP,
- an attempt is made to assign a value to a readonly variable,
- an attempt is made to assign a value to an array variable without
-@@ -6698,7 +6698,7 @@
- .B PATH
- instead of the shell builtin version, run
- .if t \f(CWenable -n test\fP.
--.if n ``enable -n test''.
-+.if n \(lqenable -n test\(rq.
- The
- .B \-f
- option means to load the new builtin command
-@@ -6836,7 +6836,7 @@
- .I last
- is not specified it is set to
- the current command for listing (so that
--.if n ``fc \-l \-10''
-+.if n \(lqfc \-l \-10\(rq
- .if t \f(CWfc \-l \-10\fP
- prints the last 10 commands) and to
- .I first
-@@ -6880,16 +6880,16 @@
- In the second form, \fIcommand\fP is re-executed after each instance
- of \fIpat\fP is replaced by \fIrep\fP.
- A useful alias to use with this is
--.if n ``r="fc -s"'',
--.if t \f(CWr='fc \-s'\fP,
-+.if n \(lqr="fc -s"\(rq,
-+.if t \f(CWr=\(aqfc \-s\(aq\fP,
- so that typing
--.if n ``r cc''
-+.if n \(lqr cc\(rq
- .if t \f(CWr cc\fP
- runs the last command beginning with
--.if n ``cc''
-+.if n \(lqcc\(rq
- .if t \f(CWcc\fP
- and typing
--.if n ``r''
-+.if n \(lqr\(rq
- .if t \f(CWr\fP
- re-executes the last command.
- .sp 1
-@@ -7117,7 +7117,7 @@
- Delete the history entry at position \fIoffset\fP.
- .TP
- .B \-a
--Append the ``new'' history lines (history lines entered since the
-+Append the \(lqnew\(rq history lines (history lines entered since the
- beginning of the current \fBbash\fP session) to the history file.
- .TP
- .B \-n
-@@ -7307,10 +7307,10 @@
- shown by
- .BR dirs ,
- starting with zero.  For example:
--.if n ``popd +0''
-+.if n \(lqpopd +0\(rq
- .if t \f(CWpopd +0\fP
- removes the first directory,
--.if n ``popd +1''
-+.if n \(lqpopd +1\(rq
- .if t \f(CWpopd +1\fP
- the second.
- .TP
-@@ -7319,10 +7319,10 @@
- shown by
- .BR dirs ,
- starting with zero.  For example:
--.if n ``popd -0''
-+.if n \(lqpopd -0\(rq
- .if t \f(CWpopd -0\fP
- removes the last directory,
--.if n ``popd -1''
-+.if n \(lqpopd -1\(rq
- .if t \f(CWpopd -1\fP
- the next to last.
- .TP
-@@ -7353,7 +7353,7 @@
- In addition to the standard \fIprintf\fP(1) formats, \fB%b\fP causes
- \fBprintf\fP to expand backslash escape sequences in the corresponding
- \fIargument\fP (except that \fB\ec\fP terminates output, backslashes in
--\fB\e'\fP, \fB\e"\fP, and \fB\e?\fP are not removed, and octal escapes
-+\fB\e\(aq\fP, \fB\e"\fP, and \fB\e?\fP are not removed, and octal escapes
- beginning with \fB\e0\fP may contain up to four digits),
- and \fB%q\fP causes \fBprintf\fP to output the corresponding
- \fIargument\fP in a format that can be reused as shell input.
-@@ -7697,7 +7697,7 @@
- .B ignoreeof
- The effect is as if the shell command
- .if t \f(CWIGNOREEOF=10\fP
--.if n ``IGNOREEOF=10''
-+.if n \(lqIGNOREEOF=10\(rq
- had been executed
- (see
- .B Shell Variables
-@@ -8070,7 +8070,7 @@
- \fBPathname Expansion\fP are enabled.
- .TP 8
- .B extquote
--If set, \fB$\fP'\fIstring\fP' and \fB$\fP"\fIstring\fP" quoting is
-+If set, \fB$\fP\(aq\fIstring\fP\(aq and \fB$\fP"\fIstring\fP" quoting is
- performed within \fB${\fP\fIparameter\fP\fB}\fP expansions
- enclosed in double quotes.  This option is enabled by default.
- .TP 8
-@@ -8153,8 +8153,8 @@
- .TP 8
- .B mailwarn
- If set, and a file that \fBbash\fP is checking for mail has been  
--accessed since the last time it was checked, the message ``The mail in
--\fImailfile\fP has been read'' is displayed.
-+accessed since the last time it was checked, the message \(lqThe mail in
-+\fImailfile\fP has been read\(rq is displayed.
- .TP 8
- .B no_empty_cmd_completion
- If set, and
-@@ -8481,7 +8481,7 @@
- were specified as a command name,
- or nothing if
- .if t \f(CWtype -t name\fP
--.if n ``type -t name''
-+.if n \(lqtype -t name\(rq
- would not return
- .IR file .
- The
-@@ -8491,7 +8491,7 @@
- .B PATH
- search for each \fIname\fP, even if
- .if t \f(CWtype -t name\fP
--.if n ``type -t name''
-+.if n \(lqtype -t name\(rq
- would not return
- .IR file .
- If a command is hashed,
diff -Nru bash-3.1dfsg/debian/rules bash-3.1dfsg.orig/debian/rules
--- bash-3.1dfsg/debian/rules	2007-12-24 00:38:35.790028862 +0200
+++ bash-3.1dfsg.orig/debian/rules	2007-12-24 00:00:33.000000000 +0200
@@ -539,7 +539,6 @@
 	man-test \
 	man-test2 \
 	man-net-redirections \
-	man-quotes \
 	privmode \
 	rbash-manpage \
 	command-not-found \

Reply via email to