From 0b598844c2a40a91fa80759bc62ed567d6bec701 Mon Sep 17 00:00:00 2001
From: Christophe Geuzaine <cgeuzaine@ulg.ac.be>
Date: Mon, 29 Dec 2008 09:43:52 +0000
Subject: [PATCH] - (c) update - fix bb computation to avoid model jumping
 around when adding points in z=0 plane - pass interpol matrices as ref

---
 Common/Colors.h                       |   2 +-
 Common/CommandLine.cpp                |   4 +-
 Common/CommandLine.h                  |   2 +-
 Common/Context.h                      |   7 +-
 Common/CreateFile.cpp                 |   2 +-
 Common/CreateFile.h                   |   2 +-
 Common/DefaultOptions.h               |   4 +-
 Common/Gmsh.cpp                       |   2 +-
 Common/Gmsh.h                         |   2 +-
 Common/GmshDaemon.cpp                 |   2 +-
 Common/GmshDaemon.h                   |   2 +-
 Common/GmshDefines.h                  |   2 +-
 Common/GmshMessage.cpp                |   2 +-
 Common/GmshMessage.h                  |   2 +-
 Common/GmshSocket.h                   |   2 +-
 Common/Hash.h                         |   2 +-
 Common/HashMap.h                      |   2 +-
 Common/ListUtils.cpp                  |   2 +-
 Common/ListUtils.h                    |   2 +-
 Common/Main.cpp                       |   2 +-
 Common/Makefile                       |   2 +-
 Common/MallocUtils.cpp                |   2 +-
 Common/MallocUtils.h                  |   2 +-
 Common/OS.cpp                         |   2 +-
 Common/OS.h                           |   2 +-
 Common/Octree.cpp                     |   2 +-
 Common/Octree.h                       |   2 +-
 Common/OctreeInternals.cpp            |   2 +-
 Common/OctreeInternals.h              |   2 +-
 Common/OpenFile.cpp                   |  53 +-
 Common/OpenFile.h                     |   2 +-
 Common/Options.cpp                    |  26 +-
 Common/Options.h                      |   2 +-
 Common/SmoothData.cpp                 |   2 +-
 Common/SmoothData.h                   |   2 +-
 Common/StringUtils.cpp                |   2 +-
 Common/StringUtils.h                  |   2 +-
 Common/TreeUtils.cpp                  |   2 +-
 Common/TreeUtils.h                    |   2 +-
 Common/VertexArray.cpp                |   2 +-
 Common/VertexArray.h                  |   2 +-
 Fltk/Draw.cpp                         |   2 +-
 Fltk/Draw.h                           |   2 +-
 Fltk/GUI.cpp                          |   2 +-
 Fltk/GUI.h                            |   2 +-
 Fltk/Main.cpp                         |   2 +-
 Fltk/Makefile                         |   2 +-
 Fltk/Solvers.cpp                      |   2 +-
 Fltk/Solvers.h                        |   2 +-
 Fltk/aboutWindow.cpp                  |   4 +-
 Fltk/aboutWindow.h                    |   2 +-
 Fltk/classificationEditor.cpp         |   2 +-
 Fltk/classificationEditor.h           |   2 +-
 Fltk/clippingWindow.cpp               |   2 +-
 Fltk/clippingWindow.h                 |   2 +-
 Fltk/colorbarWindow.cpp               |   2 +-
 Fltk/colorbarWindow.h                 |   2 +-
 Fltk/contextWindow.cpp                |   2 +-
 Fltk/contextWindow.h                  |   2 +-
 Fltk/extraDialogs.cpp                 |   2 +-
 Fltk/extraDialogs.h                   |   2 +-
 Fltk/fieldWindow.cpp                  |   2 +-
 Fltk/fieldWindow.h                    |   2 +-
 Fltk/fileChooser.h                    |   2 +-
 Fltk/fileDialogs.cpp                  |   2 +-
 Fltk/fileDialogs.h                    |   2 +-
 Fltk/graphicWindow.cpp                |   2 +-
 Fltk/graphicWindow.h                  |   2 +-
 Fltk/manipWindow.cpp                  |   2 +-
 Fltk/manipWindow.h                    |   2 +-
 Fltk/menuWindow.cpp                   |   4 +-
 Fltk/menuWindow.h                     |   2 +-
 Fltk/messageWindow.cpp                |   2 +-
 Fltk/messageWindow.h                  |   2 +-
 Fltk/openglWindow.cpp                 |   4 +-
 Fltk/openglWindow.h                   |   2 +-
 Fltk/optionWindow.cpp                 |   2 +-
 Fltk/optionWindow.h                   |   2 +-
 Fltk/partitionDialog.cpp              |   2 +-
 Fltk/partitionDialog.h                |   2 +-
 Fltk/pluginWindow.cpp                 |   2 +-
 Fltk/pluginWindow.h                   |   2 +-
 Fltk/popupButton.h                    |   2 +-
 Fltk/projectionEditor.cpp             |   2 +-
 Fltk/projectionEditor.h               |   2 +-
 Fltk/shortcutWindow.h                 |   2 +-
 Fltk/solverWindow.cpp                 |   2 +-
 Fltk/solverWindow.h                   |   2 +-
 Fltk/spherePositionWidget.h           |   2 +-
 Fltk/statisticsWindow.cpp             |   2 +-
 Fltk/statisticsWindow.h               |   2 +-
 Fltk/visibilityWindow.cpp             |   2 +-
 Fltk/visibilityWindow.h               |   2 +-
 Geo/CGNSOptions.h                     |   2 +-
 Geo/CustomContainer.h                 |   2 +-
 Geo/ExtrudeParams.cpp                 |   2 +-
 Geo/ExtrudeParams.h                   |   2 +-
 Geo/GEdge.cpp                         |   2 +-
 Geo/GEdge.h                           |   2 +-
 Geo/GEdgeLoop.cpp                     |   2 +-
 Geo/GEdgeLoop.h                       |   2 +-
 Geo/GEntity.cpp                       |   2 +-
 Geo/GEntity.h                         |   2 +-
 Geo/GFace.cpp                         |   2 +-
 Geo/GFace.h                           |   2 +-
 Geo/GFaceCompound.cpp                 |   2 +-
 Geo/GFaceCompound.h                   |   2 +-
 Geo/GModel.cpp                        |   2 +-
 Geo/GModel.h                          |   2 +-
 Geo/GModelIO_CGNS.cpp                 |   2 +-
 Geo/GModelIO_Fourier.cpp              |   2 +-
 Geo/GModelIO_Fourier.h                |   2 +-
 Geo/GModelIO_Geo.cpp                  |   2 +-
 Geo/GModelIO_MED.cpp                  |   2 +-
 Geo/GModelIO_Mesh.cpp                 |   2 +-
 Geo/GModelIO_OCC.cpp                  |   2 +-
 Geo/GModelIO_OCC.h                    |   2 +-
 Geo/GPoint.h                          |   2 +-
 Geo/GRegion.cpp                       |   2 +-
 Geo/GRegion.h                         |   2 +-
 Geo/GVertex.cpp                       |   2 +-
 Geo/GVertex.h                         |   2 +-
 Geo/Geo.cpp                           |   2 +-
 Geo/Geo.h                             |   2 +-
 Geo/GeoInterpolation.cpp              |   2 +-
 Geo/GeoInterpolation.h                |   2 +-
 Geo/GeoStringInterface.cpp            |   2 +-
 Geo/GeoStringInterface.h              |   2 +-
 Geo/MEdge.h                           |   2 +-
 Geo/MEdgeHash.h                       |   2 +-
 Geo/MElement.cpp                      |   2 +-
 Geo/MElement.h                        |   2 +-
 Geo/MFace.cpp                         |   2 +-
 Geo/MFace.h                           |   2 +-
 Geo/MFaceHash.h                       |   2 +-
 Geo/MVertex.cpp                       |   2 +-
 Geo/MVertex.h                         |   2 +-
 Geo/MZone.cpp                         |   2 +-
 Geo/MZone.h                           |   2 +-
 Geo/MZoneBoundary.cpp                 |   2 +-
 Geo/MZoneBoundary.h                   |   2 +-
 Geo/Makefile                          |   2 +-
 Geo/OCCEdge.cpp                       |   2 +-
 Geo/OCCEdge.h                         |   2 +-
 Geo/OCCFace.cpp                       |   2 +-
 Geo/OCCFace.h                         |   2 +-
 Geo/OCCIncludes.h                     |   2 +-
 Geo/OCCRegion.cpp                     |   2 +-
 Geo/OCCRegion.h                       |   2 +-
 Geo/OCCVertex.cpp                     |   2 +-
 Geo/OCCVertex.h                       |   2 +-
 Geo/Pair.h                            |   2 +-
 Geo/Range.h                           |   2 +-
 Geo/SBoundingBox3d.h                  |   2 +-
 Geo/SPoint2.h                         |   2 +-
 Geo/SPoint3.h                         |   2 +-
 Geo/SVector3.h                        |   2 +-
 Geo/discreteEdge.cpp                  |   2 +-
 Geo/discreteEdge.h                    |   2 +-
 Geo/discreteFace.cpp                  |   2 +-
 Geo/discreteFace.h                    |   2 +-
 Geo/discreteRegion.cpp                |   2 +-
 Geo/discreteRegion.h                  |   2 +-
 Geo/discreteVertex.h                  |   2 +-
 Geo/findLinks.cpp                     |   2 +-
 Geo/findLinks.h                       |   2 +-
 Geo/fourierEdge.cpp                   |   2 +-
 Geo/fourierEdge.h                     |   2 +-
 Geo/fourierFace.cpp                   |   2 +-
 Geo/fourierFace.h                     |   2 +-
 Geo/fourierProjectionFace.cpp         |   2 +-
 Geo/fourierProjectionFace.h           |   2 +-
 Geo/fourierVertex.h                   |   2 +-
 Geo/gmshEdge.cpp                      |   2 +-
 Geo/gmshEdge.h                        |   2 +-
 Geo/gmshFace.cpp                      |   2 +-
 Geo/gmshFace.h                        |   2 +-
 Geo/gmshRegion.cpp                    |   2 +-
 Geo/gmshRegion.h                      |   2 +-
 Geo/gmshSurface.cpp                   |   2 +-
 Geo/gmshSurface.h                     |   2 +-
 Geo/gmshVertex.cpp                    |   2 +-
 Geo/gmshVertex.h                      |   2 +-
 Graphics/Iso.cpp                      |   2 +-
 Graphics/Iso.h                        |   2 +-
 Graphics/Makefile                     |   2 +-
 Graphics/PixelBuffer.h                |   2 +-
 Graphics/ReadImg.cpp                  |   2 +-
 Graphics/ReadImg.h                    |   2 +-
 Graphics/drawAxes.cpp                 |   2 +-
 Graphics/drawContext.cpp              |   2 +-
 Graphics/drawContext.h                |   2 +-
 Graphics/drawGeom.cpp                 |   2 +-
 Graphics/drawGlyph.cpp                |   2 +-
 Graphics/drawGraph2d.cpp              |   2 +-
 Graphics/drawMesh.cpp                 |   2 +-
 Graphics/drawPost.cpp                 |   2 +-
 Graphics/drawScales.cpp               |   2 +-
 Graphics/gl2gif.cpp                   |   2 +-
 Graphics/gl2gif.h                     |   2 +-
 Graphics/gl2jpeg.cpp                  |   2 +-
 Graphics/gl2jpeg.h                    |   2 +-
 Graphics/gl2png.cpp                   |   2 +-
 Graphics/gl2png.h                     |   2 +-
 Graphics/gl2ppm.cpp                   |   2 +-
 Graphics/gl2ppm.h                     |   2 +-
 Graphics/gl2yuv.cpp                   |   2 +-
 Graphics/gl2yuv.h                     |   2 +-
 Makefile                              |   2 +-
 Mesh/BDS.cpp                          |   2 +-
 Mesh/BDS.h                            |   2 +-
 Mesh/BackgroundMesh.cpp               |   2 +-
 Mesh/BackgroundMesh.h                 |   2 +-
 Mesh/BoundaryLayers.cpp               |   2 +-
 Mesh/BoundaryLayers.h                 |   2 +-
 Mesh/DivideAndConquer.cpp             |   2 +-
 Mesh/DivideAndConquer.h               |   2 +-
 Mesh/Field.cpp                        |   2 +-
 Mesh/Field.h                          |   2 +-
 Mesh/Generator.cpp                    |   2 +-
 Mesh/Generator.h                      |   2 +-
 Mesh/HighOrder.cpp                    |   2 +-
 Mesh/HighOrder.h                      |   2 +-
 Mesh/Makefile                         |   2 +-
 Mesh/Partition.cpp                    |   2 +-
 Mesh/Partition.h                      |   2 +-
 Mesh/PartitionObjects.h               |   2 +-
 Mesh/PartitionOptions.h               |   2 +-
 Mesh/Refine.cpp                       |   2 +-
 Mesh/gmshSmoothHighOrder.cpp          |   2 +-
 Mesh/gmshSmoothHighOrder.h            |   2 +-
 Mesh/meshGEdge.cpp                    |   2 +-
 Mesh/meshGEdge.h                      |   2 +-
 Mesh/meshGEdgeExtruded.cpp            |   2 +-
 Mesh/meshGFace.cpp                    |   2 +-
 Mesh/meshGFace.h                      |   2 +-
 Mesh/meshGFaceBDS.cpp                 |   2 +-
 Mesh/meshGFaceBDS.h                   |   2 +-
 Mesh/meshGFaceDelaunayInsertion.cpp   |   2 +-
 Mesh/meshGFaceDelaunayInsertion.h     |   2 +-
 Mesh/meshGFaceExtruded.cpp            |   2 +-
 Mesh/meshGFaceOptimize.cpp            |   2 +-
 Mesh/meshGFaceOptimize.h              |   2 +-
 Mesh/meshGFaceQuadrilateralize.cpp    |   2 +-
 Mesh/meshGFaceQuadrilateralize.h      |   2 +-
 Mesh/meshGFaceTransfinite.cpp         |   2 +-
 Mesh/meshGRegion.cpp                  |   2 +-
 Mesh/meshGRegion.h                    |   2 +-
 Mesh/meshGRegionCarveHole.cpp         |   2 +-
 Mesh/meshGRegionDelaunayInsertion.cpp |   2 +-
 Mesh/meshGRegionDelaunayInsertion.h   |   2 +-
 Mesh/meshGRegionExtruded.cpp          |   2 +-
 Mesh/meshGRegionLocalMeshMod.cpp      |   2 +-
 Mesh/meshGRegionLocalMeshMod.h        |   2 +-
 Mesh/meshGRegionTransfinite.cpp       |   6 +-
 Mesh/qualityMeasures.cpp              |   2 +-
 Mesh/qualityMeasures.h                |   2 +-
 Numeric/EigSolve.cpp                  |   2 +-
 Numeric/EigSolve.h                    |   2 +-
 Numeric/FunctionSpace.cpp             |   2 +-
 Numeric/FunctionSpace.h               |   2 +-
 Numeric/Gauss.h                       |   2 +-
 Numeric/GaussLegendre1D.h             |   2 +-
 Numeric/GaussLegendreSimplex.cpp      |   2 +-
 Numeric/GaussQuadratureHex.cpp        |   2 +-
 Numeric/GaussQuadratureQuad.cpp       |   2 +-
 Numeric/GaussQuadratureTet.cpp        |   2 +-
 Numeric/GaussQuadratureTri.cpp        |   2 +-
 Numeric/GmshMatrix.h                  |   2 +-
 Numeric/Makefile                      |   2 +-
 Numeric/Numeric.cpp                   |   2 +-
 Numeric/Numeric.h                     |   2 +-
 Numeric/NumericEmbedded.cpp           |   2 +-
 Numeric/NumericEmbedded.h             |   2 +-
 Numeric/gmshAssembler.cpp             |   2 +-
 Numeric/gmshAssembler.h               |   2 +-
 Numeric/gmshElasticity.cpp            |   2 +-
 Numeric/gmshElasticity.h              |   2 +-
 Numeric/gmshFunction.h                |   2 +-
 Numeric/gmshLaplace.cpp               |   2 +-
 Numeric/gmshLaplace.h                 |   2 +-
 Numeric/gmshLinearSystem.h            |   2 +-
 Numeric/gmshLinearSystemFull.h        |   2 +-
 Numeric/gmshLinearSystemGmm.h         |   2 +-
 Numeric/gmshTermOfFormulation.cpp     |   2 +-
 Numeric/gmshTermOfFormulation.h       |   2 +-
 Parser/FunctionManager.cpp            |   2 +-
 Parser/FunctionManager.h              |   2 +-
 Parser/Gmsh.l                         |   2 +-
 Parser/Gmsh.tab.cpp                   | 711 +++++++++++++-------------
 Parser/Gmsh.y                         |  29 +-
 Parser/Gmsh.yy.cpp                    |   2 +-
 Parser/Makefile                       |   2 +-
 Parser/Parser.h                       |   2 +-
 Plugin/Annotate.cpp                   |   2 +-
 Plugin/Annotate.h                     |   2 +-
 Plugin/Curl.cpp                       |   2 +-
 Plugin/Curl.h                         |   2 +-
 Plugin/CutGrid.cpp                    |   2 +-
 Plugin/CutGrid.h                      |   2 +-
 Plugin/CutMap.cpp                     |   2 +-
 Plugin/CutMap.h                       |   2 +-
 Plugin/CutParametric.cpp              |   2 +-
 Plugin/CutParametric.h                |   2 +-
 Plugin/CutPlane.cpp                   |   2 +-
 Plugin/CutPlane.h                     |   2 +-
 Plugin/CutSphere.cpp                  |   2 +-
 Plugin/CutSphere.h                    |   2 +-
 Plugin/Divergence.cpp                 |   2 +-
 Plugin/Divergence.h                   |   2 +-
 Plugin/Eigenvalues.cpp                |   2 +-
 Plugin/Eigenvalues.h                  |   2 +-
 Plugin/Eigenvectors.cpp               |   2 +-
 Plugin/Eigenvectors.h                 |   2 +-
 Plugin/Evaluate.cpp                   |   2 +-
 Plugin/Evaluate.h                     |   2 +-
 Plugin/Extract.cpp                    |   2 +-
 Plugin/Extract.h                      |   2 +-
 Plugin/ExtractEdges.cpp               |   2 +-
 Plugin/ExtractEdges.h                 |   2 +-
 Plugin/ExtractElements.cpp            |   2 +-
 Plugin/ExtractElements.h              |   2 +-
 Plugin/FieldView.cpp                  |   2 +-
 Plugin/FieldView.h                    |   2 +-
 Plugin/GSHHS.cpp                      |   4 +-
 Plugin/GSHHS.h                        |   2 +-
 Plugin/Gradient.cpp                   |   2 +-
 Plugin/Gradient.h                     |   2 +-
 Plugin/HarmonicToTime.cpp             |   2 +-
 Plugin/HarmonicToTime.h               |   2 +-
 Plugin/Integrate.cpp                  |   2 +-
 Plugin/Integrate.h                    |   2 +-
 Plugin/Lambda2.cpp                    |   2 +-
 Plugin/Lambda2.h                      |   2 +-
 Plugin/Levelset.cpp                   |   2 +-
 Plugin/Levelset.h                     |   2 +-
 Plugin/LongitudeLatitude.cpp          |   2 +-
 Plugin/LongitudeLatitude.h            |   2 +-
 Plugin/MakeSimplex.cpp                |   2 +-
 Plugin/MakeSimplex.h                  |   2 +-
 Plugin/Makefile                       |   2 +-
 Plugin/ModulusPhase.cpp               |   2 +-
 Plugin/ModulusPhase.h                 |   2 +-
 Plugin/Plugin.cpp                     |   2 +-
 Plugin/Plugin.h                       |   2 +-
 Plugin/PluginManager.cpp              |   2 +-
 Plugin/PluginManager.h                |   2 +-
 Plugin/Probe.cpp                      |   2 +-
 Plugin/Probe.h                        |   2 +-
 Plugin/Remove.cpp                     |   2 +-
 Plugin/Remove.h                       |   2 +-
 Plugin/Skin.cpp                       |   2 +-
 Plugin/Skin.h                         |   2 +-
 Plugin/Smooth.cpp                     |   2 +-
 Plugin/Smooth.h                       |   2 +-
 Plugin/SphericalRaise.cpp             |   2 +-
 Plugin/SphericalRaise.h               |   2 +-
 Plugin/StreamLines.cpp                |   2 +-
 Plugin/StreamLines.h                  |   2 +-
 Plugin/Transform.cpp                  |   2 +-
 Plugin/Transform.h                    |   2 +-
 Plugin/Triangulate.cpp                |   2 +-
 Plugin/Triangulate.h                  |   2 +-
 Plugin/Warp.cpp                       |   2 +-
 Plugin/Warp.h                         |   2 +-
 Post/ColorTable.cpp                   |   2 +-
 Post/ColorTable.h                     |   2 +-
 Post/Makefile                         |   2 +-
 Post/OctreePost.cpp                   |   2 +-
 Post/OctreePost.h                     |   2 +-
 Post/PView.cpp                        |   2 +-
 Post/PView.h                          |   2 +-
 Post/PViewData.cpp                    |  28 +-
 Post/PViewData.h                      |  12 +-
 Post/PViewDataGModel.cpp              |  37 +-
 Post/PViewDataGModel.h                |   2 +-
 Post/PViewDataGModelIO.cpp            |   2 +-
 Post/PViewDataIO.cpp                  |   2 +-
 Post/PViewDataList.cpp                |   2 +-
 Post/PViewDataList.h                  |   2 +-
 Post/PViewDataListIO.cpp              |   2 +-
 Post/PViewIO.cpp                      |   2 +-
 Post/PViewOptions.cpp                 |   2 +-
 Post/PViewOptions.h                   |   2 +-
 Post/adaptiveData.cpp                 |   2 +-
 Post/adaptiveData.h                   |   2 +-
 Post/shapeFunctions.h                 |   2 +-
 benchmarks/3d/transfinite_auto.geo    | 264 ++++++++++
 bin/Makefile                          |   2 +-
 configure.in                          |   2 +-
 contrib/ANN/Makefile                  |   2 +-
 contrib/MathEval/Makefile             |   2 +-
 contrib/Metis/Makefile                |   2 +-
 contrib/NativeFileChooser/Makefile    |   2 +-
 contrib/Netgen/Makefile               |   2 +-
 contrib/Tetgen/Makefile               |   2 +-
 contrib/TreeBrowser/Makefile          |   2 +-
 doc/CREDITS.txt                       |   2 +-
 doc/Makefile                          |   2 +-
 doc/gmsh.html                         |   2 +-
 doc/texinfo/Makefile                  |   2 +-
 doc/texinfo/gmsh.texi                 |   4 +-
 doc/texinfo/opt_fields.texi           |   2 +-
 doc/texinfo/opt_general.texi          |  11 +-
 doc/texinfo/opt_mesh.texi             |  10 +-
 lib/Makefile                          |   2 +-
 utils/embed/GmshEmbedded.cpp          |   2 +-
 utils/embed/Makefile                  |   2 +-
 utils/misc/Info.plist                 |   2 +-
 utils/misc/Makefile                   |   2 +-
 utils/misc/mshsort.cpp                |   2 +-
 utils/misc/replace.bash               |   4 +-
 utils/nightly/Makefile                |   2 +-
 utils/solvers/c++/GmshSocket.h        |   4 +-
 variables.in                          |   2 +-
 415 files changed, 1137 insertions(+), 881 deletions(-)
 create mode 100644 benchmarks/3d/transfinite_auto.geo

diff --git a/Common/Colors.h b/Common/Colors.h
index bac78ee401..a98eac6b5d 100644
--- a/Common/Colors.h
+++ b/Common/Colors.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/CommandLine.cpp b/Common/CommandLine.cpp
index a2595f481b..4027cb49e5 100644
--- a/Common/CommandLine.cpp
+++ b/Common/CommandLine.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -564,7 +564,7 @@ void Get_Options(int argc, char *argv[])
       }
       else if(!strcmp(argv[i] + 1, "help") || !strcmp(argv[i] + 1, "-help")) {
         fprintf(stderr, "Gmsh, a 3D mesh generator with pre- and post-processing facilities\n");
-        fprintf(stderr, "Copyright (C) 1997-2008 Christophe Geuzaine and Jean-Francois Remacle\n");
+        fprintf(stderr, "Copyright (C) 1997-2009 Christophe Geuzaine and Jean-Francois Remacle\n");
         Print_Usage(argv[0]);
 	Msg::Exit(0);
       }
