if (c == '>') intag = false;
}
+ free(chunk.memory);
+
// Strip empty newlines
char *nl = (char *) calloc(1, sizeof(char));
if (!nl) memfail();
j = 1;
for (int i = 0; outp[i]; i++) {
j++;
- if (outp[i] == '\n' && outp[i+1] == '\n') {
- i++;
- } else {
+ if (!((outp[i] == '\n' && outp[i+1] == '\n') ||
+ (outp[i] == ' ' && outp[i+1] == ' '))) {
nl = (char *) realloc(nl, j);
if (!nl) memfail();
- next[0] = outp[i];
+ next[0] = outp[i+1];
strncat(nl, next, 2);
}
}
+
free(outp);
return nl;
}
Widget disp = (Widget) client_data;
XmListCallbackStruct *list_cbs = (XmListCallbackStruct *) call_data;
char *nl = getmenu(days[list_cbs->item_position - 1]);
- XmTextReplace((Widget) disp, 0, strlen(XmTextGetString(disp)), nl);
+ char *oldtext = XmTextGetString(disp) ;
+ XmTextReplace((Widget) disp, 0, strlen(oldtext), nl);
+ free(nl);
+ free(oldtext);
}
// Convert an array of string to an array of compound strings
// Create text widget to display menu
n = 0;
- XtSetArg(args[n], XmNvalue, getmenu("")); n++;
+ char *nl = getmenu("");
+ XtSetArg(args[n], XmNvalue, nl); n++;
XtSetArg(args[n], XmNeditable, False); n++;
XtSetArg(args[n], XmNcolumns, 80); n++;
XtSetArg(args[n], XmNrows, 20); n++;
XtSetArg(args[n], XmNcursorPositionVisible, False); n++;
disp = XmCreateScrolledText(rowcol, "text", args, n);
XtManageChild(disp);
+ free(nl);
// Create day selector
strs = ArgvToXmStringTable (XtNumber(days), days);