RAPL

Diff
Login

Diff

Differences From Artifact [7ee025eea7]:

To Artifact [7411fffd3f]:


820
821
822
823
824
825
826

827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
    interp.current_script_obj = prev_script_obj;
    script_obj_ptr.decrRefCount();
    return interp.OK;
  });

  /* ==================== command split ===================================== */
  interp.registerCommand("::split", function (interp, args) {

    var script_obj_ptr;
    var str;
    var split_chars;
    var no_match_start;
    var split_len;
    var str_len;
    var res_obj_ptr;
    var c = new Array();
    var len;
    var idx = 0;

    if (args.length != 2 && args.length != 3) {
      interp.wrongNumArgs(1, args, "string ?splitChars?");
      return interp.ERROR;
    }







>







<







820
821
822
823
824
825
826
827
828
829
830
831
832
833
834

835
836
837
838
839
840
841
    interp.current_script_obj = prev_script_obj;
    script_obj_ptr.decrRefCount();
    return interp.OK;
  });

  /* ==================== command split ===================================== */
  interp.registerCommand("::split", function (interp, args) {
//print("split!"+args+"!");
    var script_obj_ptr;
    var str;
    var split_chars;
    var no_match_start;
    var split_len;
    var str_len;
    var res_obj_ptr;

    var len;
    var idx = 0;

    if (args.length != 2 && args.length != 3) {
      interp.wrongNumArgs(1, args, "string ?splitChars?");
      return interp.ERROR;
    }
857
858
859
860
861
862
863


864
865
866

867
868
869
870
871
872
873
874
875
876
877
878
879
880
    }
    no_match_start = idx;
    res_obj_ptr = interp.list_obj_type.newListObj(null, 0);
    /* Split */
    if (split_len) {
      var obj_ptr;
      while (str_len--) {


        var sc = split_chars;
        var sc_len = split_len;
        var sl = interp.default_obj.utf8_tounicode(str.substring(idx), c);

        while (sc_len--) {
          var pc = new Array();
          sc += interp.default_obj.utf8_tounicode(sc, pc);
          if (c[0] == pc[0]) {
            obj_ptr = interp.string_obj_type.newStringObj(str.substring(no_match_start), (idx - no_match_start));
            interp.list_obj_type.listAppendElement(res_obj_ptr, obj_ptr);
            no_match_start += sl;
            break;
          }
        }
        idx += sl;
      }
      obj_ptr = interp.string_obj_type.newStringObj(str.substring(no_match_start), (idx - no_match_start));
      interp.list_obj_type.listAppendElement(res_obj_ptr, obj_ptr);







>
>
|


>


|



|







857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
    }
    no_match_start = idx;
    res_obj_ptr = interp.list_obj_type.newListObj(null, 0);
    /* Split */
    if (split_len) {
      var obj_ptr;
      while (str_len--) {
        var c = new Array();
        var sc_idx = 0;
	var sc = split_chars;
        var sc_len = split_len;
        var sl = interp.default_obj.utf8_tounicode(str.substring(idx), c);
	var sc_idx2 = 0;
        while (sc_len--) {
          var pc = new Array();
          sc_idx += interp.default_obj.utf8_tounicode(sc.charAt(sc_idx), pc);
          if (c[0] == pc[0]) {
            obj_ptr = interp.string_obj_type.newStringObj(str.substring(no_match_start), (idx - no_match_start));
            interp.list_obj_type.listAppendElement(res_obj_ptr, obj_ptr);
            no_match_start = idx + sl;
            break;
          }
        }
        idx += sl;
      }
      obj_ptr = interp.string_obj_type.newStringObj(str.substring(no_match_start), (idx - no_match_start));
      interp.list_obj_type.listAppendElement(res_obj_ptr, obj_ptr);
1240
1241
1242
1243
1244
1245
1246













1247

1248
1249
1250
1251
1252
1253
1254
        return interp.ERROR;
      }
      /* Eval the code in the target call_frame. */
      interp.frame_ptr = target_call_frame;
      if (argc == 2) {
        retcode = interp.eval_statement.evalObj(args[i]);
      } else {













        retcode = interp.eval_statement.evalObjVector(argc - i + 1, args.slice(i));

      }
      interp.frame_ptr = saved_call_frame;
      return retcode;
    } else {
      interp.wrongNumArgs(1, args, "?level? command ?arg ...?");
      return interp.ERROR;
    }







>
>
>
>
>
>
>
>
>
>
>
>
>
|
>







1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
        return interp.ERROR;
      }
      /* Eval the code in the target call_frame. */
      interp.frame_ptr = target_call_frame;
      if (argc == 2) {
        retcode = interp.eval_statement.evalObj(args[i]);
      } else {
        /* cannot use evalObjVector() as that makes problems with ensemble commands!! */
        var my_str = "";
        var sep = "";
        for (; i < args.length; i++) {
          if (my_str.match(" ") != null) {
            my_str += sep+"{"+args[i]+"}";
          } else {
            my_str += sep+args[i];
          }
          sep = " ";
        }
        var my_ptr = interp.string_obj_type.newStringObj(my_str, -1);
        my_ptr.incrRefCount();
        retcode = interp.eval_statement.evalObj(my_ptr);
        my_ptr.decrRefCount();
      }
      interp.frame_ptr = saved_call_frame;
      return retcode;
    } else {
      interp.wrongNumArgs(1, args, "?level? command ?arg ...?");
      return interp.ERROR;
    }