]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Fix SF bug #1061770: Manual typesets bit-shift operators as guillemet
authorFred Drake <fdrake@acm.org>
Thu, 11 Nov 2004 06:16:42 +0000 (06:16 +0000)
committerFred Drake <fdrake@acm.org>
Thu, 11 Nov 2004 06:16:42 +0000 (06:16 +0000)
Doc/lib/libstdtypes.tex
Doc/ref/ref5.tex
Doc/ref/ref6.tex
Doc/whatsnew/whatsnew20.tex
Doc/whatsnew/whatsnew23.tex

index 1811a4c56cdbb5b06e261ceb7029cf7171a06566..2e222b1e4dbf1d96f05c200bc228063f51d55a75 100644 (file)
@@ -316,8 +316,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}
index 9fdd4ff509b12f425ba18a259bc4b7726f7bbfd8..f4ef3fe04fdcd4dc36ed3bea65455e57078e0221 100644 (file)
@@ -753,9 +753,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
index a389176eee0328dc8ec075fa1fef125fc56d2eaa..b7e7188952f302a2fb1004b64fdeccfa404086da 100644 (file)
@@ -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
index 1728e1a5f708cc25c111057e820535473fc7c11b..0467fc724227e30227d2ffbad02bc4c9236e83d4 100644 (file)
@@ -394,9 +394,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
index 9e8bd7f495d65215d43a700b80d712ad01dfa0bf..9d5bdac41e470fd682c7edc9af93e66253d1734c 100644 (file)
@@ -2344,13 +2344,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__}.