885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
|
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
|
-
+
|
int Th_CallSubCommand(
Th_Interp *interp,
void *ctx,
int argc,
const char **argv,
int *argl,
Th_SubCommand *aSub
const Th_SubCommand *aSub
){
if( argc>1 ){
int i;
for(i=0; aSub[i].zName; i++){
char *zName = (char *)aSub[i].zName;
if( th_strlen(zName)==argl[1] && 0==memcmp(zName, argv[1], argl[1]) ){
return aSub[i].xProc(interp, ctx, argc, argv, argl);
|
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
|
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
|
-
+
|
static int string_command(
Th_Interp *interp,
void *ctx,
int argc,
const char **argv,
int *argl
){
Th_SubCommand aSub[] = {
static const Th_SubCommand aSub[] = {
{ "compare", string_compare_command },
{ "first", string_first_command },
{ "is", string_is_command },
{ "last", string_last_command },
{ "length", string_length_command },
{ "range", string_range_command },
{ "repeat", string_repeat_command },
|
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
|
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
|
-
+
|
static int info_command(
Th_Interp *interp,
void *ctx,
int argc,
const char **argv,
int *argl
){
Th_SubCommand aSub[] = {
static const Th_SubCommand aSub[] = {
{ "exists", info_exists_command },
{ 0, 0 }
};
return Th_CallSubCommand(interp, ctx, argc, argv, argl, aSub);
}
/*
|