From 058858151d1015adfa429318b8340779e6caeceb Mon Sep 17 00:00:00 2001
From: Skip Montanaro <skip@pobox.com>
Date: Sun, 16 Jan 2005 20:48:27 +0000
Subject: Document the reconvert module.

---
 Doc/lib/lib.tex          |  1 +
 Doc/lib/libreconvert.tex | 80 ++++++++++++++++++++++++++++++++++++++++++++++++
 Misc/NEWS                |  2 ++
 3 files changed, 83 insertions(+)
 create mode 100644 Doc/lib/libreconvert.tex

diff --git a/Doc/lib/lib.tex b/Doc/lib/lib.tex
index 78556bf..1350dd9 100644
--- a/Doc/lib/lib.tex
+++ b/Doc/lib/lib.tex
@@ -106,6 +106,7 @@ and how to embed it in other applications.
 \input{libstrings}              % String Services
 \input{libstring}
 \input{libre}
+\input{libreconvert}
 \input{libstruct}
 \input{libdifflib}
 \input{libfpformat}
diff --git a/Doc/lib/libreconvert.tex b/Doc/lib/libreconvert.tex
new file mode 100644
index 0000000..29c6e52
--- /dev/null
+++ b/Doc/lib/libreconvert.tex
@@ -0,0 +1,80 @@
+\section{\module{reconvert} ---
+         Convert regular expressions from regex to re form}
+\declaremodule{standard}{reconvert}
+\moduleauthor{Andrew M. Kuchling}{amk@amk.ca}
+\sectionauthor{Skip Montanaro}{skip@pobox.com}
+
+
+\modulesynopsis{Convert regex-, emacs- or sed-style regular expressions
+to re-style syntax.}
+
+
+This module provides a facility to convert regular expressions from the
+syntax used by the deprecated \module{regex} module to those used by the
+newer \module{re} module.  Because of similarity between the regular
+expression syntax of \code{sed(1)} and \code{emacs(1)} and the
+\module{regex} module, it is also helpful to convert patterns written for
+those tools to \module{re} patterns.
+
+When used as a script, a Python string literal (or any other expression
+evaluating to a string) is read from stdin, and the translated expression is
+written to stdout as a string literal.  Unless stdout is a tty, no trailing
+newline is written to stdout.  This is done so that it can be used with
+Emacs \code{C-U M-|} (shell-command-on-region) which filters the region
+through the shell command.
+
+\begin{seealso}
+  \seetitle{Mastering Regular Expressions}{Book on regular expressions
+            by Jeffrey Friedl, published by O'Reilly.  The second 
+            edition of the book no longer covers Python at all, 
+            but the first edition covered writing good regular expression
+            patterns in great detail.}
+\end{seealso}
+
+\subsection{Module Contents}
+\nodename{Contents of Module reconvert}
+
+The module defines two functions and a handful of constants.
+
+\begin{funcdesc}{convert}{pattern\optional{, syntax=None}}
+ Convert a \var{pattern} representing a \module{regex}-stype regular
+ expression into a \module{re}-style regular expression.  The optional
+ \var{syntax} parameter is a bitwise-or'd set of flags that control what
+ constructs are converted.  See below for a description of the various
+ constants.
+\end{funcdesc}
+
+\begin{funcdesc}{quote}{s\optional{, quote=None}}
+ Convert a string object to a quoted string literal.
+
+ This is similar to \function{repr} but will return a "raw" string (r'...'
+ or r"...") when the string contains backslashes, instead of doubling all
+ backslashes.  The resulting string does not always evaluate to the same
+ string as the original; however it will do just the right thing when passed
+ into re.compile().
+
+ The optional second argument forces the string quote; it must be a single
+ character which is a valid Python string quote.  Note that prior to Python
+ 2.5 this would not accept triple-quoted string delimiters.
+\end{funcdesc}
+
+\begin{datadesc}{RE_NO_BK_PARENS}
+ Suppress paren conversion.  This should be omitted when converting
+ \code{sed}-style or \code{emacs}-style regular expressions.
+\end{datadesc}
+
+\begin{datadesc}{RE_NO_BK_VBAR}
+ Suppress vertical bar conversion.  This should be omitted when converting
+ \code{sed}-style or \code{emacs}-style regular expressions.
+\end{datadesc}
+
+\begin{datadesc}{RE_BK_PLUS_QM}
+ Enable conversion of \code{+} and \code{?} characters.  This should be
+ added to the \var{syntax} arg of \function{convert} when converting
+ \code{sed}-style regular expressions and omitted when converting
+ \code{emacs}-style regular expressions.
+\end{datadesc}
+
+\begin{datadesc}{RE_NEWLINE_OR}
+ When set, newline characters are replaced by \code{|}.
+\end{datadesc}
diff --git a/Misc/NEWS b/Misc/NEWS
index 63081b0..035bacf 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -124,6 +124,8 @@ Library
 - Bug #1083110: ``zlib.decompress.flush()`` would segfault if called immediately
   after creating the object, without any intervening ``.decompress()`` calls.
 
+- The reconvert.quote function can now emit triple-quoted strings.  The
+  reconvert module now has some simple documentation.
 
 Build
 -----
-- 
cgit v0.12

