diff options
author | Stijn Buys <ingar@osirion.org> | 2008-05-12 13:08:45 +0000 |
---|---|---|
committer | Stijn Buys <ingar@osirion.org> | 2008-05-12 13:08:45 +0000 |
commit | e4f2faa8d5895ba30207c09c7886afb21a697d5f (patch) | |
tree | 90751a70d480781c25274e70c4804f37acf72ee2 /src/auxiliary/functions.cc | |
parent | 24c695e83947d3457dbd1f5d696fa09b4ef953c0 (diff) |
aux::plural, aux::article
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; +} + +} |