diff --git a/src/OpenMesh/Core/IO/reader/BaseReader.cc b/src/OpenMesh/Core/IO/reader/BaseReader.cc index 489498bf..b7f30f84 100644 --- a/src/OpenMesh/Core/IO/reader/BaseReader.cc +++ b/src/OpenMesh/Core/IO/reader/BaseReader.cc @@ -90,12 +90,12 @@ can_u_read(const std::string& _filename) const std::string::size_type pos(_filename.rfind(".")); if (pos != std::string::npos) - { extension = _filename.substr(pos+1, _filename.length()-pos-1); + else + extension = _filename; //check, if the whole filename defines the extension - std::transform( extension.begin(), extension.end(), - extension.begin(), tolower ); - } + std::transform( extension.begin(), extension.end(), + extension.begin(), tolower ); // locate extension in extension string return (get_extensions().find(extension) != std::string::npos); diff --git a/src/OpenMesh/Core/IO/reader/BaseReader.hh b/src/OpenMesh/Core/IO/reader/BaseReader.hh index f2174f5b..987ca8a8 100644 --- a/src/OpenMesh/Core/IO/reader/BaseReader.hh +++ b/src/OpenMesh/Core/IO/reader/BaseReader.hh @@ -131,7 +131,11 @@ public: Options& _opt) = 0; - /// Returns true if reader can parse _filename (checks extension) + /** \brief Returns true if writer can parse _filename (checks extension). + * _filename can also provide an extension without a name for a file e.g. _filename == "om" checks, if the reader can read the "om" extension + * @param _filename complete name of a file or just the extension + * @result true, if reader can read data with the given extension + */ virtual bool can_u_read(const std::string& _filename) const; diff --git a/src/OpenMesh/Core/IO/writer/BaseWriter.cc b/src/OpenMesh/Core/IO/writer/BaseWriter.cc index ecfcc79b..9eebb102 100644 --- a/src/OpenMesh/Core/IO/writer/BaseWriter.cc +++ b/src/OpenMesh/Core/IO/writer/BaseWriter.cc @@ -93,12 +93,12 @@ can_u_write(const std::string& _filename) const std::string::size_type pos(_filename.rfind(".")); if (pos != std::string::npos) - { extension = _filename.substr(pos+1, _filename.length()-pos-1); + else + extension = _filename; //check, if the whole filename defines the extension - std::transform( extension.begin(), extension.end(), - extension.begin(), tolower ); - } + std::transform( extension.begin(), extension.end(), + extension.begin(), tolower ); // locate extension in extension string return (get_extensions().find(extension) != std::string::npos); diff --git a/src/OpenMesh/Core/IO/writer/BaseWriter.hh b/src/OpenMesh/Core/IO/writer/BaseWriter.hh index ed4912c3..7980cc10 100644 --- a/src/OpenMesh/Core/IO/writer/BaseWriter.hh +++ b/src/OpenMesh/Core/IO/writer/BaseWriter.hh @@ -100,7 +100,11 @@ public: /// Return file format's extension. virtual std::string get_extensions() const = 0; - /// Returns true if writer can parse _filename (checks extension) + /** \brief Returns true if writer can write _filename (checks extension). + * _filename can also provide an extension without a name for a file e.g. _filename == "om" checks, if the writer can write the "om" extension + * @param _filename complete name of a file or just the extension + * @result true, if writer can write data with the given extension + */ virtual bool can_u_write(const std::string& _filename) const; /** Write to a file