Am 11.01.2013 10:05, schrieb Dave Young: > > Hello harald > > What's your opinion about this patch? Could you take a look at it? >> --- dracut.orig/modules.d/99base/dracut-lib.sh >> +++ dracut/modules.d/99base/dracut-lib.sh >> @@ -998,3 +998,93 @@ listlist() { >> are_lists_eq() { >> listlist "$1" "$2" "$3" "$4" && listlist "$1" "$3" "$2" "$4" >> } >> + >> +setmemdebug() { >> + if [ -z "$DEBUG_MEM_LEVEL" ]; then >> + export DEBUG_MEM_LEVEL=$(getargnum 0 0 3 rd.memdebug) >> + fi >> +} >> + >> +setmemdebug >> + >> +# parameters: msg [trace_level:trace]... >> +function make_trace_mem() >> +{ >> + msg=$1 >> + shift >> + if [ "$DEBUG_MEM_LEVEL" -gt 0 ]; then >> + make_trace show_memstats $DEBUG_MEM_LEVEL "[debug_mem]" "$msg" "$@" >> + fi >> +} >> + >> +# parameters: func log_level prefix msg [trace_level:trace]... >> +function make_trace() >> +{ >> + func=$1 >> + shift >> + >> + log_level=`echo "$1" | grep -o '^[0-9]\+'` * use $() instead of `` * grep is overkill use simple shell functions There are in modules.d/99base/dracut-lib.sh strstr() str_starts() str_ends() * or use "case" case "$1" in [0-9]*) log_level=$1;; esac >> + shift >> + >> + prefix=$1 >> + shift >> + >> + msg=$1 >> + shift >> + >> + if [ -z "$log_level" ]; then >> + return >> + fi >> + >> + msg=`echo "$msg" | sed 's/^\s\+//'` sed is overkill for this. Use ${var%%...} ${var%...} ${var#...} ${var##...} $ msg="foo+bar baz" $ echo ${msg#*+} bar baz >> + >> + msg_printed=0 >> + while [ $# -gt 0 ]; do >> + trace_level=`echo "$1" | grep -o '^[0-9]\+'` >> + trace_in_higher_levels=`echo "$1" | grep -o '+'` >> + trace=`echo $1 | sed "s/^.*://"` same same -- To unsubscribe from this list: send the line "unsubscribe initramfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html