The 'TagName' string is defined to be 40 characters in length, but
in three places we write into it with a format of "(%.39s)". This
can result in a string of up to 42 characters, the 39 character user
string plus "()\0". This overflows TagName, as we see in the new
complier warnings from gcc 7.2.1:
iogen.c:1277:6: note: 'sprintf' output between 3 and 42 bytes into a
destination of size 40
sprintf( TagName, "(%.39s)", optarg );
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Fix this by limiting the user string to 37 characters.