]> SALOME platform Git repositories - modules/shaper.git/commitdiff
Salome HOME
Spell-checking
authorSergey POKHODENKO <sergey.pokhodenko@opencascade.com>
Thu, 14 May 2015 11:17:32 +0000 (14:17 +0300)
committerspo <sergey.pokhodenko@opencascade.com>
Mon, 1 Jun 2015 06:16:27 +0000 (09:16 +0300)
20 files changed:
src/Config/Config_FeatureReader.h
src/ExchangePlugin/ExchangePlugin_ImportFeature.cpp
src/Model/Model_AttributeSelection.cpp
src/Model/Model_Document.h
src/Model/Model_Objects.h
src/Model/Model_Update.cpp
src/ModelAPI/ModelAPI_AttributeSelection.h
src/ModelAPI/ModelAPI_AttributeSelectionList.h
src/ModelAPI/ModelAPI_Data.h
src/ModelAPI/ModelAPI_Object.h
src/ModelAPI/ModelAPI_Result.h
src/ModelAPI/ModelAPI_ResultBody.h
src/ModelAPI/ModelAPI_Session.h
src/ModuleBase/ModuleBase_IWorkshop.h
src/ModuleBase/ModuleBase_ModelWidget.h
src/ModuleBase/ModuleBase_WidgetFileSelector.h
src/ModuleBase/ModuleBase_WidgetMultiSelector.cpp
src/ModuleBase/ModuleBase_WidgetMultiSelector.h
src/ModuleBase/ModuleBase_WidgetSwitch.h
src/PartSet/PartSet_WidgetEditor.h

index a0952ec1b69afacf95a44f43140848447b084bef..8a976a59abc080014be38fbb3267f1b7a17e6377 100644 (file)
@@ -39,14 +39,14 @@ class Config_FeatureReader : public Config_XMLReader
   /// Overloaded method. Defines how to process each node
   virtual void processNode(xmlNodePtr aNode);
 
-  /// Overloaded method. Clears attribute cache on extit from attribute's node
+  /// Overloaded method. Clears attribute cache on exit from attribute's node
   virtual void cleanup(xmlNodePtr aNode);
 
   /// Overloaded method. Defines if the given node should be parsed recursively
   virtual bool processChildren(xmlNodePtr aNode);
 
   /// Fills feature message
-  void fillFeature(xmlNodePtr theRoot, 
+  void fillFeature(xmlNodePtr theRoot,
                    const std::shared_ptr<Config_FeatureMessage>& outFeatureMessage);
 
  private:
index 4644e3a45cea4d4dd2b7d8c5a985308b400a34f0..364f574659532f82c04ad27f5be7280c04b2c25e 100644 (file)
@@ -95,11 +95,11 @@ bool ExchangePlugin_ImportFeature::importFile(const std::string& theFileName)
   }
    // Check if shape is valid
   if ( aShape.IsNull() ) {
-     const static std::string aShapeError =
-       "An error occurred while importing " + theFileName + ": " + anError.ToCString();
-     setError(aShapeError);
-     return false;
-   }
+    const static std::string aShapeError =
+      "An error occurred while importing " + theFileName + ": " + anError.ToCString();
+    setError(aShapeError);
+    return false;
+  }
 
   // Pass the results into the model
   std::string anObjectName = aPath.Name().ToCString();
index 4818b3a5794277107285a80bdf3c3664d3845125..8356ed7e0f025485f504874059c0d8c95144c83c 100644 (file)
@@ -854,7 +854,7 @@ std::string Model_AttributeSelection::namingName(const std::string& theDefaultNa
       }
       break;
     }
-    // register name                   
+    // register name
     // aDoc->addNamingName(selectionLabel(), aName);
     // the selected sub-shape will not be shared and as result it will not require registration
   }
