diff options
| author | mycroft <mycroft@NetBSD.org> | 1993-04-20 21:27:31 +0000 |
|---|---|---|
| committer | mycroft <mycroft@NetBSD.org> | 1993-04-20 21:27:31 +0000 |
| commit | 047e0042c3e07b481ff9b428cd0deff15ea29e56 (patch) | |
| tree | d89348dda36ca3b45c2ec5b8cbde4a106f12df2a /games/hack/hack.u_init.c | |
| parent | 08621a22d8443472555dd8442cc3bb72e1ecfe99 (diff) | |
Don't modify string constants.
Diffstat (limited to 'games/hack/hack.u_init.c')
| -rw-r--r-- | games/hack/hack.u_init.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/games/hack/hack.u_init.c b/games/hack/hack.u_init.c index bc06fa5ecfd..4d664a614be 100644 --- a/games/hack/hack.u_init.c +++ b/games/hack/hack.u_init.c @@ -15,7 +15,7 @@ extern char plname[]; struct you zerou; char pl_character[PL_CSIZ]; char *(roles[]) = { /* must all have distinct first letter */ - /* roles[4] may be changed to -man */ + /* roles[4] may be changed to -woman */ "Tourist", "Speleologist", "Fighter", "Knight", "Cave-man", "Wizard" }; @@ -103,7 +103,7 @@ extern char readchar(); rolesyms[i] = 0; if(pc = pl_character[0]) { - if('a' <= pc && pc <= 'z') pc += 'A'-'a'; + if(islower(pc)) pc = toupper(pc); if((i = role_index(pc)) >= 0) goto got_suffix; /* implies experienced */ printf("\nUnknown role: %c\n", pc); @@ -136,7 +136,7 @@ extern char readchar(); printf("? [%s] ", rolesyms); while(pc = readchar()) { - if('a' <= pc && pc <= 'z') pc += 'A'-'a'; + if(islower(pc)) pc = toupper(pc); if((i = role_index(pc)) >= 0) { printf("%c\n", pc); /* echo */ (void) fflush(stdout); /* should be seen */ @@ -164,9 +164,13 @@ beginner: (void) putchar('\n'); (void) fflush(stdout); } +#if 0 + /* Given the above code, I can't see why this would ever change + anything; it does core pretty well, though. - cmh 4/20/93 */ if(exper) { roles[i][0] = pc; } +#endif got_suffix: |
