|  | BEGIN { | 
|  | print "/* Machine generated. Do not edit. */" | 
|  | print "" | 
|  | lines = 0 | 
|  | } | 
|  | { | 
|  | split($0, array, FS) | 
|  |  | 
|  | if (NF > 0 && length(array[1]) > 0) { | 
|  | lines++ | 
|  |  | 
|  | # save the first word is the names array | 
|  | names[lines] = array[1] | 
|  |  | 
|  | # create the WCHAR version of the name | 
|  | printf "static const WCHAR name%dW[] = { ", lines | 
|  | i = 1 | 
|  | len = length(array[1]) + 1 | 
|  | while (i < len) { | 
|  | printf "'%s',", substr(array[1],i,1) | 
|  | i++ | 
|  | } | 
|  | print  "0 };" | 
|  |  | 
|  | # create the CHAR version of the description | 
|  | printf "static const CHAR description%dA[] = \"", lines | 
|  | word = 2 | 
|  | while (word < (NF + 1)) { | 
|  | printf "%s", array[word] | 
|  | if (word < NF ) | 
|  | printf " " | 
|  | word++ | 
|  | } | 
|  | print  "\";" | 
|  |  | 
|  | # create the WCHAR version of the description | 
|  | printf "static const WCHAR description%dW[] = { ", lines | 
|  | word = 2 | 
|  | while (word < (NF + 1)) { | 
|  | i = 1 | 
|  | len = length(array[word]) + 1 | 
|  | while (i < len) { | 
|  | printf "'%s',", substr(array[word],i,1) | 
|  | i++ | 
|  | } | 
|  | if (word < NF ) | 
|  | printf "' '," | 
|  | word++ | 
|  | } | 
|  | print  "0 };" | 
|  | } | 
|  | } | 
|  | END { | 
|  | print "" | 
|  | print "static const error_info info[] = {" | 
|  |  | 
|  | i = 1 | 
|  | while ( i <= lines) { | 
|  | printf "    { %s, \"%s\", name%dW, description%dA, description%dW },\n", | 
|  | names[i], names[i], i, i,i | 
|  | i++ | 
|  | } | 
|  |  | 
|  | print "};" | 
|  | } |