@@ -897,7 +897,7 @@ const TopoDS_Shape getShapeFromNS(
   const std::string& theSubShapeName, Handle(TNaming_NamedShape) theNS)
 {
   TopoDS_Shape aSelection;
-  std::string::size_type n = theSubShapeName.rfind('/');                       
+  std::string::size_type n = theSubShapeName.rfind('/');
   if (n == std::string::npos) n = 0;
   std::string aSubString = theSubShapeName.substr(n + 1);
   n = aSubString.rfind('_');
index 7969d17245c4cd08aa59da983961a659f73d09dc..41eac2c15c9b1da6c39de1be7ccbb3978fefb40f 100644 (file)
@@ -106,7 +106,7 @@ class Model_Document : public ModelAPI_Document
   //! Internal sub-document by ID
   MODEL_EXPORT virtual std::shared_ptr<Model_Document> subDoc(std::string theDocID);
 
-  ///! Returns the id of hte document
+  ///! Returns the id of the document
   MODEL_EXPORT virtual const std::string& id() const
   {
     return myID;
index ef1d403b64cdc18275bc0bb93e001d65d61e8a24..61bc125a68112afcd062d78432ae08c725e1eff0 100644 (file)
@@ -86,7 +86,7 @@ class Model_Objects
   ///! Returns all (and disabled) results of the given type. Not fast method (iterates all features).
   void allResults(const std::string& theGroupID, std::list<ResultPtr>& theResults);
 
-  /// Creates a construction cresults
+  /// Creates a construction results
   std::shared_ptr<ModelAPI_ResultConstruction> createConstruction(
       const std::shared_ptr<ModelAPI_Data>& theFeatureData, const int theIndex = 0);
   /// Creates a body results
index d3cc6c9c166782b76a9148ccd46bfdf7cbab6740..e937f38ef48de360a731647ef8e88d2b398b64a7 100644 (file)
@@ -98,14 +98,14 @@ void Model_Update::processEvent(const std::shared_ptr<Events_Message>& theMessag
         myIsParamUpdated = true;
       }
       // created objects are always must be up to date (python box feature)
-      // and updated not in internal uptation chain
+      // and updated not in internal updating chain
       if (theMessage->eventID() == kCreatedEvent) {
         myJustCreated.insert(*anObjIter);
       } else if (myJustCreated.find(*anObjIter) == myJustCreated.end()) { // moved and updated
         myJustUpdated.insert(*anObjIter);
       }
     }
-     // this event is for solver update, not here, do not react immideately
+     // this event is for solver update, not here, do not react immediately
     if (!isOnlyResults && !(theMessage->eventID() == kMovedEvent))
       processOperation(false);
   } else if (theMessage->eventID() == kOpStartEvent) {
index 71c850e59830047483ded064f64885f76fd9bcd9..6b5af818ce8ca83af806c134c0b236660f0cea40 100644 (file)
@@ -22,7 +22,7 @@ class ModelAPI_AttributeSelection : public ModelAPI_Attribute
   virtual void setValue(
     const ResultPtr& theContext, const std::shared_ptr<GeomAPI_Shape>& theSubShape) = 0;
 
-  /// Returns the selected subshape
+  /// Returns the selected sub-shape
   virtual std::shared_ptr<GeomAPI_Shape> value() = 0;
 
   /// Returns the context of the selection (the whole shape owner)
@@ -48,7 +48,6 @@ class ModelAPI_AttributeSelection : public ModelAPI_Attribute
   /// Returns an id of the selection
   virtual int Id() = 0;
 
-
   /// Selects sub-shape by the textual Name
   virtual void selectSubShape(const std::string& theType, const std::string& theSubShapeName) = 0;
 
index 170efc09add30ae8f178f5acd159e82701d8935c..7994c37a62930f135c5e5448053e153650805914 100644 (file)
@@ -27,7 +27,7 @@ class ModelAPI_AttributeSelectionList : public ModelAPI_Attribute
   /// The type of shape is taken from the current selection type
   virtual void append(std::string theNamingName) = 0;
 
-  /// Returns the number ofselection attributes in the list
+  /// Returns the number of selection attributes in the list
   virtual int size() = 0;
 
   /// The type of all elements selection
index e57aaec10a62c18ff9df8a474b44927b89ae5d28..417098a33d4f65201121aba2c25017ef876511e4 100644 (file)
@@ -141,7 +141,7 @@ class MODELAPI_EXPORT ModelAPI_Data
   virtual void referencesToObjects(
     std::list<std::pair<std::string, std::list<std::shared_ptr<ModelAPI_Object> > > >& theRefs) =0;
 
-  /// Copies all atributes content into theTarget data
+  /// Copies all attributes content into theTarget data
   virtual void copyTo(std::shared_ptr<ModelAPI_Data> theTarget) = 0;
 
   /// Returns the invalid data pointer (to avoid working with NULL shared ptrs in swig)
index 9d1d04c395f3cfb593370a51ee38a11cd12f2311..d489a955bf72530c13a49f521f2752f3a261c35a 100644 (file)
@@ -28,7 +28,7 @@ class ModelAPI_Object
 {
   std::shared_ptr<ModelAPI_Data> myData;  ///< manager of the data model of a feature
   std::shared_ptr<ModelAPI_Document> myDoc;  ///< document this object belongs to
- public:
+public:
   /// By default object is displayed in the object browser.
   MODELAPI_EXPORT virtual bool isInHistory();
 
index 9889e4884d9944dde366728da5b833c9d2ec6702..6a96d373bd0a6f7162d3fb490456b954a4400118 100644 (file)
@@ -55,9 +55,9 @@ class ModelAPI_Result : public ModelAPI_Object
   /// Returns the result is disabled or not.
   MODELAPI_EXPORT virtual bool isDisabled() const;
 
-  // Retuns the parameters of color definition in the resources config manager
+  // Returns the parameters of color definition in the resources config manager
   virtual void colorConfigInfo(std::string& theSection, std::string& theName,
-    std::string& theDefault) {}
+                               std::string& theDefault) {}
 
   /// Request for initialization of data model of the result: adding all attributes
   virtual void initAttributes() {};
index ff4ce6e19819729ac8efc67b8e1a83a5194c7ea9..edc4847b70e8dbbdf7a91b5dd626098f11387cfd 100644 (file)
@@ -41,11 +41,11 @@ public:
 
   /// Stores the generated shape (called by the execution method).
   virtual void storeGenerated(const std::shared_ptr<GeomAPI_Shape>& theFromShape,
-                                 const std::shared_ptr<GeomAPI_Shape>& theToShape) = 0;
+                              const std::shared_ptr<GeomAPI_Shape>& theToShape) = 0;
 
   /// Stores the modified shape (called by the execution method).
   virtual void storeModified(const std::shared_ptr<GeomAPI_Shape>& theOldShape,
-                                 const std::shared_ptr<GeomAPI_Shape>& theNewShape) = 0;
+                             const std::shared_ptr<GeomAPI_Shape>& theNewShape) = 0;
 
   /// Records the subshape newShape which was generated during a topological construction.
   /// As an example, consider the case of a face generated in construction of a box.
