summaryrefslogtreecommitdiff
path: root/dev-python/gnuplot-py/files/gnuplot-py-1.7-mousesupport.patch
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python/gnuplot-py/files/gnuplot-py-1.7-mousesupport.patch')
-rw-r--r--dev-python/gnuplot-py/files/gnuplot-py-1.7-mousesupport.patch75
1 files changed, 75 insertions, 0 deletions
diff --git a/dev-python/gnuplot-py/files/gnuplot-py-1.7-mousesupport.patch b/dev-python/gnuplot-py/files/gnuplot-py-1.7-mousesupport.patch
new file mode 100644
index 00000000000..2eaf6ae379e
--- /dev/null
+++ b/dev-python/gnuplot-py/files/gnuplot-py-1.7-mousesupport.patch
@@ -0,0 +1,75 @@
+--- _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.