RAPL

Diff
Login

Diff

Differences From Artifact [595116384f]:

To Artifact [0963b00ca1]:


21
22
23
24
25
26
27
28
29
30
31
32
33
34




















35

36

37
38
39
40
41
42
43
21
22
23
24
25
26
27







28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49

50
51
52
53
54
55
56
57







-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

+
-
+







  PkgString.superclass.constructor.apply(strg, arguments);

  R.Base.pkg_string_oid++;
  strg.oid = R.Base.pkg_string_oid;

  /* ==================== command string first ===================================== */
  interp.registerSubCommand("::string", "first", function (interp, args) {
    args.shift();
    this.requireArgcRange(args, 2, 3, "string first", "");
    var needle_str = args.shift().toString();
    var haystack_str = args.shift().toString()
    var start_idx = 0;
    if (args.length > 0) {
      start_idx = parseInt(args.shift().toString());
    var idx = 0;
    var needle_len;
    var haystack_len;
    var needle_str;
    var haystack_str;

    if (args.length != 3 && args.length != 4) {
      interp.wrongNumArgs(1, args, "subString string ?index?");
      return interp.ERROR;
    }
    needle_str = args[1].getString();
    haystack_str = args[2].getString();
    needle_len = args[1].length;
    haystack_len = args[2].length;
    if (args.length == 4) {
      var res = new Array();
      if (interp.index_obj_type.getIndex(args[3], res) != interp.OK) {
        return interp.ERROR;
      }
      idx = interp.index_obj_type.relToAbsIndex(haystack_len, res[0]);
    }
    interp.setResultInt(interp.string_obj_type.stringFirst(needle_str, needle_len, haystack_str, haystack_len, idx));
    return (haystack_str.indexOf(needle_str, start_idx));
    return interp.OK;
  });

  /* ==================== command string equal ===================================== */
  interp.registerSubCommand("::string", "equal", function (interp, args) {
    this.requireExactArgc(args, 3, "string equal", "");
    return (args[1].toString() == args[2].toString());
  });
51
52
53
54
55
56
57
58
59
60
61
62
63
64






















65

66

67
68
69
70
71
72
73
65
66
67
68
69
70
71







72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95

96
97
98
99
100
101
102
103







-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

+
-
+







    } catch (e) {
      return "";
    }
  });

  /* ==================== command string last ===================================== */
  interp.registerSubCommand("::string", "last", function (interp, args) {
    args.shift();
    this.requireArgcRange(args, 2, 3, "string last", "");
    var needle_str = args.shift().toString();
    var haystack_str = args.shift().toString()
    var start_idx = args.lgth-1;
    if (args.length > 0) {
      start_idx = parseInt(args.shift().toString());
    var idx = 0;
    var needle_len;
    var haystack_len;
    var needle_str;
    var haystack_str;

    if (args.length != 3 && args.length != 4) {
      interp.wrongNumArgs(1, args, "subString string ?index?");
      return interp.ERROR;
    }
    needle_str = args[1].getString();
    haystack_str = args[2].getString();
    needle_len = args[1].length;
    haystack_len = args[2].length;
    if (args.length == 4) {
      var res = new Array();
      if (interp.index_obj_type.getIndex(args[3], res) != interp.OK) {
        return interp.ERROR;
      }
      idx = interp.index_obj_type.relToAbsIndex(haystack_len, res[0]);
    } else {
      idx = haystack_len;
    }
    interp.setResultInt(interp.string_obj_type.stringLast(needle_str, needle_len, haystack_str, haystack_len, idx));
    return (haystack_str.lastIndexOf(needle_str, start_idx));
    return interp.OK;
  });

  /* ==================== command string match ===================================== */
  interp.registerSubCommand("::string", "match", function (interp, args) {
    args.shift();
    this.requireMinArgc(args, 2, "string match", "");
    var usage = "string match ?-nocase? pattern string";