@@ -67,32 +67,30 @@ public:
   /// As an example, consider the case of a face removed by a Boolean operation.
   virtual void deleted(
     const std::shared_ptr<GeomAPI_Shape>& theOldShape, const int theTag = 1) = 0;
-  
+
   /// load deleted shapes
   virtual void loadDeletedShapes (GeomAlgoAPI_MakeShape* theMS,
-                                               std::shared_ptr<GeomAPI_Shape>  theShapeIn,
-                                               const int  theKindOfShape,
-                                               const int  theTag) = 0;
+                                  std::shared_ptr<GeomAPI_Shape>  theShapeIn,
+                                  const int  theKindOfShape,
+                                  const int  theTag) = 0;
   /// load and orient modified shapes
-  virtual void loadAndOrientModifiedShapes (
-                                                  GeomAlgoAPI_MakeShape* theMS,
-                                               std::shared_ptr<GeomAPI_Shape>  theShapeIn,
-                                               const int  theKindOfShape,
-                                               const int  theTag,
-                                                                                          const std::string& theName,
-                                               GeomAPI_DataMapOfShapeShape& theSubShapes) = 0;
+  virtual void loadAndOrientModifiedShapes (GeomAlgoAPI_MakeShape* theMS,
+                                            std::shared_ptr<GeomAPI_Shape>  theShapeIn,
+                                            const int  theKindOfShape,
+                                            const int  theTag,
+                                            const std::string& theName,
+                                            GeomAPI_DataMapOfShapeShape& theSubShapes) = 0;
   /// load and orient generated shapes
