Esempio n. 1
0
newtRef NsParamStr(newtRefArg rcvr, newtRefArg baseString, newtRefArg paramStrArray)
{
    if (! NewtRefIsString(baseString))
        return NewtThrow(kNErrNotAString, baseString);

    if (! NewtRefIsArray(paramStrArray))
        return NewtThrow(kNErrNotAnArray, paramStrArray);

	return NewtParamStr(NewtRefToString(baseString), NewtStringLength(baseString), paramStrArray, true);
}
Esempio n. 2
0
newtRef NcSetPath(newtRefArg r, newtRefArg p, newtRefArg v)
{
    newtRefVar	slot;
    newtRefVar	target;

    target = NewtGetPath(r, p, &slot);

    if (target == kNewtRefUnbind)
        NewtThrow(kNErrOutOfBounds, r);

    if (NewtRefIsArray(target))
        return NcSetArraySlot(target, slot, v);
    else
        return NcSetSlot(target, slot, v);
}
Esempio n. 3
0
newtRef NsSetContains(newtRefArg rcvr, newtRefArg array, newtRefArg item) {
  if (!NewtRefIsArray(array)) {
    return NewtThrow(kNErrNotAnArray, array);
  }
  
  newtRef *	slots;
  uint32_t	n;
  uint32_t	i;
  
  slots = NewtRefToSlots(array);
  n = NewtLength(array);
  
  for (i = 0; i < n; i++)
  {
    if (slots[i] == item) {
      return NewtMakeInteger(i);
    }
  }
  
  return kNewtRefNIL;
}
Esempio n. 4
0
newtRef NcStringer(newtRefArg r)
{
    newtRef *	slots;
    newtRefVar	str;
    uint32_t	len;
    uint32_t	i;

    if (! NewtRefIsArray(r))
        return NewtThrow(kNErrNotAnArray, r);

    str = NSSTR("");

    len = NewtArrayLength(r);
    slots = NewtRefToSlots(r);

    for (i = 0; i < len; i++)
    {
        NcStrCat(str, slots[i]);
    }

    return str;
}
Esempio n. 5
0
newtRef NsIsArray(newtRefArg rcvr, newtRefArg r)
{
    return NewtMakeBoolean(NewtRefIsArray(r));
}