diff options
author | Steve Bennett <steveb@workware.net.au> | 2010-01-24 13:53:11 +1000 |
---|---|---|
committer | Steve Bennett <steveb@workware.net.au> | 2010-10-15 11:02:46 +1000 |
commit | b149e4415f9a448740cd41e5fd2a5f065262e791 (patch) | |
tree | 8c26563d127da56135188800d5863a2137e34201 /jim-regexp.c | |
parent | 289cf6dfe86b9b8a4e67b908a8bf8afc9fba76be (diff) | |
download | jimtcl-b149e4415f9a448740cd41e5fd2a5f065262e791.zip jimtcl-b149e4415f9a448740cd41e5fd2a5f065262e791.tar.gz jimtcl-b149e4415f9a448740cd41e5fd2a5f065262e791.tar.bz2 |
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
Diffstat (limited to 'jim-regexp.c')
-rw-r--r-- | jim-regexp.c | 13 |
1 files changed, 3 insertions, 10 deletions
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); } } |