#ifndef FILENAME_H
#define FILENAME_H

#include <string> 

class FileName: public std::string {
public:
    FileName (void) {}
    FileName (const std::string& s): std::string(s) {}
    FileName (const char* s):        std::string(s) {}
    FileName& operator=(const std::string& s) { (std::string&)(*this) = s; return *this; }
    FileName& operator=(const char* s)        { (std::string&)(*this) = s; return *this; }

    FileName bare (void) const;
    FileName base (void) const;
    FileName suffix (void) const;
    FileName minussuffix (void) const;
    void ensureSeparator (void);
};
#endif
