Assorted code cleanups
- Variable scope reduction as recommended by cppcheck
- Use C99 struct initialization
- Rename variable 'dup' to avoid shadowing dup() function
- Fallback asprintf: don't truncate output that has a \0 in string
Due to an influx of spam, we have had to impose restrictions on new accounts. Please see this wiki page for instructions on how to get full permissions. Sorry for the inconvenience.