dialog/unix: stricter typing
Introduce `const` where appropriate
This commit is contained in:
parent
4c86511035
commit
af6c641b8c
1 changed files with 12 additions and 11 deletions
|
@ -44,10 +44,10 @@ typedef struct
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
char **argv;
|
const char *const *argv;
|
||||||
int argc;
|
int argc;
|
||||||
|
|
||||||
char **filters_slice;
|
char *const *filters_slice;
|
||||||
int nfilters;
|
int nfilters;
|
||||||
} Args;
|
} Args;
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@ static char *zenity_clean_name(const char *name)
|
||||||
static Args generate_args(const zenityArgs *info)
|
static Args generate_args(const zenityArgs *info)
|
||||||
{
|
{
|
||||||
int argc = 0;
|
int argc = 0;
|
||||||
char **argv = SDL_malloc(
|
const char **argv = SDL_malloc(
|
||||||
sizeof(*argv) * (3 /* zenity --file-selection --separator=\n */
|
sizeof(*argv) * (3 /* zenity --file-selection --separator=\n */
|
||||||
+ 1 /* --multiple */
|
+ 1 /* --multiple */
|
||||||
+ 1 /* --directory */
|
+ 1 /* --directory */
|
||||||
|
@ -123,31 +123,31 @@ static Args generate_args(const zenityArgs *info)
|
||||||
|
|
||||||
if (info->filename) {
|
if (info->filename) {
|
||||||
argv[argc++] = "--filename";
|
argv[argc++] = "--filename";
|
||||||
argv[argc++] = (char *)info->filename;
|
argv[argc++] = info->filename;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (info->x11_window_handle[0]) {
|
if (info->x11_window_handle[0]) {
|
||||||
argv[argc++] = "--modal";
|
argv[argc++] = "--modal";
|
||||||
argv[argc++] = "--attach";
|
argv[argc++] = "--attach";
|
||||||
argv[argc++] = (char *)info->x11_window_handle;
|
argv[argc++] = info->x11_window_handle;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (info->title) {
|
if (info->title) {
|
||||||
argv[argc++] = "--title";
|
argv[argc++] = "--title";
|
||||||
argv[argc++] = (char *)info->title;
|
argv[argc++] = info->title;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (info->accept) {
|
if (info->accept) {
|
||||||
argv[argc++] = "--ok-label";
|
argv[argc++] = "--ok-label";
|
||||||
argv[argc++] = (char *)info->accept;
|
argv[argc++] = info->accept;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (info->cancel) {
|
if (info->cancel) {
|
||||||
argv[argc++] = "--cancel-label";
|
argv[argc++] = "--cancel-label";
|
||||||
argv[argc++] = (char *)info->cancel;
|
argv[argc++] = info->cancel;
|
||||||
}
|
}
|
||||||
|
|
||||||
char **filters_slice = &argv[argc];
|
char **filters_slice = (char **)&argv[argc];
|
||||||
if (info->filters) {
|
if (info->filters) {
|
||||||
for (int i = 0; i < info->nfilters; i++) {
|
for (int i = 0; i < info->nfilters; i++) {
|
||||||
char *filter_str = convert_filter(info->filters[i],
|
char *filter_str = convert_filter(info->filters[i],
|
||||||
|
@ -173,6 +173,7 @@ static Args generate_args(const zenityArgs *info)
|
||||||
return (Args){
|
return (Args){
|
||||||
.argv = argv,
|
.argv = argv,
|
||||||
.argc = argc,
|
.argc = argc,
|
||||||
|
|
||||||
.filters_slice = filters_slice,
|
.filters_slice = filters_slice,
|
||||||
.nfilters = info->nfilters
|
.nfilters = info->nfilters
|
||||||
};
|
};
|
||||||
|
@ -187,7 +188,7 @@ static void free_args(Args args)
|
||||||
SDL_free(args.filters_slice[i]);
|
SDL_free(args.filters_slice[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
SDL_free(args.argv);
|
SDL_free((void *)args.argv);
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Zenity survives termination of the parent
|
// TODO: Zenity survives termination of the parent
|
||||||
|
@ -225,7 +226,7 @@ static void run_zenity(zenityArgs* arg_struct)
|
||||||
SDL_SetEnvironmentVariable(env, "ZENITY_TIMEOUT", "2", true);
|
SDL_SetEnvironmentVariable(env, "ZENITY_TIMEOUT", "2", true);
|
||||||
|
|
||||||
SDL_PropertiesID props = SDL_CreateProperties();
|
SDL_PropertiesID props = SDL_CreateProperties();
|
||||||
SDL_SetPointerProperty(props, SDL_PROP_PROCESS_CREATE_ARGS_POINTER, args.argv);
|
SDL_SetPointerProperty(props, SDL_PROP_PROCESS_CREATE_ARGS_POINTER, (void *)args.argv);
|
||||||
SDL_SetPointerProperty(props, SDL_PROP_PROCESS_CREATE_ENVIRONMENT_POINTER, env);
|
SDL_SetPointerProperty(props, SDL_PROP_PROCESS_CREATE_ENVIRONMENT_POINTER, env);
|
||||||
SDL_SetNumberProperty(props, SDL_PROP_PROCESS_CREATE_STDIN_NUMBER, SDL_PROCESS_STDIO_NULL);
|
SDL_SetNumberProperty(props, SDL_PROP_PROCESS_CREATE_STDIN_NUMBER, SDL_PROCESS_STDIO_NULL);
|
||||||
SDL_SetNumberProperty(props, SDL_PROP_PROCESS_CREATE_STDOUT_NUMBER, SDL_PROCESS_STDIO_APP);
|
SDL_SetNumberProperty(props, SDL_PROP_PROCESS_CREATE_STDOUT_NUMBER, SDL_PROCESS_STDIO_APP);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue