Skip to content

Commit 2ecbbe0

Browse files
committed
bin/xbps-install: initialize struct xbps_handle directly
1 parent cd047ed commit 2ecbbe0

File tree

1 file changed

+17
-29
lines changed

1 file changed

+17
-29
lines changed

bin/xbps-install/main.c

Lines changed: 17 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -122,59 +122,54 @@ main(int argc, char **argv)
122122
{ "staging", no_argument, NULL, 2 },
123123
{ NULL, 0, NULL, 0 }
124124
};
125-
struct xbps_handle xh;
125+
struct xbps_handle xh = {0};
126126
struct xferstat xfer;
127-
const char *rootdir, *cachedir, *confdir;
128-
int i, c, flags, rv, fflag = 0;
127+
int i, c, rv, fflag = 0;
129128
bool syncf, yes, force, drun, update;
130129
int maxcols, eexist = 0;
131130

132-
rootdir = cachedir = confdir = NULL;
133-
flags = rv = 0;
134131
syncf = yes = force = drun = update = false;
135132

136-
memset(&xh, 0, sizeof(xh));
137-
138133
while ((c = getopt_long(argc, argv, shortopts, longopts, NULL)) != -1) {
139134
switch (c) {
140135
case 1:
141-
flags |= XBPS_FLAG_INSTALL_REPRO;
136+
xh.flags |= XBPS_FLAG_INSTALL_REPRO;
142137
break;
143138
case 2:
144-
flags |= XBPS_FLAG_USE_STAGE;
139+
xh.flags |= XBPS_FLAG_USE_STAGE;
145140
break;
146141
case 'A':
147-
flags |= XBPS_FLAG_INSTALL_AUTO;
142+
xh.flags |= XBPS_FLAG_INSTALL_AUTO;
148143
break;
149144
case 'C':
150-
confdir = optarg;
145+
xbps_strlcpy(xh.confdir, optarg, sizeof(xh.confdir));
151146
break;
152147
case 'c':
153-
cachedir = optarg;
148+
xbps_strlcpy(xh.cachedir, optarg, sizeof(xh.cachedir));
154149
break;
155150
case 'd':
156-
flags |= XBPS_FLAG_DEBUG;
151+
xh.flags |= XBPS_FLAG_DEBUG;
157152
break;
158153
case 'D':
159-
flags |= XBPS_FLAG_DOWNLOAD_ONLY;
154+
xh.flags |= XBPS_FLAG_DOWNLOAD_ONLY;
160155
break;
161156
case 'f':
162157
fflag++;
163158
if (fflag > 1)
164-
flags |= XBPS_FLAG_FORCE_UNPACK;
159+
xh.flags |= XBPS_FLAG_FORCE_UNPACK;
165160
force = true;
166161
break;
167162
case 'h':
168163
usage(false);
169164
/* NOTREACHED */
170165
case 'I':
171-
flags |= XBPS_FLAG_IGNORE_FILE_CONFLICTS;
166+
xh.flags |= XBPS_FLAG_IGNORE_FILE_CONFLICTS;
172167
break;
173168
case 'i':
174-
flags |= XBPS_FLAG_IGNORE_CONF_REPOS;
169+
xh.flags |= XBPS_FLAG_IGNORE_CONF_REPOS;
175170
break;
176171
case 'M':
177-
flags |= XBPS_FLAG_REPOS_MEMSYNC;
172+
xh.flags |= XBPS_FLAG_REPOS_MEMSYNC;
178173
break;
179174
case 'n':
180175
drun = true;
@@ -183,19 +178,19 @@ main(int argc, char **argv)
183178
xbps_repo_store(&xh, optarg);
184179
break;
185180
case 'r':
186-
rootdir = optarg;
181+
xbps_strlcpy(xh.rootdir, optarg, sizeof(xh.rootdir));
187182
break;
188183
case 'S':
189184
syncf = true;
190185
break;
191186
case 'U':
192-
flags |= XBPS_FLAG_UNPACK_ONLY;
187+
xh.flags |= XBPS_FLAG_UNPACK_ONLY;
193188
break;
194189
case 'u':
195190
update = true;
196191
break;
197192
case 'v':
198-
flags |= XBPS_FLAG_VERBOSE;
193+
xh.flags |= XBPS_FLAG_VERBOSE;
199194
break;
200195
case 'V':
201196
printf("%s\n", XBPS_RELVER);
@@ -218,14 +213,7 @@ main(int argc, char **argv)
218213
xh.state_cb = state_cb;
219214
xh.fetch_cb = fetch_file_progress_cb;
220215
xh.fetch_cb_data = &xfer;
221-
if (rootdir)
222-
xbps_strlcpy(xh.rootdir, rootdir, sizeof(xh.rootdir));
223-
if (cachedir)
224-
xbps_strlcpy(xh.cachedir, cachedir, sizeof(xh.cachedir));
225-
if (confdir)
226-
xbps_strlcpy(xh.confdir, confdir, sizeof(xh.confdir));
227-
xh.flags = flags;
228-
if (flags & XBPS_FLAG_VERBOSE)
216+
if (xh.flags & XBPS_FLAG_VERBOSE)
229217
xh.unpack_cb = unpack_progress_cb;
230218

231219
if ((rv = xbps_init(&xh)) != 0) {

0 commit comments

Comments
 (0)