diff options
-rw-r--r-- | src/Actions.c | 2 | ||||
-rw-r--r-- | src/TextAction.c | 14 |
2 files changed, 12 insertions, 4 deletions
diff --git a/src/Actions.c b/src/Actions.c index 0432627..8f0cead 100644 --- a/src/Actions.c +++ b/src/Actions.c @@ -918,7 +918,7 @@ XawDeclareActionVar(XawActionVarList *list, String name, String value) { String val = escape ? escape : value; - if (strcmp(XrmQuarkToString(variable->qvalue), val) == 0) + if (val != NULL && strcmp(XrmQuarkToString(variable->qvalue), val) == 0) { if (escape) XtFree(escape); diff --git a/src/TextAction.c b/src/TextAction.c index 254a785..09e22f2 100644 --- a/src/TextAction.c +++ b/src/TextAction.c @@ -1295,14 +1295,22 @@ _DeleteOrKill(TextWidget ctx, XawTextPosition from, XawTextPosition to, else { salt->contents = XtMalloc((Cardinal)(length + size + 1)); if (from >= old_from) { - strncpy(salt->contents, ring, (size_t)size); - salt->contents[size] = '\0'; + if (ring != NULL) { + strncpy(salt->contents, ring, (size_t)size); + salt->contents[size] = '\0'; + } else { + salt->contents[size = 0] = '\0'; + } strncat(salt->contents, string, (size_t)length); } else { strncpy(salt->contents, string, (size_t)length); salt->contents[length] = '\0'; - strncat(salt->contents, ring, (size_t)size); + if (ring != NULL) { + strncat(salt->contents, ring, (size_t)size); + } else { + size = 0; + } } salt->contents[length + size] = '\0'; XtFree(ring); |