aboutsummaryrefslogtreecommitdiffstats
path: root/spo256/word.c
diff options
context:
space:
mode:
Diffstat (limited to 'spo256/word.c')
-rw-r--r--spo256/word.c38
1 files changed, 38 insertions, 0 deletions
diff --git a/spo256/word.c b/spo256/word.c
new file mode 100644
index 0000000..2150837
--- /dev/null
+++ b/spo256/word.c
@@ -0,0 +1,38 @@
+/*
+
+ Word base pronounciation rules and special cases.
+*/
+
+#include <ctype.h>
+#include <std/types.h>
+#include <std/string.h>
+#include <std/config.h>
+#include "speak.h"
+
+void word(char *str)
+{
+ char *p;
+
+ /* Internet x@y as "x at y" */
+
+ if(NULL != (p = strchr(str, '@')))
+ {
+ *(p++) = 0;
+ word(str);
+ word("at");
+ word(p);
+ return;
+ }
+
+ /* Check for x.y.z as "x dot y dot z" */
+
+ while(NULL != (p = strchr(str, '.')))
+ {
+ *(p++) = 0;
+ spo_word(str);
+ spo_word("dot");
+ str = p;
+ }
+
+ spo_word(str);
+}