SourceForge logo
SourceForge logo
Menu

matplotlib-checkins — Commit notification. DO NOT POST to this list, just subscribe to it.

You can subscribe to this list here.

2007 Jan
Feb
Mar
Apr
May
Jun
Jul
(115)
Aug
(120)
Sep
(137)
Oct
(170)
Nov
(461)
Dec
(263)
2008 Jan
(120)
Feb
(74)
Mar
(35)
Apr
(74)
May
(245)
Jun
(356)
Jul
(240)
Aug
(115)
Sep
(78)
Oct
(225)
Nov
(98)
Dec
(271)
2009 Jan
(132)
Feb
(84)
Mar
(74)
Apr
(56)
May
(90)
Jun
(79)
Jul
(83)
Aug
(296)
Sep
(214)
Oct
(76)
Nov
(82)
Dec
(66)
2010 Jan
(46)
Feb
(58)
Mar
(51)
Apr
(77)
May
(58)
Jun
(126)
Jul
(128)
Aug
(64)
Sep
(50)
Oct
(44)
Nov
(48)
Dec
(54)
2011 Jan
(68)
Feb
(52)
Mar
Apr
May
Jun
Jul
Aug
Sep
Oct
Nov
Dec
(1)
2018 Jan
Feb
Mar
Apr
May
(1)
Jun
Jul
Aug
Sep
Oct
Nov
Dec
S M T W T F S



1
2
3
4
5
(2)
6
(2)
7
8
9
(3)
10
(6)
11
12
13
(9)
14
(5)
15
16
17
(2)
18
19
20
21
(2)
22
23
24
25
26
27
28
29
(18)
30
(5)
31

Showing results of 54

<< < 1 2 3 > >> (Page 2 of 3)
From: <md...@us...> - 2010年12月17日 18:27:19
Revision: 8843
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8843&view=rev
Author: mdboom
Date: 2010年12月17日 18:27:11 +0000 (2010年12月17日)
Log Message:
-----------
Merged revisions 8841-8842 via svnmerge from 
https://matplotlib.svn.sf.net/svnroot/matplotlib/branches/v1_0_maint
........
 r8841 | mdboom | 2010年12月14日 12:37:42 -0500 (2010年12月14日) | 2 lines
 
 [3137172] Fix cyclical import problem.
........
 r8842 | mdboom | 2010年12月17日 12:57:59 -0500 (2010年12月17日) | 1 line
 
 Fix Unicode encoding error saving SVGs with Unicode characters on some platforms
........
Modified Paths:
--------------
 trunk/matplotlib/lib/matplotlib/backends/backend_svg.py
 trunk/matplotlib/lib/matplotlib/tri/triplot.py
Property Changed:
----------------
 trunk/matplotlib/
 trunk/matplotlib/doc/pyplots/README
 trunk/matplotlib/doc/sphinxext/gen_gallery.py
 trunk/matplotlib/doc/sphinxext/gen_rst.py
 trunk/matplotlib/examples/misc/multiprocess.py
 trunk/matplotlib/examples/mplot3d/contour3d_demo.py
 trunk/matplotlib/examples/mplot3d/contourf3d_demo.py
 trunk/matplotlib/examples/mplot3d/polys3d_demo.py
 trunk/matplotlib/examples/mplot3d/scatter3d_demo.py
 trunk/matplotlib/examples/mplot3d/surface3d_demo.py
 trunk/matplotlib/examples/mplot3d/wire3d_demo.py
 trunk/matplotlib/lib/matplotlib/sphinxext/mathmpl.py
 trunk/matplotlib/lib/matplotlib/sphinxext/only_directives.py
 trunk/matplotlib/lib/matplotlib/sphinxext/plot_directive.py
 trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_spines/spines_axes_positions.png
Property changes on: trunk/matplotlib
___________________________________________________________________
Modified: svnmerge-integrated
 - /branches/mathtex:1-7263 /branches/v0_91_maint:1-6428 /branches/v0_98_5_maint:1-7253 /branches/v1_0_maint:1-8839 /trunk/matplotlib:1-7315
 + /branches/mathtex:1-7263 /branches/v0_91_maint:1-6428 /branches/v0_98_5_maint:1-7253 /branches/v1_0_maint:1-8842 /trunk/matplotlib:1-7315
Modified: svn:mergeinfo
 - /branches/v0_91_maint:5753-5771
/branches/v0_98_5_maint:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080,7176,7209-7211,7227,7245
/branches/v0_99_maint:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830,8835
 + /branches/v0_91_maint:5753-5771
/branches/v0_98_5_maint:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080,7176,7209-7211,7227,7245
/branches/v0_99_maint:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830,8835,8841-8842
Property changes on: trunk/matplotlib/doc/pyplots/README
___________________________________________________________________
Modified: svn:mergeinfo
 - /branches/v0_98_5_maint/doc/pyplots/README:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080,7176,7209-7211,7227,7245
/branches/v0_99_maint/doc/pyplots/README:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/doc/pyplots/README:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830,8835
 + /branches/v0_98_5_maint/doc/pyplots/README:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080,7176,7209-7211,7227,7245
/branches/v0_99_maint/doc/pyplots/README:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/doc/pyplots/README:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830,8835,8841-8842
Property changes on: trunk/matplotlib/doc/sphinxext/gen_gallery.py
___________________________________________________________________
Modified: svn:mergeinfo
 - /branches/v0_91_maint/doc/_templates/gen_gallery.py:5753-5771
/branches/v0_98_5_maint/doc/sphinxext/gen_gallery.py:6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080,7176,7209-7211,7227,7245
/branches/v0_99_maint/doc/sphinxext/gen_gallery.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/doc/sphinxext/gen_gallery.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830,8835
 + /branches/v0_91_maint/doc/_templates/gen_gallery.py:5753-5771
/branches/v0_98_5_maint/doc/sphinxext/gen_gallery.py:6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080,7176,7209-7211,7227,7245
/branches/v0_99_maint/doc/sphinxext/gen_gallery.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/doc/sphinxext/gen_gallery.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830,8835,8841-8842
Property changes on: trunk/matplotlib/doc/sphinxext/gen_rst.py
___________________________________________________________________
Modified: svn:mergeinfo
 - /branches/v0_91_maint/doc/examples/gen_rst.py:5753-5771
/branches/v0_98_5_maint/doc/sphinxext/gen_rst.py:6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080,7176,7209-7211,7227,7245
/branches/v0_99_maint/doc/sphinxext/gen_rst.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/doc/sphinxext/gen_rst.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830,8835
 + /branches/v0_91_maint/doc/examples/gen_rst.py:5753-5771
/branches/v0_98_5_maint/doc/sphinxext/gen_rst.py:6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080,7176,7209-7211,7227,7245
/branches/v0_99_maint/doc/sphinxext/gen_rst.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/doc/sphinxext/gen_rst.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830,8835,8841-8842
Property changes on: trunk/matplotlib/examples/misc/multiprocess.py
___________________________________________________________________
Modified: svn:mergeinfo
 - /branches/v0_91_maint/examples/misc/log.py:5753-5771
/branches/v0_98_5_maint/examples/misc/log.py:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080
/branches/v0_99_maint/examples/misc/multiprocess.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/examples/misc/multiprocess.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830,8835
 + /branches/v0_91_maint/examples/misc/log.py:5753-5771
/branches/v0_98_5_maint/examples/misc/log.py:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080
/branches/v0_99_maint/examples/misc/multiprocess.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/examples/misc/multiprocess.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830,8835,8841-8842
Property changes on: trunk/matplotlib/examples/mplot3d/contour3d_demo.py
___________________________________________________________________
Modified: svn:mergeinfo
 - /branches/v0_91_maint/examples/mplot3d/contour.py:5753-5771
/branches/v0_98_5_maint/examples/mplot3d/contour.py:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080
/branches/v0_99_maint/examples/mplot3d/contour3d_demo.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/examples/mplot3d/contour3d_demo.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830,8835
 + /branches/v0_91_maint/examples/mplot3d/contour.py:5753-5771
/branches/v0_98_5_maint/examples/mplot3d/contour.py:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080
/branches/v0_99_maint/examples/mplot3d/contour3d_demo.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/examples/mplot3d/contour3d_demo.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830,8835,8841-8842
Property changes on: trunk/matplotlib/examples/mplot3d/contourf3d_demo.py
___________________________________________________________________
Modified: svn:mergeinfo
 - /branches/v0_91_maint/examples/mplot3d/contourf.py:5753-5771
/branches/v0_98_5_maint/examples/mplot3d/contourf.py:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080
/branches/v0_99_maint/examples/mplot3d/contourf3d_demo.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/examples/mplot3d/contourf3d_demo.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830,8835
 + /branches/v0_91_maint/examples/mplot3d/contourf.py:5753-5771
/branches/v0_98_5_maint/examples/mplot3d/contourf.py:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080
/branches/v0_99_maint/examples/mplot3d/contourf3d_demo.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/examples/mplot3d/contourf3d_demo.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830,8835,8841-8842
Property changes on: trunk/matplotlib/examples/mplot3d/polys3d_demo.py
___________________________________________________________________
Modified: svn:mergeinfo
 - /branches/v0_91_maint/examples/mplot3d/polys.py:5753-5771
/branches/v0_98_5_maint/examples/mplot3d/polys.py:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080
/branches/v0_99_maint/examples/mplot3d/polys3d_demo.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/examples/mplot3d/polys3d_demo.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830,8835
 + /branches/v0_91_maint/examples/mplot3d/polys.py:5753-5771
/branches/v0_98_5_maint/examples/mplot3d/polys.py:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080
/branches/v0_99_maint/examples/mplot3d/polys3d_demo.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/examples/mplot3d/polys3d_demo.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830,8835,8841-8842
Property changes on: trunk/matplotlib/examples/mplot3d/scatter3d_demo.py
___________________________________________________________________
Modified: svn:mergeinfo
 - /branches/v0_91_maint/examples/mplot3d/scatter.py:5753-5771
/branches/v0_98_5_maint/examples/mplot3d/scatter.py:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080
/branches/v0_99_maint/examples/mplot3d/scatter3d_demo.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/examples/mplot3d/scatter3d_demo.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830,8835
 + /branches/v0_91_maint/examples/mplot3d/scatter.py:5753-5771
/branches/v0_98_5_maint/examples/mplot3d/scatter.py:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080
/branches/v0_99_maint/examples/mplot3d/scatter3d_demo.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/examples/mplot3d/scatter3d_demo.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830,8835,8841-8842
Property changes on: trunk/matplotlib/examples/mplot3d/surface3d_demo.py
___________________________________________________________________
Modified: svn:mergeinfo
 - /branches/v0_91_maint/examples/mplot3d/surface.py:5753-5771
/branches/v0_98_5_maint/examples/mplot3d/surface.py:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080
/branches/v0_99_maint/examples/mplot3d/surface3d_demo.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/examples/mplot3d/surface3d_demo.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830,8835
 + /branches/v0_91_maint/examples/mplot3d/surface.py:5753-5771
/branches/v0_98_5_maint/examples/mplot3d/surface.py:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080
/branches/v0_99_maint/examples/mplot3d/surface3d_demo.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/examples/mplot3d/surface3d_demo.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830,8835,8841-8842
Property changes on: trunk/matplotlib/examples/mplot3d/wire3d_demo.py
___________________________________________________________________
Modified: svn:mergeinfo
 - /branches/v0_91_maint/examples/mplot3d/wire.py:5753-5771
/branches/v0_98_5_maint/examples/mplot3d/wire.py:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080
/branches/v0_99_maint/examples/mplot3d/wire3d_demo.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/examples/mplot3d/wire3d_demo.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830,8835
 + /branches/v0_91_maint/examples/mplot3d/wire.py:5753-5771
/branches/v0_98_5_maint/examples/mplot3d/wire.py:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080
/branches/v0_99_maint/examples/mplot3d/wire3d_demo.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/examples/mplot3d/wire3d_demo.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830,8835,8841-8842
Modified: trunk/matplotlib/lib/matplotlib/backends/backend_svg.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/backends/backend_svg.py	2010年12月17日 17:57:59 UTC (rev 8842)
+++ trunk/matplotlib/lib/matplotlib/backends/backend_svg.py	2010年12月17日 18:27:11 UTC (rev 8843)
@@ -860,7 +860,7 @@
 if is_string_like(filename):
 fh_to_close = svgwriter = codecs.open(filename, 'w', 'utf-8')
 elif is_writable_file_like(filename):
- svgwriter = codecs.EncodedFile(filename, 'utf-8')
+ svgwriter = codecs.getwriter('utf-8')(filename)
 fh_to_close = None
 else:
 raise ValueError("filename must be a path or a file-like object")
@@ -869,10 +869,10 @@
 def print_svgz(self, filename, *args, **kwargs):
 if is_string_like(filename):
 gzipwriter = gzip.GzipFile(filename, 'w')
- fh_to_close = svgwriter = codecs.EncodedFile(gzipwriter, 'utf-8')
+ fh_to_close = svgwriter = codecs.getwriter('utf-8')(gzipwriter)
 elif is_writable_file_like(filename):
 fh_to_close = gzipwriter = gzip.GzipFile(fileobj=filename, mode='w')
- svgwriter = codecs.EncodedFile(gzipwriter, 'utf-8')
+ svgwriter = codecs.getwriter('utf-8')(gzipwriter)
 else:
 raise ValueError("filename must be a path or a file-like object")
 return self._print_svg(filename, svgwriter, fh_to_close)
Property changes on: trunk/matplotlib/lib/matplotlib/sphinxext/mathmpl.py
___________________________________________________________________
Modified: svn:mergeinfo
 - /branches/v0_91_maint/doc/sphinxext/mathmpl.py:5753-5771
/branches/v0_98_5_maint/lib/matplotlib/sphinxext/mathmpl.py:6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080,7176,7209-7211,7227,7245
/branches/v0_99_maint/lib/matplotlib/sphinxext/mathmpl.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/lib/matplotlib/sphinxext/mathmpl.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830,8835
 + /branches/v0_91_maint/doc/sphinxext/mathmpl.py:5753-5771
/branches/v0_98_5_maint/lib/matplotlib/sphinxext/mathmpl.py:6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080,7176,7209-7211,7227,7245
/branches/v0_99_maint/lib/matplotlib/sphinxext/mathmpl.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/lib/matplotlib/sphinxext/mathmpl.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830,8835,8841-8842
Property changes on: trunk/matplotlib/lib/matplotlib/sphinxext/only_directives.py
___________________________________________________________________
Modified: svn:mergeinfo
 - /branches/v0_91_maint/doc/sphinxext/only_directives.py:5753-5771
/branches/v0_98_5_maint/lib/matplotlib/sphinxext/only_directives.py:6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080,7176,7209-7211,7227,7245
/branches/v0_99_maint/lib/matplotlib/sphinxext/only_directives.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/lib/matplotlib/sphinxext/only_directives.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830,8835
 + /branches/v0_91_maint/doc/sphinxext/only_directives.py:5753-5771
/branches/v0_98_5_maint/lib/matplotlib/sphinxext/only_directives.py:6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080,7176,7209-7211,7227,7245
/branches/v0_99_maint/lib/matplotlib/sphinxext/only_directives.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/lib/matplotlib/sphinxext/only_directives.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830,8835,8841-8842
Property changes on: trunk/matplotlib/lib/matplotlib/sphinxext/plot_directive.py
___________________________________________________________________
Modified: svn:mergeinfo
 - /branches/v0_91_maint/doc/sphinxext/plot_directive.py:5753-5771
/branches/v0_98_5_maint/lib/matplotlib/sphinxext/plot_directive.py:6920-6925,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080,7176,7209-7211,7227,7245
/branches/v0_99_maint/lib/matplotlib/sphinxext/plot_directive.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/lib/matplotlib/sphinxext/plot_directive.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830,8835
 + /branches/v0_91_maint/doc/sphinxext/plot_directive.py:5753-5771
/branches/v0_98_5_maint/lib/matplotlib/sphinxext/plot_directive.py:6920-6925,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080,7176,7209-7211,7227,7245
/branches/v0_99_maint/lib/matplotlib/sphinxext/plot_directive.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/lib/matplotlib/sphinxext/plot_directive.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830,8835,8841-8842
Property changes on: trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_spines/spines_axes_positions.png
___________________________________________________________________
Modified: svn:mergeinfo
 - /branches/v0_99_maint/lib/matplotlib/tests/baseline_images/test_spines/spines_axes_positions.png:7323-7337,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/lib/matplotlib/tests/baseline_images/test_spines/spines_axes_positions.png:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830,8835
 + /branches/v0_99_maint/lib/matplotlib/tests/baseline_images/test_spines/spines_axes_positions.png:7323-7337,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/lib/matplotlib/tests/baseline_images/test_spines/spines_axes_positions.png:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830,8835,8841-8842
Modified: trunk/matplotlib/lib/matplotlib/tri/triplot.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/tri/triplot.py	2010年12月17日 17:57:59 UTC (rev 8842)
+++ trunk/matplotlib/lib/matplotlib/tri/triplot.py	2010年12月17日 18:27:11 UTC (rev 8843)
@@ -1,4 +1,3 @@
-import matplotlib.axes
 from matplotlib.cbook import ls_mapper
 from matplotlib.patches import PathPatch
 from matplotlib.path import Path
@@ -39,6 +38,8 @@
 
 .. plot:: mpl_examples/pylab_examples/triplot_demo.py
 """
+ import matplotlib.axes
+
 tri, args, kwargs = Triangulation.get_from_args_and_kwargs(*args, **kwargs)
 
 x = tri.x
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 8842
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8842&view=rev
Author: mdboom
Date: 2010年12月17日 17:57:59 +0000 (2010年12月17日)
Log Message:
-----------
Fix Unicode encoding error saving SVGs with Unicode characters on some platforms
Modified Paths:
--------------
 branches/v1_0_maint/lib/matplotlib/backends/backend_svg.py
Modified: branches/v1_0_maint/lib/matplotlib/backends/backend_svg.py
===================================================================
--- branches/v1_0_maint/lib/matplotlib/backends/backend_svg.py	2010年12月14日 17:37:42 UTC (rev 8841)
+++ branches/v1_0_maint/lib/matplotlib/backends/backend_svg.py	2010年12月17日 17:57:59 UTC (rev 8842)
@@ -860,7 +860,7 @@
 if is_string_like(filename):
 fh_to_close = svgwriter = codecs.open(filename, 'w', 'utf-8')
 elif is_writable_file_like(filename):
- svgwriter = codecs.EncodedFile(filename, 'utf-8')
+ svgwriter = codecs.getwriter('utf-8')(filename)
 fh_to_close = None
 else:
 raise ValueError("filename must be a path or a file-like object")
@@ -869,10 +869,10 @@
 def print_svgz(self, filename, *args, **kwargs):
 if is_string_like(filename):
 gzipwriter = gzip.GzipFile(filename, 'w')
- fh_to_close = svgwriter = codecs.EncodedFile(gzipwriter, 'utf-8')
+ fh_to_close = svgwriter = codecs.getwriter('utf-8')(gzipwriter)
 elif is_writable_file_like(filename):
 fh_to_close = gzipwriter = gzip.GzipFile(fileobj=filename, mode='w')
- svgwriter = codecs.EncodedFile(gzipwriter, 'utf-8')
+ svgwriter = codecs.getwriter('utf-8')(gzipwriter)
 else:
 raise ValueError("filename must be a path or a file-like object")
 return self._print_svg(filename, svgwriter, fh_to_close)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 8841
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8841&view=rev
Author: mdboom
Date: 2010年12月14日 17:37:42 +0000 (2010年12月14日)
Log Message:
-----------
[3137172] Fix cyclical import problem.
Modified Paths:
--------------
 branches/v1_0_maint/lib/matplotlib/tri/triplot.py
Modified: branches/v1_0_maint/lib/matplotlib/tri/triplot.py
===================================================================
--- branches/v1_0_maint/lib/matplotlib/tri/triplot.py	2010年12月14日 17:31:11 UTC (rev 8840)
+++ branches/v1_0_maint/lib/matplotlib/tri/triplot.py	2010年12月14日 17:37:42 UTC (rev 8841)
@@ -1,4 +1,3 @@
-import matplotlib.axes
 from matplotlib.cbook import ls_mapper
 from matplotlib.patches import PathPatch
 from matplotlib.path import Path
@@ -39,6 +38,8 @@
 
 .. plot:: mpl_examples/pylab_examples/triplot_demo.py
 """
+ import matplotlib.axes
+
 tri, args, kwargs = Triangulation.get_from_args_and_kwargs(*args, **kwargs)
 
 x = tri.x
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
From: <md...@us...> - 2010年12月14日 17:31:17
Revision: 8840
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8840&view=rev
Author: mdboom
Date: 2010年12月14日 17:31:11 +0000 (2010年12月14日)
Log Message:
-----------
Merged revisions 8839 via svnmerge from 
https://matplotlib.svn.sf.net/svnroot/matplotlib/branches/v1_0_maint
........
 r8839 | mdboom | 2010年12月14日 12:30:12 -0500 (2010年12月14日) | 2 lines
 
 Fix memory leak in text layout handling.
........
Modified Paths:
--------------
 trunk/matplotlib/lib/matplotlib/text.py
Property Changed:
----------------
 trunk/matplotlib/
Property changes on: trunk/matplotlib
___________________________________________________________________
Modified: svnmerge-integrated
 - /branches/mathtex:1-7263 /branches/v0_91_maint:1-6428 /branches/v0_98_5_maint:1-7253 /branches/v1_0_maint:1-8837 /trunk/matplotlib:1-7315
 + /branches/mathtex:1-7263 /branches/v0_91_maint:1-6428 /branches/v0_98_5_maint:1-7253 /branches/v1_0_maint:1-8839 /trunk/matplotlib:1-7315
Modified: trunk/matplotlib/lib/matplotlib/text.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/text.py	2010年12月14日 17:30:12 UTC (rev 8839)
+++ trunk/matplotlib/lib/matplotlib/text.py	2010年12月14日 17:31:11 UTC (rev 8840)
@@ -143,6 +143,9 @@
 Handle storing and drawing of text in window or data coordinates.
 """
 zorder = 3
+
+ cached = maxdict(50)
+
 def __str__(self):
 return "Text(%g,%g,%s)"%(self._y,self._y,repr(self._text))
 
@@ -168,7 +171,6 @@
 """
 
 Artist.__init__(self)
- self.cached = maxdict(5)
 self._x, self._y = x, y
 
 if color is None: color = rcParams['text.color']
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
From: <md...@us...> - 2010年12月14日 17:30:19
Revision: 8839
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8839&view=rev
Author: mdboom
Date: 2010年12月14日 17:30:12 +0000 (2010年12月14日)
Log Message:
-----------
Fix memory leak in text layout handling.
Modified Paths:
--------------
 branches/v1_0_maint/lib/matplotlib/text.py
Modified: branches/v1_0_maint/lib/matplotlib/text.py
===================================================================
--- branches/v1_0_maint/lib/matplotlib/text.py	2010年12月14日 15:56:25 UTC (rev 8838)
+++ branches/v1_0_maint/lib/matplotlib/text.py	2010年12月14日 17:30:12 UTC (rev 8839)
@@ -143,6 +143,9 @@
 Handle storing and drawing of text in window or data coordinates.
 """
 zorder = 3
+
+ cached = maxdict(50)
+
 def __str__(self):
 return "Text(%g,%g,%s)"%(self._y,self._y,repr(self._text))
 
@@ -168,7 +171,6 @@
 """
 
 Artist.__init__(self)
- self.cached = maxdict(5)
 self._x, self._y = x, y
 
 if color is None: color = rcParams['text.color']
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
From: <md...@us...> - 2010年12月14日 15:56:31
Revision: 8838
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8838&view=rev
Author: mdboom
Date: 2010年12月14日 15:56:25 +0000 (2010年12月14日)
Log Message:
-----------
Merged revisions 8837 via svnmerge from 
https://matplotlib.svn.sf.net/svnroot/matplotlib/branches/v1_0_maint
........
 r8837 | mdboom | 2010年12月14日 10:54:03 -0500 (2010年12月14日) | 2 lines
 
 NonUniformImage only supports nearest and bilinear interpolation, so if the user passes something else, an exception should be raised.
........
Modified Paths:
--------------
 trunk/matplotlib/lib/matplotlib/image.py
Property Changed:
----------------
 trunk/matplotlib/
Property changes on: trunk/matplotlib
___________________________________________________________________
Modified: svnmerge-integrated
 - /trunk/matplotlib:1-7315 /branches/mathtex:1-7263 /branches/v0_98_5_maint:1-7253 /branches/v0_91_maint:1-6428 /branches/v1_0_maint:1-8830,8835
 + /branches/mathtex:1-7263 /branches/v0_91_maint:1-6428 /branches/v0_98_5_maint:1-7253 /branches/v1_0_maint:1-8837 /trunk/matplotlib:1-7315
Modified: trunk/matplotlib/lib/matplotlib/image.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/image.py	2010年12月14日 15:54:03 UTC (rev 8837)
+++ trunk/matplotlib/lib/matplotlib/image.py	2010年12月14日 15:56:25 UTC (rev 8838)
@@ -659,7 +659,7 @@
 interp = kwargs.pop('interpolation', 'nearest')
 AxesImage.__init__(self, ax,
 **kwargs)
- AxesImage.set_interpolation(self, interp)
+ self.set_interpolation(interp)
 
 def _check_unsampled_image(self, renderer):
 """
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
From: <md...@us...> - 2010年12月14日 15:54:09
Revision: 8837
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8837&view=rev
Author: mdboom
Date: 2010年12月14日 15:54:03 +0000 (2010年12月14日)
Log Message:
-----------
NonUniformImage only supports nearest and bilinear interpolation, so if the user passes something else, an exception should be raised.
Modified Paths:
--------------
 branches/v1_0_maint/lib/matplotlib/image.py
Modified: branches/v1_0_maint/lib/matplotlib/image.py
===================================================================
--- branches/v1_0_maint/lib/matplotlib/image.py	2010年12月13日 21:17:52 UTC (rev 8836)
+++ branches/v1_0_maint/lib/matplotlib/image.py	2010年12月14日 15:54:03 UTC (rev 8837)
@@ -659,7 +659,7 @@
 interp = kwargs.pop('interpolation', 'nearest')
 AxesImage.__init__(self, ax,
 **kwargs)
- AxesImage.set_interpolation(self, interp)
+ self.set_interpolation(interp)
 
 def _check_unsampled_image(self, renderer):
 """
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
From: <wea...@us...> - 2010年12月13日 21:18:00
Revision: 8836
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8836&view=rev
Author: weathergod
Date: 2010年12月13日 21:17:52 +0000 (2010年12月13日)
Log Message:
-----------
Merged revisions 8835 via svnmerge from 
https://matplotlib.svn.sourceforge.net/svnroot/matplotlib/branches/v1_0_maint
........
 r8835 | weathergod | 2010年12月13日 15:14:11 -0600 (2010年12月13日) | 2 lines
 
 Fixed typo in mplot3d tutorial
........
Modified Paths:
--------------
 trunk/matplotlib/doc/mpl_toolkits/mplot3d/tutorial.rst
Property Changed:
----------------
 trunk/matplotlib/
 trunk/matplotlib/doc/pyplots/README
 trunk/matplotlib/doc/sphinxext/gen_gallery.py
 trunk/matplotlib/doc/sphinxext/gen_rst.py
 trunk/matplotlib/examples/misc/multiprocess.py
 trunk/matplotlib/examples/mplot3d/contour3d_demo.py
 trunk/matplotlib/examples/mplot3d/contourf3d_demo.py
 trunk/matplotlib/examples/mplot3d/polys3d_demo.py
 trunk/matplotlib/examples/mplot3d/scatter3d_demo.py
 trunk/matplotlib/examples/mplot3d/surface3d_demo.py
 trunk/matplotlib/examples/mplot3d/wire3d_demo.py
 trunk/matplotlib/lib/matplotlib/sphinxext/mathmpl.py
 trunk/matplotlib/lib/matplotlib/sphinxext/only_directives.py
 trunk/matplotlib/lib/matplotlib/sphinxext/plot_directive.py
 trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_spines/spines_axes_positions.png
Property changes on: trunk/matplotlib
___________________________________________________________________
Modified: svnmerge-integrated
 - /trunk/matplotlib:1-7315 /branches/mathtex:1-7263 /branches/v0_91_maint:1-6428 /branches/v0_98_5_maint:1-7253 /branches/v1_0_maint:1-8830
 + /trunk/matplotlib:1-7315 /branches/mathtex:1-7263 /branches/v0_98_5_maint:1-7253 /branches/v0_91_maint:1-6428 /branches/v1_0_maint:1-8830,8835
Modified: svn:mergeinfo
 - /branches/v0_91_maint:5753-5771
/branches/v0_98_5_maint:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080,7176,7209-7211,7227,7245
/branches/v0_99_maint:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830
 + /branches/v0_91_maint:5753-5771
/branches/v0_98_5_maint:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080,7176,7209-7211,7227,7245
/branches/v0_99_maint:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830,8835
Modified: trunk/matplotlib/doc/mpl_toolkits/mplot3d/tutorial.rst
===================================================================
--- trunk/matplotlib/doc/mpl_toolkits/mplot3d/tutorial.rst	2010年12月13日 21:14:11 UTC (rev 8835)
+++ trunk/matplotlib/doc/mpl_toolkits/mplot3d/tutorial.rst	2010年12月13日 21:17:52 UTC (rev 8836)
@@ -14,7 +14,7 @@
 
 import matplotlib.pyplot as plt
 from mpl_toolkits.mplot3d import Axes3D
- fig = pyplt.figure()
+ fig = plt.figure()
 ax = fig.add_subplot(111, projection='3d')
 
 Line plots
Property changes on: trunk/matplotlib/doc/pyplots/README
___________________________________________________________________
Modified: svn:mergeinfo
 - /branches/v0_98_5_maint/doc/pyplots/README:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080,7176,7209-7211,7227,7245
/branches/v0_99_maint/doc/pyplots/README:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/doc/pyplots/README:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830
 + /branches/v0_98_5_maint/doc/pyplots/README:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080,7176,7209-7211,7227,7245
/branches/v0_99_maint/doc/pyplots/README:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/doc/pyplots/README:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830,8835
Property changes on: trunk/matplotlib/doc/sphinxext/gen_gallery.py
___________________________________________________________________
Modified: svn:mergeinfo
 - /branches/v0_91_maint/doc/_templates/gen_gallery.py:5753-5771
/branches/v0_98_5_maint/doc/sphinxext/gen_gallery.py:6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080,7176,7209-7211,7227,7245
/branches/v0_99_maint/doc/sphinxext/gen_gallery.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/doc/sphinxext/gen_gallery.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830
 + /branches/v0_91_maint/doc/_templates/gen_gallery.py:5753-5771
/branches/v0_98_5_maint/doc/sphinxext/gen_gallery.py:6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080,7176,7209-7211,7227,7245
/branches/v0_99_maint/doc/sphinxext/gen_gallery.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/doc/sphinxext/gen_gallery.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830,8835
Property changes on: trunk/matplotlib/doc/sphinxext/gen_rst.py
___________________________________________________________________
Modified: svn:mergeinfo
 - /branches/v0_91_maint/doc/examples/gen_rst.py:5753-5771
/branches/v0_98_5_maint/doc/sphinxext/gen_rst.py:6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080,7176,7209-7211,7227,7245
/branches/v0_99_maint/doc/sphinxext/gen_rst.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/doc/sphinxext/gen_rst.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830
 + /branches/v0_91_maint/doc/examples/gen_rst.py:5753-5771
