projects
/
unix-history
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
tags
|
clone url
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
make game saving and restoring rational
[unix-history]
/
usr
/
src
/
games
/
backgammon
/
common_source
/
subs.c
diff --git
a/usr/src/games/backgammon/common_source/subs.c
b/usr/src/games/backgammon/common_source/subs.c
index
d077902
..
e014c5b
100644
(file)
--- a/
usr/src/games/backgammon/common_source/subs.c
+++ b/
usr/src/games/backgammon/common_source/subs.c
@@
-1,4
+1,4
@@
-static char sccsid[] = " subs.c 4.
1 82/05/11
";
+static char sccsid[] = " subs.c 4.
2 82/11/27
";
#include <stdio.h>
#include "back.h"
#include <stdio.h>
#include "back.h"
@@
-265,30
+265,21
@@
getarg (arg)
register char ***arg;
{
register char ***arg;
{
- register char *s;
+ register char *
*
s;
/* process arguments here. dashes are ignored, nbrw are ignored
if the game is being recovered */
/* process arguments here. dashes are ignored, nbrw are ignored
if the game is being recovered */
- s = **arg;
- if (*s == '-' && s[1] == '\0') {
- tflag = 0;
- text (descr);
- getout ();
- }
- for (; *s != '\0'; s++) {
- switch (*s) {
-
- /* ignore dashes */
- case '-':
- break;
+ s = *arg;
+ while (s[0][0] == '-') {
+ switch (s[0][1]) {
/* don't ask if rules or instructions needed */
case 'n':
if (rflag)
break;
aflag = 0;
/* don't ask if rules or instructions needed */
case 'n':
if (rflag)
break;
aflag = 0;
- args[acnt++] =
*s
;
+ args[acnt++] =
'n'
;
break;
/* player is both read and white */
break;
/* player is both read and white */
@@
-297,7
+288,7
@@
register char ***arg;
break;
pnum = 0;
aflag = 0;
break;
pnum = 0;
aflag = 0;
- args[acnt++] =
*s
;
+ args[acnt++] =
'b'
;
break;
/* player is red */
break;
/* player is red */
@@
-306,7
+297,7
@@
register char ***arg;
break;
pnum = -1;
aflag = 0;
break;
pnum = -1;
aflag = 0;
- args[acnt++] =
*s
;
+ args[acnt++] =
'r'
;
break;
/* player is white */
break;
/* player is white */
@@
-315,39
+306,41
@@
register char ***arg;
break;
pnum = 1;
aflag = 0;
break;
pnum = 1;
aflag = 0;
- args[acnt++] =
*s
;
+ args[acnt++] =
'w'
;
break;
/* print board after move according to following character */
case 'p':
break;
/* print board after move according to following character */
case 'p':
- s++;
- if (*s != 'r' && *s != 'w' && *s != 'b')
+ if (s[0][2] != 'r' && s[0][2] != 'w' && s[0][2] != 'b')
break;
args[acnt++] = 'p';
break;
args[acnt++] = 'p';
- args[acnt++] =
*s
;
- if (
*s
== 'r')
+ args[acnt++] =
s[0][2]
;
+ if (
s[0][2]
== 'r')
bflag = 1;
bflag = 1;
- if (
*s
== 'w')
+ if (
s[0][2]
== 'w')
bflag = -1;
bflag = -1;
- if (
*s
== 'b')
+ if (
s[0][2]
== 'b')
bflag = 0;
break;
case 't':
bflag = 0;
break;
case 't':
- if (*++s == '\0') /* get terminal caps */
- tflag = getcaps (*(++*arg));
- else
- tflag = getcaps (s);
- return;
+ if (s[0][2] == '\0') { /* get terminal caps */
+ s++;
+ tflag = getcaps (*s);
+ } else
+ tflag = getcaps (&s[0][2]);
+ break;
case 's':
case 's':
- if (*++s == '\0') /* recover file */
- recover (*(++*arg));
- else
- recover (s);
- return;
+ s++;
+ /* recover file */
+ recover (s[0]);
+ break;
}
}
+ s++;
}
}
+ if (s[0] != 0)
+ recover(s[0]);
}
init () {
}
init () {