diff --git a/Common/CommandLine.h b/Common/CommandLine.h
index 9afed6db41..a7d82b3152 100644
--- a/Common/CommandLine.h
+++ b/Common/CommandLine.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/Context.h b/Common/Context.h
index a4d8363db6..6487202e55 100644
--- a/Common/Context.h
+++ b/Common/Context.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -75,9 +75,8 @@ class Context_T {
   int useTrackball; // do or do not use the trackball for rotations 
   double rotation_center[3]; // point around which to rotate the scene
   int rotation_center_cg; // rotate around the center of mass instead of rotation_center[]
-  double min[3]; // x, y and z min for the current geometry 
-  double max[3]; // x, y and z max for the current geometry 
-  double cg[3]; // "center of mass" of the current geometry
+  double min[3], max[3]; // "overall" x, y and z min used for drawing and lc computation
+  double cg[3]; // "center of mass" of the current geometry, used for graphics only
   double lc; // characteristic length for the whole problem (never
              // used in mesh generation ->only for geo/post)
   int db, antialiasing; // double buffer? antialiasing?
diff --git a/Common/CreateFile.cpp b/Common/CreateFile.cpp
index f94519e4ad..13d477ffc7 100644
--- a/Common/CreateFile.cpp
+++ b/Common/CreateFile.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/CreateFile.h b/Common/CreateFile.h
index 66e838f330..6aa52b7728 100644
--- a/Common/CreateFile.h
+++ b/Common/CreateFile.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/DefaultOptions.h b/Common/DefaultOptions.h
index 4cddb013c8..de16f7afca 100644
--- a/Common/DefaultOptions.h
+++ b/Common/DefaultOptions.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -105,7 +105,7 @@ StringXString SolverOptions_String[] = {
     "Name of solver 0" },
   { F|O, "Help0" , opt_solver_help0 , 
     "A General environment for the treatment of\nDiscrete Problems\n\n"
-    "Copyright (C) 1997-2008\nPatrick Dular and Christophe Geuzaine\n\n"
+    "Copyright (C) 1997-2009\nPatrick Dular and Christophe Geuzaine\n\n"
     "Visit http://www.geuz.org/getdp/ for more info",
     "Help string for solver 0" },
   { F|O, "Executable0" , opt_solver_executable0 , 
diff --git a/Common/Gmsh.cpp b/Common/Gmsh.cpp
index e9d281fc03..4f6491dc30 100644
--- a/Common/Gmsh.cpp
+++ b/Common/Gmsh.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/Gmsh.h b/Common/Gmsh.h
index 663243e9a4..3d943950ac 100644
--- a/Common/Gmsh.h
+++ b/Common/Gmsh.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/GmshDaemon.cpp b/Common/GmshDaemon.cpp
index 0836193ed2..9acecb88b5 100644
--- a/Common/GmshDaemon.cpp
+++ b/Common/GmshDaemon.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/GmshDaemon.h b/Common/GmshDaemon.h
index 8d0f045df8..f51e11b3c8 100644
--- a/Common/GmshDaemon.h
+++ b/Common/GmshDaemon.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/GmshDefines.h b/Common/GmshDefines.h
index f8def9cb16..497bfb063c 100644
--- a/Common/GmshDefines.h
+++ b/Common/GmshDefines.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/GmshMessage.cpp b/Common/GmshMessage.cpp
index 5239188a2e..10e021fc08 100644
--- a/Common/GmshMessage.cpp
+++ b/Common/GmshMessage.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/GmshMessage.h b/Common/GmshMessage.h
index f9a11a97f6..59580da5ce 100644
--- a/Common/GmshMessage.h
+++ b/Common/GmshMessage.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/GmshSocket.h b/Common/GmshSocket.h
index 56d676406a..63dfe53417 100644
--- a/Common/GmshSocket.h
+++ b/Common/GmshSocket.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/Hash.h b/Common/Hash.h
index 8f64b77457..9f495b9029 100644
--- a/Common/Hash.h
+++ b/Common/Hash.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/HashMap.h b/Common/HashMap.h
index 619a4aef63..d7989787a4 100644
--- a/Common/HashMap.h
+++ b/Common/HashMap.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/ListUtils.cpp b/Common/ListUtils.cpp
index c273fa3940..6a4ac5c9b0 100644
--- a/Common/ListUtils.cpp
+++ b/Common/ListUtils.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/ListUtils.h b/Common/ListUtils.h
index 48518b5e71..e08b0a2908 100644
--- a/Common/ListUtils.h
+++ b/Common/ListUtils.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/Main.cpp b/Common/Main.cpp
index 8df8a5591c..8a5feb7e11 100644
--- a/Common/Main.cpp
+++ b/Common/Main.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/Makefile b/Common/Makefile
index 05670f5734..d90ce861a2 100644
--- a/Common/Makefile
+++ b/Common/Makefile
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/MallocUtils.cpp b/Common/MallocUtils.cpp
index 742c058799..7338708eeb 100644
--- a/Common/MallocUtils.cpp
+++ b/Common/MallocUtils.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/MallocUtils.h b/Common/MallocUtils.h
index ef010612d8..c4e98bf610 100644
--- a/Common/MallocUtils.h
+++ b/Common/MallocUtils.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/OS.cpp b/Common/OS.cpp
index 928b42a355..c9a1014835 100644
--- a/Common/OS.cpp
+++ b/Common/OS.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/OS.h b/Common/OS.h
index d9840b3eb4..727087c9a3 100644
--- a/Common/OS.h
+++ b/Common/OS.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/Octree.cpp b/Common/Octree.cpp
index 0062764aa8..261650c0b2 100644
--- a/Common/Octree.cpp
+++ b/Common/Octree.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/Octree.h b/Common/Octree.h
index ed8e185d88..4cb836d94a 100644
--- a/Common/Octree.h
+++ b/Common/Octree.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/OctreeInternals.cpp b/Common/OctreeInternals.cpp
index 8f9b28002a..a984a0ec20 100644
--- a/Common/OctreeInternals.cpp
+++ b/Common/OctreeInternals.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/OctreeInternals.h b/Common/OctreeInternals.h
index 8d9f4b156c..0a373c7c2b 100644
--- a/Common/OctreeInternals.h
+++ b/Common/OctreeInternals.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/OpenFile.cpp b/Common/OpenFile.cpp
index 2cdd6e2547..2e254ded80 100644
--- a/Common/OpenFile.cpp
+++ b/Common/OpenFile.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -37,48 +37,34 @@ extern Context_T CTX;
 static void FinishUpBoundingBox()
 {
   double range[3];
-
-  for(int i = 0; i < 3; i++){
-    CTX.cg[i] = 0.5 * (CTX.min[i] + CTX.max[i]);
-    range[i] = CTX.max[i] - CTX.min[i];
-  }
+  for(int i = 0; i < 3; i++) range[i] = CTX.max[i] - CTX.min[i];
 
   if(range[0] < CTX.geom.tolerance && 
      range[1] < CTX.geom.tolerance && 
      range[2] < CTX.geom.tolerance) {
     CTX.min[0] -= 1.; CTX.min[1] -= 1.;
     CTX.max[0] += 1.; CTX.max[1] += 1.;
-    CTX.lc = 1.;
   }
   else if(range[0] < CTX.geom.tolerance && 
           range[1] < CTX.geom.tolerance) {
-    CTX.lc = range[2];
-    CTX.min[0] -= CTX.lc; CTX.min[1] -= CTX.lc;
-    CTX.max[0] += CTX.lc; CTX.max[1] += CTX.lc;
+    CTX.min[0] -= range[2]; CTX.min[1] -= range[2];
+    CTX.max[0] += range[2]; CTX.max[1] += range[2];
   }
   else if(range[0] < CTX.geom.tolerance && 
           range[2] < CTX.geom.tolerance) {
-    CTX.lc = range[1];
-    CTX.min[0] -= CTX.lc; CTX.max[0] += CTX.lc;
+    CTX.min[0] -= range[1]; CTX.max[0] += range[1];
   }
   else if(range[1] < CTX.geom.tolerance && 
           range[2] < CTX.geom.tolerance) {
-    CTX.lc = range[0];
-    CTX.min[1] -= CTX.lc; CTX.max[1] += CTX.lc;
+    CTX.min[1] -= range[0]; CTX.max[1] += range[0];
   }
   else if(range[0] < CTX.geom.tolerance) {
-    CTX.lc = sqrt(SQU(range[1]) + SQU(range[2]));
-    CTX.min[0] -= CTX.lc; CTX.max[0] += CTX.lc;
+    double l = sqrt(SQU(range[1]) + SQU(range[2]));
+    CTX.min[0] -= l; CTX.max[0] += l;
   }
   else if(range[1] < CTX.geom.tolerance) {
-    CTX.lc = sqrt(SQU(range[0]) + SQU(range[2]));
-    CTX.min[1] -= CTX.lc; CTX.max[1] += CTX.lc;
-  }
-  else if(range[2] < CTX.geom.tolerance) {
-    CTX.lc = sqrt(SQU(range[0]) + SQU(range[1]));
-  }
-  else {
-    CTX.lc = sqrt(SQU(range[0]) + SQU(range[1]) + SQU(range[2]));
+    double l = sqrt(SQU(range[0]) + SQU(range[2]));
+    CTX.min[1] -= l; CTX.max[1] += l;
   }
 }
 
@@ -90,6 +76,10 @@ void SetBoundingBox(double xmin, double xmax,
   CTX.min[1] = ymin; CTX.max[1] = ymax;
   CTX.min[2] = zmin; CTX.max[2] = zmax;
   FinishUpBoundingBox();
+  CTX.lc = sqrt(SQU(CTX.max[0] - CTX.min[0]) +
+                SQU(CTX.max[1] - CTX.min[1]) + 
+                SQU(CTX.max[2] - CTX.min[2]));
+  for(int i = 0; i < 3; i++) CTX.cg[i] = 0.5 * (CTX.min[i] + CTX.max[i]);
 }
 
 void SetBoundingBox()
@@ -115,6 +105,10 @@ void SetBoundingBox()
   CTX.min[1] = bb.min().y(); CTX.max[1] = bb.max().y();
   CTX.min[2] = bb.min().z(); CTX.max[2] = bb.max().z();
   FinishUpBoundingBox();
+  CTX.lc = sqrt(SQU(CTX.max[0] - CTX.min[0]) +
+                SQU(CTX.max[1] - CTX.min[1]) + 
+                SQU(CTX.max[2] - CTX.min[2]));
+  for(int i = 0; i < 3; i++) CTX.cg[i] = 0.5 * (CTX.min[i] + CTX.max[i]);
 }
 
 // FIXME: this is necessary for now to have an approximate CTX.lc
@@ -132,10 +126,13 @@ void ResetTemporaryBoundingBox()
 void AddToTemporaryBoundingBox(double x, double y, double z)
 {
   temp_bb += SPoint3(x, y, z);
-  CTX.min[0] = temp_bb.min().x(); CTX.max[0] = temp_bb.max().x();
-  CTX.min[1] = temp_bb.min().y(); CTX.max[1] = temp_bb.max().y();
-  CTX.min[2] = temp_bb.min().z(); CTX.max[2] = temp_bb.max().z();
-  FinishUpBoundingBox();
+  if(temp_bb.empty()) return;
+  CTX.lc = sqrt(SQU(temp_bb.max().x() - temp_bb.min().x()) +
+                SQU(temp_bb.max().y() - temp_bb.min().y()) + 
+                SQU(temp_bb.max().z() - temp_bb.min().z()));
+  if(CTX.lc == 0) CTX.lc = 1.;
+  // to get correct cg during interctive point creation
+  for(int i = 0; i < 3; i++) CTX.cg[i] = temp_bb.center()[i];
 }
 
 int ParseFile(const char *f, int close, int warn_if_missing)
diff --git a/Common/OpenFile.h b/Common/OpenFile.h
index 03d7346cab..5f765987bc 100644
--- a/Common/OpenFile.h
+++ b/Common/OpenFile.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/Options.cpp b/Common/Options.cpp
index f9b65e849e..9b4c7e3b45 100644
--- a/Common/Options.cpp
+++ b/Common/Options.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -3178,32 +3178,44 @@ double opt_general_draw_bounding_box(OPT_ARGS_NUM)
 
 double opt_general_xmin(OPT_ARGS_NUM)
 {
-  return CTX.min[0];
+  if(!GModel::current()) return 0.;
+  SBoundingBox3d bb = GModel::current()->bounds();
+  return bb.empty() ? 0. : bb.min().x();
 }
 
 double opt_general_xmax(OPT_ARGS_NUM)
 {
-  return CTX.max[0];
+  if(!GModel::current()) return 0.;
+  SBoundingBox3d bb = GModel::current()->bounds();
+  return bb.empty() ? 0. : bb.max().x();
 }
 
 double opt_general_ymin(OPT_ARGS_NUM)
 {
-  return CTX.min[1];
+  if(!GModel::current()) return 0.;
+  SBoundingBox3d bb = GModel::current()->bounds();
+  return bb.empty() ? 0. : bb.min().y();
 }
 
 double opt_general_ymax(OPT_ARGS_NUM)
 {
-  return CTX.max[1];
+  if(!GModel::current()) return 0.;
+  SBoundingBox3d bb = GModel::current()->bounds();
+  return bb.empty() ? 0. : bb.max().y();
 }
 
 double opt_general_zmin(OPT_ARGS_NUM)
 {
-  return CTX.min[2];
+  if(!GModel::current()) return 0.;
+  SBoundingBox3d bb = GModel::current()->bounds();
+  return bb.empty() ? 0. : bb.min().z();
 }
 
 double opt_general_zmax(OPT_ARGS_NUM)
 {
-  return CTX.max[2];
+  if(!GModel::current()) return 0.;
+  SBoundingBox3d bb = GModel::current()->bounds();
+  return bb.empty() ? 0. : bb.max().z();
 }
 
 double opt_general_axes(OPT_ARGS_NUM)
diff --git a/Common/Options.h b/Common/Options.h
index 28afc13377..69f2b1b2a1 100644
--- a/Common/Options.h
+++ b/Common/Options.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/SmoothData.cpp b/Common/SmoothData.cpp
index 7a3a03b257..3f36427f85 100644
--- a/Common/SmoothData.cpp
+++ b/Common/SmoothData.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/SmoothData.h b/Common/SmoothData.h
index de908b5328..fed5c63d28 100644
--- a/Common/SmoothData.h
+++ b/Common/SmoothData.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/StringUtils.cpp b/Common/StringUtils.cpp
index eaa3769be7..2a975fa649 100644
--- a/Common/StringUtils.cpp
+++ b/Common/StringUtils.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/StringUtils.h b/Common/StringUtils.h
index e09f15553a..0d029fd085 100644
--- a/Common/StringUtils.h
+++ b/Common/StringUtils.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/TreeUtils.cpp b/Common/TreeUtils.cpp
index 4fb12a4a35..312d32feef 100644
--- a/Common/TreeUtils.cpp
+++ b/Common/TreeUtils.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/TreeUtils.h b/Common/TreeUtils.h
index b02cf6bdce..b10ae5304d 100644
--- a/Common/TreeUtils.h
+++ b/Common/TreeUtils.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/VertexArray.cpp b/Common/VertexArray.cpp
index 1a254f5f9f..863950d638 100644
--- a/Common/VertexArray.cpp
+++ b/Common/VertexArray.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/VertexArray.h b/Common/VertexArray.h
index 094c201b79..4ebdb9c616 100644
--- a/Common/VertexArray.h
+++ b/Common/VertexArray.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/Draw.cpp b/Fltk/Draw.cpp
index d5c5fdf5a0..e73fa6660a 100644
--- a/Fltk/Draw.cpp
+++ b/Fltk/Draw.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/Draw.h b/Fltk/Draw.h
index 05019fc4b3..551554cb7f 100644
--- a/Fltk/Draw.h
+++ b/Fltk/Draw.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/GUI.cpp b/Fltk/GUI.cpp
index 9712186c62..6ed5a1d8a2 100644
--- a/Fltk/GUI.cpp
+++ b/Fltk/GUI.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/GUI.h b/Fltk/GUI.h
index bbe383e9cc..abc9c737b3 100644
--- a/Fltk/GUI.h
+++ b/Fltk/GUI.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/Main.cpp b/Fltk/Main.cpp
index 7a047186a0..9e14b64881 100644
--- a/Fltk/Main.cpp
+++ b/Fltk/Main.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/Makefile b/Fltk/Makefile
index ecac5b5720..c3c380adb3 100644
--- a/Fltk/Makefile
+++ b/Fltk/Makefile
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/Solvers.cpp b/Fltk/Solvers.cpp
index a9e36174b6..41fc4db848 100644
--- a/Fltk/Solvers.cpp
+++ b/Fltk/Solvers.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/Solvers.h b/Fltk/Solvers.h
index 60ec601ed5..00c9f3b359 100644
--- a/Fltk/Solvers.h
+++ b/Fltk/Solvers.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/aboutWindow.cpp b/Fltk/aboutWindow.cpp
index dbbe20dc20..306354dbe7 100644
--- a/Fltk/aboutWindow.cpp
+++ b/Fltk/aboutWindow.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -51,7 +51,7 @@ aboutWindow::aboutWindow(int fontsize)
     o->add("@c@.A three-dimensional finite element mesh generator");
     o->add("@c@.with built-in pre- and post-processing facilities");
     o->add(" ");
-    o->add("@c@.Copyright (C) 1997-2008");
+    o->add("@c@.Copyright (C) 1997-2009");
 #if defined(__APPLE__)
     o->add("@c@.Christophe Geuzaine and Jean-Francois Remacle");
 #else
diff --git a/Fltk/aboutWindow.h b/Fltk/aboutWindow.h
index 9766e83ad8..394c09cff9 100644
--- a/Fltk/aboutWindow.h
+++ b/Fltk/aboutWindow.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/classificationEditor.cpp b/Fltk/classificationEditor.cpp
index 42f7352717..d77904329e 100644
--- a/Fltk/classificationEditor.cpp
+++ b/Fltk/classificationEditor.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/classificationEditor.h b/Fltk/classificationEditor.h
index 439359b7a4..31dbfff5ac 100644
--- a/Fltk/classificationEditor.h
+++ b/Fltk/classificationEditor.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/clippingWindow.cpp b/Fltk/clippingWindow.cpp
index fc08adbe89..1715d70ba2 100644
--- a/Fltk/clippingWindow.cpp
+++ b/Fltk/clippingWindow.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/clippingWindow.h b/Fltk/clippingWindow.h
index 1b1c6bba51..c3ced1dba1 100644
--- a/Fltk/clippingWindow.h
+++ b/Fltk/clippingWindow.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/colorbarWindow.cpp b/Fltk/colorbarWindow.cpp
index b7e2d1c0cb..be5522c306 100644
--- a/Fltk/colorbarWindow.cpp
+++ b/Fltk/colorbarWindow.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/colorbarWindow.h b/Fltk/colorbarWindow.h
index c2b047a9e8..ec20b58e7d 100644
--- a/Fltk/colorbarWindow.h
+++ b/Fltk/colorbarWindow.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/contextWindow.cpp b/Fltk/contextWindow.cpp
index 0c12a9bdf4..928cda38c1 100644
--- a/Fltk/contextWindow.cpp
+++ b/Fltk/contextWindow.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/contextWindow.h b/Fltk/contextWindow.h
index e03e401453..ff7ac307cd 100644
--- a/Fltk/contextWindow.h
+++ b/Fltk/contextWindow.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/extraDialogs.cpp b/Fltk/extraDialogs.cpp
index bff48b6d05..59c468c764 100644
--- a/Fltk/extraDialogs.cpp
+++ b/Fltk/extraDialogs.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/extraDialogs.h b/Fltk/extraDialogs.h
index d22116094d..7ccb224662 100644
--- a/Fltk/extraDialogs.h
+++ b/Fltk/extraDialogs.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/fieldWindow.cpp b/Fltk/fieldWindow.cpp
index dbec54e5e9..8c0a3a68c9 100644
--- a/Fltk/fieldWindow.cpp
+++ b/Fltk/fieldWindow.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/fieldWindow.h b/Fltk/fieldWindow.h
index 97e69bc2b4..c356592397 100644
--- a/Fltk/fieldWindow.h
+++ b/Fltk/fieldWindow.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/fileChooser.h b/Fltk/fileChooser.h
index f372c4bd68..0209c18cf9 100644
--- a/Fltk/fileChooser.h
+++ b/Fltk/fileChooser.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/fileDialogs.cpp b/Fltk/fileDialogs.cpp
index ebe2ecafab..92b7da69f2 100644
--- a/Fltk/fileDialogs.cpp
+++ b/Fltk/fileDialogs.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/fileDialogs.h b/Fltk/fileDialogs.h
index a463c6ef44..65fb61c74a 100644
--- a/Fltk/fileDialogs.h
+++ b/Fltk/fileDialogs.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/graphicWindow.cpp b/Fltk/graphicWindow.cpp
index 97c1d3c5c3..587c5193f2 100644
--- a/Fltk/graphicWindow.cpp
+++ b/Fltk/graphicWindow.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/graphicWindow.h b/Fltk/graphicWindow.h
index 266412126e..fd58d5de9c 100644
--- a/Fltk/graphicWindow.h
+++ b/Fltk/graphicWindow.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/manipWindow.cpp b/Fltk/manipWindow.cpp
index 2155d54da4..30c0bc9590 100644
--- a/Fltk/manipWindow.cpp
+++ b/Fltk/manipWindow.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/manipWindow.h b/Fltk/manipWindow.h
index 0ddfb7d59c..d04f9c7350 100644
--- a/Fltk/manipWindow.h
+++ b/Fltk/manipWindow.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/menuWindow.cpp b/Fltk/menuWindow.cpp
index 6b4566ba4c..844690da7f 100644
--- a/Fltk/menuWindow.cpp
+++ b/Fltk/menuWindow.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -545,6 +545,8 @@ static void add_new_point()
     }
   }
 
+  // at the end, not during creation to avoid having things jumping around
+  SetBoundingBox();
   Msg::StatusBar(3, false, "");
 }
 