/branches/v0_98_5_maint/doc/sphinxext/gen_rst.py:6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080,7176,7209-7211,7227,7245
/branches/v0_99_maint/doc/sphinxext/gen_rst.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/doc/sphinxext/gen_rst.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830,8835
Property changes on: trunk/matplotlib/examples/misc/multiprocess.py
___________________________________________________________________
Modified: svn:mergeinfo
 - /branches/v0_91_maint/examples/misc/log.py:5753-5771
/branches/v0_98_5_maint/examples/misc/log.py:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080
/branches/v0_99_maint/examples/misc/multiprocess.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/examples/misc/multiprocess.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830
 + /branches/v0_91_maint/examples/misc/log.py:5753-5771
/branches/v0_98_5_maint/examples/misc/log.py:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080
/branches/v0_99_maint/examples/misc/multiprocess.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/examples/misc/multiprocess.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830,8835
Property changes on: trunk/matplotlib/examples/mplot3d/contour3d_demo.py
___________________________________________________________________
Modified: svn:mergeinfo
 - /branches/v0_91_maint/examples/mplot3d/contour.py:5753-5771
/branches/v0_98_5_maint/examples/mplot3d/contour.py:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080
/branches/v0_99_maint/examples/mplot3d/contour3d_demo.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/examples/mplot3d/contour3d_demo.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830
 + /branches/v0_91_maint/examples/mplot3d/contour.py:5753-5771
/branches/v0_98_5_maint/examples/mplot3d/contour.py:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080
/branches/v0_99_maint/examples/mplot3d/contour3d_demo.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/examples/mplot3d/contour3d_demo.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830,8835
Property changes on: trunk/matplotlib/examples/mplot3d/contourf3d_demo.py
___________________________________________________________________
Modified: svn:mergeinfo
 - /branches/v0_91_maint/examples/mplot3d/contourf.py:5753-5771
/branches/v0_98_5_maint/examples/mplot3d/contourf.py:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080
/branches/v0_99_maint/examples/mplot3d/contourf3d_demo.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/examples/mplot3d/contourf3d_demo.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830
 + /branches/v0_91_maint/examples/mplot3d/contourf.py:5753-5771
/branches/v0_98_5_maint/examples/mplot3d/contourf.py:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080
/branches/v0_99_maint/examples/mplot3d/contourf3d_demo.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/examples/mplot3d/contourf3d_demo.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830,8835
Property changes on: trunk/matplotlib/examples/mplot3d/polys3d_demo.py
___________________________________________________________________
Modified: svn:mergeinfo
 - /branches/v0_91_maint/examples/mplot3d/polys.py:5753-5771
/branches/v0_98_5_maint/examples/mplot3d/polys.py:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080
/branches/v0_99_maint/examples/mplot3d/polys3d_demo.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/examples/mplot3d/polys3d_demo.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830
 + /branches/v0_91_maint/examples/mplot3d/polys.py:5753-5771
/branches/v0_98_5_maint/examples/mplot3d/polys.py:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080
/branches/v0_99_maint/examples/mplot3d/polys3d_demo.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/examples/mplot3d/polys3d_demo.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830,8835
Property changes on: trunk/matplotlib/examples/mplot3d/scatter3d_demo.py
___________________________________________________________________
Modified: svn:mergeinfo
 - /branches/v0_91_maint/examples/mplot3d/scatter.py:5753-5771
/branches/v0_98_5_maint/examples/mplot3d/scatter.py:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080
/branches/v0_99_maint/examples/mplot3d/scatter3d_demo.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/examples/mplot3d/scatter3d_demo.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830
 + /branches/v0_91_maint/examples/mplot3d/scatter.py:5753-5771
/branches/v0_98_5_maint/examples/mplot3d/scatter.py:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080
/branches/v0_99_maint/examples/mplot3d/scatter3d_demo.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/examples/mplot3d/scatter3d_demo.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830,8835
Property changes on: trunk/matplotlib/examples/mplot3d/surface3d_demo.py
___________________________________________________________________
Modified: svn:mergeinfo
 - /branches/v0_91_maint/examples/mplot3d/surface.py:5753-5771
/branches/v0_98_5_maint/examples/mplot3d/surface.py:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080
/branches/v0_99_maint/examples/mplot3d/surface3d_demo.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/examples/mplot3d/surface3d_demo.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830
 + /branches/v0_91_maint/examples/mplot3d/surface.py:5753-5771
/branches/v0_98_5_maint/examples/mplot3d/surface.py:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080
/branches/v0_99_maint/examples/mplot3d/surface3d_demo.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/examples/mplot3d/surface3d_demo.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830,8835
Property changes on: trunk/matplotlib/examples/mplot3d/wire3d_demo.py
___________________________________________________________________
Modified: svn:mergeinfo
 - /branches/v0_91_maint/examples/mplot3d/wire.py:5753-5771
/branches/v0_98_5_maint/examples/mplot3d/wire.py:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080
/branches/v0_99_maint/examples/mplot3d/wire3d_demo.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/examples/mplot3d/wire3d_demo.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830
 + /branches/v0_91_maint/examples/mplot3d/wire.py:5753-5771
/branches/v0_98_5_maint/examples/mplot3d/wire.py:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080
/branches/v0_99_maint/examples/mplot3d/wire3d_demo.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/examples/mplot3d/wire3d_demo.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830,8835
Property changes on: trunk/matplotlib/lib/matplotlib/sphinxext/mathmpl.py
___________________________________________________________________
Modified: svn:mergeinfo
 - /branches/v0_91_maint/doc/sphinxext/mathmpl.py:5753-5771
/branches/v0_98_5_maint/lib/matplotlib/sphinxext/mathmpl.py:6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080,7176,7209-7211,7227,7245
/branches/v0_99_maint/lib/matplotlib/sphinxext/mathmpl.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/lib/matplotlib/sphinxext/mathmpl.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830
 + /branches/v0_91_maint/doc/sphinxext/mathmpl.py:5753-5771
/branches/v0_98_5_maint/lib/matplotlib/sphinxext/mathmpl.py:6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080,7176,7209-7211,7227,7245
/branches/v0_99_maint/lib/matplotlib/sphinxext/mathmpl.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/lib/matplotlib/sphinxext/mathmpl.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830,8835
Property changes on: trunk/matplotlib/lib/matplotlib/sphinxext/only_directives.py
___________________________________________________________________
Modified: svn:mergeinfo
 - /branches/v0_91_maint/doc/sphinxext/only_directives.py:5753-5771
/branches/v0_98_5_maint/lib/matplotlib/sphinxext/only_directives.py:6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080,7176,7209-7211,7227,7245
/branches/v0_99_maint/lib/matplotlib/sphinxext/only_directives.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/lib/matplotlib/sphinxext/only_directives.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830
 + /branches/v0_91_maint/doc/sphinxext/only_directives.py:5753-5771
/branches/v0_98_5_maint/lib/matplotlib/sphinxext/only_directives.py:6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080,7176,7209-7211,7227,7245
/branches/v0_99_maint/lib/matplotlib/sphinxext/only_directives.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/lib/matplotlib/sphinxext/only_directives.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830,8835
Property changes on: trunk/matplotlib/lib/matplotlib/sphinxext/plot_directive.py
___________________________________________________________________
Modified: svn:mergeinfo
 - /branches/v0_91_maint/doc/sphinxext/plot_directive.py:5753-5771
/branches/v0_98_5_maint/lib/matplotlib/sphinxext/plot_directive.py:6920-6925,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080,7176,7209-7211,7227,7245
/branches/v0_99_maint/lib/matplotlib/sphinxext/plot_directive.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/lib/matplotlib/sphinxext/plot_directive.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830
 + /branches/v0_91_maint/doc/sphinxext/plot_directive.py:5753-5771
/branches/v0_98_5_maint/lib/matplotlib/sphinxext/plot_directive.py:6920-6925,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080,7176,7209-7211,7227,7245
/branches/v0_99_maint/lib/matplotlib/sphinxext/plot_directive.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/lib/matplotlib/sphinxext/plot_directive.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830,8835
Property changes on: trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_spines/spines_axes_positions.png
___________________________________________________________________
Modified: svn:mergeinfo
 - /branches/v0_99_maint/lib/matplotlib/tests/baseline_images/test_spines/spines_axes_positions.png:7323-7337,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/lib/matplotlib/tests/baseline_images/test_spines/spines_axes_positions.png:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830
 + /branches/v0_99_maint/lib/matplotlib/tests/baseline_images/test_spines/spines_axes_positions.png:7323-7337,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/lib/matplotlib/tests/baseline_images/test_spines/spines_axes_positions.png:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830,8835
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 8835
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8835&view=rev
Author: weathergod
Date: 2010年12月13日 21:14:11 +0000 (2010年12月13日)
Log Message:
-----------
Fixed typo in mplot3d tutorial
Modified Paths:
--------------
 branches/v1_0_maint/doc/mpl_toolkits/mplot3d/tutorial.rst
Modified: branches/v1_0_maint/doc/mpl_toolkits/mplot3d/tutorial.rst
===================================================================
--- branches/v1_0_maint/doc/mpl_toolkits/mplot3d/tutorial.rst	2010年12月13日 16:13:35 UTC (rev 8834)
+++ branches/v1_0_maint/doc/mpl_toolkits/mplot3d/tutorial.rst	2010年12月13日 21:14:11 UTC (rev 8835)
@@ -14,7 +14,7 @@
 
 import matplotlib.pyplot as plt
 from mpl_toolkits.mplot3d import Axes3D
- fig = pyplt.figure()
+ fig = plt.figure()
 ax = fig.add_subplot(111, projection='3d')
 
 Line plots
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
From: <fer...@us...> - 2010年12月13日 16:13:41
Revision: 8834
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8834&view=rev
Author: fer_perez
Date: 2010年12月13日 16:13:35 +0000 (2010年12月13日)
Log Message:
-----------
Fix typo
Modified Paths:
--------------
 trunk/sampledoc_tut/extensions.rst
Modified: trunk/sampledoc_tut/extensions.rst
===================================================================
--- trunk/sampledoc_tut/extensions.rst	2010年12月13日 15:55:06 UTC (rev 8833)
+++ trunk/sampledoc_tut/extensions.rst	2010年12月13日 16:13:35 UTC (rev 8834)
@@ -1,5 +1,4 @@
 .. _extensions:
-<
 
 ****************************************************
 Sphinx extensions for embedded plots, math and more
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
From: <jd...@us...> - 2010年12月13日 15:55:12
Revision: 8833
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8833&view=rev
Author: jdh2358
Date: 2010年12月13日 15:55:06 +0000 (2010年12月13日)
Log Message:
-----------
fix path name
Modified Paths:
--------------
 trunk/sampledoc_tut/ipython_directive.rst
Modified: trunk/sampledoc_tut/ipython_directive.rst
===================================================================
--- trunk/sampledoc_tut/ipython_directive.rst	2010年12月13日 15:52:37 UTC (rev 8832)
+++ trunk/sampledoc_tut/ipython_directive.rst	2010年12月13日 15:55:06 UTC (rev 8833)
@@ -199,7 +199,7 @@
 mpl/examples/event_handling/ mpl/examples/widgets
 
 In [14]: cd mpl/examples/widgets/
- /home/msierig/mpl/examples/widgets
+ /home/jdhunter/mpl/examples/widgets
 
 In [15]: !wc *
 2 12 77 README.txt
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
From: <jd...@us...> - 2010年12月13日 15:52:44
Revision: 8832
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8832&view=rev
Author: jdh2358
Date: 2010年12月13日 15:52:37 +0000 (2010年12月13日)
Log Message:
-----------
fix broken link on homepage
Modified Paths:
--------------
 trunk/sampledoc_tut/_templates/layout.html
 trunk/sampledoc_tut/extensions.rst
 trunk/sampledoc_tut/getting_started.rst
 trunk/sampledoc_tut/ipython_directive.rst
Modified: trunk/sampledoc_tut/_templates/layout.html
===================================================================
--- trunk/sampledoc_tut/_templates/layout.html	2010年12月13日 15:51:13 UTC (rev 8831)
+++ trunk/sampledoc_tut/_templates/layout.html	2010年12月13日 15:52:37 UTC (rev 8832)
@@ -4,7 +4,6 @@
 {% block rootrellink %}
 <li><a href="{{ pathto('index') }}">home</a>|&nbsp;</li>
 <li><a href="{{ pathto('search') }}">search</a>|&nbsp;</li>
- <li><a href="{{ pathto('contents') }}">documentation </a> &raquo;</li>
 {% endblock %}
 
 
Modified: trunk/sampledoc_tut/extensions.rst
===================================================================
--- trunk/sampledoc_tut/extensions.rst	2010年12月13日 15:51:13 UTC (rev 8831)
+++ trunk/sampledoc_tut/extensions.rst	2010年12月13日 15:52:37 UTC (rev 8832)
@@ -1,6 +1,6 @@
 .. _extensions:
+<
 
-
 ****************************************************
 Sphinx extensions for embedded plots, math and more
 ****************************************************
