From: <md...@us...> - 2008-04-24 13:23:48
|
Revision: 5071 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5071&view=rev Author: mdboom Date: 2008-04-24 06:23:05 -0700 (Thu, 24 Apr 2008) Log Message: ----------- Remove a bunch of compiler warnings. Modified Paths: -------------- trunk/matplotlib/CXX/WrapPython.h trunk/matplotlib/agg24/src/agg_curves.cpp trunk/matplotlib/src/_backend_agg.cpp trunk/matplotlib/src/_gtkagg.cpp trunk/matplotlib/src/_image.cpp trunk/matplotlib/src/_path.cpp trunk/matplotlib/src/_ttconv.cpp trunk/matplotlib/src/ft2font.cpp trunk/matplotlib/src/ft2font.h trunk/matplotlib/ttconv/pprdrv_tt.cpp Modified: trunk/matplotlib/CXX/WrapPython.h =================================================================== --- trunk/matplotlib/CXX/WrapPython.h 2008-04-24 12:54:25 UTC (rev 5070) +++ trunk/matplotlib/CXX/WrapPython.h 2008-04-24 13:23:05 UTC (rev 5071) @@ -38,12 +38,13 @@ #ifndef __PyCXX_wrap_python_hxx__ #define __PyCXX_wrap_python_hxx__ +// pull in python definitions +#include <Python.h> + // On some platforms we have to include time.h to get select defined #if !defined(__WIN32__) && !defined(WIN32) && !defined(_WIN32) && !defined(_WIN64) #include <sys/time.h> #endif -// pull in python definitions -#include <Python.h> #endif Modified: trunk/matplotlib/agg24/src/agg_curves.cpp =================================================================== --- trunk/matplotlib/agg24/src/agg_curves.cpp 2008-04-24 12:54:25 UTC (rev 5070) +++ trunk/matplotlib/agg24/src/agg_curves.cpp 2008-04-24 13:23:05 UTC (rev 5071) @@ -2,8 +2,8 @@ // Anti-Grain Geometry - Version 2.4 // Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com) // -// Permission to copy, use, modify, sell and distribute this software -// is granted provided this copyright notice appears in all copies. +// Permission to copy, use, modify, sell and distribute this software +// is granted provided this copyright notice appears in all copies. // This software is provided "as is" without express or implied // warranty, and with no claim as to its suitability for any purpose. // @@ -29,20 +29,20 @@ //------------------------------------------------------------------------ - void curve3_inc::approximation_scale(double s) - { + void curve3_inc::approximation_scale(double s) + { m_scale = s; } //------------------------------------------------------------------------ - double curve3_inc::approximation_scale() const - { + double curve3_inc::approximation_scale() const + { return m_scale; } //------------------------------------------------------------------------ - void curve3_inc::init(double x1, double y1, - double x2, double y2, + void curve3_inc::init(double x1, double y1, + double x2, double y2, double x3, double y3) { m_start_x = x1; @@ -55,13 +55,13 @@ double dx2 = x3 - x2; double dy2 = y3 - y2; - double len = sqrt(dx1 * dx1 + dy1 * dy1) + sqrt(dx2 * dx2 + dy2 * dy2); + double len = sqrt(dx1 * dx1 + dy1 * dy1) + sqrt(dx2 * dx2 + dy2 * dy2); m_num_steps = uround(len * 0.25 * m_scale); if(m_num_steps < 4) { - m_num_steps = 4; + m_num_steps = 4; } double subdivide_step = 1.0 / m_num_steps; @@ -72,7 +72,7 @@ m_saved_fx = m_fx = x1; m_saved_fy = m_fy = y1; - + m_saved_dfx = m_dfx = tmpx + (x2 - x1) * (2.0 * subdivide_step); m_saved_dfy = m_dfy = tmpy + (y2 - y1) * (2.0 * subdivide_step); @@ -115,10 +115,10 @@ --m_step; return path_cmd_line_to; } - m_fx += m_dfx; + m_fx += m_dfx; m_fy += m_dfy; - m_dfx += m_ddfx; - m_dfy += m_ddfy; + m_dfx += m_ddfx; + m_dfy += m_ddfy; *x = m_fx; *y = m_fy; --m_step; @@ -126,8 +126,8 @@ } //------------------------------------------------------------------------ - void curve3_div::init(double x1, double y1, - double x2, double y2, + void curve3_div::init(double x1, double y1, + double x2, double y2, double x3, double y3) { m_points.remove_all(); @@ -138,19 +138,19 @@ } //------------------------------------------------------------------------ - void curve3_div::recursive_bezier(double x1, double y1, - double x2, double y2, + void curve3_div::recursive_bezier(double x1, double y1, + double x2, double y2, double x3, double y3, unsigned level) { - if(level > curve_recursion_limit) + if(level > curve_recursion_limit) { return; } // Calculate all the mid-points of the line segments //---------------------- - double x12 = (x1 + x2) / 2; + double x12 = (x1 + x2) / 2; double y12 = (y1 + y2) / 2; double x23 = (x2 + x3) / 2; double y23 = (y2 + y3) / 2; @@ -163,7 +163,7 @@ double da; if(d > curve_collinearity_epsilon) - { + { // Regular case //----------------- if(d * d <= m_distance_tolerance_square * (dx*dx + dy*dy)) @@ -187,7 +187,7 @@ // Finally we can stop the recursion //---------------------- m_points.add(point_d(x123, y123)); - return; + return; } } } @@ -222,13 +222,13 @@ // Continue subdivision //---------------------- - recursive_bezier(x1, y1, x12, y12, x123, y123, level + 1); - recursive_bezier(x123, y123, x23, y23, x3, y3, level + 1); + recursive_bezier(x1, y1, x12, y12, x123, y123, level + 1); + recursive_bezier(x123, y123, x23, y23, x3, y3, level + 1); } //------------------------------------------------------------------------ - void curve3_div::bezier(double x1, double y1, - double x2, double y2, + void curve3_div::bezier(double x1, double y1, + double x2, double y2, double x3, double y3) { m_points.add(point_d(x1, y1)); @@ -241,23 +241,25 @@ //------------------------------------------------------------------------ - void curve4_inc::approximation_scale(double s) - { + void curve4_inc::approximation_scale(double s) + { m_scale = s; } //------------------------------------------------------------------------ - double curve4_inc::approximation_scale() const - { + double curve4_inc::approximation_scale() const + { return m_scale; } //------------------------------------------------------------------------ +#if defined(_MSC_VER) && _MSC_VER <= 1200 static double MSC60_fix_ICE(double v) { return v; } +#endif //------------------------------------------------------------------------ - void curve4_inc::init(double x1, double y1, - double x2, double y2, + void curve4_inc::init(double x1, double y1, + double x2, double y2, double x3, double y3, double x4, double y4) { @@ -273,8 +275,8 @@ double dx3 = x4 - x3; double dy3 = y4 - y3; - double len = (sqrt(dx1 * dx1 + dy1 * dy1) + - sqrt(dx2 * dx2 + dy2 * dy2) + + double len = (sqrt(dx1 * dx1 + dy1 * dy1) + + sqrt(dx2 * dx2 + dy2 * dy2) + sqrt(dx3 * dx3 + dy3 * dy3)) * 0.25 * m_scale; #if defined(_MSC_VER) && _MSC_VER <= 1200 @@ -285,7 +287,7 @@ if(m_num_steps < 4) { - m_num_steps = 4; + m_num_steps = 4; } double subdivide_step = 1.0 / m_num_steps; @@ -296,7 +298,7 @@ double pre2 = 3.0 * subdivide_step2; double pre4 = 6.0 * subdivide_step2; double pre5 = 6.0 * subdivide_step3; - + double tmp1x = x1 - x2 * 2.0 + x3; double tmp1y = y1 - y2 * 2.0 + y3; @@ -357,10 +359,10 @@ m_fx += m_dfx; m_fy += m_dfy; - m_dfx += m_ddfx; - m_dfy += m_ddfy; - m_ddfx += m_dddfx; - m_ddfy += m_dddfy; + m_dfx += m_ddfx; + m_dfy += m_ddfy; + m_ddfx += m_dddfx; + m_ddfy += m_dddfy; *x = m_fx; *y = m_fy; @@ -372,8 +374,8 @@ //------------------------------------------------------------------------ - void curve4_div::init(double x1, double y1, - double x2, double y2, + void curve4_div::init(double x1, double y1, + double x2, double y2, double x3, double y3, double x4, double y4) { @@ -385,13 +387,13 @@ } //------------------------------------------------------------------------ - void curve4_div::recursive_bezier(double x1, double y1, - double x2, double y2, - double x3, double y3, + void curve4_div::recursive_bezier(double x1, double y1, + double x2, double y2, + double x3, double y3, double x4, double y4, unsigned level) { - if(level > curve_recursion_limit) + if(level > curve_recursion_limit) { return; } @@ -542,7 +544,7 @@ } break; - case 3: + case 3: // Regular case //----------------- if((d2 + d3)*(d2 + d3) <= m_distance_tolerance_square * (dx*dx + dy*dy)) @@ -592,14 +594,14 @@ // Continue subdivision //---------------------- - recursive_bezier(x1, y1, x12, y12, x123, y123, x1234, y1234, level + 1); - recursive_bezier(x1234, y1234, x234, y234, x34, y34, x4, y4, level + 1); + recursive_bezier(x1, y1, x12, y12, x123, y123, x1234, y1234, level + 1); + recursive_bezier(x1234, y1234, x234, y234, x34, y34, x4, y4, level + 1); } //------------------------------------------------------------------------ - void curve4_div::bezier(double x1, double y1, - double x2, double y2, - double x3, double y3, + void curve4_div::bezier(double x1, double y1, + double x2, double y2, + double x3, double y3, double x4, double y4) { m_points.add(point_d(x1, y1)); Modified: trunk/matplotlib/src/_backend_agg.cpp =================================================================== --- trunk/matplotlib/src/_backend_agg.cpp 2008-04-24 12:54:25 UTC (rev 5070) +++ trunk/matplotlib/src/_backend_agg.cpp 2008-04-24 13:23:05 UTC (rev 5071) @@ -1,12 +1,22 @@ /* A rewrite of _backend_agg using PyCXX to handle ref counting, etc.. */ +#include <png.h> +// To remove a gcc warning +#ifdef _POSIX_C_SOURCE +#undef _POSIX_C_SOURCE +#endif + +#include "ft2font.h" +#include "_image.h" +#include "_backend_agg.h" +#include "mplutils.h" + #include <iostream> #include <fstream> #include <cmath> #include <cstdio> #include <stdexcept> -#include <png.h> #include <time.h> #include <algorithm> @@ -23,11 +33,6 @@ #include "agg_conv_shorten_path.h" #include "util/agg_color_conv_rgb8.h" -#include "ft2font.h" -#include "_image.h" -#include "_backend_agg.h" -#include "mplutils.h" - #include "swig_runtime.h" #include "MPL_isnan.h" @@ -295,8 +300,8 @@ SnapData SafeSnap::snap (const float& x, const float& y) { - xsnap = (int)x + 0.5; - ysnap = (int)y + 0.5; + xsnap = (int)(x + 0.5f); + ysnap = (int)(y + 0.5f); if ( first || ( (xsnap!=lastxsnap) || (ysnap!=lastysnap) ) ) { lastxsnap = xsnap; @@ -737,8 +742,8 @@ args.verify_length(4, 6); - float x = Py::Float(args[0]); - float y = Py::Float(args[1]); + double x = Py::Float(args[0]); + double y = Py::Float(args[1]); Image *image = static_cast<Image*>(args[2].ptr()); Py::Object box_obj = args[3]; Py::Object clippath; Modified: trunk/matplotlib/src/_gtkagg.cpp =================================================================== --- trunk/matplotlib/src/_gtkagg.cpp 2008-04-24 12:54:25 UTC (rev 5070) +++ trunk/matplotlib/src/_gtkagg.cpp 2008-04-24 13:23:05 UTC (rev 5071) @@ -1,3 +1,6 @@ +#include <pygobject.h> +#include <pygtk/pygtk.h> + #include <cstring> #include <cerrno> #include <cstdio> @@ -6,10 +9,6 @@ #include <utility> #include <fstream> - -#include <pygobject.h> -#include <pygtk/pygtk.h> - #include "agg_basics.h" #include "_backend_agg.h" #define PY_ARRAY_TYPES_PREFIX NumPy Modified: trunk/matplotlib/src/_image.cpp =================================================================== --- trunk/matplotlib/src/_image.cpp 2008-04-24 12:54:25 UTC (rev 5070) +++ trunk/matplotlib/src/_image.cpp 2008-04-24 13:23:05 UTC (rev 5071) @@ -1,3 +1,6 @@ +#include "Python.h" //after png.h due to setjmp bug +#include <string> + #include <iostream> #include <fstream> #include <cmath> @@ -4,9 +7,6 @@ #include <cstdio> #include <png.h> -#include "Python.h" //after png.h due to setjmp bug -#include <string> - #define PY_ARRAY_TYPES_PREFIX NumPy #include "numpy/arrayobject.h" @@ -936,10 +936,10 @@ png_byte* ptr = (rgba) ? &(row[x*4]) : &(row[x*3]); size_t offset = y*A->strides[0] + x*A->strides[1]; //if ((y<10)&&(x==10)) std::cout << "r = " << ptr[0] << " " << ptr[0]/255.0 << std::endl; - *(float*)(A->data + offset + 0*A->strides[2]) = ptr[0]/255.0; - *(float*)(A->data + offset + 1*A->strides[2]) = ptr[1]/255.0; - *(float*)(A->data + offset + 2*A->strides[2]) = ptr[2]/255.0; - *(float*)(A->data + offset + 3*A->strides[2]) = rgba ? ptr[3]/255.0 : 1.0; + *(float*)(A->data + offset + 0*A->strides[2]) = (float)(ptr[0]/255.0f); + *(float*)(A->data + offset + 1*A->strides[2]) = (float)(ptr[1]/255.0f); + *(float*)(A->data + offset + 2*A->strides[2]) = (float)(ptr[2]/255.0f); + *(float*)(A->data + offset + 3*A->strides[2]) = rgba ? (float)(ptr[3]/255.0f) : 1.0f; } } @@ -1434,7 +1434,7 @@ while(xs2 != xl && xo > xm) { xs1 = xs2; xs2 = xs1+1; - xm = 0.5*(*xs1 + *xs2); + xm = 0.5f*(*xs1 + *xs2); j++; } *colstart = j - j_last; @@ -1447,7 +1447,7 @@ while(ys2 != yl && yo > ym) { ys1 = ys2; ys2 = ys1+1; - ym = 0.5*(*ys1 + *ys2); + ym = 0.5f*(*ys1 + *ys2); j++; } *rowstart = j - j_last; Modified: trunk/matplotlib/src/_path.cpp =================================================================== --- trunk/matplotlib/src/_path.cpp 2008-04-24 12:54:25 UTC (rev 5070) +++ trunk/matplotlib/src/_path.cpp 2008-04-24 13:23:05 UTC (rev 5071) @@ -1,9 +1,9 @@ +#include "agg_py_path_iterator.h" +#include "agg_py_transforms.h" + #include <limits> #include <math.h> -#include "agg_py_path_iterator.h" -#include "agg_py_transforms.h" - #include "CXX/Extensions.hxx" #include "agg_conv_curve.h" Modified: trunk/matplotlib/src/_ttconv.cpp =================================================================== --- trunk/matplotlib/src/_ttconv.cpp 2008-04-24 12:54:25 UTC (rev 5070) +++ trunk/matplotlib/src/_ttconv.cpp 2008-04-24 13:23:05 UTC (rev 5071) @@ -83,11 +83,11 @@ int fonttype; std::vector<int> glyph_ids; - static const char *kwlist[] = { + static const char *kwlist[] = { "filename", "output", "fonttype", "glyph_ids", NULL }; if (! PyArg_ParseTupleAndKeywords - (args, kwds, - "sO&i|O&:convert_ttf_to_ps", + (args, kwds, + "sO&i|O&:convert_ttf_to_ps", (char**)kwlist, &filename, fileobject_to_PythonFileWriter, @@ -96,9 +96,9 @@ pyiterable_to_vector_int, &glyph_ids)) return NULL; - + if (fonttype != 3 && fonttype != 42) { - PyErr_SetString(PyExc_ValueError, + PyErr_SetString(PyExc_ValueError, "fonttype must be either 3 (raw Postscript) or 42 " "(embedded Truetype)"); return NULL; @@ -109,7 +109,7 @@ } catch (TTException& e) { PyErr_SetString(PyExc_RuntimeError, e.getMessage()); return NULL; - } catch (PythonExceptionOccurred& e) { + } catch (PythonExceptionOccurred& ) { return NULL; } catch (...) { PyErr_SetString(PyExc_RuntimeError, "Unknown C++ exception"); @@ -144,8 +144,8 @@ static const char *kwlist[] = { "filename", "glyph_ids", NULL }; if (! PyArg_ParseTupleAndKeywords - (args, kwds, - "s|O&:convert_ttf_to_ps", + (args, kwds, + "s|O&:convert_ttf_to_ps", (char **)kwlist, &filename, pyiterable_to_vector_int, @@ -163,7 +163,7 @@ } catch (TTException& e) { PyErr_SetString(PyExc_RuntimeError, e.getMessage()); return NULL; - } catch (PythonExceptionOccurred& e) { + } catch (PythonExceptionOccurred& ) { return NULL; } catch (...) { PyErr_SetString(PyExc_RuntimeError, "Unknown C++ exception"); @@ -174,7 +174,7 @@ } static PyMethodDef ttconv_methods[] = { - {"convert_ttf_to_ps", (PyCFunction)convert_ttf_to_ps, METH_KEYWORDS, + {"convert_ttf_to_ps", (PyCFunction)convert_ttf_to_ps, METH_KEYWORDS, "convert_ttf_to_ps(filename, output, fonttype, glyph_ids)\n" "\n" "Converts the Truetype font into a Type 3 or Type 42 Postscript font, " @@ -191,7 +191,7 @@ "then all glyphs will be included. If any of the glyphs specified are " "composite glyphs, then the component glyphs will also be included." }, - {"get_pdf_charprocs", (PyCFunction)py_get_pdf_charprocs, METH_KEYWORDS, + {"get_pdf_charprocs", (PyCFunction)py_get_pdf_charprocs, METH_KEYWORDS, "get_pdf_charprocs(filename, glyph_ids)\n" "\n" "Given a Truetype font file, returns a dictionary containing the PDF Type 3\n" @@ -211,7 +211,7 @@ #define PyMODINIT_FUNC void #endif PyMODINIT_FUNC -initttconv(void) +initttconv(void) { PyObject* m; Modified: trunk/matplotlib/src/ft2font.cpp =================================================================== --- trunk/matplotlib/src/ft2font.cpp 2008-04-24 12:54:25 UTC (rev 5070) +++ trunk/matplotlib/src/ft2font.cpp 2008-04-24 13:23:05 UTC (rev 5071) @@ -1,6 +1,6 @@ -#include <sstream> #include "ft2font.h" #include "mplutils.h" +#include <sstream> #define FIXED_MAJOR(val) (*((short *) &val+1)) #define FIXED_MINOR(val) (*((short *) &val+0)) Modified: trunk/matplotlib/src/ft2font.h =================================================================== --- trunk/matplotlib/src/ft2font.h 2008-04-24 12:54:25 UTC (rev 5070) +++ trunk/matplotlib/src/ft2font.h 2008-04-24 13:23:05 UTC (rev 5071) @@ -1,6 +1,8 @@ /* A python interface to freetype2 */ #ifndef _FT2FONT_H #define _FT2FONT_H +#include "CXX/Extensions.hxx" +#include "CXX/Objects.hxx" #include <iostream> #include <vector> #include <string> @@ -15,8 +17,6 @@ #include FT_TYPE1_TABLES_H #include FT_TRUETYPE_TABLES_H } -#include "CXX/Extensions.hxx" -#include "CXX/Objects.hxx" // the freetype string rendered into a width, height buffer Modified: trunk/matplotlib/ttconv/pprdrv_tt.cpp =================================================================== --- trunk/matplotlib/ttconv/pprdrv_tt.cpp 2008-04-24 12:54:25 UTC (rev 5070) +++ trunk/matplotlib/ttconv/pprdrv_tt.cpp 2008-04-24 13:23:05 UTC (rev 5071) @@ -16,7 +16,7 @@ ** documentation. This software is provided "as is" without express or ** implied warranty. ** -** TrueType font support. These functions allow PPR to generate +** TrueType font support. These functions allow PPR to generate ** PostScript fonts from Microsoft compatible TrueType font files. ** ** Last revised 19 December 1995. @@ -31,7 +31,7 @@ #include <sstream> /*========================================================================== -** Convert the indicated Truetype font file to a type 42 or type 3 +** Convert the indicated Truetype font file to a type 42 or type 3 ** PostScript font and insert it in the output stream. ** ** All the routines from here to the end of file file are involved @@ -42,7 +42,7 @@ ** Endian conversion routines. ** These routines take a BYTE pointer ** and return a value formed by reading -** bytes starting at that point. +** bytes starting at that point. ** ** These routines read the big-endian ** values which are used in TrueType @@ -55,14 +55,14 @@ ULONG getULONG(BYTE *p) { int x; - ULONG val=0; + ULONG val=0; for(x=0; x<4; x++) { val *= 0x100; - val += p[x]; + val += p[x]; } - + return val; } /* end of ftohULONG() */ @@ -72,14 +72,14 @@ USHORT getUSHORT(BYTE *p) { int x; - USHORT val=0; + USHORT val=0; for(x=0; x<2; x++) { val *= 0x100; - val += p[x]; + val += p[x]; } - + return val; } /* end of getUSHORT() */ @@ -92,7 +92,7 @@ Fixed val={0,0}; val.whole = ((s[0] * 256) + s[1]); - val.fraction = ((s[2] * 256) + s[3]); + val.fraction = ((s[2] * 256) + s[3]); return val; } /* end of getFixed() */ @@ -102,16 +102,16 @@ ** The font's "file" and "offset_table" fields must be set before this ** routine is called. ** -** This first argument is a TrueType font structure, the second +** This first argument is a TrueType font structure, the second ** argument is the name of the table to retrieve. A table name -** is always 4 characters, though the last characters may be +** is always 4 characters, though the last characters may be ** padding spaces. -----------------------------------------------------------------------*/ BYTE *GetTable(struct TTFONT *font, const char *name) { BYTE *ptr; ULONG x; - + #ifdef DEBUG_TRUETYPE debug("GetTable(file,font,\"%s\")",name); #endif @@ -127,20 +127,20 @@ BYTE *table; offset = getULONG( ptr + 8 ); - length = getULONG( ptr + 12 ); + length = getULONG( ptr + 12 ); table = (BYTE*)calloc( sizeof(BYTE), length ); try { #ifdef DEBUG_TRUETYPE debug("Loading table \"%s\" from offset %d, %d bytes",name,offset,length); #endif - + if( fseek( font->file, (long)offset, SEEK_SET ) ) throw TTException("TrueType font may be corrupt (reason 3)"); - + if( fread(table,sizeof(BYTE),length,font->file) != (sizeof(BYTE) * length)) throw TTException("TrueType font may be corrupt (reason 4)"); - } catch (TTException& e) { + } catch (TTException& ) { free(table); throw; } @@ -156,7 +156,7 @@ } /* end of GetTable() */ /*-------------------------------------------------------------------- -** Load the 'name' table, get information from it, +** Load the 'name' table, get information from it, ** and store that information in the font structure. ** ** The 'name' table contains information such as the name of @@ -171,7 +171,7 @@ int platform,encoding; /* Current platform id, encoding id, */ int language,nameid; /* language id, name id, */ int offset,length; /* offset and length of string. */ - + #ifdef DEBUG_TRUETYPE debug("Read_name()"); #endif @@ -188,7 +188,7 @@ try { numrecords = getUSHORT( table_ptr + 2 ); /* number of names */ strings = table_ptr + getUSHORT( table_ptr + 4 ); /* start of string storage */ - + ptr2 = table_ptr + 6; for(x=0; x < numrecords; x++,ptr2+=12) { @@ -202,7 +202,7 @@ #ifdef DEBUG_TRUETYPE debug("platform %d, encoding %d, language 0x%x, name %d, offset %d, length %d", platform,encoding,language,nameid,offset,length); -#endif +#endif /* Copyright notice */ if( platform == 1 && nameid == 0 ) @@ -211,14 +211,14 @@ strncpy(font->Copyright,(const char*)strings+offset,length); font->Copyright[length]=(char)NULL; replace_newlines_with_spaces(font->Copyright); - + #ifdef DEBUG_TRUETYPE debug("font->Copyright=\"%s\"",font->Copyright); #endif continue; } - + /* Font Family name */ if( platform == 1 && nameid == 1 ) { @@ -226,7 +226,7 @@ strncpy(font->FamilyName,(const char*)strings+offset,length); font->FamilyName[length]=(char)NULL; replace_newlines_with_spaces(font->FamilyName); - + #ifdef DEBUG_TRUETYPE debug("font->FamilyName=\"%s\"",font->FamilyName); #endif @@ -241,14 +241,14 @@ strncpy(font->Style,(const char*)strings+offset,length); font->Style[length]=(char)NULL; replace_newlines_with_spaces(font->Style); - + #ifdef DEBUG_TRUETYPE debug("font->Style=\"%s\"",font->Style); #endif continue; } - - + + /* Full Font name */ if( platform == 1 && nameid == 4 ) { @@ -256,14 +256,14 @@ strncpy(font->FullName,(const char*)strings+offset,length); font->FullName[length]=(char)NULL; replace_newlines_with_spaces(font->FullName); - + #ifdef DEBUG_TRUETYPE debug("font->FullName=\"%s\"",font->FullName); #endif continue; } - - + + /* Version string */ if( platform == 1 && nameid == 5 ) { @@ -277,8 +277,8 @@ #endif continue; } - - + + /* PostScript name */ if( platform == 1 && nameid == 6 ) { @@ -292,8 +292,8 @@ #endif continue; } - - + + /* Trademark string */ if( platform == 1 && nameid == 7 ) { @@ -301,15 +301,15 @@ strncpy(font->Trademark,(const char*)strings+offset,length); font->Trademark[length]=(char)NULL; replace_newlines_with_spaces(font->Trademark); - + #ifdef DEBUG_TRUETYPE debug("font->Trademark=\"%s\"",font->Trademark); #endif continue; } - + } - } catch (TTException& e) { + } catch (TTException& ) { free(table_ptr); throw; } @@ -443,20 +443,20 @@ /* Some information from the "post" table. */ ItalicAngle = getFixed( font->post_table + 4 ); stream.printf("/ItalicAngle %d.%d def\n",ItalicAngle.whole,ItalicAngle.fraction); - stream.printf("/isFixedPitch %s def\n", getULONG( font->post_table + 12 ) ? "true" : "false" ); + stream.printf("/isFixedPitch %s def\n", getULONG( font->post_table + 12 ) ? "true" : "false" ); stream.printf("/UnderlinePosition %d def\n", (int)getFWord( font->post_table + 8 ) ); - stream.printf("/UnderlineThickness %d def\n", (int)getFWord( font->post_table + 10 ) ); - stream.putline("end readonly def"); - } /* end of ttfont_FontInfo() */ + stream.printf("/UnderlineThickness %d def\n", (int)getFWord( font->post_table + 10 ) ); + stream.putline("end readonly def"); + } /* end of ttfont_FontInfo() */ /*------------------------------------------------------------------- ** sfnts routines -** These routines generate the PostScript "sfnts" array which +** These routines generate the PostScript "sfnts" array which ** contains one or more strings which contain a reduced version ** of the TrueType font. ** ** A number of functions are required to accomplish this rather -** complicated task. +** complicated task. -------------------------------------------------------------------*/ int string_len; int line_len; @@ -498,9 +498,9 @@ stream.putchar('\n'); line_len=0; } - + } /* end of sfnts_pputBYTE() */ - + /* ** Write a USHORT as a hexadecimal value as part of the sfnts array. */ @@ -516,7 +516,7 @@ void sfnts_pputULONG(TTStreamWriter& stream, ULONG n) { int x1,x2,x3; - + x1 = n % 256; n /= 256; x2 = n % 256; @@ -531,7 +531,7 @@ } /* end of sfnts_pputULONG() */ /* -** This is called whenever it is +** This is called whenever it is ** necessary to end a string in the sfnts array. ** ** (The array must be broken into strings which are @@ -542,7 +542,7 @@ if(in_string) { string_len=0; /* fool sfnts_pputBYTE() */ - + #ifdef DEBUG_TRUETYPE_INLINE puts("\n% dummy byte:\n"); #endif @@ -562,7 +562,7 @@ */ void sfnts_new_table(TTStreamWriter& stream, ULONG length) { - if( (string_len + length) > 65528 ) + if( (string_len + length) > 65528 ) sfnts_end_string(stream); } /* end of sfnts_new_table() */ @@ -615,7 +615,7 @@ /* Start new string if necessary. */ sfnts_new_table( stream, (int)length ); - /* + /* ** Make sure the glyph is padded out to a ** two byte boundary. */ @@ -627,16 +627,16 @@ { if( (c = fgetc(font->file)) == EOF ) throw TTException("TrueType font may be corrupt (reason 6)"); - + sfnts_pputBYTE(stream, c); total++; /* add to running total */ - } + } } free(font->loca_table); font->loca_table = NULL; - + /* Pad out to full length from table directory */ while( total < correct_total_length ) { @@ -649,7 +649,7 @@ /* ** Here is the routine which ties it all together. ** -** Create the array called "sfnts" which +** Create the array called "sfnts" which ** holds the actual TrueType data. */ void ttfont_sfnts(TTStreamWriter& stream, struct TTFONT *font) @@ -673,7 +673,7 @@ ULONG length; ULONG checksum; } tables[9]; - + BYTE *ptr; /* A pointer into the origional table directory. */ ULONG x,y; /* General use loop countes. */ int c; /* Input character. */ @@ -684,8 +684,8 @@ ptr = font->offset_table + 12; nextoffset=0; count=0; - - /* + + /* ** Find the tables we want and store there vital ** statistics in tables[]. */ @@ -697,7 +697,7 @@ if( diff > 0 ) /* If we are past it. */ { tables[x].length = 0; - diff = 0; + diff = 0; } else if( diff < 0 ) /* If we haven't hit it yet. */ { @@ -711,12 +711,12 @@ tables[x].length = getULONG( ptr + 12 ); nextoffset += ( ((tables[x].length + 3) / 4) * 4 ); count++; - ptr += 16; + ptr += 16; } } while(diff != 0); - + } /* end of for loop which passes over the table directory */ - + /* Begin the sfnts array. */ sfnts_start(stream); @@ -724,10 +724,10 @@ /* Start by copying the TrueType version number. */ ptr = font->offset_table; for(x=0; x < 4; x++) - { + { sfnts_pputBYTE( stream, *(ptr++) ); } - + /* Now, generate those silly numTables numbers. */ sfnts_pputUSHORT(stream, count); /* number of tables */ if( count == 9 ) @@ -735,11 +735,11 @@ sfnts_pputUSHORT(stream, 7); /* searchRange */ sfnts_pputUSHORT(stream, 3); /* entrySelector */ sfnts_pputUSHORT(stream, 81); /* rangeShift */ - } + } #ifdef DEBUG_TRUETYPE else { - debug("only %d tables selected",count); + debug("only %d tables selected",count); } #endif @@ -754,13 +754,13 @@ sfnts_pputBYTE( stream, table_names[x][1] ); sfnts_pputBYTE( stream, table_names[x][2] ); sfnts_pputBYTE( stream, table_names[x][3] ); - + /* Checksum */ sfnts_pputULONG( stream, tables[x].checksum ); /* Offset */ sfnts_pputULONG( stream, tables[x].newoffset + 12 + (count * 16) ); - + /* Length */ sfnts_pputULONG( stream, tables[x].length ); } @@ -770,7 +770,7 @@ { if( tables[x].length == 0 ) /* skip tables that aren't there */ continue; - + #ifdef DEBUG_TRUETYPE debug("emmiting table '%s'",table_names[x]); #endif @@ -783,22 +783,22 @@ else /* Other tables may not exceed */ { /* 65535 bytes in length. */ if( tables[x].length > 65535 ) - throw TTException("TrueType font has a table which is too long"); - + throw TTException("TrueType font has a table which is too long"); + /* Start new string if necessary. */ sfnts_new_table(stream, tables[x].length); /* Seek to proper position in the file. */ fseek( font->file, tables[x].oldoffset, SEEK_SET ); - + /* Copy the bytes of the table. */ for( y=0; y < tables[x].length; y++ ) { if( (c = fgetc(font->file)) == EOF ) throw TTException("TrueType font may be corrupt (reason 7)"); - + sfnts_pputBYTE(stream, c); - } + } } /* Padd it out to a four byte boundary. */ @@ -815,39 +815,39 @@ } /* End of loop for all tables */ /* Close the array. */ - sfnts_end_string(stream); + sfnts_end_string(stream); stream.putline("]def"); } /* end of ttfont_sfnts() */ - -/*-------------------------------------------------------------- -** Create the CharStrings dictionary which will translate -** PostScript character names to TrueType font character + +/*-------------------------------------------------------------- +** Create the CharStrings dictionary which will translate +** PostScript character names to TrueType font character ** indexes. ** ** If we are creating a type 3 instead of a type 42 font, ** this array will instead convert PostScript character names ** to executable proceedures. --------------------------------------------------------------*/ -const char *Apple_CharStrings[]={ -".notdef",".null","nonmarkingreturn","space","exclam","quotedbl","numbersign", -"dollar","percent","ampersand","quotesingle","parenleft","parenright", +const char *Apple_CharStrings[]={ +".notdef",".null","nonmarkingreturn","space","exclam","quotedbl","numbersign", +"dollar","percent","ampersand","quotesingle","parenleft","parenright", "asterisk","plus", "comma","hyphen","period","slash","zero","one","two", -"three","four","five","six","seven","eight","nine","colon","semicolon", +"three","four","five","six","seven","eight","nine","colon","semicolon", "less","equal","greater","question","at","A","B","C","D","E","F","G","H","I", "J","K", "L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z", "bracketleft","backslash","bracketright","asciicircum","underscore","grave", -"a","b","c","d","e","f","g","h","i","j","k", "l","m","n","o","p","q","r","s", +"a","b","c","d","e","f","g","h","i","j","k", "l","m","n","o","p","q","r","s", "t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde", "Adieresis","Aring","Ccedilla","Eacute","Ntilde","Odieresis","Udieresis", "aacute","agrave","acircumflex","adieresis","atilde","aring","ccedilla", -"eacute","egrave","ecircumflex","edieresis","iacute","igrave","icircumflex", +"eacute","egrave","ecircumflex","edieresis","iacute","igrave","icircumflex", "idieresis","ntilde","oacute","ograve","ocircumflex","odieresis","otilde", "uacute","ugrave","ucircumflex","udieresis","dagger","degree","cent", "sterling","section","bullet","paragraph","germandbls","registered", "copyright","trademark","acute","dieresis","notequal","AE","Oslash", "infinity","plusminus","lessequal","greaterequal","yen","mu","partialdiff", "summation","product","pi","integral","ordfeminine","ordmasculine","Omega", -"ae","oslash","questiondown","exclamdown","logicalnot","radical","florin", +"ae","oslash","questiondown","exclamdown","logicalnot","radical","florin", "approxequal","Delta","guillemotleft","guillemotright","ellipsis", "nobreakspace","Agrave","Atilde","Otilde","OE","oe","endash","emdash", "quotedblleft","quotedblright","quoteleft","quoteright","divide","lozenge", @@ -861,7 +861,7 @@ "Yacute","yacute","Thorn","thorn","minus","multiply","onesuperior", "twosuperior","threesuperior","onehalf","onequarter","threequarters","franc", "Gbreve","gbreve","Idot","Scedilla","scedilla","Cacute","cacute","Ccaron", -"ccaron","dmacron","markingspace","capslock","shift","propeller","enter", +"ccaron","dmacron","markingspace","capslock","shift","propeller","enter", "markingtabrtol","markingtabltor","control","markingdeleteltor", "markingdeletertol","option","escape","parbreakltor","parbreakrtol", "newpage","checkmark","linebreakltor","linebreakrtol","markingnobreakspace", @@ -879,7 +879,7 @@ ULONG len; GlyphIndex = (int)getUSHORT( font->post_table + 34 + (charindex * 2) ); - + if( GlyphIndex <= 257 ) /* If a standard Apple name, */ { return Apple_CharStrings[GlyphIndex]; @@ -887,7 +887,7 @@ else /* Otherwise, use one */ { /* of the pascal strings. */ GlyphIndex -= 258; - + /* Set pointer to start of Pascal strings. */ ptr = (char*)(font->post_table + 34 + (font->numGlyphs * 2)); @@ -897,7 +897,7 @@ ptr += len; len = (ULONG)*(ptr++); } - + if( len >= sizeof(temp) ) throw TTException("TrueType font file contains a very long PostScript name"); @@ -914,16 +914,16 @@ void ttfont_CharStrings(TTStreamWriter& stream, struct TTFONT *font, std::vector<int>& glyph_ids) { Fixed post_format; - + /* The 'post' table format number. */ post_format = getFixed( font->post_table ); - + if( post_format.whole != 2 || post_format.fraction != 0 ) throw TTException("TrueType fontdoes not have a format 2.0 'post' table"); /* Emmit the start of the PostScript code to define the dictionary. */ stream.printf("/CharStrings %d dict dup begin\n", glyph_ids.size()); - + /* Emmit one key-value pair for each glyph. */ for(std::vector<int>::const_iterator i = glyph_ids.begin(); i != glyph_ids.end(); ++i) @@ -935,13 +935,13 @@ else /* type 3 */ { stream.printf("/%s{",ttfont_CharStrings_getname(font, *i)); - + tt_type3_charproc(stream, font, *i); - + stream.putline("}_d"); /* "} bind def" */ } } - + stream.putline("end readonly def"); } /* end of ttfont_CharStrings() */ @@ -971,8 +971,8 @@ stream.putline("/BuildChar {"); stream.putline(" 1 index /Encoding get exch get"); stream.putline(" 1 index /BuildGlyph get exec"); - stream.putline("}_d"); - + stream.putline("}_d"); + stream.putchar('\n'); } @@ -999,7 +999,7 @@ stream.putline("{/TrueDict where{pop}{(%%[ Error: no TrueType rasterizer ]%%)= flush}ifelse"); /* Since we are expected to use Apple's TrueDict TrueType */ - /* reasterizer, change the font type to 3. */ + /* reasterizer, change the font type to 3. */ stream.putline("/FontType 3 def"); /* Define a string to hold the state of the Apple */ @@ -1035,7 +1035,7 @@ /* Exchange the CharStrings dictionary and the charname, */ /* but if the answer was false, replace the character name */ - /* with ".notdef". */ + /* with ".notdef". */ stream.putline(" {exch}{exch pop /.notdef}ifelse"); /* stack: CharStrings charname */ @@ -1060,7 +1060,7 @@ stream.putline(" /BuildChar{"); stream.putline(" 1 index /Encoding get exch get"); stream.putline(" 1 index /BuildGlyph get exec"); - stream.putline(" }bind def"); + stream.putline(" }bind def"); /* Here we close the condition which is true */ /* if the printer has no built-in TrueType */ @@ -1071,7 +1071,7 @@ stream.putline("FontName currentdict end definefont pop"); stream.putline("%%EOF"); - } /* end of ttfont_trailer() */ + } /* end of ttfont_trailer() */ /*------------------------------------------------------------------ ** This is the externally callable routine which inserts the font. @@ -1080,7 +1080,7 @@ void read_font(const char *filename, font_type_enum target_type, std::vector<int>& glyph_ids, TTFONT& font) { BYTE *ptr; - + /* Decide what type of PostScript font we will be generating. */ font.target_type = target_type; @@ -1094,24 +1094,24 @@ /* Allocate space for the unvarying part of the offset table. */ assert(font.offset_table == NULL); font.offset_table = (BYTE*)calloc( 12, sizeof(BYTE) ); - + /* Read the first part of the offset table. */ if( fread( font.offset_table, sizeof(BYTE), 12, font.file ) != 12 ) throw TTException("TrueType font may be corrupt (reason 1)"); - + /* Determine how many directory entries there are. */ font.numTables = getUSHORT( font.offset_table + 4 ); #ifdef DEBUG_TRUETYPE debug("numTables=%d",(int)font.numTables); #endif - + /* Expand the memory block to hold the whole thing. */ font.offset_table = (BYTE*)realloc( font.offset_table, sizeof(BYTE) * (12 + font.numTables * 16) ); - + /* Read the rest of the table directory. */ if( fread( font.offset_table + 12, sizeof(BYTE), (font.numTables*16), font.file ) != (font.numTables*16) ) throw TTException("TrueType font may be corrupt (reason 2)"); - + /* Extract information from the "Offset" table. */ font.TTVersion = getFixed( font.offset_table ); @@ -1133,7 +1133,7 @@ throw TTException("TrueType font is unusable because indexToLocFormat != 0"); if( getSHORT(ptr+52) != 0 ) throw TTException("TrueType font is unusable because glyphDataFormat != 0"); - } catch (TTException& e) { + } catch (TTException& ) { free(ptr); throw; } @@ -1177,7 +1177,7 @@ } /* end of insert_ttfont() */ -void insert_ttfont(const char *filename, TTStreamWriter& stream, +void insert_ttfont(const char *filename, TTStreamWriter& stream, font_type_enum target_type, std::vector<int>& glyph_ids) { struct TTFONT font; @@ -1233,9 +1233,9 @@ } TTFONT::TTFONT() : - file(NULL), + file(NULL), PostName(NULL), - FullName(NULL), + FullName(NULL), FamilyName(NULL), Style(NULL), Copyright(NULL), This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |