#! /bin/sh -e

# DP: Report an ICE to apport (if apport is available
# DP: and the environment variable GCC_NOAPPORT is not set)

dir=
if [ $# -eq 3 -a "$2" = '-d' ]; then
    pdir="-d $3"
    dir="$3/"
elif [ $# -ne 1 ]; then
    echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
    exit 1
fi
case "$1" in
    -patch)
        patch $pdir -f --no-backup-if-mismatch -p0 < $0
        ;;
    -unpatch)
        patch $pdir -f --no-backup-if-mismatch -R -p0 < $0
        ;;
    *)
        echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
        exit 1
esac
exit 0

--- gcc/gcc.c~	2007-08-05 22:17:07.000000000 +0200
+++ gcc/gcc.c	2007-08-12 15:03:16.000000000 +0200
@@ -6119,6 +6119,15 @@
 	    {
 	      notice ("Preprocessed source stored into %s file, please attach this to your bugreport.\n",
 		      temp_filenames[attempt * 2]);
+	      if (!getenv ("GCC_NOAPPORT")
+		  && !access ("/usr/share/apport/gcc_ice_hook", R_OK | X_OK))
+		{
+		  char *cmd = xmalloc (50 + strlen (temp_filenames[attempt * 2]) + strlen (new_argv[0]));
+		  sprintf (cmd, "/usr/share/apport/gcc_ice_hook %s %s",
+			   new_argv[0], temp_filenames[attempt * 2]);
+		  system (cmd);
+		  free (cmd);
+		}
 	      /* Make sure it is not deleted.  */
 	      free (temp_filenames[attempt * 2]);
 	      temp_filenames[attempt * 2] = NULL;
