Fix C343-108 (e- leaves prompt on screen)

You'll get "You mime eating something."
This commit is contained in:
Pasi Kallinen
2015-03-20 19:25:19 +02:00
parent f2dc48086f
commit 2ec4ff0b8c
3 changed files with 43 additions and 1 deletions

View File

@@ -235,6 +235,39 @@ s_suffix(s) /* return a name converted to possessive */
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;