- // Expand Buffer\r
- if(len > space) {\r
- space += 256;\r
- ret = realloc(ret, space+1);\r
- if(!ret) return NULL;\r
+ default: \r
+ // Expand Buffer\r
+ if(len+1 > space) {\r
+ space += 256;\r
+ ret = realloc(ret, space+1);\r
+ if(!ret) return NULL;\r
+ }\r
+ \r
+ // Editing inside the buffer\r
+ if(pos != len) {\r
+ putchar(ch); // Print new character\r
+ printf("%.*s", len-pos, &ret[pos]); // Move Text\r
+ printf("\x1B[%iD", len-pos);\r
+ memmove( &ret[pos+1], &ret[pos], len-pos );\r
+ }\r
+ else {\r
+ putchar(ch);\r
+ }\r
+ ret[pos++] = ch;\r
+ len ++;\r
+ break;\r