improve handling %cs with nil values

namely, NULL and \0. it appears that both has special behavior on flags, and I guess it's FL_HASH

  • in case of %s and NULL, it must has no width at all.
  • in case of \0 it should be printed, but in my case, I have been using a buffer to hold the '\0'. Thus, I have to append it, and increase the buffer length by 1.
Edited by Anas Rchid