E char FDECL(chrcasecpy, (int,int));
E char *FDECL(strcasecpy, (char *,const char *));
E char *FDECL(s_suffix, (const char *));
+E char *FDECL(ing_suffix, (const char *));
E char *FDECL(xcrypt, (const char *,char *));
E boolean FDECL(onlyspace, (const char *));
E char *FDECL(tabexpand, (char *));
return buf;
}
+char *
+ing_suffix(s)
+ const char *s;
+{
+ const char *vowel = "aeiouy";
+ static char buf[BUFSZ];
+ char onoff[10];
+ char *p;
+ Strcpy(buf, s);
+ p = eos(buf);
+ onoff[0] = *p = *(p+1) = '\0';
+ if ((strlen(buf) > 4) &&
+ (!strcmpi(p-3, " on") ||
+ !strcmpi(p-4, " off") ||
+ !strcmpi(p-5, " with"))) {
+ p = strrchr(buf, ' ');
+ Strcpy(onoff, p);
+ }
+ if (!index(vowel, *(p-1)) && index(vowel, *(p-2)) && !index(vowel, *(p-3))) {
+ /* tip -> tipp + ing */
+ *p = *(p-1);
+ *(p+1) = '\0';
+ } else if (!strcmpi(p-2, "ie")) { /* vie -> vy + ing */
+ *(p-2) = 'y';
+ *(p-1) = '\0';
+ } else if (*(p-1) == 'e') /* grease -> greas + ing */
+ *(p-1) = '\0';
+ Strcat(buf, "ing");
+ if (onoff[0]) Strcat(buf, onoff);
+ return buf;
+}
+
+
char *
xcrypt(str, buf) /* trivial text encryption routine (see makedefs) */
const char *str;
return((struct obj *)0);
}
if(ilet == '-') {
- return(allownone ? &zeroobj : (struct obj *) 0);
+ if (!allownone) {
+ strcpy(buf, word);
+ if ((bp = strstr(buf, " or ")) != NULL) {
+ *bp = '\0';
+ bp = (rn2(2) ? buf : (bp + 4));
+ } else bp = buf;
+ You("mime %s something.", ing_suffix(bp));
+ }
+ return(allownone ? &zeroobj : (struct obj *) 0);
}
if(ilet == def_oc_syms[COIN_CLASS].sym) {
if (!usegold) {