[Patch #739124] Add use_default_colors() to curses module
diff --git a/Doc/lib/libcurses.tex b/Doc/lib/libcurses.tex
index 296e887..1eace43 100644
--- a/Doc/lib/libcurses.tex
+++ b/Doc/lib/libcurses.tex
@@ -537,6 +537,15 @@
 size if \envvar{LINES} and \envvar{COLUMNS} are not set).
 \end{funcdesc}
 
+\begin{funcdesc}{use_default_colors}{}
+Allow use of default values for colors on terminals supporting this
+feature. Use this to support transparency in your
+application.  The default color is assigned to the color number -1.
+After calling this function, 
+\function{init_pair(x, curses.COLOR_RED, -1)} initializes, for instance,
+color pair \var{x} to a red foreground color on the default background.
+\end{funcdesc}
+
 \subsection{Window Objects \label{curses-window-objects}}
 
 Window objects, as returned by \function{initscr()} and
diff --git a/Doc/whatsnew/whatsnew24.tex b/Doc/whatsnew/whatsnew24.tex
index e49825f..2f0df30 100644
--- a/Doc/whatsnew/whatsnew24.tex
+++ b/Doc/whatsnew/whatsnew24.tex
@@ -69,8 +69,11 @@
 
 \begin{itemize}
 
-\item Descriptions go here.
-
+\item The \module{curses} modules now supports the ncurses extension 
+   \function{use_default_colors()}.   On platforms where the terminal 
+   supports transparency, this makes it possible to use a transparent background.
+   (Contributed by J\"org Lehmann.)
+   
 \end{itemize}
 
 
diff --git a/Lib/test/test_curses.py b/Lib/test/test_curses.py
index 188da8d..f62783f 100644
--- a/Lib/test/test_curses.py
+++ b/Lib/test/test_curses.py
@@ -181,6 +181,9 @@
         curses.pair_content(curses.COLOR_PAIRS)
         curses.pair_number(0)
 
+    if hasattr(curses, 'use_default_colors'):
+        curses.use_default_colors()
+
     if hasattr(curses, 'keyname'):
         curses.keyname(13)
 
diff --git a/Misc/ACKS b/Misc/ACKS
index de27616..a0206ab 100644
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -325,6 +325,7 @@
 John J. Lee
 Luc Lefebvre
 Kip Lehman
+Joerg Lehmann
 Marc-Andre Lemburg
 William Lewis
 Robert van Liere
diff --git a/Misc/NEWS b/Misc/NEWS
index 93c7fb8..ee464ca 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -22,6 +22,8 @@
 
 - The signal module now exposes SIGRTMIN and SIGRTMAX (if available).
 
+- curses module now supports use_default_colors().  [patch #739124]
+
 Library
 -------
 
diff --git a/Modules/_cursesmodule.c b/Modules/_cursesmodule.c
index 4424dae..51f4c38 100644
--- a/Modules/_cursesmodule.c
+++ b/Modules/_cursesmodule.c
@@ -47,7 +47,7 @@
 	resizeterm restartterm ripoffline scr_dump
 	scr_init scr_restore scr_set scrl set_curterm set_term setterm
 	tgetent tgetflag tgetnum tgetstr tgoto timeout tputs
-	use_default_colors vidattr vidputs waddchnstr waddchstr wchgat
+	vidattr vidputs waddchnstr waddchstr wchgat
 	wcolor_set winchnstr winchstr winnstr wmouse_trafo wscrl
 
 Low-priority: 
@@ -2354,6 +2354,26 @@
   return Py_None;
 }
 
+#ifndef STRICT_SYSV_CURSES
+static PyObject *
+PyCurses_Use_Default_Colors(PyObject *self)
+{
+  int code;
+
+  PyCursesInitialised
+  PyCursesInitialisedColor
+
+  code = use_default_colors();
+  if (code != ERR) {
+    Py_INCREF(Py_None);
+    return Py_None;
+  } else {
+    PyErr_SetString(PyCursesError, "use_default_colors() returned ERR");
+    return NULL;
+  }
+}
+#endif /* STRICT_SYSV_CURSES */
+
 /* List of functions defined in the module */
 
 static PyMethodDef PyCurses_methods[] = {
@@ -2434,6 +2454,9 @@
   {"unctrl",              (PyCFunction)PyCurses_UnCtrl, METH_VARARGS},
   {"ungetch",             (PyCFunction)PyCurses_UngetCh, METH_VARARGS},
   {"use_env",             (PyCFunction)PyCurses_Use_Env, METH_VARARGS},
+#ifndef STRICT_SYSV_CURSES
+  {"use_default_colors",  (PyCFunction)PyCurses_Use_Default_Colors, METH_NOARGS},
+#endif
   {NULL,		  NULL}		/* sentinel */
 };