diff --git a/redoconf/default.do.sh b/redoconf/default.do.sh index 6c4de48..76cb10d 100644 --- a/redoconf/default.do.sh +++ b/redoconf/default.do.sh @@ -65,13 +65,18 @@ _pick_src() { } _objlist() { - local suffix="$1" list="$2" base="${2##*/}" + local suffix="$1" list="$2" + local base="${2##*/}" local dir="${2%"$base"}" - sed -Ee 's/\.(c|cc|cpp|cxx|C|c\+\+)$/'"$suffix/" <"$2" | while read -r d; do - [ "$d" = "${d#-}" ] || continue - echo "$dir$d" - done + case $d in + -*) ;; + *.c|*.cc|*.cpp|*.cxx|*.C|*.c++) + echo "$dir${d%.*}$suffix" + ;; + *) echo "$dir$d" ;; + esac + done <"$list" } _flaglist() {