# HG changeset patch # User glx # Date 2019-01-08 02:36:47 # Node ID 13eb619c6d499dc0e1ec27a5430e2f5bebee7a04 # Parent 23c5b26ff6d2caca14f7f393ac0187f8e072cd1a Fix: keep the line ending when generating widget enums with bash/gawk on windows diff --git a/src/script/api/generate_widget.awk b/src/script/api/generate_widget.awk --- a/src/script/api/generate_widget.awk +++ b/src/script/api/generate_widget.awk @@ -24,6 +24,8 @@ BEGIN { skiptillend = 0; } +{ CR = (match($0, "\\r$") > 0 ? "\r" : "") } + /@enum/ { print; add_indent = gensub("[^ ]*", "", "g"); @@ -42,7 +44,7 @@ BEGIN { active_comment = 0; comment = ""; file = filearray[i]; - print add_indent "/* automatically generated from " file " */" + print add_indent "/* automatically generated from " file " */" CR while ((getline < file) > 0) { sub(rm_indent, ""); @@ -65,7 +67,7 @@ BEGIN { } # Forget doxygen comment, if no enum follows - if (active_comment == 2 && $0 != "") { + if (active_comment == 2 && $0 != "" CR) { active_comment = 0; comment = ""; } @@ -78,22 +80,21 @@ BEGIN { sub(" *//", " //"); match($0, "^( *)([A-Za-z0-9_]+),(.*)", parts); - enumwidth - length(parts[2]) - if (parts[3] == "") { - printf "%s%s%-45s= ::%s\n", add_indent, parts[1], parts[2], (parts[2] ",") + if (parts[3] == "" CR) { + printf "%s%s%-45s= ::%s\n", add_indent, parts[1], parts[2], (parts[2] "," CR) } else { - printf "%s%s%-45s= ::%-45s%s\n", add_indent, parts[1], parts[2], (parts[2] ","), parts[3]; + printf "%s%s%-45s= ::%-45s%s\n", add_indent, parts[1], parts[2], (parts[2] ","), (parts[3]); } - } else if ($0 == "") { - print ""; + } else if ($0 == "" CR) { + print "" CR; } else { print add_indent $0; } } if (match($0, "^ *\\};") > 0) { - if (active != 0) print ""; + if (active != 0) print "" CR; active = 0; } }