<commit_before>#!/usr/bin/env bash

#export REDRAW_DEBUG=1        # To cause redraw- to happen slovly and obviously.
#export ECORE_ERROR_ABORT=1   # To cause ecore to abort on errors.
#export EVAS_NOCLEAN=1        # To cause evas to not unload modules.

disp_num=":1"                 # Which display do you want the xnest to be on?

main=$DISPLAY
tmp=`mktemp` || exit 1
echo -e "run\nbt\nq\ny" > $tmp

case "$1" in
	"")	action="gdb -x $tmp --args" ; main=$disp_num ;;
	"-b")	action="gdb -x $tmp --args" ; main=$disp_num ;;
	"-c")	action="cgdb" ; main=$disp_num ;;
	"-d")	action="ddd -display $main --args" ;;
	"-e")	action="" ; e_args="-display $disp_num" ;;
	"-g")	action="gdb --args" ; main=$disp_num ;;
	"-l")	action="valgrind --tool=memcheck --leak-check=yes --show-reachable=yes --log-file=valgrind_log" ; main=$disp_num ;;
	"-m")	action="valgrind --tool=memcheck --log-file=valgrind_log" ; main=$disp_num ;;
	"-p")	action="memprof --display=$main" ; main=$disp_num ;;
	"-r")	action="memprof_raster --display=$main" ; main=$disp_num ;;
	"-s")	action="strace -F -o strace_log" ;;
	"-v")	action="valkyrie -display $main" ; main=$disp_num ;;
	*)	echo -e "Usage : xnest.sh [debugger] ([enlightenment options])"
		echo -e "\tdefault option is -b"
		echo -e "\t-b use text debugger with auto backtrace\tgdb"
		echo -e "\t-c use curses debugger\t\t\t\tcgdb"
		echo -e "\t-d use the GUI debugger\t\t\t\tddd"
		echo -e "\t-e enlightenment with no debugging"
		echo -e "\t-g use text debugger\t\t\t\tgdb"
		echo -e "\t-l leak check\t\t\t\t\tvalgrind"
		echo -e "\t-m memory check\t\t\t\t\tvalgrind"
		echo -e "\t-p memory profiling\t\t\t\tmemprof"
		echo -e "\t-r raster's memory profiling\t\t\tmemprof_raster"
		echo -e "\t-s show syscalls\t\t\t\tstrace"
		echo -e "\t-v GUI memory check\t\t\t\tvalkyrie"
		echo -e ""
		echo -e "When you have finished with the text debugger, use the q command to quit."
		echo -e "The valgrind options will leave a log file with a name beginning with valgrind_log"
		exit
		;;
esac
e_args="`echo -- $@ | cut -d' ' -f2-` $e_args"

Xnest $disp_num -ac &

sleep 2   # Someone reported that it starts E before X has started properly.

export DISPLAY=$main; export E_START="enlightenment_start"; $action enlightenment $e_args

rm -f $tmp
killall -TERM Xnest<commit_msg>rewrite of xnest.sh script, fixed bugs and added options, should be way more useable now...<commit_after>#!/usr/bin/env bash


debugger_default="b"
xnest_geo_default="800x600+0+0"


