From b149e4415f9a448740cd41e5fd2a5f065262e791 Mon Sep 17 00:00:00 2001 From: Steve Bennett Date: Sun, 24 Jan 2010 13:53:11 +1000 Subject: Add Jim_SetResultFormatted() for simplied messages Makes creating error messages much simpler Also convert a couple of long if/else to switch Also some error message improvements Also fix some memory leaks --- jim-regexp.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) (limited to 'jim-regexp.c') diff --git a/jim-regexp.c b/jim-regexp.c index deffb50..72313ee 100644 --- a/jim-regexp.c +++ b/jim-regexp.c @@ -95,8 +95,7 @@ static regex_t *SetRegexpFromAny(Jim_Interp *interp, Jim_Obj *objPtr, unsigned f if ((ret = regcomp(compre, pattern, REG_EXTENDED | flags)) != 0) { char buf[100]; regerror(ret, compre, buf, sizeof(buf)); - Jim_SetResult(interp, Jim_NewEmptyStringObj(interp)); - Jim_AppendStrings(interp, Jim_GetResult(interp), "couldn't compile regular expression pattern: ", buf, NULL); + Jim_SetResultFormatted(interp, "couldn't compile regular expression pattern: %s", buf); regfree(compre); Jim_Free(compre); return NULL; @@ -216,8 +215,7 @@ int Jim_RegexpCmd(Jim_Interp *interp, int argc, Jim_Obj *const *argv) if (match >= REG_BADPAT) { char buf[100]; regerror(match, regex, buf, sizeof(buf)); - Jim_SetResultString(interp, "", 0); - Jim_AppendStrings(interp, Jim_GetResult(interp), "error while matching pattern: ", buf, NULL); + Jim_SetResultFormatted(interp, "error while matching pattern: %s", buf); result = JIM_ERR; goto done; } @@ -272,8 +270,6 @@ int Jim_RegexpCmd(Jim_Interp *interp, int argc, Jim_Obj *const *argv) result = Jim_SetVariable(interp, argv[i], resultObj); if (result != JIM_OK) { - Jim_SetResult(interp, Jim_NewEmptyStringObj(interp)); - Jim_AppendStrings(interp, Jim_GetResult(interp), "couldn't set variable \"", Jim_GetString(argv[i], NULL), "\"", NULL); Jim_FreeObj(interp, resultObj); break; } @@ -409,8 +405,7 @@ int Jim_RegsubCmd(Jim_Interp *interp, int argc, Jim_Obj *const *argv) if (match >= REG_BADPAT) { char buf[100]; regerror(match, regex, buf, sizeof(buf)); - Jim_SetResultString(interp, "", 0); - Jim_AppendStrings(interp, Jim_GetResult(interp), "error while matching pattern: ", buf, NULL); + Jim_SetResultFormatted(interp, "error while matching pattern: %s", buf); return JIM_ERR; } if (match == REG_NOMATCH) { @@ -485,8 +480,6 @@ int Jim_RegsubCmd(Jim_Interp *interp, int argc, Jim_Obj *const *argv) Jim_SetResultInt(interp, num_matches); } else { - Jim_SetResult(interp, Jim_NewEmptyStringObj(interp)); - Jim_AppendStrings(interp, Jim_GetResult(interp), "couldn't set variable \"", Jim_GetString(varname, NULL), "\"", NULL); Jim_FreeObj(interp, resultObj); } } -- cgit v1.1