diff options
Diffstat (limited to 'src/auxiliary/functions.cc')
-rw-r--r-- | src/auxiliary/functions.cc | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/src/auxiliary/functions.cc b/src/auxiliary/functions.cc new file mode 100644 index 0000000..373a6f0 --- /dev/null +++ b/src/auxiliary/functions.cc @@ -0,0 +1,51 @@ +/* + aux/functions.cc + This file is part of the Osirion project and is distributed under + the terms of the GNU General Public License version 2 +*/ + +#include "auxiliary/functions.h" + +namespace aux +{ + +const std::string plural(const char * word, size_t n) +{ + std::string p(word); + + if (n != 1) + p += 's'; + return p; +} + +const std::string article(const char * word) +{ + std::string w(word); + + if (!w.size()) + return w; + + switch (word[0]) { + case 'a': + case 'A': + case 'e': + case 'E': + case 'i': + case 'I': + case 'o': + case 'O': + case 'u': + case 'U': + case 'y': + case 'Y': + w.assign("an "); + break; + default: + w.assign("a "); + } + + w.append(word); + return w; +} + +} |