On Mon, Nov 11, 2024 at 01:55:29PM +0100, Peter Zijlstra wrote: > On Mon, Nov 11, 2024 at 03:36:25AM -0800, Christoph Hellwig wrote: > > On Mon, Nov 11, 2024 at 11:54:31AM +0100, Peter Zijlstra wrote: > > > Since sed doesn't like multi-line make sure all EXPORT_SYMBOL_NS > > > things are a single line. > > > > Eww. Just use coccinelle or another tool not so simplistic. > > Feel free to do so. I've never managed to get coccinelle to do anything. So I put a little more effort in and got you this (awk needs to be gawk>=4.1) git grep -l -e MODULE_IMPORT_NS -e EXPORT_SYMBOL_NS | while read file; do awk -i inplace ' /^#define EXPORT_SYMBOL_NS/ { gsub(/__stringify\(ns\)/, "ns"); print; next; } /^#define MODULE_IMPORT_NS/ { gsub(/__stringify\(ns\)/, "ns"); print; next; } /MODULE_IMPORT_NS/ { $0 = gensub(/MODULE_IMPORT_NS\(([^)]*)\)/, "MODULE_IMPORT_NS(\"\\1\")", "g"); } /EXPORT_SYMBOL_NS/ { if ($0 ~ /(EXPORT_SYMBOL_NS[^(]*)\(([^,]+),/) { if ($0 !~ /(EXPORT_SYMBOL_NS[^(]*)\(([^,]+), ([^)]+)\)/ && $0 !~ /(EXPORT_SYMBOL_NS[^(]*)\(\)/ && $0 !~ /^my/) { getline line; gsub(/[[:space:]]*\\$/, ""); gsub(/[[:space:]]/, "", line); $0 = $0 " " line; } $0 = gensub(/(EXPORT_SYMBOL_NS[^(]*)\(([^,]+), ([^)]+)\)/, "\\1(\\2, \"\\3\")", "g"); } } { print }' $file; done I'm sure that wasn't worth the time I spend on it though :/