/*
 * 現在のレコードのキーを返す
 *
 * === Return
 * String
 */
static VALUE records_curr_key(VALUE obj)
{
    sen_records *recs;
    int keylen;
    char keybuf[256];
    char *bufp;
    VALUE key;

    Data_Get_Struct(obj, sen_records, recs);
    keylen = sen_records_curr_key(recs, NULL, 0);
    if (keylen == 0)
        return Qnil;
    if (keylen <= sizeof(keybuf)) {
        key = rb_str_new(keybuf, keylen-1);
    } else {
        bufp = xmalloc(keylen+1);
        sen_records_curr_key(recs, bufp, keylen+1);
        key = rb_str_new(bufp, keylen-1);
        xfree(bufp);
    }
    return key;
}