-  virtual void loadAndOrientGeneratedShapes (
-                                                  GeomAlgoAPI_MakeShape* theMS,
-                                               std::shared_ptr<GeomAPI_Shape>  theShapeIn,
-                                               const int  theKindOfShape,
-                                               const int  theTag,
-                                                                                          const std::string& theName,
-                                               GeomAPI_DataMapOfShapeShape& theSubShapes) = 0;
+  virtual void loadAndOrientGeneratedShapes (GeomAlgoAPI_MakeShape* theMS,
+                                             std::shared_ptr<GeomAPI_Shape>  theShapeIn,
+                                             const int  theKindOfShape,
+                                             const int  theTag,
+                                             const std::string& theName,
+                                             GeomAPI_DataMapOfShapeShape& theSubShapes) = 0;
 
   /// load shapes of the first level (to be used during shape import)
   virtual void loadFirstLevel(std::shared_ptr<GeomAPI_Shape> theShape, const std::string& theName, int&  theTag) = 0;
-  
+
   /// load disconnected edges
   virtual void loadDisconnectedEdges(std::shared_ptr<GeomAPI_Shape> theShape, const std::string& theName, int&  theTag) = 0;
 
index 47f6071810e4980069cec0671d47fde61f3e3bf1..d355addae859abed00da054e5f0655c2b2dc8e37 100644 (file)
@@ -44,7 +44,7 @@ class MODELAPI_EXPORT ModelAPI_Session
   //! Closes all documents
   virtual void closeAll() = 0;
 
-  //! Starts a new operation (opens a tansaction)
+  //! Starts a new operation (opens a transaction)
   //! \param theId of operation for history (optional)
   virtual void startOperation(const std::string& theId = "") = 0;
   //! Finishes the previously started operation (closes the transaction)
@@ -98,7 +98,7 @@ class MODELAPI_EXPORT ModelAPI_Session
 
   /// Copies the document to the new one with the given id
   virtual std::shared_ptr<ModelAPI_Document> copy(std::shared_ptr<ModelAPI_Document> theSource,
-                                                    std::string theID) = 0;
+                                                  std::string theID) = 0;
 
   /// Returns the validators factory: the only one instance per application
   virtual ModelAPI_ValidatorsFactory* validators() = 0;
