IDL_file_set(NULL,++(int)data->lineno);
IDL_file_set(NULL,(int)(++data->lineno));
NextIsInclude(struct input_callback_stack *stack, char **startp, int *lenp){    struct input_callback_data *data = stack->top, *new_data;    char *filename, *start, *end;    const char *scratch;#ifdef DEBUG_shaver_input    fputs("[I", stderr);#endif    /* process the #include that we're in now */    if (strncmp(data->point, "#include \"", 10)) {#ifdef DEBUG_shaver_input        fputs("0]", stderr);#endif        return 0;    }        start = filename = data->point + 10; /* skip #include " */    assert(start < data->buf + data->len);    end = strchr(filename, '\"');    if (!end) {        /* filename probably stops at next whitespace */        char *data_end = data->buf + data->len;        start = end = filename - 1;                while (end < data_end) {            if (*end == ' ' || *end == '\n' || *end == '\r' || *end == '\t') {                *end = '\0';                break;            }            end++;        }                /* make sure we have accurate line info */        IDL_file_get(&scratch, &data->lineno);        fprintf(stderr,                "%s:%d: didn't find end of quoted include name %*s\n",                scratch, data->lineno, end - start, start);        return -1;    }    if (*end == '\r' || *end == '\n')	IDL_file_set(NULL,++(int)data->lineno);    *end = '\0';    *startp = end + 1;    end = strrchr(filename, '.');#ifdef DEBUG_shaver_inc    fprintf(stderr, "found #include %s\n", filename);#endif    /* store offset for when we pop, or if we skip this one */    data->point = *startp;    assert(stack->includes);    if (!g_hash_table_lookup(stack->includes, filename)) {        char *file_basename = filename;        filename = xpidl_strdup(filename);        if (end)            *end = '\0';        file_basename = xpidl_strdup(file_basename);        g_hash_table_insert(stack->includes, filename, file_basename);        new_data = new_input_callback_data(filename, stack->include_path);        if (!new_data) {	    IDL_file_get(&scratch, &data->lineno);#ifdef XP_MAC	    static char warning_message[1024];	    sprintf(warning_message, "%s:%d: can't open included file %s for reading\n", scratch,		    data->lineno, filename);	    mac_warning(warning_message);#else	    fprintf(stderr, "%s:%d: can't open included file %s for reading\n", scratch,		    data->lineno, filename);#endif            return -1;        }        new_data->next = data;        IDL_inhibit_push();        IDL_file_get(&scratch, &data->lineno);        data = stack->top = new_data;        IDL_file_set(data->filename, (int)data->lineno);    }    *lenp = 0;               /* this is magic, see the comment below */#ifdef DEBUG_shaver_input    fputs("1]", stderr);#endif    return 1;}    