Listing 2

/* Listing-2: recls-Ruby extension module functions */

static VALUE recls_roots_get(VALUE self)
{
  VALUE         parts   = rb_ary_new();
  recls_root_t  roots[26];
  size_t        cRoots  = Recls_GetRoots( roots, NUM_ELEMENTS(roots));
  size_t        i;

  for(i = 0; i < cRoots; ++i)
  {
    rb_ary_push(parts, rb_str_new2(roots[i].name));
  }

  return parts;
}
static VALUE recls_pathNameSeparator_get(VALUE self)
{
  return rb_str_new2(Recls_GetPathNameSeparator());
}
static VALUE recls_pathSeparator_get(VALUE self)
{
  return rb_str_new2(Recls_GetPathSeparator());
}
static VALUE recls_wildcardsAll_get(VALUE self)
{
  return rb_str_new2(Recls_GetWildcardsAll());
}