Pass argc pointer to parse_options()

This lets us keep argc up to date as the backend picks out arguments
from the argv array.
This commit is contained in:
Kristian Høgsberg 2013-02-20 15:27:49 -05:00
parent d5a97ae053
commit 4172f668e7
30 changed files with 53 additions and 54 deletions

View file

@ -238,7 +238,7 @@ main(int argc, char *argv[])
struct display *display;
struct calibrator *calibrator;
display = display_create(argc, argv);
display = display_create(&argc, argv);
if (display == NULL) {
fprintf(stderr, "failed to create display: %m\n");

View file

@ -297,7 +297,7 @@ main(int argc, char *argv[])
struct display *display;
struct clickdot *clickdot;
display = display_create(argc, argv);
display = display_create(&argc, argv);
if (display == NULL) {
fprintf(stderr, "failed to create display: %m\n");
return -1;

View file

@ -890,7 +890,7 @@ main(int argc, char *argv[])
if (argc > 1)
return benchmark();
d = display_create(argc, argv);
d = display_create(&argc, argv);
if (d == NULL) {
fprintf(stderr, "failed to create display: %m\n");
return -1;

View file

@ -1094,7 +1094,7 @@ int main(int argc, char *argv[])
desktop.unlock_task.run = unlock_dialog_finish;
wl_list_init(&desktop.outputs);
desktop.display = display_create(argc, argv);
desktop.display = display_create(&argc, argv);
if (desktop.display == NULL) {
fprintf(stderr, "failed to create display: %m\n");
return -1;

View file

@ -614,7 +614,7 @@ main(int argc, char *argv[])
struct dnd *dnd;
int i;
d = display_create(argc, argv);
d = display_create(&argc, argv);
if (d == NULL) {
fprintf(stderr, "failed to create display: %m\n");
return -1;

View file

@ -1056,7 +1056,7 @@ main(int argc, char *argv[])
g_type_init();
#endif
editor.display = display_create(argc, argv);
editor.display = display_create(&argc, argv);
if (editor.display == NULL) {
fprintf(stderr, "failed to create display: %m\n");
return -1;

View file

@ -390,11 +390,11 @@ main(int argc, char *argv[])
struct display *d;
struct eventdemo *e;
argc = parse_options(eventdemo_options,
ARRAY_LENGTH(eventdemo_options), argc, argv);
parse_options(eventdemo_options,
ARRAY_LENGTH(eventdemo_options), &argc, argv);
/* Connect to the display and have the arguments parsed */
d = display_create(argc, argv);
d = display_create(&argc, argv);
if (d == NULL) {
fprintf(stderr, "failed to create display: %m\n");
return -1;

View file

@ -159,7 +159,7 @@ int main(int argc, char *argv[])
struct display *d;
struct timeval tv;
d = display_create(argc, argv);
d = display_create(&argc, argv);
if (d == NULL) {
fprintf(stderr, "failed to create display: %m\n");
return -1;

View file

@ -474,7 +474,7 @@ int main(int argc, char *argv[])
{
struct display *d;
d = display_create(argc, argv);
d = display_create(&argc, argv);
if (d == NULL) {
fprintf(stderr, "failed to create display: %m\n");
return -1;

View file

@ -410,7 +410,7 @@ main(int argc, char *argv[])
int i;
int image_counter = 0;
d = display_create(argc, argv);
d = display_create(&argc, argv);
if (d == NULL) {
fprintf(stderr, "failed to create display: %m\n");
return -1;

View file

@ -706,7 +706,7 @@ main(int argc, char *argv[])
memset(&virtual_keyboard, 0, sizeof virtual_keyboard);
virtual_keyboard.display = display_create(argc, argv);
virtual_keyboard.display = display_create(&argc, argv);
if (virtual_keyboard.display == NULL) {
fprintf(stderr, "failed to create display: %m\n");
return -1;

View file

@ -281,7 +281,7 @@ main(int argc, char *argv[])
struct display *display;
struct resizor *resizor;
display = display_create(argc, argv);
display = display_create(&argc, argv);
if (display == NULL) {
fprintf(stderr, "failed to create display: %m\n");
return -1;

View file

@ -279,7 +279,7 @@ int main(int argc, char *argv[])
struct display *d;
int size;
d = display_create(argc, argv);
d = display_create(&argc, argv);
if (d == NULL) {
fprintf(stderr, "failed to create display: %m\n");
return -1;

View file

@ -459,7 +459,7 @@ int main(int argc, char *argv[])
char *config_file;
struct output *output;
display = display_create(argc, argv);
display = display_create(&argc, argv);
if (display == NULL) {
fprintf(stderr, "failed to create display: %m\n");
return -1;

View file

@ -2683,10 +2683,10 @@ int main(int argc, char *argv[])
NULL);
free(config_file);
argc = parse_options(terminal_options,
ARRAY_LENGTH(terminal_options), argc, argv);
parse_options(terminal_options,
ARRAY_LENGTH(terminal_options), &argc, argv);
d = display_create(argc, argv);
d = display_create(&argc, argv);
if (d == NULL) {
fprintf(stderr, "failed to create display: %m\n");
return -1;

View file

@ -264,7 +264,7 @@ int main(int argc, char *argv[])
usage(EXIT_FAILURE);
}
d = display_create(argc, argv);
d = display_create(&argc, argv);
if (d == NULL) {
fprintf(stderr, "failed to create display: %m\n");
return -1;

View file

@ -295,10 +295,9 @@ main(int argc, char *argv[])
g_type_init();
argc = parse_options(view_options,
ARRAY_LENGTH(view_options), argc, argv);
parse_options(view_options, ARRAY_LENGTH(view_options), &argc, argv);
d = display_create(argc, argv);
d = display_create(&argc, argv);
if (d == NULL) {
fprintf(stderr, "failed to create display: %m\n");
return -1;

View file

@ -4329,7 +4329,7 @@ handle_display_data(struct task *task, uint32_t events)
}
struct display *
display_create(int argc, char *argv[])
display_create(int *argc, char *argv[])
{
struct display *d;

View file

@ -53,7 +53,7 @@ struct rectangle {
};
struct display *
display_create(int argc, char *argv[]);
display_create(int *argc, char *argv[]);
void
display_destroy(struct display *display);

View file

@ -310,10 +310,10 @@ int main(int argc, char *argv[])
init_frand();
argc = parse_options(wscreensaver_options,
ARRAY_LENGTH(wscreensaver_options), argc, argv);
parse_options(wscreensaver_options,
ARRAY_LENGTH(wscreensaver_options), &argc, argv);
d = display_create(argc, argv);
d = display_create(&argc, argv);
if (d == NULL) {
fprintf(stderr, "failed to create display: %m\n");
return EXIT_FAILURE;

View file

@ -67,7 +67,7 @@ struct weston_option {
int
parse_options(const struct weston_option *options,
int count, int argc, char *argv[]);
int count, int *argc, char *argv[]);
#endif /* CONFIGPARSER_H */

View file

@ -51,11 +51,11 @@ handle_option(const struct weston_option *option, char *value)
int
parse_options(const struct weston_option *options,
int count, int argc, char *argv[])
int count, int *argc, char *argv[])
{
int i, j, k, len = 0;
for (i = 1, j = 1; i < argc; i++) {
for (i = 1, j = 1; i < *argc; i++) {
for (k = 0; k < count; k++) {
if (options[k].name)
len = strlen(options[k].name);
@ -77,6 +77,7 @@ parse_options(const struct weston_option *options,
argv[j++] = argv[i];
}
argv[j] = NULL;
*argc = j;
return j;
}

View file

@ -2134,7 +2134,7 @@ planes_binding(struct wl_seat *seat, uint32_t time, uint32_t key, void *data)
static struct weston_compositor *
drm_compositor_create(struct wl_display *display,
int connector, const char *seat, int tty, int pixman,
int argc, char *argv[], const char *config_file)
int *argc, char *argv[], const char *config_file)
{
struct drm_compositor *ec;
struct udev_device *drm_device;
@ -2430,7 +2430,7 @@ output_section_done(void *data)
}
WL_EXPORT struct weston_compositor *
backend_init(struct wl_display *display, int argc, char *argv[],
backend_init(struct wl_display *display, int *argc, char *argv[],
const char *config_file)
{
int connector = 0, tty = 0, use_pixman = 0;

View file

@ -826,7 +826,7 @@ switch_vt_binding(struct wl_seat *seat, uint32_t time, uint32_t key, void *data)
}
static struct weston_compositor *
fbdev_compositor_create(struct wl_display *display, int argc, char *argv[],
fbdev_compositor_create(struct wl_display *display, int *argc, char *argv[],
const char *config_file, struct fbdev_parameters *param)
{
struct fbdev_compositor *compositor;
@ -897,7 +897,7 @@ out_free:
}
WL_EXPORT struct weston_compositor *
backend_init(struct wl_display *display, int argc, char *argv[],
backend_init(struct wl_display *display, int *argc, char *argv[],
const char *config_file)
{
/* TODO: Ideally, available frame buffers should be enumerated using

View file

@ -152,7 +152,7 @@ headless_destroy(struct weston_compositor *ec)
static struct weston_compositor *
headless_compositor_create(struct wl_display *display,
int width, int height, const char *display_name,
int argc, char *argv[], const char *config_file)
int *argc, char *argv[], const char *config_file)
{
struct headless_compositor *c;
@ -187,7 +187,7 @@ err_free:
}
WL_EXPORT struct weston_compositor *
backend_init(struct wl_display *display, int argc, char *argv[],
backend_init(struct wl_display *display, int *argc, char *argv[],
const char *config_file)
{
int width = 1024, height = 640;

View file

@ -1423,7 +1423,7 @@ struct rpi_parameters {
};
static struct weston_compositor *
rpi_compositor_create(struct wl_display *display, int argc, char *argv[],
rpi_compositor_create(struct wl_display *display, int *argc, char *argv[],
const char *config_file, struct rpi_parameters *param)
{
struct rpi_compositor *compositor;
@ -1536,7 +1536,7 @@ out_free:
#define DEFAULT_MAX_PLANES 80
WL_EXPORT struct weston_compositor *
backend_init(struct wl_display *display, int argc, char *argv[],
backend_init(struct wl_display *display, int *argc, char *argv[],
const char *config_file)
{
struct rpi_parameters param = {

View file

@ -622,7 +622,7 @@ wayland_destroy(struct weston_compositor *ec)
static struct weston_compositor *
wayland_compositor_create(struct wl_display *display,
int width, int height, const char *display_name,
int argc, char *argv[], const char *config_file)
int *argc, char *argv[], const char *config_file)
{
struct wayland_compositor *c;
struct wl_event_loop *loop;
@ -697,7 +697,7 @@ err_free:
}
WL_EXPORT struct weston_compositor *
backend_init(struct wl_display *display, int argc, char *argv[],
backend_init(struct wl_display *display, int *argc, char *argv[],
const char *config_file)
{
int width = 1024, height = 640;

View file

@ -1366,7 +1366,7 @@ x11_compositor_create(struct wl_display *display,
int fullscreen,
int no_input,
int use_pixman,
int argc, char *argv[], const char *config_file)
int *argc, char *argv[], const char *config_file)
{
struct x11_compositor *c;
struct x11_configured_output *o;
@ -1556,7 +1556,7 @@ err_free:
}
WL_EXPORT struct weston_compositor *
backend_init(struct wl_display *display, int argc, char *argv[],
backend_init(struct wl_display *display, int *argc, char *argv[],
const char *config_file)
{
int fullscreen = 0;

View file

@ -2951,8 +2951,7 @@ log_uname(void)
WL_EXPORT int
weston_compositor_init(struct weston_compositor *ec,
struct wl_display *display,
int argc,
char *argv[],
int *argc, char *argv[],
const char *config_file)
{
struct wl_event_loop *loop;
@ -3336,7 +3335,7 @@ int main(int argc, char *argv[])
struct sigaction segv_action;
struct weston_compositor
*(*backend_init)(struct wl_display *display,
int argc, char *argv[], const char *config_file);
int *argc, char *argv[], const char *config_file);
int i;
char *backend = NULL;
const char *modules = "desktop-shell.so", *option_modules = NULL;
@ -3366,8 +3365,7 @@ int main(int argc, char *argv[])
{ WESTON_OPTION_BOOLEAN, "version", 0, &version },
};
argc = parse_options(core_options,
ARRAY_LENGTH(core_options), argc, argv);
parse_options(core_options, ARRAY_LENGTH(core_options), &argc, argv);
if (help)
usage(EXIT_SUCCESS);
@ -3419,7 +3417,7 @@ int main(int argc, char *argv[])
if (!backend_init)
exit(EXIT_FAILURE);
ec = backend_init(display, argc, argv, config_file);
ec = backend_init(display, &argc, argv, config_file);
if (ec == NULL) {
weston_log("fatal: failed to create compositor\n");
exit(EXIT_FAILURE);
@ -3431,9 +3429,10 @@ int main(int argc, char *argv[])
sigaction(SIGSEGV, &segv_action, NULL);
segv_compositor = ec;
for (i = 1; argv[i]; i++)
for (i = 1; i < argc; i++)
weston_log("fatal: unhandled option: %s\n", argv[i]);
if (argv[1]) {
if (argc > 1) {
ret = EXIT_FAILURE;
goto out;
}

View file

@ -714,7 +714,7 @@ weston_compositor_get_time(void);
int
weston_compositor_init(struct weston_compositor *ec, struct wl_display *display,
int argc, char *argv[], const char *config_file);
int *argc, char *argv[], const char *config_file);
void
weston_compositor_shutdown(struct weston_compositor *ec);
void
@ -839,8 +839,8 @@ int
noop_renderer_init(struct weston_compositor *ec);
struct weston_compositor *
backend_init(struct wl_display *display, int argc, char *argv[],
const char *config_file);
backend_init(struct wl_display *display, int *argc, char *argv[],
const char *config_file);
int
module_init(struct weston_compositor *compositor);