commit d0c23a9
chld
·
2026-07-13 16:54:39 +0000 UTC
parent 923b07f
add getopt
1 files changed,
+32,
-2
M
xl.c
M
xl.c
+32,
-2
1@@ -6,6 +6,8 @@
2 #include<stdlib.h>
3 #include<string.h>
4
5+#include<getopt.h>
6+
7 #include"rd.h"
8
9 /*
10@@ -19,6 +21,36 @@ int main(int ac, char **av)
11 {
12 int wi=80, hi=150, x=0, y=0;
13
14+ char path[128];
15+ snprintf(path, sizeof path, "%s/%s", getenv("HOME"), ".xlrc");
16+
17+ int opt;
18+ while((opt=getopt(ac, av, "c:g:"))!= -1){
19+ switch(opt){
20+ case 'c':
21+ snprintf(path, sizeof path, "%s", optarg);
22+ break;
23+ case 'g': {
24+ const char *p=strchr(optarg, 'x');
25+ if (!p){
26+ fprintf(stderr, "inavlid geom (default: 80x150)\n");
27+ return 1;
28+ }
29+
30+ wi=atoi(optarg);
31+ hi=atoi(p+1);
32+ break;
33+ }
34+ case ':':
35+ fprintf(stderr, "-%c needs a argument!\n", optopt); return 1;
36+ break;
37+ case '?':
38+ fprintf(stderr, "unknown flag: -%c\n", optopt); return 1;
39+ break;
40+ }
41+ }
42+
43+
44 Display *d=XOpenDisplay(NULL);
45 if(!d)
46 {
47@@ -69,8 +101,6 @@ int main(int ac, char **av)
48 int32_t lidx=0;
49
50 /* file reading */
51- char path[128];
52- snprintf(path, sizeof path, "%s/%s", getenv("HOME"), ".xlrc");
53 char *prg=fbuf(path);
54 if(!prg)
55 {