[Portland-bugs] [Bug 106894] New: xdg-mime returns wrong mime type on generic DE when filename contains a colon

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Tue Jun 12 04:38:57 UTC 2018


https://bugs.freedesktop.org/show_bug.cgi?id=106894

            Bug ID: 106894
           Summary: xdg-mime returns wrong mime type on generic DE when
                    filename contains a colon
           Product: Portland
           Version: 1.1.0 rc1
          Hardware: x86-64 (AMD64)
                OS: Linux (All)
            Status: NEW
          Severity: normal
          Priority: medium
         Component: xdg-utils
          Assignee: portland-bugs at lists.freedesktop.org
          Reporter: freedesktop at shalmirane.com

The info_generic function in xdg-mime looks like this:

info_generic()                                                                  
{                                                                               
    if mimetype --version >/dev/null 2>&1; then                                 
        DEBUG 1 "Running mimetype -b \"$1\""                                    
        mimetype -b "$1"                                                        
    else                                                                        
        DEBUG 1 "Running file --mime-type \"$1\""                               
        /usr/bin/file --mime-type "$1" 2> /dev/null | cut -d ":" -f 2 | sed
s/"^ "//                                       
    fi                                                                          

    if [ $? -eq 0 ]; then                                                       
        exit_success                                                            
    else                                                                        
        exit_failure_operation_failed                                           
    fi                                                                          
}

The problem occurs if /usr/bin/file is executed and the filename contains the
colon.
Normally file outputs both the filename and the mimetype, but only the mimtype
is desired so cut is employed to split the output from file into two pieces and
return only the second, the mimetype.

I have not spent a lot of time trying to determine the best solution to this
problem. What worked for me was to replace the whole line with:

        /usr/bin/file -b --mime-type "$1" 2> /dev/null

The -b option tell file to only output the mimetype and not the filename.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/portland-bugs/attachments/20180612/996113be/attachment.html>


More information about the Portland-bugs mailing list