@@ -19,9 +19,8 @@
 home:~/tmp/sampledoc> mkdir sphinxext
 home:~/tmp/sampledoc> cp ../sampledoc_tut/sphinxext/*.py sphinxext/
 home:~/tmp/sampledoc> ls sphinxext/
- apigen.py inheritance_diagram.py
- docscrape.py ipython_console_highlighting.py
- docscrape_sphinx.py numpydoc.py
+ apigen.py docscrape_sphinx.py ipython_console_highlighting.py
+ docscrape.py inheritance_diagram.py numpydoc.py
 
 In addition to the builtin matplotlib extensions for embedding pyplot
 plots and rendering math with matplotlib's native math engine, we also
@@ -41,16 +40,17 @@
 # Add any Sphinx extension module names here, as strings. They can
 # be extensions coming with Sphinx (named 'sphinx.ext.*') or your
 # custom ones.
- extensions = ['matplotlib.sphinxext.mathmpl',
+ extensions = [
+ 'matplotlib.sphinxext.mathmpl',
 'matplotlib.sphinxext.only_directives',
 'matplotlib.sphinxext.plot_directive',
+ 'matplotlib.sphinxext.ipython_directive',
 'sphinx.ext.autodoc',
 'sphinx.ext.doctest',
 'ipython_console_highlighting',
 'inheritance_diagram',
 'numpydoc']
 
-
 Now let's look at some of these in action. You can see the literal
 source for this file at :ref:`extensions-literal`.
 
Modified: trunk/sampledoc_tut/getting_started.rst
===================================================================
--- trunk/sampledoc_tut/getting_started.rst	2010年12月13日 15:51:13 UTC (rev 8831)
+++ trunk/sampledoc_tut/getting_started.rst	2010年12月13日 15:52:37 UTC (rev 8832)
@@ -1,113 +1,113 @@
-.. _getting_started:
-
-
-***************
-Getting started
-***************
-
-.. _installing-docdir:
-
-Installing your doc directory
-=============================
-
-You may already have sphinx `sphinx <http://sphinx.pocoo.org/>`_
-installed -- you can check by doing::
-
- python -c 'import sphinx'
-
-If that fails grab the latest version of and install it with::
-
- > sudo easy_install sphinx
-
-Now you are ready to build a template for your docs, using
-sphinx-quickstart::
-
- > sphinx-quickstart
-
-accepting most of the defaults. I choose "sampledoc" as the name of my
-project. cd into your new directory and check the contents::
-
- home:~/tmp/sampledoc> ls
- Makefile	_static		conf.py
- _build		_templates	index.rst
-
-The index.rst is the master ReST for your project, but before adding
-anything, let's see if we can build some html::
-
- make html
-
-If you now point your browser to :file:`_build/html/index.html`, you
-should see a basic sphinx site.
-
-.. image:: _static/basic_screenshot.png
-
-.. _fetching-the-data:
-
-Fetching the data
------------------
-
-Now we will start to customize out docs. Grab a couple of files from
-the `web site
-<http://matplotlib.svn.sourceforge.net/viewvc/matplotlib/trunk/sampledoc_tut/>`_
-or svn. You will need :file:`getting_started.rst` and
-:file:`_static/basic_screenshot.png`. All of the files live in the
-"completed" version of this tutorial, but since this is a tutorial,
-we'll just grab them one at a time, so you can learn what needs to be
-changed where. Since we have more files to come, I'm going to grab
-the whole svn directory and just copy the files I need over for now.
-First, I'll cd up back into the directory containing my project, check
-out the "finished" product from svn, and then copy in just the files I
-need into my :file:`sampledoc` directory::
-
- home:~/tmp/sampledoc> pwd
- /Users/jdhunter/tmp/sampledoc
- home:~/tmp/sampledoc> cd ..
- home:~/tmp> svn co https://matplotlib.svn.sourceforge.net/svnroot/\
- matplotlib/trunk/sampledoc_tut
- A sampledoc_tut/cheatsheet.rst
- A sampledoc_tut/_static
- A sampledoc_tut/_static/basic_screenshot.png
- A sampledoc_tut/conf.py
- A sampledoc_tut/Makefile
- A sampledoc_tut/_templates
- A sampledoc_tut/_build
- A sampledoc_tut/getting_started.rst
- A sampledoc_tut/index.rst
- Checked out revision 7449.
- home:~/tmp> cp sampledoc_tut/getting_started.rst sampledoc/
- home:~/tmp> cp sampledoc_tut/_static/basic_screenshot.png \
- sampledoc/_static/
-
-The last step is to modify :file:`index.rst` to include the
-:file:`getting_started.rst` file (be careful with the indentation, the
-"g" in "getting_started" should line up with the ':' in ``:maxdepth``::
-
- Contents:
-
- .. toctree::
- :maxdepth: 2
-
- getting_started.rst
-
-and then rebuild the docs::
-
- cd sampledoc
- make html
-
-
-When you reload the page by refreshing your browser pointing to
-:file:`_build/html/index.html`, you should see a link to the
-"Getting Started" docs, and in there this page with the screenshot.
-`Voila!`
-
-Note we used the image directive to include to the screenshot above
-with::
-
- .. image:: _static/basic_screenshot.png
-
-
-Next we'll customize the look and feel of our site to give it a logo,
-some custom css, and update the navigation panels to look more like
-the `sphinx <http://sphinx.pocoo.org/>`_ site itself -- see
-:ref:`custom_look`.
-
+.. _getting_started:
+
+
+***************
+Getting started
+***************
+
+.. _installing-docdir:
+
+Installing your doc directory
+=============================
+
+You may already have sphinx `sphinx <http://sphinx.pocoo.org/>`_
+installed -- you can check by doing::
+
+ python -c 'import sphinx'
+
+If that fails grab the latest version of and install it with::
+
+ > sudo easy_install -U Sphinx
+
+Now you are ready to build a template for your docs, using
+sphinx-quickstart::
+
+ > sphinx-quickstart
+
+accepting most of the defaults. I choose "sampledoc" as the name of my
+project. cd into your new directory and check the contents::
+
+ home:~/tmp/sampledoc> ls
+ Makefile	_static		conf.py
+ _build		_templates	index.rst
+
+The index.rst is the master ReST for your project, but before adding
+anything, let's see if we can build some html::
+
+ make html
+
+If you now point your browser to :file:`_build/html/index.html`, you
+should see a basic sphinx site.
+
+.. image:: _static/basic_screenshot.png
+
+.. _fetching-the-data:
+
+Fetching the data
+-----------------
+
+Now we will start to customize out docs. Grab a couple of files from
+the `web site
+<http://matplotlib.svn.sourceforge.net/viewvc/matplotlib/trunk/sampledoc_tut/>`_
+or svn. You will need :file:`getting_started.rst` and
+:file:`_static/basic_screenshot.png`. All of the files live in the
+"completed" version of this tutorial, but since this is a tutorial,
+we'll just grab them one at a time, so you can learn what needs to be
+changed where. Since we have more files to come, I'm going to grab
+the whole svn directory and just copy the files I need over for now.
+First, I'll cd up back into the directory containing my project, check
+out the "finished" product from svn, and then copy in just the files I
+need into my :file:`sampledoc` directory::
+
+ home:~/tmp/sampledoc> pwd
+ /Users/jdhunter/tmp/sampledoc
+ home:~/tmp/sampledoc> cd ..
+ home:~/tmp> svn co https://matplotlib.svn.sourceforge.net/svnroot/\
+ matplotlib/trunk/sampledoc_tut
+ A sampledoc_tut/cheatsheet.rst
+ A sampledoc_tut/_static
+ A sampledoc_tut/_static/basic_screenshot.png
+ A sampledoc_tut/conf.py
+ A sampledoc_tut/Makefile
+ A sampledoc_tut/_templates
+ A sampledoc_tut/_build
+ A sampledoc_tut/getting_started.rst
+ A sampledoc_tut/index.rst
+ Checked out revision 7449.
+ home:~/tmp> cp sampledoc_tut/getting_started.rst sampledoc/
+ home:~/tmp> cp sampledoc_tut/_static/basic_screenshot.png \
+ sampledoc/_static/
+
+The last step is to modify :file:`index.rst` to include the
+:file:`getting_started.rst` file (be careful with the indentation, the
+"g" in "getting_started" should line up with the ':' in ``:maxdepth``::
+
+ Contents:
+
+ .. toctree::
+ :maxdepth: 2
+
+ getting_started.rst
+
+and then rebuild the docs::
+
+ cd sampledoc
+ make html
+
+
+When you reload the page by refreshing your browser pointing to
+:file:`_build/html/index.html`, you should see a link to the
+"Getting Started" docs, and in there this page with the screenshot.
+`Voila!`
+
+Note we used the image directive to include to the screenshot above
+with::
+
+ .. image:: _static/basic_screenshot.png
+
+
+Next we'll customize the look and feel of our site to give it a logo,
+some custom css, and update the navigation panels to look more like
+the `sphinx <http://sphinx.pocoo.org/>`_ site itself -- see
+:ref:`custom_look`.
+
Modified: trunk/sampledoc_tut/ipython_directive.rst
===================================================================
--- trunk/sampledoc_tut/ipython_directive.rst	2010年12月13日 15:51:13 UTC (rev 8831)
+++ trunk/sampledoc_tut/ipython_directive.rst	2010年12月13日 15:52:37 UTC (rev 8832)
@@ -9,8 +9,17 @@
 extracts the input and output lines. These prompts will be renumbered
 starting at ``1``. The inputs will be fed to an embedded ipython
 interpreter and the outputs from that interpreter will be inserted as
-well.
+well. For example, code blocks like the following::
 
+ .. ipython::
+
+ In [136]: x = 2
+
+ In [137]: x**3
+ Out[137]: 8
+
+will be rendered as
+
 .. ipython::
 
 In [136]: x = 2
@@ -18,6 +27,16 @@
 In [137]: x**3
 Out[137]: 8
 
+.. note::
+ 
+ This tutorial should be read side-by-side with the Sphinc source
+ for this document (see :ref:`ipython_literal`) because otherwise
+ you will see only the rendered output and not the code that
+ generated it. Excepting the example above, we will not in general
+ be showing the liuteral rest in this document that generates the
+ rendered output.
+ 
+
 The state from previous sessions is stored, and standard error is
 trapped. At doc build time, ipython's output and std err will be
 inserted, and prompts will be renumbered. So the prompt below should
@@ -261,4 +280,10 @@
 match. Also, can be applied to the entire ``..ipython`` block as a
 directive option with ``:doctest:``.
 
-That's all folks!
+.. _ipython_literal:
+
+Sphinx source for this tutorial
+====================================
+
+.. literalinclude:: ipython_directive.rst
+
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
From: <jd...@us...> - 2010年12月13日 15:51:22
Revision: 8831
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8831&view=rev
Author: jdh2358
Date: 2010年12月13日 15:51:13 +0000 (2010年12月13日)
Log Message:
-----------
Merged revisions 8830 via svnmerge from 
https://matplotlib.svn.sourceforge.net/svnroot/matplotlib/branches/v1_0_maint
........
 r8830 | jdh2358 | 2010年12月13日 07:27:48 -0800 (2010年12月13日) | 1 line
 
 added ipython directive
........
Added Paths:
-----------
 trunk/matplotlib/lib/matplotlib/sphinxext/ipython_directive.py
Property Changed:
----------------
 trunk/matplotlib/
 trunk/matplotlib/doc/pyplots/README
 trunk/matplotlib/doc/sphinxext/gen_gallery.py
 trunk/matplotlib/doc/sphinxext/gen_rst.py
 trunk/matplotlib/examples/misc/multiprocess.py
 trunk/matplotlib/examples/mplot3d/contour3d_demo.py
 trunk/matplotlib/examples/mplot3d/contourf3d_demo.py
 trunk/matplotlib/examples/mplot3d/polys3d_demo.py
 trunk/matplotlib/examples/mplot3d/scatter3d_demo.py
 trunk/matplotlib/examples/mplot3d/surface3d_demo.py
 trunk/matplotlib/examples/mplot3d/wire3d_demo.py
 trunk/matplotlib/lib/matplotlib/sphinxext/mathmpl.py
 trunk/matplotlib/lib/matplotlib/sphinxext/only_directives.py
 trunk/matplotlib/lib/matplotlib/sphinxext/plot_directive.py
 trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_spines/spines_axes_positions.png
Property changes on: trunk/matplotlib
___________________________________________________________________
Modified: svnmerge-integrated
 - /branches/mathtex:1-7263 /branches/v0_91_maint:1-6428 /branches/v0_98_5_maint:1-7253 /branches/v1_0_maint:1-8826 /trunk/matplotlib:1-7315
 + /trunk/matplotlib:1-7315 /branches/mathtex:1-7263 /branches/v0_91_maint:1-6428 /branches/v0_98_5_maint:1-7253 /branches/v1_0_maint:1-8830
Modified: svn:mergeinfo
 - /branches/v0_91_maint:5753-5771
/branches/v0_98_5_maint:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080,7176,7209-7211,7227,7245
/branches/v0_99_maint:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815
 + /branches/v0_91_maint:5753-5771
/branches/v0_98_5_maint:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080,7176,7209-7211,7227,7245
/branches/v0_99_maint:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830
Property changes on: trunk/matplotlib/doc/pyplots/README
___________________________________________________________________
Modified: svn:mergeinfo
 - /branches/v0_98_5_maint/doc/pyplots/README:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080,7176,7209-7211,7227,7245
/branches/v0_99_maint/doc/pyplots/README:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/doc/pyplots/README:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815
 + /branches/v0_98_5_maint/doc/pyplots/README:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080,7176,7209-7211,7227,7245
/branches/v0_99_maint/doc/pyplots/README:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/doc/pyplots/README:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830
Property changes on: trunk/matplotlib/doc/sphinxext/gen_gallery.py
___________________________________________________________________
Modified: svn:mergeinfo
 - /branches/v0_91_maint/doc/_templates/gen_gallery.py:5753-5771
/branches/v0_98_5_maint/doc/sphinxext/gen_gallery.py:6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080,7176,7209-7211,7227,7245
/branches/v0_99_maint/doc/sphinxext/gen_gallery.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/doc/sphinxext/gen_gallery.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815
 + /branches/v0_91_maint/doc/_templates/gen_gallery.py:5753-5771
/branches/v0_98_5_maint/doc/sphinxext/gen_gallery.py:6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080,7176,7209-7211,7227,7245
/branches/v0_99_maint/doc/sphinxext/gen_gallery.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/doc/sphinxext/gen_gallery.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830
Property changes on: trunk/matplotlib/doc/sphinxext/gen_rst.py
___________________________________________________________________
Modified: svn:mergeinfo
 - /branches/v0_91_maint/doc/examples/gen_rst.py:5753-5771
/branches/v0_98_5_maint/doc/sphinxext/gen_rst.py:6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080,7176,7209-7211,7227,7245
/branches/v0_99_maint/doc/sphinxext/gen_rst.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/doc/sphinxext/gen_rst.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815
 + /branches/v0_91_maint/doc/examples/gen_rst.py:5753-5771
/branches/v0_98_5_maint/doc/sphinxext/gen_rst.py:6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080,7176,7209-7211,7227,7245
/branches/v0_99_maint/doc/sphinxext/gen_rst.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/doc/sphinxext/gen_rst.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830
Property changes on: trunk/matplotlib/examples/misc/multiprocess.py
___________________________________________________________________
Modified: svn:mergeinfo
 - /branches/v0_91_maint/examples/misc/log.py:5753-5771
/branches/v0_98_5_maint/examples/misc/log.py:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080
/branches/v0_99_maint/examples/misc/multiprocess.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/examples/misc/multiprocess.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815
 + /branches/v0_91_maint/examples/misc/log.py:5753-5771
/branches/v0_98_5_maint/examples/misc/log.py:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080
/branches/v0_99_maint/examples/misc/multiprocess.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/examples/misc/multiprocess.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830
Property changes on: trunk/matplotlib/examples/mplot3d/contour3d_demo.py
___________________________________________________________________
Modified: svn:mergeinfo
 - /branches/v0_91_maint/examples/mplot3d/contour.py:5753-5771
/branches/v0_98_5_maint/examples/mplot3d/contour.py:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080
/branches/v0_99_maint/examples/mplot3d/contour3d_demo.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/examples/mplot3d/contour3d_demo.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815
 + /branches/v0_91_maint/examples/mplot3d/contour.py:5753-5771
/branches/v0_98_5_maint/examples/mplot3d/contour.py:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080
/branches/v0_99_maint/examples/mplot3d/contour3d_demo.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/examples/mplot3d/contour3d_demo.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830
Property changes on: trunk/matplotlib/examples/mplot3d/contourf3d_demo.py
___________________________________________________________________
Modified: svn:mergeinfo
 - /branches/v0_91_maint/examples/mplot3d/contourf.py:5753-5771
/branches/v0_98_5_maint/examples/mplot3d/contourf.py:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080
/branches/v0_99_maint/examples/mplot3d/contourf3d_demo.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/examples/mplot3d/contourf3d_demo.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815
 + /branches/v0_91_maint/examples/mplot3d/contourf.py:5753-5771
/branches/v0_98_5_maint/examples/mplot3d/contourf.py:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080
/branches/v0_99_maint/examples/mplot3d/contourf3d_demo.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/examples/mplot3d/contourf3d_demo.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830
Property changes on: trunk/matplotlib/examples/mplot3d/polys3d_demo.py
___________________________________________________________________
Modified: svn:mergeinfo
 - /branches/v0_91_maint/examples/mplot3d/polys.py:5753-5771
/branches/v0_98_5_maint/examples/mplot3d/polys.py:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080
/branches/v0_99_maint/examples/mplot3d/polys3d_demo.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/examples/mplot3d/polys3d_demo.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815
 + /branches/v0_91_maint/examples/mplot3d/polys.py:5753-5771
/branches/v0_98_5_maint/examples/mplot3d/polys.py:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080
/branches/v0_99_maint/examples/mplot3d/polys3d_demo.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/examples/mplot3d/polys3d_demo.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830
Property changes on: trunk/matplotlib/examples/mplot3d/scatter3d_demo.py
___________________________________________________________________
Modified: svn:mergeinfo
 - /branches/v0_91_maint/examples/mplot3d/scatter.py:5753-5771
/branches/v0_98_5_maint/examples/mplot3d/scatter.py:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080
/branches/v0_99_maint/examples/mplot3d/scatter3d_demo.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/examples/mplot3d/scatter3d_demo.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815
 + /branches/v0_91_maint/examples/mplot3d/scatter.py:5753-5771
/branches/v0_98_5_maint/examples/mplot3d/scatter.py:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080
/branches/v0_99_maint/examples/mplot3d/scatter3d_demo.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/examples/mplot3d/scatter3d_demo.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830
Property changes on: trunk/matplotlib/examples/mplot3d/surface3d_demo.py
___________________________________________________________________
Modified: svn:mergeinfo
 - /branches/v0_91_maint/examples/mplot3d/surface.py:5753-5771
/branches/v0_98_5_maint/examples/mplot3d/surface.py:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080
/branches/v0_99_maint/examples/mplot3d/surface3d_demo.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/examples/mplot3d/surface3d_demo.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815
 + /branches/v0_91_maint/examples/mplot3d/surface.py:5753-5771
/branches/v0_98_5_maint/examples/mplot3d/surface.py:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080
/branches/v0_99_maint/examples/mplot3d/surface3d_demo.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/examples/mplot3d/surface3d_demo.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830
Property changes on: trunk/matplotlib/examples/mplot3d/wire3d_demo.py
___________________________________________________________________
Modified: svn:mergeinfo
 - /branches/v0_91_maint/examples/mplot3d/wire.py:5753-5771
/branches/v0_98_5_maint/examples/mplot3d/wire.py:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080
/branches/v0_99_maint/examples/mplot3d/wire3d_demo.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/examples/mplot3d/wire3d_demo.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815
 + /branches/v0_91_maint/examples/mplot3d/wire.py:5753-5771
/branches/v0_98_5_maint/examples/mplot3d/wire.py:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080
/branches/v0_99_maint/examples/mplot3d/wire3d_demo.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/examples/mplot3d/wire3d_demo.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830
Copied: trunk/matplotlib/lib/matplotlib/sphinxext/ipython_directive.py (from rev 8830, branches/v1_0_maint/lib/matplotlib/sphinxext/ipython_directive.py)
===================================================================
--- trunk/matplotlib/lib/matplotlib/sphinxext/ipython_directive.py	 (rev 0)
+++ trunk/matplotlib/lib/matplotlib/sphinxext/ipython_directive.py	2010年12月13日 15:51:13 UTC (rev 8831)
@@ -0,0 +1,567 @@
+import sys, os, shutil, imp, warnings, cStringIO, re
+
+import IPython
+from IPython.Shell import MatplotlibShell
+
+try:
+ from hashlib import md5
+except ImportError:
+ from md5 import md5
+
+from docutils.parsers.rst import directives
+import sphinx
+
+
+sphinx_version = sphinx.__version__.split(".")
+# The split is necessary for sphinx beta versions where the string is
+# '6b1'
+sphinx_version = tuple([int(re.split('[a-z]', x)[0])
+ for x in sphinx_version[:2]])
+
+
+
+COMMENT, INPUT, OUTPUT = range(3)
+rgxin = re.compile('In \[(\d+)\]:\s?(.*)\s*')
+rgxout = re.compile('Out\[(\d+)\]:\s?(.*)\s*')
+fmtin = 'In [%d]:'
+fmtout = 'Out[%d]:'
+
+def block_parser(part):
+ """
+ part is a string of ipython text, comprised of at most one
+ input, one ouput, comments, and blank lines. The block parser
+ parses the text into a list of::
+
+ blocks = [ (TOKEN0, data0), (TOKEN1, data1), ...]
+ where TOKEN is one of [COMMENT | INPUT | OUTPUT ] and
+ data is, depending on the type of token::
+
+ COMMENT : the comment string
+
+ INPUT: the (DECORATOR, INPUT_LINE, REST) where
+ DECORATOR: the input decorator (or None)
+ INPUT_LINE: the input as string (possibly multi-line)
+ REST : any stdout generated by the input line (not OUTPUT)
+
+
+ OUTPUT: the output string, possibly multi-line
+
+ """
+
+ block = []
+ lines = part.split('\n')
+ #print 'PARSE', lines
+ N = len(lines)
+ i = 0
+ decorator = None
+ while 1:
+
+ if i==N:
+ # nothing left to parse -- the last line
+ break
+
+ line = lines[i]
+ i += 1
+ line_stripped = line.strip()
+ if line_stripped.startswith('#'):
+ block.append((COMMENT, line))
+ continue
+
+
+ if line_stripped.startswith('@'):
+ # we're assuming at most one decorator -- may need to
+ # rethink
+ decorator = line_stripped
+ continue
+
+ # does this look like an input line?
+ matchin = rgxin.match(line)
+ if matchin:
+ lineno, inputline = int(matchin.group(1)), matchin.group(2)
+
+ # the ....: continuation string
+ continuation = ' %s:'%''.join(['.']*(len(str(lineno))+2))
+ Nc = len(continuation)
+ # input lines can continue on for more than one line, if
+ # we have a '\' line continuation char or a function call
+ # echo line 'print'. The input line can only be
+ # terminated by the end of the block or an output line, so
+ # we parse out the rest of the input line if it is
+ # multiline as well as any echo text
+
+ rest = []
+ while i<N:
+
+ # look ahead; if the next line is blank, or a comment, or
+ # an output line, we're done
+
+ nextline = lines[i]
+ matchout = rgxout.match(nextline)
+ #print "nextline=%s, continuation=%s, starts=%s"%(nextline, continuation, nextline.startswith(continuation))
+ if matchout or nextline.startswith('#'):
+ break
+ elif nextline.startswith(continuation):
+ inputline += '\n' + nextline[Nc:]
+ else:
+ rest.append(nextline)
+ i+= 1
+
+ block.append((INPUT, (decorator, inputline, '\n'.join(rest))))
+ continue
+
+ # if it looks like an output line grab all the text to the end
+ # of the block
+ matchout = rgxout.match(line)
+ if matchout:
+ lineno, output = int(matchout.group(1)), matchout.group(2)
+ if i<N-1:
+ output = '\n'.join([output] + lines[i:])
+
+ #print 'OUTPUT', output
+ block.append((OUTPUT, output))
+ break
+
+ #print 'returning block', block
+ return block
+
+
+
+import matplotlib
+matplotlib.use('Agg')
+
+
+class EmbeddedSphinxShell:
+
+ def __init__(self):
+
+ self.cout = cStringIO.StringIO()
+
+ IPython.Shell.Term.cout = self.cout
+ IPython.Shell.Term.cerr = self.cout
+ argv = ['-autocall', '0']
+ self.user_ns = {}
+ self.user_glocal_ns = {}
+
+ self.IP = IPython.ipmaker.make_IPython(
+ argv, self.user_ns, self.user_glocal_ns, embedded=True,
+ #shell_class=IPython.Shell.InteractiveShell,
+ shell_class=MatplotlibShell,
+ rc_override=dict(colors = 'NoColor'))
+
+ self.input = ''
+ self.output = ''
+
+ self.is_verbatim = False
+ self.is_doctest = False
+ self.is_suppress = False
+
+ # on the first call to the savefig decorator, we'll import
+ # pyplot as plt so we can make a call to the plt.gcf().savefig
+ self._pyplot_imported = False
+
+ # we need bookmark the current dir first so we can save
+ # relative to it
+ self.process_input('bookmark ipy_basedir')
+ self.cout.seek(0)
+ self.cout.truncate(0)
+
+ def process_input(self, line):
+ 'process the input, capturing stdout'
+ #print "input='%s'"%self.input
+ stdout = sys.stdout
+ sys.stdout = self.cout
+ #self.IP.resetbuffer()
+ self.IP.push(self.IP.prefilter(line, 0))
+ #self.IP.runlines(line)
+ sys.stdout = stdout
+
+
+ def process_block(self, block):
+ """
+ process block from the block_parser and return a list of processed lines
+ """
+
+ #print 'BLOCK', block
+ ret = []
+
+ output = None
+ input_lines = None
+
+ m = rgxin.match(str(self.IP.outputcache.prompt1).strip())
+ lineno = int(m.group(1))
+
+ input_prompt = fmtin%lineno
+ output_prompt = fmtout%lineno
+ image_file = None
+ image_directive = None
+ for token, data in block:
+
+ if token==COMMENT:
+ if not self.is_suppress:
+ ret.append(data)
+
+ elif token==INPUT:
+
+ decorator, input, rest = data
+ #print 'INPUT:', data
+ is_verbatim = decorator=='@verbatim' or self.is_verbatim
+ is_doctest = decorator=='@doctest' or self.is_doctest
+ is_suppress = decorator=='@suppress' or self.is_suppress
+ is_savefig = decorator is not None and decorator.startswith('@savefig')
+ #print 'is_verbatim=%s, is_doctest=%s, is_suppress=%s, is_savefig=%s'%(is_verbatim, is_doctest, is_suppress, is_savefig)
+ input_lines = input.split('\n')
+
+
+ continuation = ' %s:'%''.join(['.']*(len(str(lineno))+2))
+ Nc = len(continuation)
+
+ if is_savefig:
+ saveargs = decorator.split(' ')
+ filename = saveargs[1]
+ outfile = os.path.join('_static/%s'%filename)
+ # build out an image directive like
+ # .. image:: somefile.png
+ # :width 4in
+ #
+ # from an input like
+ # savefig somefile.png width=4in
+ imagerows = ['.. image:: %s'%outfile]
+
+ for kwarg in saveargs[2:]:
+ arg, val = kwarg.split('=')
+ arg = arg.strip()
+ val = val.strip()
+ imagerows.append(' :%s: %s'%(arg, val))
+
+
+ image_file = outfile
+ image_directive = '\n'.join(imagerows)
+
+
+
+ # TODO: can we get "rest" from ipython
+ #self.process_input('\n'.join(input_lines))
+
+
+ is_semicolon = False
+ for i, line in enumerate(input_lines):
+ if line.endswith(';'):
+ is_semicolon = True
+
+ if i==0:
+ # process the first input line
+ if is_verbatim:
+ self.process_input('')
+ else:
+ # only submit the line in non-verbatim mode
+ self.process_input(line)
+ formatted_line = '%s %s'%(input_prompt, line)
+ else:
+ # process a continuation line
+ if not is_verbatim:
+ self.process_input(line)
+
+ formatted_line = '%s %s'%(continuation, line)
+
+
+ if not is_suppress:
+ ret.append(formatted_line)
+
+ if not is_suppress:
+ if len(rest.strip()):
+ if is_verbatim:
+ # the "rest" is the standard output of the
+ # input, which needs to be added in
+ # verbatim mode
+ ret.append("%s"%rest)
+ ret.append('')
+
+ self.cout.seek(0)
+ output = self.cout.read()
+ if not is_suppress and not is_semicolon and not is_verbatim:
+ ret.append(output)
+
+ self.cout.truncate(0)
+
+
+
+
+ elif token==OUTPUT:
+ #print 'token==OUTPUT is_verbatim=%s'%is_verbatim
+ if is_verbatim:
+ # construct a mock output prompt
+ output = '%s %s\n'%(fmtout%lineno, data)
+ ret.append(output)
+
+ #print 'token==OUTPUT', output
+ if is_doctest:
+ submitted = data.strip()
+ found = output
+ if found is not None:
+ ind = found.find(output_prompt)
+ if ind<0:
+ raise RuntimeError('output prompt="%s" does not match out line=%s'%(output_prompt, found))
+ found = found[len(output_prompt):].strip()
+
+ if found!=submitted:
+ raise RuntimeError('doctest failure for input_lines="%s" with found_output="%s" and submitted output="%s"'%(input_lines, found, submitted))
+ #print 'doctest PASSED for input_lines="%s" with found_output="%s" and submitted output="%s"'%(input_lines, found, submitted)
+
+
+ if image_file is not None:
+ self.insure_pyplot()
+ command = 'plt.gcf().savefig("%s")'%image_file
+ #print 'SAVEFIG', command
+ self.process_input('bookmark ipy_thisdir')
+ self.process_input('cd -b ipy_basedir')
+ self.process_input(command)
+ self.process_input('cd -b ipy_thisdir')
+ self.cout.seek(0)
+ self.cout.truncate(0)
+
+ #print 'returning', ret, figure
+ return ret, image_directive
+
+
+ def insure_pyplot(self):
+ if self._pyplot_imported:
+ return
+ self.process_input('import matplotlib.pyplot as plt')
+
+
+
+shell = EmbeddedSphinxShell()
+
+
+def ipython_directive(name, arguments, options, content, lineno,
+ content_offset, block_text, state, state_machine,
+ ):
+
+ debug = ipython_directive.DEBUG
+ shell.is_suppress = options.has_key('suppress')
+ shell.is_doctest = options.has_key('doctest')
+ shell.is_verbatim = options.has_key('verbatim')
+
+ #print 'ipy', shell.is_suppress, options
+ parts = '\n'.join(content).split('\n\n')
+ lines = ['.. sourcecode:: ipython', '']
+
+ figures = []
+ for part in parts:
+ block = block_parser(part)
+
+ if len(block):
+ rows, figure = shell.process_block(block)
+ for row in rows:
+ lines.extend([' %s'%line for line in row.split('\n')])
+
+ if figure is not None:
+ figures.append(figure)
+
+ for figure in figures:
+ lines.append('')
+ lines.extend(figure.split('\n'))
+ lines.append('')
+
+ #print lines
+ if len(lines)>2:
+ if debug:
+ print '\n'.join(lines)
+ else:
+ #print 'INSERTING %d lines'%len(lines)
+ state_machine.insert_input(
+ lines, state_machine.input_lines.source(0))
+
+ return []
+
+ipython_directive.DEBUG = False
+
+def setup(app):
+ setup.app = app
+ options = {
+ 'suppress': directives.flag,
+ 'doctest': directives.flag,
+ 'verbatim': directives.flag,
+ }
+
+
+ app.add_directive('ipython', ipython_directive, True, (0, 2, 0), **options)
+
+
+def test():
+
+ examples = [
+ r"""
+In [9]: pwd
+Out[9]: '/home/jdhunter/py4science/book'
+
+In [10]: cd bookdata/
+/home/jdhunter/py4science/book/bookdata
+
+In [2]: from pylab import *
+
+In [2]: ion()
+
+In [3]: im = imread('stinkbug.png')
+
+@savefig mystinkbug.png width=4in
+In [4]: imshow(im)
+Out[4]: <matplotlib.image.AxesImage object at 0x39ea850>
+
+""",
+ r"""
+
+In [1]: x = 'hello world'
+
+# string methods can be
+# used to alter the string
+@doctest
+In [2]: x.upper()
+Out[2]: 'HELLO WORLD'
+
+@verbatim
+In [3]: x.st<TAB>
+x.startswith x.strip
+""",
+ r"""
+
+In [130]: url = 'http://ichart.finance.yahoo.com/table.csv?s=CROX\
+ .....: &d=9&e=22&f=2009&g=d&a=1&br=8&c=2006&ignore=.csv'
+
+In [131]: print url.split('&')
+--------> print(url.split('&'))
+['http://ichart.finance.yahoo.com/table.csv?s=CROX', 'd=9', 'e=22', 'f=2009', 'g=d', 'a=1', 'b=8', 'c=2006', 'ignore=.csv']
+
+In [60]: import urllib
+
+""",
+ r"""\
+
+In [133]: import numpy.random
+
+@suppress
+In [134]: numpy.random.seed(2358)
+
+@doctest
+In [135]: np.random.rand(10,2)
+Out[135]:
+array([[ 0.64524308, 0.59943846],
+ [ 0.47102322, 0.8715456 ],
+ [ 0.29370834, 0.74776844],
+ [ 0.99539577, 0.1313423 ],
+ [ 0.16250302, 0.21103583],
+ [ 0.81626524, 0.1312433 ],
+ [ 0.67338089, 0.72302393],
+ [ 0.7566368 , 0.07033696],
+ [ 0.22591016, 0.77731835],
+ [ 0.0072729 , 0.34273127]])
+
+""",
+
+ r"""
+In [106]: print x
+--------> print(x)
+jdh
+
+In [109]: for i in range(10):
+ .....: print i
+ .....:
+ .....:
+0
+1
+2
+3
+4
+5
+6
+7
+8
+9
+
+
+""",
+
+ r"""
+
+In [144]: from pylab import *
+
+In [145]: ion()
+
+# use a semicolon to suppress the output
+@savefig test_hist.png width=4in
+In [151]: hist(np.random.randn(10000), 100);
+
+
+@savefig test_plot.png width=4in
+In [151]: plot(np.random.randn(10000), 'o');
+ """,
+
+ r"""
+# use a semicolon to suppress the output
+In [151]: plt.clf()
+
+@savefig plot_simple.png width=4in
+In [151]: plot([1,2,3])
+
+@savefig hist_simple.png width=4in
+In [151]: hist(np.random.randn(10000), 100);
+
+""",
+ r"""
+# update the current fig
+In [151]: ylabel('number')
+
+In [152]: title('normal distribution')
+
+
+@savefig hist_with_text.png
+In [153]: grid(True)
+
+ """,
+
+
+ r"""
+
+In [239]: 1/2
+@verbatim
+Out[239]: 0
+
+In [240]: 1.0/2.0
+Out[240]: 0.5
+""",
+
+ r"""
+@verbatim
+In [6]: pwd
+Out[6]: '/home/jdhunter/mypy'
+""",
+
+ r"""
+@verbatim
+In [151]: myfile.upper?
+Type: builtin_function_or_method
+Base Class: <type 'builtin_function_or_method'>
+String Form: <built-in method upper of str object at 0x980e2f0>
+Namespace: Interactive
+Docstring:
+ S.upper() -> string
+ Return a copy of the string S converted to uppercase.
+ """
+ ]
+
+
+
+ ipython_directive.DEBUG = True
+ #options = dict(suppress=True)
+ options = dict()
+ for example in examples:
+ content = example.split('\n')
+ ipython_directive('debug', arguments=None, options=options,
+ content=content, lineno=0,
+ content_offset=None, block_text=None,
+ state=None, state_machine=None,
+ )
+
+
+if __name__=='__main__':
+ test()
Property changes on: trunk/matplotlib/lib/matplotlib/sphinxext/mathmpl.py
___________________________________________________________________
Modified: svn:mergeinfo
 - /branches/v0_91_maint/doc/sphinxext/mathmpl.py:5753-5771
/branches/v0_98_5_maint/lib/matplotlib/sphinxext/mathmpl.py:6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080,7176,7209-7211,7227,7245
/branches/v0_99_maint/lib/matplotlib/sphinxext/mathmpl.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/lib/matplotlib/sphinxext/mathmpl.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815
 + /branches/v0_91_maint/doc/sphinxext/mathmpl.py:5753-5771
/branches/v0_98_5_maint/lib/matplotlib/sphinxext/mathmpl.py:6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080,7176,7209-7211,7227,7245
/branches/v0_99_maint/lib/matplotlib/sphinxext/mathmpl.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/lib/matplotlib/sphinxext/mathmpl.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830
Property changes on: trunk/matplotlib/lib/matplotlib/sphinxext/only_directives.py
___________________________________________________________________
Modified: svn:mergeinfo
 - /branches/v0_91_maint/doc/sphinxext/only_directives.py:5753-5771
/branches/v0_98_5_maint/lib/matplotlib/sphinxext/only_directives.py:6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080,7176,7209-7211,7227,7245
/branches/v0_99_maint/lib/matplotlib/sphinxext/only_directives.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/lib/matplotlib/sphinxext/only_directives.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815
 + /branches/v0_91_maint/doc/sphinxext/only_directives.py:5753-5771
/branches/v0_98_5_maint/lib/matplotlib/sphinxext/only_directives.py:6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080,7176,7209-7211,7227,7245
/branches/v0_99_maint/lib/matplotlib/sphinxext/only_directives.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/lib/matplotlib/sphinxext/only_directives.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830
Property changes on: trunk/matplotlib/lib/matplotlib/sphinxext/plot_directive.py
___________________________________________________________________
Modified: svn:mergeinfo
 - /branches/v0_91_maint/doc/sphinxext/plot_directive.py:5753-5771
/branches/v0_98_5_maint/lib/matplotlib/sphinxext/plot_directive.py:6920-6925,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080,7176,7209-7211,7227,7245
/branches/v0_99_maint/lib/matplotlib/sphinxext/plot_directive.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/lib/matplotlib/sphinxext/plot_directive.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815
 + /branches/v0_91_maint/doc/sphinxext/plot_directive.py:5753-5771
/branches/v0_98_5_maint/lib/matplotlib/sphinxext/plot_directive.py:6920-6925,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080,7176,7209-7211,7227,7245
/branches/v0_99_maint/lib/matplotlib/sphinxext/plot_directive.py:7323-7338,7393,7395-7404,7407-7424,7428-7433,7442-7444,7446,7475-7482,7484,7486,7489-7523,7567,7569,7582-7584,7616-7618,7633,7638,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/lib/matplotlib/sphinxext/plot_directive.py:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830
Property changes on: trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_spines/spines_axes_positions.png
___________________________________________________________________
Modified: svn:mergeinfo
 - /branches/v0_99_maint/lib/matplotlib/tests/baseline_images/test_spines/spines_axes_positions.png:7323-7337,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/lib/matplotlib/tests/baseline_images/test_spines/spines_axes_positions.png:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815
 + /branches/v0_99_maint/lib/matplotlib/tests/baseline_images/test_spines/spines_axes_positions.png:7323-7337,7703,7727-7734,7740-7741,7745,7751,7756,7762,7770,7772,7774,7776-7778,7780,7784,7788,7790,7792,7794,7796,7800,7803,7808,7822,7827,7834,7837,7844,7846-7847,7849,7858,7864,7866-7867,7874,7884,7896,7901-7903,7916,7919,7924,7928,7944,7952,7970,7972,7981,7983,7989-7991,7998,8001,8003,8016-8057,8068,8070,8092-8116,8121-8135
/branches/v1_0_maint/lib/matplotlib/tests/baseline_images/test_spines/spines_axes_positions.png:8521,8524-8541,8543,8549,8554,8557,8559-8564,8566,8573,8575,8577,8579,8581,8583,8585,8588,8590,8593,8595,8601,8603,8610,8614,8627-8628,8630,8632,8643,8645,8647-8667,8673,8675,8677,8679,8690-8697,8704,8706,8708,8714-8715,8717-8720,8722-8725,8732-8734,8747,8764,8769-8770,8772,8774,8776,8778,8780,8785,8788,8790,8794,8798-8799,8808,8815,8830
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 8830
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8830&view=rev
Author: jdh2358
Date: 2010年12月13日 15:27:48 +0000 (2010年12月13日)
Log Message:
-----------
added ipython directive
Added Paths:
-----------
 branches/v1_0_maint/lib/matplotlib/sphinxext/ipython_directive.py
Added: branches/v1_0_maint/lib/matplotlib/sphinxext/ipython_directive.py
===================================================================
--- branches/v1_0_maint/lib/matplotlib/sphinxext/ipython_directive.py	 (rev 0)
+++ branches/v1_0_maint/lib/matplotlib/sphinxext/ipython_directive.py	2010年12月13日 15:27:48 UTC (rev 8830)
@@ -0,0 +1,567 @@
+import sys, os, shutil, imp, warnings, cStringIO, re
+
+import IPython
+from IPython.Shell import MatplotlibShell
+
+try:
+ from hashlib import md5
+except ImportError:
+ from md5 import md5
+
+from docutils.parsers.rst import directives
+import sphinx
+
+
+sphinx_version = sphinx.__version__.split(".")
+# The split is necessary for sphinx beta versions where the string is
+# '6b1'
+sphinx_version = tuple([int(re.split('[a-z]', x)[0])
+ for x in sphinx_version[:2]])
+
+
+
+COMMENT, INPUT, OUTPUT = range(3)
+rgxin = re.compile('In \[(\d+)\]:\s?(.*)\s*')
+rgxout = re.compile('Out\[(\d+)\]:\s?(.*)\s*')
+fmtin = 'In [%d]:'
+fmtout = 'Out[%d]:'
+
+def block_parser(part):
+ """
+ part is a string of ipython text, comprised of at most one
+ input, one ouput, comments, and blank lines. The block parser
+ parses the text into a list of::
+
+ blocks = [ (TOKEN0, data0), (TOKEN1, data1), ...]
+ where TOKEN is one of [COMMENT | INPUT | OUTPUT ] and
+ data is, depending on the type of token::
+
+ COMMENT : the comment string
+
+ INPUT: the (DECORATOR, INPUT_LINE, REST) where
+ DECORATOR: the input decorator (or None)
+ INPUT_LINE: the input as string (possibly multi-line)
+ REST : any stdout generated by the input line (not OUTPUT)
+
+
+ OUTPUT: the output string, possibly multi-line
+
+ """
+
+ block = []
+ lines = part.split('\n')
+ #print 'PARSE', lines
+ N = len(lines)
+ i = 0
+ decorator = None
+ while 1:
+
+ if i==N:
+ # nothing left to parse -- the last line
+ break
+
+ line = lines[i]
+ i += 1
+ line_stripped = line.strip()
+ if line_stripped.startswith('#'):
+ block.append((COMMENT, line))
+ continue
+
+
+ if line_stripped.startswith('@'):
+ # we're assuming at most one decorator -- may need to
+ # rethink
+ decorator = line_stripped
+ continue
+
+ # does this look like an input line?
+ matchin = rgxin.match(line)
+ if matchin:
+ lineno, inputline = int(matchin.group(1)), matchin.group(2)
+
+ # the ....: continuation string
+ continuation = ' %s:'%''.join(['.']*(len(str(lineno))+2))
+ Nc = len(continuation)
+ # input lines can continue on for more than one line, if
+ # we have a '\' line continuation char or a function call
+ # echo line 'print'. The input line can only be
+ # terminated by the end of the block or an output line, so
+ # we parse out the rest of the input line if it is
+ # multiline as well as any echo text
+
+ rest = []
+ while i<N:
+
+ # look ahead; if the next line is blank, or a comment, or
+ # an output line, we're done
+
+ nextline = lines[i]
+ matchout = rgxout.match(nextline)
+ #print "nextline=%s, continuation=%s, starts=%s"%(nextline, continuation, nextline.startswith(continuation))
+ if matchout or nextline.startswith('#'):
+ break
+ elif nextline.startswith(continuation):
+ inputline += '\n' + nextline[Nc:]
+ else:
+ rest.append(nextline)
+ i+= 1
+
+ block.append((INPUT, (decorator, inputline, '\n'.join(rest))))
+ continue
+
+ # if it looks like an output line grab all the text to the end
+ # of the block
+ matchout = rgxout.match(line)
+ if matchout:
+ lineno, output = int(matchout.group(1)), matchout.group(2)
+ if i<N-1:
+ output = '\n'.join([output] + lines[i:])
+
+ #print 'OUTPUT', output
+ block.append((OUTPUT, output))
+ break
+
+ #print 'returning block', block
+ return block
+
+
+
+import matplotlib
+matplotlib.use('Agg')
+
+
+class EmbeddedSphinxShell:
+
+ def __init__(self):
+
+ self.cout = cStringIO.StringIO()
+
+ IPython.Shell.Term.cout = self.cout
+ IPython.Shell.Term.cerr = self.cout
+ argv = ['-autocall', '0']
+ self.user_ns = {}
+ self.user_glocal_ns = {}
+
+ self.IP = IPython.ipmaker.make_IPython(
+ argv, self.user_ns, self.user_glocal_ns, embedded=True,
+ #shell_class=IPython.Shell.InteractiveShell,
+ shell_class=MatplotlibShell,
+ rc_override=dict(colors = 'NoColor'))
+
+ self.input = ''
+ self.output = ''
+
+ self.is_verbatim = False
+ self.is_doctest = False
+ self.is_suppress = False
+
+ # on the first call to the savefig decorator, we'll import
+ # pyplot as plt so we can make a call to the plt.gcf().savefig
+ self._pyplot_imported = False
+
+ # we need bookmark the current dir first so we can save
+ # relative to it
+ self.process_input('bookmark ipy_basedir')
+ self.cout.seek(0)
+ self.cout.truncate(0)
+
+ def process_input(self, line):
+ 'process the input, capturing stdout'
+ #print "input='%s'"%self.input
+ stdout = sys.stdout
+ sys.stdout = self.cout
+ #self.IP.resetbuffer()
+ self.IP.push(self.IP.prefilter(line, 0))
+ #self.IP.runlines(line)
+ sys.stdout = stdout
+
+
+ def process_block(self, block):
+ """
+ process block from the block_parser and return a list of processed lines
+ """
+
+ #print 'BLOCK', block
+ ret = []
+
+ output = None
+ input_lines = None
+
+ m = rgxin.match(str(self.IP.outputcache.prompt1).strip())
+ lineno = int(m.group(1))
+
+ input_prompt = fmtin%lineno
+ output_prompt = fmtout%lineno
+ image_file = None
+ image_directive = None
+ for token, data in block:
+
+ if token==COMMENT:
+ if not self.is_suppress:
+ ret.append(data)
+
+ elif token==INPUT:
+
+ decorator, input, rest = data
+ #print 'INPUT:', data
+ is_verbatim = decorator=='@verbatim' or self.is_verbatim
+ is_doctest = decorator=='@doctest' or self.is_doctest
+ is_suppress = decorator=='@suppress' or self.is_suppress
+ is_savefig = decorator is not None and decorator.startswith('@savefig')
+ #print 'is_verbatim=%s, is_doctest=%s, is_suppress=%s, is_savefig=%s'%(is_verbatim, is_doctest, is_suppress, is_savefig)
+ input_lines = input.split('\n')
+
+
+ continuation = ' %s:'%''.join(['.']*(len(str(lineno))+2))
+ Nc = len(continuation)
+
+ if is_savefig:
+ saveargs = decorator.split(' ')
+ filename = saveargs[1]
+ outfile = os.path.join('_static/%s'%filename)
+ # build out an image directive like
+ # .. image:: somefile.png
+ # :width 4in
+ #
+ # from an input like
+ # savefig somefile.png width=4in
+ imagerows = ['.. image:: %s'%outfile]
+
+ for kwarg in saveargs[2:]:
+ arg, val = kwarg.split('=')
+ arg = arg.strip()
+ val = val.strip()
+ imagerows.append(' :%s: %s'%(arg, val))
+
+
+ image_file = outfile
+ image_directive = '\n'.join(imagerows)
+
+
+
+ # TODO: can we get "rest" from ipython
+ #self.process_input('\n'.join(input_lines))
+
+
+ is_semicolon = False
+ for i, line in enumerate(input_lines):
+ if line.endswith(';'):
+ is_semicolon = True
+
+ if i==0:
+ # process the first input line
+ if is_verbatim:
+ self.process_input('')
+ else:
+ # only submit the line in non-verbatim mode
+ self.process_input(line)
+ formatted_line = '%s %s'%(input_prompt, line)
+ else:
+ # process a continuation line
+ if not is_verbatim:
+ self.process_input(line)
+
+ formatted_line = '%s %s'%(continuation, line)
+
+
+ if not is_suppress:
+ ret.append(formatted_line)
+
+ if not is_suppress:
+ if len(rest.strip()):
+ if is_verbatim:
+ # the "rest" is the standard output of the
+ # input, which needs to be added in
+ # verbatim mode
+ ret.append("%s"%rest)
+ ret.append('')
+
+ self.cout.seek(0)
+ output = self.cout.read()
+ if not is_suppress and not is_semicolon and not is_verbatim:
+ ret.append(output)
+
+ self.cout.truncate(0)
+
+
+
+
+ elif token==OUTPUT:
+ #print 'token==OUTPUT is_verbatim=%s'%is_verbatim
+ if is_verbatim:
+ # construct a mock output prompt
+ output = '%s %s\n'%(fmtout%lineno, data)
+ ret.append(output)
+
+ #print 'token==OUTPUT', output
+ if is_doctest:
+ submitted = data.strip()
+ found = output
+ if found is not None:
+ ind = found.find(output_prompt)
+ if ind<0:
+ raise RuntimeError('output prompt="%s" does not match out line=%s'%(output_prompt, found))
+ found = found[len(output_prompt):].strip()
+
+ if found!=submitted:
+ raise RuntimeError('doctest failure for input_lines="%s" with found_output="%s" and submitted output="%s"'%(input_lines, found, submitted))
+ #print 'doctest PASSED for input_lines="%s" with found_output="%s" and submitted output="%s"'%(input_lines, found, submitted)
+
+
+ if image_file is not None:
+ self.insure_pyplot()
+ command = 'plt.gcf().savefig("%s")'%image_file
+ #print 'SAVEFIG', command
+ self.process_input('bookmark ipy_thisdir')
+ self.process_input('cd -b ipy_basedir')
+ self.process_input(command)
+ self.process_input('cd -b ipy_thisdir')
+ self.cout.seek(0)
+ self.cout.truncate(0)
+
+ #print 'returning', ret, figure
+ return ret, image_directive
+
+
+ def insure_pyplot(self):
+ if self._pyplot_imported:
+ return
+ self.process_input('import matplotlib.pyplot as plt')
+
+
+
+shell = EmbeddedSphinxShell()
+
+
+def ipython_directive(name, arguments, options, content, lineno,
+ content_offset, block_text, state, state_machine,
+ ):
+
+ debug = ipython_directive.DEBUG
+ shell.is_suppress = options.has_key('suppress')
+ shell.is_doctest = options.has_key('doctest')
+ shell.is_verbatim = options.has_key('verbatim')
+
+ #print 'ipy', shell.is_suppress, options
+ parts = '\n'.join(content).split('\n\n')
+ lines = ['.. sourcecode:: ipython', '']
+
+ figures = []
+ for part in parts:
+ block = block_parser(part)
+
+ if len(block):
+ rows, figure = shell.process_block(block)
+ for row in rows:
+ lines.extend([' %s'%line for line in row.split('\n')])
+
+ if figure is not None:
+ figures.append(figure)
+
+ for figure in figures:
+ lines.append('')
+ lines.extend(figure.split('\n'))
+ lines.append('')
+
+ #print lines
+ if len(lines)>2:
+ if debug:
+ print '\n'.join(lines)
+ else:
+ #print 'INSERTING %d lines'%len(lines)
+ state_machine.insert_input(
+ lines, state_machine.input_lines.source(0))
+
+ return []
+
+ipython_directive.DEBUG = False
+
+def setup(app):
+ setup.app = app
+ options = {
+ 'suppress': directives.flag,
+ 'doctest': directives.flag,
+ 'verbatim': directives.flag,
+ }
+
+
+ app.add_directive('ipython', ipython_directive, True, (0, 2, 0), **options)
+
+
+def test():
+
+ examples = [
+ r"""
+In [9]: pwd
+Out[9]: '/home/jdhunter/py4science/book'
+
+In [10]: cd bookdata/
+/home/jdhunter/py4science/book/bookdata
+
+In [2]: from pylab import *
+
+In [2]: ion()
+
+In [3]: im = imread('stinkbug.png')
+
+@savefig mystinkbug.png width=4in
+In [4]: imshow(im)
+Out[4]: <matplotlib.image.AxesImage object at 0x39ea850>
+
+""",
+ r"""
+
+In [1]: x = 'hello world'
+
+# string methods can be
+# used to alter the string
+@doctest
+In [2]: x.upper()
+Out[2]: 'HELLO WORLD'
+
+@verbatim
+In [3]: x.st<TAB>
+x.startswith x.strip
+""",
+ r"""
+
+In [130]: url = 'http://ichart.finance.yahoo.com/table.csv?s=CROX\
+ .....: &d=9&e=22&f=2009&g=d&a=1&br=8&c=2006&ignore=.csv'
+
+In [131]: print url.split('&')
+--------> print(url.split('&'))
+['http://ichart.finance.yahoo.com/table.csv?s=CROX', 'd=9', 'e=22', 'f=2009', 'g=d', 'a=1', 'b=8', 'c=2006', 'ignore=.csv']
+
+In [60]: import urllib
+
+""",
+ r"""\
+
+In [133]: import numpy.random
+
+@suppress
+In [134]: numpy.random.seed(2358)
+
+@doctest
+In [135]: np.random.rand(10,2)
+Out[135]:
+array([[ 0.64524308, 0.59943846],
+ [ 0.47102322, 0.8715456 ],
+ [ 0.29370834, 0.74776844],
+ [ 0.99539577, 0.1313423 ],
+ [ 0.16250302, 0.21103583],
+ [ 0.81626524, 0.1312433 ],
+ [ 0.67338089, 0.72302393],
+ [ 0.7566368 , 0.07033696],
+ [ 0.22591016, 0.77731835],
+ [ 0.0072729 , 0.34273127]])
+
+""",
+
+ r"""
+In [106]: print x
+--------> print(x)
+jdh
+
+In [109]: for i in range(10):
+ .....: print i
+ .....:
+ .....:
+0
+1
+2
+3
+4
+5
+6
+7
+8
+9
+
+
+""",
+
+ r"""
+
+In [144]: from pylab import *
+
+In [145]: ion()
+
+# use a semicolon to suppress the output
+@savefig test_hist.png width=4in
+In [151]: hist(np.random.randn(10000), 100);
+
+
+@savefig test_plot.png width=4in
+In [151]: plot(np.random.randn(10000), 'o');
+ """,
+
+ r"""
+# use a semicolon to suppress the output
+In [151]: plt.clf()
+
+@savefig plot_simple.png width=4in
+In [151]: plot([1,2,3])
+
+@savefig hist_simple.png width=4in
+In [151]: hist(np.random.randn(10000), 100);
+
+""",
+ r"""
+# update the current fig
+In [151]: ylabel('number')
+
+In [152]: title('normal distribution')
+
+
+@savefig hist_with_text.png
+In [153]: grid(True)
+
+ """,
+
+
+ r"""
+
+In [239]: 1/2
+@verbatim
+Out[239]: 0
+
+In [240]: 1.0/2.0
+Out[240]: 0.5
+""",
+
+ r"""
+@verbatim
+In [6]: pwd
+Out[6]: '/home/jdhunter/mypy'
+""",
+
+ r"""
+@verbatim
+In [151]: myfile.upper?
+Type: builtin_function_or_method
+Base Class: <type 'builtin_function_or_method'>
+String Form: <built-in method upper of str object at 0x980e2f0>
+Namespace: Interactive
+Docstring:
+ S.upper() -> string
+ Return a copy of the string S converted to uppercase.
+ """
+ ]
+
+
+
+ ipython_directive.DEBUG = True
+ #options = dict(suppress=True)
+ options = dict()
+ for example in examples:
+ content = example.split('\n')
+ ipython_directive('debug', arguments=None, options=options,
+ content=content, lineno=0,
+ content_offset=None, block_text=None,
+ state=None, state_machine=None,
+ )
+
+
+if __name__=='__main__':
+ test()
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
From: <jd...@us...> - 2010年12月13日 15:25:46
Revision: 8829
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8829&view=rev
Author: jdh2358
Date: 2010年12月13日 15:25:37 +0000 (2010年12月13日)
Log Message:
-----------
added ipython directive tut
Added Paths:
-----------
 trunk/sampledoc_tut/ipython_directive.rst
Added: trunk/sampledoc_tut/ipython_directive.rst
===================================================================
--- trunk/sampledoc_tut/ipython_directive.rst	 (rev 0)
+++ trunk/sampledoc_tut/ipython_directive.rst	2010年12月13日 15:25:37 UTC (rev 8829)
@@ -0,0 +1,264 @@
+.. _ipython_directive:
+
+=================
+Ipython Directive
+=================
+
+The ipython directive is a stateful ipython shell for embedding in
+sphinx documents. It knows about standard ipython prompts, and
+extracts the input and output lines. These prompts will be renumbered
+starting at ``1``. The inputs will be fed to an embedded ipython
+interpreter and the outputs from that interpreter will be inserted as
+well.
+
+.. ipython::
+
+ In [136]: x = 2
+
+ In [137]: x**3
+ Out[137]: 8
+
+The state from previous sessions is stored, and standard error is
+trapped. At doc build time, ipython's output and std err will be
+inserted, and prompts will be renumbered. So the prompt below should
+be renumbered in the rendered docs, and pick up where the block above
+left off.
+
+.. ipython::
+
+ In [138]: z = x*3 # x is recalled from previous block
+
+ In [139]: z
+ Out[139]: 6
+
+ In [140]: print z
+ --------> print(z)
+ 6
+
+ In [141]: q = z[) # this is a syntax error -- we trap ipy exceptions
+ ------------------------------------------------------------
+ File "<ipython console>", line 1
+ q = z[) # this is a syntax error -- we trap ipy exceptions
+	 ^
+ SyntaxError: invalid syntax
+
+
+The embedded interpreter supports some limited markup. For example,
+you can put comments in your ipython sessions, which are reported
+verbatim. There are some handy "pseudo-decorators" that let you
+doctest the output. The inputs are fed to an embedded ipython
+session and the outputs from the ipython session are inserted into
+your doc. If the output in your doc and in the ipython session don't
+match on a doctest assertion, an error will be
+
+
+.. ipython::
+
+ In [1]: x = 'hello world'
+
+ # this will raise an error if the ipython output is different
+ @doctest
+ In [2]: x.upper()
+ Out[2]: 'HELLO WORLD'
+
+ # some readline features cannot be supported, so we allow
+ # "verbatim" blocks, which are dumped in verbatim except prompts
+ # are continuously numbered
+ @verbatim
+ In [3]: x.st<TAB>
+ x.startswith x.strip
+
+
+Multi-line input is supported.
+
+.. ipython::
+
+ In [130]: url = 'http://ichart.finance.yahoo.com/table.csv?s=CROX\
+ .....: &d=9&e=22&f=2009&g=d&a=1&br=8&c=2006&ignore=.csv'
+
+ In [131]: print url.split('&')
+ --------> print(url.split('&'))
+ ['http://ichart.finance.yahoo.com/table.csv?s=CROX', 'd=9', 'e=22',
+'f=2009', 'g=d', 'a=1', 'b=8', 'c=2006', 'ignore=.csv']
+
+ In [60]: import urllib
+
+
+You can do doctesting on multi-line output as well. Just be careful
+when using non-deterministic inputs like random numbers in the ipython
+directive, because your inputs are ruin through a live interpreter, so
+if you are doctesting random output you will get an error. Here we
+"seed" the random number generator for deterministic output, and we
+suppress the seed line so it doesn't show up in the rendered output
+
+.. ipython::
+
+ In [133]: import numpy.random
+
+ @suppress
+ In [134]: numpy.random.seed(2358)
+
+ @doctest
+ In [135]: np.random.rand(10,2)
+ Out[135]:
+ array([[ 0.64524308, 0.59943846],
+	 [ 0.47102322, 0.8715456 ],
+	 [ 0.29370834, 0.74776844],
+	 [ 0.99539577, 0.1313423 ],
+	 [ 0.16250302, 0.21103583],
+	 [ 0.81626524, 0.1312433 ],
+	 [ 0.67338089, 0.72302393],
+	 [ 0.7566368 , 0.07033696],
+	 [ 0.22591016, 0.77731835],
+	 [ 0.0072729 , 0.34273127]])
+
+
+Another demonstration of multi-line input and output
+
+.. ipython::
+
+ In [106]: print x
+ --------> print(x)
+ jdh
+
+ In [109]: for i in range(10):
+ .....: print i
+ .....:
+ .....:
+ 0
+ 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+
+
+Most of the "pseudo-decorators" can be used an options to ipython
+mode. For example, to setup matplotlib pylab but suppress the output,
+you can do. When using the matplotlib ``use`` directive, it should
+occur before any import of pylab. This will not show up in the
+rendered docs, but the commands will be executed in the embedded
+interpreter and subsequent line numbers will be incremented to reflect
+the inputs::
+
+
+ .. ipython::
+ :suppress:
+
+ In [144]: from pylab import *
+
+ In [145]: ion()
+
+.. ipython::
+ :suppress:
+
+ In [144]: from pylab import *
+
+ In [145]: ion()
+
+Likewise, you can set ``:doctest:`` or ``:verbatim:`` to apply these
+settings to the entire block. For example,
+
+.. ipython::
+ :verbatim:
+
+ In [9]: cd mpl/examples/
+ /home/jdhunter/mpl/examples
+
+ In [10]: pwd
+ Out[10]: '/home/jdhunter/mpl/examples'
+
+
+ In [14]: cd mpl/examples/<TAB>
+ mpl/examples/animation/ mpl/examples/misc/
+ mpl/examples/api/ mpl/examples/mplot3d/
+ mpl/examples/axes_grid/ mpl/examples/pylab_examples/
+ mpl/examples/event_handling/ mpl/examples/widgets
+
+ In [14]: cd mpl/examples/widgets/
+ /home/msierig/mpl/examples/widgets
+
+ In [15]: !wc *
+ 2 12 77 README.txt
+ 40 97 884 buttons.py
+ 26 90 712 check_buttons.py
+ 19 52 416 cursor.py
+ 180 404 4882 menu.py
+ 16 45 337 multicursor.py
+ 36 106 916 radio_buttons.py
+ 48 226 2082 rectangle_selector.py
+ 43 118 1063 slider_demo.py
+ 40 124 1088 span_selector.py
+ 450 1274 12457 total
+
+
+
+You can create one or more pyplot plots and insert them with the
+``@savefig`` decorator.
+
+.. ipython::
+
+ @savefig plot_simple.png width=4in
+ In [151]: plot([1,2,3]);
+
+ # use a semicolon to suppress the output
+ @savefig hist_simple.png width=4in
+ In [151]: hist(np.random.randn(10000), 100);
+
+In a subsequent session, we can update the current figure with some
+text, and then resave
+
+.. ipython::
+
+
+ In [151]: ylabel('number')
+
+ In [152]: title('normal distribution')
+
+ @savefig hist_with_text.png width=4in
+ In [153]: grid(True)
+
+Pseudo-Decorators
+=================
+
+Here are the supported decorators, and any optional arguments they
+take. Some of the decorators can be used as options to the entire
+block (eg ``verbatim`` and ``suppress``), and some only apply to the
+line just below them (eg ``savefig``).
+
+@suppress
+
+ execute the ipython input block, but suppress the input and output
+ block from the rendered output. Also, can be applied to the entire
+ ``..ipython`` block as a directive option with ``:suppress:``.
+
+@verbatim
+
+ insert the input and output block in verbatim, but auto-increment
+ the line numbers. Internally, the interpreter will be fed an empty
+ string, so it is a no-op that keeps line numbering consistent.
+ Also, can be applied to the entire ``..ipython`` block as a
+ directive option with ``:verbatim:``.
+
+@savefig OUTFILE [IMAGE_OPTIONS]
+
+ save the figure to the static directory and insert it into the
+ document, possibly binding it into a minipage and/or putting
+ code/figure label/references to associate the code and the
+ figure. Takes args to pass to the image directive (*scale*,
+ *width*, etc can be kwargs); see `image options
+ <http://docutils.sourceforge.net/docs/ref/rst/directives.html#image>`_
+ for details.
+
+@doctest
+
+ Compare the pasted in output in the ipython block with the output
+ generated at doc build time, and raise errors if they don’t
+ match. Also, can be applied to the entire ``..ipython`` block as a
+ directive option with ``:doctest:``.
+
+That's all folks!
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
From: <jd...@us...> - 2010年12月13日 15:25:21
Revision: 8828
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8828&view=rev
Author: jdh2358
Date: 2010年12月13日 15:25:15 +0000 (2010年12月13日)
Log Message:
-----------
added ipython directive tut
Modified Paths:
--------------
 trunk/sampledoc_tut/conf.py
 trunk/sampledoc_tut/extensions.rst
 trunk/sampledoc_tut/index.rst
Modified: trunk/sampledoc_tut/conf.py
===================================================================
--- trunk/sampledoc_tut/conf.py	2010年12月10日 18:13:57 UTC (rev 8827)
+++ trunk/sampledoc_tut/conf.py	2010年12月13日 15:25:15 UTC (rev 8828)
@@ -25,6 +25,7 @@
 extensions = ['matplotlib.sphinxext.mathmpl',
 'matplotlib.sphinxext.only_directives',
 'matplotlib.sphinxext.plot_directive',
+ 'matplotlib.sphinxext.ipython_directive',
 'sphinx.ext.autodoc',
 'sphinx.ext.doctest',
 'ipython_console_highlighting',
Modified: trunk/sampledoc_tut/extensions.rst
===================================================================
--- trunk/sampledoc_tut/extensions.rst	2010年12月10日 18:13:57 UTC (rev 8827)
+++ trunk/sampledoc_tut/extensions.rst	2010年12月13日 15:25:15 UTC (rev 8828)
@@ -221,6 +221,11 @@
 
 .. _extensions-literal:
 
+
+See the :ref:`ipython_directive` for a tutorial on embedding stateful,
+matplotlib aware ipython sessions into your rest docs with multiline
+and doctest support.
+
 This file
 =========
 
Modified: trunk/sampledoc_tut/index.rst
===================================================================
--- trunk/sampledoc_tut/index.rst	2010年12月10日 18:13:57 UTC (rev 8827)
+++ trunk/sampledoc_tut/index.rst	2010年12月13日 15:25:15 UTC (rev 8828)
@@ -24,6 +24,7 @@
 getting_started.rst
 custom_look.rst
 extensions.rst
+ ipython_directive.rst
 cheatsheet.rst
 emacs_help.rst
 
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
From: <md...@us...> - 2010年12月10日 18:14:07
Revision: 8827
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8827&view=rev
Author: mdboom
Date: 2010年12月10日 18:13:57 +0000 (2010年12月10日)
Log Message:
-----------
Merged revisions 8826 via svnmerge from 
https://matplotlib.svn.sf.net/svnroot/matplotlib/branches/v1_0_maint
........
 r8826 | mdboom | 2010年12月10日 13:13:22 -0500 (2010年12月10日) | 2 lines
 
 Improve indentation in ttconv.
........
Modified Paths:
--------------
 trunk/matplotlib/ttconv/pprdrv.h
 trunk/matplotlib/ttconv/pprdrv_tt.cpp
 trunk/matplotlib/ttconv/pprdrv_tt2.cpp
Property Changed:
----------------
 trunk/matplotlib/
Property changes on: trunk/matplotlib
___________________________________________________________________
Modified: svnmerge-integrated
 - /branches/mathtex:1-7263 /branches/v0_91_maint:1-6428 /branches/v0_98_5_maint:1-7253 /branches/v1_0_maint:1-8824 /trunk/matplotlib:1-7315
 + /branches/mathtex:1-7263 /branches/v0_91_maint:1-6428 /branches/v0_98_5_maint:1-7253 /branches/v1_0_maint:1-8826 /trunk/matplotlib:1-7315
Modified: trunk/matplotlib/ttconv/pprdrv.h
===================================================================
--- trunk/matplotlib/ttconv/pprdrv.h	2010年12月10日 18:13:22 UTC (rev 8826)
+++ trunk/matplotlib/ttconv/pprdrv.h	2010年12月10日 18:13:57 UTC (rev 8827)
@@ -29,35 +29,37 @@
 * function. This both removes the hardcoding of output to go to stdout
 * and makes output thread-safe. Michael Droettboom [06-07-07]
 */
