Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(114)

Unified Diff: third_party/xdg-utils/scripts/xdg-email.in

Issue 3273010: Update our copy of xdg-utils to 2010-08-30, and include a patched xdg-mime. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/deps/
Patch Set: Created 10 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/xdg-utils/scripts/xdg-email ('k') | third_party/xdg-utils/scripts/xdg-file-dialog.in » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/xdg-utils/scripts/xdg-email.in
===================================================================
--- third_party/xdg-utils/scripts/xdg-email.in (revision 57942)
+++ third_party/xdg-utils/scripts/xdg-email.in (working copy)
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
#---------------------------------------------
# xdg-email
#
@@ -28,14 +28,71 @@
#@xdg-utils-common@
+run_thunderbird()
+{
+ local THUNDERBIRD MAILTO NEWMAILTO TO CC BCC SUBJECT BODY ATTACH
+ THUNDERBIRD="$1"
+ MAILTO=$(echo "$2" | sed 's/^mailto://')
+ echo "$MAILTO" | grep -qs "^?"
+ if [ "$?" = "0" ] ; then
+ MAILTO=$(echo "$MAILTO" | sed 's/^?//')
+ else
+ MAILTO=$(echo "$MAILTO" | sed 's/^/to=/' | sed 's/?/\&/')
+ fi
+
+ MAILTO=$(echo "$MAILTO" | sed 's/&/\n/g')
+ TO=$(echo "$MAILTO" | grep '^to=' | sed 's/^to=//' | awk '{ printf "%s,",$0 }')
+ CC=$(echo "$MAILTO" | grep '^cc=' | sed 's/^cc=//' | awk '{ printf "%s,",$0 }')
+ BCC=$(echo "$MAILTO" | grep '^bcc=' | sed 's/^bcc=//' | awk '{ printf "%s,",$0 }')
+ SUBJECT=$(echo "$MAILTO" | grep '^subject=' | tail -n 1)
+ BODY=$(echo "$MAILTO" | grep '^body=' | tail -n 1)
+ ATTACH=$(echo "$MAILTO" | sed 's/^attach=/\n\nfile:\/\//g' | awk '/^file:/ { printf "%s,",$0 }')
+
+ if [ -z "$TO" ] ; then
+ NEWMAILTO=
+ else
+ NEWMAILTO="to='$TO'"
+ fi
+ if [ -n "$CC" ] ; then
+ NEWMAILTO="${NEWMAILTO},cc='$CC'"
+ fi
+ if [ -n "$BCC" ] ; then
+ NEWMAILTO="${NEWMAILTO},bcc='$BCC'"
+ fi
+ if [ -n "$SUBJECT" ] ; then
+ NEWMAILTO="${NEWMAILTO},$SUBJECT"
+ fi
+ if [ -n "$BODY" ] ; then
+ NEWMAILTO="${NEWMAILTO},$BODY"
+ fi
+
+ if [ -n "$ATTACH" ] ; then
+ NEWMAILTO="${NEWMAILTO},attachment='${ATTACH}'"
+ fi
+
+ NEWMAILTO=$(echo "$NEWMAILTO" | sed 's/^,//')
+ DEBUG 1 "Running $THUNDERBIRD -compose \"$NEWMAILTO\""
+ "$THUNDERBIRD" -compose "$NEWMAILTO"
+ if [ $? -eq 0 ]; then
+ exit_success
+ else
+ exit_failure_operation_failed
+ fi
+}
+
open_kde()
{
local client
+ client=`kreadconfig --file emaildefaults --group PROFILE_Default --key EmailClient | cut -d ' ' -f 1`
+ echo $client | grep thunderbird > /dev/null 2>&1
+ if [ $? -eq 0 ] ; then
+ run_thunderbird "$client" "$1"
+ fi
+
if [ -f /etc/SuSE-release ] ; then
# Workaround for SUSE 10.0
- client=`kreadconfig --file emaildefaults --group PROFILE_Default --key EmailClient| cut -d ' ' -f 1`
- [ -z $client ] && client="kmail"
- if ! which $client > /dev/null 2> /dev/null; then
+ [ -z "$client" ] && client="kmail"
+ if ! which "$client" > /dev/null 2> /dev/null; then
DEBUG 3 "KDE has $client configured as email client which isn't installed"
if which gnome-open > /dev/null 2> /dev/null && which evolution > /dev/null 2> /dev/null; then
DEBUG 3 "Try gnome-open instead"
@@ -62,9 +119,21 @@
open_gnome()
{
- DEBUG 1 "Running gnome-open \"$1\""
- gnome-open "$1"
+ local client
+ client=`gconftool-2 --get /desktop/gnome/url-handlers/mailto/command | cut -d ' ' -f 1` || ""
+ echo $client | grep thunderbird > /dev/null 2>&1
+ if [ $? -eq 0 ] ; then
+ run_thunderbird "$client" "$1"
+ fi
+ if gvfs-open --help 2>/dev/null 1>&2; then
+ DEBUG 1 "Running gvfs-open \"$1\""
+ gvfs-open "$1"
+ else
+ DEBUG 1 "Running gnome-open \"$1\""
+ gnome-open "$1"
+ fi
+
if [ $? -eq 0 ]; then
exit_success
else
@@ -91,8 +160,9 @@
for browser in $BROWSER; do
if [ x"$browser" != x"" ]; then
- IFS=' '
- browser_with_arg=${browser//'%s'/"$1"}
+ browser_with_arg=`printf "$browser" "$1" 2>/dev/null`
+ if [ $? -ne 0 ]; then browser_with_arg=$browser;
+ fi
if [ x"$browser_with_arg" = x"$browser" ]; then "$browser" "$1";
else $browser_with_arg;
@@ -122,7 +192,7 @@
c = substr ($0, i, 1)
if ( ord [c] > 127 ) {
e = e "%" sprintf("%02X", ord [c])
- } else if ( c ~ /[@a-zA-Z0-9.-]/ ) {
+ } else if ( c ~ /[@a-zA-Z0-9.-\\/]/ ) {
e = e c
} else {
e = e "%" sprintf("%02X", ord [c])
@@ -267,13 +337,17 @@
detectDE
if [ x"$DE" = x"" ]; then
- # if BROWSER variable is not set, check some well known browsers instead
- if [ x"$BROWSER" = x"" ]; then
- BROWSER=firefox:mozilla:netscape
- fi
DE=generic
fi
+# if BROWSER variable is not set, check some well known browsers instead
+if [ x"$BROWSER" = x"" ]; then
+ BROWSER=links2:links:lynx:w3m
+ if [ -n "$DISPLAY" ]; then
+ BROWSER=firefox:mozilla:epiphany:konqueror:chromium-browser:google-chrome:$BROWSER
+ fi
+fi
+
case "$DE" in
kde)
open_kde "${mailto}"
« no previous file with comments | « third_party/xdg-utils/scripts/xdg-email ('k') | third_party/xdg-utils/scripts/xdg-file-dialog.in » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698