index 229b6e2e3c55aac56022606073eac7c327deb6d1..48bc23a15142e769deb446cfd380075d1b82f069 100644 (file)
@@ -26,7 +26,7 @@ class ModuleBase_FilterFactory;
 
 /**
  * \ingroup GUI
- * Class which provides access to Workshop object serveces
+ * Class which provides access to Workshop object services
  */
 class MODULEBASE_EXPORT ModuleBase_IWorkshop : public QObject
 {
@@ -64,14 +64,14 @@ Q_OBJECT
 
   //! Returns the factory of selection filters : the only one instance per application
   ModuleBase_FilterFactory* selectionFilters() const;
-  
+
   //! Returns currently active operation
   virtual ModuleBase_Operation* currentOperation() const = 0;
 
   //! Returns true if the operation with id theId can be started
   virtual bool canStartOperation(QString theId) = 0;
 
-  //! Returns AIS opbject by data object
+  //! Returns AIS object by data object
   virtual AISObjectPtr findPresentation(const ObjectPtr& theObject) const = 0;
 
   //! Returns data object by AIS
@@ -82,7 +82,7 @@ Q_OBJECT
   virtual void setSelected(const QList<ModuleBase_ViewerPrs>& theValues) = 0;
 
 signals:
-  /// Signal selection chaged.
+  /// Signal selection changed.
   void selectionChanged();
 
   /// Signal which is emited after activation of property panel
index 615fdb152a3bb2432bc665072668da6b6b97c346..6ba89d2cc1624e5ddff1a813b92db2ed25ef873d 100644 (file)
@@ -34,7 +34,7 @@ Q_OBJECT
  public:
   /// Constructor
   /// \param theParent the parent object
-  /// \param theData the widget configuation. The attribute of the model widget is obtained from
+  /// \param theData the widget configuration. The attribute of the model widget is obtained from
   /// \param theParentId is Id of a parent of the current attribute
   ModuleBase_ModelWidget(QWidget* theParent, const Config_WidgetAPI* theData,
                          const std::string& theParentId);
@@ -95,10 +95,10 @@ Q_OBJECT
   /// \return the state whether the widget can accept the focus
   virtual bool focusTo();
 
-  /// The methiod called when widget is activated
+  /// The method called when widget is activated
   void activate();
 
-  /// The methiod called when widget is deactivated
+  /// The method called when widget is deactivated
   virtual void deactivate() {}
 
   /// Returns list of widget controls
@@ -166,7 +166,7 @@ signals:
   void focusOutWidget(ModuleBase_ModelWidget* theWidget);
 
  protected:
-  /// Sets default value of widget. Nornaly, widget should fetch this value 
+  /// Sets default value of widget. Normally, widget should fetch this value
   /// from the xml. However, some widgets derived widgets could define it
   void setDefaultValue(const std::string& theValue);
   /// \brief Set the attribute name
@@ -184,7 +184,7 @@ signals:
   /// \return True in success
   virtual bool storeValueCustom() const = 0;
 
-  /// The methiod called when widget is activated
+  /// The method called when widget is activated
   virtual void activateCustom() {};
 
   /// Sends Update and Redisplay for the given object
@@ -202,16 +202,16 @@ protected slots:
  protected:
 
   /// The attribute name of the model feature
-  std::string myAttributeID; 
+  std::string myAttributeID;
 
   /// Name of parent
-  std::string myParentId;    
+  std::string myParentId;
 
   /// A feature which is processing by active operation
-  FeaturePtr myFeature;      
+  FeaturePtr myFeature;
 
   /// Flag which shows that current operation is in editing mode
-  bool myIsEditing; 
+  bool myIsEditing;
 
   /// Flag which shows whether current widget is obligatory
   /// The non-obligatory widgets should not accept the focus in the property panel
@@ -219,8 +219,8 @@ protected slots:
 
 private:
   /// Value should be computed on execute, like radius for circle's constraint (can not be zero)
-  bool myIsComputedDefault; 
-                        
+  bool myIsComputedDefault;
+
   /// the default value, which is defined in the XML for this attribute    
   std::string myDefaultValue; 
 
index ae2d0daa761f50dd0babda225424567baef38f16..8b5987fa086a9e27c58fd559a7ba23754277d8ec 100644 (file)
@@ -33,6 +33,9 @@ class QLineEdit;
 *          <validator id="ExchangePlugin_ImportFormat" parameters="BREP:BREPImport,STEP:STEPImport" />
 *      </file_selector>
 *  \endcode
+* It can use following parameters:
+* - id - name of object attribute
+* - type - type of dialog. Possible values: open, save.
 */
 class MODULEBASE_EXPORT ModuleBase_WidgetFileSelector : public ModuleBase_ModelWidget
 {
@@ -40,7 +43,7 @@ class MODULEBASE_EXPORT ModuleBase_WidgetFileSelector : public ModuleBase_ModelW
  public:
   /// Constructor
   /// \param theParent the parent object
-  /// \param theData the widget configuation. The attribute of the model widget is obtained from
+  /// \param theData the widget configuration. The attribute of the model widget is obtained from
   /// \param theParentId is Id of a parent of the current attribute
   ModuleBase_WidgetFileSelector(QWidget* theParent,
                                 const Config_WidgetAPI* theData,
index 45b7a205369407e674ac229c9a2fcbc3e5a3667c..53754fab0bce6a8c931476fd65805b9d118a9fea 100644 (file)
@@ -50,7 +50,7 @@ ModuleBase_WidgetMultiSelector::ModuleBase_WidgetMultiSelector(QWidget* theParen
   aMainLay->addWidget(aTypeLabel, 0, 0);
 
   myTypeCombo = new QComboBox(this);
-  // There is no sence to paramerize list of types while we can not parametrize selection mode
+  // There is no sense to parameterize list of types while we can not parameterize selection mode
 
   myShapeValidator = new GeomValidators_ShapeType();
 
@@ -152,8 +152,8 @@ bool ModuleBase_WidgetMultiSelector::storeValueCustom() const
      TopAbs_ShapeEnum aCurrentType =
            ModuleBase_Tools::shapeType(myTypeCombo->currentText());
      aSelectionListAttr->setSelectionType(myTypeCombo->currentText().toStdString());
-  }   
-   return true;
+  }
+  return true;
 }
 
 //********************************************************************
@@ -392,7 +392,7 @@ void ModuleBase_WidgetMultiSelector::onSelectionChanged()
     }
   }
   emit valuesChanged();
-  // the updateObject method should be called to flush the updated sigal. The workshop listens it,
+  // the updateObject method should be called to flush the updated signal. The workshop listens it,
   // calls validators for the feature and, as a result, updates the Apply button state.
   updateObject(myFeature);
 