-class TTStreamWriter {
+class TTStreamWriter
+{
 private:
- // Private copy and assignment
- TTStreamWriter& operator=(const TTStreamWriter& other);
- TTStreamWriter(const TTStreamWriter& other);
+ // Private copy and assignment
+ TTStreamWriter& operator=(const TTStreamWriter& other);
+ TTStreamWriter(const TTStreamWriter& other);
 
 public:
- TTStreamWriter() { }
- virtual ~TTStreamWriter() { }
+ TTStreamWriter() { }
+ virtual ~TTStreamWriter() { }
 
- virtual void write(const char*) = 0;
+ virtual void write(const char*) = 0;
 
- virtual void printf(const char* format, ...);
- virtual void put_char(int val);
- virtual void puts(const char* a);
- virtual void putline(const char* a);
+ virtual void printf(const char* format, ...);
+ virtual void put_char(int val);
+ virtual void puts(const char* a);
+ virtual void putline(const char* a);
 };
 
-class TTDictionaryCallback {
- private:
- // Private copy and assignment
- TTDictionaryCallback& operator=(const TTStreamWriter& other);
- TTDictionaryCallback(const TTStreamWriter& other);
+class TTDictionaryCallback
+{
+private:
+ // Private copy and assignment
+ TTDictionaryCallback& operator=(const TTStreamWriter& other);
+ TTDictionaryCallback(const TTStreamWriter& other);
 
- public:
- TTDictionaryCallback() { }
- virtual ~TTDictionaryCallback() { }
+public:
+ TTDictionaryCallback() { }
+ virtual ~TTDictionaryCallback() { }
 
- virtual void add_pair(const char* key, const char* value) = 0;
+ virtual void add_pair(const char* key, const char* value) = 0;
 };
 
 void replace_newlines_with_spaces(char* a);
@@ -65,14 +67,18 @@
 /*
 * A simple class for all ttconv exceptions.
 */
-class TTException {
- const char* message;
- TTException& operator=(const TTStreamWriter& other);
- TTException(const TTStreamWriter& other);
+class TTException
+{
+ const char* message;
+ TTException& operator=(const TTStreamWriter& other);
+ TTException(const TTStreamWriter& other);
 
- public:
- TTException(const char* message_) : message(message_) { }
- const char* getMessage() { return message; }
+public:
+ TTException(const char* message_) : message(message_) { }
+ const char* getMessage()
+ {
+ return message;
+ }
 };
 
 /*
@@ -91,11 +97,12 @@
 
 /* Do not change anything below this line. */
 
-enum font_type_enum {
- PS_TYPE_3 = 3,
- PS_TYPE_42 = 42,
- PS_TYPE_42_3_HYBRID = 43,
- PDF_TYPE_3 = -3
+enum font_type_enum
+{
+ PS_TYPE_3 = 3,
+ PS_TYPE_42 = 42,
+ PS_TYPE_42_3_HYBRID = 43,
+ PDF_TYPE_3 = -3
 };
 
 /* routines in pprdrv_tt.c */
Modified: trunk/matplotlib/ttconv/pprdrv_tt.cpp
===================================================================
--- trunk/matplotlib/ttconv/pprdrv_tt.cpp	2010年12月10日 18:13:22 UTC (rev 8826)
+++ trunk/matplotlib/ttconv/pprdrv_tt.cpp	2010年12月10日 18:13:57 UTC (rev 8827)
@@ -55,49 +55,49 @@
 ** Get an Unsigned 32 bit number.
 */
 ULONG getULONG(BYTE *p)
- {
+{
 int x;
 ULONG val=0;
 
- for(x=0; x<4; x++)
- {
+ for (x=0; x<4; x++)
+ {
 val *= 0x100;
 val += p[x];
- }
+ }
 
 return val;
- } /* end of ftohULONG() */
+} /* end of ftohULONG() */
 
 /*
 ** Get an unsigned 16 bit number.
 */
 USHORT getUSHORT(BYTE *p)
- {
+{
 int x;
 USHORT val=0;
 
- for(x=0; x<2; x++)
- {
+ for (x=0; x<2; x++)
+ {
 val *= 0x100;
 val += p[x];
- }
+ }
 
 return val;
- } /* end of getUSHORT() */
+} /* end of getUSHORT() */
 
 /*
 ** Get a 32 bit fixed point (16.16) number.
 ** A special structure is used to return the value.
 */
 Fixed getFixed(BYTE *s)
- {
+{
 Fixed val={0,0};
 
 val.whole = ((s[0] * 256) + s[1]);
 val.fraction = ((s[2] * 256) + s[3]);
 
 return val;
- } /* end of getFixed() */
+} /* end of getFixed() */
 
 /*-----------------------------------------------------------------------
 ** Load a TrueType font table into memory and return a pointer to it.
@@ -110,21 +110,21 @@
 ** padding spaces.
 -----------------------------------------------------------------------*/
 BYTE *GetTable(struct TTFONT *font, const char *name)
- {
+{
 BYTE *ptr;
 ULONG x;
 
- #ifdef DEBUG_TRUETYPE
+#ifdef DEBUG_TRUETYPE
 debug("GetTable(file,font,\"%s\")",name);
- #endif
+#endif
 
 /* We must search the table directory. */
 ptr = font->offset_table + 12;
 x=0;
- while(TRUE)
+ while (TRUE)
+ {
+ if ( strncmp((const char*)ptr,name,4) == 0 )
 {
- if( strncmp((const char*)ptr,name,4) == 0 )
- {
 ULONG offset,length;
 BYTE *table;
 
@@ -132,30 +132,39 @@
 length = getULONG( ptr + 12 );
 table = (BYTE*)calloc( sizeof(BYTE), length );
 
- try {
+ try
+ {
 #ifdef DEBUG_TRUETYPE
- debug("Loading table \"%s\" from offset %d, %d bytes",name,offset,length);
+ 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 ( 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& ) {
- free(table);
- throw;
+ if ( fread(table,sizeof(BYTE),length,font->file) != (sizeof(BYTE) * length))
+ {
+ throw TTException("TrueType font may be corrupt (reason 4)");
+ }
 }
+ catch (TTException& )
+ {
+ free(table);
+ throw;
+ }
 return table;
- }
+ }
 
 x++;
 ptr += 16;
- if(x == font->numTables)
+ if (x == font->numTables)
+ {
 throw TTException("TrueType font is missing table");
 }
+ }
 
- } /* end of GetTable() */
+} /* end of GetTable() */
 
 /*--------------------------------------------------------------------
 ** Load the 'name' table, get information from it,
@@ -165,7 +174,7 @@
 ** the font, and it's PostScript name.
 --------------------------------------------------------------------*/
 void Read_name(struct TTFONT *font)
- {
+{
 BYTE *table_ptr,*ptr2;
 int numrecords; /* Number of strings in this table */
 BYTE *strings; /* pointer to start of string storage */
@@ -174,169 +183,172 @@
 int language,nameid; /* language id, name id, */
 int offset,length; /* offset and length of string. */
 
- #ifdef DEBUG_TRUETYPE
+#ifdef DEBUG_TRUETYPE
 debug("Read_name()");
- #endif
+#endif
 
 table_ptr = NULL;
 
 /* Set default values to avoid future references to undefined
 * pointers. Allocate each of PostName, FullName, FamilyName,
 * Version, and Style separately so they can be freed safely. */
- for (char **ptr = &(font->PostName); ptr != NULL; ) {
- *ptr = (char*) calloc(sizeof(char), strlen("unknown")+1);
- strcpy(*ptr, "unknown");
- if (ptr == &(font->PostName)) ptr = &(font->FullName);
- else if (ptr == &(font->FullName)) ptr = &(font->FamilyName);
- else if (ptr == &(font->FamilyName)) ptr = &(font->Version);
- else if (ptr == &(font->Version)) ptr = &(font->Style);
- else ptr = NULL;
+ for (char **ptr = &(font->PostName); ptr != NULL; )
+ {
+ *ptr = (char*) calloc(sizeof(char), strlen("unknown")+1);
+ strcpy(*ptr, "unknown");
+ if (ptr == &(font->PostName)) ptr = &(font->FullName);
+ else if (ptr == &(font->FullName)) ptr = &(font->FamilyName);
+ else if (ptr == &(font->FamilyName)) ptr = &(font->Version);
+ else if (ptr == &(font->Version)) ptr = &(font->Style);
+ else ptr = NULL;
 }
 font->Copyright = font->Trademark = (char*)NULL;
 
 table_ptr = GetTable(font, "name"); /* pointer to table */
- try {
- numrecords = getUSHORT( table_ptr + 2 ); /* number of names */
- strings = table_ptr + getUSHORT( table_ptr + 4 ); /* start of string storage */
+ 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)
+ ptr2 = table_ptr + 6;
+ for (x=0; x < numrecords; x++,ptr2+=12)
 {
- platform = getUSHORT(ptr2);
- encoding = getUSHORT(ptr2+2);
- language = getUSHORT(ptr2+4);
- nameid = getUSHORT(ptr2+6);
- length = getUSHORT(ptr2+8);
- offset = getUSHORT(ptr2+10);
+ platform = getUSHORT(ptr2);
+ encoding = getUSHORT(ptr2+2);
+ language = getUSHORT(ptr2+4);
+ nameid = getUSHORT(ptr2+6);
+ length = getUSHORT(ptr2+8);
+ offset = getUSHORT(ptr2+10);
 
 #ifdef DEBUG_TRUETYPE
- debug("platform %d, encoding %d, language 0x%x, name %d, offset %d, length %d",
- platform,encoding,language,nameid,offset,length);
+ debug("platform %d, encoding %d, language 0x%x, name %d, offset %d, length %d",
+ platform,encoding,language,nameid,offset,length);
 #endif
 
- /* Copyright notice */
- if( platform == 1 && nameid == 0 )
+ /* Copyright notice */
+ if ( platform == 1 && nameid == 0 )
 {
- font->Copyright = (char*)calloc(sizeof(char),length+1);
- strncpy(font->Copyright,(const char*)strings+offset,length);
- font->Copyright[length]=(char)NULL;
- replace_newlines_with_spaces(font->Copyright);
+ font->Copyright = (char*)calloc(sizeof(char),length+1);
+ 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);
+ debug("font->Copyright=\"%s\"",font->Copyright);
 #endif
- continue;
+ continue;
 }
 
 
- /* Font Family name */
- if( platform == 1 && nameid == 1 )
+ /* Font Family name */
+ if ( platform == 1 && nameid == 1 )
 {
- free(font->FamilyName);
- font->FamilyName = (char*)calloc(sizeof(char),length+1);
- strncpy(font->FamilyName,(const char*)strings+offset,length);
- font->FamilyName[length]=(char)NULL;
- replace_newlines_with_spaces(font->FamilyName);
+ free(font->FamilyName);
+ font->FamilyName = (char*)calloc(sizeof(char),length+1);
+ 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);
+ debug("font->FamilyName=\"%s\"",font->FamilyName);
 #endif
- continue;
+ continue;
 }
 
 
- /* Font Family name */
- if( platform == 1 && nameid == 2 )
+ /* Font Family name */
+ if ( platform == 1 && nameid == 2 )
 {
- free(font->Style);
- font->Style = (char*)calloc(sizeof(char),length+1);
- strncpy(font->Style,(const char*)strings+offset,length);
- font->Style[length]=(char)NULL;
- replace_newlines_with_spaces(font->Style);
+ free(font->Style);
+ font->Style = (char*)calloc(sizeof(char),length+1);
+ 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);
+ debug("font->Style=\"%s\"",font->Style);
 #endif
- continue;
+ continue;
 }
 
 
- /* Full Font name */
- if( platform == 1 && nameid == 4 )
+ /* Full Font name */
+ if ( platform == 1 && nameid == 4 )
 {
- free(font->FullName);
- font->FullName = (char*)calloc(sizeof(char),length+1);
- strncpy(font->FullName,(const char*)strings+offset,length);
- font->FullName[length]=(char)NULL;
- replace_newlines_with_spaces(font->FullName);
+ free(font->FullName);
+ font->FullName = (char*)calloc(sizeof(char),length+1);
+ 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);
+ debug("font->FullName=\"%s\"",font->FullName);
 #endif
- continue;
+ continue;
 }
 
 
- /* Version string */
- if( platform == 1 && nameid == 5 )
+ /* Version string */
+ if ( platform == 1 && nameid == 5 )
 {
- free(font->Version);
- font->Version = (char*)calloc(sizeof(char),length+1);
- strncpy(font->Version,(const char*)strings+offset,length);
- font->Version[length]=(char)NULL;
- replace_newlines_with_spaces(font->Version);
+ free(font->Version);
+ font->Version = (char*)calloc(sizeof(char),length+1);
+ strncpy(font->Version,(const char*)strings+offset,length);
+ font->Version[length]=(char)NULL;
+ replace_newlines_with_spaces(font->Version);
 
 #ifdef DEBUG_TRUETYPE
- debug("font->Version=\"%s\"",font->Version);
+ debug("font->Version=\"%s\"",font->Version);
 #endif
- continue;
+ continue;
 }
 
 
- /* PostScript name */
- if( platform == 1 && nameid == 6 )
+ /* PostScript name */
+ if ( platform == 1 && nameid == 6 )
 {
- free(font->PostName);
- font->PostName = (char*)calloc(sizeof(char),length+1);
- strncpy(font->PostName,(const char*)strings+offset,length);
- font->PostName[length]=(char)NULL;
- replace_newlines_with_spaces(font->PostName);
+ free(font->PostName);
+ font->PostName = (char*)calloc(sizeof(char),length+1);
+ strncpy(font->PostName,(const char*)strings+offset,length);
+ font->PostName[length]=(char)NULL;
+ replace_newlines_with_spaces(font->PostName);
 
 #ifdef DEBUG_TRUETYPE
- debug("font->PostName=\"%s\"",font->PostName);
+ debug("font->PostName=\"%s\"",font->PostName);
 #endif
- continue;
+ continue;
 }
 
 
- /* Trademark string */
- if( platform == 1 && nameid == 7 )
+ /* Trademark string */
+ if ( platform == 1 && nameid == 7 )
 {
- font->Trademark = (char*)calloc(sizeof(char),length+1);
- strncpy(font->Trademark,(const char*)strings+offset,length);
- font->Trademark[length]=(char)NULL;
- replace_newlines_with_spaces(font->Trademark);
+ font->Trademark = (char*)calloc(sizeof(char),length+1);
+ 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);
+ debug("font->Trademark=\"%s\"",font->Trademark);
 #endif
- continue;
+ continue;
 }
-
 }
- } catch (TTException& ) {
- free(table_ptr);
- throw;
 }
+ catch (TTException& )
+ {
+ free(table_ptr);
+ throw;
+ }
 
 free(table_ptr);
- } /* end of Read_name() */
+} /* end of Read_name() */
 
 /*---------------------------------------------------------------------
 ** Write the header for a PostScript font.
 ---------------------------------------------------------------------*/
 void ttfont_header(TTStreamWriter& stream, struct TTFONT *font)
- {
+{
 int VMMin;
 int VMMax;
 
@@ -347,52 +359,60 @@
 ** specification on which the font is based and the
 ** font manufacturer's revision number for the font.
 */
- if( font->target_type == PS_TYPE_42 ||
- font->target_type == PS_TYPE_42_3_HYBRID)
- {
+ if ( font->target_type == PS_TYPE_42 ||
+ font->target_type == PS_TYPE_42_3_HYBRID)
+ {
 stream.printf("%%!PS-TrueTypeFont-%d.%d-%d.%d\n",
- font->TTVersion.whole, font->TTVersion.fraction,
- font->MfrRevision.whole, font->MfrRevision.fraction);
- }
+ font->TTVersion.whole, font->TTVersion.fraction,
+ font->MfrRevision.whole, font->MfrRevision.fraction);
+ }
 
 /* If it is not a Type 42 font, we will use a different format. */
 else
- {
+ {
 stream.putline("%!PS-Adobe-3.0 Resource-Font");
- } /* See RBIIp 641 */
+ } /* See RBIIp 641 */
 
 /* We will make the title the name of the font. */
 stream.printf("%%%%Title: %s\n",font->FullName);
 
 /* If there is a Copyright notice, put it here too. */
- if( font->Copyright != (char*)NULL )
- stream.printf("%%%%Copyright: %s\n",font->Copyright);
+ if ( font->Copyright != (char*)NULL )
+ {
+ stream.printf("%%%%Copyright: %s\n",font->Copyright);
+ }
 
 /* We created this file. */
- if( font->target_type == PS_TYPE_42 )
+ if ( font->target_type == PS_TYPE_42 )
+ {
 stream.putline("%%Creator: Converted from TrueType to type 42 by PPR");
+ }
 else if (font->target_type == PS_TYPE_42_3_HYBRID)
+ {
 stream.putline("%%Creator: Converted from TypeType to type 42/type 3 hybrid by PPR");
+ }
 else
+ {
 stream.putline("%%Creator: Converted from TrueType to type 3 by PPR");
+ }
 
 /* If VM usage information is available, print it. */
- if( font->target_type == PS_TYPE_42 || font->target_type == PS_TYPE_42_3_HYBRID)
- {
+ if ( font->target_type == PS_TYPE_42 || font->target_type == PS_TYPE_42_3_HYBRID)
+ {
 VMMin = (int)getULONG( font->post_table + 16 );
 VMMax = (int)getULONG( font->post_table + 20 );
- if( VMMin > 0 && VMMax > 0 )
+ if ( VMMin > 0 && VMMax > 0 )
 stream.printf("%%%%VMUsage: %d %d\n",VMMin,VMMax);
- }
+ }
 
 /* Start the dictionary which will eventually */
 /* become the font. */
- if(font->target_type == PS_TYPE_42)
- {
+ if (font->target_type == PS_TYPE_42)
+ {
 stream.putline("15 dict begin");
- }
+ }
 else
- {
+ {
 stream.putline("25 dict begin");
 
 /* Type 3 fonts will need some subroutines here. */
@@ -403,23 +423,30 @@
 stream.putline("/_c{curveto}_d");
 stream.putline("/_sc{7 -1 roll{setcachedevice}{pop pop pop pop pop pop}ifelse}_d");
 stream.putline("/_e{exec}_d");
- }
+ }
 
 stream.printf("/FontName /%s def\n",font->PostName);
 stream.putline("/PaintType 0 def");
 
- if(font->target_type == PS_TYPE_42 || font->target_type == PS_TYPE_42_3_HYBRID)
+ if (font->target_type == PS_TYPE_42 || font->target_type == PS_TYPE_42_3_HYBRID)
+ {
 stream.putline("/FontMatrix[1 0 0 1 0 0]def");
+ }
 else
+ {
 stream.putline("/FontMatrix[.001 0 0 .001 0 0]def");
+ }
 
 stream.printf("/FontBBox[%d %d %d %d]def\n",font->llx,font->lly,font->urx,font->ury);
- if (font->target_type == PS_TYPE_42 || font->target_type == PS_TYPE_42_3_HYBRID) {
+ if (font->target_type == PS_TYPE_42 || font->target_type == PS_TYPE_42_3_HYBRID)
+ {
 stream.printf("/FontType 42 def\n", font->target_type );
- } else {
+ }
+ else
+ {
 stream.printf("/FontType 3 def\n", font->target_type );
 }
- } /* end of ttfont_header() */
+} /* end of ttfont_header() */
 
 /*-------------------------------------------------------------
 ** Define the encoding array for this font.
@@ -428,27 +455,31 @@
 ** one, we just explicitly create one for each font.
 -------------------------------------------------------------*/
 void ttfont_encoding(TTStreamWriter& stream, struct TTFONT *font, std::vector<int>& glyph_ids, font_type_enum target_type)
+{
+ if (target_type == PS_TYPE_3 || target_type == PS_TYPE_42_3_HYBRID)
 {
- if (target_type == PS_TYPE_3 || target_type == PS_TYPE_42_3_HYBRID) {
- stream.printf("/Encoding [ ");
+ stream.printf("/Encoding [ ");
 
- for (std::vector<int>::const_iterator i = glyph_ids.begin();
- i != glyph_ids.end(); ++i) {
- const char* name = ttfont_CharStrings_getname(font, *i);
- stream.printf("/%s ", name);
- }
-
- stream.printf("] def\n");
- } else {
- stream.putline("/Encoding StandardEncoding def");
+ for (std::vector<int>::const_iterator i = glyph_ids.begin();
+ i != glyph_ids.end(); ++i)
+ {
+ const char* name = ttfont_CharStrings_getname(font, *i);
+ stream.printf("/%s ", name);
 }
- } /* end of ttfont_encoding() */
 
+ stream.printf("] def\n");
+ }
+ else
+ {
+ stream.putline("/Encoding StandardEncoding def");
+ }
+} /* end of ttfont_encoding() */
+
 /*-----------------------------------------------------------
 ** Create the optional "FontInfo" sub-dictionary.
 -----------------------------------------------------------*/
 void ttfont_FontInfo(TTStreamWriter& stream, struct TTFONT *font)
- {
+{
 Fixed ItalicAngle;
 
 /* We create a sub dictionary named "FontInfo" where we */
@@ -461,14 +492,14 @@
 stream.printf("/FamilyName (%s) def\n",font->FamilyName);
 stream.printf("/FullName (%s) def\n",font->FullName);
 
- if( font->Copyright != (char*)NULL || font->Trademark != (char*)NULL )
- {
+ if ( font->Copyright != (char*)NULL || font->Trademark != (char*)NULL )
+ {
 stream.printf("/Notice (%s",
- font->Copyright != (char*)NULL ? font->Copyright : "");
+ font->Copyright != (char*)NULL ? font->Copyright : "");
 stream.printf("%s%s) def\n",
- font->Trademark != (char*)NULL ? " " : "",
- font->Trademark != (char*)NULL ? font->Trademark : "");
- }
+ font->Trademark != (char*)NULL ? " " : "",
+ font->Trademark != (char*)NULL ? font->Trademark : "");
+ }
 
 /* This information is not quite correct. */
 stream.printf("/Weight (%s) def\n",font->Style);
@@ -483,7 +514,7 @@
 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() */
+} /* end of ttfont_FontInfo() */
 
 /*-------------------------------------------------------------------
 ** sfnts routines
@@ -502,55 +533,55 @@
 ** This is called once at the start.
 */
 void sfnts_start(TTStreamWriter& stream)
- {
+{
 stream.puts("/sfnts[<");
 in_string=TRUE;
 string_len=0;
 line_len=8;
- } /* end of sfnts_start() */
+} /* end of sfnts_start() */
 
 /*
 ** Write a BYTE as a hexadecimal value as part of the sfnts array.
 */
 void sfnts_pputBYTE(TTStreamWriter& stream, BYTE n)
- {
+{
 static const char hexdigits[]="0123456789ABCDEF";
 
- if(!in_string)
- {
+ if (!in_string)
+ {
 stream.put_char('<');
 string_len=0;
 line_len++;
 in_string=TRUE;
- }
+ }
 
 stream.put_char( hexdigits[ n / 16 ] );
 stream.put_char( hexdigits[ n % 16 ] );
 string_len++;
 line_len+=2;
 
- if(line_len > 70)
- {
+ if (line_len > 70)
+ {
 stream.put_char('\n');
 line_len=0;
- }
+ }
 
- } /* end of sfnts_pputBYTE() */
+} /* end of sfnts_pputBYTE() */
 
 /*
 ** Write a USHORT as a hexadecimal value as part of the sfnts array.
 */
 void sfnts_pputUSHORT(TTStreamWriter& stream, USHORT n)
- {
+{
 sfnts_pputBYTE(stream, n / 256);
 sfnts_pputBYTE(stream, n % 256);
- } /* end of sfnts_pputUSHORT() */
+} /* end of sfnts_pputUSHORT() */
 
 /*
 ** Write a ULONG as part of the sfnts array.
 */
 void sfnts_pputULONG(TTStreamWriter& stream, ULONG n)
- {
+{
 int x1,x2,x3;
 
 x1 = n % 256;
@@ -564,7 +595,7 @@
 sfnts_pputBYTE(stream, x3);
 sfnts_pputBYTE(stream, x2);
 sfnts_pputBYTE(stream, x1);
- } /* end of sfnts_pputULONG() */
+} /* end of sfnts_pputULONG() */
 
 /*
 ** This is called whenever it is
@@ -574,21 +605,21 @@
 ** no longer than 64K characters.)
 */
 void sfnts_end_string(TTStreamWriter& stream)
+{
+ if (in_string)
 {
- if(in_string)
- {
 string_len=0; /* fool sfnts_pputBYTE() */
 
- #ifdef DEBUG_TRUETYPE_INLINE
+#ifdef DEBUG_TRUETYPE_INLINE
 puts("\n% dummy byte:\n");
- #endif
+#endif
 
 sfnts_pputBYTE(stream, 0); /* extra byte for pre-2013 compatibility */
 stream.put_char('>');
 line_len++;
- }
+ }
 in_string=FALSE;
- } /* end of sfnts_end_string() */
+} /* end of sfnts_end_string() */
 
 /*
 ** This is called at the start of each new table.
@@ -597,10 +628,10 @@
 ** in the current string, a new one is started.
 */
 void sfnts_new_table(TTStreamWriter& stream, ULONG length)
- {
- if( (string_len + length) > 65528 )
- sfnts_end_string(stream);
- } /* end of sfnts_new_table() */
+{
+ if ( (string_len + length) > 65528 )
+ sfnts_end_string(stream);
+} /* end of sfnts_new_table() */
 
 /*
 ** We may have to break up the 'glyf' table. That is the reason
@@ -608,7 +639,7 @@
 ** array.
 */
 void sfnts_glyf_table(TTStreamWriter& stream, struct TTFONT *font, ULONG oldoffset, ULONG correct_total_length)
- {
+{
 ULONG off;
 ULONG length;
 int c;
@@ -616,11 +647,12 @@
 int x;
 bool loca_is_local=false;
 
- #ifdef DEBUG_TRUETYPE
+#ifdef DEBUG_TRUETYPE
 debug("sfnts_glyf_table(font,%d)", (int)correct_total_length);
- #endif
+#endif
 
- if (font->loca_table == NULL) {
+ if (font->loca_table == NULL)
+ {
 font->loca_table = GetTable(font,"loca");
 loca_is_local = true;
 }
@@ -629,27 +661,27 @@
 fseek( font->file, oldoffset, SEEK_SET );
 
 /* Copy the glyphs one by one */
- for(x=0; x < font->numGlyphs; x++)
+ for (x=0; x < font->numGlyphs; x++)
+ {
+ /* Read the glyph offset from the index-to-location table. */
+ if (font->indexToLocFormat == 0)
 {
- /* Read the glyph offset from the index-to-location table. */
- if(font->indexToLocFormat == 0)
- {
 off = getUSHORT( font->loca_table + (x * 2) );
 off *= 2;
 length = getUSHORT( font->loca_table + ((x+1) * 2) );
 length *= 2;
 length -= off;
- }
+ }
 else
- {
+ {
 off = getULONG( font->loca_table + (x * 4) );
 length = getULONG( font->loca_table + ((x+1) * 4) );
 length -= off;
- }
+ }
 
- #ifdef DEBUG_TRUETYPE
+#ifdef DEBUG_TRUETYPE
 debug("glyph length=%d",(int)length);
- #endif
+#endif
 
 /* Start new string if necessary. */
 sfnts_new_table( stream, (int)length );
@@ -658,34 +690,37 @@
 ** Make sure the glyph is padded out to a
 ** two byte boundary.
 */
- if( length % 2 )
+ if ( length % 2 ) {
 throw TTException("TrueType font contains a 'glyf' table without 2 byte padding");
+ }
 
 /* Copy the bytes of the glyph. */
- while( length-- )
- {
- if( (c = fgetc(font->file)) == EOF )
+ while ( length-- )
+ {
+ if ( (c = fgetc(font->file)) == EOF ) {
 throw TTException("TrueType font may be corrupt (reason 6)");
+ }
 
 sfnts_pputBYTE(stream, c);
 total++; /* add to running total */
- }
-
 }
 
- if (loca_is_local) {
+ }
+
+ if (loca_is_local)
+ {
 free(font->loca_table);
 font->loca_table = NULL;
 }
 
 /* Pad out to full length from table directory */
- while( total < correct_total_length )
- {
- sfnts_pputBYTE(stream, 0);
+ while ( total < correct_total_length )
+ {
+ sfnts_pputBYTE(stream, 0);
 total++;
- }
+ }
 
- } /* end of sfnts_glyf_table() */
+} /* end of sfnts_glyf_table() */
 
 /*
 ** Here is the routine which ties it all together.
@@ -694,9 +729,10 @@
 ** holds the actual TrueType data.
 */
 void ttfont_sfnts(TTStreamWriter& stream, struct TTFONT *font)
+{
+ static const char *table_names[] = /* The names of all tables */
 {
- static const char *table_names[] = /* The names of all tables */
- { /* which it is worth while */
+ /* which it is worth while */
 "cvt ", /* to include in a Type 42 */
 "fpgm", /* PostScript font. */
 "glyf",
@@ -706,14 +742,15 @@
 "loca",
 "maxp",
 "prep"
- } ;
+ } ;
 
- struct { /* The location of each of */
+ struct /* The location of each of */
+ {
 ULONG oldoffset; /* the above tables. */
 ULONG newoffset;
 ULONG length;
 ULONG checksum;
- } tables[9];
+ } tables[9];
 
 BYTE *ptr; /* A pointer into the origional table directory. */
 ULONG x,y; /* General use loop countes. */
@@ -730,22 +767,23 @@
 ** Find the tables we want and store there vital
 ** statistics in tables[].
 */
- for(x=0; x < 9; x++ )
+ for (x=0; x < 9; x++ )
+ {
+ do
 {
- do {
 diff = strncmp( (char*)ptr, table_names[x], 4 );
 
- if( diff > 0 ) /* If we are past it. */
- {
+ if ( diff > 0 ) /* If we are past it. */
+ {
 tables[x].length = 0;
 diff = 0;
- }
- else if( diff < 0 ) /* If we haven't hit it yet. */
- {
+ }
+ else if ( diff < 0 ) /* If we haven't hit it yet. */
+ {
 ptr += 16;
- }
- else if( diff == 0 ) /* Here it is! */
- {
+ }
+ else if ( diff == 0 ) /* Here it is! */
+ {
 tables[x].newoffset = nextoffset;
 tables[x].checksum = getULONG( ptr + 4 );
 tables[x].oldoffset = getULONG( ptr + 8 );
@@ -753,10 +791,11 @@
 nextoffset += ( ((tables[x].length + 3) / 4) * 4 );
 count++;
 ptr += 16;
- }
- } while(diff != 0);
+ }
+ }
+ while (diff != 0);
 
- } /* end of for loop which passes over the table directory */
+ } /* end of for loop which passes over the table directory */
 
 /* Begin the sfnts array. */
 sfnts_start(stream);
@@ -764,31 +803,33 @@
 /* Generate the offset table header */
 /* Start by copying the TrueType version number. */
 ptr = font->offset_table;
- for(x=0; x < 4; x++)
- {
- sfnts_pputBYTE( stream, *(ptr++) );
- }
+ 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 )
- {
- sfnts_pputUSHORT(stream, 7); /* searchRange */
- sfnts_pputUSHORT(stream, 3); /* entrySelector */
- sfnts_pputUSHORT(stream, 81); /* rangeShift */
- }
- #ifdef DEBUG_TRUETYPE
+ if ( count == 9 )
+ {
+ 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);
- }
- #endif
+ }
+#endif
 
 /* Now, emmit the table directory. */
- for(x=0; x < 9; x++)
+ for (x=0; x < 9; x++)
+ {
+ if ( tables[x].length == 0 ) /* Skip missing tables */
 {
- if( tables[x].length == 0 ) /* Skip missing tables */
 continue;
+ }
 
 /* Name */
 sfnts_pputBYTE( stream, table_names[x][0] );
@@ -804,27 +845,32 @@
 
 /* Length */
 sfnts_pputULONG( stream, tables[x].length );
- }
+ }
 
 /* Now, send the tables */
- for(x=0; x < 9; x++)
+ for (x=0; x < 9; x++)
+ {
+ if ( tables[x].length == 0 ) /* skip tables that aren't there */
 {
- if( tables[x].length == 0 ) /* skip tables that aren't there */
 continue;
+ }
 
- #ifdef DEBUG_TRUETYPE
+#ifdef DEBUG_TRUETYPE
 debug("emmiting table '%s'",table_names[x]);
- #endif
+#endif
 
 /* 'glyf' table gets special treatment */
- if( strcmp(table_names[x],"glyf")==0 )
+ if ( strcmp(table_names[x],"glyf")==0 )
+ {
+ sfnts_glyf_table(stream,font,tables[x].oldoffset,tables[x].length);
+ }
+ else /* Other tables may not exceed */
+ {
+ /* 65535 bytes in length. */
+ if ( tables[x].length > 65535 )
 {
- sfnts_glyf_table(stream,font,tables[x].oldoffset,tables[x].length);
+ throw TTException("TrueType font has a table which is too long");
 }
- 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");
 
 /* Start new string if necessary. */
 sfnts_new_table(stream, tables[x].length);
@@ -833,32 +879,34 @@
 fseek( font->file, tables[x].oldoffset, SEEK_SET );
 
 /* Copy the bytes of the table. */
- for( y=0; y < tables[x].length; y++ )
+ for ( y=0; y < tables[x].length; y++ )
+ {
+ if ( (c = fgetc(font->file)) == EOF )
 {
- 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. */
 y=tables[x].length;
- while( (y % 4) != 0 )
- {
+ while ( (y % 4) != 0 )
+ {
 sfnts_pputBYTE(stream, 0);
 y++;
- #ifdef DEBUG_TRUETYPE_INLINE
+#ifdef DEBUG_TRUETYPE_INLINE
 puts("\n% pad byte:\n");
- #endif
- }
+#endif
+ }
 
- } /* End of loop for all tables */
+ } /* End of loop for all tables */
 
 /* Close the array. */
 sfnts_end_string(stream);
 stream.putline("]def");
- } /* end of ttfont_sfnts() */
+} /* end of ttfont_sfnts() */
 
 /*--------------------------------------------------------------
 ** Create the CharStrings dictionary which will translate
@@ -869,51 +917,53 @@
 ** 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",
-"asterisk","plus", "comma","hyphen","period","slash","zero","one","two",
-"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",
-"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",
-"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",
-"approxequal","Delta","guillemotleft","guillemotright","ellipsis",
-"nobreakspace","Agrave","Atilde","Otilde","OE","oe","endash","emdash",
-"quotedblleft","quotedblright","quoteleft","quoteright","divide","lozenge",
-"ydieresis","Ydieresis","fraction","currency","guilsinglleft","guilsinglright",
-"fi","fl","daggerdbl","periodcentered","quotesinglbase","quotedblbase",
-"perthousand","Acircumflex","Ecircumflex","Aacute","Edieresis","Egrave",
-"Iacute","Icircumflex","Idieresis","Igrave","Oacute","Ocircumflex","apple",
-"Ograve","Uacute","Ucircumflex","Ugrave","dotlessi","circumflex","tilde",
-"macron","breve","dotaccent","ring","cedilla","hungarumlaut","ogonek","caron",
-"Lslash","lslash","Scaron","scaron","Zcaron","zcaron","brokenbar","Eth","eth",
-"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",
-"markingtabrtol","markingtabltor","control","markingdeleteltor",
-"markingdeletertol","option","escape","parbreakltor","parbreakrtol",
-"newpage","checkmark","linebreakltor","linebreakrtol","markingnobreakspace",
-"diamond","appleoutline"};
+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",
+ "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",
+ "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",
+ "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",
+ "approxequal","Delta","guillemotleft","guillemotright","ellipsis",
+ "nobreakspace","Agrave","Atilde","Otilde","OE","oe","endash","emdash",
+ "quotedblleft","quotedblright","quoteleft","quoteright","divide","lozenge",
+ "ydieresis","Ydieresis","fraction","currency","guilsinglleft","guilsinglright",
+ "fi","fl","daggerdbl","periodcentered","quotesinglbase","quotedblbase",
+ "perthousand","Acircumflex","Ecircumflex","Aacute","Edieresis","Egrave",
+ "Iacute","Icircumflex","Idieresis","Igrave","Oacute","Ocircumflex","apple",
+ "Ograve","Uacute","Ucircumflex","Ugrave","dotlessi","circumflex","tilde",
+ "macron","breve","dotaccent","ring","cedilla","hungarumlaut","ogonek","caron",
+ "Lslash","lslash","Scaron","scaron","Zcaron","zcaron","brokenbar","Eth","eth",
+ "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",
+ "markingtabrtol","markingtabltor","control","markingdeleteltor",
+ "markingdeletertol","option","escape","parbreakltor","parbreakrtol",
+ "newpage","checkmark","linebreakltor","linebreakrtol","markingnobreakspace",
+ "diamond","appleoutline"
+};
 
 /*
 ** This routine is called by the one below.
 ** It is also called from pprdrv_tt2.c
 */
 const char *ttfont_CharStrings_getname(struct TTFONT *font, int charindex)
- {
+{
 int GlyphIndex;
 static char temp[80];
 char *ptr;
@@ -921,81 +971,90 @@
 
 GlyphIndex = (int)getUSHORT( font->post_table + 34 + (charindex * 2) );
 
- if( GlyphIndex <= 257 ) /* If a standard Apple name, */
- {
+ if ( GlyphIndex <= 257 ) /* If a standard Apple name, */
+ {
 return Apple_CharStrings[GlyphIndex];
- }
+ }
 else /* Otherwise, use one */
- { /* of the pascal strings. */
+ {
+ /* of the pascal strings. */
 GlyphIndex -= 258;
 
 /* Set pointer to start of Pascal strings. */
 ptr = (char*)(font->post_table + 34 + (font->numGlyphs * 2));
 
 len = (ULONG)*(ptr++); /* Step thru the strings */
- while(GlyphIndex--) /* until we get to the one */
- { /* that we want. */
+ while (GlyphIndex--) /* until we get to the one */
+ {
+ /* that we want. */
 ptr += len;
 len = (ULONG)*(ptr++);
- }
+ }
 
- if( len >= sizeof(temp) )
+ if ( len >= sizeof(temp) )
+ {
 throw TTException("TrueType font file contains a very long PostScript name");
+ }
 
 strncpy(temp,ptr,len); /* Copy the pascal string into */
 temp[len]=(char)NULL; /* a buffer and make it ASCIIz. */
 
 return temp;
- }
- } /* end of ttfont_CharStrings_getname() */
+ }
+} /* end of ttfont_CharStrings_getname() */
 
 /*
 ** This is the central routine of this section.
 */
 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 )