diff --git a/Fltk/menuWindow.h b/Fltk/menuWindow.h
index 304e2277a0..1f0ee37f32 100644
--- a/Fltk/menuWindow.h
+++ b/Fltk/menuWindow.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/messageWindow.cpp b/Fltk/messageWindow.cpp
index 6e0983eadd..09d5c93df1 100644
--- a/Fltk/messageWindow.cpp
+++ b/Fltk/messageWindow.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/messageWindow.h b/Fltk/messageWindow.h
index 1cf53836fa..46dd78ec4c 100644
--- a/Fltk/messageWindow.h
+++ b/Fltk/messageWindow.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/openglWindow.cpp b/Fltk/openglWindow.cpp
index 674d6f872e..0302e66e6d 100644
--- a/Fltk/openglWindow.cpp
+++ b/Fltk/openglWindow.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -396,7 +396,7 @@ int openglWindow::handle(int event)
     else if(addPointMode && !Fl::event_state(FL_SHIFT)){
       cursor(FL_CURSOR_CROSS, FL_BLACK, FL_WHITE);
       // find line in real space corresponding to current cursor position
-      double p[3],d[3];
+      double p[3], d[3];
       _ctx->unproject(_curr.win[0], _curr.win[1], p, d);
       // fin closest point to the center of gravity
       double r[3] = {CTX.cg[0] - p[0], CTX.cg[1] - p[1], CTX.cg[2] - p[2]}, t;
diff --git a/Fltk/openglWindow.h b/Fltk/openglWindow.h
index e8d88c559e..79ac3ebb2a 100644
--- a/Fltk/openglWindow.h
+++ b/Fltk/openglWindow.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/optionWindow.cpp b/Fltk/optionWindow.cpp
index d7d886091e..a39c3f021d 100644
--- a/Fltk/optionWindow.cpp
+++ b/Fltk/optionWindow.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/optionWindow.h b/Fltk/optionWindow.h
index 91c6212f13..d66706dee0 100644
--- a/Fltk/optionWindow.h
+++ b/Fltk/optionWindow.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/partitionDialog.cpp b/Fltk/partitionDialog.cpp
index c268cd6bd5..a45593756b 100644
--- a/Fltk/partitionDialog.cpp
+++ b/Fltk/partitionDialog.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/partitionDialog.h b/Fltk/partitionDialog.h
index f0484381f7..c7cc8bbfb9 100644
--- a/Fltk/partitionDialog.h
+++ b/Fltk/partitionDialog.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/pluginWindow.cpp b/Fltk/pluginWindow.cpp
index 24662b10ec..1b0ae51f2c 100644
--- a/Fltk/pluginWindow.cpp
+++ b/Fltk/pluginWindow.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/pluginWindow.h b/Fltk/pluginWindow.h
index 3f06646628..a4069a0995 100644
--- a/Fltk/pluginWindow.h
+++ b/Fltk/pluginWindow.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/popupButton.h b/Fltk/popupButton.h
index b54185968c..c30e7a096c 100644
--- a/Fltk/popupButton.h
+++ b/Fltk/popupButton.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/projectionEditor.cpp b/Fltk/projectionEditor.cpp
index 32d2c6d09d..bc9745b09b 100644
--- a/Fltk/projectionEditor.cpp
+++ b/Fltk/projectionEditor.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/projectionEditor.h b/Fltk/projectionEditor.h
index 8dffb1cc9f..88eafc4e65 100644
--- a/Fltk/projectionEditor.h
+++ b/Fltk/projectionEditor.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/shortcutWindow.h b/Fltk/shortcutWindow.h
index 8f1a5f4095..d84dcf8ed8 100644
--- a/Fltk/shortcutWindow.h
+++ b/Fltk/shortcutWindow.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/solverWindow.cpp b/Fltk/solverWindow.cpp
index 72b16444bb..ead36f2791 100644
--- a/Fltk/solverWindow.cpp
+++ b/Fltk/solverWindow.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/solverWindow.h b/Fltk/solverWindow.h
index 940a0fbacc..f5a3b66f13 100644
--- a/Fltk/solverWindow.h
+++ b/Fltk/solverWindow.h
@@ -1,4 +1,4 @@
- // Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+ // Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/spherePositionWidget.h b/Fltk/spherePositionWidget.h
index 6f0f1004e0..6a99f5a6ed 100644
--- a/Fltk/spherePositionWidget.h
+++ b/Fltk/spherePositionWidget.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/statisticsWindow.cpp b/Fltk/statisticsWindow.cpp
index c3385d91f9..d419fb1151 100644
--- a/Fltk/statisticsWindow.cpp
+++ b/Fltk/statisticsWindow.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/statisticsWindow.h b/Fltk/statisticsWindow.h
index 680623bd7b..ff1a571506 100644
--- a/Fltk/statisticsWindow.h
+++ b/Fltk/statisticsWindow.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/visibilityWindow.cpp b/Fltk/visibilityWindow.cpp
index 2998c925fd..cdd9304002 100644
--- a/Fltk/visibilityWindow.cpp
+++ b/Fltk/visibilityWindow.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/visibilityWindow.h b/Fltk/visibilityWindow.h
index 98c316c00d..366cf23df6 100644
--- a/Fltk/visibilityWindow.h
+++ b/Fltk/visibilityWindow.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/CGNSOptions.h b/Geo/CGNSOptions.h
index bede76d071..bbf3de832b 100644
--- a/Geo/CGNSOptions.h
+++ b/Geo/CGNSOptions.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/CustomContainer.h b/Geo/CustomContainer.h
index 3e711a8bc8..6ea769d20d 100644
--- a/Geo/CustomContainer.h
+++ b/Geo/CustomContainer.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/ExtrudeParams.cpp b/Geo/ExtrudeParams.cpp
index ae35785ec7..9a2cf6b3f5 100644
--- a/Geo/ExtrudeParams.cpp
+++ b/Geo/ExtrudeParams.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/ExtrudeParams.h b/Geo/ExtrudeParams.h
index 868cb37500..808293eb22 100644
--- a/Geo/ExtrudeParams.h
+++ b/Geo/ExtrudeParams.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GEdge.cpp b/Geo/GEdge.cpp
index 5e93359a03..902f242c0f 100644
--- a/Geo/GEdge.cpp
+++ b/Geo/GEdge.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GEdge.h b/Geo/GEdge.h
index 75fe34602a..1f1074ee01 100644
--- a/Geo/GEdge.h
+++ b/Geo/GEdge.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GEdgeLoop.cpp b/Geo/GEdgeLoop.cpp
index c747f1ff02..3481457b3a 100644
--- a/Geo/GEdgeLoop.cpp
+++ b/Geo/GEdgeLoop.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GEdgeLoop.h b/Geo/GEdgeLoop.h
index 7e7ce636e1..ee3be96a5a 100644
--- a/Geo/GEdgeLoop.h
+++ b/Geo/GEdgeLoop.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GEntity.cpp b/Geo/GEntity.cpp
index 8e8c4e6b78..d52f9eaaff 100644
--- a/Geo/GEntity.cpp
+++ b/Geo/GEntity.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GEntity.h b/Geo/GEntity.h
index 7d202ec255..7895889391 100644
--- a/Geo/GEntity.h
+++ b/Geo/GEntity.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GFace.cpp b/Geo/GFace.cpp
index 85b787e0d5..85fdd92eca 100644
--- a/Geo/GFace.cpp
+++ b/Geo/GFace.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GFace.h b/Geo/GFace.h
index a3f845d2d3..e0975d6454 100644
--- a/Geo/GFace.h
+++ b/Geo/GFace.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GFaceCompound.cpp b/Geo/GFaceCompound.cpp
index 749d61b376..a5e77b017a 100644
--- a/Geo/GFaceCompound.cpp
+++ b/Geo/GFaceCompound.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GFaceCompound.h b/Geo/GFaceCompound.h
index 6b88f6c213..5ceae9b7d3 100644
--- a/Geo/GFaceCompound.h
+++ b/Geo/GFaceCompound.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GModel.cpp b/Geo/GModel.cpp
index d096db5784..9cc1918c10 100644
--- a/Geo/GModel.cpp
+++ b/Geo/GModel.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GModel.h b/Geo/GModel.h
index 8af394c60c..bb5f0de890 100644
--- a/Geo/GModel.h
+++ b/Geo/GModel.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GModelIO_CGNS.cpp b/Geo/GModelIO_CGNS.cpp
index 5bc36de235..2d5ee293c4 100644
--- a/Geo/GModelIO_CGNS.cpp
+++ b/Geo/GModelIO_CGNS.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GModelIO_Fourier.cpp b/Geo/GModelIO_Fourier.cpp
index 2b2826b43f..bc2e15dd7c 100644
--- a/Geo/GModelIO_Fourier.cpp
+++ b/Geo/GModelIO_Fourier.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GModelIO_Fourier.h b/Geo/GModelIO_Fourier.h
index 03945096ed..3369962b69 100644
--- a/Geo/GModelIO_Fourier.h
+++ b/Geo/GModelIO_Fourier.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GModelIO_Geo.cpp b/Geo/GModelIO_Geo.cpp
index 91111b159d..4a93498ec0 100644
--- a/Geo/GModelIO_Geo.cpp
+++ b/Geo/GModelIO_Geo.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GModelIO_MED.cpp b/Geo/GModelIO_MED.cpp
index 38a82894d9..bef1d671fb 100644
--- a/Geo/GModelIO_MED.cpp
+++ b/Geo/GModelIO_MED.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GModelIO_Mesh.cpp b/Geo/GModelIO_Mesh.cpp
index a692250950..f5ca9880de 100644
--- a/Geo/GModelIO_Mesh.cpp
+++ b/Geo/GModelIO_Mesh.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GModelIO_OCC.cpp b/Geo/GModelIO_OCC.cpp
index 80207098e3..25313cef01 100644
--- a/Geo/GModelIO_OCC.cpp
+++ b/Geo/GModelIO_OCC.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GModelIO_OCC.h b/Geo/GModelIO_OCC.h
index 8fe4dcbad0..ff9e87294a 100644
--- a/Geo/GModelIO_OCC.h
+++ b/Geo/GModelIO_OCC.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GPoint.h b/Geo/GPoint.h
index 4024727b68..4248b45736 100644
--- a/Geo/GPoint.h
+++ b/Geo/GPoint.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GRegion.cpp b/Geo/GRegion.cpp
index eb12adc52d..7a9f406e54 100644
--- a/Geo/GRegion.cpp
+++ b/Geo/GRegion.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GRegion.h b/Geo/GRegion.h
index 556f3682ba..f3e5d35242 100644
--- a/Geo/GRegion.h
+++ b/Geo/GRegion.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GVertex.cpp b/Geo/GVertex.cpp
index 9a2ace892a..df10ac83bc 100644
--- a/Geo/GVertex.cpp
+++ b/Geo/GVertex.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GVertex.h b/Geo/GVertex.h
index 370d3a609f..01b0fd8c85 100644
--- a/Geo/GVertex.h
+++ b/Geo/GVertex.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/Geo.cpp b/Geo/Geo.cpp
index f58b70e054..1d5ce7cec3 100644
--- a/Geo/Geo.cpp
+++ b/Geo/Geo.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/Geo.h b/Geo/Geo.h
index c9456c96be..5572a6d795 100644
--- a/Geo/Geo.h
+++ b/Geo/Geo.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GeoInterpolation.cpp b/Geo/GeoInterpolation.cpp
index e6fa69f6e8..6d2eb6025c 100644
--- a/Geo/GeoInterpolation.cpp
+++ b/Geo/GeoInterpolation.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GeoInterpolation.h b/Geo/GeoInterpolation.h
index 2f93b48595..33f6888878 100644
--- a/Geo/GeoInterpolation.h
+++ b/Geo/GeoInterpolation.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GeoStringInterface.cpp b/Geo/GeoStringInterface.cpp
index ab25c56b3c..e736d0edd8 100644
--- a/Geo/GeoStringInterface.cpp
+++ b/Geo/GeoStringInterface.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GeoStringInterface.h b/Geo/GeoStringInterface.h
index 7a0b4a96f5..7e795c8bc9 100644
--- a/Geo/GeoStringInterface.h
+++ b/Geo/GeoStringInterface.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/MEdge.h b/Geo/MEdge.h
index 2e75b164e2..e76343c46b 100644
--- a/Geo/MEdge.h
+++ b/Geo/MEdge.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/MEdgeHash.h b/Geo/MEdgeHash.h
index f2f944ca55..4615d943dc 100644
--- a/Geo/MEdgeHash.h
+++ b/Geo/MEdgeHash.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/MElement.cpp b/Geo/MElement.cpp
index ecad47c363..1f535071d8 100644
--- a/Geo/MElement.cpp
+++ b/Geo/MElement.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/MElement.h b/Geo/MElement.h
index b1232bdba4..ab3475377b 100644
--- a/Geo/MElement.h
+++ b/Geo/MElement.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/MFace.cpp b/Geo/MFace.cpp
index a151dc2523..a2ced7e7bb 100644
--- a/Geo/MFace.cpp
+++ b/Geo/MFace.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/MFace.h b/Geo/MFace.h
index 591351d6b4..ce8a8b088f 100644
--- a/Geo/MFace.h
+++ b/Geo/MFace.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/MFaceHash.h b/Geo/MFaceHash.h
index 1f5dcddff8..24355b5a81 100644
--- a/Geo/MFaceHash.h
+++ b/Geo/MFaceHash.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/MVertex.cpp b/Geo/MVertex.cpp
index 23881b11f4..658dd4f8ce 100644
--- a/Geo/MVertex.cpp
+++ b/Geo/MVertex.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/MVertex.h b/Geo/MVertex.h
index 29bd41142e..a75755c579 100644
--- a/Geo/MVertex.h
+++ b/Geo/MVertex.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/MZone.cpp b/Geo/MZone.cpp
index b981331459..c7d0a36a18 100644
--- a/Geo/MZone.cpp
+++ b/Geo/MZone.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/MZone.h b/Geo/MZone.h
index cb2453c775..2419b90202 100644
--- a/Geo/MZone.h
+++ b/Geo/MZone.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/MZoneBoundary.cpp b/Geo/MZoneBoundary.cpp
index b553a5f34a..786bfad512 100644
--- a/Geo/MZoneBoundary.cpp
+++ b/Geo/MZoneBoundary.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/MZoneBoundary.h b/Geo/MZoneBoundary.h
index 8689e3cc13..48c837c47f 100644
--- a/Geo/MZoneBoundary.h
+++ b/Geo/MZoneBoundary.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/Makefile b/Geo/Makefile
index 37474ed2f8..bf390b3b36 100644
--- a/Geo/Makefile
+++ b/Geo/Makefile
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/OCCEdge.cpp b/Geo/OCCEdge.cpp
index 14b83453ac..f5ac05e957 100644
--- a/Geo/OCCEdge.cpp
+++ b/Geo/OCCEdge.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/OCCEdge.h b/Geo/OCCEdge.h
index 0b71d20aab..725d49242c 100644
--- a/Geo/OCCEdge.h
+++ b/Geo/OCCEdge.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/OCCFace.cpp b/Geo/OCCFace.cpp
index 96d6d7497a..785a29dda9 100644
--- a/Geo/OCCFace.cpp
+++ b/Geo/OCCFace.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/OCCFace.h b/Geo/OCCFace.h
index 183e3b6fb5..2bb5de307f 100644
--- a/Geo/OCCFace.h
+++ b/Geo/OCCFace.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/OCCIncludes.h b/Geo/OCCIncludes.h
index 43626856dc..795a8534ae 100644
--- a/Geo/OCCIncludes.h
+++ b/Geo/OCCIncludes.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/OCCRegion.cpp b/Geo/OCCRegion.cpp
index 0b05d257f3..5a1b746cf6 100644
--- a/Geo/OCCRegion.cpp
+++ b/Geo/OCCRegion.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/OCCRegion.h b/Geo/OCCRegion.h
index ef6f7fa3d7..e04e7dd328 100644
--- a/Geo/OCCRegion.h
+++ b/Geo/OCCRegion.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/OCCVertex.cpp b/Geo/OCCVertex.cpp
index 0c880f82f9..0a1e4bf60b 100644
--- a/Geo/OCCVertex.cpp
+++ b/Geo/OCCVertex.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/OCCVertex.h b/Geo/OCCVertex.h
index 8df227f0dc..bd2e9b89fc 100644
--- a/Geo/OCCVertex.h
+++ b/Geo/OCCVertex.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/Pair.h b/Geo/Pair.h
index 8aaf86cfac..0b4b32f67f 100644
--- a/Geo/Pair.h
+++ b/Geo/Pair.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/Range.h b/Geo/Range.h
index 26604e528d..c186c789d5 100644
--- a/Geo/Range.h
+++ b/Geo/Range.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/SBoundingBox3d.h b/Geo/SBoundingBox3d.h
index c3f9a0c3fc..6992af9e98 100644
--- a/Geo/SBoundingBox3d.h
+++ b/Geo/SBoundingBox3d.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/SPoint2.h b/Geo/SPoint2.h
index 08428cef7f..fae78d7c7a 100644
--- a/Geo/SPoint2.h
+++ b/Geo/SPoint2.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/SPoint3.h b/Geo/SPoint3.h
index 4af00e1747..b7ad5ce2dc 100644
--- a/Geo/SPoint3.h
+++ b/Geo/SPoint3.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/SVector3.h b/Geo/SVector3.h
index f3f0d90637..9102ba2844 100644
--- a/Geo/SVector3.h
+++ b/Geo/SVector3.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/discreteEdge.cpp b/Geo/discreteEdge.cpp
index 9d6dade36d..d56f116f0d 100644
--- a/Geo/discreteEdge.cpp
+++ b/Geo/discreteEdge.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/discreteEdge.h b/Geo/discreteEdge.h
index 77495657fc..44ce0bf4cc 100644
--- a/Geo/discreteEdge.h
+++ b/Geo/discreteEdge.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/discreteFace.cpp b/Geo/discreteFace.cpp
index 0a9879ba2d..f45f75de76 100644
--- a/Geo/discreteFace.cpp
+++ b/Geo/discreteFace.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/discreteFace.h b/Geo/discreteFace.h
index 6956840d33..554bd344b7 100644
--- a/Geo/discreteFace.h
+++ b/Geo/discreteFace.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/discreteRegion.cpp b/Geo/discreteRegion.cpp
index 0ef3d2e4f6..dcf1cf22ca 100644
--- a/Geo/discreteRegion.cpp
+++ b/Geo/discreteRegion.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/discreteRegion.h b/Geo/discreteRegion.h
index f4ad037fcc..814776902e 100644
--- a/Geo/discreteRegion.h
+++ b/Geo/discreteRegion.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/discreteVertex.h b/Geo/discreteVertex.h
index 885f2db769..9a9d5d4be8 100644
--- a/Geo/discreteVertex.h
+++ b/Geo/discreteVertex.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/findLinks.cpp b/Geo/findLinks.cpp
index 14427756d4..2f52aef7da 100644
--- a/Geo/findLinks.cpp
+++ b/Geo/findLinks.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/findLinks.h b/Geo/findLinks.h
index 09dec5012b..55c4db6f77 100644
--- a/Geo/findLinks.h
+++ b/Geo/findLinks.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/fourierEdge.cpp b/Geo/fourierEdge.cpp
index 39d13e302f..ac2b2f0137 100644
--- a/Geo/fourierEdge.cpp
+++ b/Geo/fourierEdge.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/fourierEdge.h b/Geo/fourierEdge.h
index 6d61b1c037..e206d67298 100644
--- a/Geo/fourierEdge.h
+++ b/Geo/fourierEdge.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/fourierFace.cpp b/Geo/fourierFace.cpp
index 2ec18e866d..c0ee5d6b52 100644
--- a/Geo/fourierFace.cpp
+++ b/Geo/fourierFace.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/fourierFace.h b/Geo/fourierFace.h
index 7b861f8c21..0e49ef2273 100644
--- a/Geo/fourierFace.h
+++ b/Geo/fourierFace.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/fourierProjectionFace.cpp b/Geo/fourierProjectionFace.cpp
index 7bb9320d31..3b4a47ec0d 100644
--- a/Geo/fourierProjectionFace.cpp
+++ b/Geo/fourierProjectionFace.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/fourierProjectionFace.h b/Geo/fourierProjectionFace.h
index 29a8d2e756..fc2b02c7b5 100644
--- a/Geo/fourierProjectionFace.h
+++ b/Geo/fourierProjectionFace.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/fourierVertex.h b/Geo/fourierVertex.h
index a7232152c4..b7fc7bc5e4 100644
--- a/Geo/fourierVertex.h
+++ b/Geo/fourierVertex.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/gmshEdge.cpp b/Geo/gmshEdge.cpp
index 92a9859757..4f4152544b 100644
--- a/Geo/gmshEdge.cpp
+++ b/Geo/gmshEdge.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/gmshEdge.h b/Geo/gmshEdge.h
index 684d64eace..bf197c7d59 100644
--- a/Geo/gmshEdge.h
+++ b/Geo/gmshEdge.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/gmshFace.cpp b/Geo/gmshFace.cpp
index 0ee716cf44..f73ba6a67f 100644
--- a/Geo/gmshFace.cpp
+++ b/Geo/gmshFace.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/gmshFace.h b/Geo/gmshFace.h
index 35534159da..cd2fb92718 100644
--- a/Geo/gmshFace.h
+++ b/Geo/gmshFace.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/gmshRegion.cpp b/Geo/gmshRegion.cpp
index a1718fdb5c..a67897b8ec 100644
--- a/Geo/gmshRegion.cpp
+++ b/Geo/gmshRegion.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/gmshRegion.h b/Geo/gmshRegion.h
index 005c095ff5..5274d41895 100644
--- a/Geo/gmshRegion.h
+++ b/Geo/gmshRegion.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/gmshSurface.cpp b/Geo/gmshSurface.cpp
index ba92756764..2cfca94d2a 100644
--- a/Geo/gmshSurface.cpp
+++ b/Geo/gmshSurface.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/gmshSurface.h b/Geo/gmshSurface.h
index 4480df9d67..b0a8a9eb08 100644
--- a/Geo/gmshSurface.h
+++ b/Geo/gmshSurface.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/gmshVertex.cpp b/Geo/gmshVertex.cpp
index 5c13f2bed4..70b2142178 100644
--- a/Geo/gmshVertex.cpp
+++ b/Geo/gmshVertex.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/gmshVertex.h b/Geo/gmshVertex.h
index f7082a1ef0..e01a709e45 100644
--- a/Geo/gmshVertex.h
+++ b/Geo/gmshVertex.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/Iso.cpp b/Graphics/Iso.cpp
index bf8bd6d036..29d05949d0 100644
--- a/Graphics/Iso.cpp
+++ b/Graphics/Iso.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/Iso.h b/Graphics/Iso.h
index 02522e79f7..82c38d3ce4 100644
--- a/Graphics/Iso.h
+++ b/Graphics/Iso.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/Makefile b/Graphics/Makefile
index e9eaf93c9a..ab2422eb2d 100644
--- a/Graphics/Makefile
+++ b/Graphics/Makefile
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/PixelBuffer.h b/Graphics/PixelBuffer.h
index de9892a5a5..139079cde6 100644
--- a/Graphics/PixelBuffer.h
+++ b/Graphics/PixelBuffer.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/ReadImg.cpp b/Graphics/ReadImg.cpp
index 558bad61ed..daa7eca955 100644
--- a/Graphics/ReadImg.cpp
+++ b/Graphics/ReadImg.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/ReadImg.h b/Graphics/ReadImg.h
index 6d4a7330d2..6bd46b02be 100644
--- a/Graphics/ReadImg.h
+++ b/Graphics/ReadImg.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/drawAxes.cpp b/Graphics/drawAxes.cpp
index a5c4bbcfa7..e1d29b205f 100644
--- a/Graphics/drawAxes.cpp
+++ b/Graphics/drawAxes.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/drawContext.cpp b/Graphics/drawContext.cpp
index 9f6b647404..7b3e79a8b5 100644
--- a/Graphics/drawContext.cpp
+++ b/Graphics/drawContext.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/drawContext.h b/Graphics/drawContext.h
index d00de75966..ac361956bb 100644
--- a/Graphics/drawContext.h
+++ b/Graphics/drawContext.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/drawGeom.cpp b/Graphics/drawGeom.cpp
index 8e718816f8..ed528bc349 100644
--- a/Graphics/drawGeom.cpp
+++ b/Graphics/drawGeom.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/drawGlyph.cpp b/Graphics/drawGlyph.cpp
index 2deb02743f..d4e8fdee43 100644
--- a/Graphics/drawGlyph.cpp
+++ b/Graphics/drawGlyph.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/drawGraph2d.cpp b/Graphics/drawGraph2d.cpp
index 84166f708f..c9a627fb0b 100644
--- a/Graphics/drawGraph2d.cpp
+++ b/Graphics/drawGraph2d.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/drawMesh.cpp b/Graphics/drawMesh.cpp
index 62139382de..442ba70896 100644
--- a/Graphics/drawMesh.cpp
+++ b/Graphics/drawMesh.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/drawPost.cpp b/Graphics/drawPost.cpp
index 5051a34ba8..fc0c6a3634 100644
--- a/Graphics/drawPost.cpp
+++ b/Graphics/drawPost.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/drawScales.cpp b/Graphics/drawScales.cpp
index 25d3356635..b580e9ca88 100644
--- a/Graphics/drawScales.cpp
+++ b/Graphics/drawScales.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/gl2gif.cpp b/Graphics/gl2gif.cpp
index 632c58ed00..2d7f15323b 100644
--- a/Graphics/gl2gif.cpp
+++ b/Graphics/gl2gif.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/gl2gif.h b/Graphics/gl2gif.h
index d5e488ac97..aeb60ba7fa 100644
--- a/Graphics/gl2gif.h
+++ b/Graphics/gl2gif.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/gl2jpeg.cpp b/Graphics/gl2jpeg.cpp
index 3eee4982ec..2c9f60e4d4 100644
--- a/Graphics/gl2jpeg.cpp
+++ b/Graphics/gl2jpeg.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/gl2jpeg.h b/Graphics/gl2jpeg.h
index b35d7eb8e9..6ae61ae6c0 100644
--- a/Graphics/gl2jpeg.h
+++ b/Graphics/gl2jpeg.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/gl2png.cpp b/Graphics/gl2png.cpp
index ef60a45c0e..032b3273ea 100644
--- a/Graphics/gl2png.cpp
+++ b/Graphics/gl2png.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/gl2png.h b/Graphics/gl2png.h
index 2d0d66f51f..3fcfba60b1 100644
--- a/Graphics/gl2png.h
+++ b/Graphics/gl2png.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/gl2ppm.cpp b/Graphics/gl2ppm.cpp
index 70d1b9ae6a..df67b69774 100644
--- a/Graphics/gl2ppm.cpp
+++ b/Graphics/gl2ppm.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/gl2ppm.h b/Graphics/gl2ppm.h
index 46d1f80c1e..7337293ad4 100644
--- a/Graphics/gl2ppm.h
+++ b/Graphics/gl2ppm.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/gl2yuv.cpp b/Graphics/gl2yuv.cpp
index 4f8916a7dd..f62caf9fdc 100644
--- a/Graphics/gl2yuv.cpp
+++ b/Graphics/gl2yuv.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/gl2yuv.h b/Graphics/gl2yuv.h
index 6fc096f520..9235d20f8a 100644
--- a/Graphics/gl2yuv.h
+++ b/Graphics/gl2yuv.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Makefile b/Makefile
index 0c7631e5ca..2a82970c2e 100644
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/BDS.cpp b/Mesh/BDS.cpp
index 445a327db8..7721b6bfea 100644
--- a/Mesh/BDS.cpp
+++ b/Mesh/BDS.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/BDS.h b/Mesh/BDS.h
index e8ba1572ac..bdab5edf66 100644
--- a/Mesh/BDS.h
+++ b/Mesh/BDS.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/BackgroundMesh.cpp b/Mesh/BackgroundMesh.cpp
index 0ef33b1156..d7e8669da0 100644
--- a/Mesh/BackgroundMesh.cpp
+++ b/Mesh/BackgroundMesh.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/BackgroundMesh.h b/Mesh/BackgroundMesh.h
index 6eedf0f47b..da24500e9e 100644
--- a/Mesh/BackgroundMesh.h
+++ b/Mesh/BackgroundMesh.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/BoundaryLayers.cpp b/Mesh/BoundaryLayers.cpp
index f874c3124e..4095d75a37 100644
--- a/Mesh/BoundaryLayers.cpp
+++ b/Mesh/BoundaryLayers.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/BoundaryLayers.h b/Mesh/BoundaryLayers.h
index e8c7441b78..fcea36948b 100644
--- a/Mesh/BoundaryLayers.h
+++ b/Mesh/BoundaryLayers.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/DivideAndConquer.cpp b/Mesh/DivideAndConquer.cpp
index dc38297cef..98046d129a 100644
--- a/Mesh/DivideAndConquer.cpp
+++ b/Mesh/DivideAndConquer.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/DivideAndConquer.h b/Mesh/DivideAndConquer.h
index e75d61e3aa..52d5aee7bb 100644
--- a/Mesh/DivideAndConquer.h
+++ b/Mesh/DivideAndConquer.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/Field.cpp b/Mesh/Field.cpp
index 786cbba88b..ab48208212 100644
--- a/Mesh/Field.cpp
+++ b/Mesh/Field.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/Field.h b/Mesh/Field.h
index d68b87d385..87f62af459 100644
--- a/Mesh/Field.h
+++ b/Mesh/Field.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/Generator.cpp b/Mesh/Generator.cpp
index ebbd29becd..e988408df6 100644
--- a/Mesh/Generator.cpp
+++ b/Mesh/Generator.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/Generator.h b/Mesh/Generator.h
index b9eb74a9be..35dabb7582 100644
--- a/Mesh/Generator.h
+++ b/Mesh/Generator.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/HighOrder.cpp b/Mesh/HighOrder.cpp
index 89d4061535..9ae0020eab 100644
--- a/Mesh/HighOrder.cpp
+++ b/Mesh/HighOrder.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/HighOrder.h b/Mesh/HighOrder.h
index 9bd6778804..f0fd3cf456 100644
--- a/Mesh/HighOrder.h
+++ b/Mesh/HighOrder.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/Makefile b/Mesh/Makefile
index 9673d7d674..648214f251 100644
--- a/Mesh/Makefile
+++ b/Mesh/Makefile
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/Partition.cpp b/Mesh/Partition.cpp
index 3eb51ac678..15830d52ba 100644
--- a/Mesh/Partition.cpp
+++ b/Mesh/Partition.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/Partition.h b/Mesh/Partition.h
index 9581ce85b8..974704a120 100644
--- a/Mesh/Partition.h
+++ b/Mesh/Partition.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/PartitionObjects.h b/Mesh/PartitionObjects.h
index 1f7f378aeb..6f74e7393d 100644
--- a/Mesh/PartitionObjects.h
+++ b/Mesh/PartitionObjects.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/PartitionOptions.h b/Mesh/PartitionOptions.h
index a0042cdc4a..d02d0d6da0 100644
--- a/Mesh/PartitionOptions.h
+++ b/Mesh/PartitionOptions.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/Refine.cpp b/Mesh/Refine.cpp
index 040b80d931..3240ba1da2 100644
--- a/Mesh/Refine.cpp
+++ b/Mesh/Refine.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/gmshSmoothHighOrder.cpp b/Mesh/gmshSmoothHighOrder.cpp
index e5ea84bcb1..fa5de819ed 100644
--- a/Mesh/gmshSmoothHighOrder.cpp
+++ b/Mesh/gmshSmoothHighOrder.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/gmshSmoothHighOrder.h b/Mesh/gmshSmoothHighOrder.h
index 502852c264..f927f8d701 100644
--- a/Mesh/gmshSmoothHighOrder.h
+++ b/Mesh/gmshSmoothHighOrder.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGEdge.cpp b/Mesh/meshGEdge.cpp
index ddfec538be..d8262a4425 100644
--- a/Mesh/meshGEdge.cpp
+++ b/Mesh/meshGEdge.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGEdge.h b/Mesh/meshGEdge.h
index 2876a76111..2d8214bcfd 100644
--- a/Mesh/meshGEdge.h
+++ b/Mesh/meshGEdge.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGEdgeExtruded.cpp b/Mesh/meshGEdgeExtruded.cpp
index 0b1e55f5e1..9c3b818104 100644
--- a/Mesh/meshGEdgeExtruded.cpp
+++ b/Mesh/meshGEdgeExtruded.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGFace.cpp b/Mesh/meshGFace.cpp
index e6a853f009..428f65fcfd 100644
--- a/Mesh/meshGFace.cpp
+++ b/Mesh/meshGFace.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGFace.h b/Mesh/meshGFace.h
index bf4f9ae091..cc6e56a127 100644
--- a/Mesh/meshGFace.h
+++ b/Mesh/meshGFace.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGFaceBDS.cpp b/Mesh/meshGFaceBDS.cpp
index c85b684606..cd7a94d88d 100644
--- a/Mesh/meshGFaceBDS.cpp
+++ b/Mesh/meshGFaceBDS.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGFaceBDS.h b/Mesh/meshGFaceBDS.h
index 4c39223ebc..6b22dd452a 100644
--- a/Mesh/meshGFaceBDS.h
+++ b/Mesh/meshGFaceBDS.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGFaceDelaunayInsertion.cpp b/Mesh/meshGFaceDelaunayInsertion.cpp
index 019b8cdb23..ae57c85d7a 100644
--- a/Mesh/meshGFaceDelaunayInsertion.cpp
+++ b/Mesh/meshGFaceDelaunayInsertion.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGFaceDelaunayInsertion.h b/Mesh/meshGFaceDelaunayInsertion.h
index 8eea12661b..10b0672cc9 100644
--- a/Mesh/meshGFaceDelaunayInsertion.h
+++ b/Mesh/meshGFaceDelaunayInsertion.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGFaceExtruded.cpp b/Mesh/meshGFaceExtruded.cpp
index ae322e8002..9ad55ebe81 100644
--- a/Mesh/meshGFaceExtruded.cpp
+++ b/Mesh/meshGFaceExtruded.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGFaceOptimize.cpp b/Mesh/meshGFaceOptimize.cpp
index 2902e03a2d..d0df634c99 100644
--- a/Mesh/meshGFaceOptimize.cpp
+++ b/Mesh/meshGFaceOptimize.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGFaceOptimize.h b/Mesh/meshGFaceOptimize.h
index 24bbb5947d..a4b44c955e 100644
--- a/Mesh/meshGFaceOptimize.h
+++ b/Mesh/meshGFaceOptimize.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGFaceQuadrilateralize.cpp b/Mesh/meshGFaceQuadrilateralize.cpp
index 7adff0cb6d..4e5dfdb040 100644
--- a/Mesh/meshGFaceQuadrilateralize.cpp
+++ b/Mesh/meshGFaceQuadrilateralize.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGFaceQuadrilateralize.h b/Mesh/meshGFaceQuadrilateralize.h
index 12f9e076ae..9975d7f663 100644
--- a/Mesh/meshGFaceQuadrilateralize.h
+++ b/Mesh/meshGFaceQuadrilateralize.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGFaceTransfinite.cpp b/Mesh/meshGFaceTransfinite.cpp
index 7f7dc11c49..aa71123754 100644
--- a/Mesh/meshGFaceTransfinite.cpp
+++ b/Mesh/meshGFaceTransfinite.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGRegion.cpp b/Mesh/meshGRegion.cpp
index 47ba750408..e08b1780f9 100644
--- a/Mesh/meshGRegion.cpp
+++ b/Mesh/meshGRegion.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGRegion.h b/Mesh/meshGRegion.h
index fd206231b0..134ae03747 100644
--- a/Mesh/meshGRegion.h
+++ b/Mesh/meshGRegion.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGRegionCarveHole.cpp b/Mesh/meshGRegionCarveHole.cpp
index 473284576d..bb13e6495a 100644
--- a/Mesh/meshGRegionCarveHole.cpp
+++ b/Mesh/meshGRegionCarveHole.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGRegionDelaunayInsertion.cpp b/Mesh/meshGRegionDelaunayInsertion.cpp
index 9d3b928262..1bdfa916a3 100644
--- a/Mesh/meshGRegionDelaunayInsertion.cpp
+++ b/Mesh/meshGRegionDelaunayInsertion.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGRegionDelaunayInsertion.h b/Mesh/meshGRegionDelaunayInsertion.h
index 355b24c7b1..0f38b4684b 100644
--- a/Mesh/meshGRegionDelaunayInsertion.h
+++ b/Mesh/meshGRegionDelaunayInsertion.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGRegionExtruded.cpp b/Mesh/meshGRegionExtruded.cpp
index 6b1aa6f803..d6fbd24212 100644
--- a/Mesh/meshGRegionExtruded.cpp
+++ b/Mesh/meshGRegionExtruded.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGRegionLocalMeshMod.cpp b/Mesh/meshGRegionLocalMeshMod.cpp
index 9f2623bf81..29f87ea1b3 100644
--- a/Mesh/meshGRegionLocalMeshMod.cpp
+++ b/Mesh/meshGRegionLocalMeshMod.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGRegionLocalMeshMod.h b/Mesh/meshGRegionLocalMeshMod.h
index 60e3d748bf..bebec4ea24 100644
--- a/Mesh/meshGRegionLocalMeshMod.h
+++ b/Mesh/meshGRegionLocalMeshMod.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGRegionTransfinite.cpp b/Mesh/meshGRegionTransfinite.cpp
index 2bd94f9b6f..609ba91860 100644
--- a/Mesh/meshGRegionTransfinite.cpp
+++ b/Mesh/meshGRegionTransfinite.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -265,8 +265,8 @@ void findTransfiniteCorners(GRegion *gr, std::vector<MVertex*> &corners)
   }
   else{
     // try to find the corners automatically
-    GFace *gf = 0;
     std::list<GFace*> faces = gr->faces();
+    GFace *gf = 0;
     if(faces.size() == 6){
       // any face will do as a starting face
       gf = faces.front();
@@ -286,7 +286,7 @@ void findTransfiniteCorners(GRegion *gr, std::vector<MVertex*> &corners)
       for(std::list<GEdge*>::iterator it = fedges.begin(); it != fedges.end(); it++)
         redges.erase(std::find(redges.begin(), redges.end(), *it));
       findTransfiniteCorners(gf, corners);
-      int N = corners.size();
+      unsigned int N = corners.size();
       for(unsigned int i = 0; i < N; i++){
         for(std::list<GEdge*>::iterator it = redges.begin(); it != redges.end(); it++){
           if((*it)->getBeginVertex()->mesh_vertices[0] == corners[i]){
diff --git a/Mesh/qualityMeasures.cpp b/Mesh/qualityMeasures.cpp
index fa99f5cdcd..055f8e0798 100644
--- a/Mesh/qualityMeasures.cpp
+++ b/Mesh/qualityMeasures.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/qualityMeasures.h b/Mesh/qualityMeasures.h
index 177109f34d..5b8232879c 100644
--- a/Mesh/qualityMeasures.h
+++ b/Mesh/qualityMeasures.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/EigSolve.cpp b/Numeric/EigSolve.cpp
index 72a2fe1a67..0b51712afb 100644
--- a/Numeric/EigSolve.cpp
+++ b/Numeric/EigSolve.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/EigSolve.h b/Numeric/EigSolve.h
index ca604bfd91..d4eb1aa6fa 100644
--- a/Numeric/EigSolve.h
+++ b/Numeric/EigSolve.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/FunctionSpace.cpp b/Numeric/FunctionSpace.cpp
index 825855f811..6cab3d5030 100644
--- a/Numeric/FunctionSpace.cpp
+++ b/Numeric/FunctionSpace.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/FunctionSpace.h b/Numeric/FunctionSpace.h
index 4f0fad6b83..242f023cc9 100644
--- a/Numeric/FunctionSpace.h
+++ b/Numeric/FunctionSpace.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/Gauss.h b/Numeric/Gauss.h
index 6e30077da1..1ac32d9073 100644
--- a/Numeric/Gauss.h
+++ b/Numeric/Gauss.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/GaussLegendre1D.h b/Numeric/GaussLegendre1D.h
index 69bdcbbf42..165d2a895d 100644
--- a/Numeric/GaussLegendre1D.h
+++ b/Numeric/GaussLegendre1D.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/GaussLegendreSimplex.cpp b/Numeric/GaussLegendreSimplex.cpp
index b277079181..38f48169cb 100644
--- a/Numeric/GaussLegendreSimplex.cpp
+++ b/Numeric/GaussLegendreSimplex.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/GaussQuadratureHex.cpp b/Numeric/GaussQuadratureHex.cpp
index daabd20873..972938f971 100644
--- a/Numeric/GaussQuadratureHex.cpp
+++ b/Numeric/GaussQuadratureHex.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/GaussQuadratureQuad.cpp b/Numeric/GaussQuadratureQuad.cpp
index bb2c6ff83e..941f00441b 100644
--- a/Numeric/GaussQuadratureQuad.cpp
+++ b/Numeric/GaussQuadratureQuad.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/GaussQuadratureTet.cpp b/Numeric/GaussQuadratureTet.cpp
index 854426ebba..9448f73bc1 100644
--- a/Numeric/GaussQuadratureTet.cpp
+++ b/Numeric/GaussQuadratureTet.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/GaussQuadratureTri.cpp b/Numeric/GaussQuadratureTri.cpp
index 21a4503f28..5a11530b33 100644
--- a/Numeric/GaussQuadratureTri.cpp
+++ b/Numeric/GaussQuadratureTri.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/GmshMatrix.h b/Numeric/GmshMatrix.h
index 6afc0af6ea..66b1906092 100644
--- a/Numeric/GmshMatrix.h
+++ b/Numeric/GmshMatrix.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/Makefile b/Numeric/Makefile
index 1040b376b3..e9023fb71e 100644
--- a/Numeric/Makefile
+++ b/Numeric/Makefile
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/Numeric.cpp b/Numeric/Numeric.cpp
index b1dd0d27f2..821568231d 100644
--- a/Numeric/Numeric.cpp
+++ b/Numeric/Numeric.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/Numeric.h b/Numeric/Numeric.h
index 0348210f6e..59573e793d 100644
--- a/Numeric/Numeric.h
+++ b/Numeric/Numeric.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/NumericEmbedded.cpp b/Numeric/NumericEmbedded.cpp
index 7726040a93..5ffe3cdd11 100644
--- a/Numeric/NumericEmbedded.cpp
+++ b/Numeric/NumericEmbedded.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/NumericEmbedded.h b/Numeric/NumericEmbedded.h
index 4ba6bf858b..f6b0368ae1 100644
--- a/Numeric/NumericEmbedded.h
+++ b/Numeric/NumericEmbedded.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/gmshAssembler.cpp b/Numeric/gmshAssembler.cpp
index 19d2abab7f..f28f2ec96b 100644
--- a/Numeric/gmshAssembler.cpp
+++ b/Numeric/gmshAssembler.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/gmshAssembler.h b/Numeric/gmshAssembler.h
index 86ccfe8ec3..8fac7b745c 100644
--- a/Numeric/gmshAssembler.h
+++ b/Numeric/gmshAssembler.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/gmshElasticity.cpp b/Numeric/gmshElasticity.cpp
index 43f439ceb3..15da29b6d7 100644
--- a/Numeric/gmshElasticity.cpp
+++ b/Numeric/gmshElasticity.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/gmshElasticity.h b/Numeric/gmshElasticity.h
index ef91b36935..a3953991a9 100644
--- a/Numeric/gmshElasticity.h
+++ b/Numeric/gmshElasticity.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/gmshFunction.h b/Numeric/gmshFunction.h
index cb98bf1dfa..ed11c8876a 100644
--- a/Numeric/gmshFunction.h
+++ b/Numeric/gmshFunction.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/gmshLaplace.cpp b/Numeric/gmshLaplace.cpp
index 176cab13aa..d47a79ed27 100644
--- a/Numeric/gmshLaplace.cpp
+++ b/Numeric/gmshLaplace.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/gmshLaplace.h b/Numeric/gmshLaplace.h
index f184c6725b..7b56095159 100644
--- a/Numeric/gmshLaplace.h
+++ b/Numeric/gmshLaplace.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/gmshLinearSystem.h b/Numeric/gmshLinearSystem.h
index 0ae30e13c6..4c2eec641c 100644
--- a/Numeric/gmshLinearSystem.h
+++ b/Numeric/gmshLinearSystem.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/gmshLinearSystemFull.h b/Numeric/gmshLinearSystemFull.h
index 15205916e1..9302e4e8e0 100644
--- a/Numeric/gmshLinearSystemFull.h
+++ b/Numeric/gmshLinearSystemFull.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/gmshLinearSystemGmm.h b/Numeric/gmshLinearSystemGmm.h
index 6f27a41781..e65894ad12 100644
--- a/Numeric/gmshLinearSystemGmm.h
+++ b/Numeric/gmshLinearSystemGmm.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/gmshTermOfFormulation.cpp b/Numeric/gmshTermOfFormulation.cpp
index d39d236b09..088433923f 100644
--- a/Numeric/gmshTermOfFormulation.cpp
+++ b/Numeric/gmshTermOfFormulation.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/gmshTermOfFormulation.h b/Numeric/gmshTermOfFormulation.h
index 00d63bee78..be89cd1ec3 100644
--- a/Numeric/gmshTermOfFormulation.h
+++ b/Numeric/gmshTermOfFormulation.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Parser/FunctionManager.cpp b/Parser/FunctionManager.cpp
index aaba123653..939feca0dc 100644
--- a/Parser/FunctionManager.cpp
+++ b/Parser/FunctionManager.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Parser/FunctionManager.h b/Parser/FunctionManager.h
index c13672088c..fd87a2d3d7 100644
--- a/Parser/FunctionManager.h
+++ b/Parser/FunctionManager.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Parser/Gmsh.l b/Parser/Gmsh.l
index 3dfea8d3d2..bce780dc83 100644
--- a/Parser/Gmsh.l
+++ b/Parser/Gmsh.l
@@ -1,5 +1,5 @@
 %{
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Parser/Gmsh.tab.cpp b/Parser/Gmsh.tab.cpp
index a1911a28d3..6b0287f411 100644
--- a/Parser/Gmsh.tab.cpp
+++ b/Parser/Gmsh.tab.cpp
@@ -320,7 +320,7 @@
 /* Copy the first part of user declarations.  */
 #line 1 "Gmsh.y"
 
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -387,7 +387,7 @@ void yyerror(char *s);
 void yymsg(int level, const char *fmt, ...);
 void skip_until(const char *skip, const char *until);
 int PrintListOfDouble(char *format, List_T *list, char *buffer);
-Double_Matrix *ListOfListOfDouble2Matrix(List_T *list);
+Double_Matrix ListOfListOfDouble2Matrix(List_T *list);
 void FixRelativePath(const char *in, char *out);
 
 
@@ -972,37 +972,37 @@ static const yytype_uint16 yyrline[] =
      170,   174,   181,   186,   201,   214,   243,   257,   268,   283,
      288,   289,   290,   291,   292,   296,   298,   303,   305,   311,
      457,   310,   475,   482,   493,   492,   511,   518,   529,   528,
-     546,   567,   599,   598,   612,   613,   614,   615,   616,   620,
-     621,   628,   650,   677,   717,   727,   735,   743,   755,   764,
-     769,   777,   795,   813,   822,   834,   839,   847,   867,   890,
-     897,   903,   923,   944,   970,   982,   999,  1003,  1013,  1016,
-    1029,  1032,  1042,  1065,  1081,  1103,  1121,  1139,  1169,  1199,
-    1219,  1237,  1255,  1281,  1298,  1317,  1335,  1374,  1380,  1386,
-    1393,  1418,  1443,  1459,  1475,  1506,  1524,  1541,  1562,  1567,
-    1572,  1577,  1582,  1602,  1608,  1619,  1620,  1625,  1628,  1632,
-    1655,  1678,  1701,  1729,  1738,  1742,  1757,  1778,  1795,  1809,
-    1815,  1821,  1830,  1844,  1892,  1910,  1925,  1944,  1956,  1980,
-    1984,  1989,  1994,  2006,  2023,  2040,  2059,  2078,  2106,  2114,
-    2120,  2127,  2131,  2140,  2148,  2156,  2165,  2164,  2177,  2176,
-    2189,  2188,  2201,  2200,  2213,  2220,  2227,  2234,  2241,  2248,
-    2255,  2262,  2269,  2277,  2276,  2288,  2287,  2299,  2298,  2310,
-    2309,  2321,  2320,  2332,  2331,  2343,  2342,  2354,  2353,  2365,
-    2364,  2379,  2382,  2388,  2397,  2417,  2440,  2444,  2468,  2471,
-    2487,  2490,  2503,  2506,  2512,  2515,  2522,  2576,  2646,  2651,
-    2718,  2761,  2787,  2810,  2833,  2836,  2845,  2849,  2865,  2866,
-    2867,  2868,  2869,  2870,  2871,  2872,  2873,  2880,  2881,  2882,
-    2883,  2884,  2885,  2886,  2887,  2888,  2889,  2890,  2891,  2892,
-    2893,  2894,  2895,  2896,  2897,  2898,  2899,  2900,  2901,  2902,
-    2903,  2904,  2905,  2906,  2907,  2908,  2909,  2910,  2911,  2913,
-    2914,  2915,  2916,  2917,  2918,  2919,  2920,  2921,  2922,  2923,
-    2924,  2925,  2926,  2927,  2928,  2929,  2930,  2931,  2932,  2933,
-    2942,  2943,  2944,  2945,  2946,  2947,  2948,  2952,  2965,  2977,
-    2992,  3002,  3012,  3030,  3035,  3040,  3050,  3060,  3068,  3072,
-    3076,  3080,  3084,  3091,  3095,  3099,  3103,  3110,  3115,  3122,
-    3127,  3131,  3136,  3140,  3148,  3159,  3163,  3175,  3183,  3191,
-    3198,  3209,  3229,  3239,  3249,  3259,  3279,  3284,  3288,  3292,
-    3304,  3308,  3320,  3327,  3337,  3341,  3356,  3361,  3368,  3372,
-    3385,  3393,  3404,  3408,  3416,  3424,  3438,  3452,  3456
+     546,   562,   585,   584,   598,   599,   600,   601,   602,   606,
+     607,   614,   636,   663,   703,   713,   721,   729,   741,   750,
+     755,   763,   781,   799,   808,   820,   825,   833,   853,   876,
+     883,   889,   909,   930,   956,   968,   985,   989,   999,  1002,
+    1015,  1018,  1028,  1051,  1067,  1089,  1107,  1125,  1155,  1185,
+    1205,  1223,  1241,  1267,  1284,  1303,  1321,  1360,  1366,  1372,
+    1379,  1404,  1429,  1445,  1461,  1492,  1510,  1527,  1548,  1553,
+    1558,  1563,  1568,  1588,  1594,  1605,  1606,  1611,  1614,  1618,
+    1641,  1664,  1687,  1715,  1724,  1728,  1743,  1764,  1781,  1795,
+    1801,  1807,  1816,  1830,  1878,  1896,  1911,  1930,  1942,  1966,
+    1970,  1975,  1980,  1992,  2009,  2026,  2045,  2064,  2092,  2100,
+    2106,  2113,  2117,  2126,  2134,  2142,  2151,  2150,  2163,  2162,
+    2175,  2174,  2187,  2186,  2199,  2206,  2213,  2220,  2227,  2234,
+    2241,  2248,  2255,  2263,  2262,  2274,  2273,  2285,  2284,  2296,
+    2295,  2307,  2306,  2318,  2317,  2329,  2328,  2340,  2339,  2351,
+    2350,  2365,  2368,  2374,  2383,  2403,  2426,  2430,  2454,  2457,
+    2473,  2476,  2489,  2492,  2498,  2501,  2508,  2562,  2632,  2637,
+    2704,  2747,  2773,  2796,  2819,  2822,  2831,  2835,  2851,  2852,
+    2853,  2854,  2855,  2856,  2857,  2858,  2859,  2866,  2867,  2868,
+    2869,  2870,  2871,  2872,  2873,  2874,  2875,  2876,  2877,  2878,
+    2879,  2880,  2881,  2882,  2883,  2884,  2885,  2886,  2887,  2888,
+    2889,  2890,  2891,  2892,  2893,  2894,  2895,  2896,  2897,  2899,
+    2900,  2901,  2902,  2903,  2904,  2905,  2906,  2907,  2908,  2909,
+    2910,  2911,  2912,  2913,  2914,  2915,  2916,  2917,  2918,  2919,
+    2928,  2929,  2930,  2931,  2932,  2933,  2934,  2938,  2951,  2963,
+    2978,  2988,  2998,  3016,  3021,  3026,  3036,  3046,  3054,  3058,
+    3062,  3066,  3070,  3077,  3081,  3085,  3089,  3096,  3101,  3108,
+    3113,  3117,  3122,  3126,  3134,  3145,  3149,  3161,  3169,  3177,
+    3184,  3195,  3215,  3225,  3235,  3245,  3265,  3270,  3274,  3278,
+    3290,  3294,  3306,  3313,  3323,  3327,  3342,  3347,  3354,  3358,
+    3371,  3379,  3390,  3394,  3402,  3410,  3424,  3438,  3442
 };
 #endif
 
@@ -4141,17 +4141,12 @@ yyreduce:
 	0;
       ViewData->setInterpolationMatrices(type, ListOfListOfDouble2Matrix((yyvsp[(3) - (8)].l)), 
                                          ListOfListOfDouble2Matrix((yyvsp[(6) - (8)].l)));
-      for(int i = 0; i < List_Nbr((yyvsp[(3) - (8)].l)); i++)
-        List_Delete(*(List_T**)List_Pointer((yyvsp[(3) - (8)].l), i));
-      for(int i = 0; i < List_Nbr((yyvsp[(6) - (8)].l)); i++)
-        List_Delete(*(List_T**)List_Pointer((yyvsp[(6) - (8)].l), i));
-      List_Delete((yyvsp[(3) - (8)].l)); List_Delete((yyvsp[(6) - (8)].l));
 #endif
     ;}
     break;
 
   case 51:
-#line 571 "Gmsh.y"
+#line 566 "Gmsh.y"
     {
 #if !defined(HAVE_NO_POST)
       int type = 
@@ -4165,21 +4160,12 @@ yyreduce:
                                          ListOfListOfDouble2Matrix((yyvsp[(6) - (14)].l)),
                                          ListOfListOfDouble2Matrix((yyvsp[(9) - (14)].l)), 
                                          ListOfListOfDouble2Matrix((yyvsp[(12) - (14)].l)));
-      for(int i = 0; i < List_Nbr((yyvsp[(3) - (14)].l)); i++) 
-        List_Delete(*(List_T**)List_Pointer((yyvsp[(3) - (14)].l), i));
-      for(int i = 0; i < List_Nbr((yyvsp[(6) - (14)].l)); i++) 
-        List_Delete(*(List_T**)List_Pointer((yyvsp[(6) - (14)].l), i));
-      for(int i = 0; i < List_Nbr((yyvsp[(9) - (14)].l)); i++) 
-        List_Delete(*(List_T**)List_Pointer((yyvsp[(9) - (14)].l), i));
-      for(int i = 0; i < List_Nbr((yyvsp[(12) - (14)].l)); i++) 
-        List_Delete(*(List_T**)List_Pointer((yyvsp[(12) - (14)].l), i));
-      List_Delete((yyvsp[(3) - (14)].l)); List_Delete((yyvsp[(6) - (14)].l)); List_Delete((yyvsp[(9) - (14)].l)); List_Delete((yyvsp[(12) - (14)].l));
 #endif
     ;}
     break;
 
   case 52:
-#line 599 "Gmsh.y"
+#line 585 "Gmsh.y"
     {
 #if !defined(HAVE_NO_POST)
       ViewValueList = ViewData->Time;
@@ -4188,48 +4174,48 @@ yyreduce:
     break;
 
   case 53:
-#line 605 "Gmsh.y"
+#line 591 "Gmsh.y"
     {
     ;}
     break;
 
   case 54:
-#line 612 "Gmsh.y"
+#line 598 "Gmsh.y"
     { (yyval.i) = 0; ;}
     break;
 
   case 55:
-#line 613 "Gmsh.y"
+#line 599 "Gmsh.y"
     { (yyval.i) = 1; ;}
     break;
 
   case 56:
-#line 614 "Gmsh.y"
+#line 600 "Gmsh.y"
     { (yyval.i) = 2; ;}
     break;
 
   case 57:
-#line 615 "Gmsh.y"
+#line 601 "Gmsh.y"
     { (yyval.i) = 3; ;}
     break;
 
   case 58:
-#line 616 "Gmsh.y"
+#line 602 "Gmsh.y"
     { (yyval.i) = 4; ;}
     break;
 
   case 59:
-#line 620 "Gmsh.y"
+#line 606 "Gmsh.y"
     { (yyval.i) = 1; ;}
     break;
 
   case 60:
-#line 621 "Gmsh.y"
+#line 607 "Gmsh.y"
     { (yyval.i) = -1; ;}
     break;
 
   case 61:
-#line 629 "Gmsh.y"
+#line 615 "Gmsh.y"
     {
       if(!gmsh_yysymbols.count((yyvsp[(1) - (4)].c))){
 	if(!(yyvsp[(2) - (4)].i))
@@ -4254,7 +4240,7 @@ yyreduce:
     break;
 
   case 62:
-#line 651 "Gmsh.y"
+#line 637 "Gmsh.y"
     {
       int index = (int)(yyvsp[(3) - (7)].d);
       if(!gmsh_yysymbols.count((yyvsp[(1) - (7)].c))){
@@ -4284,7 +4270,7 @@ yyreduce:
     break;
 
   case 63:
-#line 678 "Gmsh.y"
+#line 664 "Gmsh.y"
     {
       if(List_Nbr((yyvsp[(4) - (9)].l)) != List_Nbr((yyvsp[(8) - (9)].l))){
 	yymsg(0, "Incompatible array dimensions in affectation");
@@ -4327,7 +4313,7 @@ yyreduce:
     break;
 
   case 64:
-#line 718 "Gmsh.y"
+#line 704 "Gmsh.y"
     {
       if(gmsh_yysymbols.count((yyvsp[(1) - (6)].c)))
 	gmsh_yysymbols[(yyvsp[(1) - (6)].c)].clear();
@@ -4340,7 +4326,7 @@ yyreduce:
     break;
 
   case 65:
-#line 728 "Gmsh.y"
+#line 714 "Gmsh.y"
     {
       // appends to the list
       for(int i = 0; i < List_Nbr((yyvsp[(5) - (6)].l)); i++)
@@ -4351,7 +4337,7 @@ yyreduce:
     break;
 
   case 66:
-#line 736 "Gmsh.y"
+#line 722 "Gmsh.y"
     {
       if(!gmsh_yysymbols.count((yyvsp[(1) - (3)].c)))
 	yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (3)].c)); 
@@ -4362,7 +4348,7 @@ yyreduce:
     break;
 
   case 67:
-#line 744 "Gmsh.y"
+#line 730 "Gmsh.y"
     {
       if(!gmsh_yysymbols.count((yyvsp[(1) - (6)].c)))
 	yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (6)].c)); 
@@ -4377,7 +4363,7 @@ yyreduce:
     break;
 
   case 68:
-#line 756 "Gmsh.y"
+#line 742 "Gmsh.y"
     { 
       gmsh_yystringsymbols[(yyvsp[(1) - (4)].c)] = std::string((yyvsp[(3) - (4)].c));
       Free((yyvsp[(1) - (4)].c));
@@ -4386,7 +4372,7 @@ yyreduce:
     break;
 
   case 69:
-#line 765 "Gmsh.y"
+#line 751 "Gmsh.y"
     { 
       StringOption(GMSH_SET|GMSH_GUI, (yyvsp[(1) - (6)].c), 0, (yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].c));
       Free((yyvsp[(1) - (6)].c)); Free((yyvsp[(3) - (6)].c));
@@ -4394,7 +4380,7 @@ yyreduce:
     break;
 
   case 70:
-#line 770 "Gmsh.y"
+#line 756 "Gmsh.y"
     { 
       StringOption(GMSH_SET|GMSH_GUI, (yyvsp[(1) - (9)].c), (int)(yyvsp[(3) - (9)].d), (yyvsp[(6) - (9)].c), (yyvsp[(8) - (9)].c));
       Free((yyvsp[(1) - (9)].c)); Free((yyvsp[(6) - (9)].c));
@@ -4402,7 +4388,7 @@ yyreduce:
     break;
 
   case 71:
-#line 778 "Gmsh.y"
+#line 764 "Gmsh.y"
     {
       double d = 0.;
       if(NumberOption(GMSH_GET, (yyvsp[(1) - (6)].c), 0, (yyvsp[(3) - (6)].c), d)){
@@ -4423,7 +4409,7 @@ yyreduce:
     break;
 
   case 72:
-#line 796 "Gmsh.y"
+#line 782 "Gmsh.y"
     {
       double d = 0.;
       if(NumberOption(GMSH_GET, (yyvsp[(1) - (9)].c), (int)(yyvsp[(3) - (9)].d), (yyvsp[(6) - (9)].c), d)){
@@ -4444,7 +4430,7 @@ yyreduce:
     break;
 
   case 73:
-#line 814 "Gmsh.y"
+#line 800 "Gmsh.y"
     {
       double d = 0.;
       if(NumberOption(GMSH_GET, (yyvsp[(1) - (5)].c), 0, (yyvsp[(3) - (5)].c), d)){
@@ -4456,7 +4442,7 @@ yyreduce:
     break;
 
   case 74:
-#line 823 "Gmsh.y"
+#line 809 "Gmsh.y"
     {
       double d = 0.;
       if(NumberOption(GMSH_GET, (yyvsp[(1) - (8)].c), (int)(yyvsp[(3) - (8)].d), (yyvsp[(6) - (8)].c), d)){
@@ -4468,7 +4454,7 @@ yyreduce:
     break;
 
   case 75:
-#line 835 "Gmsh.y"
+#line 821 "Gmsh.y"
     {
       ColorOption(GMSH_SET|GMSH_GUI, (yyvsp[(1) - (8)].c), 0, (yyvsp[(5) - (8)].c), (yyvsp[(7) - (8)].u));
       Free((yyvsp[(1) - (8)].c)); Free((yyvsp[(5) - (8)].c));
@@ -4476,7 +4462,7 @@ yyreduce:
     break;
 
   case 76:
-#line 840 "Gmsh.y"
+#line 826 "Gmsh.y"
     {
       ColorOption(GMSH_SET|GMSH_GUI, (yyvsp[(1) - (11)].c), (int)(yyvsp[(3) - (11)].d), (yyvsp[(8) - (11)].c), (yyvsp[(10) - (11)].u));
       Free((yyvsp[(1) - (11)].c)); Free((yyvsp[(8) - (11)].c));
@@ -4484,7 +4470,7 @@ yyreduce:
     break;
 
   case 77:
-#line 848 "Gmsh.y"
+#line 834 "Gmsh.y"
     {
       GmshColorTable *ct = Get_ColorTable(0);
       if(!ct)
@@ -4507,7 +4493,7 @@ yyreduce:
     break;
 
   case 78:
-#line 868 "Gmsh.y"
+#line 854 "Gmsh.y"
     {
       GmshColorTable *ct = Get_ColorTable((int)(yyvsp[(3) - (9)].d));
       if(!ct)
@@ -4530,7 +4516,7 @@ yyreduce:
     break;
 
   case 79:
-#line 891 "Gmsh.y"
+#line 877 "Gmsh.y"
     {
       if(!strcmp((yyvsp[(1) - (5)].c),"Background"))
 	GModel::current()->getFields()->background_field = (int)(yyvsp[(4) - (5)].d);
@@ -4540,7 +4526,7 @@ yyreduce:
     break;
 
   case 80:
-#line 898 "Gmsh.y"
+#line 884 "Gmsh.y"
     {
       if(!GModel::current()->getFields()->new_field((int)(yyvsp[(3) - (7)].d), (yyvsp[(6) - (7)].c)))
 	yymsg(0, "Cannot create field %i of type '%s'", (int)(yyvsp[(3) - (7)].d), (yyvsp[(6) - (7)].c));
@@ -4549,7 +4535,7 @@ yyreduce:
     break;
 
   case 81:
-#line 904 "Gmsh.y"
+#line 890 "Gmsh.y"
     {
       Field *field = GModel::current()->getFields()->get((int)(yyvsp[(3) - (9)].d));
       if(field){
@@ -4572,7 +4558,7 @@ yyreduce:
     break;
 
   case 82:
-#line 924 "Gmsh.y"
+#line 910 "Gmsh.y"
     {
       Field *field = GModel::current()->getFields()->get((int)(yyvsp[(3) - (9)].d));
       if(field){
@@ -4596,7 +4582,7 @@ yyreduce:
     break;
 
   case 83:
-#line 945 "Gmsh.y"
+#line 931 "Gmsh.y"
     {
       Field *field = GModel::current()->getFields()->get((int)(yyvsp[(3) - (11)].d));
       if(field){
@@ -4622,7 +4608,7 @@ yyreduce:
     break;
 
   case 84:
-#line 971 "Gmsh.y"
+#line 957 "Gmsh.y"
     {
 #if !defined(HAVE_NO_POST)
       try {
@@ -4637,7 +4623,7 @@ yyreduce:
     break;
 
   case 85:
-#line 983 "Gmsh.y"
+#line 969 "Gmsh.y"
     {
 #if !defined(HAVE_NO_POST)
       try {
@@ -4652,14 +4638,14 @@ yyreduce:
     break;
 
   case 86:
-#line 1000 "Gmsh.y"
+#line 986 "Gmsh.y"
     { 
       (yyval.i) = (int)(yyvsp[(1) - (1)].d); 
     ;}
     break;
 
   case 87:
-#line 1004 "Gmsh.y"
+#line 990 "Gmsh.y"
     { 
       (yyval.i) = GModel::current()->setPhysicalName
 	(std::string((yyvsp[(1) - (1)].c)), ++GModel::current()->getGEOInternals()->MaxPhysicalNum);
@@ -4668,14 +4654,14 @@ yyreduce:
     break;
 
   case 88:
-#line 1013 "Gmsh.y"
+#line 999 "Gmsh.y"
     {
       (yyval.l) = 0;
     ;}
     break;
 
   case 89:
-#line 1017 "Gmsh.y"
+#line 1003 "Gmsh.y"
     {
       (yyval.l) = List_Create(1, 1, sizeof(Vertex*));
       Vertex *v = FindPoint((int)(yyvsp[(4) - (5)].d));
@@ -4688,21 +4674,21 @@ yyreduce:
     break;
 
   case 90:
-#line 1029 "Gmsh.y"
+#line 1015 "Gmsh.y"
     {
       for(int i = 0; i < 4; i++) (yyval.v)[i] = 0.;
     ;}
     break;
 
   case 91:
-#line 1033 "Gmsh.y"
+#line 1019 "Gmsh.y"
     {
       for(int i = 0; i < 4; i++) (yyval.v)[i] = (yyvsp[(2) - (2)].v)[i];
     ;}
     break;
 
   case 92:
-#line 1043 "Gmsh.y"
+#line 1029 "Gmsh.y"
     {
       int num = (int)(yyvsp[(3) - (7)].d);
       if(FindPoint(num)){
@@ -4728,7 +4714,7 @@ yyreduce:
     break;
 
   case 93:
-#line 1066 "Gmsh.y"
+#line 1052 "Gmsh.y"
     {
       int num = (int)(yyvsp[(4) - (8)].i);
       if(FindPhysicalGroup(num, MSH_PHYSICAL_POINT)){
@@ -4747,7 +4733,7 @@ yyreduce:
     break;
 
   case 94:
-#line 1082 "Gmsh.y"
+#line 1068 "Gmsh.y"
     {      
       for(int i = 0; i < List_Nbr((yyvsp[(3) - (6)].l)); i++){
 	double d;
@@ -4769,7 +4755,7 @@ yyreduce:
     break;
 
   case 95:
-#line 1104 "Gmsh.y"
+#line 1090 "Gmsh.y"
     {
       int num = (int)(yyvsp[(3) - (7)].d);
       if(FindCurve(num)){
@@ -4790,7 +4776,7 @@ yyreduce:
     break;
 
   case 96:
-#line 1122 "Gmsh.y"
+#line 1108 "Gmsh.y"
     {
       int num = (int)(yyvsp[(3) - (7)].d);
       if(FindCurve(num)){
@@ -4811,7 +4797,7 @@ yyreduce:
     break;
 
   case 97:
-#line 1140 "Gmsh.y"
+#line 1126 "Gmsh.y"
     {
       int num = (int)(yyvsp[(3) - (8)].d);
       if(FindCurve(num)){
@@ -4844,7 +4830,7 @@ yyreduce:
     break;
 
   case 98:
-#line 1170 "Gmsh.y"
+#line 1156 "Gmsh.y"
     {
       int num = (int)(yyvsp[(3) - (8)].d);
       if(FindCurve(num)){
@@ -4877,7 +4863,7 @@ yyreduce:
     break;
 
   case 99:
-#line 1201 "Gmsh.y"
+#line 1187 "Gmsh.y"
     {
       int num = (int)(yyvsp[(3) - (17)].d);
       if(FindCurve(num)){
@@ -4899,7 +4885,7 @@ yyreduce:
     break;
 
   case 100:
-#line 1220 "Gmsh.y"
+#line 1206 "Gmsh.y"
     {
       int num = (int)(yyvsp[(3) - (7)].d);
       if(FindCurve(num)){
@@ -4920,7 +4906,7 @@ yyreduce:
     break;
 
   case 101:
-#line 1238 "Gmsh.y"
+#line 1224 "Gmsh.y"
     {
       int num = (int)(yyvsp[(3) - (7)].d);
       if(FindCurve(num)){
@@ -4941,7 +4927,7 @@ yyreduce:
     break;
 
   case 102:
-#line 1256 "Gmsh.y"
+#line 1242 "Gmsh.y"
     {
       int num = (int)(yyvsp[(3) - (11)].d);
       if(List_Nbr((yyvsp[(6) - (11)].l)) + (int)(yyvsp[(10) - (11)].d) + 1 != List_Nbr((yyvsp[(8) - (11)].l))){
@@ -4970,7 +4956,7 @@ yyreduce:
     break;
 
   case 103:
-#line 1282 "Gmsh.y"
+#line 1268 "Gmsh.y"
     {
       int num = (int)(yyvsp[(4) - (8)].d);
       if(FindEdgeLoop(num)){
@@ -4990,7 +4976,7 @@ yyreduce:
     break;
 
   case 104:
-#line 1299 "Gmsh.y"
+#line 1285 "Gmsh.y"
     {
       int num = (int)(yyvsp[(4) - (8)].i);
       if(FindPhysicalGroup(num, MSH_PHYSICAL_LINE)){
@@ -5009,7 +4995,7 @@ yyreduce:
     break;
 
   case 105:
-#line 1318 "Gmsh.y"
+#line 1304 "Gmsh.y"
     {
       int num = (int)(yyvsp[(4) - (8)].d);
       if(FindSurface(num)){
@@ -5030,7 +5016,7 @@ yyreduce:
     break;
 
   case 106:
-#line 1336 "Gmsh.y"
+#line 1322 "Gmsh.y"
     {
       int num = (int)(yyvsp[(4) - (9)].d), type = 0;
       if(FindSurface(num)){
@@ -5072,7 +5058,7 @@ yyreduce:
     break;
 
   case 107:
-#line 1375 "Gmsh.y"
+#line 1361 "Gmsh.y"
     {
       myGmshSurface = 0;
       (yyval.s).Type = 0;
@@ -5081,7 +5067,7 @@ yyreduce:
     break;
 
   case 108:
-#line 1381 "Gmsh.y"
+#line 1367 "Gmsh.y"
     {
       myGmshSurface = gmshSurface::getSurface((int)(yyvsp[(3) - (4)].d));
       (yyval.s).Type = 0;
@@ -5090,7 +5076,7 @@ yyreduce:
     break;
 
   case 109:
-#line 1387 "Gmsh.y"
+#line 1373 "Gmsh.y"
     {
       int num = (int)(yyvsp[(4) - (10)].d);
       myGmshSurface = gmshParametricSurface::NewParametricSurface(num, (yyvsp[(7) - (10)].c), (yyvsp[(8) - (10)].c), (yyvsp[(9) - (10)].c));
@@ -5100,7 +5086,7 @@ yyreduce:
     break;
 
   case 110:
-#line 1394 "Gmsh.y"
+#line 1380 "Gmsh.y"
     {
       int num = (int)(yyvsp[(3) - (7)].d);
       if (List_Nbr((yyvsp[(6) - (7)].l)) != 2){
@@ -5128,7 +5114,7 @@ yyreduce:
     break;
 
   case 111:
-#line 1419 "Gmsh.y"
+#line 1405 "Gmsh.y"
     {
       int num = (int)(yyvsp[(3) - (7)].d);
       if (List_Nbr((yyvsp[(6) - (7)].l)) != 2){
@@ -5156,7 +5142,7 @@ yyreduce:
     break;
 
   case 112:
-#line 1444 "Gmsh.y"
+#line 1430 "Gmsh.y"
     {
       int num = (int)(yyvsp[(4) - (8)].d);
       if(FindSurfaceLoop(num)){
@@ -5175,7 +5161,7 @@ yyreduce:
     break;
 
   case 113:
-#line 1460 "Gmsh.y"
+#line 1446 "Gmsh.y"
     {
       int num = (int)(yyvsp[(4) - (8)].i);
       if(FindPhysicalGroup(num, MSH_PHYSICAL_SURFACE)){
@@ -5194,7 +5180,7 @@ yyreduce:
     break;
 
   case 114:
-#line 1476 "Gmsh.y"
+#line 1462 "Gmsh.y"
     {
       int num = (int)(yyvsp[(4) - (12)].d);
       if(FindPhysicalGroup(num, MSH_PHYSICAL_SURFACE)){
@@ -5224,7 +5210,7 @@ yyreduce:
     break;
 
   case 115:
-#line 1507 "Gmsh.y"
+#line 1493 "Gmsh.y"
     {
       yymsg(0, "'Complex Volume' command is deprecated: use 'Volume' instead");
       int num = (int)(yyvsp[(4) - (8)].d);
@@ -5245,7 +5231,7 @@ yyreduce:
     break;
 
   case 116:
-#line 1525 "Gmsh.y"
+#line 1511 "Gmsh.y"
     {
       int num = (int)(yyvsp[(3) - (7)].d);
       if(FindVolume(num)){
@@ -5265,7 +5251,7 @@ yyreduce:
     break;
 
   case 117:
-#line 1542 "Gmsh.y"
+#line 1528 "Gmsh.y"
     {
       int num = (int)(yyvsp[(4) - (8)].i);
       if(FindPhysicalGroup(num, MSH_PHYSICAL_VOLUME)){
@@ -5284,7 +5270,7 @@ yyreduce:
     break;
 
   case 118:
-#line 1563 "Gmsh.y"
+#line 1549 "Gmsh.y"
     {
       TranslateShapes((yyvsp[(2) - (5)].v)[0], (yyvsp[(2) - (5)].v)[1], (yyvsp[(2) - (5)].v)[2], (yyvsp[(4) - (5)].l));
       (yyval.l) = (yyvsp[(4) - (5)].l);
@@ -5292,7 +5278,7 @@ yyreduce:
     break;
 
   case 119:
-#line 1568 "Gmsh.y"
+#line 1554 "Gmsh.y"
     {
       RotateShapes((yyvsp[(3) - (11)].v)[0], (yyvsp[(3) - (11)].v)[1], (yyvsp[(3) - (11)].v)[2], (yyvsp[(5) - (11)].v)[0], (yyvsp[(5) - (11)].v)[1], (yyvsp[(5) - (11)].v)[2], (yyvsp[(7) - (11)].d), (yyvsp[(10) - (11)].l));
       (yyval.l) = (yyvsp[(10) - (11)].l);
@@ -5300,7 +5286,7 @@ yyreduce:
     break;
 
   case 120:
-#line 1573 "Gmsh.y"
+#line 1559 "Gmsh.y"
     {
       SymmetryShapes((yyvsp[(2) - (5)].v)[0], (yyvsp[(2) - (5)].v)[1], (yyvsp[(2) - (5)].v)[2], (yyvsp[(2) - (5)].v)[3], (yyvsp[(4) - (5)].l));
       (yyval.l) = (yyvsp[(4) - (5)].l);
@@ -5308,7 +5294,7 @@ yyreduce:
     break;
 
   case 121:
-#line 1578 "Gmsh.y"
+#line 1564 "Gmsh.y"
     {
       DilatShapes((yyvsp[(3) - (9)].v)[0], (yyvsp[(3) - (9)].v)[1], (yyvsp[(3) - (9)].v)[2], (yyvsp[(5) - (9)].d), (yyvsp[(8) - (9)].l));
       (yyval.l) = (yyvsp[(8) - (9)].l);
@@ -5316,7 +5302,7 @@ yyreduce:
     break;
 
   case 122:
-#line 1583 "Gmsh.y"
+#line 1569 "Gmsh.y"
     {
       (yyval.l) = List_Create(3, 3, sizeof(Shape));
       if(!strcmp((yyvsp[(1) - (4)].c), "Duplicata")){
@@ -5339,7 +5325,7 @@ yyreduce:
     break;
 
   case 123:
-#line 1603 "Gmsh.y"
+#line 1589 "Gmsh.y"
     { 
       (yyval.l) = List_Create(2, 1, sizeof(Shape));
       IntersectCurvesWithSurface((yyvsp[(4) - (9)].l), (int)(yyvsp[(8) - (9)].d), (yyval.l));
@@ -5348,7 +5334,7 @@ yyreduce:
     break;
 
   case 124:
-#line 1609 "Gmsh.y"
+#line 1595 "Gmsh.y"
     {
       (yyval.l) = List_Create(2, 1, sizeof(Shape*));
       List_T *tmp = ListOfDouble2ListOfInt((yyvsp[(7) - (9)].l));
@@ -5359,31 +5345,31 @@ yyreduce:
     break;
 
   case 125:
-#line 1619 "Gmsh.y"
+#line 1605 "Gmsh.y"
     { (yyval.l) = (yyvsp[(1) - (1)].l); ;}
     break;
 
   case 126:
-#line 1620 "Gmsh.y"
+#line 1606 "Gmsh.y"
     { (yyval.l) = (yyvsp[(1) - (1)].l); ;}
     break;
 
   case 127:
-#line 1625 "Gmsh.y"
+#line 1611 "Gmsh.y"
     {
       (yyval.l) = List_Create(3, 3, sizeof(Shape));
     ;}
     break;
 
   case 128:
-#line 1629 "Gmsh.y"
+#line 1615 "Gmsh.y"
     {
       List_Add((yyval.l), &(yyvsp[(2) - (2)].s));
     ;}
     break;
 
   case 129:
-#line 1633 "Gmsh.y"
+#line 1619 "Gmsh.y"
     {
       for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){
 	double d;
@@ -5409,7 +5395,7 @@ yyreduce:
     break;
 
   case 130:
-#line 1656 "Gmsh.y"
+#line 1642 "Gmsh.y"
     {
       for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){
 	double d;
@@ -5435,7 +5421,7 @@ yyreduce:
     break;
 
   case 131:
-#line 1679 "Gmsh.y"
+#line 1665 "Gmsh.y"
     {
       for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){
 	double d;
@@ -5461,7 +5447,7 @@ yyreduce:
     break;
 
   case 132:
-#line 1702 "Gmsh.y"
+#line 1688 "Gmsh.y"
     {
       for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){
 	double d;
@@ -5487,7 +5473,7 @@ yyreduce:
     break;
 
   case 133:
-#line 1730 "Gmsh.y"
+#line 1716 "Gmsh.y"
     {
       for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){
 	Shape TheShape;
@@ -5499,14 +5485,14 @@ yyreduce:
     break;
 
   case 134:
-#line 1739 "Gmsh.y"
+#line 1725 "Gmsh.y"
     {
       GModel::current()->getFields()->delete_field((int)(yyvsp[(4) - (6)].d));
     ;}
     break;
 
   case 135:
-#line 1743 "Gmsh.y"
+#line 1729 "Gmsh.y"
     {
 #if !defined(HAVE_NO_POST)
       if(!strcmp((yyvsp[(2) - (6)].c), "View")){
@@ -5524,7 +5510,7 @@ yyreduce:
     break;
 
   case 136:
-#line 1758 "Gmsh.y"
+#line 1744 "Gmsh.y"
     {
       if(!strcmp((yyvsp[(2) - (3)].c), "Model") || !strcmp((yyvsp[(2) - (3)].c), "Meshes") || !strcmp((yyvsp[(2) - (3)].c), "All")){
 	GModel::current()->destroy();
@@ -5548,7 +5534,7 @@ yyreduce:
     break;
 
   case 137:
-#line 1779 "Gmsh.y"
+#line 1765 "Gmsh.y"
     {
 #if !defined(HAVE_NO_POST)
       if(!strcmp((yyvsp[(2) - (4)].c), "Empty") && !strcmp((yyvsp[(3) - (4)].c), "Views")){
@@ -5563,7 +5549,7 @@ yyreduce:
     break;
 
   case 138:
-#line 1796 "Gmsh.y"
+#line 1782 "Gmsh.y"
     {
       for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){
 	Shape TheShape;
@@ -5575,7 +5561,7 @@ yyreduce:
     break;
 
   case 139:
-#line 1810 "Gmsh.y"
+#line 1796 "Gmsh.y"
     {
       for(int i = 0; i < 4; i++)
 	VisibilityShape((yyvsp[(2) - (3)].c), i, 1);
@@ -5584,7 +5570,7 @@ yyreduce:
     break;
 
   case 140:
-#line 1816 "Gmsh.y"
+#line 1802 "Gmsh.y"
     {
       for(int i = 0; i < 4; i++)
 	VisibilityShape((yyvsp[(2) - (3)].c), i, 0);
@@ -5593,7 +5579,7 @@ yyreduce:
     break;
 
   case 141:
-#line 1822 "Gmsh.y"
+#line 1808 "Gmsh.y"
     {
       for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){
 	Shape TheShape;
@@ -5605,7 +5591,7 @@ yyreduce:
     break;
 
   case 142:
-#line 1831 "Gmsh.y"
+#line 1817 "Gmsh.y"
     {
       for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){
 	Shape TheShape;
@@ -5617,7 +5603,7 @@ yyreduce:
     break;
 
   case 143:
-#line 1845 "Gmsh.y"
+#line 1831 "Gmsh.y"
     {
       if(!strcmp((yyvsp[(1) - (3)].c), "Include")){
 	char tmpstring[1024];
@@ -5668,7 +5654,7 @@ yyreduce:
     break;
 
   case 144:
-#line 1893 "Gmsh.y"
+#line 1879 "Gmsh.y"
     {
 #if !defined(HAVE_NO_POST)
       if(!strcmp((yyvsp[(1) - (7)].c), "Save") && !strcmp((yyvsp[(2) - (7)].c), "View")){
@@ -5689,7 +5675,7 @@ yyreduce:
     break;
 
   case 145:
-#line 1911 "Gmsh.y"
+#line 1897 "Gmsh.y"
     {
 #if !defined(HAVE_NO_POST)
       if(!strcmp((yyvsp[(1) - (7)].c), "Background") && !strcmp((yyvsp[(2) - (7)].c), "Mesh")  && !strcmp((yyvsp[(3) - (7)].c), "View")){
@@ -5707,7 +5693,7 @@ yyreduce:
     break;
 
   case 146:
-#line 1926 "Gmsh.y"
+#line 1912 "Gmsh.y"
     {
       if(!strcmp((yyvsp[(1) - (3)].c), "Sleep")){
 	SleepInSeconds((yyvsp[(2) - (3)].d));
@@ -5729,7 +5715,7 @@ yyreduce:
     break;
 
   case 147:
-#line 1945 "Gmsh.y"
+#line 1931 "Gmsh.y"
     {
 #if !defined(HAVE_NO_POST)
        try {
@@ -5744,7 +5730,7 @@ yyreduce:
     break;
 
   case 148:
-#line 1957 "Gmsh.y"
+#line 1943 "Gmsh.y"
     {
 #if !defined(HAVE_NO_POST)
       if(!strcmp((yyvsp[(2) - (3)].c), "ElementsFromAllViews"))
@@ -5771,14 +5757,14 @@ yyreduce:
     break;
 
   case 149:
-#line 1981 "Gmsh.y"
+#line 1967 "Gmsh.y"
     {
       exit(0);
     ;}
     break;
 
   case 150:
-#line 1985 "Gmsh.y"
+#line 1971 "Gmsh.y"
     {
       CTX.forced_bbox = 0;
       SetBoundingBox();
@@ -5786,7 +5772,7 @@ yyreduce:
     break;
 
   case 151:
-#line 1990 "Gmsh.y"
+#line 1976 "Gmsh.y"
     {
       CTX.forced_bbox = 1;
       SetBoundingBox((yyvsp[(3) - (15)].d), (yyvsp[(5) - (15)].d), (yyvsp[(7) - (15)].d), (yyvsp[(9) - (15)].d), (yyvsp[(11) - (15)].d), (yyvsp[(13) - (15)].d));
@@ -5794,7 +5780,7 @@ yyreduce:
     break;
 
   case 152:
-#line 1995 "Gmsh.y"
+#line 1981 "Gmsh.y"
     {
 #if defined(HAVE_FLTK)
       Draw();
@@ -5803,7 +5789,7 @@ yyreduce:
     break;
 
   case 153:
-#line 2007 "Gmsh.y"
+#line 1993 "Gmsh.y"
     {
       LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(3) - (6)].d);
       LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(5) - (6)].d);
@@ -5823,7 +5809,7 @@ yyreduce:
     break;
 
   case 154:
-#line 2024 "Gmsh.y"
+#line 2010 "Gmsh.y"
     {
       LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(3) - (8)].d);
       LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(5) - (8)].d);
@@ -5843,7 +5829,7 @@ yyreduce:
     break;
 
   case 155:
-#line 2041 "Gmsh.y"
+#line 2027 "Gmsh.y"
     {
       LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(5) - (8)].d);
       LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(7) - (8)].d);
@@ -5865,7 +5851,7 @@ yyreduce:
     break;
 
   case 156:
-#line 2060 "Gmsh.y"
+#line 2046 "Gmsh.y"
     {
       LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(5) - (10)].d);
       LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(7) - (10)].d);
@@ -5887,7 +5873,7 @@ yyreduce:
     break;
 
   case 157:
-#line 2079 "Gmsh.y"
+#line 2065 "Gmsh.y"
     {
       if(ImbricatedLoop <= 0){
 	yymsg(0, "Invalid For/EndFor loop");
@@ -5918,7 +5904,7 @@ yyreduce:
     break;
 
   case 158:
-#line 2107 "Gmsh.y"
+#line 2093 "Gmsh.y"
     {
       if(!FunctionManager::Instance()->createFunction((yyvsp[(2) - (2)].c), gmsh_yyin, gmsh_yyname,
 						      gmsh_yylineno))
@@ -5929,7 +5915,7 @@ yyreduce:
     break;
 
   case 159:
-#line 2115 "Gmsh.y"
+#line 2101 "Gmsh.y"
     {
       if(!FunctionManager::Instance()->leaveFunction(&gmsh_yyin, gmsh_yyname,
 						     gmsh_yylineno))
@@ -5938,7 +5924,7 @@ yyreduce:
     break;
 
   case 160:
-#line 2121 "Gmsh.y"
+#line 2107 "Gmsh.y"
     {
       if(!FunctionManager::Instance()->enterFunction((yyvsp[(2) - (3)].c), &gmsh_yyin, gmsh_yyname,
 						     gmsh_yylineno))
@@ -5948,20 +5934,20 @@ yyreduce:
     break;
 
   case 161:
-#line 2128 "Gmsh.y"
+#line 2114 "Gmsh.y"
     {
       if(!(yyvsp[(3) - (4)].d)) skip_until("If", "EndIf");
     ;}
     break;
 
   case 162:
-#line 2132 "Gmsh.y"
+#line 2118 "Gmsh.y"
     {
     ;}
     break;
 
   case 163:
-#line 2141 "Gmsh.y"
+#line 2127 "Gmsh.y"
     {
       (yyval.l) = List_Create(2, 1, sizeof(Shape));
       ExtrudeShapes(TRANSLATE, (yyvsp[(4) - (5)].l), 
@@ -5972,7 +5958,7 @@ yyreduce:
     break;
 
   case 164:
-#line 2149 "Gmsh.y"
+#line 2135 "Gmsh.y"
     {
       (yyval.l) = List_Create(2, 1, sizeof(Shape));
       ExtrudeShapes(ROTATE, (yyvsp[(10) - (11)].l), 
@@ -5983,7 +5969,7 @@ yyreduce:
     break;
 
   case 165:
-#line 2157 "Gmsh.y"
+#line 2143 "Gmsh.y"
     {
       (yyval.l) = List_Create(2, 1, sizeof(Shape));
       ExtrudeShapes(TRANSLATE_ROTATE, (yyvsp[(12) - (13)].l), 
@@ -5994,14 +5980,14 @@ yyreduce:
     break;
 
   case 166:
-#line 2165 "Gmsh.y"
+#line 2151 "Gmsh.y"
     {
       extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false;
     ;}
     break;
 
   case 167:
-#line 2169 "Gmsh.y"
+#line 2155 "Gmsh.y"
     {
       (yyval.l) = List_Create(2, 1, sizeof(Shape));
       ExtrudeShapes(TRANSLATE, (yyvsp[(4) - (7)].l), 
@@ -6012,14 +5998,14 @@ yyreduce:
     break;
 
   case 168:
-#line 2177 "Gmsh.y"
+#line 2163 "Gmsh.y"
     {
       extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false;
     ;}
     break;
 
   case 169:
-#line 2181 "Gmsh.y"
+#line 2167 "Gmsh.y"
     {
       (yyval.l) = List_Create(2, 1, sizeof(Shape));
       ExtrudeShapes(ROTATE, (yyvsp[(10) - (13)].l), 
@@ -6030,14 +6016,14 @@ yyreduce:
     break;
 
   case 170:
-#line 2189 "Gmsh.y"
+#line 2175 "Gmsh.y"
     {
       extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false;
     ;}
     break;
 
   case 171:
-#line 2193 "Gmsh.y"
+#line 2179 "Gmsh.y"
     {
       (yyval.l) = List_Create(2, 1, sizeof(Shape));
       ExtrudeShapes(TRANSLATE_ROTATE, (yyvsp[(12) - (15)].l), 
@@ -6048,14 +6034,14 @@ yyreduce:
     break;
 
   case 172:
-#line 2201 "Gmsh.y"
+#line 2187 "Gmsh.y"
     {
       extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false;
     ;}
     break;
 
   case 173:
-#line 2205 "Gmsh.y"
+#line 2191 "Gmsh.y"
     {
       (yyval.l) = List_Create(2, 1, sizeof(Shape));
       ExtrudeShapes(BOUNDARY_LAYER, (yyvsp[(3) - (6)].l), 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
@@ -6065,7 +6051,7 @@ yyreduce:
     break;
 
   case 174:
-#line 2214 "Gmsh.y"
+#line 2200 "Gmsh.y"
     {
       (yyval.l) = List_Create(2, 1, sizeof(Shape));
       ExtrudeShape(TRANSLATE, MSH_POINT, (int)(yyvsp[(4) - (8)].d), 
@@ -6075,7 +6061,7 @@ yyreduce:
     break;
 
   case 175:
-#line 2221 "Gmsh.y"
+#line 2207 "Gmsh.y"
     {
       (yyval.l) = List_Create(2, 1, sizeof(Shape));
       ExtrudeShape(TRANSLATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (8)].d), 
@@ -6085,7 +6071,7 @@ yyreduce:
     break;
 
   case 176:
-#line 2228 "Gmsh.y"
+#line 2214 "Gmsh.y"
     {
       (yyval.l) = List_Create(2, 1, sizeof(Shape));
       ExtrudeShape(TRANSLATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (8)].d), 
@@ -6095,7 +6081,7 @@ yyreduce:
     break;
 
   case 177:
-#line 2235 "Gmsh.y"
+#line 2221 "Gmsh.y"
     {
       (yyval.l) = List_Create(2, 1, sizeof(Shape));
       ExtrudeShape(ROTATE, MSH_POINT, (int)(yyvsp[(4) - (12)].d), 
@@ -6105,7 +6091,7 @@ yyreduce:
     break;
 
   case 178:
-#line 2242 "Gmsh.y"
+#line 2228 "Gmsh.y"
     {
       (yyval.l) = List_Create(2, 1, sizeof(Shape));
       ExtrudeShape(ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (12)].d), 
@@ -6115,7 +6101,7 @@ yyreduce:
     break;
 
   case 179:
-#line 2249 "Gmsh.y"
+#line 2235 "Gmsh.y"
     {
       (yyval.l) = List_Create(2, 1, sizeof(Shape));
       ExtrudeShape(ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (12)].d), 
@@ -6125,7 +6111,7 @@ yyreduce:
     break;
 
   case 180:
-#line 2256 "Gmsh.y"
+#line 2242 "Gmsh.y"
     {
       (yyval.l) = List_Create(2, 1, sizeof(Shape));
       ExtrudeShape(TRANSLATE_ROTATE, MSH_POINT, (int)(yyvsp[(4) - (14)].d), 
@@ -6135,7 +6121,7 @@ yyreduce:
     break;
 
   case 181:
-#line 2263 "Gmsh.y"
+#line 2249 "Gmsh.y"
     {
       (yyval.l) = List_Create(2, 1, sizeof(Shape));
       ExtrudeShape(TRANSLATE_ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (14)].d), 
@@ -6145,7 +6131,7 @@ yyreduce:
     break;
 
   case 182:
-#line 2270 "Gmsh.y"
+#line 2256 "Gmsh.y"
     {
       (yyval.l) = List_Create(2, 1, sizeof(Shape));
       ExtrudeShape(TRANSLATE_ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (14)].d), 
@@ -6155,14 +6141,14 @@ yyreduce:
     break;
 
   case 183:
-#line 2277 "Gmsh.y"
+#line 2263 "Gmsh.y"
     {
       extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false;
     ;}
     break;
 
   case 184:
-#line 2281 "Gmsh.y"
+#line 2267 "Gmsh.y"
     {
       (yyval.l) = List_Create(2, 1, sizeof(Shape));
       ExtrudeShape(TRANSLATE, MSH_POINT, (int)(yyvsp[(4) - (12)].d), 
@@ -6172,14 +6158,14 @@ yyreduce:
     break;
 
   case 185:
-#line 2288 "Gmsh.y"
+#line 2274 "Gmsh.y"
     {
       extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false;
     ;}
     break;
 
   case 186:
-#line 2292 "Gmsh.y"
+#line 2278 "Gmsh.y"
     {
       (yyval.l) = List_Create(2, 1, sizeof(Shape));
       ExtrudeShape(TRANSLATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (12)].d), 
@@ -6189,14 +6175,14 @@ yyreduce:
     break;
 
   case 187:
-#line 2299 "Gmsh.y"
+#line 2285 "Gmsh.y"
     {
       extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false;
     ;}
     break;
 
   case 188:
-#line 2303 "Gmsh.y"
+#line 2289 "Gmsh.y"
     {
       (yyval.l) = List_Create(2, 1, sizeof(Shape));
       ExtrudeShape(TRANSLATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (12)].d), 
@@ -6206,14 +6192,14 @@ yyreduce:
     break;
 
   case 189:
-#line 2310 "Gmsh.y"
+#line 2296 "Gmsh.y"
     {
       extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false;
     ;}
     break;
 
   case 190:
-#line 2314 "Gmsh.y"
+#line 2300 "Gmsh.y"
     {
       (yyval.l) = List_Create(2, 1, sizeof(Shape));
       ExtrudeShape(ROTATE, MSH_POINT, (int)(yyvsp[(4) - (16)].d), 
@@ -6223,14 +6209,14 @@ yyreduce:
     break;
 
   case 191:
-#line 2321 "Gmsh.y"
+#line 2307 "Gmsh.y"
     {
       extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false;
     ;}
     break;
 
   case 192:
-#line 2325 "Gmsh.y"
+#line 2311 "Gmsh.y"
     {
       (yyval.l) = List_Create(2, 1, sizeof(Shape));
       ExtrudeShape(ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (16)].d), 
@@ -6240,14 +6226,14 @@ yyreduce:
     break;
 
   case 193:
-#line 2332 "Gmsh.y"
+#line 2318 "Gmsh.y"
     {
       extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false;
     ;}
     break;
 
   case 194:
-#line 2336 "Gmsh.y"
+#line 2322 "Gmsh.y"
     {
       (yyval.l) = List_Create(2, 1, sizeof(Shape));
       ExtrudeShape(ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (16)].d), 
@@ -6257,14 +6243,14 @@ yyreduce:
     break;
 
   case 195:
-#line 2343 "Gmsh.y"
+#line 2329 "Gmsh.y"
     {
       extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false;
     ;}
     break;
 
   case 196:
-#line 2347 "Gmsh.y"
+#line 2333 "Gmsh.y"
     {
       (yyval.l) = List_Create(2, 1, sizeof(Shape));
       ExtrudeShape(TRANSLATE_ROTATE, MSH_POINT, (int)(yyvsp[(4) - (18)].d), 
@@ -6274,14 +6260,14 @@ yyreduce:
     break;
 
   case 197:
-#line 2354 "Gmsh.y"
+#line 2340 "Gmsh.y"
     {
       extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false;
     ;}
     break;
 
   case 198:
-#line 2358 "Gmsh.y"
+#line 2344 "Gmsh.y"
     {
       (yyval.l) = List_Create(2, 1, sizeof(Shape));
       ExtrudeShape(TRANSLATE_ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (18)].d), 
@@ -6291,14 +6277,14 @@ yyreduce:
     break;
 
   case 199:
-#line 2365 "Gmsh.y"
+#line 2351 "Gmsh.y"
     {
       extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false;
     ;}
     break;
 
   case 200:
-#line 2369 "Gmsh.y"
+#line 2355 "Gmsh.y"
     {
       (yyval.l) = List_Create(2, 1, sizeof(Shape));
       ExtrudeShape(TRANSLATE_ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (18)].d), 
@@ -6308,19 +6294,19 @@ yyreduce:
     break;
 
   case 201:
-#line 2380 "Gmsh.y"
+#line 2366 "Gmsh.y"
     {
     ;}
     break;
 
   case 202:
-#line 2383 "Gmsh.y"
+#line 2369 "Gmsh.y"
     {
     ;}
     break;
 
   case 203:
-#line 2389 "Gmsh.y"
+#line 2375 "Gmsh.y"
     {
       extr.mesh.ExtrudeMesh = true;
       extr.mesh.NbLayer = 1;
@@ -6332,7 +6318,7 @@ yyreduce:
     break;
 
   case 204:
-#line 2398 "Gmsh.y"
+#line 2384 "Gmsh.y"
     {
       extr.mesh.ExtrudeMesh = true;
       extr.mesh.NbLayer = List_Nbr((yyvsp[(3) - (7)].l));
@@ -6355,7 +6341,7 @@ yyreduce:
     break;
 
   case 205:
-#line 2418 "Gmsh.y"
+#line 2404 "Gmsh.y"
     {
       yymsg(0, "Explicit region numbers in layers are deprecated");
       extr.mesh.ExtrudeMesh = true;
@@ -6381,14 +6367,14 @@ yyreduce:
     break;
 
   case 206:
-#line 2441 "Gmsh.y"
+#line 2427 "Gmsh.y"
     {
       extr.mesh.Recombine = true;
     ;}
     break;
 
   case 207:
-#line 2445 "Gmsh.y"
+#line 2431 "Gmsh.y"
     {
       int num = (int)(yyvsp[(3) - (9)].d);
       if(FindSurface(num)){
@@ -6410,14 +6396,14 @@ yyreduce:
     break;
 
   case 208:
-#line 2468 "Gmsh.y"
+#line 2454 "Gmsh.y"
     {
       (yyval.v)[0] = (yyval.v)[1] = 1.;
     ;}
     break;
 
   case 209:
-#line 2472 "Gmsh.y"
+#line 2458 "Gmsh.y"
     {
       if(!strcmp((yyvsp[(2) - (3)].c), "Progression") || !strcmp((yyvsp[(2) - (3)].c), "Power"))
         (yyval.v)[0] = 1.;
@@ -6433,14 +6419,14 @@ yyreduce:
     break;
 
   case 210:
-#line 2487 "Gmsh.y"
+#line 2473 "Gmsh.y"
     {
       (yyval.i) = -1; // left
     ;}
     break;
 
   case 211:
-#line 2491 "Gmsh.y"
+#line 2477 "Gmsh.y"
     {
       if(!strcmp((yyvsp[(1) - (1)].c), "Right"))
         (yyval.i) = 1;
@@ -6453,35 +6439,35 @@ yyreduce:
     break;
 
   case 212:
-#line 2503 "Gmsh.y"
+#line 2489 "Gmsh.y"
     {
      (yyval.l) = List_Create(1, 1, sizeof(double));
    ;}
     break;
 
   case 213:
-#line 2507 "Gmsh.y"
+#line 2493 "Gmsh.y"
     {
      (yyval.l) = (yyvsp[(2) - (2)].l);
    ;}
     break;
 
   case 214:
-#line 2512 "Gmsh.y"
+#line 2498 "Gmsh.y"
     {
       (yyval.i) = 45;
     ;}
     break;
 
   case 215:
-#line 2516 "Gmsh.y"
+#line 2502 "Gmsh.y"
     {
       (yyval.i) = (int)(yyvsp[(2) - (2)].d);
     ;}
     break;
 
   case 216:
-#line 2523 "Gmsh.y"
+#line 2509 "Gmsh.y"
     {
       int type = (int)(yyvsp[(6) - (7)].v)[0];
       double coef = fabs((yyvsp[(6) - (7)].v)[1]);
@@ -6538,7 +6524,7 @@ yyreduce:
     break;
 
   case 217:
-#line 2577 "Gmsh.y"
+#line 2563 "Gmsh.y"
     {
       int k = List_Nbr((yyvsp[(4) - (6)].l));
       if(k != 0 && k != 3 && k != 4){
@@ -6611,7 +6597,7 @@ yyreduce:
     break;
 
   case 218:
-#line 2647 "Gmsh.y"
+#line 2633 "Gmsh.y"
     {
       yymsg(1, "Elliptic Surface is deprecated: use Transfinite instead (with smoothing)");
       List_Delete((yyvsp[(7) - (8)].l));
@@ -6619,7 +6605,7 @@ yyreduce:
     break;
 
   case 219:
-#line 2652 "Gmsh.y"
+#line 2638 "Gmsh.y"
     {
       int k = List_Nbr((yyvsp[(4) - (5)].l));
       if(k != 0 && k != 6 && k != 8){
@@ -6689,7 +6675,7 @@ yyreduce:
     break;
 
   case 220:
-#line 2719 "Gmsh.y"
+#line 2705 "Gmsh.y"
     {
       if(!(yyvsp[(3) - (5)].l)){
 	List_T *tmp = Tree2List(GModel::current()->getGEOInternals()->Surfaces);
@@ -6735,7 +6721,7 @@ yyreduce:
     break;
 
   case 221:
-#line 2762 "Gmsh.y"
+#line 2748 "Gmsh.y"
     {
       for(int i = 0; i < List_Nbr((yyvsp[(3) - (6)].l)); i++){
 	double d;
@@ -6758,7 +6744,7 @@ yyreduce:
     break;
 
   case 222:
-#line 2788 "Gmsh.y"
+#line 2774 "Gmsh.y"
     { 
       Surface *s = FindSurface((int)(yyvsp[(8) - (10)].d));
       if(s){
@@ -6784,7 +6770,7 @@ yyreduce:
     break;
 
   case 223:
-#line 2811 "Gmsh.y"
+#line 2797 "Gmsh.y"
     {
       Surface *s = FindSurface((int)(yyvsp[(8) - (10)].d));
       if(s){
@@ -6810,26 +6796,26 @@ yyreduce:
     break;
 
   case 224:
-#line 2834 "Gmsh.y"
+#line 2820 "Gmsh.y"
     {
     ;}
     break;
 
   case 225:
-#line 2837 "Gmsh.y"
+#line 2823 "Gmsh.y"
     {
     ;}
     break;
 
   case 226:
-#line 2846 "Gmsh.y"
+#line 2832 "Gmsh.y"
     { 
       ReplaceAllDuplicates();
     ;}
     break;
 
   case 227:
-#line 2850 "Gmsh.y"
+#line 2836 "Gmsh.y"
     { 
       if(!strcmp((yyvsp[(2) - (3)].c), "Geometry"))
         ReplaceAllDuplicates();
@@ -6842,47 +6828,47 @@ yyreduce:
     break;
 
   case 228:
-#line 2865 "Gmsh.y"
+#line 2851 "Gmsh.y"
     { (yyval.d) = (yyvsp[(1) - (1)].d);           ;}
     break;
 
   case 229:
-#line 2866 "Gmsh.y"
+#line 2852 "Gmsh.y"
     { (yyval.d) = (yyvsp[(2) - (3)].d);           ;}
     break;
 
   case 230:
-#line 2867 "Gmsh.y"
+#line 2853 "Gmsh.y"
     { (yyval.d) = -(yyvsp[(2) - (2)].d);          ;}
     break;
 
   case 231:
-#line 2868 "Gmsh.y"
+#line 2854 "Gmsh.y"
     { (yyval.d) = (yyvsp[(2) - (2)].d);           ;}
     break;
 
   case 232:
-#line 2869 "Gmsh.y"
+#line 2855 "Gmsh.y"
     { (yyval.d) = !(yyvsp[(2) - (2)].d);          ;}
     break;
 
   case 233:
-#line 2870 "Gmsh.y"
+#line 2856 "Gmsh.y"
     { (yyval.d) = (yyvsp[(1) - (3)].d) - (yyvsp[(3) - (3)].d);      ;}
     break;
 
   case 234:
-#line 2871 "Gmsh.y"
+#line 2857 "Gmsh.y"
     { (yyval.d) = (yyvsp[(1) - (3)].d) + (yyvsp[(3) - (3)].d);      ;}
     break;
 
   case 235:
-#line 2872 "Gmsh.y"
+#line 2858 "Gmsh.y"
     { (yyval.d) = (yyvsp[(1) - (3)].d) * (yyvsp[(3) - (3)].d);      ;}
     break;
 
   case 236:
-#line 2874 "Gmsh.y"
+#line 2860 "Gmsh.y"
     { 
       if(!(yyvsp[(3) - (3)].d))
 	yymsg(0, "Division by zero in '%g / %g'", (yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].d));
@@ -6892,307 +6878,307 @@ yyreduce:
     break;
 
   case 237:
-#line 2880 "Gmsh.y"
+#line 2866 "Gmsh.y"
     { (yyval.d) = (int)(yyvsp[(1) - (3)].d) % (int)(yyvsp[(3) - (3)].d);  ;}
     break;
 
   case 238:
-#line 2881 "Gmsh.y"
+#line 2867 "Gmsh.y"
     { (yyval.d) = pow((yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].d));  ;}
     break;
 
   case 239:
-#line 2882 "Gmsh.y"
+#line 2868 "Gmsh.y"
     { (yyval.d) = (yyvsp[(1) - (3)].d) < (yyvsp[(3) - (3)].d);      ;}
     break;
 
   case 240:
-#line 2883 "Gmsh.y"
+#line 2869 "Gmsh.y"
     { (yyval.d) = (yyvsp[(1) - (3)].d) > (yyvsp[(3) - (3)].d);      ;}
     break;
 
   case 241:
-#line 2884 "Gmsh.y"
+#line 2870 "Gmsh.y"
     { (yyval.d) = (yyvsp[(1) - (3)].d) <= (yyvsp[(3) - (3)].d);     ;}
     break;
 
   case 242:
-#line 2885 "Gmsh.y"
+#line 2871 "Gmsh.y"
     { (yyval.d) = (yyvsp[(1) - (3)].d) >= (yyvsp[(3) - (3)].d);     ;}
     break;
 
   case 243:
-#line 2886 "Gmsh.y"
+#line 2872 "Gmsh.y"
     { (yyval.d) = (yyvsp[(1) - (3)].d) == (yyvsp[(3) - (3)].d);     ;}
     break;
 
   case 244:
-#line 2887 "Gmsh.y"
+#line 2873 "Gmsh.y"
     { (yyval.d) = (yyvsp[(1) - (3)].d) != (yyvsp[(3) - (3)].d);     ;}
     break;
 
   case 245:
-#line 2888 "Gmsh.y"
+#line 2874 "Gmsh.y"
     { (yyval.d) = (yyvsp[(1) - (3)].d) && (yyvsp[(3) - (3)].d);     ;}
     break;
 
   case 246:
-#line 2889 "Gmsh.y"
+#line 2875 "Gmsh.y"
     { (yyval.d) = (yyvsp[(1) - (3)].d) || (yyvsp[(3) - (3)].d);     ;}
     break;
 
   case 247:
-#line 2890 "Gmsh.y"
+#line 2876 "Gmsh.y"
     { (yyval.d) = (yyvsp[(1) - (5)].d) ? (yyvsp[(3) - (5)].d) : (yyvsp[(5) - (5)].d); ;}
     break;
 
   case 248:
-#line 2891 "Gmsh.y"
+#line 2877 "Gmsh.y"
     { (yyval.d) = exp((yyvsp[(3) - (4)].d));      ;}
     break;
 
   case 249:
-#line 2892 "Gmsh.y"
+#line 2878 "Gmsh.y"
     { (yyval.d) = log((yyvsp[(3) - (4)].d));      ;}
     break;
 
   case 250:
-#line 2893 "Gmsh.y"
+#line 2879 "Gmsh.y"
     { (yyval.d) = log10((yyvsp[(3) - (4)].d));    ;}
     break;
 
   case 251:
-#line 2894 "Gmsh.y"
+#line 2880 "Gmsh.y"
     { (yyval.d) = sqrt((yyvsp[(3) - (4)].d));     ;}
     break;
 
   case 252:
-#line 2895 "Gmsh.y"
+#line 2881 "Gmsh.y"
     { (yyval.d) = sin((yyvsp[(3) - (4)].d));      ;}
     break;
 
   case 253:
-#line 2896 "Gmsh.y"
+#line 2882 "Gmsh.y"
     { (yyval.d) = asin((yyvsp[(3) - (4)].d));     ;}
     break;
 
   case 254:
-#line 2897 "Gmsh.y"
+#line 2883 "Gmsh.y"
     { (yyval.d) = cos((yyvsp[(3) - (4)].d));      ;}
     break;
 
   case 255:
-#line 2898 "Gmsh.y"
+#line 2884 "Gmsh.y"
     { (yyval.d) = acos((yyvsp[(3) - (4)].d));     ;}
     break;
 
   case 256:
-#line 2899 "Gmsh.y"
+#line 2885 "Gmsh.y"
     { (yyval.d) = tan((yyvsp[(3) - (4)].d));      ;}
     break;
 
   case 257:
-#line 2900 "Gmsh.y"
+#line 2886 "Gmsh.y"
     { (yyval.d) = atan((yyvsp[(3) - (4)].d));     ;}
     break;
 
   case 258:
-#line 2901 "Gmsh.y"
+#line 2887 "Gmsh.y"
     { (yyval.d) = atan2((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d));;}
     break;
 
   case 259:
-#line 2902 "Gmsh.y"
+#line 2888 "Gmsh.y"
     { (yyval.d) = sinh((yyvsp[(3) - (4)].d));     ;}
     break;
 
   case 260:
-#line 2903 "Gmsh.y"
+#line 2889 "Gmsh.y"
     { (yyval.d) = cosh((yyvsp[(3) - (4)].d));     ;}
     break;
 
   case 261:
-#line 2904 "Gmsh.y"
+#line 2890 "Gmsh.y"
     { (yyval.d) = tanh((yyvsp[(3) - (4)].d));     ;}
     break;
 
   case 262:
-#line 2905 "Gmsh.y"
+#line 2891 "Gmsh.y"
     { (yyval.d) = fabs((yyvsp[(3) - (4)].d));     ;}
     break;
 
   case 263:
-#line 2906 "Gmsh.y"
+#line 2892 "Gmsh.y"
     { (yyval.d) = floor((yyvsp[(3) - (4)].d));    ;}
     break;
 
   case 264:
-#line 2907 "Gmsh.y"
+#line 2893 "Gmsh.y"
     { (yyval.d) = ceil((yyvsp[(3) - (4)].d));     ;}
     break;
 
   case 265:
-#line 2908 "Gmsh.y"
+#line 2894 "Gmsh.y"
     { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;}
     break;
 
   case 266:
-#line 2909 "Gmsh.y"
+#line 2895 "Gmsh.y"
     { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;}
     break;
 
   case 267:
-#line 2910 "Gmsh.y"
+#line 2896 "Gmsh.y"
     { (yyval.d) = sqrt((yyvsp[(3) - (6)].d) * (yyvsp[(3) - (6)].d) + (yyvsp[(5) - (6)].d) * (yyvsp[(5) - (6)].d)); ;}
     break;
 
   case 268:
-#line 2911 "Gmsh.y"
+#line 2897 "Gmsh.y"
     { (yyval.d) = (yyvsp[(3) - (4)].d) * (double)rand() / (double)RAND_MAX; ;}
     break;
 
   case 269:
-#line 2913 "Gmsh.y"
+#line 2899 "Gmsh.y"
     { (yyval.d) = exp((yyvsp[(3) - (4)].d));      ;}
     break;
 
   case 270:
-#line 2914 "Gmsh.y"
+#line 2900 "Gmsh.y"
     { (yyval.d) = log((yyvsp[(3) - (4)].d));      ;}
     break;
 
   case 271:
-#line 2915 "Gmsh.y"
+#line 2901 "Gmsh.y"
     { (yyval.d) = log10((yyvsp[(3) - (4)].d));    ;}
     break;
 
   case 272:
-#line 2916 "Gmsh.y"
+#line 2902 "Gmsh.y"
     { (yyval.d) = sqrt((yyvsp[(3) - (4)].d));     ;}
     break;
 
   case 273:
-#line 2917 "Gmsh.y"
+#line 2903 "Gmsh.y"
     { (yyval.d) = sin((yyvsp[(3) - (4)].d));      ;}
     break;
 
   case 274:
-#line 2918 "Gmsh.y"
+#line 2904 "Gmsh.y"
     { (yyval.d) = asin((yyvsp[(3) - (4)].d));     ;}
     break;
 
   case 275:
-#line 2919 "Gmsh.y"
+#line 2905 "Gmsh.y"
     { (yyval.d) = cos((yyvsp[(3) - (4)].d));      ;}
     break;
 
   case 276:
-#line 2920 "Gmsh.y"
+#line 2906 "Gmsh.y"
     { (yyval.d) = acos((yyvsp[(3) - (4)].d));     ;}
     break;
 
   case 277:
-#line 2921 "Gmsh.y"
+#line 2907 "Gmsh.y"
     { (yyval.d) = tan((yyvsp[(3) - (4)].d));      ;}
     break;
 
   case 278:
-#line 2922 "Gmsh.y"
+#line 2908 "Gmsh.y"
     { (yyval.d) = atan((yyvsp[(3) - (4)].d));     ;}
     break;
 
   case 279:
-#line 2923 "Gmsh.y"
+#line 2909 "Gmsh.y"
     { (yyval.d) = atan2((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d));;}
     break;
 
   case 280:
-#line 2924 "Gmsh.y"
+#line 2910 "Gmsh.y"
     { (yyval.d) = sinh((yyvsp[(3) - (4)].d));     ;}
     break;
 
   case 281:
-#line 2925 "Gmsh.y"
+#line 2911 "Gmsh.y"
     { (yyval.d) = cosh((yyvsp[(3) - (4)].d));     ;}
     break;
 
   case 282:
-#line 2926 "Gmsh.y"
+#line 2912 "Gmsh.y"
     { (yyval.d) = tanh((yyvsp[(3) - (4)].d));     ;}
     break;
 
   case 283:
-#line 2927 "Gmsh.y"
+#line 2913 "Gmsh.y"
     { (yyval.d) = fabs((yyvsp[(3) - (4)].d));     ;}
     break;
 
   case 284:
-#line 2928 "Gmsh.y"
+#line 2914 "Gmsh.y"
     { (yyval.d) = floor((yyvsp[(3) - (4)].d));    ;}
     break;
 
   case 285:
-#line 2929 "Gmsh.y"
+#line 2915 "Gmsh.y"
     { (yyval.d) = ceil((yyvsp[(3) - (4)].d));     ;}
     break;
 
   case 286:
-#line 2930 "Gmsh.y"
+#line 2916 "Gmsh.y"
     { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;}
     break;
 
   case 287:
-#line 2931 "Gmsh.y"
+#line 2917 "Gmsh.y"
     { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;}
     break;
 
   case 288:
-#line 2932 "Gmsh.y"
+#line 2918 "Gmsh.y"
     { (yyval.d) = sqrt((yyvsp[(3) - (6)].d) * (yyvsp[(3) - (6)].d) + (yyvsp[(5) - (6)].d) * (yyvsp[(5) - (6)].d)); ;}
     break;
 
   case 289:
-#line 2933 "Gmsh.y"
+#line 2919 "Gmsh.y"
     { (yyval.d) = (yyvsp[(3) - (4)].d) * (double)rand() / (double)RAND_MAX; ;}
     break;
 
   case 290:
-#line 2942 "Gmsh.y"
+#line 2928 "Gmsh.y"
     { (yyval.d) = (yyvsp[(1) - (1)].d); ;}
     break;
 
   case 291:
-#line 2943 "Gmsh.y"
+#line 2929 "Gmsh.y"
     { (yyval.d) = 3.141592653589793; ;}
     break;
 
   case 292:
-#line 2944 "Gmsh.y"
+#line 2930 "Gmsh.y"
     { (yyval.d) = Msg::GetCommRank(); ;}
     break;
 
   case 293:
-#line 2945 "Gmsh.y"
+#line 2931 "Gmsh.y"
     { (yyval.d) = Msg::GetCommSize(); ;}
     break;
 
   case 294:
-#line 2946 "Gmsh.y"
+#line 2932 "Gmsh.y"
     { (yyval.d) = Get_GmshMajorVersion(); ;}
     break;
 
   case 295:
-#line 2947 "Gmsh.y"
+#line 2933 "Gmsh.y"
     { (yyval.d) = Get_GmshMinorVersion(); ;}
     break;
 
   case 296:
-#line 2948 "Gmsh.y"
+#line 2934 "Gmsh.y"
     { (yyval.d) = Get_GmshPatchVersion(); ;}
     break;
 
   case 297:
-#line 2953 "Gmsh.y"
+#line 2939 "Gmsh.y"
     {
       if(!gmsh_yysymbols.count((yyvsp[(1) - (1)].c))){
 	yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (1)].c));
@@ -7205,7 +7191,7 @@ yyreduce:
     break;
 
   case 298:
-#line 2966 "Gmsh.y"
+#line 2952 "Gmsh.y"
     {
       char tmpstring[1024];
       sprintf(tmpstring, "%s_%d", (yyvsp[(1) - (5)].c), (int)(yyvsp[(4) - (5)].d)) ;
@@ -7220,7 +7206,7 @@ yyreduce:
     break;
 
   case 299:
-#line 2978 "Gmsh.y"
+#line 2964 "Gmsh.y"
     {
       int index = (int)(yyvsp[(3) - (4)].d);
       if(!gmsh_yysymbols.count((yyvsp[(1) - (4)].c))){
@@ -7238,7 +7224,7 @@ yyreduce:
     break;
 
   case 300:
-#line 2993 "Gmsh.y"
+#line 2979 "Gmsh.y"
     {
       if(!gmsh_yysymbols.count((yyvsp[(2) - (4)].c))){
 	yymsg(0, "Unknown variable '%s'", (yyvsp[(2) - (4)].c));
@@ -7251,7 +7237,7 @@ yyreduce:
     break;
 
   case 301:
-#line 3003 "Gmsh.y"
+#line 2989 "Gmsh.y"
     {
       if(!gmsh_yysymbols.count((yyvsp[(1) - (2)].c))){
 	yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (2)].c));
@@ -7264,7 +7250,7 @@ yyreduce:
     break;
 
   case 302:
-#line 3013 "Gmsh.y"
+#line 2999 "Gmsh.y"
     {
       int index = (int)(yyvsp[(3) - (5)].d);
       if(!gmsh_yysymbols.count((yyvsp[(1) - (5)].c))){
@@ -7282,7 +7268,7 @@ yyreduce:
     break;
 
   case 303:
-#line 3031 "Gmsh.y"
+#line 3017 "Gmsh.y"
     {
       NumberOption(GMSH_GET, (yyvsp[(1) - (3)].c), 0, (yyvsp[(3) - (3)].c), (yyval.d));
       Free((yyvsp[(1) - (3)].c)); Free((yyvsp[(3) - (3)].c));
@@ -7290,7 +7276,7 @@ yyreduce:
     break;
 
   case 304:
-#line 3036 "Gmsh.y"
+#line 3022 "Gmsh.y"
     {
       NumberOption(GMSH_GET, (yyvsp[(1) - (6)].c), (int)(yyvsp[(3) - (6)].d), (yyvsp[(6) - (6)].c), (yyval.d));
       Free((yyvsp[(1) - (6)].c)); Free((yyvsp[(6) - (6)].c));
@@ -7298,7 +7284,7 @@ yyreduce:
     break;
 
   case 305:
-#line 3041 "Gmsh.y"
+#line 3027 "Gmsh.y"
     {
       double d = 0.;
       if(NumberOption(GMSH_GET, (yyvsp[(1) - (4)].c), 0, (yyvsp[(3) - (4)].c), d)){
@@ -7311,7 +7297,7 @@ yyreduce:
     break;
 
   case 306:
-#line 3051 "Gmsh.y"
+#line 3037 "Gmsh.y"
     {
       double d = 0.;
       if(NumberOption(GMSH_GET, (yyvsp[(1) - (7)].c), (int)(yyvsp[(3) - (7)].d), (yyvsp[(6) - (7)].c), d)){
@@ -7324,7 +7310,7 @@ yyreduce:
     break;
 
   case 307:
-#line 3061 "Gmsh.y"
+#line 3047 "Gmsh.y"
     { 
       (yyval.d) = Msg::GetValue((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].d));
       Free((yyvsp[(3) - (6)].c));
@@ -7332,70 +7318,70 @@ yyreduce:
     break;
 
   case 308:
-#line 3069 "Gmsh.y"
+#line 3055 "Gmsh.y"
     {
       memcpy((yyval.v), (yyvsp[(1) - (1)].v), 5*sizeof(double));
     ;}
     break;
 
   case 309:
-#line 3073 "Gmsh.y"
+#line 3059 "Gmsh.y"
     {
       for(int i = 0; i < 5; i++) (yyval.v)[i] = -(yyvsp[(2) - (2)].v)[i];
     ;}
     break;
 
   case 310:
-#line 3077 "Gmsh.y"
+#line 3063 "Gmsh.y"
     { 
       for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(2) - (2)].v)[i];
     ;}
     break;
 
   case 311:
-#line 3081 "Gmsh.y"
+#line 3067 "Gmsh.y"
     { 
       for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(1) - (3)].v)[i] - (yyvsp[(3) - (3)].v)[i];
     ;}
     break;
 
   case 312:
-#line 3085 "Gmsh.y"
+#line 3071 "Gmsh.y"
     {
       for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(1) - (3)].v)[i] + (yyvsp[(3) - (3)].v)[i];
     ;}
     break;
 
   case 313:
-#line 3092 "Gmsh.y"
+#line 3078 "Gmsh.y"
     { 
       (yyval.v)[0] = (yyvsp[(2) - (11)].d);  (yyval.v)[1] = (yyvsp[(4) - (11)].d);  (yyval.v)[2] = (yyvsp[(6) - (11)].d);  (yyval.v)[3] = (yyvsp[(8) - (11)].d); (yyval.v)[4] = (yyvsp[(10) - (11)].d);
     ;}
     break;
 
   case 314:
-#line 3096 "Gmsh.y"
+#line 3082 "Gmsh.y"
     { 
       (yyval.v)[0] = (yyvsp[(2) - (9)].d);  (yyval.v)[1] = (yyvsp[(4) - (9)].d);  (yyval.v)[2] = (yyvsp[(6) - (9)].d);  (yyval.v)[3] = (yyvsp[(8) - (9)].d); (yyval.v)[4] = 1.0;
     ;}
     break;
 
   case 315:
-#line 3100 "Gmsh.y"
+#line 3086 "Gmsh.y"
     {
       (yyval.v)[0] = (yyvsp[(2) - (7)].d);  (yyval.v)[1] = (yyvsp[(4) - (7)].d);  (yyval.v)[2] = (yyvsp[(6) - (7)].d);  (yyval.v)[3] = 0.0; (yyval.v)[4] = 1.0;
     ;}
     break;
 
   case 316:
-#line 3104 "Gmsh.y"
+#line 3090 "Gmsh.y"
     {
       (yyval.v)[0] = (yyvsp[(2) - (7)].d);  (yyval.v)[1] = (yyvsp[(4) - (7)].d);  (yyval.v)[2] = (yyvsp[(6) - (7)].d);  (yyval.v)[3] = 0.0; (yyval.v)[4] = 1.0;
     ;}
     break;
 
   case 317:
-#line 3111 "Gmsh.y"
+#line 3097 "Gmsh.y"
     {
       (yyval.l) = List_Create(2, 1, sizeof(List_T*));
       List_Add((yyval.l), &((yyvsp[(1) - (1)].l)));
@@ -7403,14 +7389,14 @@ yyreduce:
     break;
 
   case 318:
-#line 3116 "Gmsh.y"
+#line 3102 "Gmsh.y"
     {
       List_Add((yyval.l), &((yyvsp[(3) - (3)].l)));
     ;}
     break;
 
   case 319:
-#line 3123 "Gmsh.y"
+#line 3109 "Gmsh.y"
     {
       (yyval.l) = List_Create(2, 1, sizeof(double));
       List_Add((yyval.l), &((yyvsp[(1) - (1)].d)));
@@ -7418,14 +7404,14 @@ yyreduce:
     break;
 
   case 320:
-#line 3128 "Gmsh.y"
+#line 3114 "Gmsh.y"
     {
       (yyval.l) = (yyvsp[(1) - (1)].l);
     ;}
     break;
 
   case 321:
-#line 3132 "Gmsh.y"
+#line 3118 "Gmsh.y"
     {
       // creates an empty list
       (yyval.l) = List_Create(2, 1, sizeof(double));
@@ -7433,14 +7419,14 @@ yyreduce:
     break;
 
   case 322:
-#line 3137 "Gmsh.y"
+#line 3123 "Gmsh.y"
     {
       (yyval.l) = (yyvsp[(2) - (3)].l);
     ;}
     break;
 
   case 323:
-#line 3141 "Gmsh.y"
+#line 3127 "Gmsh.y"
     {
       (yyval.l) = (yyvsp[(3) - (4)].l);
       for(int i = 0; i < List_Nbr((yyval.l)); i++){
@@ -7451,7 +7437,7 @@ yyreduce:
     break;
 
   case 324:
-#line 3149 "Gmsh.y"
+#line 3135 "Gmsh.y"
     {
       (yyval.l) = (yyvsp[(4) - (5)].l);
       for(int i = 0; i < List_Nbr((yyval.l)); i++){
@@ -7462,14 +7448,14 @@ yyreduce:
     break;
 
   case 325:
-#line 3160 "Gmsh.y"
+#line 3146 "Gmsh.y"
     { 
       (yyval.l) = (yyvsp[(1) - (1)].l); 
     ;}
     break;
 
   case 326:
-#line 3164 "Gmsh.y"
+#line 3150 "Gmsh.y"
     {
       if(!strcmp((yyvsp[(1) - (1)].c), "*") || !strcmp((yyvsp[(1) - (1)].c), "all"))
         (yyval.l) = 0;
@@ -7481,7 +7467,7 @@ yyreduce:
     break;
 
   case 327:
-#line 3176 "Gmsh.y"
+#line 3162 "Gmsh.y"
     {
       (yyval.l) = (yyvsp[(2) - (2)].l);
       for(int i = 0; i < List_Nbr((yyval.l)); i++){
@@ -7492,7 +7478,7 @@ yyreduce:
     break;
 
   case 328:
-#line 3184 "Gmsh.y"
+#line 3170 "Gmsh.y"
     {
       (yyval.l) = (yyvsp[(3) - (3)].l);
       for(int i = 0; i < List_Nbr((yyval.l)); i++){
@@ -7503,7 +7489,7 @@ yyreduce:
     break;
 
   case 329:
-#line 3192 "Gmsh.y"
+#line 3178 "Gmsh.y"
     { 
       (yyval.l) = List_Create(2, 1, sizeof(double)); 
       for(double d = (yyvsp[(1) - (3)].d); ((yyvsp[(1) - (3)].d) < (yyvsp[(3) - (3)].d)) ? (d <= (yyvsp[(3) - (3)].d)) : (d >= (yyvsp[(3) - (3)].d)); 
@@ -7513,7 +7499,7 @@ yyreduce:
     break;
 
   case 330:
-#line 3199 "Gmsh.y"
+#line 3185 "Gmsh.y"
     {
       (yyval.l) = List_Create(2, 1, sizeof(double)); 
       if(!(yyvsp[(5) - (5)].d) || ((yyvsp[(1) - (5)].d) < (yyvsp[(3) - (5)].d) && (yyvsp[(5) - (5)].d) < 0) || ((yyvsp[(1) - (5)].d) > (yyvsp[(3) - (5)].d) && (yyvsp[(5) - (5)].d) > 0)){
@@ -7527,7 +7513,7 @@ yyreduce:
     break;
 
   case 331:
-#line 3210 "Gmsh.y"
+#line 3196 "Gmsh.y"
     {
       // Returns the coordinates of a point and fills a list with it.
       // This allows to ensure e.g. that relative point positions are
@@ -7550,7 +7536,7 @@ yyreduce:
     break;
 
   case 332:
-#line 3230 "Gmsh.y"
+#line 3216 "Gmsh.y"
     {
       (yyval.l) = List_Create(List_Nbr((yyvsp[(1) - (1)].l)), 1, sizeof(double));
       for(int i = 0; i < List_Nbr((yyvsp[(1) - (1)].l)); i++){
@@ -7563,7 +7549,7 @@ yyreduce:
     break;
 
   case 333:
-#line 3240 "Gmsh.y"
+#line 3226 "Gmsh.y"
     {
       (yyval.l) = List_Create(List_Nbr((yyvsp[(1) - (1)].l)), 1, sizeof(double));
       for(int i = 0; i < List_Nbr((yyvsp[(1) - (1)].l)); i++){
@@ -7576,7 +7562,7 @@ yyreduce:
     break;
 
   case 334:
-#line 3250 "Gmsh.y"
+#line 3236 "Gmsh.y"
     {
       (yyval.l) = List_Create(2, 1, sizeof(double));
       if(!gmsh_yysymbols.count((yyvsp[(1) - (3)].c)))
@@ -7589,7 +7575,7 @@ yyreduce:
     break;
 
   case 335:
-#line 3260 "Gmsh.y"
+#line 3246 "Gmsh.y"
     {
       (yyval.l) = List_Create(2, 1, sizeof(double));
       if(!gmsh_yysymbols.count((yyvsp[(1) - (6)].c)))
@@ -7609,7 +7595,7 @@ yyreduce:
     break;
 
   case 336:
-#line 3280 "Gmsh.y"
+#line 3266 "Gmsh.y"
     {
       (yyval.l) = List_Create(2, 1, sizeof(double));
       List_Add((yyval.l), &((yyvsp[(1) - (1)].d)));
@@ -7617,21 +7603,21 @@ yyreduce:
     break;
 
   case 337:
-#line 3285 "Gmsh.y"
+#line 3271 "Gmsh.y"
     {
       (yyval.l) = (yyvsp[(1) - (1)].l);
     ;}
     break;
 
   case 338:
-#line 3289 "Gmsh.y"
+#line 3275 "Gmsh.y"
     {
       List_Add((yyval.l), &((yyvsp[(3) - (3)].d)));
     ;}
     break;
 
   case 339:
-#line 3293 "Gmsh.y"
+#line 3279 "Gmsh.y"
     {
       for(int i = 0; i < List_Nbr((yyvsp[(3) - (3)].l)); i++){
 	double d;
@@ -7643,21 +7629,21 @@ yyreduce:
     break;
 
   case 340:
-#line 3305 "Gmsh.y"
+#line 3291 "Gmsh.y"
     {
       (yyval.u) = CTX.PACK_COLOR((int)(yyvsp[(2) - (9)].d), (int)(yyvsp[(4) - (9)].d), (int)(yyvsp[(6) - (9)].d), (int)(yyvsp[(8) - (9)].d));
     ;}
     break;
 
   case 341:
-#line 3309 "Gmsh.y"
+#line 3295 "Gmsh.y"
     {
       (yyval.u) = CTX.PACK_COLOR((int)(yyvsp[(2) - (7)].d), (int)(yyvsp[(4) - (7)].d), (int)(yyvsp[(6) - (7)].d), 255);
     ;}
     break;
 
   case 342:
-#line 3321 "Gmsh.y"
+#line 3307 "Gmsh.y"
     {
       int flag;
       (yyval.u) = Get_ColorForString(ColorString, -1, (yyvsp[(1) - (1)].c), &flag);
@@ -7667,7 +7653,7 @@ yyreduce:
     break;
 
   case 343:
-#line 3328 "Gmsh.y"
+#line 3314 "Gmsh.y"
     {
       unsigned int val = 0;
       ColorOption(GMSH_GET, (yyvsp[(1) - (5)].c), 0, (yyvsp[(5) - (5)].c), val);
@@ -7677,14 +7663,14 @@ yyreduce:
     break;
 
   case 344:
-#line 3338 "Gmsh.y"
+#line 3324 "Gmsh.y"
     {
       (yyval.l) = (yyvsp[(2) - (3)].l);
     ;}
     break;
 
   case 345:
-#line 3342 "Gmsh.y"
+#line 3328 "Gmsh.y"
     {
       (yyval.l) = List_Create(256, 10, sizeof(unsigned int));
       GmshColorTable *ct = Get_ColorTable((int)(yyvsp[(3) - (6)].d));
@@ -7699,7 +7685,7 @@ yyreduce:
     break;
 
   case 346:
-#line 3357 "Gmsh.y"
+#line 3343 "Gmsh.y"
     {
       (yyval.l) = List_Create(256, 10, sizeof(unsigned int));
       List_Add((yyval.l), &((yyvsp[(1) - (1)].u)));
@@ -7707,21 +7693,21 @@ yyreduce:
     break;
 
   case 347:
-#line 3362 "Gmsh.y"
+#line 3348 "Gmsh.y"
     {
       List_Add((yyval.l), &((yyvsp[(3) - (3)].u)));
     ;}
     break;
 
   case 348:
-#line 3369 "Gmsh.y"
+#line 3355 "Gmsh.y"
     {
       (yyval.c) = (yyvsp[(1) - (1)].c);
     ;}
     break;
 
   case 349:
-#line 3373 "Gmsh.y"
+#line 3359 "Gmsh.y"
     {
       if(!gmsh_yystringsymbols.count((yyvsp[(1) - (1)].c))){
 	yymsg(0, "Unknown string variable '%s'", (yyvsp[(1) - (1)].c));
@@ -7737,7 +7723,7 @@ yyreduce:
     break;
 
   case 350:
-#line 3386 "Gmsh.y"
+#line 3372 "Gmsh.y"
     { 
       const char *val = "";
       StringOption(GMSH_GET, (yyvsp[(1) - (3)].c), 0, (yyvsp[(3) - (3)].c), val);
@@ -7748,7 +7734,7 @@ yyreduce:
     break;
 
   case 351:
-#line 3394 "Gmsh.y"
+#line 3380 "Gmsh.y"
     { 
       const char *val = "";
       StringOption(GMSH_GET, (yyvsp[(1) - (6)].c), (int)(yyvsp[(3) - (6)].d), (yyvsp[(6) - (6)].c), val);
@@ -7759,14 +7745,14 @@ yyreduce:
     break;
 
   case 352:
-#line 3405 "Gmsh.y"
+#line 3391 "Gmsh.y"
     {
       (yyval.c) = (yyvsp[(1) - (1)].c);
     ;}
     break;
 
   case 353:
-#line 3409 "Gmsh.y"
+#line 3395 "Gmsh.y"
     {
       (yyval.c) = (char *)Malloc(32 * sizeof(char));
       time_t now;
@@ -7777,7 +7763,7 @@ yyreduce:
     break;
 
   case 354:
-#line 3417 "Gmsh.y"
+#line 3403 "Gmsh.y"
     {
       (yyval.c) = (char *)Malloc((strlen((yyvsp[(3) - (6)].c)) + strlen((yyvsp[(5) - (6)].c)) + 1) * sizeof(char));
       strcpy((yyval.c), (yyvsp[(3) - (6)].c));
@@ -7788,7 +7774,7 @@ yyreduce:
     break;
 
   case 355:
-#line 3425 "Gmsh.y"
+#line 3411 "Gmsh.y"
     {
       (yyval.c) = (char *)Malloc((strlen((yyvsp[(3) - (4)].c)) + 1) * sizeof(char));
       int i;
@@ -7805,7 +7791,7 @@ yyreduce:
     break;
 
   case 356:
-#line 3439 "Gmsh.y"
+#line 3425 "Gmsh.y"
     {
       (yyval.c) = (char *)Malloc((strlen((yyvsp[(3) - (4)].c)) + 1) * sizeof(char));
       int i;
@@ -7822,14 +7808,14 @@ yyreduce:
     break;
 
   case 357:
-#line 3453 "Gmsh.y"
+#line 3439 "Gmsh.y"
     {
       (yyval.c) = (yyvsp[(3) - (4)].c);
     ;}
     break;
 
   case 358:
-#line 3457 "Gmsh.y"
+#line 3443 "Gmsh.y"
     {
       char tmpstring[1024];
       int i = PrintListOfDouble((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].l), tmpstring);
@@ -7852,7 +7838,7 @@ yyreduce:
 
 
 /* Line 1267 of yacc.c.  */
-#line 7856 "Gmsh.tab.cpp"
+#line 7842 "Gmsh.tab.cpp"
       default: break;
     }
   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -8066,7 +8052,7 @@ yyreturn:
 }
 
 
-#line 3477 "Gmsh.y"
+#line 3463 "Gmsh.y"
 
 
 int PrintListOfDouble(char *format, List_T *list, char *buffer)
@@ -8104,25 +8090,26 @@ int PrintListOfDouble(char *format, List_T *list, char *buffer)
   return 0;
 }
 
-Double_Matrix *ListOfListOfDouble2Matrix(List_T *list)
+Double_Matrix ListOfListOfDouble2Matrix(List_T *list)
 {
   int M = List_Nbr(list);
-  if(!M) return 0;
   int N = 0;
   for(int i = 0; i < M; i++){
     List_T *line = *(List_T**)List_Pointer_Fast(list, i);
     N = std::max(N, List_Nbr(line));
   }
-  if(!N) return 0;
-  Double_Matrix *mat = new Double_Matrix(M, N);
+  Double_Matrix mat(M, N);
   for(int i = 0; i < M; i++){
     List_T *line = *(List_T**)List_Pointer_Fast(list, i);
     for(int j = 0; j < List_Nbr(line); j++){
       double val;
       List_Read(line, j, &val);
-      (*mat)(i, j) = val;
+      mat(i, j) = val;
     }
   }
+  for(int i = 0; i < List_Nbr(list); i++)
+    List_Delete(*(List_T**)List_Pointer(list, i));
+  List_Delete(list);
   return mat;
 }
 
diff --git a/Parser/Gmsh.y b/Parser/Gmsh.y
index e7e7255da8..b04118f1cb 100644
--- a/Parser/Gmsh.y
+++ b/Parser/Gmsh.y
@@ -1,5 +1,5 @@
 %{
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -66,7 +66,7 @@ void yyerror(char *s);
 void yymsg(int level, const char *fmt, ...);
 void skip_until(const char *skip, const char *until);
 int PrintListOfDouble(char *format, List_T *list, char *buffer);
-Double_Matrix *ListOfListOfDouble2Matrix(List_T *list);
+Double_Matrix ListOfListOfDouble2Matrix(List_T *list);
 void FixRelativePath(const char *in, char *out);
 %}
 
@@ -557,11 +557,6 @@ InterpolationMatrix :
 	0;
       ViewData->setInterpolationMatrices(type, ListOfListOfDouble2Matrix($3), 
                                          ListOfListOfDouble2Matrix($6));
-      for(int i = 0; i < List_Nbr($3); i++)
-        List_Delete(*(List_T**)List_Pointer($3, i));
-      for(int i = 0; i < List_Nbr($6); i++)
-        List_Delete(*(List_T**)List_Pointer($6, i));
-      List_Delete($3); List_Delete($6);
 #endif
     }
  |  tInterpolationScheme '{' RecursiveListOfListOfDouble '}' 
@@ -581,15 +576,6 @@ InterpolationMatrix :
                                          ListOfListOfDouble2Matrix($6),
                                          ListOfListOfDouble2Matrix($9), 
                                          ListOfListOfDouble2Matrix($12));
-      for(int i = 0; i < List_Nbr($3); i++) 
-        List_Delete(*(List_T**)List_Pointer($3, i));
-      for(int i = 0; i < List_Nbr($6); i++) 
-        List_Delete(*(List_T**)List_Pointer($6, i));
-      for(int i = 0; i < List_Nbr($9); i++) 
-        List_Delete(*(List_T**)List_Pointer($9, i));
-      for(int i = 0; i < List_Nbr($12); i++) 
-        List_Delete(*(List_T**)List_Pointer($12, i));
-      List_Delete($3); List_Delete($6); List_Delete($9); List_Delete($12);
 #endif
     }
 ;
@@ -3511,25 +3497,26 @@ int PrintListOfDouble(char *format, List_T *list, char *buffer)
   return 0;
 }
 
-Double_Matrix *ListOfListOfDouble2Matrix(List_T *list)
+Double_Matrix ListOfListOfDouble2Matrix(List_T *list)
 {
   int M = List_Nbr(list);
-  if(!M) return 0;
   int N = 0;
   for(int i = 0; i < M; i++){
     List_T *line = *(List_T**)List_Pointer_Fast(list, i);
     N = std::max(N, List_Nbr(line));
   }
-  if(!N) return 0;
-  Double_Matrix *mat = new Double_Matrix(M, N);
+  Double_Matrix mat(M, N);
   for(int i = 0; i < M; i++){
     List_T *line = *(List_T**)List_Pointer_Fast(list, i);
     for(int j = 0; j < List_Nbr(line); j++){
       double val;
       List_Read(line, j, &val);
-      (*mat)(i, j) = val;
+      mat(i, j) = val;
     }
   }
+  for(int i = 0; i < List_Nbr(list); i++)
+    List_Delete(*(List_T**)List_Pointer(list, i));
+  List_Delete(list);
   return mat;
 }
 
diff --git a/Parser/Gmsh.yy.cpp b/Parser/Gmsh.yy.cpp
index 2efe86a001..0e7fac8f53 100644
--- a/Parser/Gmsh.yy.cpp
+++ b/Parser/Gmsh.yy.cpp
@@ -823,7 +823,7 @@ int gmsh_yy_flex_debug = 0;
 char *gmsh_yytext;
 #line 1 "Gmsh.l"
 #line 2 "Gmsh.l"
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Parser/Makefile b/Parser/Makefile
index 70c93f3b50..247dd581e9 100644
--- a/Parser/Makefile
+++ b/Parser/Makefile
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/Parser/Parser.h b/Parser/Parser.h
index 8270c2b7b8..21643df158 100644
--- a/Parser/Parser.h
+++ b/Parser/Parser.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/Annotate.cpp b/Plugin/Annotate.cpp
index ebd8fb1d97..a5f52dcebc 100644
--- a/Plugin/Annotate.cpp
+++ b/Plugin/Annotate.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/Annotate.h b/Plugin/Annotate.h
index 1e23dab69d..f5212d707d 100644
--- a/Plugin/Annotate.h
+++ b/Plugin/Annotate.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/Curl.cpp b/Plugin/Curl.cpp
index 98381027c4..c1680c24a2 100644
--- a/Plugin/Curl.cpp
+++ b/Plugin/Curl.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/Curl.h b/Plugin/Curl.h
index f528a5f73d..e584e1adab 100644
--- a/Plugin/Curl.h
+++ b/Plugin/Curl.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/CutGrid.cpp b/Plugin/CutGrid.cpp
index 320a229887..31591d4c8d 100644
--- a/Plugin/CutGrid.cpp
+++ b/Plugin/CutGrid.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/CutGrid.h b/Plugin/CutGrid.h
index a7383cd538..e4e875e758 100644
--- a/Plugin/CutGrid.h
+++ b/Plugin/CutGrid.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/CutMap.cpp b/Plugin/CutMap.cpp
index a745f60187..f2851e7522 100644
--- a/Plugin/CutMap.cpp
+++ b/Plugin/CutMap.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/CutMap.h b/Plugin/CutMap.h
index 8d5d5c27b7..b471a28c06 100644
--- a/Plugin/CutMap.h
+++ b/Plugin/CutMap.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/CutParametric.cpp b/Plugin/CutParametric.cpp
index 284b285b40..c85386cf5d 100644
--- a/Plugin/CutParametric.cpp
+++ b/Plugin/CutParametric.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/CutParametric.h b/Plugin/CutParametric.h
index a4c2b9525c..e69b33c057 100644
--- a/Plugin/CutParametric.h
+++ b/Plugin/CutParametric.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/CutPlane.cpp b/Plugin/CutPlane.cpp
index 72a2d6b42e..220d08473c 100644
--- a/Plugin/CutPlane.cpp
+++ b/Plugin/CutPlane.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/CutPlane.h b/Plugin/CutPlane.h
index b9d8e1133a..0df33a8d96 100644
--- a/Plugin/CutPlane.h
+++ b/Plugin/CutPlane.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/CutSphere.cpp b/Plugin/CutSphere.cpp
index 5b06e4ec09..1608248e37 100644
--- a/Plugin/CutSphere.cpp
+++ b/Plugin/CutSphere.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/CutSphere.h b/Plugin/CutSphere.h
index 8d9867d6f7..45956ac320 100644
--- a/Plugin/CutSphere.h
+++ b/Plugin/CutSphere.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/Divergence.cpp b/Plugin/Divergence.cpp
index 4cc4f2f486..fd7e25f1aa 100644
--- a/Plugin/Divergence.cpp
+++ b/Plugin/Divergence.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/Divergence.h b/Plugin/Divergence.h
index 116865a40e..067a943d72 100644
--- a/Plugin/Divergence.h
+++ b/Plugin/Divergence.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/Eigenvalues.cpp b/Plugin/Eigenvalues.cpp
index 06e7804b09..a69d99ede3 100644
--- a/Plugin/Eigenvalues.cpp
+++ b/Plugin/Eigenvalues.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/Eigenvalues.h b/Plugin/Eigenvalues.h
index c423650a7e..e536761fe6 100644
--- a/Plugin/Eigenvalues.h
+++ b/Plugin/Eigenvalues.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/Eigenvectors.cpp b/Plugin/Eigenvectors.cpp
index 259ec5b482..d7245375f1 100644
--- a/Plugin/Eigenvectors.cpp
+++ b/Plugin/Eigenvectors.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/Eigenvectors.h b/Plugin/Eigenvectors.h
index 3ccf7dc88c..1e67306752 100644
--- a/Plugin/Eigenvectors.h
+++ b/Plugin/Eigenvectors.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/Evaluate.cpp b/Plugin/Evaluate.cpp
index 7703164367..b3b8d6800a 100644
--- a/Plugin/Evaluate.cpp
+++ b/Plugin/Evaluate.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/Evaluate.h b/Plugin/Evaluate.h
index cee80559b0..b023816209 100644
--- a/Plugin/Evaluate.h
+++ b/Plugin/Evaluate.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/Extract.cpp b/Plugin/Extract.cpp
index 57aa18004e..afceab210d 100644
--- a/Plugin/Extract.cpp
+++ b/Plugin/Extract.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/Extract.h b/Plugin/Extract.h
index 0e9d7cd518..2cb966cdb0 100644
--- a/Plugin/Extract.h
+++ b/Plugin/Extract.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/ExtractEdges.cpp b/Plugin/ExtractEdges.cpp
index 1b196b0270..cc8570254b 100644
--- a/Plugin/ExtractEdges.cpp
+++ b/Plugin/ExtractEdges.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/ExtractEdges.h b/Plugin/ExtractEdges.h
index 64280ce6ca..4d13b2ccd0 100644
--- a/Plugin/ExtractEdges.h
+++ b/Plugin/ExtractEdges.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/ExtractElements.cpp b/Plugin/ExtractElements.cpp
index f281e5eb90..baa3040740 100644
--- a/Plugin/ExtractElements.cpp
+++ b/Plugin/ExtractElements.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/ExtractElements.h b/Plugin/ExtractElements.h
index c26606f10c..790f0781fd 100644
--- a/Plugin/ExtractElements.h
+++ b/Plugin/ExtractElements.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/FieldView.cpp b/Plugin/FieldView.cpp
index 163e670020..fc94e58d85 100644
--- a/Plugin/FieldView.cpp
+++ b/Plugin/FieldView.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/FieldView.h b/Plugin/FieldView.h
index f938f6ac89..7fedc3936e 100644
--- a/Plugin/FieldView.h
+++ b/Plugin/FieldView.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/GSHHS.cpp b/Plugin/GSHHS.cpp
index a1b48635aa..c01cc0c62e 100644
--- a/Plugin/GSHHS.cpp
+++ b/Plugin/GSHHS.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -284,7 +284,7 @@ class GeoEarthImport
   }
 };
 
-/*	$Id: GSHHS.cpp,v 1.17 2008-11-06 14:02:06 remacle Exp $
+/*	$Id: GSHHS.cpp,v 1.18 2008-12-29 09:43:39 geuzaine Exp $
  *
  * Include file defining structures used in gshhs.c
  *
diff --git a/Plugin/GSHHS.h b/Plugin/GSHHS.h
index 44a4645907..be23327f01 100644
--- a/Plugin/GSHHS.h
+++ b/Plugin/GSHHS.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/Gradient.cpp b/Plugin/Gradient.cpp
index 58c1fafdcb..20acd61eb1 100644
--- a/Plugin/Gradient.cpp
+++ b/Plugin/Gradient.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/Gradient.h b/Plugin/Gradient.h
index a460438a09..6640580062 100644
--- a/Plugin/Gradient.h
+++ b/Plugin/Gradient.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/HarmonicToTime.cpp b/Plugin/HarmonicToTime.cpp
index 4c1f39cfb2..e206cf0ad7 100644
--- a/Plugin/HarmonicToTime.cpp
+++ b/Plugin/HarmonicToTime.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/HarmonicToTime.h b/Plugin/HarmonicToTime.h
index 2f34c6b780..da0c5404fa 100644
--- a/Plugin/HarmonicToTime.h
+++ b/Plugin/HarmonicToTime.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/Integrate.cpp b/Plugin/Integrate.cpp
index e8b4a0b50f..2c136442ec 100644
--- a/Plugin/Integrate.cpp
+++ b/Plugin/Integrate.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/Integrate.h b/Plugin/Integrate.h
index b141defec7..7afaa789e9 100644
--- a/Plugin/Integrate.h
+++ b/Plugin/Integrate.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/Lambda2.cpp b/Plugin/Lambda2.cpp
index dc9464836b..0ebc895fbf 100644
--- a/Plugin/Lambda2.cpp
+++ b/Plugin/Lambda2.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/Lambda2.h b/Plugin/Lambda2.h
index e357073d76..743a8cc552 100644
--- a/Plugin/Lambda2.h
+++ b/Plugin/Lambda2.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/Levelset.cpp b/Plugin/Levelset.cpp
index 78735a662c..50579da9b9 100644
--- a/Plugin/Levelset.cpp
+++ b/Plugin/Levelset.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/Levelset.h b/Plugin/Levelset.h
index 5d03db229c..0d39dead85 100644
--- a/Plugin/Levelset.h
+++ b/Plugin/Levelset.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/LongitudeLatitude.cpp b/Plugin/LongitudeLatitude.cpp
index 3fee814499..903d88f033 100644
--- a/Plugin/LongitudeLatitude.cpp
+++ b/Plugin/LongitudeLatitude.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/LongitudeLatitude.h b/Plugin/LongitudeLatitude.h
index 457b15a4e1..fc720d0eb1 100644
--- a/Plugin/LongitudeLatitude.h
+++ b/Plugin/LongitudeLatitude.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/MakeSimplex.cpp b/Plugin/MakeSimplex.cpp
index 6836e21f05..cb8797edf0 100644
--- a/Plugin/MakeSimplex.cpp
+++ b/Plugin/MakeSimplex.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/MakeSimplex.h b/Plugin/MakeSimplex.h
index 714dc583d1..762b9db571 100644
--- a/Plugin/MakeSimplex.h
+++ b/Plugin/MakeSimplex.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/Makefile b/Plugin/Makefile
index 185d0d4a1b..168bb71940 100644
--- a/Plugin/Makefile
+++ b/Plugin/Makefile
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/ModulusPhase.cpp b/Plugin/ModulusPhase.cpp
index 93457376a9..6523d7fa58 100644
--- a/Plugin/ModulusPhase.cpp
+++ b/Plugin/ModulusPhase.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/ModulusPhase.h b/Plugin/ModulusPhase.h
index 2548687123..16b65185a3 100644
--- a/Plugin/ModulusPhase.h
+++ b/Plugin/ModulusPhase.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/Plugin.cpp b/Plugin/Plugin.cpp
index 27b8a4f69a..31d48c6f73 100644
--- a/Plugin/Plugin.cpp
+++ b/Plugin/Plugin.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/Plugin.h b/Plugin/Plugin.h
index b1855267ed..b450c1690f 100644
--- a/Plugin/Plugin.h
+++ b/Plugin/Plugin.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/PluginManager.cpp b/Plugin/PluginManager.cpp
index 0d1dac9f08..028619e0b4 100644
--- a/Plugin/PluginManager.cpp
+++ b/Plugin/PluginManager.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/PluginManager.h b/Plugin/PluginManager.h
index dc7c990b09..4b8e3dde1a 100644
--- a/Plugin/PluginManager.h
+++ b/Plugin/PluginManager.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/Probe.cpp b/Plugin/Probe.cpp
index 4cfbb5c46c..dc8cce28f4 100644
--- a/Plugin/Probe.cpp
+++ b/Plugin/Probe.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/Probe.h b/Plugin/Probe.h
index 1367774c1a..4a38cce27b 100644
--- a/Plugin/Probe.h
+++ b/Plugin/Probe.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/Remove.cpp b/Plugin/Remove.cpp
index 035c0bec30..8727ca41f0 100644
--- a/Plugin/Remove.cpp
+++ b/Plugin/Remove.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/Remove.h b/Plugin/Remove.h
index 189a52f75a..58bd6e5685 100644
--- a/Plugin/Remove.h
+++ b/Plugin/Remove.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/Skin.cpp b/Plugin/Skin.cpp
index 00b7a16980..67608fafb5 100644
--- a/Plugin/Skin.cpp
+++ b/Plugin/Skin.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/Skin.h b/Plugin/Skin.h
index 462fdf32d0..46513077aa 100644
--- a/Plugin/Skin.h
+++ b/Plugin/Skin.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/Smooth.cpp b/Plugin/Smooth.cpp
index 66296710d8..28a1531ce2 100644
--- a/Plugin/Smooth.cpp
+++ b/Plugin/Smooth.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/Smooth.h b/Plugin/Smooth.h
index 4d03f4f805..49d5b95849 100644
--- a/Plugin/Smooth.h
+++ b/Plugin/Smooth.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/SphericalRaise.cpp b/Plugin/SphericalRaise.cpp
index 07b95be06a..99b19b56cd 100644
--- a/Plugin/SphericalRaise.cpp
+++ b/Plugin/SphericalRaise.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/SphericalRaise.h b/Plugin/SphericalRaise.h
index 1d702cdead..97bef18b6c 100644
--- a/Plugin/SphericalRaise.h
+++ b/Plugin/SphericalRaise.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/StreamLines.cpp b/Plugin/StreamLines.cpp
index 976c023a18..f5fddee5b4 100644
--- a/Plugin/StreamLines.cpp
+++ b/Plugin/StreamLines.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/StreamLines.h b/Plugin/StreamLines.h
index 1e75981f6a..142bcfe3c9 100644
--- a/Plugin/StreamLines.h
+++ b/Plugin/StreamLines.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/Transform.cpp b/Plugin/Transform.cpp
index 2831b26b2a..1e6044da05 100644
--- a/Plugin/Transform.cpp
+++ b/Plugin/Transform.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/Transform.h b/Plugin/Transform.h
index 69be738f5b..cba8b8ddf8 100644
--- a/Plugin/Transform.h
+++ b/Plugin/Transform.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/Triangulate.cpp b/Plugin/Triangulate.cpp
index 934734571a..05a507ed5b 100644
--- a/Plugin/Triangulate.cpp
+++ b/Plugin/Triangulate.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/Triangulate.h b/Plugin/Triangulate.h
index a484af0b66..5bec55b1c0 100644
--- a/Plugin/Triangulate.h
+++ b/Plugin/Triangulate.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/Warp.cpp b/Plugin/Warp.cpp
index 0a20162466..ecfd6ee000 100644
--- a/Plugin/Warp.cpp
+++ b/Plugin/Warp.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/Warp.h b/Plugin/Warp.h
index 50ae863f73..c214fbf225 100644
--- a/Plugin/Warp.h
+++ b/Plugin/Warp.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Post/ColorTable.cpp b/Post/ColorTable.cpp
index eb1c171c59..f51679741d 100644
--- a/Post/ColorTable.cpp
+++ b/Post/ColorTable.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Post/ColorTable.h b/Post/ColorTable.h
index 68949b85b4..7b8596d221 100644
--- a/Post/ColorTable.h
+++ b/Post/ColorTable.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Post/Makefile b/Post/Makefile
index 62a448177b..9d976cc095 100644
--- a/Post/Makefile
+++ b/Post/Makefile
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/Post/OctreePost.cpp b/Post/OctreePost.cpp
index 43cf929661..3f70468da4 100644
--- a/Post/OctreePost.cpp
+++ b/Post/OctreePost.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Post/OctreePost.h b/Post/OctreePost.h
index 9e28ee86eb..dcf654c12a 100644
--- a/Post/OctreePost.h
+++ b/Post/OctreePost.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Post/PView.cpp b/Post/PView.cpp
index 2e8e51bb6f..8f6509ad51 100644
--- a/Post/PView.cpp
+++ b/Post/PView.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Post/PView.h b/Post/PView.h
index c8c6fed3b6..2b868a35f4 100644
--- a/Post/PView.h
+++ b/Post/PView.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Post/PViewData.cpp b/Post/PViewData.cpp
index 35adb58388..53ef81ec40 100644
--- a/Post/PViewData.cpp
+++ b/Post/PViewData.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -74,15 +74,25 @@ void PViewData::setValue(int step, int ent, int ele, int nod, int comp, double v
 }
 
 void PViewData::setInterpolationMatrices(int type, 
-                                         Double_Matrix *coeffs, Double_Matrix *eexps,
-                                         Double_Matrix *coeffsGeo, Double_Matrix *eexpsGeo)
+                                         const Double_Matrix &coefVal,
+                                         const Double_Matrix &expVal)
 {
-  if(!type || !_interpolation[type].empty()) return;
-  Msg::Debug("Storing interpolation scheme %d in view %p", type, this);
-  if(coeffs) _interpolation[type].push_back(coeffs);
-  if(eexps) _interpolation[type].push_back(eexps);
-  if(coeffsGeo) _interpolation[type].push_back(coeffsGeo);
-  if(eexpsGeo) _interpolation[type].push_back(eexpsGeo);
+  if(!type || _interpolation[type].size()) return;
+  _interpolation[type].push_back(new Double_Matrix(coefVal));
+  _interpolation[type].push_back(new Double_Matrix(expVal));
+}
+
+void PViewData::setInterpolationMatrices(int type, 
+                                         const Double_Matrix &coefVal,
+                                         const Double_Matrix &expVal, 
+                                         const Double_Matrix &coefGeo,
+                                         const Double_Matrix &expGeo)
+{
+  if(!type || _interpolation[type].size()) return;
+  _interpolation[type].push_back(new Double_Matrix(coefVal));
+  _interpolation[type].push_back(new Double_Matrix(expVal));
+  _interpolation[type].push_back(new Double_Matrix(coefGeo));
+  _interpolation[type].push_back(new Double_Matrix(expGeo));
 }
 
 int PViewData::getInterpolationMatrices(int type, std::vector<Double_Matrix*> &p)
diff --git a/Post/PViewData.h b/Post/PViewData.h
index 5ca35f307e..66c61094fa 100644
--- a/Post/PViewData.h
+++ b/Post/PViewData.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -178,8 +178,14 @@ class PViewData {
 
   // set/get the interpolation matrices for elements with "type"
   // number of edges
-  void setInterpolationMatrices(int type, Double_Matrix *coeffs, Double_Matrix *eexps,
-                                Double_Matrix *coeffsGeo=0, Double_Matrix *eexpsGeo=0);
+  void setInterpolationMatrices(int type, 
+                                const Double_Matrix &coefVal,
+                                const Double_Matrix &expVal);
+  void setInterpolationMatrices(int type, 
+                                const Double_Matrix &coefVal,
+                                const Double_Matrix &expVal,
+                                const Double_Matrix &coefGeo, 
+                                const Double_Matrix &expGeo);
   int getInterpolationMatrices(int type, std::vector<Double_Matrix*> &p);
   inline bool haveInterpolationMatrices(){ return !_interpolation.empty(); }
 
diff --git a/Post/PViewDataGModel.cpp b/Post/PViewDataGModel.cpp
index 18d7a02f84..5ac90c84c8 100644
--- a/Post/PViewDataGModel.cpp
+++ b/Post/PViewDataGModel.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -59,23 +59,26 @@ bool PViewDataGModel::finalize()
   // overidden later)
   for(int step = 0; step < getNumTimeSteps(); step++){
     GModel *m = _steps[step]->getModel();
-    for(GModel::eiter it = m->firstEdge(); it != m->lastEdge(); it++)
+    for(GModel::eiter it = m->firstEdge(); it != m->lastEdge(); it++){
       if((*it)->lines.size()) 
         _addInterpolationMatricesForElement((*it)->lines[0]);
-    for(GModel::fiter it = m->firstFace(); it != m->lastFace(); it++)
+    }
+    for(GModel::fiter it = m->firstFace(); it != m->lastFace(); it++){
       if((*it)->triangles.size()) 
         _addInterpolationMatricesForElement((*it)->triangles[0]);
-      else if((*it)->quadrangles.size()) 
+      if((*it)->quadrangles.size()) 
         _addInterpolationMatricesForElement((*it)->quadrangles[0]);
-    for(GModel::riter it = m->firstRegion(); it != m->lastRegion(); it++)
+    }
+    for(GModel::riter it = m->firstRegion(); it != m->lastRegion(); it++){
       if((*it)->tetrahedra.size()) 
         _addInterpolationMatricesForElement((*it)->tetrahedra[0]);
-      else if((*it)->hexahedra.size()) 
+      if((*it)->hexahedra.size()) 
         _addInterpolationMatricesForElement((*it)->hexahedra[0]);
-      else if((*it)->prisms.size()) 
+      if((*it)->prisms.size()) 
         _addInterpolationMatricesForElement((*it)->prisms[0]);
-      else if((*it)->pyramids.size()) 
+      if((*it)->pyramids.size()) 
         _addInterpolationMatricesForElement((*it)->pyramids[0]);
+    }
   }
 
   return PViewData::finalize();
@@ -84,20 +87,14 @@ bool PViewDataGModel::finalize()
 void PViewDataGModel::_addInterpolationMatricesForElement(MElement *e)
 {
   int edg = e->getNumEdges();
-  if(_interpolation.count(edg)) return;
   const gmshFunctionSpace *fs = e->getFunctionSpace();
   if(fs){
-    _interpolation[edg].push_back(new Double_Matrix(fs->coefficients));
-    _interpolation[edg].push_back(new Double_Matrix(fs->monomials));
-    if(e->getPolynomialOrder() > 1){
-      _interpolation[edg].push_back(new Double_Matrix(fs->coefficients));
-      _interpolation[edg].push_back(new Double_Matrix(fs->monomials));
-    }
-  }
-  else{
-    Msg::Info("No interpolation matrix for element type %d: using first order", 
-              e->getTypeForMSH());
-  }
+    if(e->getPolynomialOrder() > 1)
+      setInterpolationMatrices(edg, fs->coefficients, fs->monomials,
+                               fs->coefficients, fs->monomials);
+    else
+      setInterpolationMatrices(edg, fs->coefficients, fs->monomials);
+  }                               
 }
 
 MElement *PViewDataGModel::_getElement(int step, int ent, int ele)
diff --git a/Post/PViewDataGModel.h b/Post/PViewDataGModel.h
index 94e1d40cf0..0d23113f9d 100644
--- a/Post/PViewDataGModel.h
+++ b/Post/PViewDataGModel.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Post/PViewDataGModelIO.cpp b/Post/PViewDataGModelIO.cpp
index c3d557edb6..c5728cafc6 100644
--- a/Post/PViewDataGModelIO.cpp
+++ b/Post/PViewDataGModelIO.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Post/PViewDataIO.cpp b/Post/PViewDataIO.cpp
index 68d72bad21..3cf6cbdf17 100644
--- a/Post/PViewDataIO.cpp
+++ b/Post/PViewDataIO.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Post/PViewDataList.cpp b/Post/PViewDataList.cpp
index 17dd74e0d6..94c851d90c 100644
--- a/Post/PViewDataList.cpp
+++ b/Post/PViewDataList.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Post/PViewDataList.h b/Post/PViewDataList.h
index 9f1a1cf8e7..30e101ca6d 100644
--- a/Post/PViewDataList.h
+++ b/Post/PViewDataList.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Post/PViewDataListIO.cpp b/Post/PViewDataListIO.cpp
index 6c0935b1d2..7c9189e2ef 100644
--- a/Post/PViewDataListIO.cpp
+++ b/Post/PViewDataListIO.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Post/PViewIO.cpp b/Post/PViewIO.cpp
index 9628730b95..8346269bdd 100644
--- a/Post/PViewIO.cpp
+++ b/Post/PViewIO.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Post/PViewOptions.cpp b/Post/PViewOptions.cpp
index 66acb7dda2..26a46b10da 100644
--- a/Post/PViewOptions.cpp
+++ b/Post/PViewOptions.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Post/PViewOptions.h b/Post/PViewOptions.h
index 323e7e1fe4..a97d87d937 100644
--- a/Post/PViewOptions.h
+++ b/Post/PViewOptions.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Post/adaptiveData.cpp b/Post/adaptiveData.cpp
index e28a8d9fc9..da901c19d6 100644
--- a/Post/adaptiveData.cpp
+++ b/Post/adaptiveData.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Post/adaptiveData.h b/Post/adaptiveData.h
index 29abb809fe..a2512c1b26 100644
--- a/Post/adaptiveData.h
+++ b/Post/adaptiveData.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Post/shapeFunctions.h b/Post/shapeFunctions.h
index 4e76cef47f..5bb00835f8 100644
--- a/Post/shapeFunctions.h
+++ b/Post/shapeFunctions.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/benchmarks/3d/transfinite_auto.geo b/benchmarks/3d/transfinite_auto.geo
new file mode 100644
index 0000000000..7715c2a272
--- /dev/null
+++ b/benchmarks/3d/transfinite_auto.geo
@@ -0,0 +1,264 @@
+/********************************************************************* 
+ *
+ *  Gmsh tutorial 6
+ * 
+ *  Transfinite meshes
+ *
+ *********************************************************************/
+
+// We start by defining a more complex geometry, using the same
+// commands as in the previous examples:
+
+r_int  = 0.05 ;
+r_ext  = 0.051 ;
+r_far  = 0.125 ;
+r_inf  = 0.4 ;
+phi1   = 30. * (Pi/180.) ;
+angl   = 45. * (Pi/180.) ;
+
+nbpt_phi   = 5 ; nbpt_int   = 20 ;
+nbpt_arc1  = 10 ; nbpt_arc2  = 10 ;
+nbpt_shell = 10 ; nbpt_far   = 25 ; nbpt_inf = 15 ;
+
+lc0 = 0.1 ; lc1 = 0.1 ; lc2 = 0.3 ;
+
+Point(1) = {0,     0, 0, lc0} ;
+Point(2) = {r_int, 0, 0, lc0} ;
+Point(3) = {r_ext, 0, 0, lc1} ;
+Point(4) = {r_far, 0, 0, lc2} ;
+Point(5) = {r_inf, 0, 0, lc2} ;
+Point(6) = {0, 0,  r_int, lc0} ;
+Point(7) = {0, 0,  r_ext, lc1} ;
+Point(8) = {0, 0,  r_far, lc2} ;
+Point(9) = {0, 0,  r_inf, lc2} ;
+
+Point(10) = {r_int*Cos(phi1), r_int*Sin(phi1), 0, lc0} ;
+Point(11) = {r_ext*Cos(phi1), r_ext*Sin(phi1), 0, lc1} ;
+Point(12) = {r_far*Cos(phi1), r_far*Sin(phi1), 0, lc2} ;
+Point(13) = {r_inf*Cos(phi1), r_inf*Sin(phi1), 0, lc2} ;
+
+Point(14) = {r_int/2, 0, 0, lc2} ;
+Point(15) = {r_int/2*Cos(phi1), r_int/2*Sin(phi1), 0, lc2} ;
+Point(16) = {r_int/2, 0, r_int/2, lc2} ;
+Point(17) = {r_int/2*Cos(phi1), r_int/2*Sin(phi1), r_int/2, lc2} ;
+Point(18) = {0, 0, r_int/2, lc2} ;
+Point(19) = {r_int*Cos(angl), 0, r_int*Sin(angl), lc2} ;
+Point(20) = {r_int*Cos(angl)*Cos(phi1), r_int*Cos(angl)*Sin(phi1),
+	     r_int*Sin(angl), lc2} ;
+Point(21) = {r_ext*Cos(angl), 0, r_ext*Sin(angl), lc2} ;
+Point(22) = {r_ext*Cos(angl)*Cos(phi1), r_ext*Cos(angl)*Sin(phi1),
+	     r_ext*Sin(angl), lc2} ;
+Point(23) = {r_far*Cos(angl), 0, r_far*Sin(angl), lc2} ;
+Point(24) = {r_far*Cos(angl)*Cos(phi1), r_far*Cos(angl)*Sin(phi1),
+	     r_far*Sin(angl), lc2} ;
+Point(25) = {r_inf, 0, r_inf, lc2} ;
+Point(26) = {r_inf*Cos(phi1), r_inf*Sin(phi1),  r_inf, lc2} ;
+
+Circle(1) = {2,1,19};  Circle(2) = {19,1,6};  Circle(3) = {3,1,21};
+Circle(4) = {21,1,7};  Circle(5) = {4,1,23};  Circle(6) = {23,1,8};   
+Line(7)   = {5,25};    Line(8)   = {25,9};
+Circle(9) = {10,1,20}; Circle(10)= {20,1,6};  Circle(11) = {11,1,22};
+Circle(12)= {22,1,7};  Circle(13)= {12,1,24}; Circle(14) = {24,1,8};
+Line(15)  = {13,26};   Line(16)  = {26,9};
+Circle(17)= {19,1,20}; Circle(18)= {21,1,22}; Circle(19) = {23,1,24};
+Circle(20)= {25,1,26}; Circle(21)= {2,1,10};  Circle(22) = {3,1,11};  
+Circle(23)= {4,1,12};  Circle(24)= {5,1,13};
+
+Line(25) = {1,14};  Line(26) = {14,2};  Line(27) = {2,3};
+Line(28) = {3,4};   Line(29) = {4,5};   Line(30) = {1,15};
+Line(31) = {15,10}; Line(32) = {10,11}; Line(33) = {11,12};
+Line(34) = {12,13}; Line(35) = {14,15}; Line(36) = {14,16};
+Line(37) = {15,17}; Line(38) = {16,17}; Line(39) = {18,16};
+Line(40) = {18,17}; Line(41) = {1,18};  Line(42) = {18,6};
+Line(43) = {6,7};   Line(44) = {16,19}; Line(45) = {19,21};
+Line(46) = {21,23}; Line(47) = {23,25}; Line(48) = {17,20};
+Line(49) = {20,22}; Line(50) = {22,24}; Line(51) = {24,26};
+Line(52) = {7,8};   Line(53) = {8,9};
+
+Line Loop(54) = {39,-36,-25,41};  Ruled Surface(55) = {54};
+Line Loop(56) = {44,-1,-26,36};   Ruled Surface(57) = {56};
+Line Loop(58) = {3,-45,-1,27};    Ruled Surface(59) = {58};
+Line Loop(60) = {5,-46,-3,28};    Ruled Surface(61) = {60};
+Line Loop(62) = {7,-47,-5,29};    Ruled Surface(63) = {62};
+Line Loop(64) = {-2,-44,-39,42};  Ruled Surface(65) = {64};
+Line Loop(66) = {-4,-45,2,43};    Ruled Surface(67) = {66};
+Line Loop(68) = {-6,-46,4,52};    Ruled Surface(69) = {68};
+Line Loop(70) = {-8,-47,6,53};    Ruled Surface(71) = {70};
+Line Loop(72) = {-40,-41,30,37};  Ruled Surface(73) = {72};
+Line Loop(74) = {48,-9,-31,37};   Ruled Surface(75) = {74};
+Line Loop(76) = {49,-11,-32,9};   Ruled Surface(77) = {76};
+Line Loop(78) = {-50,-11,33,13};  Ruled Surface(79) = {78};
+Line Loop(80) = {-51,-13,34,15};  Ruled Surface(81) = {80};
+Line Loop(82) = {10,-42,40,48};   Ruled Surface(83) = {82};
+Line Loop(84) = {12,-43,-10,49};  Ruled Surface(85) = {84};
+Line Loop(86) = {14,-52,-12,50};  Ruled Surface(87) = {86};
+Line Loop(88) = {16,-53,-14,51};  Ruled Surface(89) = {88};
+Line Loop(90) = {-30,25,35};      Ruled Surface(91) = {90};
+Line Loop(92) = {-40,39,38};      Ruled Surface(93) = {92};
+Line Loop(94) = {37,-38,-36,35};  Ruled Surface(95) = {94};
+Line Loop(96) = {-48,-38,44,17};  Ruled Surface(97) = {96};
+Line Loop(98) = {18,-49,-17,45};  Ruled Surface(99) = {98};
+Line Loop(100) = {19,-50,-18,46}; Ruled Surface(101) = {100};
+Line Loop(102) = {20,-51,-19,47}; Ruled Surface(103) = {102};
+Line Loop(104) = {-2,17,10};      Ruled Surface(105) = {104};
+Line Loop(106) = {-9,-21,1,17};   Ruled Surface(107) = {106};
+Line Loop(108) = {-4,18,12};      Ruled Surface(109) = {108};
+Line Loop(110) = {-11,-22,3,18};  Ruled Surface(111) = {110};
+Line Loop(112) = {-13,-23,5,19};  Ruled Surface(113) = {112};
+Line Loop(114) = {-6,19,14};      Ruled Surface(115) = {114};
+Line Loop(116) = {-15,-24,7,20};  Ruled Surface(117) = {116};
+Line Loop(118) = {-8,20,16};      Ruled Surface(119) = {118};
+Line Loop(120) = {-31,-35,26,21}; Ruled Surface(121) = {120};
+Line Loop(122) = {32,-22,-27,21}; Ruled Surface(123) = {122};
+Line Loop(124) = {33,-23,-28,22}; Ruled Surface(125) = {124};
+Line Loop(126) = {34,-24,-29,23}; Ruled Surface(127) = {126};
+
+Surface Loop(128) = {93,-73,-55,95,-91};
+Volume(129) = {128}; // int
+Surface Loop(130) = {107,-75,-97,95,57,121};
+Volume(131) = {130}; // int b
+Surface Loop(132) = {105,-65,-97,-83,-93};
+Volume(133) = {132}; // int h
+Surface Loop(134) = {99,-111,77,123,59,107};
+Volume(135) = {134}; // shell b
+Surface Loop(136) = {99,-109,67,105,85};
+Volume(137) = {136}; // shell h
+Surface Loop(138) = {113,79,-101,-111,-125,-61};
+Volume(139) = {138}; // ext b
+Surface Loop(140) = {115,-69,-101,-87,-109};
+Volume(141) = {140}; // ext h
+Surface Loop(142) = {103,-117,-81,113,127,63};
+Volume(143) = {142}; // inf b
+Surface Loop(144) = {89,-119,71,103,115};
+Volume(145) = {144}; // inf h
+
+// Once the geometry is defined, we then add transfinite mesh commands
+// in order to explicitly define a structured mesh.
+
+// 1. Transfinite line commands specify the number of points on the
+// curves and their distribution (`Progression 2' means that each line
+// element in the series will be twice as long as the preceding one):
+
+Transfinite Line{35,21,22,23,24,38,17,18,19,20} = nbpt_phi ;
+Transfinite Line{31,26,48,44,42} = nbpt_int Using Progression 0.88;
+Transfinite Line{41,37,36,9,11,1,3,13,5,15,7} = nbpt_arc1 ;
+Transfinite Line{30,25,40,39,10,2,12,4,14,6,16,8} = nbpt_arc2 ;
+Transfinite Line{32,27,49,45,43} = nbpt_shell ;
+Transfinite Line{33,28,46,50,52} = nbpt_far Using Progression 1.2 ;
+Transfinite Line{34,29,51,47,53} = nbpt_inf Using Progression 1.05;
+
+// 2. Transfinite surfaces are defined by an ordered list of the
+// points on their boundary (the ordering of these points defines the
+// ordering of the mesh elements). Note that a transfinite surface can
+// only have 3 or 4 sides:
+
+/*
+Transfinite Surface{55} = {1,14,16,18};
+Transfinite Surface{57} = {14,2,19,16};
+Transfinite Surface{59} = {2,3,21,19};
+Transfinite Surface{61} = {3,4,23,21};
+Transfinite Surface{63} = {4,5,25,23};
+Transfinite Surface{73} = {1,15,17,18};
+Transfinite Surface{75} = {15,10,20,17};
+Transfinite Surface{77} = {10,11,22,20};
+Transfinite Surface{79} = {11,12,24,22};
+Transfinite Surface{81} = {12,13,26,24};
+Transfinite Surface{65} = {18,16,19,6};
+Transfinite Surface{67} = {6,19,21,7};
+Transfinite Surface{69} = {7,21,23,8};
+Transfinite Surface{71} = {8,23,25,9};
+Transfinite Surface{83} = {17,18,6,20};
+Transfinite Surface{85} = {20,6,7,22};
+Transfinite Surface{87} = {22,7,8,24};
+Transfinite Surface{89} = {24,8,9,26};
+Transfinite Surface{91} = {1,14,15};
+Transfinite Surface{95} = {15,14,16,17};
+Transfinite Surface{93} = {18,16,17};
+Transfinite Surface{121} = {15,14,2,10};
+Transfinite Surface{97} = {17,16,19,20};
+Transfinite Surface{123} = {10,2,3,11};
+Transfinite Surface{99} = {20,19,21,22};
+Transfinite Surface{107} = {10,2,19,20};
+Transfinite Surface{105} = {6,20,19};
+Transfinite Surface{109} = {7,22,21};
+Transfinite Surface{111} = {11,3,21,22};
+Transfinite Surface{101} = {22,21,23,24};
+Transfinite Surface{125} = {11,3,4,12};
+Transfinite Surface{115} = {8,24,23};
+Transfinite Surface{113} = {24,12,4,23};
+Transfinite Surface{127} = {12,13,5,4};
+Transfinite Surface{103} = {24,23,25,26};
+Transfinite Surface{119} = {9,26,25};
+Transfinite Surface{117} = {13,5,25,26};
+*/
+Transfinite Surface "*"; // easier, isn't it?
+
+// 3. Transfinite volumes are also defined by an ordered list of the
+// points on their boundary (the ordering defines the ordering of the
+// mesh elements).  A transfinite volume can only have 6 or 8 faces:
+/*
+Transfinite Volume{129} = {1,14,15,18,16,17};
+Transfinite Volume{131} = {17,16,14,15,20,19,2,10};
+Transfinite Volume{133} = {18,17,16,6,20,19};
+Transfinite Volume{135} = {10,2,19,20,11,3,21,22};
+Transfinite Volume{137} = {6,20,19,7,22,21};
+Transfinite Volume{139} = {11,3,4,12,22,21,23,24};
+Transfinite Volume{141} = {7,22,21,8,24,23};
+Transfinite Volume{143} = {12,4,5,13,24,23,25,26};
+Transfinite Volume{145} = {8,24,23,9,26,25};
+*/
+Transfinite Volume "*"; // hmmm?
+
+// As with Extruded meshes, the `Recombine' command tells Gmsh to
+// recombine the simplices into quadrangles, prisms or hexahedra when
+// possible:
+/*
+Recombine Surface {55:127};
+*/
+Recombine Surface "*";
+
+// We finish by defing some physical entities:
+
+VolInt           = 1000 ;
+SurfIntPhi0      = 1001 ;  SurfIntPhi1      = 1002 ;
+SurfIntZ0        = 1003 ;
+
+VolShell         = 2000 ;
+SurfShellInt     = 2001 ;  SurfShellExt     = 2002 ;
+SurfShellPhi0    = 2003 ;  SurfShellPhi1    = 2004 ;
+SurfShellZ0      = 2005 ;
+LineShellIntPhi0 = 2006 ;
+LineShellIntPhi1 = 2007 ;  LineShellIntZ0   = 2008 ;
+PointShellInt    = 2009 ;
+
+VolExt           = 3000 ;
+VolInf           = 3001 ;
+SurfInf          = 3002 ;
+SurfExtInfPhi0   = 3003 ;  SurfExtInfPhi1   = 3004 ;
+SurfExtInfZ0     = 3005 ;
+SurfInfRight     = 3006 ;
+SurfInfTop       = 3007 ;
+
+Physical Volume  (VolInt)           = {129,131,133} ;
+Physical Surface (SurfIntPhi0)      = {55,57,65} ;
+Physical Surface (SurfIntPhi1)      = {73,75,83} ;
+Physical Surface (SurfIntZ0)        = {91,121} ;
+
+Physical Volume  (VolShell)         = {135,137} ;
+Physical Surface (SurfShellInt)     = {105,107} ;
+Physical Surface (SurfShellExt)     = {109,111} ;
+Physical Surface (SurfShellPhi0)    = {59,67} ;
+Physical Surface (SurfShellPhi1)    = {77,85} ;
+Physical Surface (SurfShellZ0)      = {123} ;
+Physical Line    (LineShellIntPhi0) = {1,2} ;
+Physical Line    (LineShellIntPhi1) = {9,10} ;
+Physical Line    (LineShellIntZ0)   = 21 ;
+//Physical Point   (PointShellInt)    = 6 ;
+
+Physical Volume  (VolExt)           = {139,141} ;
+Physical Volume  (VolInf)           = {143,145} ;
+Physical Surface (SurfExtInfPhi0)   = {61,63,69,71} ;
+Physical Surface (SurfExtInfPhi1)   = {79,87,81,89} ;
+Physical Surface (SurfExtInfZ0)     = {125,127} ;
+Physical Surface (SurfInfRight)     = {117} ;
+Physical Surface (SurfInfTop)       = {119} ;
diff --git a/bin/Makefile b/bin/Makefile
index be3301c73e..275410fcb6 100644
--- a/bin/Makefile
+++ b/bin/Makefile
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/configure.in b/configure.in
index 5ad601a895..300de22587 100644
--- a/configure.in
+++ b/configure.in
@@ -1,4 +1,4 @@
-dnl Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+dnl Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 dnl
 dnl See the LICENSE.txt file for license information. Please report all
 dnl bugs and problems to <gmsh@geuz.org>.
diff --git a/contrib/ANN/Makefile b/contrib/ANN/Makefile
index d1fee8d193..b7cb9a0e55 100644
--- a/contrib/ANN/Makefile
+++ b/contrib/ANN/Makefile
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/contrib/MathEval/Makefile b/contrib/MathEval/Makefile
index fc07eab9c2..0622218368 100644
--- a/contrib/MathEval/Makefile
+++ b/contrib/MathEval/Makefile
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/contrib/Metis/Makefile b/contrib/Metis/Makefile
index 0e066e9646..7bf7b59da4 100644
--- a/contrib/Metis/Makefile
+++ b/contrib/Metis/Makefile
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/contrib/NativeFileChooser/Makefile b/contrib/NativeFileChooser/Makefile
index 84017879b7..a358878948 100644
--- a/contrib/NativeFileChooser/Makefile
+++ b/contrib/NativeFileChooser/Makefile
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/contrib/Netgen/Makefile b/contrib/Netgen/Makefile
index ddf833a49e..45bc61b7de 100644
--- a/contrib/Netgen/Makefile
+++ b/contrib/Netgen/Makefile
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/contrib/Tetgen/Makefile b/contrib/Tetgen/Makefile
index 7766c928bf..639e045d2f 100644
--- a/contrib/Tetgen/Makefile
+++ b/contrib/Tetgen/Makefile
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/contrib/TreeBrowser/Makefile b/contrib/TreeBrowser/Makefile
index 712f911182..17b267a18b 100644
--- a/contrib/TreeBrowser/Makefile
+++ b/contrib/TreeBrowser/Makefile
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/doc/CREDITS.txt b/doc/CREDITS.txt
index 736ca06308..abb063b38f 100644
--- a/doc/CREDITS.txt
+++ b/doc/CREDITS.txt
@@ -1,4 +1,4 @@
-             Gmsh is copyright (C) 1997-2008
+             Gmsh is copyright (C) 1997-2009
 
                    Christophe Geuzaine
                  <cgeuzaine at ulg.ac.be>
diff --git a/doc/Makefile b/doc/Makefile
index 8a9021ec88..527b579d10 100644
--- a/doc/Makefile
+++ b/doc/Makefile
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/doc/gmsh.html b/doc/gmsh.html
index dbcecef76c..c53987052e 100644
--- a/doc/gmsh.html
+++ b/doc/gmsh.html
@@ -155,7 +155,7 @@ We need your help to build a <a href="/gmsh/wiki/FrontPage">library of examples<
 
 <h2><a name="Licensing"></a>Licensing</h2>
 
-Gmsh is copyright (C) 1997-2008 by C. Geuzaine and J.-F. Remacle and
+Gmsh is copyright (C) 1997-2009 by C. Geuzaine and J.-F. Remacle and
 is distributed under the terms of
 the <a href="http://www.gnu.org/copyleft/gpl.html">GNU General Public
 License (GPL)</a> (with an <a href="/gmsh/doc/LICENSE.txt">exception</a>
diff --git a/doc/texinfo/Makefile b/doc/texinfo/Makefile
index 737981c7f4..ba040fa135 100644
--- a/doc/texinfo/Makefile
+++ b/doc/texinfo/Makefile
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/doc/texinfo/gmsh.texi b/doc/texinfo/gmsh.texi
index b429a3f62c..82f9b8b232 100644
--- a/doc/texinfo/gmsh.texi
+++ b/doc/texinfo/gmsh.texi
@@ -1,5 +1,5 @@
 \input texinfo.tex @c -*-texinfo-*-
-@c Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+@c Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 @c
 @c See the LICENSE.txt file for license information. Please report all
 @c bugs and problems to <gmsh@geuz.org>.
@@ -22,7 +22,7 @@
 @c %**start of header
 @setfilename        gmsh.info
 @set GMSH-VERSION   2.3
-@set COPYRIGHT      @copyright{} 1997-2008 Christophe Geuzaine, Jean-Fran@,{c}ois Remacle
+@set COPYRIGHT      @copyright{} 1997-2009 Christophe Geuzaine, Jean-Fran@,{c}ois Remacle
 @c
 @settitle Gmsh @value{GMSH-VERSION}
 @footnotestyle separate
diff --git a/doc/texinfo/opt_fields.texi b/doc/texinfo/opt_fields.texi
index 07d71ee02b..e9d96531e6 100644
--- a/doc/texinfo/opt_fields.texi
+++ b/doc/texinfo/opt_fields.texi
@@ -150,7 +150,7 @@ default value: @code{@{@}}
 @end table
 
 @item MaxEigenHessian
-Compute the maximum eigen value of the Hessian matrix of Field[IField]. Gradients are evaluated by finite differences, eigenvalues are computed using the GSL library.F = max ( eigenvalues ( grad ( grad ( Field[IField] ) ) ) ) @*
+Compute the maximum eigenvalue of the Hessian matrix of Field[IField], with the gradients evaluated by finite differences.F = max ( eigenvalues ( grad ( grad ( Field[IField] ) ) ) ) @*
 Options:@*
 @table @code
 @item Delta
diff --git a/doc/texinfo/opt_general.texi b/doc/texinfo/opt_general.texi
index 802747c368..2f40cfdff4 100644
--- a/doc/texinfo/opt_general.texi
+++ b/doc/texinfo/opt_general.texi
@@ -354,11 +354,6 @@ Use a double buffered graphic window (on Unix, should be set to 0 when working o
 Default value: @code{1}@*
 Saved in: @code{General.OptionsFileName}
 
-@item General.DrawAllModels
-Draw all loaded models (instead of drawing only the current one)@*
-Default value: @code{0}@*
-Saved in: @code{General.OptionsFileName}
-
 @item General.DrawBoundingBoxes
 Draw bounding boxes@*
 Default value: @code{0}@*
@@ -606,17 +601,17 @@ Saved in: @code{General.SessionFileName}
 
 @item General.MaxX
 Maximum model coordinate along the X-axis (read-only)@*
-Default value: @code{1}@*
+Default value: @code{0}@*
 Saved in: @code{-}
 
 @item General.MaxY
 Maximum model coordinate along the Y-axis (read-only)@*
-Default value: @code{1}@*
+Default value: @code{0}@*
 Saved in: @code{-}
 
 @item General.MaxZ
 Maximum model coordinate along the Z-axis (read-only)@*
-Default value: @code{1}@*
+Default value: @code{0}@*
 Saved in: @code{-}
 
 @item General.MenuPositionX
diff --git a/doc/texinfo/opt_mesh.texi b/doc/texinfo/opt_mesh.texi
index 80a962f4b1..4bd5718b3b 100644
--- a/doc/texinfo/opt_mesh.texi
+++ b/doc/texinfo/opt_mesh.texi
@@ -204,6 +204,11 @@ Type of element label (0=element number, 1=elementary entity number, 2=physical
 Default value: @code{0}@*
 Saved in: @code{General.OptionsFileName}
 
+@item Mesh.LcIntegrationPrecision
+Accuracy of evaluation of the LC field for 1D mesh generation@*
+Default value: @code{1e-09}@*
+Saved in: @code{General.OptionsFileName}
+
 @item Mesh.Light
 Enable lighting for the mesh@*
 Default value: @code{1}@*
@@ -449,11 +454,6 @@ Should second order vertices simply be created by linear interpolation?@*
 Default value: @code{0}@*
 Saved in: @code{General.OptionsFileName}
 
-@item Mesh.LcIntegrationPrecision
-Accuracy of evaluation of the LC field for 1D mesh generation@*
-Default value: @code{1e-09}@*
-Saved in: @code{General.OptionsFileName}
-
 @item Mesh.Smoothing
 Number of smoothing steps applied to the final mesh@*
 Default value: @code{1}@*
diff --git a/lib/Makefile b/lib/Makefile
index b83129c5f7..46958cd53c 100644
--- a/lib/Makefile
+++ b/lib/Makefile
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/utils/embed/GmshEmbedded.cpp b/utils/embed/GmshEmbedded.cpp
index 713085fda4..4b9d2c0297 100644
--- a/utils/embed/GmshEmbedded.cpp
+++ b/utils/embed/GmshEmbedded.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/utils/embed/Makefile b/utils/embed/Makefile
index ff7462c6fe..684b115c13 100644
--- a/utils/embed/Makefile
+++ b/utils/embed/Makefile
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/utils/misc/Info.plist b/utils/misc/Info.plist
index c7e001dcf1..6078eb2c18 100644
--- a/utils/misc/Info.plist
+++ b/utils/misc/Info.plist
@@ -9,7 +9,7 @@
     <key>CFBundleShortVersionString</key><string>GMSH_VERSION</string>
     <key>CFBundleIconFile</key><string>Gmsh.icns</string>
     <key>CFBundleSignature</key><string>GMSH</string>
-    <key>CFBundleGetInfoString</key><string>GMSH_VERSION, Copyright 1997-2008 C. Geuzaine and J.-F. Remacle</string>
+    <key>CFBundleGetInfoString</key><string>GMSH_VERSION, Copyright 1997-2009 C. Geuzaine and J.-F. Remacle</string>
     <key>CFBundleIdentifier</key><string>org.geuz.Gmsh</string>
     <key>CFBundleDocumentTypes</key>
     <array>
diff --git a/utils/misc/Makefile b/utils/misc/Makefile
index 14c0e6a98c..9ef69f49ff 100644
--- a/utils/misc/Makefile
+++ b/utils/misc/Makefile
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/utils/misc/mshsort.cpp b/utils/misc/mshsort.cpp
index 719737a314..f44802ab6a 100644
--- a/utils/misc/mshsort.cpp
+++ b/utils/misc/mshsort.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/utils/misc/replace.bash b/utils/misc/replace.bash
index 094705f8df..075c153d06 100644
--- a/utils/misc/replace.bash
+++ b/utils/misc/replace.bash
@@ -2,7 +2,7 @@
 
 for A in  $*
 do
-sed "s|1997-2007|1997-2008|g" $A > $A.XXX
+sed "s|1997-2008|1997-2009|g" $A > $A.XXX
 echo modif $A
 rm -f $A
 mv -f $A.XXX $A
@@ -10,5 +10,5 @@ done
 
 # Makefile */Makefile */*/Makefile *.in
 # */*.cpp */*/*.cpp */*.h */*.y */*.l 
-# doc/CREDITS doc/gmsh.html doc/texinfo/gmsh.texi
+# doc/CREDITS.txt doc/gmsh.html doc/texinfo/gmsh.texi
 # */*/*.plist
diff --git a/utils/nightly/Makefile b/utils/nightly/Makefile
index 5d2f129e93..1151e9b4ff 100644
--- a/utils/nightly/Makefile
+++ b/utils/nightly/Makefile
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/utils/solvers/c++/GmshSocket.h b/utils/solvers/c++/GmshSocket.h
index 5b13db0ee4..63dfe53417 100644
--- a/utils/solvers/c++/GmshSocket.h
+++ b/utils/solvers/c++/GmshSocket.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -282,7 +282,7 @@ class GmshServer : public GmshSocket{
   int _portno;
  public:
   GmshServer() : GmshSocket(), _portno(-1) {}
-  ~GmshServer(){}
+  virtual ~GmshServer(){}
   virtual int SystemCall(const char *str) = 0;
   virtual int NonBlockingWait(int socket, int num, double waitint) = 0;
   int StartClient(const char *command, const char *sockname=0, int maxdelay=4)
diff --git a/variables.in b/variables.in
index f445fb6461..8c0b2e079f 100644
--- a/variables.in
+++ b/variables.in
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
-- 
GitLab