- for (size_t i=0; i < maxLen; ++i){
- sprintf(tmp++, "%u", data[i]);
- if (breaks > 0 && !((i+1) % breaks))
+ size_t in_index = 0;
+ // loop through the out_index to make sure we don't go too far
+ for (size_t out_index=0; out_index < max_len; out_index++) {
+ // set character - (should be binary but verify it isn't more than 1 digit)
+ if (data[in_index]<10)
+ sprintf(tmp++, "%u", (unsigned int) data[in_index]);
+ // check if a line break is needed and we have room to print it in our array
+ if ( (breaks > 0) && !((in_index+1) % breaks) && (out_index+1 != max_len) ) {
+ // increment and print line break
+ out_index++;