diff --git a/meson_options.txt b/meson_options.txt index 7f55c4dd..b5f178e6 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -73,6 +73,7 @@ option('dgi', type: 'boolean', value: false, description: 'DOS Gateway Interface option('mujs', type: 'boolean', value: false, description: 'use mujs library') option('codepoint', type: 'boolean', value: true, description: 'whether check codepoints on Linux console') option('test', type: 'boolean', value: false, description: 'whether build test programs') +option('test-mailcap', type: 'boolean', value: false, description: 'whether build test mailcap program') option('doc', type: 'boolean', value: true, description: 'whether build documentation') option('docdir', type: 'string', value: '', description: 'Documentation installation directory. Default $prefix/share/doc/elinks.') option('apidoc', type: 'boolean', value: true, description: 'whether to generate API docs with doxygen') diff --git a/src/mime/backend/mailcap.c b/src/mime/backend/mailcap.c index 58e3b0b1..6939f506 100644 --- a/src/mime/backend/mailcap.c +++ b/src/mime/backend/mailcap.c @@ -416,7 +416,7 @@ init_mailcap_map(void) if (!mailcap_map) return NULL; /* Try to setup mailcap_path */ - path = get_mailcap_path(); + path = (char *)get_mailcap_path(); if (!path || !*path) path = getenv("MAILCAP"); if (!path) path = (char *)DEFAULT_MAILCAP_PATH; @@ -809,6 +809,7 @@ main(int argc, char *argv[]) { char *format = "description,ask,block,program"; int has_gotten = 0; + int setenv_display = 0; int i; for (i = 1; i < argc; i++) { @@ -826,6 +827,10 @@ main(int argc, char *argv[]) } else if (get_test_opt(&arg, "format", &i, argc, argv, "a string")) { format = arg; + } else if (get_test_opt(&arg, "display", &i, argc, argv, "a string")) { + if (strcmp(arg, "1") == 0 || strcmp(arg, "yes") == 0) + setenv_display = 1; + } else if (get_test_opt(&arg, "get", &i, argc, argv, "a string")) { struct mime_handler *handler; @@ -833,7 +838,7 @@ main(int argc, char *argv[]) printf("\n"); has_gotten = 1; printf("type: %s\n", arg); - handler = get_mime_handler_mailcap(arg, 0); + handler = get_mime_handler_mailcap(arg, setenv_display); if (!handler) continue; if (strstr(format, "description")) diff --git a/src/mime/backend/meson.build b/src/mime/backend/meson.build index 99a68c03..fe4e4231 100644 --- a/src/mime/backend/meson.build +++ b/src/mime/backend/meson.build @@ -10,7 +10,7 @@ endif srcs += files('common.c', 'default.c') -if conf_data.get('CONFIG_MAILCAP') and get_option('test') +if conf_data.get('CONFIG_MAILCAP') and (get_option('test-mailcap') or get_option('test')) mailcap_cache_files = files('common.c', 'mailcap.c', meson.source_root()+'/src/osdep/osdep.c') if conf_data.get('CONFIG_NLS') and not conf_data.get('CONFIG_GETTEXT')