Patch by Axel Beckert <abe@debian.org> to adapt to chnages between
plplot 5.9.5-4 and 5.9.9-4. See
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=660260#95

Disables further uses of plplot-internal functions as advised by
upstream -- should only have cosmetic implications.

See
http://sourceforge.net/projects/plplot/forums/forum/132889/topic/5389011
for the plplot upstream bug report about this.

Index: gnudatalanguage/src/plotting_xyouts.cpp
===================================================================
--- gnudatalanguage.orig/src/plotting_xyouts.cpp	2012-06-28 15:20:04.000000000 +0200
+++ gnudatalanguage/src/plotting_xyouts.cpp	2012-06-28 15:42:21.000000000 +0200
@@ -18,7 +18,6 @@
 #include "includefirst.hpp"
 #include "plotting.hpp"
 #include "math_utl.hpp"
-#include <plplot/plplotP.h>
 
 namespace lib {
 
@@ -244,28 +243,6 @@
     // !P.MULTI vs. POSITION
     handle_pmulti_position(e, actStream);
 
-    // WIDTH keyword
-    static int widthIx = e->KeywordIx( "WIDTH");
-    bool kwWidth = e->KeywordPresent(widthIx);
-    PLFLT width = 0.;
-
-    // SA: plplot uses a "reference point" that "lies along a line passing 
-    //     through the string at half the height of a capital letter"
-    //     getting character height so it can be later used to move the 
-    //     "reference point" half character height lower (tracker item no. 2982623)
-    PLFLT charheight;
-    {
-      PLFLT nullf, htmm;
-      plgchr(&nullf, &htmm); // height of a letter in millimetres
-      PLINT htpc = plP_mmpcy(htmm); // height of a letter in physical coordinates
-      PLINT nulli, p_iymin, p_iymax;
-      plP_gphy(&nulli, &nulli, &p_iymin, &p_iymax); // physical device limits in physical coordinates
-      PLFLT wy, wy0;
-      plcalc_world(0., htpc / double(p_iymax - p_iymin), &nullf, &wy, &nulli); // wy = height of a letter in world coordinates
-      plcalc_world(0., 0., &nullf, &wy0, &nulli); // wy = height of a letter in world coordinates
-      charheight = wy - wy0;
-    }
-
     if(minEl == 1)
       {
 	x=static_cast<PLFLT>((*xVal)[0]);
@@ -285,11 +262,8 @@
         // TODO: p_orient_x? p_orient_y?
 #endif
 
-        y += .5 * charheight;
-
 	out=(*strVal)[0];
 	actStream->ptex(x,y,p_orient_x, p_orient_y,alignment,out.c_str());
-        if (kwWidth) width = plstrl(out.c_str());
       }
     else
       {
@@ -327,23 +301,12 @@
 		actStream->Color((*l_color_arr)[i]);
 	    */
 	    out=(*strVal)[i];
-            y += .5 * charheight;
 	    actStream->ptex(x,y,p_orient_x, p_orient_y,alignment,out.c_str());
-            if (kwWidth) width = max(plstrl(out.c_str()), width);
 	  }
       }
     
   skip:
-    if (kwWidth)
-    {
-      // SA: we should return value of width in "normalized coordinate units"
-      //     width contains output from plstrl() expressed in millimetres
-      //     plP_mmpcx() converts it into physical coordinates
-      //     plP_gphy() gives "physical device limits in physical coordinates"
-      PLINT p_ixmin, p_ixmax, p_iymin, p_iymax;
-      plP_gphy(&p_ixmin, &p_ixmax, &p_iymin, &p_iymax);
-      e->SetKW(widthIx, new DFloatGDL(plP_mmpcx(width)/double(p_ixmax - p_ixmin)));
-    }
+    return;
   } // }}}
 
   private: void call_plplot(EnvT* e, GDLGStream* actStream) // {{{
