~willismonroe/ubuntu/precise/xdg-utils/typo-fix-996304

« back to all changes in this revision

Viewing changes to scripts/xdg-mime

  • Committer: Bazaar Package Importer
  • Author(s): Chris Coulson
  • Date: 2011-04-08 02:00:05 UTC
  • Revision ID: james.westby@ubuntu.com-20110408020005-w273n8dprc3nylw6
Tags: 1.1.0~rc1-2ubuntu2
* Fix LP: #670128 - gnome-open uses firefox while it's not the preferred
  browser. Backport upstream changes to use the x-scheme-handler types
  for checking/setting the default browser/mail client in xdg-settings
  and xdg-email. In addition to this, we fix xdg-mime to get/set
  default mimetype handlers using the users mimeapps.list, rather than
  the defaults.list, which doesn't work anywhere
  - add debian/patches/gnome-3.0.diff
  - update debian/patches/series

Show diffs side-by-side

added added

removed removed

Lines of Context:
667
667
    # Add $2=$1 to XDG_DATA_HOME/applications/defaults.list
668
668
    xdg_user_dir="$XDG_DATA_HOME"
669
669
    [ -n "$xdg_user_dir" ] || xdg_user_dir="$HOME/.local/share"
670
 
    default_file="$xdg_user_dir/applications/defaults.list"
 
670
    default_file="$xdg_user_dir/applications/mimeapps.list"
671
671
    DEBUG 2 "make_default_generic $1 $2"
672
672
    DEBUG 1 "Updating $default_file"
673
 
    grep -v "$2=" $default_file > ${default_file}.new 2> /dev/null
674
 
    if ! grep "[Default Applications]" ${default_file}.new > /dev/null; then
675
 
       echo "[Default Applications]" >> ${default_file}.new
676
 
    fi
677
 
    echo $2=$1 >> ${default_file}.new
678
 
    mv ${default_file}.new $default_file
 
673
    awk -v mimetype="$2" -v application="$1" '
 
674
    BEGIN {
 
675
        prefix=mimetype "="
 
676
        indefault=0
 
677
        added=0
 
678
        blanks=0
 
679
        found=0
 
680
    }
 
681
    {
 
682
        suppress=0
 
683
        if (index($0, "[Default Applications]") == 1) {
 
684
            indefault=1
 
685
            found=1
 
686
        } else if (index($0, "[") == 1) {
 
687
            if (!added && indefault) {
 
688
                print prefix application
 
689
                added=1
 
690
            }
 
691
            indefault=0
 
692
        } else if ($0 == "") {
 
693
            suppress=1
 
694
            blanks++
 
695
        } else if (indefault && !added && index($0, prefix) == 1) {
 
696
                $0=prefix application
 
697
                added=1
 
698
        }
 
699
        if (!suppress) {
 
700
            while (blanks > 0) {
 
701
                print ""
 
702
                blanks--
 
703
            }
 
704
            print $0
 
705
        }
 
706
    }
 
707
    END {
 
708
        if (!added) {
 
709
            if (!found) {
 
710
                print ""
 
711
                print "[Default Applications]"
 
712
            }
 
713
            print prefix application
 
714
        }
 
715
        while (blanks > 0) {
 
716
            print ""
 
717
            blanks--
 
718
        }
 
719
    }
 
720
'   $default_file > ${default_file}.new && mv ${default_file}.new $default_file
679
721
}
680
722
 
681
723
defapp_generic()
687
729
    xdg_system_dirs="$XDG_DATA_DIRS"
688
730
    [ -n "$xdg_system_dirs" ] || xdg_system_dirs=/usr/local/share/:/usr/share/
689
731
 
690
 
    for x in `echo "$xdg_user_dir:$xdg_system_dirs" | sed 's/:/ /g'`; do
 
732
    for x in `echo "$xdg_user_dir" | sed 's/:/ /g'`; do
 
733
        mimeapps_list="$x/applications/mimeapps.list"
 
734
        if [ -f "$mimeapps_list" ] ; then
 
735
            trader_result=`awk -v mimetype="$MIME" '
 
736
    BEGIN {
 
737
        prefix=mimetype "="
 
738
        indefault=0
 
739
        found=0
 
740
    }
 
741
    {
 
742
        if (index($0, "[Default Applications]") == 1) {
 
743
            indefault=1
 
744
        } else if (index($0, "[") == 1) {
 
745
            indefault=0
 
746
        } else if (!found && indefault && index($0, prefix) == 1) {
 
747
            print substr($0, length(prefix) +1, length)
 
748
            found=1
 
749
        }
 
750
    }
 
751
'           $mimeapps_list`
 
752
            if [ -n "$trader_result" ] ; then
 
753
                echo $trader_result
 
754
                exit_success
 
755
            fi
 
756
        fi
 
757
    done
 
758
 
 
759
    for x in `echo "$xdg_system_dirs" | sed 's/:/ /g'`; do
691
760
       DEBUG 2 "Checking $x/applications/defaults.list"
692
761
       trader_result=`grep "$MIME=" $x/applications/defaults.list 2> /dev/null | cut -d '=' -f 2 | cut -d ';' -f 1`
693
762
       if [ -n "$trader_result" ] ; then