echo
for arg in $@; do
   option=`echo "'$arg'" | cut -d'=' -f1 | tr -d "'"`
   value=`echo "'$arg'" | cut -d'=' -f2- | tr -d "'"`
   if [ "$value" == "$option" ]; then
      value=""
   fi

   case $option in
      "--dbg-display")
         if [ -z "$value" ]; then
            echo "Missing value for $option= !"
			exit 1
         fi
		 xnest_display=$value
         ;;
	  "--dbg-xnest-geo")
         if [ -z "$value" ]; then
            echo "Missing value for $option= !"
			exit 1
         fi
		 xnest_geo=$value
         ;;
      "--dbg-mode")
         if [ -z "$value" ]; then
            echo "Missing value for $option= !"
			exit 1
         fi
		 debugger=$value
         ;;
	  "--dbg-ecore-errors")  export ECORE_ERROR_ABORT=1 ;;
	  "--dbg-ecore-noclean") export ECORE_NOCLEAN=1 ;;
      "--dbg-redraw")        export REDRAW_DEBUG=1 ;;
	  "--help")
	     echo "Usage: $0 [DEBUG-OPTION] ..."
		 echo "      --dbg-display=<NUMBER>    = set the used display number"
		 echo "      --dpg-xnest-geo=<WxH+X+Y> = set xnest geometry"
		 echo "      --dbg-mode=<CHAR>         = b: text debugger with auto backtrace (gdb)"
		 echo "                                  c: curses debugger (cgdb)"
		 echo "                                  d: GUI debugger (ddd)"
		 echo "                                  e: no debugging"
		 echo "                                  g: text debugger (gdb)"
		 echo "                                  l: leak check (valgrind)"
		 echo "                                  m: memory check (valgrind)"
		 echo "                                  p: memory profiling (memprof)"
		 echo "                                  r: raster's memory profiling (memprof_raster)"
		 echo "                                  s: show syscalls (strace)"
		 echo "                                  v: GUI memory check (valkyrie)"
		 echo "      --dbg-ecore-errors        = to cause ecore to abort on errors"
		 echo "      --dbg-ecore-noclean       = to cause ecore to not unload modules"
		 echo "      --dbg-redraw              = to cause redraw to happen slovly and obviously"
		 echo "      --help                    = wysiwyg"
		 echo
	     echo "Usage: $0 [ENLIGHTENMENT-OPTION] ..."
		 enlightenment --help
		 exit 0
	     ;;
      *) enlightenment_args="$enlightenment_args $arg" ;;
   esac
done


if [ -z "$xnest_display" ]; then 
   if [ -z "$DISPLAY" ]; then
      echo "Couldn't read your \$DISPLAY env variable, are you running X?"
	  exit 1
   fi

   dcnt=`echo "$DISPLAY" | tr -d ':' | cut -d '.' -f1`
   xnest_display=$(($dcnt+1))
fi
if [ -z "$xnest_geo" ]; then
	xnest_geo=$xnest_geo_default
fi
if [ -z "$debugger" ]; then
	debugger=$debugger_default
fi
case $debugger in
   "b")
      tmpfile=`mktemp`
	  if [ -z "$tmpfile" ]; then
         echo "Can't create tmp file!"
		 exit 1
      fi
      echo -e "run\nbt\nq\ny" > $tmpfile
      debugcmd="gdb -x $tmpfile --args"
	  ;;
   "c") debugcmd="cgdb" ;;
   "d") debugcmd="ddd -display $DISPLAY --args" ;;
   "e") debugcmd="" ;;
   "g") debugcmd="gdb --args" ;;
   "l") debugcmd="valgrind --tool=memcheck --leak-check=yes --show-reachable=yes --log-file=valgrind_log" ;;
   "m") debugcmd="valgrind --tool=memcheck --log-file=valgrind_log" ;;
   "p") debugcmd="memprof --display=$DISPLAY" ;;
   "r") debugcmd="memprof_raster --display=$DISPLAY" ;;
   "s") debugcmd="strace -F -o strace_log" ;;
   "v") debugcmd="valkyrie -display $DISPLAY" ;;
esac


echo "- DISPLAY: $xnest_display"
echo "- XNEST GEOMETRY: $xnest_geo"
echo -n "- DEBUGMODE: "
if [ "$debugcmd" ]; then
	echo "$debugcmd"
else
	echo "NONE"
fi
if [ "$enlightenment_args" ]; then
	echo "- ENLIGHTENMENT ARGUMENTS: $enlightenment_args"
fi
if [ "$ECORE_ERROR_ABORT" ]; then
	echo "- ECORE ERROR ABORT"
fi
if [ "$ECORE_NOCLEAN" ]; then
	echo "- ECORE NOCLEAN"
fi
if [ "$REDRAW_DEBUG" ]; then
	echo "- REDRAW DEBUG"
fi
echo "======================================================"
echo
sleep 1


Xnest :$xnest_display -ac -geometry $xnest_geo &
sleep 2 # Someone reported that it starts E before X has started properly.

export DISPLAY=":$xnest_display"
export E_START="enlightenment_start"
$debugcmd enlightenment $enlightenment_args

if [ "$tmpfile" ]; then
	rm "$tmpfile"
fi
killall -TERM Xnest
{'fraction_non_alphanumeric': 0.16079952267303102, 'fraction_numerical': 0.004922434367541766, 'mean_word_length': 2.355855855855856, 'pattern_counts': {'":': 2, '<': 6, '<?xml version=': 0, '>': 8, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 20, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6752137', 'n_tokens_mistral': 2574, 'n_tokens_neox': 2328, 'n_words': 669}