@@ -406,7 +406,7 @@ void ModuleBase_WidgetMultiSelector::onSelectionChanged()
 void ModuleBase_WidgetMultiSelector::setCurrentShapeType(const TopAbs_ShapeEnum theShapeType)
 {
   QString aShapeTypeName;
-  
+
   for (int idx = 0; idx < myTypeCombo->count(); ++idx) {
     aShapeTypeName = myTypeCombo->itemText(idx);
     TopAbs_ShapeEnum aRefType = ModuleBase_Tools::shapeType(aShapeTypeName);
index 42ca970a5214d7d473341a26a5c53193170b26ab..0aee5884971a6b63039f7a698d52df73f29dbc7d 100644 (file)
@@ -43,7 +43,7 @@ class QAction;
 *    tooltip="Select a set of objects" 
 *    type_choice="Vertices Edges Faces Solids" /> 
 * \endcode
-* It uses folloing parameters:
+* It uses following parameters:
 * - id - is a name of corresponded attribute
 * - tooltip - a tooltip for the widget
 * - type_choice - list of expected shape types.
@@ -55,7 +55,7 @@ class MODULEBASE_EXPORT ModuleBase_WidgetMultiSelector : public ModuleBase_Widge
   /// Constructor
   /// \param theParent the parent object
   /// \param theWorkshop instance of workshop interface
-  /// \param theData the widget configuation. The attribute of the model widget is obtained from
+  /// \param theData the widget configuration. The attribute of the model widget is obtained from
   /// \param theParentId is Id of a parent of the current attribute
   ModuleBase_WidgetMultiSelector(QWidget* theParent,
                                  ModuleBase_IWorkshop* theWorkshop,
@@ -74,7 +74,7 @@ class MODULEBASE_EXPORT ModuleBase_WidgetMultiSelector : public ModuleBase_Widge
 
   virtual bool eventFilter(QObject* , QEvent* );
 
-  /// The methiod called when widget is deactivated
+  /// The method called when widget is deactivated
   virtual void deactivate();
 
   /// Set the given wrapped value to the current widget
@@ -102,7 +102,7 @@ protected slots:
   void onListSelection();
 
  protected:
-  /// The methiod called when widget is activated
+  /// The method called when widget is activated
   virtual void activateCustom();
 
   /// Saves the internal parameters to the given feature
index 5772a3d0878dd2b03be3bf56c77cc83df163b4c8..ff422b9b0fffc99bdcef018b0b1cc262cdedc2a5 100644 (file)
@@ -18,7 +18,7 @@ class QStackedLayout;
 
 /**
 * \ingroup GUI
-* Implements a model widget for swithch as a container widget. It can be defined in XML with "switch" keyword
+* Implements a model widget for switch as a container widget. It can be defined in XML with "switch" keyword
 */
 class MODULEBASE_EXPORT ModuleBase_WidgetSwitch : public ModuleBase_PagedContainer
 {
index a4f611146f83e9940b3b481c6359ba4499fd5954..3536ebfafb61317443e4e6db262872bcdb95dd5c 100644 (file)
@@ -16,7 +16,7 @@ class ModuleBase_IWorkshop;
 
 /**
 * \ingroup Modules
-* Customosation of ModuleBase_WidgetEditor in order to do not show the editor value if the mouse
+* Customization of ModuleBase_WidgetEditor in order to do not show the editor value if the mouse
 * cursor is not over the OCC window
 */
 class PARTSET_EXPORT PartSet_WidgetEditor : public ModuleBase_WidgetEditor
@@ -26,7 +26,7 @@ Q_OBJECT
   /// Constructor
   /// \param theParent the parent object
   /// \param theWorkshop instance of workshop interface
-  /// \param theData the widget configuation. The attribute of the model widget is obtained from
+  /// \param theData the widget configuration. The attribute of the model widget is obtained from
   /// \param theParentId is Id of a parent of the current attribute
   PartSet_WidgetEditor(QWidget* theParent, ModuleBase_IWorkshop* theWorkshop,
                        const Config_WidgetAPI* theData, const std::string& theParentId);
@@ -42,4 +42,4 @@ private:
   ModuleBase_IWorkshop* myWorkshop; // the current workshop
 };
 
-#endif
\ No newline at end of file
+#endif