When attempting to build matplotlib 0.98.5.2 on Solaris 10 using GCC
4.3.3, I get an error:
ttconv/pprdrv_tt2.cpp: In member function ‘void
GlyphToType3::stack(TTStreamWriter&, int)’:
ttconv/pprdrv_tt2.cpp:107: error: ‘class TTStreamWriter’ has no member
named ‘putc’
So I tried invoking GCC with the -E flag to get the output of the
preprocessor and I see that line 107 of pprdrv_tt2.cpp gets rewritten to:
stream.putc(('{'), (&__iob[1]));
so it seems that something in GCC 4.3.3 on Solaris is defining a putchar
macro that is doing this, but not correspondingly being applied to the
pprdrv.h.
Searching the list archives, I see that back in July & August, 2008
there was a brief thread between Peter Norton and Mike Droettboom about
this and a proposal was made to rename TTStreamWriter::putchar to
TTStreamWriter:put_char. I just looked at the trunk and it looks like
this has never been done. Was there some other work-around that didn't
make it into the thread that obviated the need for the mentioned change?
I can confirm that the renaming of putchar to put_char does solve the
problem. I've attached a patch file, though it is against 0.98.5.2.
-- Dave
--- ttconv/pprdrv.h Wed Apr 29 15:04:00 2009
+++ ttconv/pprdrv.h Wed Apr 29 15:08:46 2009
@@ -40,7 +40,7 @@
virtual void write(const char*) = 0;
virtual void printf(const char* format, ...);
- virtual void putchar(int val);
+ virtual void put_char(int val);
virtual void puts(const char* a);
virtual void putline(const char* a);
};
--- ttconv/pprdrv_tt.cpp Wed Apr 29 15:06:16 2009
+++ ttconv/pprdrv_tt.cpp Wed Apr 29 15:08:46 2009
@@ -482,20 +482,20 @@
if(!in_string)
{
- stream.putchar('<');
+ stream.put_char('<');
string_len=0;
line_len++;
in_string=TRUE;
}
- stream.putchar( hexdigits[ n / 16 ] );
- stream.putchar( hexdigits[ n % 16 ] );
+ stream.put_char( hexdigits[ n / 16 ] );
+ stream.put_char( hexdigits[ n % 16 ] );
string_len++;
line_len+=2;
if(line_len > 70)
{
- stream.putchar('\n');
+ stream.put_char('\n');
line_len=0;
}
@@ -548,7 +548,7 @@
#endif
sfnts_pputBYTE(stream, 0); /* extra byte for pre-2013
compatibility */
- stream.putchar('>');
+ stream.put_char('>');
line_len++;
}
in_string=FALSE;
@@ -955,7 +955,7 @@
/* a BuildGlyph and BuildChar proceedures. */
if( font->target_type == PS_TYPE_3 )
{
- stream.putchar('\n');
+ stream.put_char('\n');
stream.putline("/BuildGlyph");
stream.putline(" {exch begin"); /* start font dictionary */
@@ -964,7 +964,7 @@
stream.putline(" true 3 1 roll get exec");
stream.putline(" end}_d");
- stream.putchar('\n');
+ stream.put_char('\n');
/* This proceedure is for compatiblity with */
/* level 1 interpreters. */
@@ -973,7 +973,7 @@
stream.putline(" 1 index /BuildGlyph get exec");
stream.putline("}_d");
- stream.putchar('\n');
+ stream.put_char('\n');
}
/* If we are generating a type 42 font, we need to check to see */
@@ -985,7 +985,7 @@
/* setup instructions and part of BuildGlyph came from. */
else if( font->target_type == PS_TYPE_42 )
{
- stream.putchar('\n');
+ stream.put_char('\n');
/* If we have no "resourcestatus" command, or FontType 42 */
/* is unknown, leave "true" on the stack. */
@@ -1066,7 +1066,7 @@
/* if the printer has no built-in TrueType */
/* rasterizer. */
stream.putline("}if");
- stream.putchar('\n');
+ stream.put_char('\n');
} /* end of if Type 42 not understood. */
stream.putline("FontName currentdict end definefont pop");
--- ttconv/pprdrv_tt2.cpp Wed Apr 29 15:10:48 2009
+++ ttconv/pprdrv_tt2.cpp Wed Apr 29 15:08:46 2009
@@ -104,7 +104,7 @@
{ /* have a log of points. */
if(stack_depth == 0)
{
- stream.putchar('{');
+ stream.put_char('{');
stack_depth=1;
}
--- ttconv/ttutil.cpp Wed Apr 29 15:04:25 2009
+++ ttconv/ttutil.cpp Wed Apr 29 15:08:46 2009
@@ -52,7 +52,7 @@
va_end(arg_list);
}
-void TTStreamWriter::putchar(int val)
+void TTStreamWriter::put_char(int val)
{
char c[2];
c[0] = (char)val;
------------------------------------------------------------------------------
Register Now & Save for Velocity, the Web Performance & Operations
Conference from O'Reilly Media. Velocity features a full day of
expert-led, hands-on workshops and two days of sessions from industry
leaders in dedicated Performance & Operations tracks. Use code vel09scf
and Save an extra 15% before 5/3. http://p.sf.net/sfu/velocityconf
_______________________________________________
Matplotlib-devel mailing list
Matplotlib-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-devel