+ 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) {
- if((font->target_type == PS_TYPE_42 || font->target_type == PS_TYPE_42_3_HYBRID)
- && *i < 256) /* type 42 */
- {
+ for (std::vector<int>::const_iterator i = glyph_ids.begin();
+ i != glyph_ids.end(); ++i)
+ {
+ if ((font->target_type == PS_TYPE_42 ||
+ font->target_type == PS_TYPE_42_3_HYBRID)
+ && *i < 256) /* type 42 */
+ {
 stream.printf("/%s %d def\n",ttfont_CharStrings_getname(font, *i), *i);
- }
+ }
 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() */
+} /* end of ttfont_CharStrings() */
 
 /*----------------------------------------------------------------
 ** Emmit the code to finish up the dictionary and turn
 ** it into a font.
 ----------------------------------------------------------------*/
 void ttfont_trailer(TTStreamWriter& stream, struct TTFONT *font)
- {
+{
 /* If we are generating a type 3 font, we need to provide */
 /* a BuildGlyph and BuildChar proceedures. */
- if(font->target_type == PS_TYPE_3 || font->target_type == PS_TYPE_42_3_HYBRID)
- {
+ if (font->target_type == PS_TYPE_3 ||
+ font->target_type == PS_TYPE_42_3_HYBRID)
+ {
 stream.put_char('\n');
 
 stream.putline("/BuildGlyph");
@@ -1015,7 +1074,7 @@
 stream.putline("}_d");
 
 stream.put_char('\n');
- }
+ }
 
 /* If we are generating a type 42 font, we need to check to see */
 /* if this PostScript interpreter understands type 42 fonts. If */
@@ -1024,8 +1083,9 @@
 /* I found out how to do this by examining a TrueType font */
 /* generated by a Macintosh. That is where the TrueType interpreter */
 /* setup instructions and part of BuildGlyph came from. */
- if (font->target_type == PS_TYPE_42 || font->target_type == PS_TYPE_42_3_HYBRID)
- {
+ if (font->target_type == PS_TYPE_42 ||
+ font->target_type == PS_TYPE_42_3_HYBRID)
+ {
 stream.put_char('\n');
 
 /* If we have no "resourcestatus" command, or FontType 42 */
@@ -1066,24 +1126,24 @@
 /* exchange arguments and move the dictionary to the */
 /* dictionary stack. */
 stream.putline(" /BuildGlyph{exch begin");
- /* stack: charname */
+ /* stack: charname */
 
 /* Put two copies of CharStrings on the stack and consume */
 /* one testing to see if the charname is defined in it, */
 /* leave the answer on the stack. */
 stream.putline(" CharStrings dup 2 index known");
- /* stack: charname CharStrings bool */
+ /* stack: charname CharStrings bool */
 
 /* Exchange the CharStrings dictionary and the charname, */
 /* but if the answer was false, replace the character name */
 /* with ".notdef". */
 stream.putline(" {exch}{exch pop /.notdef}ifelse");
- /* stack: CharStrings charname */
+ /* stack: CharStrings charname */
 
 /* Get the value from the CharStrings dictionary and see */
 /* if it is executable. */
 stream.putline(" get dup xcheck");
- /* stack: CharStrings_entry */
+ /* stack: CharStrings_entry */
 
 /* If is a proceedure. Execute according to RBIIp 277-278. */
 stream.putline(" {currentdict systemdict begin begin exec end end}");
@@ -1108,41 +1168,49 @@
 /* rasterizer. */
 stream.putline("}if");
 stream.put_char('\n');
- } /* end of if Type 42 not understood. */
+ } /* end of if Type 42 not understood. */
 
 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.
 ------------------------------------------------------------------*/
 
 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;
 
- if (font.target_type == PS_TYPE_42) {
+ if (font.target_type == PS_TYPE_42)
+ {
 bool has_low = false;
 bool has_high = false;
 
- for(std::vector<int>::const_iterator i = glyph_ids.begin();
- i != glyph_ids.end(); ++i) {
- if (*i > 255) {
+ for (std::vector<int>::const_iterator i = glyph_ids.begin();
+ i != glyph_ids.end(); ++i)
+ {
+ if (*i > 255)
+ {
 has_high = true;
 if (has_low) break;
- } else {
+ }
+ else
+ {
 has_low = true;
 if (has_high) break;
 }
 }
 
- if (has_high && has_low) {
+ if (has_high && has_low)
+ {
 font.target_type = PS_TYPE_42_3_HYBRID;
- } else if (has_high && !has_low) {
+ }
+ else if (has_high && !has_low)
+ {
 font.target_type = PS_TYPE_3;
 }
 }
@@ -1151,55 +1219,68 @@
 font.filename=filename;
 
 /* Open the font file */
- if( (font.file = fopen(filename,"rb")) == (FILE*)NULL )
+ if ( (font.file = fopen(filename,"rb")) == (FILE*)NULL )
+ {
 throw TTException("Failed to open TrueType font");
+ }
 
 /* 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 )
+ 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
+#ifdef DEBUG_TRUETYPE
 debug("numTables=%d",(int)font.numTables);
- #endif
+#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) )
+ 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 );
 
 /* Load the "head" table and extract information from it. */
 ptr = GetTable(&font, "head");
- try {
- font.MfrRevision = getFixed( ptr + 4 ); /* font revision number */
- font.unitsPerEm = getUSHORT( ptr + 18 );
- font.HUPM = font.unitsPerEm / 2;
+ try
+ {
+ font.MfrRevision = getFixed( ptr + 4 ); /* font revision number */
+ font.unitsPerEm = getUSHORT( ptr + 18 );
+ font.HUPM = font.unitsPerEm / 2;
 #ifdef DEBUG_TRUETYPE
- debug("unitsPerEm=%d",(int)font.unitsPerEm);
+ debug("unitsPerEm=%d",(int)font.unitsPerEm);
 #endif
- font.llx = topost2( getFWord( ptr + 36 ) ); /* bounding box info */
- font.lly = topost2( getFWord( ptr + 38 ) );
- font.urx = topost2( getFWord( ptr + 40 ) );
- font.ury = topost2( getFWord( ptr + 42 ) );
- font.indexToLocFormat = getSHORT( ptr + 50 ); /* size of 'loca' data */
- if(font.indexToLocFormat != 0 && font.indexToLocFormat != 1)
- 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& ) {
- free(ptr);
- throw;
+ font.llx = topost2( getFWord( ptr + 36 ) ); /* bounding box info */
+ font.lly = topost2( getFWord( ptr + 38 ) );
+ font.urx = topost2( getFWord( ptr + 40 ) );
+ font.ury = topost2( getFWord( ptr + 42 ) );
+ font.indexToLocFormat = getSHORT( ptr + 50 ); /* size of 'loca' data */
+ if (font.indexToLocFormat != 0 && font.indexToLocFormat != 1)
+ {
+ 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& )
+ {
+ free(ptr);
+ throw;
+ }
 free(ptr);
 
 /* Load information from the "name" table. */
@@ -1213,9 +1294,9 @@
 /* If we are generating a Type 3 font, we will need to */
 /* have the 'loca' and 'glyf' tables arround while */
 /* we are generating the CharStrings. */
- if(font.target_type == PS_TYPE_3 || font.target_type == PDF_TYPE_3 ||
- font.target_type == PS_TYPE_42_3_HYBRID)
- {
+ if (font.target_type == PS_TYPE_3 || font.target_type == PDF_TYPE_3 ||
+ font.target_type == PS_TYPE_42_3_HYBRID)
+ {
 BYTE *ptr; /* We need only one value */
 ptr = GetTable(&font, "hhea");
 font.numberOfHMetrics = getUSHORT(ptr + 34);
@@ -1229,22 +1310,26 @@
 font.hmtx_table = GetTable(&font,"hmtx");
 }
 
- if (glyph_ids.size() == 0) {
+ if (glyph_ids.size() == 0)
+ {
 glyph_ids.clear();
 glyph_ids.reserve(font.numGlyphs);
- for (int x = 0; x < font.numGlyphs; ++x) {
+ for (int x = 0; x < font.numGlyphs; ++x)
+ {
 glyph_ids.push_back(x);
 }
- } else if (font.target_type == PS_TYPE_3 ||
- font.target_type == PS_TYPE_42_3_HYBRID) {
+ }
+ else if (font.target_type == PS_TYPE_3 ||
+ font.target_type == PS_TYPE_42_3_HYBRID)
+ {
 ttfont_add_glyph_dependencies(&font, glyph_ids);
 }
 
- } /* end of insert_ttfont() */
+} /* end of insert_ttfont() */
 
 void insert_ttfont(const char *filename, TTStreamWriter& stream,
 font_type_enum target_type, std::vector<int>& glyph_ids)
- {
+{
 struct TTFONT font;
 
 read_font(filename, target_type, glyph_ids, font);
@@ -1260,9 +1345,11 @@
 
 /* If we are generating a type 42 font, */
 /* emmit the sfnts array. */
- if(font.target_type == PS_TYPE_42 ||
- font.target_type == PS_TYPE_42_3_HYBRID)
- ttfont_sfnts(stream, &font);
+ if (font.target_type == PS_TYPE_42 ||
+ font.target_type == PS_TYPE_42_3_HYBRID)
+ {
+ ttfont_sfnts(stream, &font);
+ }
 
 /* Emmit the CharStrings array. */
 ttfont_CharStrings(stream, &font, glyph_ids);
@@ -1270,27 +1357,33 @@
 /* Send the font trailer. */
 ttfont_trailer(stream, &font);
 
- } /* end of insert_ttfont() */
+} /* end of insert_ttfont() */
 
-class StringStreamWriter : public TTStreamWriter {
+class StringStreamWriter : public TTStreamWriter
+{
 std::ostringstream oss;
 
 public:
- void write(const char* a) {
+ void write(const char* a)
+ {
 oss << a;
 }
- std::string str() {
+
+ std::string str()
+ {
 return oss.str();
 }
 };
 
-void get_pdf_charprocs(const char *filename, std::vector<int>& glyph_ids, TTDictionaryCallback& dict) {
+void get_pdf_charprocs(const char *filename, std::vector<int>& glyph_ids, TTDictionaryCallback& dict)
+{
 struct TTFONT font;
 
 read_font(filename, PDF_TYPE_3, glyph_ids, font);
 
 for (std::vector<int>::const_iterator i = glyph_ids.begin();
- i != glyph_ids.end(); ++i) {
+ i != glyph_ids.end(); ++i)
+ {
 StringStreamWriter writer;
 tt_type3_charproc(writer, &font, *i);
 const char* name = ttfont_CharStrings_getname(&font, *i);
@@ -1312,11 +1405,16 @@
 loca_table(NULL),
 glyf_table(NULL),
 hmtx_table(NULL)
-{ }
+{
 
-TTFONT::~TTFONT() {
+}
+
+TTFONT::~TTFONT()
+{
 if (file)
+ {
 fclose(file);
+ }
 free(PostName);
 free(FullName);
 free(FamilyName);
Modified: trunk/matplotlib/ttconv/pprdrv_tt2.cpp
===================================================================
--- trunk/matplotlib/ttconv/pprdrv_tt2.cpp	2010年12月10日 18:13:22 UTC (rev 8826)
+++ trunk/matplotlib/ttconv/pprdrv_tt2.cpp	2010年12月10日 18:13:57 UTC (rev 8827)
@@ -42,7 +42,8 @@
 #include <algorithm>
 #include <stack>
 
-class GlyphToType3 {
+class GlyphToType3
+{
 private:
 GlyphToType3& operator=(const GlyphToType3& other);
 GlyphToType3(const GlyphToType3& other);
@@ -101,53 +102,54 @@
 ** are perfectly accurate, but they do the job.
 */
 void GlyphToType3::stack(TTStreamWriter& stream, int new_elem)
+{
+ if ( !pdf_mode && num_pts > 25 ) /* Only do something of we will */
 {
- if( !pdf_mode && num_pts > 25 ) /* Only do something of we will */
- { /* have a log of points. */
- if(stack_depth == 0)
- {
+ /* have a log of points. */
+ if (stack_depth == 0)
+ {
 stream.put_char('{');
 stack_depth=1;
- ...
 
[truncated message content]
From: <md...@us...> - 2010年12月10日 18:13:31
Revision: 8826
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8826&view=rev
Author: mdboom
Date: 2010年12月10日 18:13:22 +0000 (2010年12月10日)
Log Message:
-----------
Improve indentation in ttconv.
Modified Paths:
--------------
 branches/v1_0_maint/ttconv/pprdrv.h
 branches/v1_0_maint/ttconv/pprdrv_tt.cpp
 branches/v1_0_maint/ttconv/pprdrv_tt2.cpp
Modified: branches/v1_0_maint/ttconv/pprdrv.h
===================================================================
--- branches/v1_0_maint/ttconv/pprdrv.h	2010年12月10日 14:17:29 UTC (rev 8825)
+++ branches/v1_0_maint/ttconv/pprdrv.h	2010年12月10日 18:13:22 UTC (rev 8826)
@@ -1,3 +1,5 @@
+/* -*- mode: c++; c-basic-offset: 4 -*- */
+
 /*
 * Modified for use within matplotlib
 * 5 July 2007
@@ -27,35 +29,37 @@
 * function. This both removes the hardcoding of output to go to stdout
 * and makes output thread-safe. Michael Droettboom [06-07-07]
 */
-class TTStreamWriter {
+class TTStreamWriter
+{
 private:
- // Private copy and assignment
- TTStreamWriter& operator=(const TTStreamWriter& other);
- TTStreamWriter(const TTStreamWriter& other);
+ // Private copy and assignment
+ TTStreamWriter& operator=(const TTStreamWriter& other);
+ TTStreamWriter(const TTStreamWriter& other);
 
 public:
- TTStreamWriter() { }
- virtual ~TTStreamWriter() { }
+ TTStreamWriter() { }
+ virtual ~TTStreamWriter() { }
 
- virtual void write(const char*) = 0;
+ virtual void write(const char*) = 0;
 
- virtual void printf(const char* format, ...);
- virtual void put_char(int val);
- virtual void puts(const char* a);
- virtual void putline(const char* a);
+ virtual void printf(const char* format, ...);
+ virtual void put_char(int val);
+ virtual void puts(const char* a);
+ virtual void putline(const char* a);
 };
 
-class TTDictionaryCallback {
- private:
- // Private copy and assignment
- TTDictionaryCallback& operator=(const TTStreamWriter& other);
- TTDictionaryCallback(const TTStreamWriter& other);
+class TTDictionaryCallback
+{
+private:
+ // Private copy and assignment
+ TTDictionaryCallback& operator=(const TTStreamWriter& other);
+ TTDictionaryCallback(const TTStreamWriter& other);
 
- public:
- TTDictionaryCallback() { }
- virtual ~TTDictionaryCallback() { }
+public:
+ TTDictionaryCallback() { }
+ virtual ~TTDictionaryCallback() { }
 
- virtual void add_pair(const char* key, const char* value) = 0;
+ virtual void add_pair(const char* key, const char* value) = 0;
 };
 
 void replace_newlines_with_spaces(char* a);
@@ -63,14 +67,18 @@
 /*
 * A simple class for all ttconv exceptions.
 */
-class TTException {
- const char* message;
- TTException& operator=(const TTStreamWriter& other);
- TTException(const TTStreamWriter& other);
+class TTException
+{
+ const char* message;
+ TTException& operator=(const TTStreamWriter& other);
+ TTException(const TTStreamWriter& other);
 
- public:
- TTException(const char* message_) : message(message_) { }
- const char* getMessage() { return message; }
+public:
+ TTException(const char* message_) : message(message_) { }
+ const char* getMessage()
+ {
+ return message;
+ }
 };
 
 /*
@@ -89,11 +97,12 @@
 
 /* Do not change anything below this line. */
 
-enum font_type_enum {
- PS_TYPE_3 = 3,
- PS_TYPE_42 = 42,
- PS_TYPE_42_3_HYBRID = 43,
- PDF_TYPE_3 = -3
+enum font_type_enum
+{
+ PS_TYPE_3 = 3,
+ PS_TYPE_42 = 42,
+ PS_TYPE_42_3_HYBRID = 43,
+ PDF_TYPE_3 = -3
 };
 
 /* routines in pprdrv_tt.c */
Modified: branches/v1_0_maint/ttconv/pprdrv_tt.cpp
===================================================================
--- branches/v1_0_maint/ttconv/pprdrv_tt.cpp	2010年12月10日 14:17:29 UTC (rev 8825)
+++ branches/v1_0_maint/ttconv/pprdrv_tt.cpp	2010年12月10日 18:13:22 UTC (rev 8826)
@@ -1,3 +1,5 @@
+/* -*- mode: c++; c-basic-offset: 4 -*- */
+
 /*
 * Modified for use within matplotlib
 * 5 July 2007
@@ -53,49 +55,49 @@
 ** Get an Unsigned 32 bit number.
 */
 ULONG getULONG(BYTE *p)
- {
+{
 int x;
 ULONG val=0;
 
- for(x=0; x<4; x++)
- {
+ for (x=0; x<4; x++)
+ {
 val *= 0x100;
 val += p[x];
- }
+ }
 
 return val;
- } /* end of ftohULONG() */
+} /* end of ftohULONG() */
 
 /*
 ** Get an unsigned 16 bit number.
 */
 USHORT getUSHORT(BYTE *p)
- {
+{
 int x;
 USHORT val=0;
 
- for(x=0; x<2; x++)
- {
+ for (x=0; x<2; x++)
+ {
 val *= 0x100;
 val += p[x];
- }
+ }
 
 return val;
- } /* end of getUSHORT() */
+} /* end of getUSHORT() */
 
 /*
 ** Get a 32 bit fixed point (16.16) number.
 ** A special structure is used to return the value.
 */
 Fixed getFixed(BYTE *s)
- {
+{
 Fixed val={0,0};
 
 val.whole = ((s[0] * 256) + s[1]);
 val.fraction = ((s[2] * 256) + s[3]);
 
 return val;
- } /* end of getFixed() */
+} /* end of getFixed() */
 
 /*-----------------------------------------------------------------------
 ** Load a TrueType font table into memory and return a pointer to it.
@@ -108,21 +110,21 @@
 ** padding spaces.
 -----------------------------------------------------------------------*/
 BYTE *GetTable(struct TTFONT *font, const char *name)
- {
+{
 BYTE *ptr;
 ULONG x;
 
- #ifdef DEBUG_TRUETYPE
+#ifdef DEBUG_TRUETYPE
 debug("GetTable(file,font,\"%s\")",name);
- #endif
+#endif
 
 /* We must search the table directory. */
 ptr = font->offset_table + 12;
 x=0;
- while(TRUE)
+ while (TRUE)
+ {
+ if ( strncmp((const char*)ptr,name,4) == 0 )
 {
- if( strncmp((const char*)ptr,name,4) == 0 )
- {
 ULONG offset,length;
 BYTE *table;
 
@@ -130,30 +132,39 @@
 length = getULONG( ptr + 12 );
 table = (BYTE*)calloc( sizeof(BYTE), length );
 
- try {
+ try
+ {
 #ifdef DEBUG_TRUETYPE
- debug("Loading table \"%s\" from offset %d, %d bytes",name,offset,length);
+ 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 ( 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& ) {
- free(table);
- throw;
+ if ( fread(table,sizeof(BYTE),length,font->file) != (sizeof(BYTE) * length))
+ {
+ throw TTException("TrueType font may be corrupt (reason 4)");
+ }
 }
+ catch (TTException& )
+ {
+ free(table);
+ throw;
+ }
 return table;
- }
+ }
 
 x++;
 ptr += 16;
- if(x == font->numTables)
+ if (x == font->numTables)
+ {
 throw TTException("TrueType font is missing table");
 }
+ }
 
- } /* end of GetTable() */
+} /* end of GetTable() */
 
 /*--------------------------------------------------------------------
 ** Load the 'name' table, get information from it,
@@ -163,7 +174,7 @@
 ** the font, and it's PostScript name.
 --------------------------------------------------------------------*/
 void Read_name(struct TTFONT *font)
- {
+{
 BYTE *table_ptr,*ptr2;
 int numrecords; /* Number of strings in this table */
 BYTE *strings; /* pointer to start of string storage */
@@ -172,169 +183,172 @@
 int language,nameid; /* language id, name id, */
 int offset,length; /* offset and length of string. */
 
- #ifdef DEBUG_TRUETYPE
+#ifdef DEBUG_TRUETYPE
 debug("Read_name()");
- #endif
+#endif
 
 table_ptr = NULL;
 
 /* Set default values to avoid future references to undefined
 * pointers. Allocate each of PostName, FullName, FamilyName,
 * Version, and Style separately so they can be freed safely. */
- for (char **ptr = &(font->PostName); ptr != NULL; ) {
- *ptr = (char*) calloc(sizeof(char), strlen("unknown")+1);
- strcpy(*ptr, "unknown");
- if (ptr == &(font->PostName)) ptr = &(font->FullName);
- else if (ptr == &(font->FullName)) ptr = &(font->FamilyName);
- else if (ptr == &(font->FamilyName)) ptr = &(font->Version);
- else if (ptr == &(font->Version)) ptr = &(font->Style);
- else ptr = NULL;
+ for (char **ptr = &(font->PostName); ptr != NULL; )
+ {
+ *ptr = (char*) calloc(sizeof(char), strlen("unknown")+1);
+ strcpy(*ptr, "unknown");
+ if (ptr == &(font->PostName)) ptr = &(font->FullName);
+ else if (ptr == &(font->FullName)) ptr = &(font->FamilyName);
+ else if (ptr == &(font->FamilyName)) ptr = &(font->Version);
+ else if (ptr == &(font->Version)) ptr = &(font->Style);
+ else ptr = NULL;
 }
 font->Copyright = font->Trademark = (char*)NULL;
 
 table_ptr = GetTable(font, "name"); /* pointer to table */
- try {
- numrecords = getUSHORT( table_ptr + 2 ); /* number of names */
- strings = table_ptr + getUSHORT( table_ptr + 4 ); /* start of string storage */
+ 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)
+ ptr2 = table_ptr + 6;
+ for (x=0; x < numrecords; x++,ptr2+=12)
 {
- platform = getUSHORT(ptr2);
- encoding = getUSHORT(ptr2+2);
- language = getUSHORT(ptr2+4);
- nameid = getUSHORT(ptr2+6);
- length = getUSHORT(ptr2+8);
- offset = getUSHORT(ptr2+10);
+ platform = getUSHORT(ptr2);
+ encoding = getUSHORT(ptr2+2);
+ language = getUSHORT(ptr2+4);
+ nameid = getUSHORT(ptr2+6);
+ length = getUSHORT(ptr2+8);
+ offset = getUSHORT(ptr2+10);
 
 #ifdef DEBUG_TRUETYPE
- debug("platform %d, encoding %d, language 0x%x, name %d, offset %d, length %d",
- platform,encoding,language,nameid,offset,length);
+ debug("platform %d, encoding %d, language 0x%x, name %d, offset %d, length %d",
+ platform,encoding,language,nameid,offset,length);
 #endif
 
- /* Copyright notice */
- if( platform == 1 && nameid == 0 )
+ /* Copyright notice */
+ if ( platform == 1 && nameid == 0 )
 {
- font->Copyright = (char*)calloc(sizeof(char),length+1);
- strncpy(font->Copyright,(const char*)strings+offset,length);
- font->Copyright[length]=(char)NULL;
- replace_newlines_with_spaces(font->Copyright);
+ font->Copyright = (char*)calloc(sizeof(char),length+1);
+ 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);
+ debug("font->Copyright=\"%s\"",font->Copyright);
 #endif
- continue;
+ continue;
 }
 
 
- /* Font Family name */
- if( platform == 1 && nameid == 1 )
+ /* Font Family name */
+ if ( platform == 1 && nameid == 1 )
 {
- free(font->FamilyName);
- font->FamilyName = (char*)calloc(sizeof(char),length+1);
- strncpy(font->FamilyName,(const char*)strings+offset,length);
- font->FamilyName[length]=(char)NULL;
- replace_newlines_with_spaces(font->FamilyName);
+ free(font->FamilyName);
+ font->FamilyName = (char*)calloc(sizeof(char),length+1);
+ 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);
+ debug("font->FamilyName=\"%s\"",font->FamilyName);
 #endif
- continue;
+ continue;
 }
 
 
- /* Font Family name */
- if( platform == 1 && nameid == 2 )
+ /* Font Family name */
+ if ( platform == 1 && nameid == 2 )
 {
- free(font->Style);
- font->Style = (char*)calloc(sizeof(char),length+1);
- strncpy(font->Style,(const char*)strings+offset,length);
- font->Style[length]=(char)NULL;
- replace_newlines_with_spaces(font->Style);
+ free(font->Style);
+ font->Style = (char*)calloc(sizeof(char),length+1);
+ 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);
+ debug("font->Style=\"%s\"",font->Style);
 #endif
- continue;
+ continue;
 }
 
 
- /* Full Font name */
- if( platform == 1 && nameid == 4 )
+ /* Full Font name */
+ if ( platform == 1 && nameid == 4 )
 {
- free(font->FullName);
- font->FullName = (char*)calloc(sizeof(char),length+1);
- strncpy(font->FullName,(const char*)strings+offset,length);
- font->FullName[length]=(char)NULL;
- replace_newlines_with_spaces(font->FullName);
+ free(font->FullName);
+ font->FullName = (char*)calloc(sizeof(char),length+1);
+ 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);
+ debug("font->FullName=\"%s\"",font->FullName);
 #endif
- continue;
+ continue;
 }
 
 
- /* Version string */
- if( platform == 1 && nameid == 5 )
+ /* Version string */
+ if ( platform == 1 && nameid == 5 )
 {
- free(font->Version);
- font->Version = (char*)calloc(sizeof(char),length+1);
- strncpy(font->Version,(const char*)strings+offset,length);
- font->Version[length]=(char)NULL;
- replace_newlines_with_spaces(font->Version);
+ free(font->Version);
+ font->Version = (char*)calloc(sizeof(char),length+1);
+ strncpy(font->Version,(const char*)strings+offset,length);
+ font->Version[length]=(char)NULL;
+ replace_newlines_with_spaces(font->Version);
 
 #ifdef DEBUG_TRUETYPE
- debug("font->Version=\"%s\"",font->Version);
+ debug("font->Version=\"%s\"",font->Version);
 #endif
- continue;
+ continue;
 }
 
 
- /* PostScript name */
- if( platform == 1 && nameid == 6 )
+ /* PostScript name */
+ if ( platform == 1 && nameid == 6 )
 {
- free(font->PostName);
- font->PostName = (char*)calloc(sizeof(char),length+1);
- strncpy(font->PostName,(const char*)strings+offset,length);
- font->PostName[length]=(char)NULL;
- replace_newlines_with_spaces(font->PostName);
+ free(font->PostName);
+ font->PostName = (char*)calloc(sizeof(char),length+1);
+ strncpy(font->PostName,(const char*)strings+offset,length);
+ font->PostName[length]=(char)NULL;
+ replace_newlines_with_spaces(font->PostName);
 
 #ifdef DEBUG_TRUETYPE
- debug("font->PostName=\"%s\"",font->PostName);
+ debug("font->PostName=\"%s\"",font->PostName);
 #endif
- continue;
+ continue;
 }
 
 
- /* Trademark string */
- if( platform == 1 && nameid == 7 )
+ /* Trademark string */
+ if ( platform == 1 && nameid == 7 )
 {
- font->Trademark = (char*)calloc(sizeof(char),length+1);
- strncpy(font->Trademark,(const char*)strings+offset,length);
- font->Trademark[length]=(char)NULL;
- replace_newlines_with_spaces(font->Trademark);
+ font->Trademark = (char*)calloc(sizeof(char),length+1);
+ 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);
+ debug("font->Trademark=\"%s\"",font->Trademark);
 #endif
- continue;
+ continue;
 }
-
 }
- } catch (TTException& ) {
- free(table_ptr);
- throw;
 }
+ catch (TTException& )
+ {
+ free(table_ptr);
+ throw;
+ }
 
 free(table_ptr);
- } /* end of Read_name() */
+} /* end of Read_name() */
 
 /*---------------------------------------------------------------------
 ** Write the header for a PostScript font.
 ---------------------------------------------------------------------*/
 void ttfont_header(TTStreamWriter& stream, struct TTFONT *font)
- {
+{
 int VMMin;
 int VMMax;
 
@@ -345,52 +359,60 @@
 ** specification on which the font is based and the
 ** font manufacturer's revision number for the font.
 */
- if( font->target_type == PS_TYPE_42 ||
- font->target_type == PS_TYPE_42_3_HYBRID)
- {
+ if ( font->target_type == PS_TYPE_42 ||
+ font->target_type == PS_TYPE_42_3_HYBRID)
+ {
 stream.printf("%%!PS-TrueTypeFont-%d.%d-%d.%d\n",
- font->TTVersion.whole, font->TTVersion.fraction,
- font->MfrRevision.whole, font->MfrRevision.fraction);
- }
+ font->TTVersion.whole, font->TTVersion.fraction,
+ font->MfrRevision.whole, font->MfrRevision.fraction);
+ }
 
 /* If it is not a Type 42 font, we will use a different format. */
 else
- {
+ {
 stream.putline("%!PS-Adobe-3.0 Resource-Font");
- } /* See RBIIp 641 */
+ } /* See RBIIp 641 */
 
 /* We will make the title the name of the font. */
 stream.printf("%%%%Title: %s\n",font->FullName);
 
 /* If there is a Copyright notice, put it here too. */
- if( font->Copyright != (char*)NULL )
- stream.printf("%%%%Copyright: %s\n",font->Copyright);
+ if ( font->Copyright != (char*)NULL )
+ {
+ stream.printf("%%%%Copyright: %s\n",font->Copyright);
+ }
 
 /* We created this file. */
- if( font->target_type == PS_TYPE_42 )
+ if ( font->target_type == PS_TYPE_42 )
+ {
 stream.putline("%%Creator: Converted from TrueType to type 42 by PPR");
+ }
 else if (font->target_type == PS_TYPE_42_3_HYBRID)
+ {
 stream.putline("%%Creator: Converted from TypeType to type 42/type 3 hybrid by PPR");
+ }
 else
+ {
 stream.putline("%%Creator: Converted from TrueType to type 3 by PPR");
+ }
 
 /* If VM usage information is available, print it. */
- if( font->target_type == PS_TYPE_42 || font->target_type == PS_TYPE_42_3_HYBRID)
- {
+ if ( font->target_type == PS_TYPE_42 || font->target_type == PS_TYPE_42_3_HYBRID)
+ {
 VMMin = (int)getULONG( font->post_table + 16 );
 VMMax = (int)getULONG( font->post_table + 20 );
- if( VMMin > 0 && VMMax > 0 )
+ if ( VMMin > 0 && VMMax > 0 )
 stream.printf("%%%%VMUsage: %d %d\n",VMMin,VMMax);
- }
+ }
 
 /* Start the dictionary which will eventually */
 /* become the font. */
- if(font->target_type == PS_TYPE_42)
- {
+ if (font->target_type == PS_TYPE_42)
+ {
 stream.putline("15 dict begin");
- }
+ }
 else
- {
+ {
 stream.putline("25 dict begin");
 
 /* Type 3 fonts will need some subroutines here. */
@@ -401,23 +423,30 @@
 stream.putline("/_c{curveto}_d");
 stream.putline("/_sc{7 -1 roll{setcachedevice}{pop pop pop pop pop pop}ifelse}_d");
 stream.putline("/_e{exec}_d");
- }
+ }
 
 stream.printf("/FontName /%s def\n",font->PostName);
 stream.putline("/PaintType 0 def");
 
- if(font->target_type == PS_TYPE_42 || font->target_type == PS_TYPE_42_3_HYBRID)
+ if (font->target_type == PS_TYPE_42 || font->target_type == PS_TYPE_42_3_HYBRID)
+ {
 stream.putline("/FontMatrix[1 0 0 1 0 0]def");
+ }
 else
+ {
 stream.putline("/FontMatrix[.001 0 0 .001 0 0]def");
+ }
 
 stream.printf("/FontBBox[%d %d %d %d]def\n",font->llx,font->lly,font->urx,font->ury);
- if (font->target_type == PS_TYPE_42 || font->target_type == PS_TYPE_42_3_HYBRID) {
+ if (font->target_type == PS_TYPE_42 || font->target_type == PS_TYPE_42_3_HYBRID)
+ {
 stream.printf("/FontType 42 def\n", font->target_type );
- } else {
+ }
+ else
+ {
 stream.printf("/FontType 3 def\n", font->target_type );
 }
- } /* end of ttfont_header() */
+} /* end of ttfont_header() */
 
 /*-------------------------------------------------------------
 ** Define the encoding array for this font.
@@ -426,27 +455,31 @@
 ** one, we just explicitly create one for each font.
 -------------------------------------------------------------*/
 void ttfont_encoding(TTStreamWriter& stream, struct TTFONT *font, std::vector<int>& glyph_ids, font_type_enum target_type)
+{
+ if (target_type == PS_TYPE_3 || target_type == PS_TYPE_42_3_HYBRID)
 {
- if (target_type == PS_TYPE_3 || target_type == PS_TYPE_42_3_HYBRID) {
- stream.printf("/Encoding [ ");
+ stream.printf("/Encoding [ ");
 
- for (std::vector<int>::const_iterator i = glyph_ids.begin();
- i != glyph_ids.end(); ++i) {
- const char* name = ttfont_CharStrings_getname(font, *i);
- stream.printf("/%s ", name);
- }
-
- stream.printf("] def\n");
- } else {
- stream.putline("/Encoding StandardEncoding def");
+ for (std::vector<int>::const_iterator i = glyph_ids.begin();
+ i != glyph_ids.end(); ++i)
+ {
+ const char* name = ttfont_CharStrings_getname(font, *i);
+ stream.printf("/%s ", name);
 }
- } /* end of ttfont_encoding() */
 
+ stream.printf("] def\n");
+ }
+ else
+ {
+ stream.putline("/Encoding StandardEncoding def");
+ }
+} /* end of ttfont_encoding() */
+
 /*-----------------------------------------------------------
 ** Create the optional "FontInfo" sub-dictionary.
 -----------------------------------------------------------*/
 void ttfont_FontInfo(TTStreamWriter& stream, struct TTFONT *font)
- {
+{
 Fixed ItalicAngle;
 
 /* We create a sub dictionary named "FontInfo" where we */
@@ -459,14 +492,14 @@
 stream.printf("/FamilyName (%s) def\n",font->FamilyName);
 stream.printf("/FullName (%s) def\n",font->FullName);
 
- if( font->Copyright != (char*)NULL || font->Trademark != (char*)NULL )
- {
+ if ( font->Copyright != (char*)NULL || font->Trademark != (char*)NULL )
+ {
 stream.printf("/Notice (%s",
- font->Copyright != (char*)NULL ? font->Copyright : "");
+ font->Copyright != (char*)NULL ? font->Copyright : "");
 stream.printf("%s%s) def\n",
- font->Trademark != (char*)NULL ? " " : "",
- font->Trademark != (char*)NULL ? font->Trademark : "");
- }
+ font->Trademark != (char*)NULL ? " " : "",
+ font->Trademark != (char*)NULL ? font->Trademark : "");
+ }
 
 /* This information is not quite correct. */
 stream.printf("/Weight (%s) def\n",font->Style);
@@ -481,7 +514,7 @@
 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() */
+} /* end of ttfont_FontInfo() */
 
 /*-------------------------------------------------------------------
 ** sfnts routines
@@ -500,55 +533,55 @@
 ** This is called once at the start.
 */
 void sfnts_start(TTStreamWriter& stream)
- {
+{
 stream.puts("/sfnts[<");
 in_string=TRUE;
 string_len=0;
 line_len=8;
- } /* end of sfnts_start() */
+} /* end of sfnts_start() */
 
 /*
 ** Write a BYTE as a hexadecimal value as part of the sfnts array.
 */
 void sfnts_pputBYTE(TTStreamWriter& stream, BYTE n)
- {
+{
 static const char hexdigits[]="0123456789ABCDEF";
 
- if(!in_string)
- {
+ if (!in_string)
+ {
 stream.put_char('<');
 string_len=0;
 line_len++;
 in_string=TRUE;
- }
+ }
 
 stream.put_char( hexdigits[ n / 16 ] );
 stream.put_char( hexdigits[ n % 16 ] );
 string_len++;
 line_len+=2;
 
- if(line_len > 70)
- {
+ if (line_len > 70)
+ {
 stream.put_char('\n');
 line_len=0;
- }
+ }
 
- } /* end of sfnts_pputBYTE() */
+} /* end of sfnts_pputBYTE() */
 
 /*
 ** Write a USHORT as a hexadecimal value as part of the sfnts array.
 */
 void sfnts_pputUSHORT(TTStreamWriter& stream, USHORT n)
- {
+{
 sfnts_pputBYTE(stream, n / 256);
 sfnts_pputBYTE(stream, n % 256);
- } /* end of sfnts_pputUSHORT() */
+} /* end of sfnts_pputUSHORT() */
 
 /*
 ** Write a ULONG as part of the sfnts array.
 */
 void sfnts_pputULONG(TTStreamWriter& stream, ULONG n)
- {
+{
 int x1,x2,x3;
 
 x1 = n % 256;
@@ -562,7 +595,7 @@
 sfnts_pputBYTE(stream, x3);
 sfnts_pputBYTE(stream, x2);
 sfnts_pputBYTE(stream, x1);
- } /* end of sfnts_pputULONG() */
+} /* end of sfnts_pputULONG() */
 
 /*
 ** This is called whenever it is
@@ -572,21 +605,21 @@
 ** no longer than 64K characters.)
 */
 void sfnts_end_string(TTStreamWriter& stream)
+{
+ if (in_string)
 {
- if(in_string)
- {
 string_len=0; /* fool sfnts_pputBYTE() */
 
- #ifdef DEBUG_TRUETYPE_INLINE
+#ifdef DEBUG_TRUETYPE_INLINE
 puts("\n% dummy byte:\n");
- #endif
+#endif
 
 sfnts_pputBYTE(stream, 0); /* extra byte for pre-2013 compatibility */
 stream.put_char('>');
 line_len++;
- }
+ }
 in_string=FALSE;
- } /* end of sfnts_end_string() */
+} /* end of sfnts_end_string() */
 
 /*
 ** This is called at the start of each new table.
@@ -595,10 +628,10 @@
 ** in the current string, a new one is started.
 */
 void sfnts_new_table(TTStreamWriter& stream, ULONG length)
- {
- if( (string_len + length) > 65528 )
- sfnts_end_string(stream);
- } /* end of sfnts_new_table() */
+{
+ if ( (string_len + length) > 65528 )
+ sfnts_end_string(stream);
+} /* end of sfnts_new_table() */
 
 /*
 ** We may have to break up the 'glyf' table. That is the reason
@@ -606,7 +639,7 @@
 ** array.
 */
 void sfnts_glyf_table(TTStreamWriter& stream, struct TTFONT *font, ULONG oldoffset, ULONG correct_total_length)
- {
+{
 ULONG off;
 ULONG length;
 int c;
@@ -614,11 +647,12 @@
 int x;
 bool loca_is_local=false;
 
- #ifdef DEBUG_TRUETYPE
+#ifdef DEBUG_TRUETYPE
 debug("sfnts_glyf_table(font,%d)", (int)correct_total_length);
- #endif
+#endif
 
- if (font->loca_table == NULL) {
+ if (font->loca_table == NULL)
+ {
 font->loca_table = GetTable(font,"loca");
 loca_is_local = true;
 }
@@ -627,27 +661,27 @@
 fseek( font->file, oldoffset, SEEK_SET );
 
 /* Copy the glyphs one by one */
- for(x=0; x < font->numGlyphs; x++)
+ for (x=0; x < font->numGlyphs; x++)
+ {
+ /* Read the glyph offset from the index-to-location table. */
+ if (font->indexToLocFormat == 0)
 {
- /* Read the glyph offset from the index-to-location table. */
- if(font->indexToLocFormat == 0)
- {
 off = getUSHORT( font->loca_table + (x * 2) );
 off *= 2;
 length = getUSHORT( font->loca_table + ((x+1) * 2) );
 length *= 2;
 length -= off;
- }
+ }
 else
- {
+ {
 off = getULONG( font->loca_table + (x * 4) );
 length = getULONG( font->loca_table + ((x+1) * 4) );
 length -= off;
- }
+ }
 
- #ifdef DEBUG_TRUETYPE
+#ifdef DEBUG_TRUETYPE
 debug("glyph length=%d",(int)length);
- #endif
+#endif
 
 /* Start new string if necessary. */
 sfnts_new_table( stream, (int)length );
@@ -656,34 +690,37 @@
 ** Make sure the glyph is padded out to a
 ** two byte boundary.
 */
- if( length % 2 )
+ if ( length % 2 ) {
 throw TTException("TrueType font contains a 'glyf' table without 2 byte padding");
+ }
 
 /* Copy the bytes of the glyph. */
- while( length-- )
- {
- if( (c = fgetc(font->file)) == EOF )
+ while ( length-- )
+ {
+ if ( (c = fgetc(font->file)) == EOF ) {
 throw TTException("TrueType font may be corrupt (reason 6)");
+ }
 
 sfnts_pputBYTE(stream, c);
 total++; /* add to running total */
- }
-
 }
 
- if (loca_is_local) {
+ }
+
+ if (loca_is_local)
+ {
 free(font->loca_table);
 font->loca_table = NULL;
 }
 
 /* Pad out to full length from table directory */
- while( total < correct_total_length )
- {
- sfnts_pputBYTE(stream, 0);
+ while ( total < correct_total_length )
+ {
+ sfnts_pputBYTE(stream, 0);
 total++;
- }
+ }
 
- } /* end of sfnts_glyf_table() */
+} /* end of sfnts_glyf_table() */
 
 /*
 ** Here is the routine which ties it all together.
@@ -692,9 +729,10 @@
 ** holds the actual TrueType data.
 */
 void ttfont_sfnts(TTStreamWriter& stream, struct TTFONT *font)
+{
+ static const char *table_names[] = /* The names of all tables */
 {
- static const char *table_names[] = /* The names of all tables */
- { /* which it is worth while */
+ /* which it is worth while */
 "cvt ", /* to include in a Type 42 */
 "fpgm", /* PostScript font. */
 "glyf",
@@ -704,14 +742,15 @@
 "loca",
 "maxp",
 "prep"
- } ;
+ } ;
 
- struct { /* The location of each of */
+ struct /* The location of each of */
+ {
 ULONG oldoffset; /* the above tables. */
 ULONG newoffset;
 ULONG length;
 ULONG checksum;
- } tables[9];
+ } tables[9];
 
 BYTE *ptr; /* A pointer into the origional table directory. */
 ULONG x,y; /* General use loop countes. */
@@ -728,22 +767,23 @@
 ** Find the tables we want and store there vital
 ** statistics in tables[].
 */
- for(x=0; x < 9; x++ )
+ for (x=0; x < 9; x++ )
+ {
+ do
 {
- do {
 diff = strncmp( (char*)ptr, table_names[x], 4 );
 
- if( diff > 0 ) /* If we are past it. */
- {
+ if ( diff > 0 ) /* If we are past it. */
+ {
 tables[x].length = 0;
 diff = 0;
- }
- else if( diff < 0 ) /* If we haven't hit it yet. */
- {
+ }
+ else if ( diff < 0 ) /* If we haven't hit it yet. */
+ {
 ptr += 16;
- }
- else if( diff == 0 ) /* Here it is! */
- {
+ }
+ else if ( diff == 0 ) /* Here it is! */
+ {
 tables[x].newoffset = nextoffset;
 tables[x].checksum = getULONG( ptr + 4 );
 tables[x].oldoffset = getULONG( ptr + 8 );
@@ -751,10 +791,11 @@
 nextoffset += ( ((tables[x].length + 3) / 4) * 4 );
 count++;
 ptr += 16;
- }
- } while(diff != 0);
+ }
+ }
+ while (diff != 0);
 
- } /* end of for loop which passes over the table directory */
+ } /* end of for loop which passes over the table directory */
 
 /* Begin the sfnts array. */
 sfnts_start(stream);
@@ -762,31 +803,33 @@
 /* Generate the offset table header */
 /* Start by copying the TrueType version number. */
 ptr = font->offset_table;
- for(x=0; x < 4; x++)
- {
- sfnts_pputBYTE( stream, *(ptr++) );
- }
+ 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 )
- {
- sfnts_pputUSHORT(stream, 7); /* searchRange */
- sfnts_pputUSHORT(stream, 3); /* entrySelector */
- sfnts_pputUSHORT(stream, 81); /* rangeShift */
- }
- #ifdef DEBUG_TRUETYPE
+ if ( count == 9 )
+ {
+ 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);
- }
- #endif
+ }
+#endif
 
 /* Now, emmit the table directory. */
- for(x=0; x < 9; x++)
+ for (x=0; x < 9; x++)
+ {
+ if ( tables[x].length == 0 ) /* Skip missing tables */
 {
- if( tables[x].length == 0 ) /* Skip missing tables */
 continue;
+ }
 
 /* Name */
 sfnts_pputBYTE( stream, table_names[x][0] );
@@ -802,27 +845,32 @@
 
 /* Length */
 sfnts_pputULONG( stream, tables[x].length );
- }
+ }
 
 /* Now, send the tables */
- for(x=0; x < 9; x++)
+ for (x=0; x < 9; x++)
+ {
+ if ( tables[x].length == 0 ) /* skip tables that aren't there */
 {
- if( tables[x].length == 0 ) /* skip tables that aren't there */
 continue;
+ }
 
- #ifdef DEBUG_TRUETYPE
+#ifdef DEBUG_TRUETYPE
 debug("emmiting table '%s'",table_names[x]);
- #endif
+#endif
 
 /* 'glyf' table gets special treatment */
- if( strcmp(table_names[x],"glyf")==0 )
+ if ( strcmp(table_names[x],"glyf")==0 )
+ {
+ sfnts_glyf_table(stream,font,tables[x].oldoffset,tables[x].length);
+ }
+ else /* Other tables may not exceed */
+ {
+ /* 65535 bytes in length. */
+ if ( tables[x].length > 65535 )
 {
- sfnts_glyf_table(stream,font,tables[x].oldoffset,tables[x].length);
+ throw TTException("TrueType font has a table which is too long");
 }
- 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");
 
 /* Start new string if necessary. */
 sfnts_new_table(stream, tables[x].length);
@@ -831,32 +879,34 @@
 fseek( font->file, tables[x].oldoffset, SEEK_SET );
 
 /* Copy the bytes of the table. */
- for( y=0; y < tables[x].length; y++ )
+ for ( y=0; y < tables[x].length; y++ )
+ {
+ if ( (c = fgetc(font->file)) == EOF )
 {
- 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. */
 y=tables[x].length;
- while( (y % 4) != 0 )
- {
+ while ( (y % 4) != 0 )
+ {
 sfnts_pputBYTE(stream, 0);
 y++;
- #ifdef DEBUG_TRUETYPE_INLINE
+#ifdef DEBUG_TRUETYPE_INLINE
 puts("\n% pad byte:\n");
- #endif
- }
+#endif
+ }
 
- } /* End of loop for all tables */
+ } /* End of loop for all tables */
 
 /* Close the array. */
 sfnts_end_string(stream);
 stream.putline("]def");
- } /* end of ttfont_sfnts() */
+} /* end of ttfont_sfnts() */
 
 /*--------------------------------------------------------------
 ** Create the CharStrings dictionary which will translate
@@ -867,51 +917,53 @@
 ** 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",
-"asterisk","plus", "comma","hyphen","period","slash","zero","one","two",
-"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",
-"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",
-"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",
-"approxequal","Delta","guillemotleft","guillemotright","ellipsis",
-"nobreakspace","Agrave","Atilde","Otilde","OE","oe","endash","emdash",
-"quotedblleft","quotedblright","quoteleft","quoteright","divide","lozenge",
-"ydieresis","Ydieresis","fraction","currency","guilsinglleft","guilsinglright",
-"fi","fl","daggerdbl","periodcentered","quotesinglbase","quotedblbase",
-"perthousand","Acircumflex","Ecircumflex","Aacute","Edieresis","Egrave",
-"Iacute","Icircumflex","Idieresis","Igrave","Oacute","Ocircumflex","apple",
-"Ograve","Uacute","Ucircumflex","Ugrave","dotlessi","circumflex","tilde",
-"macron","breve","dotaccent","ring","cedilla","hungarumlaut","ogonek","caron",
-"Lslash","lslash","Scaron","scaron","Zcaron","zcaron","brokenbar","Eth","eth",
-"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",
-"markingtabrtol","markingtabltor","control","markingdeleteltor",
-"markingdeletertol","option","escape","parbreakltor","parbreakrtol",
-"newpage","checkmark","linebreakltor","linebreakrtol","markingnobreakspace",
-"diamond","appleoutline"};
+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",
+ "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",
+ "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",
+ "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",
+ "approxequal","Delta","guillemotleft","guillemotright","ellipsis",
+ "nobreakspace","Agrave","Atilde","Otilde","OE","oe","endash","emdash",
+ "quotedblleft","quotedblright","quoteleft","quoteright","divide","lozenge",
+ "ydieresis","Ydieresis","fraction","currency","guilsinglleft","guilsinglright",
+ "fi","fl","daggerdbl","periodcentered","quotesinglbase","quotedblbase",
+ "perthousand","Acircumflex","Ecircumflex","Aacute","Edieresis","Egrave",
+ "Iacute","Icircumflex","Idieresis","Igrave","Oacute","Ocircumflex","apple",
+ "Ograve","Uacute","Ucircumflex","Ugrave","dotlessi","circumflex","tilde",
+ "macron","breve","dotaccent","ring","cedilla","hungarumlaut","ogonek","caron",
+ "Lslash","lslash","Scaron","scaron","Zcaron","zcaron","brokenbar","Eth","eth",
+ "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",
+ "markingtabrtol","markingtabltor","control","markingdeleteltor",
+ "markingdeletertol","option","escape","parbreakltor","parbreakrtol",
+ "newpage","checkmark","linebreakltor","linebreakrtol","markingnobreakspace",
+ "diamond","appleoutline"
+};
 
 /*
 ** This routine is called by the one below.
 ** It is also called from pprdrv_tt2.c
 */
 const char *ttfont_CharStrings_getname(struct TTFONT *font, int charindex)
- {
+{
 int GlyphIndex;
 static char temp[80];
 char *ptr;
@@ -919,81 +971,90 @@
 
 GlyphIndex = (int)getUSHORT( font->post_table + 34 + (charindex * 2) );
 
- if( GlyphIndex <= 257 ) /* If a standard Apple name, */
- {
+ if ( GlyphIndex <= 257 ) /* If a standard Apple name, */
+ {
 return Apple_CharStrings[GlyphIndex];
- }
+ }
 else /* Otherwise, use one */
- { /* of the pascal strings. */
+ {
+ /* of the pascal strings. */
 GlyphIndex -= 258;
 
 /* Set pointer to start of Pascal strings. */
 ptr = (char*)(font->post_table + 34 + (font->numGlyphs * 2));
 
 len = (ULONG)*(ptr++); /* Step thru the strings */
- while(GlyphIndex--) /* until we get to the one */
- { /* that we want. */
+ while (GlyphIndex--) /* until we get to the one */
+ {
+ /* that we want. */
 ptr += len;
 len = (ULONG)*(ptr++);
- }
+ }
 
- if( len >= sizeof(temp) )
+ if ( len >= sizeof(temp) )
+ {
 throw TTException("TrueType font file contains a very long PostScript name");
+ }
 
 strncpy(temp,ptr,len); /* Copy the pascal string into */
 temp[len]=(char)NULL; /* a buffer and make it ASCIIz. */
 
 return temp;
- }
- } /* end of ttfont_CharStrings_getname() */
+ }
+} /* end of ttfont_CharStrings_getname() */
 
 /*
 ** This is the central routine of this section.
 */
 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 )
+ 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) {
- if((font->target_type == PS_TYPE_42 || font->target_type == PS_TYPE_42_3_HYBRID)
- && *i < 256) /* type 42 */
- {
+ for (std::vector<int>::const_iterator i = glyph_ids.begin();
+ i != glyph_ids.end(); ++i)
+ {
+ if ((font->target_type == PS_TYPE_42 ||
+ font->target_type == PS_TYPE_42_3_HYBRID)
+ && *i < 256) /* type 42 */
+ {
 stream.printf("/%s %d def\n",ttfont_CharStrings_getname(font, *i), *i);
- }
+ }
 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() */
+} /* end of ttfont_CharStrings() */
 
 /*----------------------------------------------------------------
 ** Emmit the code to finish up the dictionary and turn
 ** it into a font.
 ----------------------------------------------------------------*/
 void ttfont_trailer(TTStreamWriter& stream, struct TTFONT *font)
- {
+{
 /* If we are generating a type 3 font, we need to provide */
 /* a BuildGlyph and BuildChar proceedures. */
- if(font->target_type == PS_TYPE_3 || font->target_type == PS_TYPE_42_3_HYBRID)
- {
+ if (font->target_type == PS_TYPE_3 ||
+ font->target_type == PS_TYPE_42_3_HYBRID)
+ {
 stream.put_char('\n');
 
 stream.putline("/BuildGlyph");
@@ -1013,7 +1074,7 @@
 stream.putline("}_d");
 
 stream.put_char('\n');
- }
+ }
 
 /* If we are generating a type 42 font, we need to check to see */
 /* if this PostScript interpreter understands type 42 fonts. If */
@@ -1022,8 +1083,9 @@
 /* I found out how to do this by examining a TrueType font */
 /* generated by a Macintosh. That is where the TrueType interpreter */
 /* setup instructions and part of BuildGlyph came from. */
- if (font->target_type == PS_TYPE_42 || font->target_type == PS_TYPE_42_3_HYBRID)
- {
+ if (font->target_type == PS_TYPE_42 ||
+ font->target_type == PS_TYPE_42_3_HYBRID)
+ {
 stream.put_char('\n');
 
 /* If we have no "resourcestatus" command, or FontType 42 */
@@ -1064,24 +1126,24 @@
 /* exchange arguments and move the dictionary to the */
 /* dictionary stack. */
 stream.putline(" /BuildGlyph{exch begin");
- /* stack: charname */
+ /* stack: charname */
 
 /* Put two copies of CharStrings on the stack and consume */
 /* one testing to see if the charname is defined in it, */
 /* leave the answer on the stack. */
 stream.putline(" CharStrings dup 2 index known");
- /* stack: charname CharStrings bool */
+ /* stack: charname CharStrings bool */
 
 /* Exchange the CharStrings dictionary and the charname, */
 /* but if the answer was false, replace the character name */
 /* with ".notdef". */
 stream.putline(" {exch}{exch pop /.notdef}ifelse");
- /* stack: CharStrings charname */
+ /* stack: CharStrings charname */
 
 /* Get the value from the CharStrings dictionary and see */
 /* if it is executable. */
 stream.putline(" get dup xcheck");
- /* stack: CharStrings_entry */
+ /* stack: CharStrings_entry */
 
 /* If is a proceedure. Execute according to RBIIp 277-278. */
 stream.putline(" {currentdict systemdict begin begin exec end end}");
@@ -1106,41 +1168,49 @@
 /* rasterizer. */
 stream.putline("}if");
 stream.put_char('\n');
- } /* end of if Type 42 not understood. */
+ } /* end of if Type 42 not understood. */
 
 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.
 ------------------------------------------------------------------*/
 
 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;
 
- if (font.target_type == PS_TYPE_42) {
+ if (font.target_type == PS_TYPE_42)
+ {
 bool has_low = false;
 bool has_high = false;
 
- for(std::vector<int>::const_iterator i = glyph_ids.begin();
- i != glyph_ids.end(); ++i) {
- if (*i > 255) {
+ for (std::vector<int>::const_iterator i = glyph_ids.begin();
+ i != glyph_ids.end(); ++i)
+ {
+ if (*i > 255)
+ {
 has_high = true;
 if (has_low) break;
- } else {
+ }
+ else
+ {
 has_low = true;
 if (has_high) break;
 }
 }
 
- if (has_high && has_low) {
+ if (has_high && has_low)
+ {
 font.target_type = PS_TYPE_42_3_HYBRID;
- } else if (has_high && !has_low) {
+ }
+ else if (has_high && !has_low)
+ {
 font.target_type = PS_TYPE_3;
 }
 }
@@ -1149,55 +1219,68 @@
 font.filename=filename;
 
 /* Open the font file */
- if( (font.file = fopen(filename,"rb")) == (FILE*)NULL )
+ if ( (font.file = fopen(filename,"rb")) == (FILE*)NULL )
+ {
 throw TTException("Failed to open TrueType font");
+ }
 
 /* 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 )
+ 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
+#ifdef DEBUG_TRUETYPE
 debug("numTables=%d",(int)font.numTables);
- #endif
+#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) )
+ 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 );
 
 /* Load the "head" table and extract information from it. */
 ptr = GetTable(&font, "head");
- try {
- font.MfrRevision = getFixed( ptr + 4 ); /* font revision number */
- font.unitsPerEm = getUSHORT( ptr + 18 );
- font.HUPM = font.unitsPerEm / 2;
+ try
+ {
+ font.MfrRevision = getFixed( ptr + 4 ); /* font revision number */
+ font.unitsPerEm = getUSHORT( ptr + 18 );
+ font.HUPM = font.unitsPerEm / 2;
 #ifdef DEBUG_TRUETYPE
- debug("unitsPerEm=%d",(int)font.unitsPerEm);
+ debug("unitsPerEm=%d",(int)font.unitsPerEm);
 #endif
- font.llx = topost2( getFWord( ptr + 36 ) ); /* bounding box info */
- font.lly = topost2( getFWord( ptr + 38 ) );
- font.urx = topost2( getFWord( ptr + 40 ) );
- font.ury = topost2( getFWord( ptr + 42 ) );
- font.indexToLocFormat = getSHORT( ptr + 50 ); /* size of 'loca' data */
- if(font.indexToLocFormat != 0 && font.indexToLocFormat != 1)
- 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& ) {
- free(ptr);
- throw;
+ font.llx = topost2( getFWord( ptr + 36 ) ); /* bounding box info */
+ font.lly = topost2( getFWord( ptr + 38 ) );
+ font.urx = topost2( getFWord( ptr + 40 ) );
+ font.ury = topost2( getFWord( ptr + 42 ) );
+ font.indexToLocFormat = getSHORT( ptr + 50 ); /* size of 'loca' data */
+ if (font.indexToLocFormat != 0 && font.indexToLocFormat != 1)
+ {
+ 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& )
+ {
+ free(ptr);
+ throw;
+ }
 free(ptr);
 
 /* Load information from the "name" table. */
@@ -1211,9 +1294,9 @@
 /* If we are generating a Type 3 font, we will need to */
 /* have the 'loca' and 'glyf' tables arround while */
 /* we are generating the CharStrings. */
- if(font.target_type == PS_TYPE_3 || font.target_type == PDF_TYPE_3 ||
- font.target_type == PS_TYPE_42_3_HYBRID)
- {
+ if (font.target_type == PS_TYPE_3 || font.target_type == PDF_TYPE_3 ||
+ font.target_type == PS_TYPE_42_3_HYBRID)
+ {
 BYTE *ptr; /* We need only one value */
 ptr = GetTable(&font, "hhea");
 font.numberOfHMetrics = getUSHORT(ptr + 34);
@@ -1227,22 +1310,26 @@
 font.hmtx_table = GetTable(&font,"hmtx");
 }
 
- if (glyph_ids.size() == 0) {
+ if (glyph_ids.size() == 0)
+ {
 glyph_ids.clear();
 glyph_ids.reserve(font.numGlyphs);
- for (int x = 0; x < font.numGlyphs; ++x) {
+ for (int x = 0; x < font.numGlyphs; ++x)
+ {
 glyph_ids.push_back(x);
 }
- } else if (font.target_type == PS_TYPE_3 ||
- font.target_type == PS_TYPE_42_3_HYBRID) {
+ }
+ else if (font.target_type == PS_TYPE_3 ||
+ font.target_type == PS_TYPE_42_3_HYBRID)
+ {
 ttfont_add_glyph_dependencies(&font, glyph_ids);
 }
 
- } /* end of insert_ttfont() */
+} /* end of insert_ttfont() */
 
 void insert_ttfont(const char *filename, TTStreamWriter& stream,
 font_type_enum target_type, std::vector<int>& glyph_ids)
- {
+{
 struct TTFONT font;
 
 read_font(filename, target_type, glyph_ids, font);
@@ -1258,9 +1345,11 @@
 
 /* If we are generating a type 42 font, */
 /* emmit the sfnts array. */
- if(font.target_type == PS_TYPE_42 ||
- font.target_type == PS_TYPE_42_3_HYBRID)
- ttfont_sfnts(stream, &font);
+ if (font.target_type == PS_TYPE_42 ||
+ font.target_type == PS_TYPE_42_3_HYBRID)
+ {
+ ttfont_sfnts(stream, &font);
+ }
 
 /* Emmit the CharStrings array. */
 ttfont_CharStrings(stream, &font, glyph_ids);
@@ -1268,27 +1357,33 @@
 /* Send the font trailer. */
 ttfont_trailer(stream, &font);
 
- } /* end of insert_ttfont() */
+} /* end of insert_ttfont() */
 
-class StringStreamWriter : public TTStreamWriter {
+class StringStreamWriter : public TTStreamWriter
+{
 std::ostringstream oss;
 
 public:
- void write(const char* a) {
+ void write(const char* a)
+ {
 oss << a;
 }
- std::string str() {
+
+ std::string str()
+ {
 return oss.str();
 }
 };
 
-void get_pdf_charprocs(const char *filename, std::vector<int>& glyph_ids, TTDictionaryCallback& dict) {
+void get_pdf_charprocs(const char *filename, std::vector<int>& glyph_ids, TTDictionaryCallback& dict)
+{
 struct TTFONT font;
 
 read_font(filename, PDF_TYPE_3, glyph_ids, font);
 
 for (std::vector<int>::const_iterator i = glyph_ids.begin();
- i != glyph_ids.end(); ++i) {
+ i != glyph_ids.end(); ++i)
+ {
 StringStreamWriter writer;
 tt_type3_charproc(writer, &font, *i);
 const char* name = ttfont_CharStrings_getname(&font, *i);
@@ -1310,11 +1405,16 @@
 loca_table(NULL),
 glyf_table(NULL),
 hmtx_table(NULL)
-{ }
+{
 
-TTFONT::~TTFONT() {
+}
+
+TTFONT::~TTFONT()
+{
 if (file)
+ {
 fclose(file);
+ }
 free(PostName);
 free(FullName);
 free(FamilyName);
Modified: branches/v1_0_maint/ttconv/pprdrv_tt2.cpp
===================================================================
--- branches/v1_0_maint/ttconv/pprdrv_tt2.cpp	2010年12月10日 14:17:29 UTC (rev 8825)
+++ branches/v1_0_maint/ttconv/pprdrv_tt2.cpp	2010年12月10日 18:13:22 UTC (rev 8826)
@@ -1,3 +1,5 @@
+/* -*- mode: c++; c-basic-offset: 4 -*- */
+
 /*
 * Modified for use within matplotlib
 * 5 July 2007
@@ -40,7 +42,8 @@
 #include <algorithm>
 #include <stack>
 
-class GlyphToType3 {
+class GlyphToType3
+{
 private:
 GlyphToType3& operator=(const GlyphToType3& other);
 GlyphToType3(const GlyphToType3& other);
@@ -99,53 +102,54 @@
 ** are perfectly accurate, but they do the job.
 */
 void GlyphToType3::stack(TTStreamWriter& stream, int new_elem)
+{
+ if ( !pdf_mode && num_pts > 25 ) /* Only do something of we will */
 {
- if( !pdf_mode && num_pts > 25 ) /* Only do something of we will */
- { /* have a log of points. */
- if(stack_depth == 0)
- {
+ /* have a log of points. */
+ if (stack_depth == 0)
+ {
 stream.put_char('{');
 stack_depth=1;
- }
+ }
 
 stack_depth += new_elem; /* Account for what we propose to add */
 
- if(stack_depth > 100)
- {
+ if (stack_depth > 100)
+ {
 stream.puts("}_e{");
 stack_depth = 3 + new_elem; /* A rough e...
 
[truncated message content]
From: <md...@us...> - 2010年12月10日 14:17:36
Revision: 8825
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8825&view=rev
Author: mdboom
Date: 2010年12月10日 14:17:29 +0000 (2010年12月10日)
Log Message:
-----------
Merged revisions 8824 via svnmerge from 
https://matplotlib.svn.sf.net/svnroot/matplotlib/branches/v1_0_maint
........
 r8824 | mdboom | 2010年12月10日 09:16:11 -0500 (2010年12月10日) | 2 lines
 
 Fix polygon closing on triangle markers (Bug #3102034)
........
Modified Paths:
--------------
 trunk/matplotlib/lib/matplotlib/lines.py
Property Changed:
----------------
 trunk/matplotlib/
Property changes on: trunk/matplotlib
___________________________________________________________________
Modified: svnmerge-integrated
 - /branches/mathtex:1-7263 /branches/v0_91_maint:1-6428 /branches/v0_98_5_maint:1-7253 /branches/v1_0_maint:1-8822 /trunk/matplotlib:1-7315
 + /branches/mathtex:1-7263 /branches/v0_91_maint:1-6428 /branches/v0_98_5_maint:1-7253 /branches/v1_0_maint:1-8824 /trunk/matplotlib:1-7315
Modified: trunk/matplotlib/lib/matplotlib/lines.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/lines.py	2010年12月10日 14:16:11 UTC (rev 8824)
+++ trunk/matplotlib/lib/matplotlib/lines.py	2010年12月10日 14:17:29 UTC (rev 8825)
@@ -800,11 +800,11 @@
 
 
 
- ACCEPTS: [ ``'+'`` | ``'*'`` | ``','`` | ``'.'`` 
+ ACCEPTS: [ ``'+'`` | ``'*'`` | ``','`` | ``'.'``
 | ``'1'`` | ``'2'`` | ``'3'`` | ``'4'``
- | ``'<'`` | ``'>'`` | ``'D'`` | ``'H'`` 
- | ``'^'`` | ``'_'`` | ``'d'`` | ``'h'`` 
- | ``'o'`` | ``'p'`` | ``'s'`` | ``'v'`` 
+ | ``'<'`` | ``'>'`` | ``'D'`` | ``'H'``
+ | ``'^'`` | ``'_'`` | ``'d'`` | ``'h'``
+ | ``'o'`` | ``'p'`` | ``'s'`` | ``'v'``
 | ``'x'`` | ``'|'``
 | TICKUP | TICKDOWN | TICKLEFT | TICKRIGHT
 | CARETUP | CARETDOWN | CARETLEFT | CARETRIGHT
@@ -1072,12 +1072,17 @@
 path, path_trans, rgbFace_alt)
 
 
- _triangle_path = Path([[0.0, 1.0], [-1.0, -1.0], [1.0, -1.0], [0.0, 1.0]])
+ _triangle_path = Path([[0.0, 1.0], [-1.0, -1.0], [1.0, -1.0], [0.0, 1.0]],
+ [Path.MOVETO, Path.LINETO, Path.LINETO, Path.CLOSEPOLY])
 # Going down halfway looks to small. Golden ratio is too far.
- _triangle_path_u = Path([[0.0, 1.0], [-3/5., -1/5.], [3/5., -1/5.], [0.0, 1.0]])
- _triangle_path_d = Path([[-3/5., -1/5.], [3/5., -1/5.], [1.0, -1.0], [-1.0, -1.0], [-3/5., -1/5.]])
- _triangle_path_l = Path([[0.0, 1.0], [0.0, -1.0], [-1.0, -1.0], [0.0, 1.0]])
- _triangle_path_r = Path([[0.0, 1.0], [0.0, -1.0], [1.0, -1.0], [0.0, 1.0]])
+ _triangle_path_u = Path([[0.0, 1.0], [-3/5., -1/5.], [3/5., -1/5.], [0.0, 1.0]],
+ [Path.MOVETO, Path.LINETO, Path.LINETO, Path.CLOSEPOLY])
+ _triangle_path_d = Path([[-3/5., -1/5.], [3/5., -1/5.], [1.0, -1.0], [-1.0, -1.0], [-3/5., -1/5.]],
+ [Path.MOVETO, Path.LINETO, Path.LINETO, Path.LINETO, Path.CLOSEPOLY])
+ _triangle_path_l = Path([[0.0, 1.0], [0.0, -1.0], [-1.0, -1.0], [0.0, 1.0]],
+ [Path.MOVETO, Path.LINETO, Path.LINETO, Path.CLOSEPOLY])
+ _triangle_path_r = Path([[0.0, 1.0], [0.0, -1.0], [1.0, -1.0], [0.0, 1.0]],
+ [Path.MOVETO, Path.LINETO, Path.LINETO, Path.CLOSEPOLY])
 def _draw_triangle(self, renderer, gc, path, path_trans, direction):
 gc.set_snap(renderer.points_to_pixels(self._markersize) >= 5.0)
 offset = 0.5*renderer.points_to_pixels(self._markersize)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
From: <md...@us...> - 2010年12月10日 14:16:17
Revision: 8824
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8824&view=rev
Author: mdboom
Date: 2010年12月10日 14:16:11 +0000 (2010年12月10日)
Log Message:
-----------
Fix polygon closing on triangle markers (Bug #3102034)
Modified Paths:
--------------
 branches/v1_0_maint/lib/matplotlib/lines.py
Modified: branches/v1_0_maint/lib/matplotlib/lines.py
===================================================================
--- branches/v1_0_maint/lib/matplotlib/lines.py	2010年12月10日 14:04:30 UTC (rev 8823)
+++ branches/v1_0_maint/lib/matplotlib/lines.py	2010年12月10日 14:16:11 UTC (rev 8824)
@@ -797,11 +797,11 @@
 
 
 
- ACCEPTS: [ ``'+'`` | ``'*'`` | ``','`` | ``'.'`` 
+ ACCEPTS: [ ``'+'`` | ``'*'`` | ``','`` | ``'.'``
 | ``'1'`` | ``'2'`` | ``'3'`` | ``'4'``
- | ``'<'`` | ``'>'`` | ``'D'`` | ``'H'`` 
- | ``'^'`` | ``'_'`` | ``'d'`` | ``'h'`` 
- | ``'o'`` | ``'p'`` | ``'s'`` | ``'v'`` 
+ | ``'<'`` | ``'>'`` | ``'D'`` | ``'H'``
+ | ``'^'`` | ``'_'`` | ``'d'`` | ``'h'``
+ | ``'o'`` | ``'p'`` | ``'s'`` | ``'v'``
 | ``'x'`` | ``'|'``
 | TICKUP | TICKDOWN | TICKLEFT | TICKRIGHT
 | CARETUP | CARETDOWN | CARETLEFT | CARETRIGHT
@@ -1069,12 +1069,17 @@
 path, path_trans, rgbFace_alt)
 
 
- _triangle_path = Path([[0.0, 1.0], [-1.0, -1.0], [1.0, -1.0], [0.0, 1.0]])
+ _triangle_path = Path([[0.0, 1.0], [-1.0, -1.0], [1.0, -1.0], [0.0, 1.0]],
+ [Path.MOVETO, Path.LINETO, Path.LINETO, Path.CLOSEPOLY])
 # Going down halfway looks to small. Golden ratio is too far.
- _triangle_path_u = Path([[0.0, 1.0], [-3/5., -1/5.], [3/5., -1/5.], [0.0, 1.0]])
- _triangle_path_d = Path([[-3/5., -1/5.], [3/5., -1/5.], [1.0, -1.0], [-1.0, -1.0], [-3/5., -1/5.]])
- _triangle_path_l = Path([[0.0, 1.0], [0.0, -1.0], [-1.0, -1.0], [0.0, 1.0]])
- _triangle_path_r = Path([[0.0, 1.0], [0.0, -1.0], [1.0, -1.0], [0.0, 1.0]])
+ _triangle_path_u = Path([[0.0, 1.0], [-3/5., -1/5.], [3/5., -1/5.], [0.0, 1.0]],
+ [Path.MOVETO, Path.LINETO, Path.LINETO, Path.CLOSEPOLY])
+ _triangle_path_d = Path([[-3/5., -1/5.], [3/5., -1/5.], [1.0, -1.0], [-1.0, -1.0], [-3/5., -1/5.]],
+ [Path.MOVETO, Path.LINETO, Path.LINETO, Path.LINETO, Path.CLOSEPOLY])
+ _triangle_path_l = Path([[0.0, 1.0], [0.0, -1.0], [-1.0, -1.0], [0.0, 1.0]],
+ [Path.MOVETO, Path.LINETO, Path.LINETO, Path.CLOSEPOLY])
+ _triangle_path_r = Path([[0.0, 1.0], [0.0, -1.0], [1.0, -1.0], [0.0, 1.0]],
+ [Path.MOVETO, Path.LINETO, Path.LINETO, Path.CLOSEPOLY])
 def _draw_triangle(self, renderer, gc, path, path_trans, direction):
 gc.set_snap(renderer.points_to_pixels(self._markersize) >= 5.0)
 offset = 0.5*renderer.points_to_pixels(self._markersize)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
From: <md...@us...> - 2010年12月10日 14:04:36
Revision: 8823
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8823&view=rev
Author: mdboom
Date: 2010年12月10日 14:04:30 +0000 (2010年12月10日)
Log Message:
-----------
Merged revisions 8822 via svnmerge from 
https://matplotlib.svn.sf.net/svnroot/matplotlib/branches/v1_0_maint
........
 r8822 | mdboom | 2010年12月10日 09:01:00 -0500 (2010年12月10日) | 2 lines
 
 Handle Unicode characters in Postscript Type 42 fonts by creating hybrid Type 42/Type 3 fonts.
........
Modified Paths:
--------------
 trunk/matplotlib/ttconv/pprdrv.h
 trunk/matplotlib/ttconv/pprdrv_tt.cpp
 trunk/matplotlib/ttconv/pprdrv_tt2.cpp
Property Changed:
----------------
 trunk/matplotlib/
Property changes on: trunk/matplotlib
___________________________________________________________________
Modified: svnmerge-integrated
 - /branches/mathtex:1-7263 /branches/v0_91_maint:1-6428 /branches/v0_98_5_maint:1-7253 /branches/v1_0_maint:1-8820 /trunk/matplotlib:1-7315
 + /branches/mathtex:1-7263 /branches/v0_91_maint:1-6428 /branches/v0_98_5_maint:1-7253 /branches/v1_0_maint:1-8822 /trunk/matplotlib:1-7315
Modified: trunk/matplotlib/ttconv/pprdrv.h
===================================================================
--- trunk/matplotlib/ttconv/pprdrv.h	2010年12月10日 14:01:00 UTC (rev 8822)
+++ trunk/matplotlib/ttconv/pprdrv.h	2010年12月10日 14:04:30 UTC (rev 8823)
@@ -94,6 +94,7 @@
 enum font_type_enum {
 PS_TYPE_3 = 3,
 PS_TYPE_42 = 42,
+ PS_TYPE_42_3_HYBRID = 43,
 PDF_TYPE_3 = -3
 };
 
Modified: trunk/matplotlib/ttconv/pprdrv_tt.cpp
===================================================================
--- trunk/matplotlib/ttconv/pprdrv_tt.cpp	2010年12月10日 14:01:00 UTC (rev 8822)
+++ trunk/matplotlib/ttconv/pprdrv_tt.cpp	2010年12月10日 14:04:30 UTC (rev 8823)
@@ -347,7 +347,8 @@
 ** specification on which the font is based and the
 ** font manufacturer's revision number for the font.
 */
- if( font->target_type == PS_TYPE_42 )
+ if( font->target_type == PS_TYPE_42 ||
+ font->target_type == PS_TYPE_42_3_HYBRID)
 {
 stream.printf("%%!PS-TrueTypeFont-%d.%d-%d.%d\n",
 font->TTVersion.whole, font->TTVersion.fraction,
@@ -370,11 +371,13 @@
 /* We created this file. */
 if( font->target_type == PS_TYPE_42 )
 stream.putline("%%Creator: Converted from TrueType to type 42 by PPR");
+ else if (font->target_type == PS_TYPE_42_3_HYBRID)
+ stream.putline("%%Creator: Converted from TypeType to type 42/type 3 hybrid by PPR");
 else
- stream.putline("%%Creator: Converted from TrueType by PPR");
+ stream.putline("%%Creator: Converted from TrueType to type 3 by PPR");
 
 /* If VM usage information is available, print it. */
- if( font->target_type == PS_TYPE_42 )
+ if( font->target_type == PS_TYPE_42 || font->target_type == PS_TYPE_42_3_HYBRID)
 {
 VMMin = (int)getULONG( font->post_table + 16 );
 VMMax = (int)getULONG( font->post_table + 20 );
@@ -384,7 +387,7 @@
 
 /* Start the dictionary which will eventually */
 /* become the font. */
- if( font->target_type != PS_TYPE_3 )
+ if(font->target_type == PS_TYPE_42)
 {
 stream.putline("15 dict begin");
 }
@@ -405,13 +408,17 @@
 stream.printf("/FontName /%s def\n",font->PostName);
 stream.putline("/PaintType 0 def");
 
- if(font->target_type == PS_TYPE_42)
+ if(font->target_type == PS_TYPE_42 || font->target_type == PS_TYPE_42_3_HYBRID)
 stream.putline("/FontMatrix[1 0 0 1 0 0]def");
 else
 stream.putline("/FontMatrix[.001 0 0 .001 0 0]def");
 
 stream.printf("/FontBBox[%d %d %d %d]def\n",font->llx,font->lly,font->urx,font->ury);
- stream.printf("/FontType %d def\n", font->target_type );
+ if (font->target_type == PS_TYPE_42 || font->target_type == PS_TYPE_42_3_HYBRID) {
+ stream.printf("/FontType 42 def\n", font->target_type );
+ } else {
+ stream.printf("/FontType 3 def\n", font->target_type );
+ }
 } /* end of ttfont_header() */
 
 /*-------------------------------------------------------------
@@ -422,7 +429,7 @@
 -------------------------------------------------------------*/
 void ttfont_encoding(TTStreamWriter& stream, struct TTFONT *font, std::vector<int>& glyph_ids, font_type_enum target_type)
 {
- if (target_type == PS_TYPE_3) {
+ if (target_type == PS_TYPE_3 || target_type == PS_TYPE_42_3_HYBRID) {
 stream.printf("/Encoding [ ");
 
 for (std::vector<int>::const_iterator i = glyph_ids.begin();
@@ -607,13 +614,16 @@
 int c;
 ULONG total=0; /* running total of bytes written to table */
 int x;
+ bool loca_is_local=false;
 
 #ifdef DEBUG_TRUETYPE
 debug("sfnts_glyf_table(font,%d)", (int)correct_total_length);
 #endif
 
- assert(font->loca_table == NULL);
- font->loca_table = GetTable(font,"loca");
+ if (font->loca_table == NULL) {
+ font->loca_table = GetTable(font,"loca");
+ loca_is_local = true;
+ }
 
 /* Seek to proper position in the file. */
 fseek( font->file, oldoffset, SEEK_SET );
@@ -663,8 +673,10 @@
 
 }
 
- free(font->loca_table);
- font->loca_table = NULL;
+ if (loca_is_local) {
+ free(font->loca_table);
+ font->loca_table = NULL;
+ }
 
 /* Pad out to full length from table directory */
 while( total < correct_total_length )
@@ -955,9 +967,9 @@
 
 /* Emmit one key-value pair for each glyph. */
 for(std::vector<int>::const_iterator i = glyph_ids.begin();
- i != glyph_ids.end(); ++i)
- {
- if(font->target_type == PS_TYPE_42) /* type 42 */
+ i != glyph_ids.end(); ++i) {
+ if((font->target_type == PS_TYPE_42 || font->target_type == PS_TYPE_42_3_HYBRID)
+ && *i < 256) /* type 42 */
 {
 stream.printf("/%s %d def\n",ttfont_CharStrings_getname(font, *i), *i);
 }
@@ -982,7 +994,7 @@
 {
 /* If we are generating a type 3 font, we need to provide */
 /* a BuildGlyph and BuildChar proceedures. */
- if( font->target_type == PS_TYPE_3 )
+ if(font->target_type == PS_TYPE_3 || font->target_type == PS_TYPE_42_3_HYBRID)
 {
 stream.put_char('\n');
 
@@ -1012,7 +1024,7 @@
 /* I found out how to do this by examining a TrueType font */
 /* generated by a Macintosh. That is where the TrueType interpreter */
 /* setup instructions and part of BuildGlyph came from. */
- else if( font->target_type == PS_TYPE_42 )
+ if (font->target_type == PS_TYPE_42 || font->target_type == PS_TYPE_42_3_HYBRID)
 {
 stream.put_char('\n');
 
@@ -1113,6 +1125,28 @@
 /* Decide what type of PostScript font we will be generating. */
 font.target_type = target_type;
 
+ if (font.target_type == PS_TYPE_42) {
+ bool has_low = false;
+ bool has_high = false;
+
+ for(std::vector<int>::const_iterator i = glyph_ids.begin();
+ i != glyph_ids.end(); ++i) {
+ if (*i > 255) {
+ has_high = true;
+ if (has_low) break;
+ } else {
+ has_low = true;
+ if (has_high) break;
+ }
+ }
+
+ if (has_high && has_low) {
+ font.target_type = PS_TYPE_42_3_HYBRID;
+ } else if (has_high && !has_low) {
+ font.target_type = PS_TYPE_3;
+ }
+ }
+
 /* Save the file name for error messages. */
 font.filename=filename;
 
@@ -1179,7 +1213,8 @@
 /* If we are generating a Type 3 font, we will need to */
 /* have the 'loca' and 'glyf' tables arround while */
 /* we are generating the CharStrings. */
- if(font.target_type == PS_TYPE_3 || font.target_type == PDF_TYPE_3)
+ if(font.target_type == PS_TYPE_3 || font.target_type == PDF_TYPE_3 ||
+ font.target_type == PS_TYPE_42_3_HYBRID)
 {
 BYTE *ptr; /* We need only one value */
 ptr = GetTable(&font, "hhea");
@@ -1200,7 +1235,8 @@
 for (int x = 0; x < font.numGlyphs; ++x) {
 glyph_ids.push_back(x);
 }
- } else if (font.target_type == PS_TYPE_3) {
+ } else if (font.target_type == PS_TYPE_3 ||
+ font.target_type == PS_TYPE_42_3_HYBRID) {
 ttfont_add_glyph_dependencies(&font, glyph_ids);
 }
 
@@ -1224,7 +1260,8 @@
 
 /* If we are generating a type 42 font, */
 /* emmit the sfnts array. */
- if( font.target_type == PS_TYPE_42 )
+ if(font.target_type == PS_TYPE_42 ||
+ font.target_type == PS_TYPE_42_3_HYBRID)
 ttfont_sfnts(stream, &font);
 
 /* Emmit the CharStrings array. */
Modified: trunk/matplotlib/ttconv/pprdrv_tt2.cpp
===================================================================
--- trunk/matplotlib/ttconv/pprdrv_tt2.cpp	2010年12月10日 14:01:00 UTC (rev 8822)
+++ trunk/matplotlib/ttconv/pprdrv_tt2.cpp	2010年12月10日 14:04:30 UTC (rev 8823)
@@ -711,10 +711,15 @@
 stream.printf("%d 0 %d %d %d %d d1\n",
 topost(advance_width),
 topost(llx), topost(lly), topost(urx), topost(ury) );
- } else
+ } else if (font->target_type == PS_TYPE_42_3_HYBRID) {
+ stream.printf("pop gsave .001 .001 scale %d 0 %d %d %d %d setcachedevice\n",
+ topost(advance_width),
+ topost(llx), topost(lly), topost(urx), topost(ury) );
+ } else {
 stream.printf("%d 0 %d %d %d %d _sc\n",
 topost(advance_width),
 topost(llx), topost(lly), topost(urx), topost(ury) );
+ }
 
 /* If it is a simple glyph, convert it, */
 /* otherwise, close the stack business. */
@@ -727,6 +732,10 @@
 do_composite(stream, font, glyph);
 }
 
+ if (font->target_type == PS_TYPE_42_3_HYBRID) {
+ stream.printf("\ngrestore\n");
+ }
+
 stack_end(stream);
 }
 
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
From: <md...@us...> - 2010年12月10日 14:01:07
Revision: 8822
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8822&view=rev
Author: mdboom
Date: 2010年12月10日 14:01:00 +0000 (2010年12月10日)
Log Message:
-----------
Handle Unicode characters in Postscript Type 42 fonts by creating hybrid Type 42/Type 3 fonts.
Modified Paths:
--------------
 branches/v1_0_maint/ttconv/pprdrv.h
 branches/v1_0_maint/ttconv/pprdrv_tt.cpp
 branches/v1_0_maint/ttconv/pprdrv_tt2.cpp
Modified: branches/v1_0_maint/ttconv/pprdrv.h
===================================================================
--- branches/v1_0_maint/ttconv/pprdrv.h	2010年12月09日 19:06:03 UTC (rev 8821)
+++ branches/v1_0_maint/ttconv/pprdrv.h	2010年12月10日 14:01:00 UTC (rev 8822)
@@ -84,7 +84,7 @@
 ** code you want to have included.
 */
 #ifdef DEBUG
-#define DEBUG_TRUETYPE 		/* truetype fonts, conversion to Postscript */
+#define DEBUG_TRUETYPE /* truetype fonts, conversion to Postscript */
 #endif
 
 /* Do not change anything below this line. */
@@ -92,6 +92,7 @@
 enum font_type_enum {
 PS_TYPE_3 = 3,
 PS_TYPE_42 = 42,
+ PS_TYPE_42_3_HYBRID = 43,
 PDF_TYPE_3 = -3
 };
 
Modified: branches/v1_0_maint/ttconv/pprdrv_tt.cpp
===================================================================
--- branches/v1_0_maint/ttconv/pprdrv_tt.cpp	2010年12月09日 19:06:03 UTC (rev 8821)
+++ branches/v1_0_maint/ttconv/pprdrv_tt.cpp	2010年12月10日 14:01:00 UTC (rev 8822)
@@ -345,7 +345,8 @@
 ** specification on which the font is based and the
 ** font manufacturer's revision number for the font.
 */
- if( font->target_type == PS_TYPE_42 )
+ if( font->target_type == PS_TYPE_42 ||
+ font->target_type == PS_TYPE_42_3_HYBRID)
 {
 stream.printf("%%!PS-TrueTypeFont-%d.%d-%d.%d\n",
 font->TTVersion.whole, font->TTVersion.fraction,
@@ -368,11 +369,13 @@
 /* We created this file. */
 if( font->target_type == PS_TYPE_42 )
 stream.putline("%%Creator: Converted from TrueType to type 42 by PPR");
+ else if (font->target_type == PS_TYPE_42_3_HYBRID)
+ stream.putline("%%Creator: Converted from TypeType to type 42/type 3 hybrid by PPR");
 else
- stream.putline("%%Creator: Converted from TrueType by PPR");
+ stream.putline("%%Creator: Converted from TrueType to type 3 by PPR");
 
 /* If VM usage information is available, print it. */
- if( font->target_type == PS_TYPE_42 )
+ if( font->target_type == PS_TYPE_42 || font->target_type == PS_TYPE_42_3_HYBRID)
 {
 VMMin = (int)getULONG( font->post_table + 16 );
 VMMax = (int)getULONG( font->post_table + 20 );
@@ -382,7 +385,7 @@
 
 /* Start the dictionary which will eventually */
 /* become the font. */
- if( font->target_type != PS_TYPE_3 )
+ if(font->target_type == PS_TYPE_42)
 {
 stream.putline("15 dict begin");
 }
@@ -403,13 +406,17 @@
 stream.printf("/FontName /%s def\n",font->PostName);
 stream.putline("/PaintType 0 def");
 
- if(font->target_type == PS_TYPE_42)
+ if(font->target_type == PS_TYPE_42 || font->target_type == PS_TYPE_42_3_HYBRID)
 stream.putline("/FontMatrix[1 0 0 1 0 0]def");
 else
 stream.putline("/FontMatrix[.001 0 0 .001 0 0]def");
 
 stream.printf("/FontBBox[%d %d %d %d]def\n",font->llx,font->lly,font->urx,font->ury);
- stream.printf("/FontType %d def\n", font->target_type );
+ if (font->target_type == PS_TYPE_42 || font->target_type == PS_TYPE_42_3_HYBRID) {
+ stream.printf("/FontType 42 def\n", font->target_type );
+ } else {
+ stream.printf("/FontType 3 def\n", font->target_type );
+ }
 } /* end of ttfont_header() */
 
 /*-------------------------------------------------------------
@@ -420,7 +427,7 @@
 -------------------------------------------------------------*/
 void ttfont_encoding(TTStreamWriter& stream, struct TTFONT *font, std::vector<int>& glyph_ids, font_type_enum target_type)
 {
- if (target_type == PS_TYPE_3) {
+ if (target_type == PS_TYPE_3 || target_type == PS_TYPE_42_3_HYBRID) {
 stream.printf("/Encoding [ ");
 
 for (std::vector<int>::const_iterator i = glyph_ids.begin();
@@ -605,13 +612,16 @@
 int c;
 ULONG total=0; /* running total of bytes written to table */
 int x;
+ bool loca_is_local=false;
 
 #ifdef DEBUG_TRUETYPE
 debug("sfnts_glyf_table(font,%d)", (int)correct_total_length);
 #endif
 
- assert(font->loca_table == NULL);
- font->loca_table = GetTable(font,"loca");
+ if (font->loca_table == NULL) {
+ font->loca_table = GetTable(font,"loca");
+ loca_is_local = true;
+ }
 
 /* Seek to proper position in the file. */
 fseek( font->file, oldoffset, SEEK_SET );
@@ -661,8 +671,10 @@
 
 }
 
- free(font->loca_table);
- font->loca_table = NULL;
+ if (loca_is_local) {
+ free(font->loca_table);
+ font->loca_table = NULL;
+ }
 
 /* Pad out to full length from table directory */
 while( total < correct_total_length )
@@ -953,9 +965,9 @@
 
 /* Emmit one key-value pair for each glyph. */
 for(std::vector<int>::const_iterator i = glyph_ids.begin();
- i != glyph_ids.end(); ++i)
- {
- if(font->target_type == PS_TYPE_42) /* type 42 */
+ i != glyph_ids.end(); ++i) {
+ if((font->target_type == PS_TYPE_42 || font->target_type == PS_TYPE_42_3_HYBRID)
+ && *i < 256) /* type 42 */
 {
 stream.printf("/%s %d def\n",ttfont_CharStrings_getname(font, *i), *i);
 }
@@ -980,7 +992,7 @@
 {
 /* If we are generating a type 3 font, we need to provide */
 /* a BuildGlyph and BuildChar proceedures. */
- if( font->target_type == PS_TYPE_3 )
+ if(font->target_type == PS_TYPE_3 || font->target_type == PS_TYPE_42_3_HYBRID)
 {
 stream.put_char('\n');
 
@@ -1010,7 +1022,7 @@
 /* I found out how to do this by examining a TrueType font */
 /* generated by a Macintosh. That is where the TrueType interpreter */
 /* setup instructions and part of BuildGlyph came from. */
- else if( font->target_type == PS_TYPE_42 )
+ if (font->target_type == PS_TYPE_42 || font->target_type == PS_TYPE_42_3_HYBRID)
 {
 stream.put_char('\n');
 
@@ -1111,6 +1123,28 @@
 /* Decide what type of PostScript font we will be generating. */
 font.target_type = target_type;
 
+ if (font.target_type == PS_TYPE_42) {
+ bool has_low = false;
+ bool has_high = false;
+
+ for(std::vector<int>::const_iterator i = glyph_ids.begin();
+ i != glyph_ids.end(); ++i) {
+ if (*i > 255) {
+ has_high = true;
+ if (has_low) break;
+ } else {
+ has_low = true;
+ if (has_high) break;
+ }
+ }
+
+ if (has_high && has_low) {
+ font.target_type = PS_TYPE_42_3_HYBRID;
+ } else if (has_high && !has_low) {
+ font.target_type = PS_TYPE_3;
+ }
+ }
+
 /* Save the file name for error messages. */
 font.filename=filename;
 
@@ -1177,7 +1211,8 @@
 /* If we are generating a Type 3 font, we will need to */
 /* have the 'loca' and 'glyf' tables arround while */
 /* we are generating the CharStrings. */
- if(font.target_type == PS_TYPE_3 || font.target_type == PDF_TYPE_3)
+ if(font.target_type == PS_TYPE_3 || font.target_type == PDF_TYPE_3 ||
+ font.target_type == PS_TYPE_42_3_HYBRID)
 {
 BYTE *ptr; /* We need only one value */
 ptr = GetTable(&font, "hhea");
@@ -1198,7 +1233,8 @@
 for (int x = 0; x < font.numGlyphs; ++x) {
 glyph_ids.push_back(x);
 }
- } else if (font.target_type == PS_TYPE_3) {
+ } else if (font.target_type == PS_TYPE_3 ||
+ font.target_type == PS_TYPE_42_3_HYBRID) {
 ttfont_add_glyph_dependencies(&font, glyph_ids);
 }
 
@@ -1222,7 +1258,8 @@
 
 /* If we are generating a type 42 font, */
 /* emmit the sfnts array. */
- if( font.target_type == PS_TYPE_42 )
+ if(font.target_type == PS_TYPE_42 ||
+ font.target_type == PS_TYPE_42_3_HYBRID)
 ttfont_sfnts(stream, &font);
 
 /* Emmit the CharStrings array. */
Modified: branches/v1_0_maint/ttconv/pprdrv_tt2.cpp
===================================================================
--- branches/v1_0_maint/ttconv/pprdrv_tt2.cpp	2010年12月09日 19:06:03 UTC (rev 8821)
+++ branches/v1_0_maint/ttconv/pprdrv_tt2.cpp	2010年12月10日 14:01:00 UTC (rev 8822)
@@ -709,10 +709,15 @@
 stream.printf("%d 0 %d %d %d %d d1\n",
 topost(advance_width),
 topost(llx), topost(lly), topost(urx), topost(ury) );
- } else
+ } else if (font->target_type == PS_TYPE_42_3_HYBRID) {
+ stream.printf("pop gsave .001 .001 scale %d 0 %d %d %d %d setcachedevice\n",
+ topost(advance_width),
+ topost(llx), topost(lly), topost(urx), topost(ury) );
+ } else {
 stream.printf("%d 0 %d %d %d %d _sc\n",
 topost(advance_width),
 topost(llx), topost(lly), topost(urx), topost(ury) );
+ }
 
 /* If it is a simple glyph, convert it, */
 /* otherwise, close the stack business. */
@@ -725,6 +730,10 @@
 do_composite(stream, font, glyph);
 }
 
+ if (font->target_type == PS_TYPE_42_3_HYBRID) {
+ stream.printf("\ngrestore\n");
+ }
+
 stack_end(stream);
 }
 
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
From: <md...@us...> - 2010年12月09日 19:06:09
Revision: 8821
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8821&view=rev
Author: mdboom
Date: 2010年12月09日 19:06:03 +0000 (2010年12月09日)
Log Message:
-----------
Merged revisions 8819-8820 via svnmerge from 
https://matplotlib.svn.sf.net/svnroot/matplotlib/branches/v1_0_maint
........
 r8819 | mdboom | 2010年12月09日 12:25:11 -0500 (2010年12月09日) | 2 lines
 
 [3123736] tex processor crashes when fed a space
........
 r8820 | mdboom | 2010年12月09日 12:26:54 -0500 (2010年12月09日) | 2 lines
 
 Fixed error message in Agg backend.
........
Modified Paths:
--------------
 trunk/matplotlib/lib/matplotlib/text.py
 trunk/matplotlib/src/_backend_agg.cpp
Property Changed:
----------------
 trunk/matplotlib/
Property changes on: trunk/matplotlib
___________________________________________________________________
Modified: svnmerge-integrated
 - /branches/mathtex:1-7263 /branches/v0_91_maint:1-6428 /branches/v0_98_5_maint:1-7253 /branches/v1_0_maint:1-8817 /trunk/matplotlib:1-7315
 + /branches/mathtex:1-7263 /branches/v0_91_maint:1-6428 /branches/v0_98_5_maint:1-7253 /branches/v1_0_maint:1-8820 /trunk/matplotlib:1-7315
Modified: trunk/matplotlib/lib/matplotlib/text.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/text.py	2010年12月09日 17:26:54 UTC (rev 8820)
+++ trunk/matplotlib/lib/matplotlib/text.py	2010年12月09日 19:06:03 UTC (rev 8821)
@@ -551,6 +551,9 @@
 
 if rcParams['text.usetex']:
 for line, wh, x, y in info:
+ if not np.isfinite(x) or not np.isfinite(y):
+ continue
+
 x = x + posx
 y = y + posy
 if renderer.flipy():
@@ -566,6 +569,9 @@
 self._fontproperties, angle)
 else:
 for line, wh, x, y in info:
+ if not np.isfinite(x) or not np.isfinite(y):
+ continue
+
 x = x + posx
 y = y + posy
 if renderer.flipy():
@@ -974,6 +980,8 @@
 # Did we find an even number of non-escaped dollar signs?
 # If so, treat is as math text.
 if rcParams['text.usetex']:
+ if s == ' ':
+ s = r'\ '
 return s, 'TeX'
 
 if cbook.is_math_text(s):
Modified: trunk/matplotlib/src/_backend_agg.cpp
===================================================================
--- trunk/matplotlib/src/_backend_agg.cpp	2010年12月09日 17:26:54 UTC (rev 8820)
+++ trunk/matplotlib/src/_backend_agg.cpp	2010年12月09日 19:06:03 UTC (rev 8821)
@@ -556,7 +556,7 @@
 }
 catch (Py::TypeError)
 {
- throw Py::TypeError("Invalid input arguments to draw_text_image");
+ throw Py::TypeError("Invalid input arguments to restore_region2");
 }
 
 
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
From: <md...@us...> - 2010年12月09日 17:27:00
Revision: 8820
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8820&view=rev
Author: mdboom
Date: 2010年12月09日 17:26:54 +0000 (2010年12月09日)
Log Message:
-----------
Fixed error message in Agg backend.
Modified Paths:
--------------
 branches/v1_0_maint/src/_backend_agg.cpp
Modified: branches/v1_0_maint/src/_backend_agg.cpp
===================================================================
--- branches/v1_0_maint/src/_backend_agg.cpp	2010年12月09日 17:25:11 UTC (rev 8819)
+++ branches/v1_0_maint/src/_backend_agg.cpp	2010年12月09日 17:26:54 UTC (rev 8820)
@@ -554,7 +554,7 @@
 }
 catch (Py::TypeError)
 {
- throw Py::TypeError("Invalid input arguments to draw_text_image");
+ throw Py::TypeError("Invalid input arguments to restore_region2");
 }
 
 
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
From: <md...@us...> - 2010年12月09日 17:25:17
Revision: 8819
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8819&view=rev
Author: mdboom
Date: 2010年12月09日 17:25:11 +0000 (2010年12月09日)
Log Message:
-----------
[3123736] tex processor crashes when fed a space
Modified Paths:
--------------
 branches/v1_0_maint/lib/matplotlib/text.py
Modified: branches/v1_0_maint/lib/matplotlib/text.py
===================================================================
--- branches/v1_0_maint/lib/matplotlib/text.py	2010年12月06日 14:43:16 UTC (rev 8818)
+++ branches/v1_0_maint/lib/matplotlib/text.py	2010年12月09日 17:25:11 UTC (rev 8819)
@@ -551,6 +551,9 @@
 
 if rcParams['text.usetex']:
 for line, wh, x, y in info:
+ if not np.isfinite(x) or not np.isfinite(y):
+ continue
+
 x = x + posx
 y = y + posy
 if renderer.flipy():
@@ -566,6 +569,9 @@
 self._fontproperties, angle)
 else:
 for line, wh, x, y in info:
+ if not np.isfinite(x) or not np.isfinite(y):
+ continue
+
 x = x + posx
 y = y + posy
 if renderer.flipy():
@@ -974,6 +980,8 @@
 # Did we find an even number of non-escaped dollar signs?
 # If so, treat is as math text.
 if rcParams['text.usetex']:
+ if s == ' ':
+ s = r'\ '
 return s, 'TeX'
 
 if cbook.is_math_text(s):
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.

Showing results of 54

<< < 1 2 3 > >> (Page 2 of 3)
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.
Thanks for helping keep SourceForge clean.
X





Briefly describe the problem (required):
Upload screenshot of ad (required):
Select a file, or drag & drop file here.
Screenshot instructions:

Click URL instructions:
Right-click on the ad, choose "Copy Link", then paste here →
(This may not be possible with some types of ads)

More information about our ad policies

Ad destination/click URL:

AltStyle によって変換されたページ (->オリジナル) /