diff options
author | Steve Bennett <steveb@workware.net.au> | 2014-11-16 14:23:54 +1000 |
---|---|---|
committer | Steve Bennett <steveb@workware.net.au> | 2014-11-17 12:22:48 +1000 |
commit | 77329fbe453beddd11607fa437ae83940435e1a4 (patch) | |
tree | 87f660f38efa57c94fe1f0fa8d714c2288e266da /jim.c | |
parent | e60018c2797b6edb2d05336178c88e429ba62f73 (diff) | |
download | jimtcl-77329fbe453beddd11607fa437ae83940435e1a4.zip jimtcl-77329fbe453beddd11607fa437ae83940435e1a4.tar.gz jimtcl-77329fbe453beddd11607fa437ae83940435e1a4.tar.bz2 |
Implement string cat (TIP #429)
Signed-off-by: Steve Bennett <steveb@workware.net.au>
Diffstat (limited to 'jim.c')
-rw-r--r-- | jim.c | 23 |
1 files changed, 21 insertions, 2 deletions
@@ -13444,13 +13444,13 @@ static int Jim_StringCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const *a int option; static const char * const options[] = { "bytelength", "length", "compare", "match", "equal", "is", "byterange", "range", "replace", - "map", "repeat", "reverse", "index", "first", "last", + "map", "repeat", "reverse", "index", "first", "last", "cat", "trim", "trimleft", "trimright", "tolower", "toupper", "totitle", NULL }; enum { OPT_BYTELENGTH, OPT_LENGTH, OPT_COMPARE, OPT_MATCH, OPT_EQUAL, OPT_IS, OPT_BYTERANGE, OPT_RANGE, OPT_REPLACE, - OPT_MAP, OPT_REPEAT, OPT_REVERSE, OPT_INDEX, OPT_FIRST, OPT_LAST, + OPT_MAP, OPT_REPEAT, OPT_REVERSE, OPT_INDEX, OPT_FIRST, OPT_LAST, OPT_CAT, OPT_TRIM, OPT_TRIMLEFT, OPT_TRIMRIGHT, OPT_TOLOWER, OPT_TOUPPER, OPT_TOTITLE }; static const char * const nocase_options[] = { @@ -13484,6 +13484,25 @@ static int Jim_StringCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const *a Jim_SetResultInt(interp, len); return JIM_OK; + case OPT_CAT:{ + Jim_Obj *objPtr; + if (argc == 3) { + /* optimise the one-arg case */ + objPtr = argv[2]; + } + else { + int i; + + objPtr = Jim_NewStringObj(interp, "", 0); + + for (i = 2; i < argc; i++) { + Jim_AppendObj(interp, objPtr, argv[i]); + } + } + Jim_SetResult(interp, objPtr); + return JIM_OK; + } + case OPT_COMPARE: case OPT_EQUAL: { |