Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
Please login to access the resource
openSUSE:Leap:16.0:FactoryCandidates
file-roller
file-roller-ignore-unrar-if-wrapper.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File file-roller-ignore-unrar-if-wrapper.patch of Package file-roller
Index: file-roller-43.alpha/src/fr-command-rar.c =================================================================== --- file-roller-43.alpha.orig/src/fr-command-rar.c +++ file-roller-43.alpha/src/fr-command-rar.c @@ -766,6 +766,39 @@ fr_command_rar_get_mime_types (FrArchive return rar_mime_type; } +static gboolean +unrar_is_suse_wrapper () +{ + const gchar *path = g_getenv ("PATH"); + gchar **paths; + gchar **pp; + gchar *p; + gchar *full_name; + FILE *fp; + char bytes[2]; + gboolean ret = FALSE; + + if (!path) + path = "/usr/bin"; + + paths = g_strsplit (path, ":", 0); + for (pp = paths; *pp; pp++) + { + p = *pp; + full_name = g_strconcat (p, "/unrar", NULL); + fp = fopen (full_name, "r"); + g_free (full_name); + if (!fp) + continue; + bytes[0] = bytes[1] = 0; + fread (bytes, 2, 1, fp); + fclose (fp); + ret = (bytes[0] == '#' && bytes[1] == '!'); + break; + } + g_strfreev (paths); + return ret; +} static FrArchiveCaps fr_command_rar_get_capabilities (FrArchive *archive, @@ -777,7 +810,7 @@ fr_command_rar_get_capabilities (FrArchi capabilities = FR_ARCHIVE_CAN_STORE_MANY_FILES | FR_ARCHIVE_CAN_ENCRYPT | FR_ARCHIVE_CAN_ENCRYPT_HEADER; if (_g_program_is_available ("rar", check_command)) capabilities |= FR_ARCHIVE_CAN_READ_WRITE | FR_ARCHIVE_CAN_CREATE_VOLUMES; - else if (_g_program_is_available ("unrar", check_command)) + else if (_g_program_is_available ("unrar", check_command) && !unrar_is_suse_wrapper ()) capabilities |= FR_ARCHIVE_CAN_READ; /* multi-volumes are read-only */
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor