tb = malloc(sizeof(*tb));
co->data = tb;
- if (width < 2) width = 2;
+ if (width < 1)
+ width = 1;
co->ops = &textboxOps;
mbstate_t ps;
if (resultPtr) {
- /* use width - 1 for double width characters that won't fit at end of line */
- result = malloc(strlen(text) + (strlen(text) / (width - 1)) + 2);
+ if (width > 1) {
+ /* use width - 1 for double width characters
+ that won't fit at end of line */
+ result = malloc(strlen(text) + (strlen(text) / (width - 1)) + 2);
+ } else
+ result = malloc(strlen(text) * 2 + 2);
*result = '\0';
}
int minbad, minbadwidth, howbad;
char * expandedText;
+ if (width < 1)
+ width = 1;
+
expandedText = expandTabs(text);
if (flexDown || flexUp) {
minbad = -1;
minbadwidth = width;
- for (i = min; i <= max; i++) {
+ for (i = min; i >= 1 && i <= max; i++) {
doReflow(expandedText, NULL, i, &howbad, NULL);
if (minbad == -1 || howbad < minbad) {