Beispiel #1
0
static void lower_case(LPC_frame f, int nargs, LPC_value retval)
{
    LPC_value val;
    LPC_string str;
    LPC_dataspace data;
    char *p;
    unsigned int i;

    /* fetch the argument string */
    val = lpc_frame_arg(f, nargs, 0);
    str = lpc_string_getval(val);

    /* make a copy */
    data = lpc_frame_dataspace(f);
    str = lpc_string_new(data, lpc_string_text(str), lpc_string_length(str));

    /* turn to lowercase */
    p = lpc_string_text(str);
    for (i = lpc_string_length(str); i != 0; --i) {
        if (*p >= 'A' && *p <= 'Z') {
            *p += 'a' - 'A';
        }
        p++;
    }

    /* put result in return value */
    lpc_string_putval(retval, str);
}
static void filelastmod(LPC_frame f, int nargs, LPC_value retval)
{
    struct stat sb;
    LPC_value val;
    LPC_string mudpath;
    char *fullpath;

    val = lpc_frame_arg(f, nargs, 0);
    mudpath = lpc_string_getval(val);

    query_full_path(&fullpath, lpc_string_text(mudpath));

    if (stat(fullpath, &sb) == -1) {
	return;
    }
    free(fullpath);
    lpc_int_putval(retval, sb.st_mtime);
}