xref: /aosp_15_r20/external/toybox/toys/example/demo_number.c (revision cf5a6c84e2b8763fc1a7db14496fd4742913b199)
1*cf5a6c84SAndroid Build Coastguard Worker /* demo_number.c - Expose atolx() and human_readable() for testing.
2*cf5a6c84SAndroid Build Coastguard Worker  *
3*cf5a6c84SAndroid Build Coastguard Worker  * Copyright 2015 Rob Landley <[email protected]>
4*cf5a6c84SAndroid Build Coastguard Worker 
5*cf5a6c84SAndroid Build Coastguard Worker USE_DEMO_NUMBER(NEWTOY(demo_number, "D#=3<3M#<0hcdbs", TOYFLAG_BIN))
6*cf5a6c84SAndroid Build Coastguard Worker 
7*cf5a6c84SAndroid Build Coastguard Worker config DEMO_NUMBER
8*cf5a6c84SAndroid Build Coastguard Worker   bool "demo_number"
9*cf5a6c84SAndroid Build Coastguard Worker   default n
10*cf5a6c84SAndroid Build Coastguard Worker   help
11*cf5a6c84SAndroid Build Coastguard Worker     usage: demo_number [-hsbi] [-D LEN] NUMBER...
12*cf5a6c84SAndroid Build Coastguard Worker 
13*cf5a6c84SAndroid Build Coastguard Worker     -D	output field is LEN chars
14*cf5a6c84SAndroid Build Coastguard Worker     -M	input units (index into bkmgtpe)
15*cf5a6c84SAndroid Build Coastguard Worker     -c	Comma comma down do be do down down
16*cf5a6c84SAndroid Build Coastguard Worker     -b	Use "B" for single byte units (HR_B)
17*cf5a6c84SAndroid Build Coastguard Worker     -d	Decimal units
18*cf5a6c84SAndroid Build Coastguard Worker     -h	Human readable
19*cf5a6c84SAndroid Build Coastguard Worker     -s	Space between number and units (HR_SPACE)
20*cf5a6c84SAndroid Build Coastguard Worker */
21*cf5a6c84SAndroid Build Coastguard Worker 
22*cf5a6c84SAndroid Build Coastguard Worker #define FOR_demo_number
23*cf5a6c84SAndroid Build Coastguard Worker #include "toys.h"
24*cf5a6c84SAndroid Build Coastguard Worker 
GLOBALS(long M,D;)25*cf5a6c84SAndroid Build Coastguard Worker GLOBALS(
26*cf5a6c84SAndroid Build Coastguard Worker   long M, D;
27*cf5a6c84SAndroid Build Coastguard Worker )
28*cf5a6c84SAndroid Build Coastguard Worker 
29*cf5a6c84SAndroid Build Coastguard Worker void demo_number_main(void)
30*cf5a6c84SAndroid Build Coastguard Worker {
31*cf5a6c84SAndroid Build Coastguard Worker   char **arg;
32*cf5a6c84SAndroid Build Coastguard Worker 
33*cf5a6c84SAndroid Build Coastguard Worker   for (arg = toys.optargs; *arg; arg++) {
34*cf5a6c84SAndroid Build Coastguard Worker     long long ll = atolx(*arg);
35*cf5a6c84SAndroid Build Coastguard Worker 
36*cf5a6c84SAndroid Build Coastguard Worker     if (toys.optflags) {
37*cf5a6c84SAndroid Build Coastguard Worker       human_readable_long(toybuf, ll, TT.D, TT.M, toys.optflags);
38*cf5a6c84SAndroid Build Coastguard Worker       xputs(toybuf);
39*cf5a6c84SAndroid Build Coastguard Worker     } else printf("%lld\n", ll);
40*cf5a6c84SAndroid Build Coastguard Worker   }
41*cf5a6c84SAndroid Build Coastguard Worker }
42