gentoo/dev-python/gnuplot-py/files/gnuplot-py-1.7-mousesupport.patch
Robin H. Johnson 56bd759df1
proj/gentoo: Initial commit
This commit represents a new era for Gentoo:
Storing the gentoo-x86 tree in Git, as converted from CVS.

This commit is the start of the NEW history.
Any historical data is intended to be grafted onto this point.

Creation process:
1. Take final CVS checkout snapshot
2. Remove ALL ChangeLog* files
3. Transform all Manifests to thin
4. Remove empty Manifests
5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$
5.1. Do not touch files with -kb/-ko keyword flags.

Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests
X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project
X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration
X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn
X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts
X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration
X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging
X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
2015-08-08 17:38:18 -07:00

76 lines
2.5 KiB
Diff

--- _Gnuplot.py.orig 2003-10-17 16:28:10.000000000 +0200
+++ _Gnuplot.py 2004-10-28 14:39:20.000000000 +0200
@@ -18,6 +18,27 @@
import gp, PlotItems, termdefs
+def test_mouse():
+ """Return whether mouse support is present or not.
+
+ The detection is done by calling gnuplot with a file containing only the
+ "set mouse" command. If gnuplot does have mouse support, it should simply
+ execute the file silently, producing no output."""
+
+ import os,tempfile,commands
+
+ tmpname = tempfile.mktemp()
+ tfile = open(tmpname,"w")
+ tfile.write("set mouse")
+ tfile.close()
+ msg = commands.getoutput(gp.GnuplotOpts.gnuplot_command + " " +
+ tmpname)
+ os.unlink(tmpname)
+ if msg: # Gnuplot won"t print anything if it has mouse support
+ has_mouse = 0
+ else:
+ has_mouse = 1
+ return has_mouse
class _GnuplotFile:
"""A file to which gnuplot commands can be written.
@@ -152,7 +173,7 @@
'output' : 'string',
}
- def __init__(self, filename=None, persist=None, debug=0):
+ def __init__(self, filename=None, persist=None, debug=0, mouse=None):
"""Create a Gnuplot object.
Create a 'Gnuplot' object. By default, this starts a gnuplot
@@ -172,8 +193,19 @@
'debug=1' -- echo the gnuplot commands to stderr as well as
sending them to gnuplot.
+ "mouse=1" -- activate mouse support (officially available as of
+ gnuplot 4.0 under certain platforms).
+
"""
+ # The mouse check must be done first, so we can decide whether to use
+ # inline data and fifos or not (they break mouse support)
+ if mouse is None:
+ mouse = test_mouse()
+ if mouse:
+ gp.GnuplotOpts.prefer_inline_data = 0
+ gp.GnuplotOpts.prefer_fifo_data = 0
+
if filename is None:
self.gnuplot = gp.GnuplotProcess(persist=persist)
else:
@@ -182,10 +214,14 @@
'Gnuplot with output to file does not allow '
'persist option.')
self.gnuplot = _GnuplotFile(filename)
+
self._clear_queue()
self.debug = debug
self.plotcmd = 'plot'
- self('set terminal %s' % (gp.GnuplotOpts.default_term,))
+ # The "set mouse" command MUST be the VERY FIRST command passed to gnuplot
+ if mouse:
+ self("set mouse")
+ self("set terminal %s" % gp.GnuplotOpts.default_term)
def __call__(self, s):
"""Send a command string to gnuplot.