From 2269d865986dae552737fd0ffe86a58dd9f99dab Mon Sep 17 00:00:00 2001 From: Fred Drake Date: Thu, 11 Nov 2004 06:14:05 +0000 Subject: [PATCH] Fix SF bug #1061770: Manual typesets bit-shift operators as guillemet --- Doc/lib/libstdtypes.tex | 5 +++-- Doc/ref/ref5.tex | 3 ++- Doc/ref/ref6.tex | 3 ++- Doc/whatsnew/whatsnew20.tex | 3 ++- Doc/whatsnew/whatsnew23.tex | 6 ++++-- 5 files changed, 13 insertions(+), 7 deletions(-) diff --git a/Doc/lib/libstdtypes.tex b/Doc/lib/libstdtypes.tex index c523d46f785..b2bb3787621 100644 --- a/Doc/lib/libstdtypes.tex +++ b/Doc/lib/libstdtypes.tex @@ -318,8 +318,9 @@ priority (operations in the same box have the same priority): \lineiii{\var{x} | \var{y}}{bitwise \dfn{or} of \var{x} and \var{y}}{} \lineiii{\var{x} \^{} \var{y}}{bitwise \dfn{exclusive or} of \var{x} and \var{y}}{} \lineiii{\var{x} \&{} \var{y}}{bitwise \dfn{and} of \var{x} and \var{y}}{} - \lineiii{\var{x} << \var{n}}{\var{x} shifted left by \var{n} bits}{(1), (2)} - \lineiii{\var{x} >> \var{n}}{\var{x} shifted right by \var{n} bits}{(1), (3)} + % The empty groups below prevent conversion to guillemets. + \lineiii{\var{x} <{}< \var{n}}{\var{x} shifted left by \var{n} bits}{(1), (2)} + \lineiii{\var{x} >{}> \var{n}}{\var{x} shifted right by \var{n} bits}{(1), (3)} \hline \lineiii{\~\var{x}}{the bits of \var{x} inverted}{} \end{tableiii} diff --git a/Doc/ref/ref5.tex b/Doc/ref/ref5.tex index 036533ca74c..091c91cbe0f 100644 --- a/Doc/ref/ref5.tex +++ b/Doc/ref/ref5.tex @@ -802,9 +802,10 @@ The shifting operations have lower priority than the arithmetic operations: \begin{productionlist} + % The empty groups below prevent conversion to guillemets. \production{shift_expr} {\token{a_expr} - | \token{shift_expr} ( "<<" | ">>" ) \token{a_expr}} + | \token{shift_expr} ( "<{}<" | ">{}>" ) \token{a_expr}} \end{productionlist} These operators accept plain or long integers as arguments. The diff --git a/Doc/ref/ref6.tex b/Doc/ref/ref6.tex index e74a7dded07..153ddf7743d 100644 --- a/Doc/ref/ref6.tex +++ b/Doc/ref/ref6.tex @@ -275,7 +275,8 @@ operation and an assignment statement: {\token{target} \token{augop} \token{expression_list}} \production{augop} {"+=" | "-=" | "*=" | "/=" | "\%=" | "**="} - \productioncont{| ">>=" | "<<=" | "\&=" | "\textasciicircum=" | "|="} + % The empty groups below prevent conversion to guillemets. + \productioncont{| ">{}>=" | "<{}<=" | "\&=" | "\textasciicircum=" | "|="} \end{productionlist} (See section~\ref{primaries} for the syntax definitions for the last diff --git a/Doc/whatsnew/whatsnew20.tex b/Doc/whatsnew/whatsnew20.tex index fe5378be544..d376d9d570c 100644 --- a/Doc/whatsnew/whatsnew20.tex +++ b/Doc/whatsnew/whatsnew20.tex @@ -397,9 +397,10 @@ been added to Python 2.0. Augmented assignment operators include statement \code{a += 2} increments the value of the variable \code{a} by 2, equivalent to the slightly lengthier \code{a = a + 2}. +% The empty groups below prevent conversion to guillemets. The full list of supported assignment operators is \code{+=}, \code{-=}, \code{*=}, \code{/=}, \code{\%=}, \code{**=}, \code{\&=}, -\code{|=}, \verb|^=|, \code{>>=}, and \code{<<=}. Python classes can +\code{|=}, \verb|^=|, \code{>{}>=}, and \code{<{}<=}. Python classes can override the augmented assignment operators by defining methods named \method{__iadd__}, \method{__isub__}, etc. For example, the following \class{Number} class stores a number and supports using += to create a diff --git a/Doc/whatsnew/whatsnew23.tex b/Doc/whatsnew/whatsnew23.tex index 0a007d541e1..b74403a9634 100644 --- a/Doc/whatsnew/whatsnew23.tex +++ b/Doc/whatsnew/whatsnew23.tex @@ -2325,13 +2325,15 @@ exists. they're stored as 32-bit numbers and result in a negative value, but in Python 2.4 they'll become positive long integers. +% The empty groups below prevent conversion to guillemets. There are a few ways to fix this warning. If you really need a positive number, just add an \samp{L} to the end of the literal. If you're trying to get a 32-bit integer with low bits set and have -previously used an expression such as \code{~(1 << 31)}, it's probably +previously used an expression such as \code{\textasciitilde(1 <{}< 31)}, +it's probably clearest to start with all bits set and clear the desired upper bits. For example, to clear just the top bit (bit 31), you could write -\code{0xffffffffL {\&}{\textasciitilde}(1L<<31)}. +\code{0xffffffffL {\&}{\textasciitilde}(1L<{}<31)}. \item You can no longer disable assertions by assigning to \code{__debug__}.