replace atoi with my own impl to make sure that no errors occour
This commit is contained in:
parent
6025b2d832
commit
09362e2c7c
2 changed files with 45 additions and 2 deletions
11
XD.1
11
XD.1
|
|
@ -13,6 +13,10 @@
|
|||
.Nm
|
||||
Displays information using a smiley face like so: :)
|
||||
to interpret it refer to the following tables:
|
||||
Displays information using a smiley face.
|
||||
to interpret XD's output refer to the following tables (or
|
||||
.Nm
|
||||
\fB-e\fR):
|
||||
.Ss Eyes
|
||||
.TS
|
||||
tab(;) allbox;
|
||||
|
|
@ -42,6 +46,13 @@ c;l.
|
|||
/;command not found
|
||||
(;previous signal is failure
|
||||
.TE
|
||||
.Ss Exit Status:
|
||||
.Nm
|
||||
returns the number that was passed in to allow the user to re-run the program
|
||||
and get the same results. If there's an internal error
|
||||
.Nm
|
||||
returns 1. If you wish to find out more infomation about the error enable ERR
|
||||
in the config.mk.
|
||||
.Sh OPTIONS
|
||||
.Ss -v
|
||||
Print version information to stdout and exit.
|
||||
|
|
|
|||
36
XD.c
36
XD.c
|
|
@ -230,6 +230,34 @@ has_staged(git_repository *repo)
|
|||
}
|
||||
#endif
|
||||
|
||||
inline unsigned
|
||||
numcat(unsigned x, unsigned y)
|
||||
{
|
||||
unsigned pow = 10;
|
||||
while(y >= pow) {
|
||||
pow *= 10;
|
||||
}
|
||||
|
||||
return (x * pow) + y;
|
||||
}
|
||||
|
||||
int
|
||||
str_to_int(char *str)
|
||||
{
|
||||
int res = -1;
|
||||
char *c;
|
||||
|
||||
for (c = str; (*c != '\0') && isdigit(*c); c++) {
|
||||
if (res == -1) {
|
||||
res = *c - '0';
|
||||
} else {
|
||||
res = numcat(res, *c - '0');
|
||||
}
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
int
|
||||
main(int argc, char *argv[])
|
||||
{
|
||||
|
|
@ -282,8 +310,12 @@ main(int argc, char *argv[])
|
|||
}
|
||||
|
||||
/* get exit code from user args */
|
||||
if (argv[1]) {
|
||||
code = atoi(argv[1]);
|
||||
if (argc > 1 && argv[argc - 1]) {
|
||||
code = str_to_int(argv[argc - 1]);
|
||||
if (code < 0) {
|
||||
L("Return code, %d, not valid", code);
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
/* change mouth based on exit code */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue